From d28b0c9429ca5bdeeb097ed3a4e173b17d93348c Mon Sep 17 00:00:00 2001
From: tteck <tteckster@gmail.com>
Date: Sat, 2 Dec 2023 07:04:07 -0500
Subject: [PATCH] Update GitHub Pages

---
 asset-manifest.json                                         | 6 +++---
 index.html                                                  | 2 +-
 static/js/{main.43ec3d95.js => main.12b83e58.js}            | 6 +++---
 ...43ec3d95.js.LICENSE.txt => main.12b83e58.js.LICENSE.txt} | 0
 static/js/{main.43ec3d95.js.map => main.12b83e58.js.map}    | 2 +-
 5 files changed, 8 insertions(+), 8 deletions(-)
 rename static/js/{main.43ec3d95.js => main.12b83e58.js} (99%)
 rename static/js/{main.43ec3d95.js.LICENSE.txt => main.12b83e58.js.LICENSE.txt} (100%)
 rename static/js/{main.43ec3d95.js.map => main.12b83e58.js.map} (99%)

diff --git a/asset-manifest.json b/asset-manifest.json
index 876a06c7..bcd0178d 100644
--- a/asset-manifest.json
+++ b/asset-manifest.json
@@ -1,13 +1,13 @@
 {
   "files": {
     "main.css": "/Proxmox/static/css/main.52f03eb6.css",
-    "main.js": "/Proxmox/static/js/main.43ec3d95.js",
+    "main.js": "/Proxmox/static/js/main.12b83e58.js",
     "index.html": "/Proxmox/index.html",
     "main.52f03eb6.css.map": "/Proxmox/static/css/main.52f03eb6.css.map",
-    "main.43ec3d95.js.map": "/Proxmox/static/js/main.43ec3d95.js.map"
+    "main.12b83e58.js.map": "/Proxmox/static/js/main.12b83e58.js.map"
   },
   "entrypoints": [
     "static/css/main.52f03eb6.css",
-    "static/js/main.43ec3d95.js"
+    "static/js/main.12b83e58.js"
   ]
 }
\ No newline at end of file
diff --git a/index.html b/index.html
index 95a8c95c..036ffd6e 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/Proxmox/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Scripts for Streamlining Your Homelab with Proxmox VE"/><link rel="manifest" href="/Proxmox/manifest.json"/><title>Proxmox VE Helper-Scripts | Scripts for Streamlining Your Homelab with Proxmox VE</title><script defer="defer" src="/Proxmox/static/js/main.43ec3d95.js"></script><link href="/Proxmox/static/css/main.52f03eb6.css" rel="stylesheet"></head><body><header><div class="container"><a id="a-title" href="/Proxmox/"><h1>Proxmox VE Helper-Scripts</h1></a><h2>Scripts for Streamlining Your Homelab with Proxmox VE</h2><section id="downloads"><a href="https://github.com/tteck/Proxmox" class="btn btn-github"><span class="icon"></span>View on GitHub</a></section></div></header><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/Proxmox/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Scripts for Streamlining Your Homelab with Proxmox VE"/><link rel="manifest" href="/Proxmox/manifest.json"/><title>Proxmox VE Helper-Scripts | Scripts for Streamlining Your Homelab with Proxmox VE</title><script defer="defer" src="/Proxmox/static/js/main.12b83e58.js"></script><link href="/Proxmox/static/css/main.52f03eb6.css" rel="stylesheet"></head><body><header><div class="container"><a id="a-title" href="/Proxmox/"><h1>Proxmox VE Helper-Scripts</h1></a><h2>Scripts for Streamlining Your Homelab with Proxmox VE</h2><section id="downloads"><a href="https://github.com/tteck/Proxmox" class="btn btn-github"><span class="icon"></span>View on GitHub</a></section></div></header><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
\ No newline at end of file
diff --git a/static/js/main.43ec3d95.js b/static/js/main.12b83e58.js
similarity index 99%
rename from static/js/main.43ec3d95.js
rename to static/js/main.12b83e58.js
index aa39dfdf..7ea17a20 100644
--- a/static/js/main.43ec3d95.js
+++ b/static/js/main.12b83e58.js
@@ -1,3 +1,3 @@
-/*! For license information please see main.43ec3d95.js.LICENSE.txt */
-!function(){var e={1132:function(e){"use strict";var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=Object.defineProperty,a=Object.getOwnPropertyDescriptor,i=function(e){return"function"===typeof Array.isArray?Array.isArray(e):"[object Array]"===n.call(e)},o=function(e){if(!e||"[object Object]"!==n.call(e))return!1;var r,a=t.call(e,"constructor"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!a&&!i)return!1;for(r in e);return"undefined"===typeof r||t.call(e,r)},s=function(e,t){r&&"__proto__"===t.name?r(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,n){if("__proto__"===n){if(!t.call(e,n))return;if(a)return a(e,n).value}return e[n]};e.exports=function e(){var t,n,r,a,c,u,d=arguments[0],p=1,m=arguments.length,g=!1;for("boolean"===typeof d&&(g=d,d=arguments[1]||{},p=2),(null==d||"object"!==typeof d&&"function"!==typeof d)&&(d={});p<m;++p)if(null!=(t=arguments[p]))for(n in t)r=l(d,n),d!==(a=l(t,n))&&(g&&a&&(o(a)||(c=i(a)))?(c?(c=!1,u=r&&i(r)?r:[]):u=r&&o(r)?r:{},s(d,{name:n,newValue:e(g,u,a)})):"undefined"!==typeof a&&s(d,{name:n,newValue:a}));return d}},2597:function(e){"use strict";e.exports=function(e,n){var r,a,i,o=e||"",s=n||"div",l={},c=0;for(;c<o.length;)t.lastIndex=c,i=t.exec(o),(r=o.slice(c,i?i.index:o.length))&&(a?"#"===a?l.id=r:l.className?l.className.push(r):l.className=[r]:s=r,c+=r.length),i&&(a=i[0],c++);return{type:"element",tagName:s,properties:l,children:[]}};var t=/[#.]/g},1174:function(e,t,n){"use strict";var r=n(3074),a=n(3877),i=n(2597),o=n(2533).Q,s=n(4791).Q;e.exports=function(e,t,n){var a=n?function(e){var t,n=e.length,r=-1,a={};for(;++r<n;)a[(t=e[r]).toLowerCase()]=t;return a}(n):null;return function(e,n){var r,o=i(e,t),s=Array.prototype.slice.call(arguments,2),d=o.tagName.toLowerCase();o.tagName=a&&l.call(a,d)?a[d]:d,n&&c(n,o)&&(s.unshift(n),n=null);if(n)for(r in n)p(o.properties,r,n[r]);u(o.children,s),"template"===o.tagName&&(o.content={type:"root",children:o.children},o.children=[]);return o};function p(t,n,a){var i,l,c;null!==a&&void 0!==a&&a===a&&(l=(i=r(e,n)).property,"string"===typeof(c=a)&&(i.spaceSeparated?c=o(c):i.commaSeparated?c=s(c):i.commaOrSpaceSeparated&&(c=o(s(c).join(" ")))),"style"===l&&"string"!==typeof a&&(c=function(e){var t,n=[];for(t in e)n.push([t,e[t]].join(": "));return n.join("; ")}(c)),"className"===l&&t.className&&(c=t.className.concat(c)),t[l]=function(e,t,n){var r,a,i;if("object"!==typeof n||!("length"in n))return d(e,t,n);a=n.length,r=-1,i=[];for(;++r<a;)i[r]=d(e,t,n[r]);return i}(i,l,c))}};var l={}.hasOwnProperty;function c(e,t){return"string"===typeof e||"length"in e||function(e,t){var n=t.type;if("input"===e||!n||"string"!==typeof n)return!1;if("object"===typeof t.children&&"length"in t.children)return!0;if(n=n.toLowerCase(),"button"===e)return"menu"!==n&&"submit"!==n&&"reset"!==n&&"button"!==n;return"value"in t}(t.tagName,e)}function u(e,t){var n,r;if("string"!==typeof t&&"number"!==typeof t)if("object"===typeof t&&"length"in t)for(n=-1,r=t.length;++n<r;)u(e,t[n]);else{if("object"!==typeof t||!("type"in t))throw new Error("Expected node, nodes, or string, got `"+t+"`");e.push(t)}else e.push({type:"text",value:String(t)})}function d(e,t,n){var r=n;return e.number||e.positiveNumber?isNaN(r)||""===r||(r=Number(r)):(e.boolean||e.overloadedBoolean)&&("string"!==typeof r||""!==r&&a(n)!==a(t)||(r=!0)),r}},8671:function(e,t,n){"use strict";var r=n(737),a=n(1174)(r,"div");a.displayName="html",e.exports=a},6913:function(e,t,n){"use strict";e.exports=n(8671)},4791:function(e,t){"use strict";t.Q=function(e){var t,n=[],r=String(e||""),a=r.indexOf(","),i=0,o=!1;for(;!o;)-1===a&&(a=r.length,o=!0),!(t=r.slice(i,a).trim())&&o||n.push(t),i=a+1,a=r.indexOf(",",i);return n}},3074:function(e,t,n){"use strict";var r=n(3877),a=n(3991),i=n(3416),o="data";e.exports=function(e,t){var n=r(t),p=t,m=i;if(n in e.normal)return e.property[e.normal[n]];n.length>4&&n.slice(0,4)===o&&s.test(t)&&("-"===t.charAt(4)?p=function(e){var t=e.slice(5).replace(l,d);return o+t.charAt(0).toUpperCase()+t.slice(1)}(t):t=function(e){var t=e.slice(4);if(l.test(t))return e;"-"!==(t=t.replace(c,u)).charAt(0)&&(t="-"+t);return o+t}(t),m=a);return new m(p,t)};var s=/^data[-\w.:]+$/i,l=/-[a-z]/g,c=/[A-Z]/g;function u(e){return"-"+e.toLowerCase()}function d(e){return e.charAt(1).toUpperCase()}},737:function(e,t,n){"use strict";var r=n(579),a=n(2519),i=n(6244),o=n(8446),s=n(7155),l=n(8973);e.exports=r([i,a,o,s,l])},7155:function(e,t,n){"use strict";var r=n(4530),a=n(5463),i=r.booleanish,o=r.number,s=r.spaceSeparated;e.exports=a({transform:function(e,t){return"role"===t?t:"aria-"+t.slice(4).toLowerCase()},properties:{ariaActiveDescendant:null,ariaAtomic:i,ariaAutoComplete:null,ariaBusy:i,ariaChecked:i,ariaColCount:o,ariaColIndex:o,ariaColSpan:o,ariaControls:s,ariaCurrent:null,ariaDescribedBy:s,ariaDetails:null,ariaDisabled:i,ariaDropEffect:s,ariaErrorMessage:null,ariaExpanded:i,ariaFlowTo:s,ariaGrabbed:i,ariaHasPopup:null,ariaHidden:i,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:s,ariaLevel:o,ariaLive:null,ariaModal:i,ariaMultiLine:i,ariaMultiSelectable:i,ariaOrientation:null,ariaOwns:s,ariaPlaceholder:null,ariaPosInSet:o,ariaPressed:i,ariaReadOnly:i,ariaRelevant:null,ariaRequired:i,ariaRoleDescription:s,ariaRowCount:o,ariaRowIndex:o,ariaRowSpan:o,ariaSelected:i,ariaSetSize:o,ariaSort:null,ariaValueMax:o,ariaValueMin:o,ariaValueNow:o,ariaValueText:null,role:null}})},8973:function(e,t,n){"use strict";var r=n(4530),a=n(5463),i=n(6101),o=r.boolean,s=r.overloadedBoolean,l=r.booleanish,c=r.number,u=r.spaceSeparated,d=r.commaSeparated;e.exports=a({space:"html",attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},transform:i,mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:d,acceptCharset:u,accessKey:u,action:null,allow:null,allowFullScreen:o,allowPaymentRequest:o,allowUserMedia:o,alt:null,as:null,async:o,autoCapitalize:null,autoComplete:u,autoFocus:o,autoPlay:o,capture:o,charSet:null,checked:o,cite:null,className:u,cols:c,colSpan:null,content:null,contentEditable:l,controls:o,controlsList:u,coords:c|d,crossOrigin:null,data:null,dateTime:null,decoding:null,default:o,defer:o,dir:null,dirName:null,disabled:o,download:s,draggable:l,encType:null,enterKeyHint:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:o,formTarget:null,headers:u,height:c,hidden:o,high:c,href:null,hrefLang:null,htmlFor:u,httpEquiv:u,id:null,imageSizes:null,imageSrcSet:d,inputMode:null,integrity:null,is:null,isMap:o,itemId:null,itemProp:u,itemRef:u,itemScope:o,itemType:u,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:o,low:c,manifest:null,max:null,maxLength:c,media:null,method:null,min:null,minLength:c,multiple:o,muted:o,name:null,nonce:null,noModule:o,noValidate:o,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforePrint:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextMenu:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:o,optimum:c,pattern:null,ping:u,placeholder:null,playsInline:o,poster:null,preload:null,readOnly:o,referrerPolicy:null,rel:u,required:o,reversed:o,rows:c,rowSpan:c,sandbox:u,scope:null,scoped:o,seamless:o,selected:o,shape:null,size:c,sizes:null,slot:null,span:c,spellCheck:l,src:null,srcDoc:null,srcLang:null,srcSet:d,start:c,step:null,style:null,tabIndex:c,target:null,title:null,translate:null,type:null,typeMustMatch:o,useMap:null,value:l,width:c,wrap:null,align:null,aLink:null,archive:u,axis:null,background:null,bgColor:null,border:c,borderColor:null,bottomMargin:c,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:o,declare:o,event:null,face:null,frame:null,frameBorder:null,hSpace:c,leftMargin:c,link:null,longDesc:null,lowSrc:null,marginHeight:c,marginWidth:c,noResize:o,noHref:o,noShade:o,noWrap:o,object:null,profile:null,prompt:null,rev:null,rightMargin:c,rules:null,scheme:null,scrolling:l,standby:null,summary:null,text:null,topMargin:c,valueType:null,version:null,vAlign:null,vLink:null,vSpace:c,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:o,disableRemotePlayback:o,prefix:null,property:null,results:c,security:null,unselectable:null}})},6101:function(e,t,n){"use strict";var r=n(846);e.exports=function(e,t){return r(e,t.toLowerCase())}},846:function(e){"use strict";e.exports=function(e,t){return t in e?e[t]:t}},5463:function(e,t,n){"use strict";var r=n(3877),a=n(4243),i=n(3991);e.exports=function(e){var t,n,o=e.space,s=e.mustUseProperty||[],l=e.attributes||{},c=e.properties,u=e.transform,d={},p={};for(t in c)n=new i(t,u(l,t),c[t],o),-1!==s.indexOf(t)&&(n.mustUseProperty=!0),d[t]=n,p[r(t)]=t,p[r(n.attribute)]=t;return new a(d,p,o)}},3991:function(e,t,n){"use strict";var r=n(3416),a=n(4530);e.exports=s,s.prototype=new r,s.prototype.defined=!0;var i=["boolean","booleanish","overloadedBoolean","number","commaSeparated","spaceSeparated","commaOrSpaceSeparated"],o=i.length;function s(e,t,n,s){var c,u=-1;for(l(this,"space",s),r.call(this,e,t);++u<o;)l(this,c=i[u],(n&a[c])===a[c])}function l(e,t,n){n&&(e[t]=n)}},3416:function(e){"use strict";e.exports=n;var t=n.prototype;function n(e,t){this.property=e,this.attribute=t}t.space=null,t.attribute=null,t.property=null,t.boolean=!1,t.booleanish=!1,t.overloadedBoolean=!1,t.number=!1,t.commaSeparated=!1,t.spaceSeparated=!1,t.commaOrSpaceSeparated=!1,t.mustUseProperty=!1,t.defined=!1},579:function(e,t,n){"use strict";var r=n(5887),a=n(4243);e.exports=function(e){var t,n,i=e.length,o=[],s=[],l=-1;for(;++l<i;)t=e[l],o.push(t.property),s.push(t.normal),n=t.space;return new a(r.apply(null,o),r.apply(null,s),n)}},4243:function(e){"use strict";e.exports=n;var t=n.prototype;function n(e,t,n){this.property=e,this.normal=t,n&&(this.space=n)}t.space=null,t.normal={},t.property={}},4530:function(e,t){"use strict";var n=0;function r(){return Math.pow(2,++n)}t.boolean=r(),t.booleanish=r(),t.overloadedBoolean=r(),t.number=r(),t.spaceSeparated=r(),t.commaSeparated=r(),t.commaOrSpaceSeparated=r()},2519:function(e,t,n){"use strict";var r=n(5463);e.exports=r({space:"xlink",transform:function(e,t){return"xlink:"+t.slice(5).toLowerCase()},properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null}})},6244:function(e,t,n){"use strict";var r=n(5463);e.exports=r({space:"xml",transform:function(e,t){return"xml:"+t.slice(3).toLowerCase()},properties:{xmlLang:null,xmlBase:null,xmlSpace:null}})},8446:function(e,t,n){"use strict";var r=n(5463),a=n(6101);e.exports=r({space:"xmlns",attributes:{xmlnsxlink:"xmlns:xlink"},transform:a,properties:{xmlns:null,xmlnsXLink:null}})},3877:function(e){"use strict";e.exports=function(e){return e.toLowerCase()}},2533:function(e,t){"use strict";t.Q=function(e){var t=String(e||"").trim();return""===t?[]:t.split(n)};var n=/[ \t\n\r\f]+/g},1065:function(e){var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,r=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,s=/^[;\s]*/,l=/^\s+|\s+$/g,c="";function u(e){return e?e.replace(l,c):c}e.exports=function(e,l){if("string"!==typeof e)throw new TypeError("First argument must be a string");if(!e)return[];l=l||{};var d=1,p=1;function m(e){var t=e.match(n);t&&(d+=t.length);var r=e.lastIndexOf("\n");p=~r?e.length-r:p+e.length}function g(){var e={line:d,column:p};return function(t){return t.position=new h(e),y(),t}}function h(e){this.start=e,this.end={line:d,column:p},this.source=l.source}h.prototype.content=e;var f=[];function b(t){var n=new Error(l.source+":"+d+":"+p+": "+t);if(n.reason=t,n.filename=l.source,n.line=d,n.column=p,n.source=e,!l.silent)throw n;f.push(n)}function E(t){var n=t.exec(e);if(n){var r=n[0];return m(r),e=e.slice(r.length),n}}function y(){E(r)}function T(e){var t;for(e=e||[];t=S();)!1!==t&&e.push(t);return e}function S(){var t=g();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var n=2;c!=e.charAt(n)&&("*"!=e.charAt(n)||"/"!=e.charAt(n+1));)++n;if(n+=2,c===e.charAt(n-1))return b("End of comment missing");var r=e.slice(2,n-2);return p+=2,m(r),e=e.slice(n),p+=2,t({type:"comment",comment:r})}}function v(){var e=g(),n=E(a);if(n){if(S(),!E(i))return b("property missing ':'");var r=E(o),l=e({type:"declaration",property:u(n[0].replace(t,c)),value:r?u(r[0].replace(t,c)):c});return E(s),l}}return y(),function(){var e,t=[];for(T(t);e=v();)!1!==e&&(t.push(e),T(t));return t}()}},6517:function(e){"use strict";e.exports=function(e){var t="string"===typeof e?e.charCodeAt(0):e;return t>=97&&t<=122||t>=65&&t<=90}},4929:function(e,t,n){"use strict";var r=n(6517),a=n(7194);e.exports=function(e){return r(e)||a(e)}},5586:function(e){e.exports=function(e){return null!=e&&null!=e.constructor&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},7194:function(e){"use strict";e.exports=function(e){var t="string"===typeof e?e.charCodeAt(0):e;return t>=48&&t<=57}},5504:function(e){"use strict";e.exports=function(e){var t="string"===typeof e?e.charCodeAt(0):e;return t>=97&&t<=102||t>=65&&t<=70||t>=48&&t<=57}},6891:function(e){"use strict";var t;e.exports=function(e){var n,r="&"+e+";";if((t=t||document.createElement("i")).innerHTML=r,59===(n=t.textContent).charCodeAt(n.length-1)&&"semi"!==e)return!1;return n!==r&&n}},5434:function(e,t,n){"use strict";var r=n(7452),a=n(3580),i=n(7194),o=n(5504),s=n(4929),l=n(6891);e.exports=function(e,t){var n,i,o={};t||(t={});for(i in p)n=t[i],o[i]=null===n||void 0===n?p[i]:n;(o.position.indent||o.position.start)&&(o.indent=o.position.indent||[],o.position=o.position.start);return function(e,t){var n,i,o,p,S,v,A,k,w,_,C,N,I,x,R,O,L,P,D,M=t.additional,F=t.nonTerminated,U=t.text,B=t.reference,G=t.warning,H=t.textContext,z=t.referenceContext,$=t.warningContext,V=t.position,j=t.indent||[],W=e.length,q=0,K=-1,X=V.column||1,Y=V.line||1,Z="",Q=[];"string"===typeof M&&(M=M.charCodeAt(0));O=J(),k=G?ee:d,q--,W++;for(;++q<W;)if(10===S&&(X=j[K]||1),38===(S=e.charCodeAt(q))){if(9===(A=e.charCodeAt(q+1))||10===A||12===A||32===A||38===A||60===A||A!==A||M&&A===M){Z+=u(S),X++;continue}for(N=I=q+1,D=I,35===A?(D=++N,88===(A=e.charCodeAt(D))||120===A?(x=g,D=++N):x=h):x=m,n="",C="",p="",R=b[x],D--;++D<W&&R(A=e.charCodeAt(D));)p+=u(A),x===m&&c.call(r,p)&&(n=p,C=r[p]);(o=59===e.charCodeAt(D))&&(D++,(i=x===m&&l(p))&&(n=p,C=i)),P=1+D-I,(o||F)&&(p?x===m?(o&&!C?k(5,1):(n!==p&&(P=1+(D=N+n.length)-N,o=!1),o||(w=n?1:3,t.attribute?61===(A=e.charCodeAt(D))?(k(w,P),C=null):s(A)?C=null:k(w,P):k(w,P))),v=C):(o||k(2,P),y(v=parseInt(p,f[x]))?(k(7,P),v=u(65533)):v in a?(k(6,P),v=a[v]):(_="",T(v)&&k(6,P),v>65535&&(_+=u((v-=65536)>>>10|55296),v=56320|1023&v),v=_+u(v))):x!==m&&k(4,P)),v?(te(),O=J(),q=D-1,X+=D-I+1,Q.push(v),(L=J()).offset++,B&&B.call(z,v,{start:O,end:L},e.slice(I-1,D)),O=L):(p=e.slice(I-1,D),Z+=p,X+=p.length,q=D-1)}else 10===S&&(Y++,K++,X=0),S===S?(Z+=u(S),X++):te();return Q.join("");function J(){return{line:Y,column:X,offset:q+(V.offset||0)}}function ee(e,t){var n=J();n.column+=t,n.offset+=t,G.call($,E[e],n,e)}function te(){Z&&(Q.push(Z),U&&U.call(H,Z,{start:O,end:J()}),Z="")}}(e,o)};var c={}.hasOwnProperty,u=String.fromCharCode,d=Function.prototype,p={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:!1,nonTerminated:!0},m="named",g="hexadecimal",h="decimal",f={hexadecimal:16,decimal:10},b={};b.named=s,b[h]=i,b[g]=o;var E={};function y(e){return e>=55296&&e<=57343||e>1114111}function T(e){return e>=1&&e<=8||11===e||e>=13&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||65535===(65535&e)||65534===(65535&e)}E[1]="Named character references must be terminated by a semicolon",E[2]="Numeric character references must be terminated by a semicolon",E[3]="Named character references cannot be empty",E[4]="Numeric character references cannot be empty",E[5]="Named character references must be known",E[6]="Numeric character references cannot be disallowed",E[7]="Numeric character references cannot be outside the permissible Unicode range"},4802:function(e,t,n){"use strict";var r=n(9539).DOCUMENT_MODE,a="html",i=["+//silmaril//dtd html pro v0r11 19970101//","-//as//dtd html 3.0 aswedit + extensions//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//o'reilly and associates//dtd html extended relaxed 1.0//","-//sq//dtd html 2.0 hotmetal + extensions//","-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//","-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//","-//spyglass//dtd html 2.0 extended//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//"],o=i.concat(["-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"]),s=["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"],l=["-//w3c//dtd xhtml 1.0 frameset//","-//w3c//dtd xhtml 1.0 transitional//"],c=l.concat(["-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"]);function u(e){var t=-1!==e.indexOf('"')?"'":'"';return t+e+t}function d(e,t){for(var n=0;n<t.length;n++)if(0===e.indexOf(t[n]))return!0;return!1}t.isConforming=function(e){return e.name===a&&null===e.publicId&&(null===e.systemId||"about:legacy-compat"===e.systemId)},t.getDocumentMode=function(e){if(e.name!==a)return r.QUIRKS;var t=e.systemId;if(t&&"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"===t.toLowerCase())return r.QUIRKS;var n=e.publicId;if(null!==n){if(n=n.toLowerCase(),s.indexOf(n)>-1)return r.QUIRKS;var u=null===t?o:i;if(d(n,u))return r.QUIRKS;if(d(n,u=null===t?l:c))return r.LIMITED_QUIRKS}return r.NO_QUIRKS},t.serializeContent=function(e,t,n){var r="!DOCTYPE ";return e&&(r+=e),t?r+=" PUBLIC "+u(t):n&&(r+=" SYSTEM"),null!==n&&(r+=" "+u(n)),r}},4551:function(e){"use strict";e.exports={controlCharacterInInputStream:"control-character-in-input-stream",noncharacterInInputStream:"noncharacter-in-input-stream",surrogateInInputStream:"surrogate-in-input-stream",nonVoidHtmlElementStartTagWithTrailingSolidus:"non-void-html-element-start-tag-with-trailing-solidus",endTagWithAttributes:"end-tag-with-attributes",endTagWithTrailingSolidus:"end-tag-with-trailing-solidus",unexpectedSolidusInTag:"unexpected-solidus-in-tag",unexpectedNullCharacter:"unexpected-null-character",unexpectedQuestionMarkInsteadOfTagName:"unexpected-question-mark-instead-of-tag-name",invalidFirstCharacterOfTagName:"invalid-first-character-of-tag-name",unexpectedEqualsSignBeforeAttributeName:"unexpected-equals-sign-before-attribute-name",missingEndTagName:"missing-end-tag-name",unexpectedCharacterInAttributeName:"unexpected-character-in-attribute-name",unknownNamedCharacterReference:"unknown-named-character-reference",missingSemicolonAfterCharacterReference:"missing-semicolon-after-character-reference",unexpectedCharacterAfterDoctypeSystemIdentifier:"unexpected-character-after-doctype-system-identifier",unexpectedCharacterInUnquotedAttributeValue:"unexpected-character-in-unquoted-attribute-value",eofBeforeTagName:"eof-before-tag-name",eofInTag:"eof-in-tag",missingAttributeValue:"missing-attribute-value",missingWhitespaceBetweenAttributes:"missing-whitespace-between-attributes",missingWhitespaceAfterDoctypePublicKeyword:"missing-whitespace-after-doctype-public-keyword",missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers:"missing-whitespace-between-doctype-public-and-system-identifiers",missingWhitespaceAfterDoctypeSystemKeyword:"missing-whitespace-after-doctype-system-keyword",missingQuoteBeforeDoctypePublicIdentifier:"missing-quote-before-doctype-public-identifier",missingQuoteBeforeDoctypeSystemIdentifier:"missing-quote-before-doctype-system-identifier",missingDoctypePublicIdentifier:"missing-doctype-public-identifier",missingDoctypeSystemIdentifier:"missing-doctype-system-identifier",abruptDoctypePublicIdentifier:"abrupt-doctype-public-identifier",abruptDoctypeSystemIdentifier:"abrupt-doctype-system-identifier",cdataInHtmlContent:"cdata-in-html-content",incorrectlyOpenedComment:"incorrectly-opened-comment",eofInScriptHtmlCommentLikeText:"eof-in-script-html-comment-like-text",eofInDoctype:"eof-in-doctype",nestedComment:"nested-comment",abruptClosingOfEmptyComment:"abrupt-closing-of-empty-comment",eofInComment:"eof-in-comment",incorrectlyClosedComment:"incorrectly-closed-comment",eofInCdata:"eof-in-cdata",absenceOfDigitsInNumericCharacterReference:"absence-of-digits-in-numeric-character-reference",nullCharacterReference:"null-character-reference",surrogateCharacterReference:"surrogate-character-reference",characterReferenceOutsideUnicodeRange:"character-reference-outside-unicode-range",controlCharacterReference:"control-character-reference",noncharacterCharacterReference:"noncharacter-character-reference",missingWhitespaceBeforeDoctypeName:"missing-whitespace-before-doctype-name",missingDoctypeName:"missing-doctype-name",invalidCharacterSequenceAfterDoctypeName:"invalid-character-sequence-after-doctype-name",duplicateAttribute:"duplicate-attribute",nonConformingDoctype:"non-conforming-doctype",missingDoctype:"missing-doctype",misplacedDoctype:"misplaced-doctype",endTagWithoutMatchingOpenElement:"end-tag-without-matching-open-element",closingOfElementWithOpenChildElements:"closing-of-element-with-open-child-elements",disallowedContentInNoscriptInHead:"disallowed-content-in-noscript-in-head",openElementsLeftAfterEof:"open-elements-left-after-eof",abandonedHeadElementChild:"abandoned-head-element-child",misplacedStartTagForHeadElement:"misplaced-start-tag-for-head-element",nestedNoscriptInHead:"nested-noscript-in-head",eofInElementThatCanContainOnlyText:"eof-in-element-that-can-contain-only-text"}},5478:function(e,t,n){"use strict";var r,a=n(8416).default,i=n(3085),o=n(9539),s=o.TAG_NAMES,l=o.NAMESPACES,c=o.ATTRS,u="text/html",d="application/xhtml+xml",p={attributename:"attributeName",attributetype:"attributeType",basefrequency:"baseFrequency",baseprofile:"baseProfile",calcmode:"calcMode",clippathunits:"clipPathUnits",diffuseconstant:"diffuseConstant",edgemode:"edgeMode",filterunits:"filterUnits",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",limitingconeangle:"limitingConeAngle",markerheight:"markerHeight",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textlength:"textLength",viewbox:"viewBox",viewtarget:"viewTarget",xchannelselector:"xChannelSelector",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan"},m={"xlink:actuate":{prefix:"xlink",name:"actuate",namespace:l.XLINK},"xlink:arcrole":{prefix:"xlink",name:"arcrole",namespace:l.XLINK},"xlink:href":{prefix:"xlink",name:"href",namespace:l.XLINK},"xlink:role":{prefix:"xlink",name:"role",namespace:l.XLINK},"xlink:show":{prefix:"xlink",name:"show",namespace:l.XLINK},"xlink:title":{prefix:"xlink",name:"title",namespace:l.XLINK},"xlink:type":{prefix:"xlink",name:"type",namespace:l.XLINK},"xml:base":{prefix:"xml",name:"base",namespace:l.XML},"xml:lang":{prefix:"xml",name:"lang",namespace:l.XML},"xml:space":{prefix:"xml",name:"space",namespace:l.XML},xmlns:{prefix:"",name:"xmlns",namespace:l.XMLNS},"xmlns:xlink":{prefix:"xmlns",name:"xlink",namespace:l.XMLNS}},g=t.SVG_TAG_NAMES_ADJUSTMENT_MAP={altglyph:"altGlyph",altglyphdef:"altGlyphDef",altglyphitem:"altGlyphItem",animatecolor:"animateColor",animatemotion:"animateMotion",animatetransform:"animateTransform",clippath:"clipPath",feblend:"feBlend",fecolormatrix:"feColorMatrix",fecomponenttransfer:"feComponentTransfer",fecomposite:"feComposite",feconvolvematrix:"feConvolveMatrix",fediffuselighting:"feDiffuseLighting",fedisplacementmap:"feDisplacementMap",fedistantlight:"feDistantLight",feflood:"feFlood",fefunca:"feFuncA",fefuncb:"feFuncB",fefuncg:"feFuncG",fefuncr:"feFuncR",fegaussianblur:"feGaussianBlur",feimage:"feImage",femerge:"feMerge",femergenode:"feMergeNode",femorphology:"feMorphology",feoffset:"feOffset",fepointlight:"fePointLight",fespecularlighting:"feSpecularLighting",fespotlight:"feSpotLight",fetile:"feTile",feturbulence:"feTurbulence",foreignobject:"foreignObject",glyphref:"glyphRef",lineargradient:"linearGradient",radialgradient:"radialGradient",textpath:"textPath"},h=(a(r={},s.B,!0),a(r,s.BIG,!0),a(r,s.BLOCKQUOTE,!0),a(r,s.BODY,!0),a(r,s.BR,!0),a(r,s.CENTER,!0),a(r,s.CODE,!0),a(r,s.DD,!0),a(r,s.DIV,!0),a(r,s.DL,!0),a(r,s.DT,!0),a(r,s.EM,!0),a(r,s.EMBED,!0),a(r,s.H1,!0),a(r,s.H2,!0),a(r,s.H3,!0),a(r,s.H4,!0),a(r,s.H5,!0),a(r,s.H6,!0),a(r,s.HEAD,!0),a(r,s.HR,!0),a(r,s.I,!0),a(r,s.IMG,!0),a(r,s.LI,!0),a(r,s.LISTING,!0),a(r,s.MENU,!0),a(r,s.META,!0),a(r,s.NOBR,!0),a(r,s.OL,!0),a(r,s.P,!0),a(r,s.PRE,!0),a(r,s.RUBY,!0),a(r,s.S,!0),a(r,s.SMALL,!0),a(r,s.SPAN,!0),a(r,s.STRONG,!0),a(r,s.STRIKE,!0),a(r,s.SUB,!0),a(r,s.SUP,!0),a(r,s.TABLE,!0),a(r,s.TT,!0),a(r,s.U,!0),a(r,s.UL,!0),a(r,s.VAR,!0),r);t.causesExit=function(e){var t=e.tagName;return!!(t===s.FONT&&(null!==i.getTokenAttr(e,c.COLOR)||null!==i.getTokenAttr(e,c.SIZE)||null!==i.getTokenAttr(e,c.FACE)))||h[t]},t.adjustTokenMathMLAttrs=function(e){for(var t=0;t<e.attrs.length;t++)if("definitionurl"===e.attrs[t].name){e.attrs[t].name="definitionURL";break}},t.adjustTokenSVGAttrs=function(e){for(var t=0;t<e.attrs.length;t++){var n=p[e.attrs[t].name];n&&(e.attrs[t].name=n)}},t.adjustTokenXMLAttrs=function(e){for(var t=0;t<e.attrs.length;t++){var n=m[e.attrs[t].name];n&&(e.attrs[t].prefix=n.prefix,e.attrs[t].name=n.name,e.attrs[t].namespace=n.namespace)}},t.adjustTokenSVGTagName=function(e){var t=g[e.tagName];t&&(e.tagName=t)},t.isIntegrationPoint=function(e,t,n,r){return!(r&&r!==l.HTML||!function(e,t,n){if(t===l.MATHML&&e===s.ANNOTATION_XML)for(var r=0;r<n.length;r++)if(n[r].name===c.ENCODING){var a=n[r].value.toLowerCase();return a===u||a===d}return t===l.SVG&&(e===s.FOREIGN_OBJECT||e===s.DESC||e===s.TITLE)}(e,t,n))||!(r&&r!==l.MATHML||!function(e,t){return t===l.MATHML&&(e===s.MI||e===s.MO||e===s.MN||e===s.MS||e===s.MTEXT)}(e,t))}},9539:function(e,t,n){"use strict";var r,a,i,o,s=n(8416).default,l=t.NAMESPACES={HTML:"http://www.w3.org/1999/xhtml",MATHML:"http://www.w3.org/1998/Math/MathML",SVG:"http://www.w3.org/2000/svg",XLINK:"http://www.w3.org/1999/xlink",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"};t.ATTRS={TYPE:"type",ACTION:"action",ENCODING:"encoding",PROMPT:"prompt",NAME:"name",COLOR:"color",FACE:"face",SIZE:"size"},t.DOCUMENT_MODE={NO_QUIRKS:"no-quirks",QUIRKS:"quirks",LIMITED_QUIRKS:"limited-quirks"};var c=t.TAG_NAMES={A:"a",ADDRESS:"address",ANNOTATION_XML:"annotation-xml",APPLET:"applet",AREA:"area",ARTICLE:"article",ASIDE:"aside",B:"b",BASE:"base",BASEFONT:"basefont",BGSOUND:"bgsound",BIG:"big",BLOCKQUOTE:"blockquote",BODY:"body",BR:"br",BUTTON:"button",CAPTION:"caption",CENTER:"center",CODE:"code",COL:"col",COLGROUP:"colgroup",DD:"dd",DESC:"desc",DETAILS:"details",DIALOG:"dialog",DIR:"dir",DIV:"div",DL:"dl",DT:"dt",EM:"em",EMBED:"embed",FIELDSET:"fieldset",FIGCAPTION:"figcaption",FIGURE:"figure",FONT:"font",FOOTER:"footer",FOREIGN_OBJECT:"foreignObject",FORM:"form",FRAME:"frame",FRAMESET:"frameset",H1:"h1",H2:"h2",H3:"h3",H4:"h4",H5:"h5",H6:"h6",HEAD:"head",HEADER:"header",HGROUP:"hgroup",HR:"hr",HTML:"html",I:"i",IMG:"img",IMAGE:"image",INPUT:"input",IFRAME:"iframe",KEYGEN:"keygen",LABEL:"label",LI:"li",LINK:"link",LISTING:"listing",MAIN:"main",MALIGNMARK:"malignmark",MARQUEE:"marquee",MATH:"math",MENU:"menu",META:"meta",MGLYPH:"mglyph",MI:"mi",MO:"mo",MN:"mn",MS:"ms",MTEXT:"mtext",NAV:"nav",NOBR:"nobr",NOFRAMES:"noframes",NOEMBED:"noembed",NOSCRIPT:"noscript",OBJECT:"object",OL:"ol",OPTGROUP:"optgroup",OPTION:"option",P:"p",PARAM:"param",PLAINTEXT:"plaintext",PRE:"pre",RB:"rb",RP:"rp",RT:"rt",RTC:"rtc",RUBY:"ruby",S:"s",SCRIPT:"script",SECTION:"section",SELECT:"select",SOURCE:"source",SMALL:"small",SPAN:"span",STRIKE:"strike",STRONG:"strong",STYLE:"style",SUB:"sub",SUMMARY:"summary",SUP:"sup",TABLE:"table",TBODY:"tbody",TEMPLATE:"template",TEXTAREA:"textarea",TFOOT:"tfoot",TD:"td",TH:"th",THEAD:"thead",TITLE:"title",TR:"tr",TRACK:"track",TT:"tt",U:"u",UL:"ul",SVG:"svg",VAR:"var",WBR:"wbr",XMP:"xmp"};t.SPECIAL_ELEMENTS=(s(o={},l.HTML,(s(r={},c.ADDRESS,!0),s(r,c.APPLET,!0),s(r,c.AREA,!0),s(r,c.ARTICLE,!0),s(r,c.ASIDE,!0),s(r,c.BASE,!0),s(r,c.BASEFONT,!0),s(r,c.BGSOUND,!0),s(r,c.BLOCKQUOTE,!0),s(r,c.BODY,!0),s(r,c.BR,!0),s(r,c.BUTTON,!0),s(r,c.CAPTION,!0),s(r,c.CENTER,!0),s(r,c.COL,!0),s(r,c.COLGROUP,!0),s(r,c.DD,!0),s(r,c.DETAILS,!0),s(r,c.DIR,!0),s(r,c.DIV,!0),s(r,c.DL,!0),s(r,c.DT,!0),s(r,c.EMBED,!0),s(r,c.FIELDSET,!0),s(r,c.FIGCAPTION,!0),s(r,c.FIGURE,!0),s(r,c.FOOTER,!0),s(r,c.FORM,!0),s(r,c.FRAME,!0),s(r,c.FRAMESET,!0),s(r,c.H1,!0),s(r,c.H2,!0),s(r,c.H3,!0),s(r,c.H4,!0),s(r,c.H5,!0),s(r,c.H6,!0),s(r,c.HEAD,!0),s(r,c.HEADER,!0),s(r,c.HGROUP,!0),s(r,c.HR,!0),s(r,c.HTML,!0),s(r,c.IFRAME,!0),s(r,c.IMG,!0),s(r,c.INPUT,!0),s(r,c.LI,!0),s(r,c.LINK,!0),s(r,c.LISTING,!0),s(r,c.MAIN,!0),s(r,c.MARQUEE,!0),s(r,c.MENU,!0),s(r,c.META,!0),s(r,c.NAV,!0),s(r,c.NOEMBED,!0),s(r,c.NOFRAMES,!0),s(r,c.NOSCRIPT,!0),s(r,c.OBJECT,!0),s(r,c.OL,!0),s(r,c.P,!0),s(r,c.PARAM,!0),s(r,c.PLAINTEXT,!0),s(r,c.PRE,!0),s(r,c.SCRIPT,!0),s(r,c.SECTION,!0),s(r,c.SELECT,!0),s(r,c.SOURCE,!0),s(r,c.STYLE,!0),s(r,c.SUMMARY,!0),s(r,c.TABLE,!0),s(r,c.TBODY,!0),s(r,c.TD,!0),s(r,c.TEMPLATE,!0),s(r,c.TEXTAREA,!0),s(r,c.TFOOT,!0),s(r,c.TH,!0),s(r,c.THEAD,!0),s(r,c.TITLE,!0),s(r,c.TR,!0),s(r,c.TRACK,!0),s(r,c.UL,!0),s(r,c.WBR,!0),s(r,c.XMP,!0),r)),s(o,l.MATHML,(s(a={},c.MI,!0),s(a,c.MO,!0),s(a,c.MN,!0),s(a,c.MS,!0),s(a,c.MTEXT,!0),s(a,c.ANNOTATION_XML,!0),a)),s(o,l.SVG,(s(i={},c.TITLE,!0),s(i,c.FOREIGN_OBJECT,!0),s(i,c.DESC,!0),i)),o)},4529:function(e,t){"use strict";var n=[65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];t.REPLACEMENT_CHARACTER="\ufffd",t.CODE_POINTS={EOF:-1,NULL:0,TABULATION:9,CARRIAGE_RETURN:13,LINE_FEED:10,FORM_FEED:12,SPACE:32,EXCLAMATION_MARK:33,QUOTATION_MARK:34,NUMBER_SIGN:35,AMPERSAND:38,APOSTROPHE:39,HYPHEN_MINUS:45,SOLIDUS:47,DIGIT_0:48,DIGIT_9:57,SEMICOLON:59,LESS_THAN_SIGN:60,EQUALS_SIGN:61,GREATER_THAN_SIGN:62,QUESTION_MARK:63,LATIN_CAPITAL_A:65,LATIN_CAPITAL_F:70,LATIN_CAPITAL_X:88,LATIN_CAPITAL_Z:90,RIGHT_SQUARE_BRACKET:93,GRAVE_ACCENT:96,LATIN_SMALL_A:97,LATIN_SMALL_F:102,LATIN_SMALL_X:120,LATIN_SMALL_Z:122,REPLACEMENT_CHARACTER:65533},t.CODE_POINT_SEQUENCES={DASH_DASH_STRING:[45,45],DOCTYPE_STRING:[68,79,67,84,89,80,69],CDATA_START_STRING:[91,67,68,65,84,65,91],SCRIPT_STRING:[115,99,114,105,112,116],PUBLIC_STRING:[80,85,66,76,73,67],SYSTEM_STRING:[83,89,83,84,69,77]},t.isSurrogate=function(e){return e>=55296&&e<=57343},t.isSurrogatePair=function(e){return e>=56320&&e<=57343},t.getSurrogatePairCodePoint=function(e,t){return 1024*(e-55296)+9216+t},t.isControlCodePoint=function(e){return 32!==e&&10!==e&&13!==e&&9!==e&&12!==e&&e>=1&&e<=31||e>=127&&e<=159},t.isUndefinedCodePoint=function(e){return e>=64976&&e<=65007||n.indexOf(e)>-1}},6915:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(1655).default,o=n(6389).default,s=function(e){i(n,e);var t=o(n);function n(e,a){var i;return r(this,n),(i=t.call(this,e)).posTracker=null,i.onParseError=a.onParseError,i}return a(n,[{key:"_setErrorLocation",value:function(e){e.startLine=e.endLine=this.posTracker.line,e.startCol=e.endCol=this.posTracker.col,e.startOffset=e.endOffset=this.posTracker.offset}},{key:"_reportError",value:function(e){var t={code:e,startLine:-1,startCol:-1,startOffset:-1,endLine:-1,endCol:-1,endOffset:-1};this._setErrorLocation(t),this.onParseError(t)}},{key:"_getOverriddenMethods",value:function(e){return{_err:function(t){e._reportError(t)}}}}]),n}(n(1458));e.exports=s},9839:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(1655).default,o=n(6389).default,s=n(6915),l=n(5611),c=n(2640),u=n(1458),d=function(e){i(n,e);var t=o(n);function n(e,a){var i;return r(this,n),(i=t.call(this,e,a)).opts=a,i.ctLoc=null,i.locBeforeToken=!1,i}return a(n,[{key:"_setErrorLocation",value:function(e){this.ctLoc&&(e.startLine=this.ctLoc.startLine,e.startCol=this.ctLoc.startCol,e.startOffset=this.ctLoc.startOffset,e.endLine=this.locBeforeToken?this.ctLoc.startLine:this.ctLoc.endLine,e.endCol=this.locBeforeToken?this.ctLoc.startCol:this.ctLoc.endCol,e.endOffset=this.locBeforeToken?this.ctLoc.startOffset:this.ctLoc.endOffset)}},{key:"_getOverriddenMethods",value:function(e,t){return{_bootstrap:function(n,r){t._bootstrap.call(this,n,r),u.install(this.tokenizer,l,e.opts),u.install(this.tokenizer,c)},_processInputToken:function(n){e.ctLoc=n.location,t._processInputToken.call(this,n)},_err:function(t,n){e.locBeforeToken=n&&n.beforeToken,e._reportError(t)}}}}]),n}(s);e.exports=d},2459:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(1588).default,o=n(3808).default,s=n(1655).default,l=n(6389).default,c=n(6915),u=n(64),d=n(1458),p=function(e){s(n,e);var t=l(n);function n(e,a){var i;return r(this,n),(i=t.call(this,e,a)).posTracker=d.install(e,u),i.lastErrOffset=-1,i}return a(n,[{key:"_reportError",value:function(e){this.lastErrOffset!==this.posTracker.offset&&(this.lastErrOffset=this.posTracker.offset,i(o(n.prototype),"_reportError",this).call(this,e))}}]),n}(c);e.exports=p},5611:function(e,t,n){"use strict";var r=n(9728).default,a=n(6690).default,i=n(1655).default,o=n(6389).default,s=n(6915),l=n(2459),c=n(1458),u=function(e){i(n,e);var t=o(n);function n(e,r){var i;a(this,n),i=t.call(this,e,r);var o=c.install(e.preprocessor,l,r);return i.posTracker=o.posTracker,i}return r(n)}(s);e.exports=u},4936:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(1655).default,o=n(6389).default,s=function(e){i(n,e);var t=o(n);function n(e,a){var i;return r(this,n),(i=t.call(this,e)).onItemPop=a.onItemPop,i}return a(n,[{key:"_getOverriddenMethods",value:function(e,t){return{pop:function(){e.onItemPop(this.current),t.pop.call(this)},popAllUpToHtmlElement:function(){for(var n=this.stackTop;n>0;n--)e.onItemPop(this.items[n]);t.popAllUpToHtmlElement.call(this)},remove:function(n){e.onItemPop(this.current),t.remove.call(this,n)}}}}]),n}(n(1458));e.exports=s},9037:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(1655).default,o=n(6389).default,s=n(1458),l=n(3085),c=n(2640),u=n(4936),d=n(9539).TAG_NAMES,p=function(e){i(n,e);var t=o(n);function n(e){var a;return r(this,n),(a=t.call(this,e)).parser=e,a.treeAdapter=a.parser.treeAdapter,a.posTracker=null,a.lastStartTagToken=null,a.lastFosterParentingLocation=null,a.currentToken=null,a}return a(n,[{key:"_setStartLocation",value:function(e){var t=null;this.lastStartTagToken&&((t=Object.assign({},this.lastStartTagToken.location)).startTag=this.lastStartTagToken.location),this.treeAdapter.setNodeSourceCodeLocation(e,t)}},{key:"_setEndLocation",value:function(e,t){if(this.treeAdapter.getNodeSourceCodeLocation(e)&&t.location){var n=t.location,r=this.treeAdapter.getTagName(e),a={};t.type===l.END_TAG_TOKEN&&r===t.tagName?(a.endTag=Object.assign({},n),a.endLine=n.endLine,a.endCol=n.endCol,a.endOffset=n.endOffset):(a.endLine=n.startLine,a.endCol=n.startCol,a.endOffset=n.startOffset),this.treeAdapter.updateNodeSourceCodeLocation(e,a)}}},{key:"_getOverriddenMethods",value:function(e,t){return{_bootstrap:function(n,r){t._bootstrap.call(this,n,r),e.lastStartTagToken=null,e.lastFosterParentingLocation=null,e.currentToken=null;var a=s.install(this.tokenizer,c);e.posTracker=a.posTracker,s.install(this.openElements,u,{onItemPop:function(t){e._setEndLocation(t,e.currentToken)}})},_runParsingLoop:function(n){t._runParsingLoop.call(this,n);for(var r=this.openElements.stackTop;r>=0;r--)e._setEndLocation(this.openElements.items[r],e.currentToken)},_processTokenInForeignContent:function(n){e.currentToken=n,t._processTokenInForeignContent.call(this,n)},_processToken:function(n){if(e.currentToken=n,t._processToken.call(this,n),n.type===l.END_TAG_TOKEN&&(n.tagName===d.HTML||n.tagName===d.BODY&&this.openElements.hasInScope(d.BODY)))for(var r=this.openElements.stackTop;r>=0;r--){var a=this.openElements.items[r];if(this.treeAdapter.getTagName(a)===n.tagName){e._setEndLocation(a,n);break}}},_setDocumentType:function(e){t._setDocumentType.call(this,e);for(var n=this.treeAdapter.getChildNodes(this.document),r=n.length,a=0;a<r;a++){var i=n[a];if(this.treeAdapter.isDocumentTypeNode(i)){this.treeAdapter.setNodeSourceCodeLocation(i,e.location);break}}},_attachElementToTree:function(n){e._setStartLocation(n),e.lastStartTagToken=null,t._attachElementToTree.call(this,n)},_appendElement:function(n,r){e.lastStartTagToken=n,t._appendElement.call(this,n,r)},_insertElement:function(n,r){e.lastStartTagToken=n,t._insertElement.call(this,n,r)},_insertTemplate:function(n){e.lastStartTagToken=n,t._insertTemplate.call(this,n);var r=this.treeAdapter.getTemplateContent(this.openElements.current);this.treeAdapter.setNodeSourceCodeLocation(r,null)},_insertFakeRootElement:function(){t._insertFakeRootElement.call(this),this.treeAdapter.setNodeSourceCodeLocation(this.openElements.current,null)},_appendCommentNode:function(e,n){t._appendCommentNode.call(this,e,n);var r=this.treeAdapter.getChildNodes(n),a=r[r.length-1];this.treeAdapter.setNodeSourceCodeLocation(a,e.location)},_findFosterParentingLocation:function(){return e.lastFosterParentingLocation=t._findFosterParentingLocation.call(this),e.lastFosterParentingLocation},_insertCharacters:function(n){t._insertCharacters.call(this,n);var r=this._shouldFosterParentOnInsertion(),a=r&&e.lastFosterParentingLocation.parent||this.openElements.currentTmplContent||this.openElements.current,i=this.treeAdapter.getChildNodes(a),o=r&&e.lastFosterParentingLocation.beforeElement?i.indexOf(e.lastFosterParentingLocation.beforeElement)-1:i.length-1,s=i[o];if(this.treeAdapter.getNodeSourceCodeLocation(s)){var l=n.location,c=l.endLine,u=l.endCol,d=l.endOffset;this.treeAdapter.updateNodeSourceCodeLocation(s,{endLine:c,endCol:u,endOffset:d})}else this.treeAdapter.setNodeSourceCodeLocation(s,n.location)}}}}]),n}(s);e.exports=p},2640:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(1655).default,o=n(6389).default,s=n(1458),l=n(3085),c=n(64),u=function(e){i(n,e);var t=o(n);function n(e){var a;return r(this,n),(a=t.call(this,e)).tokenizer=e,a.posTracker=s.install(e.preprocessor,c),a.currentAttrLocation=null,a.ctLoc=null,a}return a(n,[{key:"_getCurrentLocation",value:function(){return{startLine:this.posTracker.line,startCol:this.posTracker.col,startOffset:this.posTracker.offset,endLine:-1,endCol:-1,endOffset:-1}}},{key:"_attachCurrentAttrLocationInfo",value:function(){this.currentAttrLocation.endLine=this.posTracker.line,this.currentAttrLocation.endCol=this.posTracker.col,this.currentAttrLocation.endOffset=this.posTracker.offset;var e=this.tokenizer.currentToken,t=this.tokenizer.currentAttr;e.location.attrs||(e.location.attrs=Object.create(null)),e.location.attrs[t.name]=this.currentAttrLocation}},{key:"_getOverriddenMethods",value:function(e,t){var n={_createStartTagToken:function(){t._createStartTagToken.call(this),this.currentToken.location=e.ctLoc},_createEndTagToken:function(){t._createEndTagToken.call(this),this.currentToken.location=e.ctLoc},_createCommentToken:function(){t._createCommentToken.call(this),this.currentToken.location=e.ctLoc},_createDoctypeToken:function(n){t._createDoctypeToken.call(this,n),this.currentToken.location=e.ctLoc},_createCharacterToken:function(n,r){t._createCharacterToken.call(this,n,r),this.currentCharacterToken.location=e.ctLoc},_createEOFToken:function(){t._createEOFToken.call(this),this.currentToken.location=e._getCurrentLocation()},_createAttr:function(n){t._createAttr.call(this,n),e.currentAttrLocation=e._getCurrentLocation()},_leaveAttrName:function(n){t._leaveAttrName.call(this,n),e._attachCurrentAttrLocationInfo()},_leaveAttrValue:function(n){t._leaveAttrValue.call(this,n),e._attachCurrentAttrLocationInfo()},_emitCurrentToken:function(){var n=this.currentToken.location;this.currentCharacterToken&&(this.currentCharacterToken.location.endLine=n.startLine,this.currentCharacterToken.location.endCol=n.startCol,this.currentCharacterToken.location.endOffset=n.startOffset),this.currentToken.type===l.EOF_TOKEN?(n.endLine=n.startLine,n.endCol=n.startCol,n.endOffset=n.startOffset):(n.endLine=e.posTracker.line,n.endCol=e.posTracker.col+1,n.endOffset=e.posTracker.offset+1),t._emitCurrentToken.call(this)},_emitCurrentCharacterToken:function(){var n=this.currentCharacterToken&&this.currentCharacterToken.location;n&&-1===n.endOffset&&(n.endLine=e.posTracker.line,n.endCol=e.posTracker.col,n.endOffset=e.posTracker.offset),t._emitCurrentCharacterToken.call(this)}};return Object.keys(l.MODE).forEach((function(r){var a=l.MODE[r];n[a]=function(n){e.ctLoc=e._getCurrentLocation(),t[a].call(this,n)}})),n}}]),n}(s);e.exports=u},64:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(1655).default,o=n(6389).default,s=function(e){i(n,e);var t=o(n);function n(e){var a;return r(this,n),(a=t.call(this,e)).preprocessor=e,a.isEol=!1,a.lineStartPos=0,a.droppedBufferSize=0,a.offset=0,a.col=0,a.line=1,a}return a(n,[{key:"_getOverriddenMethods",value:function(e,t){return{advance:function(){var n=this.pos+1,r=this.html[n];return e.isEol&&(e.isEol=!1,e.line++,e.lineStartPos=n),("\n"===r||"\r"===r&&"\n"!==this.html[n+1])&&(e.isEol=!0),e.col=n-e.lineStartPos+1,e.offset=e.droppedBufferSize+n,t.advance.call(this)},retreat:function(){t.retreat.call(this),e.isEol=!1,e.col=this.pos-e.lineStartPos+1},dropParsedChunk:function(){var n=this.pos;t.dropParsedChunk.call(this);var r=n-this.pos;e.lineStartPos-=r,e.droppedBufferSize+=r,e.offset=e.droppedBufferSize+this.pos}}}}]),n}(n(1458));e.exports=s},2708:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=function(){function e(t){r(this,e),this.length=0,this.entries=[],this.treeAdapter=t,this.bookmark=null}return a(e,[{key:"_getNoahArkConditionCandidates",value:function(t){var n=[];if(this.length>=3)for(var r=this.treeAdapter.getAttrList(t).length,a=this.treeAdapter.getTagName(t),i=this.treeAdapter.getNamespaceURI(t),o=this.length-1;o>=0;o--){var s=this.entries[o];if(s.type===e.MARKER_ENTRY)break;var l=s.element,c=this.treeAdapter.getAttrList(l);this.treeAdapter.getTagName(l)===a&&this.treeAdapter.getNamespaceURI(l)===i&&c.length===r&&n.push({idx:o,attrs:c})}return n.length<3?[]:n}},{key:"_ensureNoahArkCondition",value:function(e){var t=this._getNoahArkConditionCandidates(e),n=t.length;if(n){for(var r=this.treeAdapter.getAttrList(e),a=r.length,i=Object.create(null),o=0;o<a;o++){var s=r[o];i[s.name]=s.value}for(var l=0;l<a;l++)for(var c=0;c<n;c++){var u=t[c].attrs[l];if(i[u.name]!==u.value&&(t.splice(c,1),n--),t.length<3)return}for(var d=n-1;d>=2;d--)this.entries.splice(t[d].idx,1),this.length--}}},{key:"insertMarker",value:function(){this.entries.push({type:e.MARKER_ENTRY}),this.length++}},{key:"pushElement",value:function(t,n){this._ensureNoahArkCondition(t),this.entries.push({type:e.ELEMENT_ENTRY,element:t,token:n}),this.length++}},{key:"insertElementAfterBookmark",value:function(t,n){for(var r=this.length-1;r>=0&&this.entries[r]!==this.bookmark;r--);this.entries.splice(r+1,0,{type:e.ELEMENT_ENTRY,element:t,token:n}),this.length++}},{key:"removeEntry",value:function(e){for(var t=this.length-1;t>=0;t--)if(this.entries[t]===e){this.entries.splice(t,1),this.length--;break}}},{key:"clearToLastMarker",value:function(){for(;this.length;){var t=this.entries.pop();if(this.length--,t.type===e.MARKER_ENTRY)break}}},{key:"getElementEntryInScopeWithTagName",value:function(t){for(var n=this.length-1;n>=0;n--){var r=this.entries[n];if(r.type===e.MARKER_ENTRY)return null;if(this.treeAdapter.getTagName(r.element)===t)return r}return null}},{key:"getElementEntry",value:function(t){for(var n=this.length-1;n>=0;n--){var r=this.entries[n];if(r.type===e.ELEMENT_ENTRY&&r.element===t)return r}return null}}]),e}();i.MARKER_ENTRY="MARKER_ENTRY",i.ELEMENT_ENTRY="ELEMENT_ENTRY",e.exports=i},8992:function(e,t,n){"use strict";var r,a,i,o,s,l,c,u,d,p,m,g,h,f,b,E,y,T,S,v,A,k,w,_,C,N,I=n(6690).default,x=n(9728).default,R=n(8416).default,O=n(3085),L=n(4808),P=n(2708),D=n(9037),M=n(9839),F=n(1458),U=n(3860),B=n(3874),G=n(4802),H=n(5478),z=n(4551),$=n(4529),V=n(9539),j=V.TAG_NAMES,W=V.NAMESPACES,q=V.ATTRS,K={scriptingEnabled:!0,sourceCodeLocationInfo:!1,onParseError:null,treeAdapter:U},X="hidden",Y="INITIAL_MODE",Z="BEFORE_HTML_MODE",Q="BEFORE_HEAD_MODE",J="IN_HEAD_MODE",ee="IN_HEAD_NO_SCRIPT_MODE",te="AFTER_HEAD_MODE",ne="IN_BODY_MODE",re="TEXT_MODE",ae="IN_TABLE_MODE",ie="IN_TABLE_TEXT_MODE",oe="IN_CAPTION_MODE",se="IN_COLUMN_GROUP_MODE",le="IN_TABLE_BODY_MODE",ce="IN_ROW_MODE",ue="IN_CELL_MODE",de="IN_SELECT_MODE",pe="IN_SELECT_IN_TABLE_MODE",me="IN_TEMPLATE_MODE",ge="AFTER_BODY_MODE",he="IN_FRAMESET_MODE",fe="AFTER_FRAMESET_MODE",be="AFTER_AFTER_BODY_MODE",Ee="AFTER_AFTER_FRAMESET_MODE",ye=(R(r={},j.TR,ce),R(r,j.TBODY,le),R(r,j.THEAD,le),R(r,j.TFOOT,le),R(r,j.CAPTION,oe),R(r,j.COLGROUP,se),R(r,j.TABLE,ae),R(r,j.BODY,ne),R(r,j.FRAMESET,he),r),Te=(R(a={},j.CAPTION,ae),R(a,j.COLGROUP,ae),R(a,j.TBODY,ae),R(a,j.TFOOT,ae),R(a,j.THEAD,ae),R(a,j.COL,se),R(a,j.TR,le),R(a,j.TD,ce),R(a,j.TH,ce),a),Se=(R(N={},Y,(R(i={},O.CHARACTER_TOKEN,Me),R(i,O.NULL_CHARACTER_TOKEN,Me),R(i,O.WHITESPACE_CHARACTER_TOKEN,xe),R(i,O.COMMENT_TOKEN,Oe),R(i,O.DOCTYPE_TOKEN,(function(e,t){e._setDocumentType(t);var n=t.forceQuirks?V.DOCUMENT_MODE.QUIRKS:G.getDocumentMode(t);G.isConforming(t)||e._err(z.nonConformingDoctype);e.treeAdapter.setDocumentMode(e.document,n),e.insertionMode=Z})),R(i,O.START_TAG_TOKEN,Me),R(i,O.END_TAG_TOKEN,Me),R(i,O.EOF_TOKEN,Me),i)),R(N,Z,(R(o={},O.CHARACTER_TOKEN,Fe),R(o,O.NULL_CHARACTER_TOKEN,Fe),R(o,O.WHITESPACE_CHARACTER_TOKEN,xe),R(o,O.COMMENT_TOKEN,Oe),R(o,O.DOCTYPE_TOKEN,xe),R(o,O.START_TAG_TOKEN,(function(e,t){t.tagName===j.HTML?(e._insertElement(t,W.HTML),e.insertionMode=Q):Fe(e,t)})),R(o,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n!==j.HTML&&n!==j.HEAD&&n!==j.BODY&&n!==j.BR||Fe(e,t)})),R(o,O.EOF_TOKEN,Fe),o)),R(N,Q,(R(s={},O.CHARACTER_TOKEN,Ue),R(s,O.NULL_CHARACTER_TOKEN,Ue),R(s,O.WHITESPACE_CHARACTER_TOKEN,xe),R(s,O.COMMENT_TOKEN,Oe),R(s,O.DOCTYPE_TOKEN,Re),R(s,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.HEAD?(e._insertElement(t,W.HTML),e.headElement=e.openElements.current,e.insertionMode=J):Ue(e,t)})),R(s,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.HEAD||n===j.BODY||n===j.HTML||n===j.BR?Ue(e,t):e._err(z.endTagWithoutMatchingOpenElement)})),R(s,O.EOF_TOKEN,Ue),s)),R(N,J,(R(l={},O.CHARACTER_TOKEN,He),R(l,O.NULL_CHARACTER_TOKEN,He),R(l,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(l,O.COMMENT_TOKEN,Oe),R(l,O.DOCTYPE_TOKEN,Re),R(l,O.START_TAG_TOKEN,Be),R(l,O.END_TAG_TOKEN,Ge),R(l,O.EOF_TOKEN,He),l)),R(N,ee,(R(c={},O.CHARACTER_TOKEN,ze),R(c,O.NULL_CHARACTER_TOKEN,ze),R(c,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(c,O.COMMENT_TOKEN,Oe),R(c,O.DOCTYPE_TOKEN,Re),R(c,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.BASEFONT||n===j.BGSOUND||n===j.HEAD||n===j.LINK||n===j.META||n===j.NOFRAMES||n===j.STYLE?Be(e,t):n===j.NOSCRIPT?e._err(z.nestedNoscriptInHead):ze(e,t)})),R(c,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.NOSCRIPT?(e.openElements.pop(),e.insertionMode=J):n===j.BR?ze(e,t):e._err(z.endTagWithoutMatchingOpenElement)})),R(c,O.EOF_TOKEN,ze),c)),R(N,te,(R(u={},O.CHARACTER_TOKEN,$e),R(u,O.NULL_CHARACTER_TOKEN,$e),R(u,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(u,O.COMMENT_TOKEN,Oe),R(u,O.DOCTYPE_TOKEN,Re),R(u,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.BODY?(e._insertElement(t,W.HTML),e.framesetOk=!1,e.insertionMode=ne):n===j.FRAMESET?(e._insertElement(t,W.HTML),e.insertionMode=he):n===j.BASE||n===j.BASEFONT||n===j.BGSOUND||n===j.LINK||n===j.META||n===j.NOFRAMES||n===j.SCRIPT||n===j.STYLE||n===j.TEMPLATE||n===j.TITLE?(e._err(z.abandonedHeadElementChild),e.openElements.push(e.headElement),Be(e,t),e.openElements.remove(e.headElement)):n===j.HEAD?e._err(z.misplacedStartTagForHeadElement):$e(e,t)})),R(u,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.BODY||n===j.HTML||n===j.BR?$e(e,t):n===j.TEMPLATE?Ge(e,t):e._err(z.endTagWithoutMatchingOpenElement)})),R(u,O.EOF_TOKEN,$e),u)),R(N,ne,(R(d={},O.CHARACTER_TOKEN,je),R(d,O.NULL_CHARACTER_TOKEN,xe),R(d,O.WHITESPACE_CHARACTER_TOKEN,Ve),R(d,O.COMMENT_TOKEN,Oe),R(d,O.DOCTYPE_TOKEN,xe),R(d,O.START_TAG_TOKEN,nt),R(d,O.END_TAG_TOKEN,ot),R(d,O.EOF_TOKEN,st),d)),R(N,re,(R(p={},O.CHARACTER_TOKEN,Pe),R(p,O.NULL_CHARACTER_TOKEN,Pe),R(p,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(p,O.COMMENT_TOKEN,xe),R(p,O.DOCTYPE_TOKEN,xe),R(p,O.START_TAG_TOKEN,xe),R(p,O.END_TAG_TOKEN,(function(e,t){t.tagName===j.SCRIPT&&(e.pendingScript=e.openElements.current);e.openElements.pop(),e.insertionMode=e.originalInsertionMode})),R(p,O.EOF_TOKEN,(function(e,t){e._err(z.eofInElementThatCanContainOnlyText),e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e._processToken(t)})),p)),R(N,ae,(R(m={},O.CHARACTER_TOKEN,lt),R(m,O.NULL_CHARACTER_TOKEN,lt),R(m,O.WHITESPACE_CHARACTER_TOKEN,lt),R(m,O.COMMENT_TOKEN,Oe),R(m,O.DOCTYPE_TOKEN,xe),R(m,O.START_TAG_TOKEN,ct),R(m,O.END_TAG_TOKEN,ut),R(m,O.EOF_TOKEN,st),m)),R(N,ie,(R(g={},O.CHARACTER_TOKEN,(function(e,t){e.pendingCharacterTokens.push(t),e.hasNonWhitespacePendingCharacterToken=!0})),R(g,O.NULL_CHARACTER_TOKEN,xe),R(g,O.WHITESPACE_CHARACTER_TOKEN,(function(e,t){e.pendingCharacterTokens.push(t)})),R(g,O.COMMENT_TOKEN,pt),R(g,O.DOCTYPE_TOKEN,pt),R(g,O.START_TAG_TOKEN,pt),R(g,O.END_TAG_TOKEN,pt),R(g,O.EOF_TOKEN,pt),g)),R(N,oe,(R(h={},O.CHARACTER_TOKEN,je),R(h,O.NULL_CHARACTER_TOKEN,xe),R(h,O.WHITESPACE_CHARACTER_TOKEN,Ve),R(h,O.COMMENT_TOKEN,Oe),R(h,O.DOCTYPE_TOKEN,xe),R(h,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.CAPTION||n===j.COL||n===j.COLGROUP||n===j.TBODY||n===j.TD||n===j.TFOOT||n===j.TH||n===j.THEAD||n===j.TR?e.openElements.hasInTableScope(j.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(j.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=ae,e._processToken(t)):nt(e,t)})),R(h,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.CAPTION||n===j.TABLE?e.openElements.hasInTableScope(j.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(j.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=ae,n===j.TABLE&&e._processToken(t)):n!==j.BODY&&n!==j.COL&&n!==j.COLGROUP&&n!==j.HTML&&n!==j.TBODY&&n!==j.TD&&n!==j.TFOOT&&n!==j.TH&&n!==j.THEAD&&n!==j.TR&&ot(e,t)})),R(h,O.EOF_TOKEN,st),h)),R(N,se,(R(f={},O.CHARACTER_TOKEN,mt),R(f,O.NULL_CHARACTER_TOKEN,mt),R(f,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(f,O.COMMENT_TOKEN,Oe),R(f,O.DOCTYPE_TOKEN,xe),R(f,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.COL?(e._appendElement(t,W.HTML),t.ackSelfClosing=!0):n===j.TEMPLATE?Be(e,t):mt(e,t)})),R(f,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.COLGROUP?e.openElements.currentTagName===j.COLGROUP&&(e.openElements.pop(),e.insertionMode=ae):n===j.TEMPLATE?Ge(e,t):n!==j.COL&&mt(e,t)})),R(f,O.EOF_TOKEN,st),f)),R(N,le,(R(b={},O.CHARACTER_TOKEN,lt),R(b,O.NULL_CHARACTER_TOKEN,lt),R(b,O.WHITESPACE_CHARACTER_TOKEN,lt),R(b,O.COMMENT_TOKEN,Oe),R(b,O.DOCTYPE_TOKEN,xe),R(b,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.TR?(e.openElements.clearBackToTableBodyContext(),e._insertElement(t,W.HTML),e.insertionMode=ce):n===j.TH||n===j.TD?(e.openElements.clearBackToTableBodyContext(),e._insertFakeElement(j.TR),e.insertionMode=ce,e._processToken(t)):n===j.CAPTION||n===j.COL||n===j.COLGROUP||n===j.TBODY||n===j.TFOOT||n===j.THEAD?e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=ae,e._processToken(t)):ct(e,t)})),R(b,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.TBODY||n===j.TFOOT||n===j.THEAD?e.openElements.hasInTableScope(n)&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=ae):n===j.TABLE?e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=ae,e._processToken(t)):(n!==j.BODY&&n!==j.CAPTION&&n!==j.COL&&n!==j.COLGROUP||n!==j.HTML&&n!==j.TD&&n!==j.TH&&n!==j.TR)&&ut(e,t)})),R(b,O.EOF_TOKEN,st),b)),R(N,ce,(R(E={},O.CHARACTER_TOKEN,lt),R(E,O.NULL_CHARACTER_TOKEN,lt),R(E,O.WHITESPACE_CHARACTER_TOKEN,lt),R(E,O.COMMENT_TOKEN,Oe),R(E,O.DOCTYPE_TOKEN,xe),R(E,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.TH||n===j.TD?(e.openElements.clearBackToTableRowContext(),e._insertElement(t,W.HTML),e.insertionMode=ue,e.activeFormattingElements.insertMarker()):n===j.CAPTION||n===j.COL||n===j.COLGROUP||n===j.TBODY||n===j.TFOOT||n===j.THEAD||n===j.TR?e.openElements.hasInTableScope(j.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=le,e._processToken(t)):ct(e,t)})),R(E,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.TR?e.openElements.hasInTableScope(j.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=le):n===j.TABLE?e.openElements.hasInTableScope(j.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=le,e._processToken(t)):n===j.TBODY||n===j.TFOOT||n===j.THEAD?(e.openElements.hasInTableScope(n)||e.openElements.hasInTableScope(j.TR))&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=le,e._processToken(t)):(n!==j.BODY&&n!==j.CAPTION&&n!==j.COL&&n!==j.COLGROUP||n!==j.HTML&&n!==j.TD&&n!==j.TH)&&ut(e,t)})),R(E,O.EOF_TOKEN,st),E)),R(N,ue,(R(y={},O.CHARACTER_TOKEN,je),R(y,O.NULL_CHARACTER_TOKEN,xe),R(y,O.WHITESPACE_CHARACTER_TOKEN,Ve),R(y,O.COMMENT_TOKEN,Oe),R(y,O.DOCTYPE_TOKEN,xe),R(y,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.CAPTION||n===j.COL||n===j.COLGROUP||n===j.TBODY||n===j.TD||n===j.TFOOT||n===j.TH||n===j.THEAD||n===j.TR?(e.openElements.hasInTableScope(j.TD)||e.openElements.hasInTableScope(j.TH))&&(e._closeTableCell(),e._processToken(t)):nt(e,t)})),R(y,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.TD||n===j.TH?e.openElements.hasInTableScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=ce):n===j.TABLE||n===j.TBODY||n===j.TFOOT||n===j.THEAD||n===j.TR?e.openElements.hasInTableScope(n)&&(e._closeTableCell(),e._processToken(t)):n!==j.BODY&&n!==j.CAPTION&&n!==j.COL&&n!==j.COLGROUP&&n!==j.HTML&&ot(e,t)})),R(y,O.EOF_TOKEN,st),y)),R(N,de,(R(T={},O.CHARACTER_TOKEN,Pe),R(T,O.NULL_CHARACTER_TOKEN,xe),R(T,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(T,O.COMMENT_TOKEN,Oe),R(T,O.DOCTYPE_TOKEN,xe),R(T,O.START_TAG_TOKEN,gt),R(T,O.END_TAG_TOKEN,ht),R(T,O.EOF_TOKEN,st),T)),R(N,pe,(R(S={},O.CHARACTER_TOKEN,Pe),R(S,O.NULL_CHARACTER_TOKEN,xe),R(S,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(S,O.COMMENT_TOKEN,Oe),R(S,O.DOCTYPE_TOKEN,xe),R(S,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.CAPTION||n===j.TABLE||n===j.TBODY||n===j.TFOOT||n===j.THEAD||n===j.TR||n===j.TD||n===j.TH?(e.openElements.popUntilTagNamePopped(j.SELECT),e._resetInsertionMode(),e._processToken(t)):gt(e,t)})),R(S,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.CAPTION||n===j.TABLE||n===j.TBODY||n===j.TFOOT||n===j.THEAD||n===j.TR||n===j.TD||n===j.TH?e.openElements.hasInTableScope(n)&&(e.openElements.popUntilTagNamePopped(j.SELECT),e._resetInsertionMode(),e._processToken(t)):ht(e,t)})),R(S,O.EOF_TOKEN,st),S)),R(N,me,(R(v={},O.CHARACTER_TOKEN,je),R(v,O.NULL_CHARACTER_TOKEN,xe),R(v,O.WHITESPACE_CHARACTER_TOKEN,Ve),R(v,O.COMMENT_TOKEN,Oe),R(v,O.DOCTYPE_TOKEN,xe),R(v,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;if(n===j.BASE||n===j.BASEFONT||n===j.BGSOUND||n===j.LINK||n===j.META||n===j.NOFRAMES||n===j.SCRIPT||n===j.STYLE||n===j.TEMPLATE||n===j.TITLE)Be(e,t);else{var r=Te[n]||ne;e._popTmplInsertionMode(),e._pushTmplInsertionMode(r),e.insertionMode=r,e._processToken(t)}})),R(v,O.END_TAG_TOKEN,(function(e,t){t.tagName===j.TEMPLATE&&Ge(e,t)})),R(v,O.EOF_TOKEN,ft),v)),R(N,ge,(R(A={},O.CHARACTER_TOKEN,bt),R(A,O.NULL_CHARACTER_TOKEN,bt),R(A,O.WHITESPACE_CHARACTER_TOKEN,Ve),R(A,O.COMMENT_TOKEN,(function(e,t){e._appendCommentNode(t,e.openElements.items[0])})),R(A,O.DOCTYPE_TOKEN,xe),R(A,O.START_TAG_TOKEN,(function(e,t){t.tagName===j.HTML?nt(e,t):bt(e,t)})),R(A,O.END_TAG_TOKEN,(function(e,t){t.tagName===j.HTML?e.fragmentContext||(e.insertionMode=be):bt(e,t)})),R(A,O.EOF_TOKEN,De),A)),R(N,he,(R(k={},O.CHARACTER_TOKEN,xe),R(k,O.NULL_CHARACTER_TOKEN,xe),R(k,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(k,O.COMMENT_TOKEN,Oe),R(k,O.DOCTYPE_TOKEN,xe),R(k,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.FRAMESET?e._insertElement(t,W.HTML):n===j.FRAME?(e._appendElement(t,W.HTML),t.ackSelfClosing=!0):n===j.NOFRAMES&&Be(e,t)})),R(k,O.END_TAG_TOKEN,(function(e,t){t.tagName!==j.FRAMESET||e.openElements.isRootHtmlElementCurrent()||(e.openElements.pop(),e.fragmentContext||e.openElements.currentTagName===j.FRAMESET||(e.insertionMode=fe))})),R(k,O.EOF_TOKEN,De),k)),R(N,fe,(R(w={},O.CHARACTER_TOKEN,xe),R(w,O.NULL_CHARACTER_TOKEN,xe),R(w,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(w,O.COMMENT_TOKEN,Oe),R(w,O.DOCTYPE_TOKEN,xe),R(w,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.NOFRAMES&&Be(e,t)})),R(w,O.END_TAG_TOKEN,(function(e,t){t.tagName===j.HTML&&(e.insertionMode=Ee)})),R(w,O.EOF_TOKEN,De),w)),R(N,be,(R(_={},O.CHARACTER_TOKEN,Et),R(_,O.NULL_CHARACTER_TOKEN,Et),R(_,O.WHITESPACE_CHARACTER_TOKEN,Ve),R(_,O.COMMENT_TOKEN,Le),R(_,O.DOCTYPE_TOKEN,xe),R(_,O.START_TAG_TOKEN,(function(e,t){t.tagName===j.HTML?nt(e,t):Et(e,t)})),R(_,O.END_TAG_TOKEN,Et),R(_,O.EOF_TOKEN,De),_)),R(N,Ee,(R(C={},O.CHARACTER_TOKEN,xe),R(C,O.NULL_CHARACTER_TOKEN,xe),R(C,O.WHITESPACE_CHARACTER_TOKEN,Ve),R(C,O.COMMENT_TOKEN,Le),R(C,O.DOCTYPE_TOKEN,xe),R(C,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.NOFRAMES&&Be(e,t)})),R(C,O.END_TAG_TOKEN,xe),R(C,O.EOF_TOKEN,De),C)),N),ve=function(){function e(t){I(this,e),this.options=B(K,t),this.treeAdapter=this.options.treeAdapter,this.pendingScript=null,this.options.sourceCodeLocationInfo&&F.install(this,D),this.options.onParseError&&F.install(this,M,{onParseError:this.options.onParseError})}return x(e,[{key:"parse",value:function(e){var t=this.treeAdapter.createDocument();return this._bootstrap(t,null),this.tokenizer.write(e,!0),this._runParsingLoop(null),t}},{key:"parseFragment",value:function(e,t){t||(t=this.treeAdapter.createElement(j.TEMPLATE,W.HTML,[]));var n=this.treeAdapter.createElement("documentmock",W.HTML,[]);this._bootstrap(n,t),this.treeAdapter.getTagName(t)===j.TEMPLATE&&this._pushTmplInsertionMode(me),this._initTokenizerForFragmentParsing(),this._insertFakeRootElement(),this._resetInsertionMode(),this._findFormInFragmentContext(),this.tokenizer.write(e,!0),this._runParsingLoop(null);var r=this.treeAdapter.getFirstChild(n),a=this.treeAdapter.createDocumentFragment();return this._adoptNodes(r,a),a}},{key:"_bootstrap",value:function(e,t){this.tokenizer=new O(this.options),this.stopped=!1,this.insertionMode=Y,this.originalInsertionMode="",this.document=e,this.fragmentContext=t,this.headElement=null,this.formElement=null,this.openElements=new L(this.document,this.treeAdapter),this.activeFormattingElements=new P(this.treeAdapter),this.tmplInsertionModeStack=[],this.tmplInsertionModeStackTop=-1,this.currentTmplInsertionMode=null,this.pendingCharacterTokens=[],this.hasNonWhitespacePendingCharacterToken=!1,this.framesetOk=!0,this.skipNextNewLine=!1,this.fosterParentingEnabled=!1}},{key:"_err",value:function(){}},{key:"_runParsingLoop",value:function(e){for(;!this.stopped;){this._setupTokenizerCDATAMode();var t=this.tokenizer.getNextToken();if(t.type===O.HIBERNATION_TOKEN)break;if(this.skipNextNewLine&&(this.skipNextNewLine=!1,t.type===O.WHITESPACE_CHARACTER_TOKEN&&"\n"===t.chars[0])){if(1===t.chars.length)continue;t.chars=t.chars.substr(1)}if(this._processInputToken(t),e&&this.pendingScript)break}}},{key:"runParsingLoopForCurrentChunk",value:function(e,t){if(this._runParsingLoop(t),t&&this.pendingScript){var n=this.pendingScript;return this.pendingScript=null,void t(n)}e&&e()}},{key:"_setupTokenizerCDATAMode",value:function(){var e=this._getAdjustedCurrentElement();this.tokenizer.allowCDATA=e&&e!==this.document&&this.treeAdapter.getNamespaceURI(e)!==W.HTML&&!this._isIntegrationPoint(e)}},{key:"_switchToTextParsing",value:function(e,t){this._insertElement(e,W.HTML),this.tokenizer.state=t,this.originalInsertionMode=this.insertionMode,this.insertionMode=re}},{key:"switchToPlaintextParsing",value:function(){this.insertionMode=re,this.originalInsertionMode=ne,this.tokenizer.state=O.MODE.PLAINTEXT}},{key:"_getAdjustedCurrentElement",value:function(){return 0===this.openElements.stackTop&&this.fragmentContext?this.fragmentContext:this.openElements.current}},{key:"_findFormInFragmentContext",value:function(){var e=this.fragmentContext;do{if(this.treeAdapter.getTagName(e)===j.FORM){this.formElement=e;break}e=this.treeAdapter.getParentNode(e)}while(e)}},{key:"_initTokenizerForFragmentParsing",value:function(){if(this.treeAdapter.getNamespaceURI(this.fragmentContext)===W.HTML){var e=this.treeAdapter.getTagName(this.fragmentContext);e===j.TITLE||e===j.TEXTAREA?this.tokenizer.state=O.MODE.RCDATA:e===j.STYLE||e===j.XMP||e===j.IFRAME||e===j.NOEMBED||e===j.NOFRAMES||e===j.NOSCRIPT?this.tokenizer.state=O.MODE.RAWTEXT:e===j.SCRIPT?this.tokenizer.state=O.MODE.SCRIPT_DATA:e===j.PLAINTEXT&&(this.tokenizer.state=O.MODE.PLAINTEXT)}}},{key:"_setDocumentType",value:function(e){var t=e.name||"",n=e.publicId||"",r=e.systemId||"";this.treeAdapter.setDocumentType(this.document,t,n,r)}},{key:"_attachElementToTree",value:function(e){if(this._shouldFosterParentOnInsertion())this._fosterParentElement(e);else{var t=this.openElements.currentTmplContent||this.openElements.current;this.treeAdapter.appendChild(t,e)}}},{key:"_appendElement",value:function(e,t){var n=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(n)}},{key:"_insertElement",value:function(e,t){var n=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(n),this.openElements.push(n)}},{key:"_insertFakeElement",value:function(e){var t=this.treeAdapter.createElement(e,W.HTML,[]);this._attachElementToTree(t),this.openElements.push(t)}},{key:"_insertTemplate",value:function(e){var t=this.treeAdapter.createElement(e.tagName,W.HTML,e.attrs),n=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(t,n),this._attachElementToTree(t),this.openElements.push(t)}},{key:"_insertFakeRootElement",value:function(){var e=this.treeAdapter.createElement(j.HTML,W.HTML,[]);this.treeAdapter.appendChild(this.openElements.current,e),this.openElements.push(e)}},{key:"_appendCommentNode",value:function(e,t){var n=this.treeAdapter.createCommentNode(e.data);this.treeAdapter.appendChild(t,n)}},{key:"_insertCharacters",value:function(e){if(this._shouldFosterParentOnInsertion())this._fosterParentText(e.chars);else{var t=this.openElements.currentTmplContent||this.openElements.current;this.treeAdapter.insertText(t,e.chars)}}},{key:"_adoptNodes",value:function(e,t){for(var n=this.treeAdapter.getFirstChild(e);n;n=this.treeAdapter.getFirstChild(e))this.treeAdapter.detachNode(n),this.treeAdapter.appendChild(t,n)}},{key:"_shouldProcessTokenInForeignContent",value:function(e){var t=this._getAdjustedCurrentElement();if(!t||t===this.document)return!1;var n=this.treeAdapter.getNamespaceURI(t);if(n===W.HTML)return!1;if(this.treeAdapter.getTagName(t)===j.ANNOTATION_XML&&n===W.MATHML&&e.type===O.START_TAG_TOKEN&&e.tagName===j.SVG)return!1;var r=e.type===O.CHARACTER_TOKEN||e.type===O.NULL_CHARACTER_TOKEN||e.type===O.WHITESPACE_CHARACTER_TOKEN;return(!(e.type===O.START_TAG_TOKEN&&e.tagName!==j.MGLYPH&&e.tagName!==j.MALIGNMARK)&&!r||!this._isIntegrationPoint(t,W.MATHML))&&((e.type!==O.START_TAG_TOKEN&&!r||!this._isIntegrationPoint(t,W.HTML))&&e.type!==O.EOF_TOKEN)}},{key:"_processToken",value:function(e){Se[this.insertionMode][e.type](this,e)}},{key:"_processTokenInBodyMode",value:function(e){Se.IN_BODY_MODE[e.type](this,e)}},{key:"_processTokenInForeignContent",value:function(e){e.type===O.CHARACTER_TOKEN?function(e,t){e._insertCharacters(t),e.framesetOk=!1}(this,e):e.type===O.NULL_CHARACTER_TOKEN?function(e,t){t.chars=$.REPLACEMENT_CHARACTER,e._insertCharacters(t)}(this,e):e.type===O.WHITESPACE_CHARACTER_TOKEN?Pe(this,e):e.type===O.COMMENT_TOKEN?Oe(this,e):e.type===O.START_TAG_TOKEN?function(e,t){if(H.causesExit(t)&&!e.fragmentContext){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==W.HTML&&!e._isIntegrationPoint(e.openElements.current);)e.openElements.pop();e._processToken(t)}else{var n=e._getAdjustedCurrentElement(),r=e.treeAdapter.getNamespaceURI(n);r===W.MATHML?H.adjustTokenMathMLAttrs(t):r===W.SVG&&(H.adjustTokenSVGTagName(t),H.adjustTokenSVGAttrs(t)),H.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,r):e._insertElement(t,r),t.ackSelfClosing=!0}}(this,e):e.type===O.END_TAG_TOKEN&&function(e,t){for(var n=e.openElements.stackTop;n>0;n--){var r=e.openElements.items[n];if(e.treeAdapter.getNamespaceURI(r)===W.HTML){e._processToken(t);break}if(e.treeAdapter.getTagName(r).toLowerCase()===t.tagName){e.openElements.popUntilElementPopped(r);break}}}(this,e)}},{key:"_processInputToken",value:function(e){this._shouldProcessTokenInForeignContent(e)?this._processTokenInForeignContent(e):this._processToken(e),e.type===O.START_TAG_TOKEN&&e.selfClosing&&!e.ackSelfClosing&&this._err(z.nonVoidHtmlElementStartTagWithTrailingSolidus)}},{key:"_isIntegrationPoint",value:function(e,t){var n=this.treeAdapter.getTagName(e),r=this.treeAdapter.getNamespaceURI(e),a=this.treeAdapter.getAttrList(e);return H.isIntegrationPoint(n,r,a,t)}},{key:"_reconstructActiveFormattingElements",value:function(){var e=this.activeFormattingElements.length;if(e){var t=e,n=null;do{if(t--,(n=this.activeFormattingElements.entries[t]).type===P.MARKER_ENTRY||this.openElements.contains(n.element)){t++;break}}while(t>0);for(var r=t;r<e;r++)n=this.activeFormattingElements.entries[r],this._insertElement(n.token,this.treeAdapter.getNamespaceURI(n.element)),n.element=this.openElements.current}}},{key:"_closeTableCell",value:function(){this.openElements.generateImpliedEndTags(),this.openElements.popUntilTableCellPopped(),this.activeFormattingElements.clearToLastMarker(),this.insertionMode=ce}},{key:"_closePElement",value:function(){this.openElements.generateImpliedEndTagsWithExclusion(j.P),this.openElements.popUntilTagNamePopped(j.P)}},{key:"_resetInsertionMode",value:function(){for(var e=this.openElements.stackTop,t=!1;e>=0;e--){var n=this.openElements.items[e];0===e&&(t=!0,this.fragmentContext&&(n=this.fragmentContext));var r=this.treeAdapter.getTagName(n),a=ye[r];if(a){this.insertionMode=a;break}if(!(t||r!==j.TD&&r!==j.TH)){this.insertionMode=ue;break}if(!t&&r===j.HEAD){this.insertionMode=J;break}if(r===j.SELECT){this._resetInsertionModeForSelect(e);break}if(r===j.TEMPLATE){this.insertionMode=this.currentTmplInsertionMode;break}if(r===j.HTML){this.insertionMode=this.headElement?te:Q;break}if(t){this.insertionMode=ne;break}}}},{key:"_resetInsertionModeForSelect",value:function(e){if(e>0)for(var t=e-1;t>0;t--){var n=this.openElements.items[t],r=this.treeAdapter.getTagName(n);if(r===j.TEMPLATE)break;if(r===j.TABLE)return void(this.insertionMode=pe)}this.insertionMode=de}},{key:"_pushTmplInsertionMode",value:function(e){this.tmplInsertionModeStack.push(e),this.tmplInsertionModeStackTop++,this.currentTmplInsertionMode=e}},{key:"_popTmplInsertionMode",value:function(){this.tmplInsertionModeStack.pop(),this.tmplInsertionModeStackTop--,this.currentTmplInsertionMode=this.tmplInsertionModeStack[this.tmplInsertionModeStackTop]}},{key:"_isElementCausesFosterParenting",value:function(e){var t=this.treeAdapter.getTagName(e);return t===j.TABLE||t===j.TBODY||t===j.TFOOT||t===j.THEAD||t===j.TR}},{key:"_shouldFosterParentOnInsertion",value:function(){return this.fosterParentingEnabled&&this._isElementCausesFosterParenting(this.openElements.current)}},{key:"_findFosterParentingLocation",value:function(){for(var e={parent:null,beforeElement:null},t=this.openElements.stackTop;t>=0;t--){var n=this.openElements.items[t],r=this.treeAdapter.getTagName(n),a=this.treeAdapter.getNamespaceURI(n);if(r===j.TEMPLATE&&a===W.HTML){e.parent=this.treeAdapter.getTemplateContent(n);break}if(r===j.TABLE){e.parent=this.treeAdapter.getParentNode(n),e.parent?e.beforeElement=n:e.parent=this.openElements.items[t-1];break}}return e.parent||(e.parent=this.openElements.items[0]),e}},{key:"_fosterParentElement",value:function(e){var t=this._findFosterParentingLocation();t.beforeElement?this.treeAdapter.insertBefore(t.parent,e,t.beforeElement):this.treeAdapter.appendChild(t.parent,e)}},{key:"_fosterParentText",value:function(e){var t=this._findFosterParentingLocation();t.beforeElement?this.treeAdapter.insertTextBefore(t.parent,e,t.beforeElement):this.treeAdapter.insertText(t.parent,e)}},{key:"_isSpecialElement",value:function(e){var t=this.treeAdapter.getTagName(e),n=this.treeAdapter.getNamespaceURI(e);return V.SPECIAL_ELEMENTS[n][t]}}]),e}();function Ae(e,t){var n=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);return n?e.openElements.contains(n.element)?e.openElements.hasInScope(t.tagName)||(n=null):(e.activeFormattingElements.removeEntry(n),n=null):it(e,t),n}function ke(e,t){for(var n=null,r=e.openElements.stackTop;r>=0;r--){var a=e.openElements.items[r];if(a===t.element)break;e._isSpecialElement(a)&&(n=a)}return n||(e.openElements.popUntilElementPopped(t.element),e.activeFormattingElements.removeEntry(t)),n}function we(e,t,n){for(var r=t,a=e.openElements.getCommonAncestor(t),i=0,o=a;o!==n;i++,o=a){a=e.openElements.getCommonAncestor(o);var s=e.activeFormattingElements.getElementEntry(o),l=s&&i>=3;!s||l?(l&&e.activeFormattingElements.removeEntry(s),e.openElements.remove(o)):(o=_e(e,s),r===t&&(e.activeFormattingElements.bookmark=s),e.treeAdapter.detachNode(r),e.treeAdapter.appendChild(o,r),r=o)}return r}function _e(e,t){var n=e.treeAdapter.getNamespaceURI(t.element),r=e.treeAdapter.createElement(t.token.tagName,n,t.token.attrs);return e.openElements.replace(t.element,r),t.element=r,r}function Ce(e,t,n){if(e._isElementCausesFosterParenting(t))e._fosterParentElement(n);else{var r=e.treeAdapter.getTagName(t),a=e.treeAdapter.getNamespaceURI(t);r===j.TEMPLATE&&a===W.HTML&&(t=e.treeAdapter.getTemplateContent(t)),e.treeAdapter.appendChild(t,n)}}function Ne(e,t,n){var r=e.treeAdapter.getNamespaceURI(n.element),a=n.token,i=e.treeAdapter.createElement(a.tagName,r,a.attrs);e._adoptNodes(t,i),e.treeAdapter.appendChild(t,i),e.activeFormattingElements.insertElementAfterBookmark(i,n.token),e.activeFormattingElements.removeEntry(n),e.openElements.remove(n.element),e.openElements.insertAfter(t,i)}function Ie(e,t){for(var n,r=0;r<8&&(n=Ae(e,t));r++){var a=ke(e,n);if(!a)break;e.activeFormattingElements.bookmark=n;var i=we(e,a,n.element),o=e.openElements.getCommonAncestor(n.element);e.treeAdapter.detachNode(i),Ce(e,o,i),Ne(e,a,n)}}function xe(){}function Re(e){e._err(z.misplacedDoctype)}function Oe(e,t){e._appendCommentNode(t,e.openElements.currentTmplContent||e.openElements.current)}function Le(e,t){e._appendCommentNode(t,e.document)}function Pe(e,t){e._insertCharacters(t)}function De(e){e.stopped=!0}function Me(e,t){e._err(z.missingDoctype,{beforeToken:!0}),e.treeAdapter.setDocumentMode(e.document,V.DOCUMENT_MODE.QUIRKS),e.insertionMode=Z,e._processToken(t)}function Fe(e,t){e._insertFakeRootElement(),e.insertionMode=Q,e._processToken(t)}function Ue(e,t){e._insertFakeElement(j.HEAD),e.headElement=e.openElements.current,e.insertionMode=J,e._processToken(t)}function Be(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.BASE||n===j.BASEFONT||n===j.BGSOUND||n===j.LINK||n===j.META?(e._appendElement(t,W.HTML),t.ackSelfClosing=!0):n===j.TITLE?e._switchToTextParsing(t,O.MODE.RCDATA):n===j.NOSCRIPT?e.options.scriptingEnabled?e._switchToTextParsing(t,O.MODE.RAWTEXT):(e._insertElement(t,W.HTML),e.insertionMode=ee):n===j.NOFRAMES||n===j.STYLE?e._switchToTextParsing(t,O.MODE.RAWTEXT):n===j.SCRIPT?e._switchToTextParsing(t,O.MODE.SCRIPT_DATA):n===j.TEMPLATE?(e._insertTemplate(t,W.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=me,e._pushTmplInsertionMode(me)):n===j.HEAD?e._err(z.misplacedStartTagForHeadElement):He(e,t)}function Ge(e,t){var n=t.tagName;n===j.HEAD?(e.openElements.pop(),e.insertionMode=te):n===j.BODY||n===j.BR||n===j.HTML?He(e,t):n===j.TEMPLATE&&e.openElements.tmplCount>0?(e.openElements.generateImpliedEndTagsThoroughly(),e.openElements.currentTagName!==j.TEMPLATE&&e._err(z.closingOfElementWithOpenChildElements),e.openElements.popUntilTagNamePopped(j.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e._popTmplInsertionMode(),e._resetInsertionMode()):e._err(z.endTagWithoutMatchingOpenElement)}function He(e,t){e.openElements.pop(),e.insertionMode=te,e._processToken(t)}function ze(e,t){var n=t.type===O.EOF_TOKEN?z.openElementsLeftAfterEof:z.disallowedContentInNoscriptInHead;e._err(n),e.openElements.pop(),e.insertionMode=J,e._processToken(t)}function $e(e,t){e._insertFakeElement(j.BODY),e.insertionMode=ne,e._processToken(t)}function Ve(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t)}function je(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t),e.framesetOk=!1}function We(e,t){e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._insertElement(t,W.HTML)}function qe(e,t){e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._insertElement(t,W.HTML),e.skipNextNewLine=!0,e.framesetOk=!1}function Ke(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,W.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function Xe(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,W.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1}function Ye(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,W.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function Ze(e,t){e._appendElement(t,W.HTML),t.ackSelfClosing=!0}function Qe(e,t){e._switchToTextParsing(t,O.MODE.RAWTEXT)}function Je(e,t){e.openElements.currentTagName===j.OPTION&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(t,W.HTML)}function et(e,t){e.openElements.hasInScope(j.RUBY)&&e.openElements.generateImpliedEndTags(),e._insertElement(t,W.HTML)}function tt(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,W.HTML)}function nt(e,t){var n=t.tagName;switch(n.length){case 1:n===j.I||n===j.S||n===j.B||n===j.U?Ke(e,t):n===j.P?We(e,t):n===j.A?function(e,t){var n=e.activeFormattingElements.getElementEntryInScopeWithTagName(j.A);n&&(Ie(e,t),e.openElements.remove(n.element),e.activeFormattingElements.removeEntry(n)),e._reconstructActiveFormattingElements(),e._insertElement(t,W.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}(e,t):tt(e,t);break;case 2:n===j.DL||n===j.OL||n===j.UL?We(e,t):n===j.H1||n===j.H2||n===j.H3||n===j.H4||n===j.H5||n===j.H6?function(e,t){e.openElements.hasInButtonScope(j.P)&&e._closePElement();var n=e.openElements.currentTagName;n!==j.H1&&n!==j.H2&&n!==j.H3&&n!==j.H4&&n!==j.H5&&n!==j.H6||e.openElements.pop(),e._insertElement(t,W.HTML)}(e,t):n===j.LI||n===j.DD||n===j.DT?function(e,t){e.framesetOk=!1;for(var n=t.tagName,r=e.openElements.stackTop;r>=0;r--){var a=e.openElements.items[r],i=e.treeAdapter.getTagName(a),o=null;if(n===j.LI&&i===j.LI?o=j.LI:n!==j.DD&&n!==j.DT||i!==j.DD&&i!==j.DT||(o=i),o){e.openElements.generateImpliedEndTagsWithExclusion(o),e.openElements.popUntilTagNamePopped(o);break}if(i!==j.ADDRESS&&i!==j.DIV&&i!==j.P&&e._isSpecialElement(a))break}e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._insertElement(t,W.HTML)}(e,t):n===j.EM||n===j.TT?Ke(e,t):n===j.BR?Ye(e,t):n===j.HR?function(e,t){e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._appendElement(t,W.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}(e,t):n===j.RB?et(e,t):n===j.RT||n===j.RP?function(e,t){e.openElements.hasInScope(j.RUBY)&&e.openElements.generateImpliedEndTagsWithExclusion(j.RTC),e._insertElement(t,W.HTML)}(e,t):n!==j.TH&&n!==j.TD&&n!==j.TR&&tt(e,t);break;case 3:n===j.DIV||n===j.DIR||n===j.NAV?We(e,t):n===j.PRE?qe(e,t):n===j.BIG?Ke(e,t):n===j.IMG||n===j.WBR?Ye(e,t):n===j.XMP?function(e,t){e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._reconstructActiveFormattingElements(),e.framesetOk=!1,e._switchToTextParsing(t,O.MODE.RAWTEXT)}(e,t):n===j.SVG?function(e,t){e._reconstructActiveFormattingElements(),H.adjustTokenSVGAttrs(t),H.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,W.SVG):e._insertElement(t,W.SVG),t.ackSelfClosing=!0}(e,t):n===j.RTC?et(e,t):n!==j.COL&&tt(e,t);break;case 4:n===j.HTML?function(e,t){0===e.openElements.tmplCount&&e.treeAdapter.adoptAttributes(e.openElements.items[0],t.attrs)}(e,t):n===j.BASE||n===j.LINK||n===j.META?Be(e,t):n===j.BODY?function(e,t){var n=e.openElements.tryPeekProperlyNestedBodyElement();n&&0===e.openElements.tmplCount&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(n,t.attrs))}(e,t):n===j.MAIN||n===j.MENU?We(e,t):n===j.FORM?function(e,t){var n=e.openElements.tmplCount>0;e.formElement&&!n||(e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._insertElement(t,W.HTML),n||(e.formElement=e.openElements.current))}(e,t):n===j.CODE||n===j.FONT?Ke(e,t):n===j.NOBR?function(e,t){e._reconstructActiveFormattingElements(),e.openElements.hasInScope(j.NOBR)&&(Ie(e,t),e._reconstructActiveFormattingElements()),e._insertElement(t,W.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}(e,t):n===j.AREA?Ye(e,t):n===j.MATH?function(e,t){e._reconstructActiveFormattingElements(),H.adjustTokenMathMLAttrs(t),H.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,W.MATHML):e._insertElement(t,W.MATHML),t.ackSelfClosing=!0}(e,t):n===j.MENU?function(e,t){e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._insertElement(t,W.HTML)}(e,t):n!==j.HEAD&&tt(e,t);break;case 5:n===j.STYLE||n===j.TITLE?Be(e,t):n===j.ASIDE?We(e,t):n===j.SMALL?Ke(e,t):n===j.TABLE?function(e,t){e.treeAdapter.getDocumentMode(e.document)!==V.DOCUMENT_MODE.QUIRKS&&e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._insertElement(t,W.HTML),e.framesetOk=!1,e.insertionMode=ae}(e,t):n===j.EMBED?Ye(e,t):n===j.INPUT?function(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,W.HTML);var n=O.getTokenAttr(t,q.TYPE);n&&n.toLowerCase()===X||(e.framesetOk=!1),t.ackSelfClosing=!0}(e,t):n===j.PARAM||n===j.TRACK?Ze(e,t):n===j.IMAGE?function(e,t){t.tagName=j.IMG,Ye(e,t)}(e,t):n!==j.FRAME&&n!==j.TBODY&&n!==j.TFOOT&&n!==j.THEAD&&tt(e,t);break;case 6:n===j.SCRIPT?Be(e,t):n===j.CENTER||n===j.FIGURE||n===j.FOOTER||n===j.HEADER||n===j.HGROUP||n===j.DIALOG?We(e,t):n===j.BUTTON?function(e,t){e.openElements.hasInScope(j.BUTTON)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(j.BUTTON)),e._reconstructActiveFormattingElements(),e._insertElement(t,W.HTML),e.framesetOk=!1}(e,t):n===j.STRIKE||n===j.STRONG?Ke(e,t):n===j.APPLET||n===j.OBJECT?Xe(e,t):n===j.KEYGEN?Ye(e,t):n===j.SOURCE?Ze(e,t):n===j.IFRAME?function(e,t){e.framesetOk=!1,e._switchToTextParsing(t,O.MODE.RAWTEXT)}(e,t):n===j.SELECT?function(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,W.HTML),e.framesetOk=!1,e.insertionMode===ae||e.insertionMode===oe||e.insertionMode===le||e.insertionMode===ce||e.insertionMode===ue?e.insertionMode=pe:e.insertionMode=de}(e,t):n===j.OPTION?Je(e,t):tt(e,t);break;case 7:n===j.BGSOUND?Be(e,t):n===j.DETAILS||n===j.ADDRESS||n===j.ARTICLE||n===j.SECTION||n===j.SUMMARY?We(e,t):n===j.LISTING?qe(e,t):n===j.MARQUEE?Xe(e,t):n===j.NOEMBED?Qe(e,t):n!==j.CAPTION&&tt(e,t);break;case 8:n===j.BASEFONT?Be(e,t):n===j.FRAMESET?function(e,t){var n=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&n&&(e.treeAdapter.detachNode(n),e.openElements.popAllUpToHtmlElement(),e._insertElement(t,W.HTML),e.insertionMode=he)}(e,t):n===j.FIELDSET?We(e,t):n===j.TEXTAREA?function(e,t){e._insertElement(t,W.HTML),e.skipNextNewLine=!0,e.tokenizer.state=O.MODE.RCDATA,e.originalInsertionMode=e.insertionMode,e.framesetOk=!1,e.insertionMode=re}(e,t):n===j.TEMPLATE?Be(e,t):n===j.NOSCRIPT?e.options.scriptingEnabled?Qe(e,t):tt(e,t):n===j.OPTGROUP?Je(e,t):n!==j.COLGROUP&&tt(e,t);break;case 9:n===j.PLAINTEXT?function(e,t){e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._insertElement(t,W.HTML),e.tokenizer.state=O.MODE.PLAINTEXT}(e,t):tt(e,t);break;case 10:n===j.BLOCKQUOTE||n===j.FIGCAPTION?We(e,t):tt(e,t);break;default:tt(e,t)}}function rt(e,t){var n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n))}function at(e,t){var n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker())}function it(e,t){for(var n=t.tagName,r=e.openElements.stackTop;r>0;r--){var a=e.openElements.items[r];if(e.treeAdapter.getTagName(a)===n){e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilElementPopped(a);break}if(e._isSpecialElement(a))break}}function ot(e,t){var n=t.tagName;switch(n.length){case 1:n===j.A||n===j.B||n===j.I||n===j.S||n===j.U?Ie(e,t):n===j.P?function(e){e.openElements.hasInButtonScope(j.P)||e._insertFakeElement(j.P),e._closePElement()}(e):it(e,t);break;case 2:n===j.DL||n===j.UL||n===j.OL?rt(e,t):n===j.LI?function(e){e.openElements.hasInListItemScope(j.LI)&&(e.openElements.generateImpliedEndTagsWithExclusion(j.LI),e.openElements.popUntilTagNamePopped(j.LI))}(e):n===j.DD||n===j.DT?function(e,t){var n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilTagNamePopped(n))}(e,t):n===j.H1||n===j.H2||n===j.H3||n===j.H4||n===j.H5||n===j.H6?function(e){e.openElements.hasNumberedHeaderInScope()&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilNumberedHeaderPopped())}(e):n===j.BR?function(e){e._reconstructActiveFormattingElements(),e._insertFakeElement(j.BR),e.openElements.pop(),e.framesetOk=!1}(e):n===j.EM||n===j.TT?Ie(e,t):it(e,t);break;case 3:n===j.BIG?Ie(e,t):n===j.DIR||n===j.DIV||n===j.NAV||n===j.PRE?rt(e,t):it(e,t);break;case 4:n===j.BODY?function(e){e.openElements.hasInScope(j.BODY)&&(e.insertionMode=ge)}(e):n===j.HTML?function(e,t){e.openElements.hasInScope(j.BODY)&&(e.insertionMode=ge,e._processToken(t))}(e,t):n===j.FORM?function(e){var t=e.openElements.tmplCount>0,n=e.formElement;t||(e.formElement=null),(n||t)&&e.openElements.hasInScope(j.FORM)&&(e.openElements.generateImpliedEndTags(),t?e.openElements.popUntilTagNamePopped(j.FORM):e.openElements.remove(n))}(e):n===j.CODE||n===j.FONT||n===j.NOBR?Ie(e,t):n===j.MAIN||n===j.MENU?rt(e,t):it(e,t);break;case 5:n===j.ASIDE?rt(e,t):n===j.SMALL?Ie(e,t):it(e,t);break;case 6:n===j.CENTER||n===j.FIGURE||n===j.FOOTER||n===j.HEADER||n===j.HGROUP||n===j.DIALOG?rt(e,t):n===j.APPLET||n===j.OBJECT?at(e,t):n===j.STRIKE||n===j.STRONG?Ie(e,t):it(e,t);break;case 7:n===j.ADDRESS||n===j.ARTICLE||n===j.DETAILS||n===j.SECTION||n===j.SUMMARY||n===j.LISTING?rt(e,t):n===j.MARQUEE?at(e,t):it(e,t);break;case 8:n===j.FIELDSET?rt(e,t):n===j.TEMPLATE?Ge(e,t):it(e,t);break;case 10:n===j.BLOCKQUOTE||n===j.FIGCAPTION?rt(e,t):it(e,t);break;default:it(e,t)}}function st(e,t){e.tmplInsertionModeStackTop>-1?ft(e,t):e.stopped=!0}function lt(e,t){var n=e.openElements.currentTagName;n===j.TABLE||n===j.TBODY||n===j.TFOOT||n===j.THEAD||n===j.TR?(e.pendingCharacterTokens=[],e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=ie,e._processToken(t)):dt(e,t)}function ct(e,t){var n=t.tagName;switch(n.length){case 2:n===j.TD||n===j.TH||n===j.TR?function(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(j.TBODY),e.insertionMode=le,e._processToken(t)}(e,t):dt(e,t);break;case 3:n===j.COL?function(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(j.COLGROUP),e.insertionMode=se,e._processToken(t)}(e,t):dt(e,t);break;case 4:n===j.FORM?function(e,t){e.formElement||0!==e.openElements.tmplCount||(e._insertElement(t,W.HTML),e.formElement=e.openElements.current,e.openElements.pop())}(e,t):dt(e,t);break;case 5:n===j.TABLE?function(e,t){e.openElements.hasInTableScope(j.TABLE)&&(e.openElements.popUntilTagNamePopped(j.TABLE),e._resetInsertionMode(),e._processToken(t))}(e,t):n===j.STYLE?Be(e,t):n===j.TBODY||n===j.TFOOT||n===j.THEAD?function(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,W.HTML),e.insertionMode=le}(e,t):n===j.INPUT?function(e,t){var n=O.getTokenAttr(t,q.TYPE);n&&n.toLowerCase()===X?e._appendElement(t,W.HTML):dt(e,t),t.ackSelfClosing=!0}(e,t):dt(e,t);break;case 6:n===j.SCRIPT?Be(e,t):dt(e,t);break;case 7:n===j.CAPTION?function(e,t){e.openElements.clearBackToTableContext(),e.activeFormattingElements.insertMarker(),e._insertElement(t,W.HTML),e.insertionMode=oe}(e,t):dt(e,t);break;case 8:n===j.COLGROUP?function(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,W.HTML),e.insertionMode=se}(e,t):n===j.TEMPLATE?Be(e,t):dt(e,t);break;default:dt(e,t)}}function ut(e,t){var n=t.tagName;n===j.TABLE?e.openElements.hasInTableScope(j.TABLE)&&(e.openElements.popUntilTagNamePopped(j.TABLE),e._resetInsertionMode()):n===j.TEMPLATE?Ge(e,t):n!==j.BODY&&n!==j.CAPTION&&n!==j.COL&&n!==j.COLGROUP&&n!==j.HTML&&n!==j.TBODY&&n!==j.TD&&n!==j.TFOOT&&n!==j.TH&&n!==j.THEAD&&n!==j.TR&&dt(e,t)}function dt(e,t){var n=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,e._processTokenInBodyMode(t),e.fosterParentingEnabled=n}function pt(e,t){var n=0;if(e.hasNonWhitespacePendingCharacterToken)for(;n<e.pendingCharacterTokens.length;n++)dt(e,e.pendingCharacterTokens[n]);else for(;n<e.pendingCharacterTokens.length;n++)e._insertCharacters(e.pendingCharacterTokens[n]);e.insertionMode=e.originalInsertionMode,e._processToken(t)}function mt(e,t){e.openElements.currentTagName===j.COLGROUP&&(e.openElements.pop(),e.insertionMode=ae,e._processToken(t))}function gt(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.OPTION?(e.openElements.currentTagName===j.OPTION&&e.openElements.pop(),e._insertElement(t,W.HTML)):n===j.OPTGROUP?(e.openElements.currentTagName===j.OPTION&&e.openElements.pop(),e.openElements.currentTagName===j.OPTGROUP&&e.openElements.pop(),e._insertElement(t,W.HTML)):n===j.INPUT||n===j.KEYGEN||n===j.TEXTAREA||n===j.SELECT?e.openElements.hasInSelectScope(j.SELECT)&&(e.openElements.popUntilTagNamePopped(j.SELECT),e._resetInsertionMode(),n!==j.SELECT&&e._processToken(t)):n!==j.SCRIPT&&n!==j.TEMPLATE||Be(e,t)}function ht(e,t){var n=t.tagName;if(n===j.OPTGROUP){var r=e.openElements.items[e.openElements.stackTop-1],a=r&&e.treeAdapter.getTagName(r);e.openElements.currentTagName===j.OPTION&&a===j.OPTGROUP&&e.openElements.pop(),e.openElements.currentTagName===j.OPTGROUP&&e.openElements.pop()}else n===j.OPTION?e.openElements.currentTagName===j.OPTION&&e.openElements.pop():n===j.SELECT&&e.openElements.hasInSelectScope(j.SELECT)?(e.openElements.popUntilTagNamePopped(j.SELECT),e._resetInsertionMode()):n===j.TEMPLATE&&Ge(e,t)}function ft(e,t){e.openElements.tmplCount>0?(e.openElements.popUntilTagNamePopped(j.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e._popTmplInsertionMode(),e._resetInsertionMode(),e._processToken(t)):e.stopped=!0}function bt(e,t){e.insertionMode=ne,e._processToken(t)}function Et(e,t){e.insertionMode=ne,e._processToken(t)}e.exports=ve},4808:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(9539),o=i.TAG_NAMES,s=i.NAMESPACES;function l(e){switch(e.length){case 1:return e===o.P;case 2:return e===o.RB||e===o.RP||e===o.RT||e===o.DD||e===o.DT||e===o.LI;case 3:return e===o.RTC;case 6:return e===o.OPTION;case 8:return e===o.OPTGROUP}return!1}function c(e){switch(e.length){case 1:return e===o.P;case 2:return e===o.RB||e===o.RP||e===o.RT||e===o.DD||e===o.DT||e===o.LI||e===o.TD||e===o.TH||e===o.TR;case 3:return e===o.RTC;case 5:return e===o.TBODY||e===o.TFOOT||e===o.THEAD;case 6:return e===o.OPTION;case 7:return e===o.CAPTION;case 8:return e===o.OPTGROUP||e===o.COLGROUP}return!1}function u(e,t){switch(e.length){case 2:if(e===o.TD||e===o.TH)return t===s.HTML;if(e===o.MI||e===o.MO||e===o.MN||e===o.MS)return t===s.MATHML;break;case 4:if(e===o.HTML)return t===s.HTML;if(e===o.DESC)return t===s.SVG;break;case 5:if(e===o.TABLE)return t===s.HTML;if(e===o.MTEXT)return t===s.MATHML;if(e===o.TITLE)return t===s.SVG;break;case 6:return(e===o.APPLET||e===o.OBJECT)&&t===s.HTML;case 7:return(e===o.CAPTION||e===o.MARQUEE)&&t===s.HTML;case 8:return e===o.TEMPLATE&&t===s.HTML;case 13:return e===o.FOREIGN_OBJECT&&t===s.SVG;case 14:return e===o.ANNOTATION_XML&&t===s.MATHML}return!1}var d=function(){function e(t,n){r(this,e),this.stackTop=-1,this.items=[],this.current=t,this.currentTagName=null,this.currentTmplContent=null,this.tmplCount=0,this.treeAdapter=n}return a(e,[{key:"_indexOf",value:function(e){for(var t=-1,n=this.stackTop;n>=0;n--)if(this.items[n]===e){t=n;break}return t}},{key:"_isInTemplate",value:function(){return this.currentTagName===o.TEMPLATE&&this.treeAdapter.getNamespaceURI(this.current)===s.HTML}},{key:"_updateCurrentElement",value:function(){this.current=this.items[this.stackTop],this.currentTagName=this.current&&this.treeAdapter.getTagName(this.current),this.currentTmplContent=this._isInTemplate()?this.treeAdapter.getTemplateContent(this.current):null}},{key:"push",value:function(e){this.items[++this.stackTop]=e,this._updateCurrentElement(),this._isInTemplate()&&this.tmplCount++}},{key:"pop",value:function(){this.stackTop--,this.tmplCount>0&&this._isInTemplate()&&this.tmplCount--,this._updateCurrentElement()}},{key:"replace",value:function(e,t){var n=this._indexOf(e);this.items[n]=t,n===this.stackTop&&this._updateCurrentElement()}},{key:"insertAfter",value:function(e,t){var n=this._indexOf(e)+1;this.items.splice(n,0,t),n===++this.stackTop&&this._updateCurrentElement()}},{key:"popUntilTagNamePopped",value:function(e){for(;this.stackTop>-1;){var t=this.currentTagName,n=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),t===e&&n===s.HTML)break}}},{key:"popUntilElementPopped",value:function(e){for(;this.stackTop>-1;){var t=this.current;if(this.pop(),t===e)break}}},{key:"popUntilNumberedHeaderPopped",value:function(){for(;this.stackTop>-1;){var e=this.currentTagName,t=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),e===o.H1||e===o.H2||e===o.H3||e===o.H4||e===o.H5||e===o.H6&&t===s.HTML)break}}},{key:"popUntilTableCellPopped",value:function(){for(;this.stackTop>-1;){var e=this.currentTagName,t=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),e===o.TD||e===o.TH&&t===s.HTML)break}}},{key:"popAllUpToHtmlElement",value:function(){this.stackTop=0,this._updateCurrentElement()}},{key:"clearBackToTableContext",value:function(){for(;this.currentTagName!==o.TABLE&&this.currentTagName!==o.TEMPLATE&&this.currentTagName!==o.HTML||this.treeAdapter.getNamespaceURI(this.current)!==s.HTML;)this.pop()}},{key:"clearBackToTableBodyContext",value:function(){for(;this.currentTagName!==o.TBODY&&this.currentTagName!==o.TFOOT&&this.currentTagName!==o.THEAD&&this.currentTagName!==o.TEMPLATE&&this.currentTagName!==o.HTML||this.treeAdapter.getNamespaceURI(this.current)!==s.HTML;)this.pop()}},{key:"clearBackToTableRowContext",value:function(){for(;this.currentTagName!==o.TR&&this.currentTagName!==o.TEMPLATE&&this.currentTagName!==o.HTML||this.treeAdapter.getNamespaceURI(this.current)!==s.HTML;)this.pop()}},{key:"remove",value:function(e){for(var t=this.stackTop;t>=0;t--)if(this.items[t]===e){this.items.splice(t,1),this.stackTop--,this._updateCurrentElement();break}}},{key:"tryPeekProperlyNestedBodyElement",value:function(){var e=this.items[1];return e&&this.treeAdapter.getTagName(e)===o.BODY?e:null}},{key:"contains",value:function(e){return this._indexOf(e)>-1}},{key:"getCommonAncestor",value:function(e){var t=this._indexOf(e);return--t>=0?this.items[t]:null}},{key:"isRootHtmlElementCurrent",value:function(){return 0===this.stackTop&&this.currentTagName===o.HTML}},{key:"hasInScope",value:function(e){for(var t=this.stackTop;t>=0;t--){var n=this.treeAdapter.getTagName(this.items[t]),r=this.treeAdapter.getNamespaceURI(this.items[t]);if(n===e&&r===s.HTML)return!0;if(u(n,r))return!1}return!0}},{key:"hasNumberedHeaderInScope",value:function(){for(var e=this.stackTop;e>=0;e--){var t=this.treeAdapter.getTagName(this.items[e]),n=this.treeAdapter.getNamespaceURI(this.items[e]);if((t===o.H1||t===o.H2||t===o.H3||t===o.H4||t===o.H5||t===o.H6)&&n===s.HTML)return!0;if(u(t,n))return!1}return!0}},{key:"hasInListItemScope",value:function(e){for(var t=this.stackTop;t>=0;t--){var n=this.treeAdapter.getTagName(this.items[t]),r=this.treeAdapter.getNamespaceURI(this.items[t]);if(n===e&&r===s.HTML)return!0;if((n===o.UL||n===o.OL)&&r===s.HTML||u(n,r))return!1}return!0}},{key:"hasInButtonScope",value:function(e){for(var t=this.stackTop;t>=0;t--){var n=this.treeAdapter.getTagName(this.items[t]),r=this.treeAdapter.getNamespaceURI(this.items[t]);if(n===e&&r===s.HTML)return!0;if(n===o.BUTTON&&r===s.HTML||u(n,r))return!1}return!0}},{key:"hasInTableScope",value:function(e){for(var t=this.stackTop;t>=0;t--){var n=this.treeAdapter.getTagName(this.items[t]);if(this.treeAdapter.getNamespaceURI(this.items[t])===s.HTML){if(n===e)return!0;if(n===o.TABLE||n===o.TEMPLATE||n===o.HTML)return!1}}return!0}},{key:"hasTableBodyContextInTableScope",value:function(){for(var e=this.stackTop;e>=0;e--){var t=this.treeAdapter.getTagName(this.items[e]);if(this.treeAdapter.getNamespaceURI(this.items[e])===s.HTML){if(t===o.TBODY||t===o.THEAD||t===o.TFOOT)return!0;if(t===o.TABLE||t===o.HTML)return!1}}return!0}},{key:"hasInSelectScope",value:function(e){for(var t=this.stackTop;t>=0;t--){var n=this.treeAdapter.getTagName(this.items[t]);if(this.treeAdapter.getNamespaceURI(this.items[t])===s.HTML){if(n===e)return!0;if(n!==o.OPTION&&n!==o.OPTGROUP)return!1}}return!0}},{key:"generateImpliedEndTags",value:function(){for(;l(this.currentTagName);)this.pop()}},{key:"generateImpliedEndTagsThoroughly",value:function(){for(;c(this.currentTagName);)this.pop()}},{key:"generateImpliedEndTagsWithExclusion",value:function(e){for(;l(this.currentTagName)&&this.currentTagName!==e;)this.pop()}}]),e}();e.exports=d},3085:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(147),o=n(4529),s=n(9908),l=n(4551),c=o.CODE_POINTS,u=o.CODE_POINT_SEQUENCES,d={128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376},p="DATA_STATE",m="RCDATA_STATE",g="RAWTEXT_STATE",h="SCRIPT_DATA_STATE",f="PLAINTEXT_STATE",b="TAG_OPEN_STATE",E="END_TAG_OPEN_STATE",y="TAG_NAME_STATE",T="RCDATA_LESS_THAN_SIGN_STATE",S="RCDATA_END_TAG_OPEN_STATE",v="RCDATA_END_TAG_NAME_STATE",A="RAWTEXT_LESS_THAN_SIGN_STATE",k="RAWTEXT_END_TAG_OPEN_STATE",w="RAWTEXT_END_TAG_NAME_STATE",_="SCRIPT_DATA_LESS_THAN_SIGN_STATE",C="SCRIPT_DATA_END_TAG_OPEN_STATE",N="SCRIPT_DATA_END_TAG_NAME_STATE",I="SCRIPT_DATA_ESCAPE_START_STATE",x="SCRIPT_DATA_ESCAPE_START_DASH_STATE",R="SCRIPT_DATA_ESCAPED_STATE",O="SCRIPT_DATA_ESCAPED_DASH_STATE",L="SCRIPT_DATA_ESCAPED_DASH_DASH_STATE",P="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE",D="SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE",M="SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE",F="SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE",U="SCRIPT_DATA_DOUBLE_ESCAPED_STATE",B="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE",G="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE",H="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE",z="SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE",$="BEFORE_ATTRIBUTE_NAME_STATE",V="ATTRIBUTE_NAME_STATE",j="AFTER_ATTRIBUTE_NAME_STATE",W="BEFORE_ATTRIBUTE_VALUE_STATE",q="ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE",K="ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE",X="ATTRIBUTE_VALUE_UNQUOTED_STATE",Y="AFTER_ATTRIBUTE_VALUE_QUOTED_STATE",Z="SELF_CLOSING_START_TAG_STATE",Q="BOGUS_COMMENT_STATE",J="MARKUP_DECLARATION_OPEN_STATE",ee="COMMENT_START_STATE",te="COMMENT_START_DASH_STATE",ne="COMMENT_STATE",re="COMMENT_LESS_THAN_SIGN_STATE",ae="COMMENT_LESS_THAN_SIGN_BANG_STATE",ie="COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE",oe="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE",se="COMMENT_END_DASH_STATE",le="COMMENT_END_STATE",ce="COMMENT_END_BANG_STATE",ue="DOCTYPE_STATE",de="BEFORE_DOCTYPE_NAME_STATE",pe="DOCTYPE_NAME_STATE",me="AFTER_DOCTYPE_NAME_STATE",ge="AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE",he="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE",fe="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE",be="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE",Ee="AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE",ye="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE",Te="AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE",Se="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE",ve="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE",Ae="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE",ke="AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE",we="BOGUS_DOCTYPE_STATE",_e="CDATA_SECTION_STATE",Ce="CDATA_SECTION_BRACKET_STATE",Ne="CDATA_SECTION_END_STATE",Ie="CHARACTER_REFERENCE_STATE",xe="NAMED_CHARACTER_REFERENCE_STATE",Re="AMBIGUOS_AMPERSAND_STATE",Oe="NUMERIC_CHARACTER_REFERENCE_STATE",Le="HEXADEMICAL_CHARACTER_REFERENCE_START_STATE",Pe="DECIMAL_CHARACTER_REFERENCE_START_STATE",De="HEXADEMICAL_CHARACTER_REFERENCE_STATE",Me="DECIMAL_CHARACTER_REFERENCE_STATE",Fe="NUMERIC_CHARACTER_REFERENCE_END_STATE";function Ue(e){return e===c.SPACE||e===c.LINE_FEED||e===c.TABULATION||e===c.FORM_FEED}function Be(e){return e>=c.DIGIT_0&&e<=c.DIGIT_9}function Ge(e){return e>=c.LATIN_CAPITAL_A&&e<=c.LATIN_CAPITAL_Z}function He(e){return e>=c.LATIN_SMALL_A&&e<=c.LATIN_SMALL_Z}function ze(e){return He(e)||Ge(e)}function $e(e){return ze(e)||Be(e)}function Ve(e){return e>=c.LATIN_CAPITAL_A&&e<=c.LATIN_CAPITAL_F}function je(e){return e>=c.LATIN_SMALL_A&&e<=c.LATIN_SMALL_F}function We(e){return e+32}function qe(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(e>>>10&1023|55296)+String.fromCharCode(56320|1023&e))}function Ke(e){return String.fromCharCode(We(e))}function Xe(e,t){for(var n=s[++e],r=++e,a=r+n-1;r<=a;){var i=r+a>>>1,o=s[i];if(o<t)r=i+1;else{if(!(o>t))return s[i+n];a=i-1}}return-1}var Ye=function(){function e(){r(this,e),this.preprocessor=new i,this.tokenQueue=[],this.allowCDATA=!1,this.state=p,this.returnState="",this.charRefCode=-1,this.tempBuff=[],this.lastStartTagName="",this.consumedAfterSnapshot=-1,this.active=!1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr=null}return a(e,[{key:"_err",value:function(){}},{key:"_errOnNextCodePoint",value:function(e){this._consume(),this._err(e),this._unconsume()}},{key:"getNextToken",value:function(){for(;!this.tokenQueue.length&&this.active;){this.consumedAfterSnapshot=0;var e=this._consume();this._ensureHibernation()||this[this.state](e)}return this.tokenQueue.shift()}},{key:"write",value:function(e,t){this.active=!0,this.preprocessor.write(e,t)}},{key:"insertHtmlAtCurrentPos",value:function(e){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(e)}},{key:"_ensureHibernation",value:function(){if(this.preprocessor.endOfChunkHit){for(;this.consumedAfterSnapshot>0;this.consumedAfterSnapshot--)this.preprocessor.retreat();return this.active=!1,this.tokenQueue.push({type:e.HIBERNATION_TOKEN}),!0}return!1}},{key:"_consume",value:function(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}},{key:"_unconsume",value:function(){this.consumedAfterSnapshot--,this.preprocessor.retreat()}},{key:"_reconsumeInState",value:function(e){this.state=e,this._unconsume()}},{key:"_consumeSequenceIfMatch",value:function(e,t,n){for(var r=0,a=!0,i=e.length,o=0,s=t,l=void 0;o<i;o++){if(o>0&&(s=this._consume(),r++),s===c.EOF){a=!1;break}if(s!==(l=e[o])&&(n||s!==We(l))){a=!1;break}}if(!a)for(;r--;)this._unconsume();return a}},{key:"_isTempBufferEqualToScriptString",value:function(){if(this.tempBuff.length!==u.SCRIPT_STRING.length)return!1;for(var e=0;e<this.tempBuff.length;e++)if(this.tempBuff[e]!==u.SCRIPT_STRING[e])return!1;return!0}},{key:"_createStartTagToken",value:function(){this.currentToken={type:e.START_TAG_TOKEN,tagName:"",selfClosing:!1,ackSelfClosing:!1,attrs:[]}}},{key:"_createEndTagToken",value:function(){this.currentToken={type:e.END_TAG_TOKEN,tagName:"",selfClosing:!1,attrs:[]}}},{key:"_createCommentToken",value:function(){this.currentToken={type:e.COMMENT_TOKEN,data:""}}},{key:"_createDoctypeToken",value:function(t){this.currentToken={type:e.DOCTYPE_TOKEN,name:t,forceQuirks:!1,publicId:null,systemId:null}}},{key:"_createCharacterToken",value:function(e,t){this.currentCharacterToken={type:e,chars:t}}},{key:"_createEOFToken",value:function(){this.currentToken={type:e.EOF_TOKEN}}},{key:"_createAttr",value:function(e){this.currentAttr={name:e,value:""}}},{key:"_leaveAttrName",value:function(t){null===e.getTokenAttr(this.currentToken,this.currentAttr.name)?this.currentToken.attrs.push(this.currentAttr):this._err(l.duplicateAttribute),this.state=t}},{key:"_leaveAttrValue",value:function(e){this.state=e}},{key:"_emitCurrentToken",value:function(){this._emitCurrentCharacterToken();var t=this.currentToken;this.currentToken=null,t.type===e.START_TAG_TOKEN?this.lastStartTagName=t.tagName:t.type===e.END_TAG_TOKEN&&(t.attrs.length>0&&this._err(l.endTagWithAttributes),t.selfClosing&&this._err(l.endTagWithTrailingSolidus)),this.tokenQueue.push(t)}},{key:"_emitCurrentCharacterToken",value:function(){this.currentCharacterToken&&(this.tokenQueue.push(this.currentCharacterToken),this.currentCharacterToken=null)}},{key:"_emitEOFToken",value:function(){this._createEOFToken(),this._emitCurrentToken()}},{key:"_appendCharToCurrentCharacterToken",value:function(e,t){this.currentCharacterToken&&this.currentCharacterToken.type!==e&&this._emitCurrentCharacterToken(),this.currentCharacterToken?this.currentCharacterToken.chars+=t:this._createCharacterToken(e,t)}},{key:"_emitCodePoint",value:function(t){var n=e.CHARACTER_TOKEN;Ue(t)?n=e.WHITESPACE_CHARACTER_TOKEN:t===c.NULL&&(n=e.NULL_CHARACTER_TOKEN),this._appendCharToCurrentCharacterToken(n,qe(t))}},{key:"_emitSeveralCodePoints",value:function(e){for(var t=0;t<e.length;t++)this._emitCodePoint(e[t])}},{key:"_emitChars",value:function(t){this._appendCharToCurrentCharacterToken(e.CHARACTER_TOKEN,t)}},{key:"_matchNamedCharacterReference",value:function(e){var t=null,n=1,r=Xe(0,e);for(this.tempBuff.push(e);r>-1;){var a=s[r],i=a<7;i&&1&a&&(t=2&a?[s[++r],s[++r]]:[s[++r]],n=0);var o=this._consume();if(this.tempBuff.push(o),n++,o===c.EOF)break;r=i?4&a?Xe(r,o):-1:o===a?++r:-1}for(;n--;)this.tempBuff.pop(),this._unconsume();return t}},{key:"_isCharacterReferenceInAttribute",value:function(){return this.returnState===q||this.returnState===K||this.returnState===X}},{key:"_isCharacterReferenceAttributeQuirk",value:function(e){if(!e&&this._isCharacterReferenceInAttribute()){var t=this._consume();return this._unconsume(),t===c.EQUALS_SIGN||$e(t)}return!1}},{key:"_flushCodePointsConsumedAsCharacterReference",value:function(){if(this._isCharacterReferenceInAttribute())for(var e=0;e<this.tempBuff.length;e++)this.currentAttr.value+=qe(this.tempBuff[e]);else this._emitSeveralCodePoints(this.tempBuff);this.tempBuff=[]}},{key:p,value:function(e){this.preprocessor.dropParsedChunk(),e===c.LESS_THAN_SIGN?this.state=b:e===c.AMPERSAND?(this.returnState=p,this.state=Ie):e===c.NULL?(this._err(l.unexpectedNullCharacter),this._emitCodePoint(e)):e===c.EOF?this._emitEOFToken():this._emitCodePoint(e)}},{key:m,value:function(e){this.preprocessor.dropParsedChunk(),e===c.AMPERSAND?(this.returnState=m,this.state=Ie):e===c.LESS_THAN_SIGN?this.state=T:e===c.NULL?(this._err(l.unexpectedNullCharacter),this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?this._emitEOFToken():this._emitCodePoint(e)}},{key:g,value:function(e){this.preprocessor.dropParsedChunk(),e===c.LESS_THAN_SIGN?this.state=A:e===c.NULL?(this._err(l.unexpectedNullCharacter),this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?this._emitEOFToken():this._emitCodePoint(e)}},{key:h,value:function(e){this.preprocessor.dropParsedChunk(),e===c.LESS_THAN_SIGN?this.state=_:e===c.NULL?(this._err(l.unexpectedNullCharacter),this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?this._emitEOFToken():this._emitCodePoint(e)}},{key:f,value:function(e){this.preprocessor.dropParsedChunk(),e===c.NULL?(this._err(l.unexpectedNullCharacter),this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?this._emitEOFToken():this._emitCodePoint(e)}},{key:b,value:function(e){e===c.EXCLAMATION_MARK?this.state=J:e===c.SOLIDUS?this.state=E:ze(e)?(this._createStartTagToken(),this._reconsumeInState(y)):e===c.QUESTION_MARK?(this._err(l.unexpectedQuestionMarkInsteadOfTagName),this._createCommentToken(),this._reconsumeInState(Q)):e===c.EOF?(this._err(l.eofBeforeTagName),this._emitChars("<"),this._emitEOFToken()):(this._err(l.invalidFirstCharacterOfTagName),this._emitChars("<"),this._reconsumeInState(p))}},{key:E,value:function(e){ze(e)?(this._createEndTagToken(),this._reconsumeInState(y)):e===c.GREATER_THAN_SIGN?(this._err(l.missingEndTagName),this.state=p):e===c.EOF?(this._err(l.eofBeforeTagName),this._emitChars("</"),this._emitEOFToken()):(this._err(l.invalidFirstCharacterOfTagName),this._createCommentToken(),this._reconsumeInState(Q))}},{key:y,value:function(e){Ue(e)?this.state=$:e===c.SOLIDUS?this.state=Z:e===c.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):Ge(e)?this.currentToken.tagName+=Ke(e):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentToken.tagName+=o.REPLACEMENT_CHARACTER):e===c.EOF?(this._err(l.eofInTag),this._emitEOFToken()):this.currentToken.tagName+=qe(e)}},{key:T,value:function(e){e===c.SOLIDUS?(this.tempBuff=[],this.state=S):(this._emitChars("<"),this._reconsumeInState(m))}},{key:S,value:function(e){ze(e)?(this._createEndTagToken(),this._reconsumeInState(v)):(this._emitChars("</"),this._reconsumeInState(m))}},{key:v,value:function(e){if(Ge(e))this.currentToken.tagName+=Ke(e),this.tempBuff.push(e);else if(He(e))this.currentToken.tagName+=qe(e),this.tempBuff.push(e);else{if(this.lastStartTagName===this.currentToken.tagName){if(Ue(e))return void(this.state=$);if(e===c.SOLIDUS)return void(this.state=Z);if(e===c.GREATER_THAN_SIGN)return this.state=p,void this._emitCurrentToken()}this._emitChars("</"),this._emitSeveralCodePoints(this.tempBuff),this._reconsumeInState(m)}}},{key:A,value:function(e){e===c.SOLIDUS?(this.tempBuff=[],this.state=k):(this._emitChars("<"),this._reconsumeInState(g))}},{key:k,value:function(e){ze(e)?(this._createEndTagToken(),this._reconsumeInState(w)):(this._emitChars("</"),this._reconsumeInState(g))}},{key:w,value:function(e){if(Ge(e))this.currentToken.tagName+=Ke(e),this.tempBuff.push(e);else if(He(e))this.currentToken.tagName+=qe(e),this.tempBuff.push(e);else{if(this.lastStartTagName===this.currentToken.tagName){if(Ue(e))return void(this.state=$);if(e===c.SOLIDUS)return void(this.state=Z);if(e===c.GREATER_THAN_SIGN)return this._emitCurrentToken(),void(this.state=p)}this._emitChars("</"),this._emitSeveralCodePoints(this.tempBuff),this._reconsumeInState(g)}}},{key:_,value:function(e){e===c.SOLIDUS?(this.tempBuff=[],this.state=C):e===c.EXCLAMATION_MARK?(this.state=I,this._emitChars("<!")):(this._emitChars("<"),this._reconsumeInState(h))}},{key:C,value:function(e){ze(e)?(this._createEndTagToken(),this._reconsumeInState(N)):(this._emitChars("</"),this._reconsumeInState(h))}},{key:N,value:function(e){if(Ge(e))this.currentToken.tagName+=Ke(e),this.tempBuff.push(e);else if(He(e))this.currentToken.tagName+=qe(e),this.tempBuff.push(e);else{if(this.lastStartTagName===this.currentToken.tagName){if(Ue(e))return void(this.state=$);if(e===c.SOLIDUS)return void(this.state=Z);if(e===c.GREATER_THAN_SIGN)return this._emitCurrentToken(),void(this.state=p)}this._emitChars("</"),this._emitSeveralCodePoints(this.tempBuff),this._reconsumeInState(h)}}},{key:I,value:function(e){e===c.HYPHEN_MINUS?(this.state=x,this._emitChars("-")):this._reconsumeInState(h)}},{key:x,value:function(e){e===c.HYPHEN_MINUS?(this.state=L,this._emitChars("-")):this._reconsumeInState(h)}},{key:R,value:function(e){e===c.HYPHEN_MINUS?(this.state=O,this._emitChars("-")):e===c.LESS_THAN_SIGN?this.state=P:e===c.NULL?(this._err(l.unexpectedNullCharacter),this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?(this._err(l.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):this._emitCodePoint(e)}},{key:O,value:function(e){e===c.HYPHEN_MINUS?(this.state=L,this._emitChars("-")):e===c.LESS_THAN_SIGN?this.state=P:e===c.NULL?(this._err(l.unexpectedNullCharacter),this.state=R,this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?(this._err(l.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):(this.state=R,this._emitCodePoint(e))}},{key:L,value:function(e){e===c.HYPHEN_MINUS?this._emitChars("-"):e===c.LESS_THAN_SIGN?this.state=P:e===c.GREATER_THAN_SIGN?(this.state=h,this._emitChars(">")):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.state=R,this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?(this._err(l.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):(this.state=R,this._emitCodePoint(e))}},{key:P,value:function(e){e===c.SOLIDUS?(this.tempBuff=[],this.state=D):ze(e)?(this.tempBuff=[],this._emitChars("<"),this._reconsumeInState(F)):(this._emitChars("<"),this._reconsumeInState(R))}},{key:D,value:function(e){ze(e)?(this._createEndTagToken(),this._reconsumeInState(M)):(this._emitChars("</"),this._reconsumeInState(R))}},{key:M,value:function(e){if(Ge(e))this.currentToken.tagName+=Ke(e),this.tempBuff.push(e);else if(He(e))this.currentToken.tagName+=qe(e),this.tempBuff.push(e);else{if(this.lastStartTagName===this.currentToken.tagName){if(Ue(e))return void(this.state=$);if(e===c.SOLIDUS)return void(this.state=Z);if(e===c.GREATER_THAN_SIGN)return this._emitCurrentToken(),void(this.state=p)}this._emitChars("</"),this._emitSeveralCodePoints(this.tempBuff),this._reconsumeInState(R)}}},{key:F,value:function(e){Ue(e)||e===c.SOLIDUS||e===c.GREATER_THAN_SIGN?(this.state=this._isTempBufferEqualToScriptString()?U:R,this._emitCodePoint(e)):Ge(e)?(this.tempBuff.push(We(e)),this._emitCodePoint(e)):He(e)?(this.tempBuff.push(e),this._emitCodePoint(e)):this._reconsumeInState(R)}},{key:U,value:function(e){e===c.HYPHEN_MINUS?(this.state=B,this._emitChars("-")):e===c.LESS_THAN_SIGN?(this.state=H,this._emitChars("<")):e===c.NULL?(this._err(l.unexpectedNullCharacter),this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?(this._err(l.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):this._emitCodePoint(e)}},{key:B,value:function(e){e===c.HYPHEN_MINUS?(this.state=G,this._emitChars("-")):e===c.LESS_THAN_SIGN?(this.state=H,this._emitChars("<")):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.state=U,this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?(this._err(l.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):(this.state=U,this._emitCodePoint(e))}},{key:G,value:function(e){e===c.HYPHEN_MINUS?this._emitChars("-"):e===c.LESS_THAN_SIGN?(this.state=H,this._emitChars("<")):e===c.GREATER_THAN_SIGN?(this.state=h,this._emitChars(">")):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.state=U,this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?(this._err(l.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):(this.state=U,this._emitCodePoint(e))}},{key:H,value:function(e){e===c.SOLIDUS?(this.tempBuff=[],this.state=z,this._emitChars("/")):this._reconsumeInState(U)}},{key:z,value:function(e){Ue(e)||e===c.SOLIDUS||e===c.GREATER_THAN_SIGN?(this.state=this._isTempBufferEqualToScriptString()?R:U,this._emitCodePoint(e)):Ge(e)?(this.tempBuff.push(We(e)),this._emitCodePoint(e)):He(e)?(this.tempBuff.push(e),this._emitCodePoint(e)):this._reconsumeInState(U)}},{key:$,value:function(e){Ue(e)||(e===c.SOLIDUS||e===c.GREATER_THAN_SIGN||e===c.EOF?this._reconsumeInState(j):e===c.EQUALS_SIGN?(this._err(l.unexpectedEqualsSignBeforeAttributeName),this._createAttr("="),this.state=V):(this._createAttr(""),this._reconsumeInState(V)))}},{key:V,value:function(e){Ue(e)||e===c.SOLIDUS||e===c.GREATER_THAN_SIGN||e===c.EOF?(this._leaveAttrName(j),this._unconsume()):e===c.EQUALS_SIGN?this._leaveAttrName(W):Ge(e)?this.currentAttr.name+=Ke(e):e===c.QUOTATION_MARK||e===c.APOSTROPHE||e===c.LESS_THAN_SIGN?(this._err(l.unexpectedCharacterInAttributeName),this.currentAttr.name+=qe(e)):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentAttr.name+=o.REPLACEMENT_CHARACTER):this.currentAttr.name+=qe(e)}},{key:j,value:function(e){Ue(e)||(e===c.SOLIDUS?this.state=Z:e===c.EQUALS_SIGN?this.state=W:e===c.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInTag),this._emitEOFToken()):(this._createAttr(""),this._reconsumeInState(V)))}},{key:W,value:function(e){Ue(e)||(e===c.QUOTATION_MARK?this.state=q:e===c.APOSTROPHE?this.state=K:e===c.GREATER_THAN_SIGN?(this._err(l.missingAttributeValue),this.state=p,this._emitCurrentToken()):this._reconsumeInState(X))}},{key:q,value:function(e){e===c.QUOTATION_MARK?this.state=Y:e===c.AMPERSAND?(this.returnState=q,this.state=Ie):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentAttr.value+=o.REPLACEMENT_CHARACTER):e===c.EOF?(this._err(l.eofInTag),this._emitEOFToken()):this.currentAttr.value+=qe(e)}},{key:K,value:function(e){e===c.APOSTROPHE?this.state=Y:e===c.AMPERSAND?(this.returnState=K,this.state=Ie):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentAttr.value+=o.REPLACEMENT_CHARACTER):e===c.EOF?(this._err(l.eofInTag),this._emitEOFToken()):this.currentAttr.value+=qe(e)}},{key:X,value:function(e){Ue(e)?this._leaveAttrValue($):e===c.AMPERSAND?(this.returnState=X,this.state=Ie):e===c.GREATER_THAN_SIGN?(this._leaveAttrValue(p),this._emitCurrentToken()):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentAttr.value+=o.REPLACEMENT_CHARACTER):e===c.QUOTATION_MARK||e===c.APOSTROPHE||e===c.LESS_THAN_SIGN||e===c.EQUALS_SIGN||e===c.GRAVE_ACCENT?(this._err(l.unexpectedCharacterInUnquotedAttributeValue),this.currentAttr.value+=qe(e)):e===c.EOF?(this._err(l.eofInTag),this._emitEOFToken()):this.currentAttr.value+=qe(e)}},{key:Y,value:function(e){Ue(e)?this._leaveAttrValue($):e===c.SOLIDUS?this._leaveAttrValue(Z):e===c.GREATER_THAN_SIGN?(this._leaveAttrValue(p),this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInTag),this._emitEOFToken()):(this._err(l.missingWhitespaceBetweenAttributes),this._reconsumeInState($))}},{key:Z,value:function(e){e===c.GREATER_THAN_SIGN?(this.currentToken.selfClosing=!0,this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInTag),this._emitEOFToken()):(this._err(l.unexpectedSolidusInTag),this._reconsumeInState($))}},{key:Q,value:function(e){e===c.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===c.EOF?(this._emitCurrentToken(),this._emitEOFToken()):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentToken.data+=o.REPLACEMENT_CHARACTER):this.currentToken.data+=qe(e)}},{key:J,value:function(e){this._consumeSequenceIfMatch(u.DASH_DASH_STRING,e,!0)?(this._createCommentToken(),this.state=ee):this._consumeSequenceIfMatch(u.DOCTYPE_STRING,e,!1)?this.state=ue:this._consumeSequenceIfMatch(u.CDATA_START_STRING,e,!0)?this.allowCDATA?this.state=_e:(this._err(l.cdataInHtmlContent),this._createCommentToken(),this.currentToken.data="[CDATA[",this.state=Q):this._ensureHibernation()||(this._err(l.incorrectlyOpenedComment),this._createCommentToken(),this._reconsumeInState(Q))}},{key:ee,value:function(e){e===c.HYPHEN_MINUS?this.state=te:e===c.GREATER_THAN_SIGN?(this._err(l.abruptClosingOfEmptyComment),this.state=p,this._emitCurrentToken()):this._reconsumeInState(ne)}},{key:te,value:function(e){e===c.HYPHEN_MINUS?this.state=le:e===c.GREATER_THAN_SIGN?(this._err(l.abruptClosingOfEmptyComment),this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="-",this._reconsumeInState(ne))}},{key:ne,value:function(e){e===c.HYPHEN_MINUS?this.state=se:e===c.LESS_THAN_SIGN?(this.currentToken.data+="<",this.state=re):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentToken.data+=o.REPLACEMENT_CHARACTER):e===c.EOF?(this._err(l.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.data+=qe(e)}},{key:re,value:function(e){e===c.EXCLAMATION_MARK?(this.currentToken.data+="!",this.state=ae):e===c.LESS_THAN_SIGN?this.currentToken.data+="!":this._reconsumeInState(ne)}},{key:ae,value:function(e){e===c.HYPHEN_MINUS?this.state=ie:this._reconsumeInState(ne)}},{key:ie,value:function(e){e===c.HYPHEN_MINUS?this.state=oe:this._reconsumeInState(se)}},{key:oe,value:function(e){e!==c.GREATER_THAN_SIGN&&e!==c.EOF&&this._err(l.nestedComment),this._reconsumeInState(le)}},{key:se,value:function(e){e===c.HYPHEN_MINUS?this.state=le:e===c.EOF?(this._err(l.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="-",this._reconsumeInState(ne))}},{key:le,value:function(e){e===c.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===c.EXCLAMATION_MARK?this.state=ce:e===c.HYPHEN_MINUS?this.currentToken.data+="-":e===c.EOF?(this._err(l.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="--",this._reconsumeInState(ne))}},{key:ce,value:function(e){e===c.HYPHEN_MINUS?(this.currentToken.data+="--!",this.state=se):e===c.GREATER_THAN_SIGN?(this._err(l.incorrectlyClosedComment),this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="--!",this._reconsumeInState(ne))}},{key:ue,value:function(e){Ue(e)?this.state=de:e===c.GREATER_THAN_SIGN?this._reconsumeInState(de):e===c.EOF?(this._err(l.eofInDoctype),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(l.missingWhitespaceBeforeDoctypeName),this._reconsumeInState(de))}},{key:de,value:function(e){Ue(e)||(Ge(e)?(this._createDoctypeToken(Ke(e)),this.state=pe):e===c.NULL?(this._err(l.unexpectedNullCharacter),this._createDoctypeToken(o.REPLACEMENT_CHARACTER),this.state=pe):e===c.GREATER_THAN_SIGN?(this._err(l.missingDoctypeName),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===c.EOF?(this._err(l.eofInDoctype),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._createDoctypeToken(qe(e)),this.state=pe))}},{key:pe,value:function(e){Ue(e)?this.state=me:e===c.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):Ge(e)?this.currentToken.name+=Ke(e):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentToken.name+=o.REPLACEMENT_CHARACTER):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.name+=qe(e)}},{key:me,value:function(e){Ue(e)||(e===c.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this._consumeSequenceIfMatch(u.PUBLIC_STRING,e,!1)?this.state=ge:this._consumeSequenceIfMatch(u.SYSTEM_STRING,e,!1)?this.state=Te:this._ensureHibernation()||(this._err(l.invalidCharacterSequenceAfterDoctypeName),this.currentToken.forceQuirks=!0,this._reconsumeInState(we)))}},{key:ge,value:function(e){Ue(e)?this.state=he:e===c.QUOTATION_MARK?(this._err(l.missingWhitespaceAfterDoctypePublicKeyword),this.currentToken.publicId="",this.state=fe):e===c.APOSTROPHE?(this._err(l.missingWhitespaceAfterDoctypePublicKeyword),this.currentToken.publicId="",this.state=be):e===c.GREATER_THAN_SIGN?(this._err(l.missingDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(l.missingQuoteBeforeDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(we))}},{key:he,value:function(e){Ue(e)||(e===c.QUOTATION_MARK?(this.currentToken.publicId="",this.state=fe):e===c.APOSTROPHE?(this.currentToken.publicId="",this.state=be):e===c.GREATER_THAN_SIGN?(this._err(l.missingDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(l.missingQuoteBeforeDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(we)))}},{key:fe,value:function(e){e===c.QUOTATION_MARK?this.state=Ee:e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentToken.publicId+=o.REPLACEMENT_CHARACTER):e===c.GREATER_THAN_SIGN?(this._err(l.abruptDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.publicId+=qe(e)}},{key:be,value:function(e){e===c.APOSTROPHE?this.state=Ee:e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentToken.publicId+=o.REPLACEMENT_CHARACTER):e===c.GREATER_THAN_SIGN?(this._err(l.abruptDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.publicId+=qe(e)}},{key:Ee,value:function(e){Ue(e)?this.state=ye:e===c.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===c.QUOTATION_MARK?(this._err(l.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),this.currentToken.systemId="",this.state=ve):e===c.APOSTROPHE?(this._err(l.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),this.currentToken.systemId="",this.state=Ae):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(l.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(we))}},{key:ye,value:function(e){Ue(e)||(e===c.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=p):e===c.QUOTATION_MARK?(this.currentToken.systemId="",this.state=ve):e===c.APOSTROPHE?(this.currentToken.systemId="",this.state=Ae):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(l.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(we)))}},{key:Te,value:function(e){Ue(e)?this.state=Se:e===c.QUOTATION_MARK?(this._err(l.missingWhitespaceAfterDoctypeSystemKeyword),this.currentToken.systemId="",this.state=ve):e===c.APOSTROPHE?(this._err(l.missingWhitespaceAfterDoctypeSystemKeyword),this.currentToken.systemId="",this.state=Ae):e===c.GREATER_THAN_SIGN?(this._err(l.missingDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(l.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(we))}},{key:Se,value:function(e){Ue(e)||(e===c.QUOTATION_MARK?(this.currentToken.systemId="",this.state=ve):e===c.APOSTROPHE?(this.currentToken.systemId="",this.state=Ae):e===c.GREATER_THAN_SIGN?(this._err(l.missingDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(l.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(we)))}},{key:ve,value:function(e){e===c.QUOTATION_MARK?this.state=ke:e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentToken.systemId+=o.REPLACEMENT_CHARACTER):e===c.GREATER_THAN_SIGN?(this._err(l.abruptDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.systemId+=qe(e)}},{key:Ae,value:function(e){e===c.APOSTROPHE?this.state=ke:e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentToken.systemId+=o.REPLACEMENT_CHARACTER):e===c.GREATER_THAN_SIGN?(this._err(l.abruptDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.systemId+=qe(e)}},{key:ke,value:function(e){Ue(e)||(e===c.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=p):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(l.unexpectedCharacterAfterDoctypeSystemIdentifier),this._reconsumeInState(we)))}},{key:we,value:function(e){e===c.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=p):e===c.NULL?this._err(l.unexpectedNullCharacter):e===c.EOF&&(this._emitCurrentToken(),this._emitEOFToken())}},{key:_e,value:function(e){e===c.RIGHT_SQUARE_BRACKET?this.state=Ce:e===c.EOF?(this._err(l.eofInCdata),this._emitEOFToken()):this._emitCodePoint(e)}},{key:Ce,value:function(e){e===c.RIGHT_SQUARE_BRACKET?this.state=Ne:(this._emitChars("]"),this._reconsumeInState(_e))}},{key:Ne,value:function(e){e===c.GREATER_THAN_SIGN?this.state=p:e===c.RIGHT_SQUARE_BRACKET?this._emitChars("]"):(this._emitChars("]]"),this._reconsumeInState(_e))}},{key:Ie,value:function(e){this.tempBuff=[c.AMPERSAND],e===c.NUMBER_SIGN?(this.tempBuff.push(e),this.state=Oe):$e(e)?this._reconsumeInState(xe):(this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState))}},{key:xe,value:function(e){var t=this._matchNamedCharacterReference(e);if(this._ensureHibernation())this.tempBuff=[c.AMPERSAND];else if(t){var n=this.tempBuff[this.tempBuff.length-1]===c.SEMICOLON;this._isCharacterReferenceAttributeQuirk(n)||(n||this._errOnNextCodePoint(l.missingSemicolonAfterCharacterReference),this.tempBuff=t),this._flushCodePointsConsumedAsCharacterReference(),this.state=this.returnState}else this._flushCodePointsConsumedAsCharacterReference(),this.state=Re}},{key:Re,value:function(e){$e(e)?this._isCharacterReferenceInAttribute()?this.currentAttr.value+=qe(e):this._emitCodePoint(e):(e===c.SEMICOLON&&this._err(l.unknownNamedCharacterReference),this._reconsumeInState(this.returnState))}},{key:Oe,value:function(e){this.charRefCode=0,e===c.LATIN_SMALL_X||e===c.LATIN_CAPITAL_X?(this.tempBuff.push(e),this.state=Le):this._reconsumeInState(Pe)}},{key:Le,value:function(e){!function(e){return Be(e)||Ve(e)||je(e)}(e)?(this._err(l.absenceOfDigitsInNumericCharacterReference),this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState)):this._reconsumeInState(De)}},{key:Pe,value:function(e){Be(e)?this._reconsumeInState(Me):(this._err(l.absenceOfDigitsInNumericCharacterReference),this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState))}},{key:De,value:function(e){Ve(e)?this.charRefCode=16*this.charRefCode+e-55:je(e)?this.charRefCode=16*this.charRefCode+e-87:Be(e)?this.charRefCode=16*this.charRefCode+e-48:e===c.SEMICOLON?this.state=Fe:(this._err(l.missingSemicolonAfterCharacterReference),this._reconsumeInState(Fe))}},{key:Me,value:function(e){Be(e)?this.charRefCode=10*this.charRefCode+e-48:e===c.SEMICOLON?this.state=Fe:(this._err(l.missingSemicolonAfterCharacterReference),this._reconsumeInState(Fe))}},{key:Fe,value:function(){if(this.charRefCode===c.NULL)this._err(l.nullCharacterReference),this.charRefCode=c.REPLACEMENT_CHARACTER;else if(this.charRefCode>1114111)this._err(l.characterReferenceOutsideUnicodeRange),this.charRefCode=c.REPLACEMENT_CHARACTER;else if(o.isSurrogate(this.charRefCode))this._err(l.surrogateCharacterReference),this.charRefCode=c.REPLACEMENT_CHARACTER;else if(o.isUndefinedCodePoint(this.charRefCode))this._err(l.noncharacterCharacterReference);else if(o.isControlCodePoint(this.charRefCode)||this.charRefCode===c.CARRIAGE_RETURN){this._err(l.controlCharacterReference);var e=d[this.charRefCode];e&&(this.charRefCode=e)}this.tempBuff=[this.charRefCode],this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState)}}]),e}();Ye.CHARACTER_TOKEN="CHARACTER_TOKEN",Ye.NULL_CHARACTER_TOKEN="NULL_CHARACTER_TOKEN",Ye.WHITESPACE_CHARACTER_TOKEN="WHITESPACE_CHARACTER_TOKEN",Ye.START_TAG_TOKEN="START_TAG_TOKEN",Ye.END_TAG_TOKEN="END_TAG_TOKEN",Ye.COMMENT_TOKEN="COMMENT_TOKEN",Ye.DOCTYPE_TOKEN="DOCTYPE_TOKEN",Ye.EOF_TOKEN="EOF_TOKEN",Ye.HIBERNATION_TOKEN="HIBERNATION_TOKEN",Ye.MODE={DATA:p,RCDATA:m,RAWTEXT:g,SCRIPT_DATA:h,PLAINTEXT:f},Ye.getTokenAttr=function(e,t){for(var n=e.attrs.length-1;n>=0;n--)if(e.attrs[n].name===t)return e.attrs[n].value;return null},e.exports=Ye},9908:function(e){"use strict";e.exports=new Uint16Array([4,52,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,106,303,412,810,1432,1701,1796,1987,2114,2360,2420,2484,3170,3251,4140,4393,4575,4610,5106,5512,5728,6117,6274,6315,6345,6427,6516,7002,7910,8733,9323,9870,10170,10631,10893,11318,11386,11467,12773,13092,14474,14922,15448,15542,16419,17666,18166,18611,19004,19095,19298,19397,4,16,69,77,97,98,99,102,103,108,109,110,111,112,114,115,116,117,140,150,158,169,176,194,199,210,216,222,226,242,256,266,283,294,108,105,103,5,198,1,59,148,1,198,80,5,38,1,59,156,1,38,99,117,116,101,5,193,1,59,167,1,193,114,101,118,101,59,1,258,4,2,105,121,182,191,114,99,5,194,1,59,189,1,194,59,1,1040,114,59,3,55349,56580,114,97,118,101,5,192,1,59,208,1,192,112,104,97,59,1,913,97,99,114,59,1,256,100,59,1,10835,4,2,103,112,232,237,111,110,59,1,260,102,59,3,55349,56632,112,108,121,70,117,110,99,116,105,111,110,59,1,8289,105,110,103,5,197,1,59,264,1,197,4,2,99,115,272,277,114,59,3,55349,56476,105,103,110,59,1,8788,105,108,100,101,5,195,1,59,292,1,195,109,108,5,196,1,59,301,1,196,4,8,97,99,101,102,111,114,115,117,321,350,354,383,388,394,400,405,4,2,99,114,327,336,107,115,108,97,115,104,59,1,8726,4,2,118,119,342,345,59,1,10983,101,100,59,1,8966,121,59,1,1041,4,3,99,114,116,362,369,379,97,117,115,101,59,1,8757,110,111,117,108,108,105,115,59,1,8492,97,59,1,914,114,59,3,55349,56581,112,102,59,3,55349,56633,101,118,101,59,1,728,99,114,59,1,8492,109,112,101,113,59,1,8782,4,14,72,79,97,99,100,101,102,104,105,108,111,114,115,117,442,447,456,504,542,547,569,573,577,616,678,784,790,796,99,121,59,1,1063,80,89,5,169,1,59,454,1,169,4,3,99,112,121,464,470,497,117,116,101,59,1,262,4,2,59,105,476,478,1,8914,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59,1,8517,108,101,121,115,59,1,8493,4,4,97,101,105,111,514,520,530,535,114,111,110,59,1,268,100,105,108,5,199,1,59,528,1,199,114,99,59,1,264,110,105,110,116,59,1,8752,111,116,59,1,266,4,2,100,110,553,560,105,108,108,97,59,1,184,116,101,114,68,111,116,59,1,183,114,59,1,8493,105,59,1,935,114,99,108,101,4,4,68,77,80,84,591,596,603,609,111,116,59,1,8857,105,110,117,115,59,1,8854,108,117,115,59,1,8853,105,109,101,115,59,1,8855,111,4,2,99,115,623,646,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8754,101,67,117,114,108,121,4,2,68,81,658,671,111,117,98,108,101,81,117,111,116,101,59,1,8221,117,111,116,101,59,1,8217,4,4,108,110,112,117,688,701,736,753,111,110,4,2,59,101,696,698,1,8759,59,1,10868,4,3,103,105,116,709,717,722,114,117,101,110,116,59,1,8801,110,116,59,1,8751,111,117,114,73,110,116,101,103,114,97,108,59,1,8750,4,2,102,114,742,745,59,1,8450,111,100,117,99,116,59,1,8720,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8755,111,115,115,59,1,10799,99,114,59,3,55349,56478,112,4,2,59,67,803,805,1,8915,97,112,59,1,8781,4,11,68,74,83,90,97,99,101,102,105,111,115,834,850,855,860,865,888,903,916,921,1011,1415,4,2,59,111,840,842,1,8517,116,114,97,104,100,59,1,10513,99,121,59,1,1026,99,121,59,1,1029,99,121,59,1,1039,4,3,103,114,115,873,879,883,103,101,114,59,1,8225,114,59,1,8609,104,118,59,1,10980,4,2,97,121,894,900,114,111,110,59,1,270,59,1,1044,108,4,2,59,116,910,912,1,8711,97,59,1,916,114,59,3,55349,56583,4,2,97,102,927,998,4,2,99,109,933,992,114,105,116,105,99,97,108,4,4,65,68,71,84,950,957,978,985,99,117,116,101,59,1,180,111,4,2,116,117,964,967,59,1,729,98,108,101,65,99,117,116,101,59,1,733,114,97,118,101,59,1,96,105,108,100,101,59,1,732,111,110,100,59,1,8900,102,101,114,101,110,116,105,97,108,68,59,1,8518,4,4,112,116,117,119,1021,1026,1048,1249,102,59,3,55349,56635,4,3,59,68,69,1034,1036,1041,1,168,111,116,59,1,8412,113,117,97,108,59,1,8784,98,108,101,4,6,67,68,76,82,85,86,1065,1082,1101,1189,1211,1236,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8751,111,4,2,116,119,1089,1092,59,1,168,110,65,114,114,111,119,59,1,8659,4,2,101,111,1107,1141,102,116,4,3,65,82,84,1117,1124,1136,114,114,111,119,59,1,8656,105,103,104,116,65,114,114,111,119,59,1,8660,101,101,59,1,10980,110,103,4,2,76,82,1149,1177,101,102,116,4,2,65,82,1158,1165,114,114,111,119,59,1,10232,105,103,104,116,65,114,114,111,119,59,1,10234,105,103,104,116,65,114,114,111,119,59,1,10233,105,103,104,116,4,2,65,84,1199,1206,114,114,111,119,59,1,8658,101,101,59,1,8872,112,4,2,65,68,1218,1225,114,114,111,119,59,1,8657,111,119,110,65,114,114,111,119,59,1,8661,101,114,116,105,99,97,108,66,97,114,59,1,8741,110,4,6,65,66,76,82,84,97,1264,1292,1299,1352,1391,1408,114,114,111,119,4,3,59,66,85,1276,1278,1283,1,8595,97,114,59,1,10515,112,65,114,114,111,119,59,1,8693,114,101,118,101,59,1,785,101,102,116,4,3,82,84,86,1310,1323,1334,105,103,104,116,86,101,99,116,111,114,59,1,10576,101,101,86,101,99,116,111,114,59,1,10590,101,99,116,111,114,4,2,59,66,1345,1347,1,8637,97,114,59,1,10582,105,103,104,116,4,2,84,86,1362,1373,101,101,86,101,99,116,111,114,59,1,10591,101,99,116,111,114,4,2,59,66,1384,1386,1,8641,97,114,59,1,10583,101,101,4,2,59,65,1399,1401,1,8868,114,114,111,119,59,1,8615,114,114,111,119,59,1,8659,4,2,99,116,1421,1426,114,59,3,55349,56479,114,111,107,59,1,272,4,16,78,84,97,99,100,102,103,108,109,111,112,113,115,116,117,120,1466,1470,1478,1489,1515,1520,1525,1536,1544,1593,1609,1617,1650,1664,1668,1677,71,59,1,330,72,5,208,1,59,1476,1,208,99,117,116,101,5,201,1,59,1487,1,201,4,3,97,105,121,1497,1503,1512,114,111,110,59,1,282,114,99,5,202,1,59,1510,1,202,59,1,1069,111,116,59,1,278,114,59,3,55349,56584,114,97,118,101,5,200,1,59,1534,1,200,101,109,101,110,116,59,1,8712,4,2,97,112,1550,1555,99,114,59,1,274,116,121,4,2,83,86,1563,1576,109,97,108,108,83,113,117,97,114,101,59,1,9723,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9643,4,2,103,112,1599,1604,111,110,59,1,280,102,59,3,55349,56636,115,105,108,111,110,59,1,917,117,4,2,97,105,1624,1640,108,4,2,59,84,1631,1633,1,10869,105,108,100,101,59,1,8770,108,105,98,114,105,117,109,59,1,8652,4,2,99,105,1656,1660,114,59,1,8496,109,59,1,10867,97,59,1,919,109,108,5,203,1,59,1675,1,203,4,2,105,112,1683,1689,115,116,115,59,1,8707,111,110,101,110,116,105,97,108,69,59,1,8519,4,5,99,102,105,111,115,1713,1717,1722,1762,1791,121,59,1,1060,114,59,3,55349,56585,108,108,101,100,4,2,83,86,1732,1745,109,97,108,108,83,113,117,97,114,101,59,1,9724,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9642,4,3,112,114,117,1770,1775,1781,102,59,3,55349,56637,65,108,108,59,1,8704,114,105,101,114,116,114,102,59,1,8497,99,114,59,1,8497,4,12,74,84,97,98,99,100,102,103,111,114,115,116,1822,1827,1834,1848,1855,1877,1882,1887,1890,1896,1978,1984,99,121,59,1,1027,5,62,1,59,1832,1,62,109,109,97,4,2,59,100,1843,1845,1,915,59,1,988,114,101,118,101,59,1,286,4,3,101,105,121,1863,1869,1874,100,105,108,59,1,290,114,99,59,1,284,59,1,1043,111,116,59,1,288,114,59,3,55349,56586,59,1,8921,112,102,59,3,55349,56638,101,97,116,101,114,4,6,69,70,71,76,83,84,1915,1933,1944,1953,1959,1971,113,117,97,108,4,2,59,76,1925,1927,1,8805,101,115,115,59,1,8923,117,108,108,69,113,117,97,108,59,1,8807,114,101,97,116,101,114,59,1,10914,101,115,115,59,1,8823,108,97,110,116,69,113,117,97,108,59,1,10878,105,108,100,101,59,1,8819,99,114,59,3,55349,56482,59,1,8811,4,8,65,97,99,102,105,111,115,117,2005,2012,2026,2032,2036,2049,2073,2089,82,68,99,121,59,1,1066,4,2,99,116,2018,2023,101,107,59,1,711,59,1,94,105,114,99,59,1,292,114,59,1,8460,108,98,101,114,116,83,112,97,99,101,59,1,8459,4,2,112,114,2055,2059,102,59,1,8461,105,122,111,110,116,97,108,76,105,110,101,59,1,9472,4,2,99,116,2079,2083,114,59,1,8459,114,111,107,59,1,294,109,112,4,2,68,69,2097,2107,111,119,110,72,117,109,112,59,1,8782,113,117,97,108,59,1,8783,4,14,69,74,79,97,99,100,102,103,109,110,111,115,116,117,2144,2149,2155,2160,2171,2189,2194,2198,2209,2245,2307,2329,2334,2341,99,121,59,1,1045,108,105,103,59,1,306,99,121,59,1,1025,99,117,116,101,5,205,1,59,2169,1,205,4,2,105,121,2177,2186,114,99,5,206,1,59,2184,1,206,59,1,1048,111,116,59,1,304,114,59,1,8465,114,97,118,101,5,204,1,59,2207,1,204,4,3,59,97,112,2217,2219,2238,1,8465,4,2,99,103,2225,2229,114,59,1,298,105,110,97,114,121,73,59,1,8520,108,105,101,115,59,1,8658,4,2,116,118,2251,2281,4,2,59,101,2257,2259,1,8748,4,2,103,114,2265,2271,114,97,108,59,1,8747,115,101,99,116,105,111,110,59,1,8898,105,115,105,98,108,101,4,2,67,84,2293,2300,111,109,109,97,59,1,8291,105,109,101,115,59,1,8290,4,3,103,112,116,2315,2320,2325,111,110,59,1,302,102,59,3,55349,56640,97,59,1,921,99,114,59,1,8464,105,108,100,101,59,1,296,4,2,107,109,2347,2352,99,121,59,1,1030,108,5,207,1,59,2358,1,207,4,5,99,102,111,115,117,2372,2386,2391,2397,2414,4,2,105,121,2378,2383,114,99,59,1,308,59,1,1049,114,59,3,55349,56589,112,102,59,3,55349,56641,4,2,99,101,2403,2408,114,59,3,55349,56485,114,99,121,59,1,1032,107,99,121,59,1,1028,4,7,72,74,97,99,102,111,115,2436,2441,2446,2452,2467,2472,2478,99,121,59,1,1061,99,121,59,1,1036,112,112,97,59,1,922,4,2,101,121,2458,2464,100,105,108,59,1,310,59,1,1050,114,59,3,55349,56590,112,102,59,3,55349,56642,99,114,59,3,55349,56486,4,11,74,84,97,99,101,102,108,109,111,115,116,2508,2513,2520,2562,2585,2981,2986,3004,3011,3146,3167,99,121,59,1,1033,5,60,1,59,2518,1,60,4,5,99,109,110,112,114,2532,2538,2544,2548,2558,117,116,101,59,1,313,98,100,97,59,1,923,103,59,1,10218,108,97,99,101,116,114,102,59,1,8466,114,59,1,8606,4,3,97,101,121,2570,2576,2582,114,111,110,59,1,317,100,105,108,59,1,315,59,1,1051,4,2,102,115,2591,2907,116,4,10,65,67,68,70,82,84,85,86,97,114,2614,2663,2672,2728,2735,2760,2820,2870,2888,2895,4,2,110,114,2620,2633,103,108,101,66,114,97,99,107,101,116,59,1,10216,114,111,119,4,3,59,66,82,2644,2646,2651,1,8592,97,114,59,1,8676,105,103,104,116,65,114,114,111,119,59,1,8646,101,105,108,105,110,103,59,1,8968,111,4,2,117,119,2679,2692,98,108,101,66,114,97,99,107,101,116,59,1,10214,110,4,2,84,86,2699,2710,101,101,86,101,99,116,111,114,59,1,10593,101,99,116,111,114,4,2,59,66,2721,2723,1,8643,97,114,59,1,10585,108,111,111,114,59,1,8970,105,103,104,116,4,2,65,86,2745,2752,114,114,111,119,59,1,8596,101,99,116,111,114,59,1,10574,4,2,101,114,2766,2792,101,4,3,59,65,86,2775,2777,2784,1,8867,114,114,111,119,59,1,8612,101,99,116,111,114,59,1,10586,105,97,110,103,108,101,4,3,59,66,69,2806,2808,2813,1,8882,97,114,59,1,10703,113,117,97,108,59,1,8884,112,4,3,68,84,86,2829,2841,2852,111,119,110,86,101,99,116,111,114,59,1,10577,101,101,86,101,99,116,111,114,59,1,10592,101,99,116,111,114,4,2,59,66,2863,2865,1,8639,97,114,59,1,10584,101,99,116,111,114,4,2,59,66,2881,2883,1,8636,97,114,59,1,10578,114,114,111,119,59,1,8656,105,103,104,116,97,114,114,111,119,59,1,8660,115,4,6,69,70,71,76,83,84,2922,2936,2947,2956,2962,2974,113,117,97,108,71,114,101,97,116,101,114,59,1,8922,117,108,108,69,113,117,97,108,59,1,8806,114,101,97,116,101,114,59,1,8822,101,115,115,59,1,10913,108,97,110,116,69,113,117,97,108,59,1,10877,105,108,100,101,59,1,8818,114,59,3,55349,56591,4,2,59,101,2992,2994,1,8920,102,116,97,114,114,111,119,59,1,8666,105,100,111,116,59,1,319,4,3,110,112,119,3019,3110,3115,103,4,4,76,82,108,114,3030,3058,3070,3098,101,102,116,4,2,65,82,3039,3046,114,114,111,119,59,1,10229,105,103,104,116,65,114,114,111,119,59,1,10231,105,103,104,116,65,114,114,111,119,59,1,10230,101,102,116,4,2,97,114,3079,3086,114,114,111,119,59,1,10232,105,103,104,116,97,114,114,111,119,59,1,10234,105,103,104,116,97,114,114,111,119,59,1,10233,102,59,3,55349,56643,101,114,4,2,76,82,3123,3134,101,102,116,65,114,114,111,119,59,1,8601,105,103,104,116,65,114,114,111,119,59,1,8600,4,3,99,104,116,3154,3158,3161,114,59,1,8466,59,1,8624,114,111,107,59,1,321,59,1,8810,4,8,97,99,101,102,105,111,115,117,3188,3192,3196,3222,3227,3237,3243,3248,112,59,1,10501,121,59,1,1052,4,2,100,108,3202,3213,105,117,109,83,112,97,99,101,59,1,8287,108,105,110,116,114,102,59,1,8499,114,59,3,55349,56592,110,117,115,80,108,117,115,59,1,8723,112,102,59,3,55349,56644,99,114,59,1,8499,59,1,924,4,9,74,97,99,101,102,111,115,116,117,3271,3276,3283,3306,3422,3427,4120,4126,4137,99,121,59,1,1034,99,117,116,101,59,1,323,4,3,97,101,121,3291,3297,3303,114,111,110,59,1,327,100,105,108,59,1,325,59,1,1053,4,3,103,115,119,3314,3380,3415,97,116,105,118,101,4,3,77,84,86,3327,3340,3365,101,100,105,117,109,83,112,97,99,101,59,1,8203,104,105,4,2,99,110,3348,3357,107,83,112,97,99,101,59,1,8203,83,112,97,99,101,59,1,8203,101,114,121,84,104,105,110,83,112,97,99,101,59,1,8203,116,101,100,4,2,71,76,3389,3405,114,101,97,116,101,114,71,114,101,97,116,101,114,59,1,8811,101,115,115,76,101,115,115,59,1,8810,76,105,110,101,59,1,10,114,59,3,55349,56593,4,4,66,110,112,116,3437,3444,3460,3464,114,101,97,107,59,1,8288,66,114,101,97,107,105,110,103,83,112,97,99,101,59,1,160,102,59,1,8469,4,13,59,67,68,69,71,72,76,78,80,82,83,84,86,3492,3494,3517,3536,3578,3657,3685,3784,3823,3860,3915,4066,4107,1,10988,4,2,111,117,3500,3510,110,103,114,117,101,110,116,59,1,8802,112,67,97,112,59,1,8813,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59,1,8742,4,3,108,113,120,3544,3552,3571,101,109,101,110,116,59,1,8713,117,97,108,4,2,59,84,3561,3563,1,8800,105,108,100,101,59,3,8770,824,105,115,116,115,59,1,8708,114,101,97,116,101,114,4,7,59,69,70,71,76,83,84,3600,3602,3609,3621,3631,3637,3650,1,8815,113,117,97,108,59,1,8817,117,108,108,69,113,117,97,108,59,3,8807,824,114,101,97,116,101,114,59,3,8811,824,101,115,115,59,1,8825,108,97,110,116,69,113,117,97,108,59,3,10878,824,105,108,100,101,59,1,8821,117,109,112,4,2,68,69,3666,3677,111,119,110,72,117,109,112,59,3,8782,824,113,117,97,108,59,3,8783,824,101,4,2,102,115,3692,3724,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3709,3711,3717,1,8938,97,114,59,3,10703,824,113,117,97,108,59,1,8940,115,4,6,59,69,71,76,83,84,3739,3741,3748,3757,3764,3777,1,8814,113,117,97,108,59,1,8816,114,101,97,116,101,114,59,1,8824,101,115,115,59,3,8810,824,108,97,110,116,69,113,117,97,108,59,3,10877,824,105,108,100,101,59,1,8820,101,115,116,101,100,4,2,71,76,3795,3812,114,101,97,116,101,114,71,114,101,97,116,101,114,59,3,10914,824,101,115,115,76,101,115,115,59,3,10913,824,114,101,99,101,100,101,115,4,3,59,69,83,3838,3840,3848,1,8832,113,117,97,108,59,3,10927,824,108,97,110,116,69,113,117,97,108,59,1,8928,4,2,101,105,3866,3881,118,101,114,115,101,69,108,101,109,101,110,116,59,1,8716,103,104,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3900,3902,3908,1,8939,97,114,59,3,10704,824,113,117,97,108,59,1,8941,4,2,113,117,3921,3973,117,97,114,101,83,117,4,2,98,112,3933,3952,115,101,116,4,2,59,69,3942,3945,3,8847,824,113,117,97,108,59,1,8930,101,114,115,101,116,4,2,59,69,3963,3966,3,8848,824,113,117,97,108,59,1,8931,4,3,98,99,112,3981,4e3,4045,115,101,116,4,2,59,69,3990,3993,3,8834,8402,113,117,97,108,59,1,8840,99,101,101,100,115,4,4,59,69,83,84,4015,4017,4025,4037,1,8833,113,117,97,108,59,3,10928,824,108,97,110,116,69,113,117,97,108,59,1,8929,105,108,100,101,59,3,8831,824,101,114,115,101,116,4,2,59,69,4056,4059,3,8835,8402,113,117,97,108,59,1,8841,105,108,100,101,4,4,59,69,70,84,4080,4082,4089,4100,1,8769,113,117,97,108,59,1,8772,117,108,108,69,113,117,97,108,59,1,8775,105,108,100,101,59,1,8777,101,114,116,105,99,97,108,66,97,114,59,1,8740,99,114,59,3,55349,56489,105,108,100,101,5,209,1,59,4135,1,209,59,1,925,4,14,69,97,99,100,102,103,109,111,112,114,115,116,117,118,4170,4176,4187,4205,4212,4217,4228,4253,4259,4292,4295,4316,4337,4346,108,105,103,59,1,338,99,117,116,101,5,211,1,59,4185,1,211,4,2,105,121,4193,4202,114,99,5,212,1,59,4200,1,212,59,1,1054,98,108,97,99,59,1,336,114,59,3,55349,56594,114,97,118,101,5,210,1,59,4226,1,210,4,3,97,101,105,4236,4241,4246,99,114,59,1,332,103,97,59,1,937,99,114,111,110,59,1,927,112,102,59,3,55349,56646,101,110,67,117,114,108,121,4,2,68,81,4272,4285,111,117,98,108,101,81,117,111,116,101,59,1,8220,117,111,116,101,59,1,8216,59,1,10836,4,2,99,108,4301,4306,114,59,3,55349,56490,97,115,104,5,216,1,59,4314,1,216,105,4,2,108,109,4323,4332,100,101,5,213,1,59,4330,1,213,101,115,59,1,10807,109,108,5,214,1,59,4344,1,214,101,114,4,2,66,80,4354,4380,4,2,97,114,4360,4364,114,59,1,8254,97,99,4,2,101,107,4372,4375,59,1,9182,101,116,59,1,9140,97,114,101,110,116,104,101,115,105,115,59,1,9180,4,9,97,99,102,104,105,108,111,114,115,4413,4422,4426,4431,4435,4438,4448,4471,4561,114,116,105,97,108,68,59,1,8706,121,59,1,1055,114,59,3,55349,56595,105,59,1,934,59,1,928,117,115,77,105,110,117,115,59,1,177,4,2,105,112,4454,4467,110,99,97,114,101,112,108,97,110,101,59,1,8460,102,59,1,8473,4,4,59,101,105,111,4481,4483,4526,4531,1,10939,99,101,100,101,115,4,4,59,69,83,84,4498,4500,4507,4519,1,8826,113,117,97,108,59,1,10927,108,97,110,116,69,113,117,97,108,59,1,8828,105,108,100,101,59,1,8830,109,101,59,1,8243,4,2,100,112,4537,4543,117,99,116,59,1,8719,111,114,116,105,111,110,4,2,59,97,4555,4557,1,8759,108,59,1,8733,4,2,99,105,4567,4572,114,59,3,55349,56491,59,1,936,4,4,85,102,111,115,4585,4594,4599,4604,79,84,5,34,1,59,4592,1,34,114,59,3,55349,56596,112,102,59,1,8474,99,114,59,3,55349,56492,4,12,66,69,97,99,101,102,104,105,111,114,115,117,4636,4642,4650,4681,4704,4763,4767,4771,5047,5069,5081,5094,97,114,114,59,1,10512,71,5,174,1,59,4648,1,174,4,3,99,110,114,4658,4664,4668,117,116,101,59,1,340,103,59,1,10219,114,4,2,59,116,4675,4677,1,8608,108,59,1,10518,4,3,97,101,121,4689,4695,4701,114,111,110,59,1,344,100,105,108,59,1,342,59,1,1056,4,2,59,118,4710,4712,1,8476,101,114,115,101,4,2,69,85,4722,4748,4,2,108,113,4728,4736,101,109,101,110,116,59,1,8715,117,105,108,105,98,114,105,117,109,59,1,8651,112,69,113,117,105,108,105,98,114,105,117,109,59,1,10607,114,59,1,8476,111,59,1,929,103,104,116,4,8,65,67,68,70,84,85,86,97,4792,4840,4849,4905,4912,4972,5022,5040,4,2,110,114,4798,4811,103,108,101,66,114,97,99,107,101,116,59,1,10217,114,111,119,4,3,59,66,76,4822,4824,4829,1,8594,97,114,59,1,8677,101,102,116,65,114,114,111,119,59,1,8644,101,105,108,105,110,103,59,1,8969,111,4,2,117,119,4856,4869,98,108,101,66,114,97,99,107,101,116,59,1,10215,110,4,2,84,86,4876,4887,101,101,86,101,99,116,111,114,59,1,10589,101,99,116,111,114,4,2,59,66,4898,4900,1,8642,97,114,59,1,10581,108,111,111,114,59,1,8971,4,2,101,114,4918,4944,101,4,3,59,65,86,4927,4929,4936,1,8866,114,114,111,119,59,1,8614,101,99,116,111,114,59,1,10587,105,97,110,103,108,101,4,3,59,66,69,4958,4960,4965,1,8883,97,114,59,1,10704,113,117,97,108,59,1,8885,112,4,3,68,84,86,4981,4993,5004,111,119,110,86,101,99,116,111,114,59,1,10575,101,101,86,101,99,116,111,114,59,1,10588,101,99,116,111,114,4,2,59,66,5015,5017,1,8638,97,114,59,1,10580,101,99,116,111,114,4,2,59,66,5033,5035,1,8640,97,114,59,1,10579,114,114,111,119,59,1,8658,4,2,112,117,5053,5057,102,59,1,8477,110,100,73,109,112,108,105,101,115,59,1,10608,105,103,104,116,97,114,114,111,119,59,1,8667,4,2,99,104,5087,5091,114,59,1,8475,59,1,8625,108,101,68,101,108,97,121,101,100,59,1,10740,4,13,72,79,97,99,102,104,105,109,111,113,115,116,117,5134,5150,5157,5164,5198,5203,5259,5265,5277,5283,5374,5380,5385,4,2,67,99,5140,5146,72,99,121,59,1,1065,121,59,1,1064,70,84,99,121,59,1,1068,99,117,116,101,59,1,346,4,5,59,97,101,105,121,5176,5178,5184,5190,5195,1,10940,114,111,110,59,1,352,100,105,108,59,1,350,114,99,59,1,348,59,1,1057,114,59,3,55349,56598,111,114,116,4,4,68,76,82,85,5216,5227,5238,5250,111,119,110,65,114,114,111,119,59,1,8595,101,102,116,65,114,114,111,119,59,1,8592,105,103,104,116,65,114,114,111,119,59,1,8594,112,65,114,114,111,119,59,1,8593,103,109,97,59,1,931,97,108,108,67,105,114,99,108,101,59,1,8728,112,102,59,3,55349,56650,4,2,114,117,5289,5293,116,59,1,8730,97,114,101,4,4,59,73,83,85,5306,5308,5322,5367,1,9633,110,116,101,114,115,101,99,116,105,111,110,59,1,8851,117,4,2,98,112,5329,5347,115,101,116,4,2,59,69,5338,5340,1,8847,113,117,97,108,59,1,8849,101,114,115,101,116,4,2,59,69,5358,5360,1,8848,113,117,97,108,59,1,8850,110,105,111,110,59,1,8852,99,114,59,3,55349,56494,97,114,59,1,8902,4,4,98,99,109,112,5395,5420,5475,5478,4,2,59,115,5401,5403,1,8912,101,116,4,2,59,69,5411,5413,1,8912,113,117,97,108,59,1,8838,4,2,99,104,5426,5468,101,101,100,115,4,4,59,69,83,84,5440,5442,5449,5461,1,8827,113,117,97,108,59,1,10928,108,97,110,116,69,113,117,97,108,59,1,8829,105,108,100,101,59,1,8831,84,104,97,116,59,1,8715,59,1,8721,4,3,59,101,115,5486,5488,5507,1,8913,114,115,101,116,4,2,59,69,5498,5500,1,8835,113,117,97,108,59,1,8839,101,116,59,1,8913,4,11,72,82,83,97,99,102,104,105,111,114,115,5536,5546,5552,5567,5579,5602,5607,5655,5695,5701,5711,79,82,78,5,222,1,59,5544,1,222,65,68,69,59,1,8482,4,2,72,99,5558,5563,99,121,59,1,1035,121,59,1,1062,4,2,98,117,5573,5576,59,1,9,59,1,932,4,3,97,101,121,5587,5593,5599,114,111,110,59,1,356,100,105,108,59,1,354,59,1,1058,114,59,3,55349,56599,4,2,101,105,5613,5631,4,2,114,116,5619,5627,101,102,111,114,101,59,1,8756,97,59,1,920,4,2,99,110,5637,5647,107,83,112,97,99,101,59,3,8287,8202,83,112,97,99,101,59,1,8201,108,100,101,4,4,59,69,70,84,5668,5670,5677,5688,1,8764,113,117,97,108,59,1,8771,117,108,108,69,113,117,97,108,59,1,8773,105,108,100,101,59,1,8776,112,102,59,3,55349,56651,105,112,108,101,68,111,116,59,1,8411,4,2,99,116,5717,5722,114,59,3,55349,56495,114,111,107,59,1,358,4,14,97,98,99,100,102,103,109,110,111,112,114,115,116,117,5758,5789,5805,5823,5830,5835,5846,5852,5921,5937,6089,6095,6101,6108,4,2,99,114,5764,5774,117,116,101,5,218,1,59,5772,1,218,114,4,2,59,111,5781,5783,1,8607,99,105,114,59,1,10569,114,4,2,99,101,5796,5800,121,59,1,1038,118,101,59,1,364,4,2,105,121,5811,5820,114,99,5,219,1,59,5818,1,219,59,1,1059,98,108,97,99,59,1,368,114,59,3,55349,56600,114,97,118,101,5,217,1,59,5844,1,217,97,99,114,59,1,362,4,2,100,105,5858,5905,101,114,4,2,66,80,5866,5892,4,2,97,114,5872,5876,114,59,1,95,97,99,4,2,101,107,5884,5887,59,1,9183,101,116,59,1,9141,97,114,101,110,116,104,101,115,105,115,59,1,9181,111,110,4,2,59,80,5913,5915,1,8899,108,117,115,59,1,8846,4,2,103,112,5927,5932,111,110,59,1,370,102,59,3,55349,56652,4,8,65,68,69,84,97,100,112,115,5955,5985,5996,6009,6026,6033,6044,6075,114,114,111,119,4,3,59,66,68,5967,5969,5974,1,8593,97,114,59,1,10514,111,119,110,65,114,114,111,119,59,1,8645,111,119,110,65,114,114,111,119,59,1,8597,113,117,105,108,105,98,114,105,117,109,59,1,10606,101,101,4,2,59,65,6017,6019,1,8869,114,114,111,119,59,1,8613,114,114,111,119,59,1,8657,111,119,110,97,114,114,111,119,59,1,8661,101,114,4,2,76,82,6052,6063,101,102,116,65,114,114,111,119,59,1,8598,105,103,104,116,65,114,114,111,119,59,1,8599,105,4,2,59,108,6082,6084,1,978,111,110,59,1,933,105,110,103,59,1,366,99,114,59,3,55349,56496,105,108,100,101,59,1,360,109,108,5,220,1,59,6115,1,220,4,9,68,98,99,100,101,102,111,115,118,6137,6143,6148,6152,6166,6250,6255,6261,6267,97,115,104,59,1,8875,97,114,59,1,10987,121,59,1,1042,97,115,104,4,2,59,108,6161,6163,1,8873,59,1,10982,4,2,101,114,6172,6175,59,1,8897,4,3,98,116,121,6183,6188,6238,97,114,59,1,8214,4,2,59,105,6194,6196,1,8214,99,97,108,4,4,66,76,83,84,6209,6214,6220,6231,97,114,59,1,8739,105,110,101,59,1,124,101,112,97,114,97,116,111,114,59,1,10072,105,108,100,101,59,1,8768,84,104,105,110,83,112,97,99,101,59,1,8202,114,59,3,55349,56601,112,102,59,3,55349,56653,99,114,59,3,55349,56497,100,97,115,104,59,1,8874,4,5,99,101,102,111,115,6286,6292,6298,6303,6309,105,114,99,59,1,372,100,103,101,59,1,8896,114,59,3,55349,56602,112,102,59,3,55349,56654,99,114,59,3,55349,56498,4,4,102,105,111,115,6325,6330,6333,6339,114,59,3,55349,56603,59,1,926,112,102,59,3,55349,56655,99,114,59,3,55349,56499,4,9,65,73,85,97,99,102,111,115,117,6365,6370,6375,6380,6391,6405,6410,6416,6422,99,121,59,1,1071,99,121,59,1,1031,99,121,59,1,1070,99,117,116,101,5,221,1,59,6389,1,221,4,2,105,121,6397,6402,114,99,59,1,374,59,1,1067,114,59,3,55349,56604,112,102,59,3,55349,56656,99,114,59,3,55349,56500,109,108,59,1,376,4,8,72,97,99,100,101,102,111,115,6445,6450,6457,6472,6477,6501,6505,6510,99,121,59,1,1046,99,117,116,101,59,1,377,4,2,97,121,6463,6469,114,111,110,59,1,381,59,1,1047,111,116,59,1,379,4,2,114,116,6483,6497,111,87,105,100,116,104,83,112,97,99,101,59,1,8203,97,59,1,918,114,59,1,8488,112,102,59,1,8484,99,114,59,3,55349,56501,4,16,97,98,99,101,102,103,108,109,110,111,112,114,115,116,117,119,6550,6561,6568,6612,6622,6634,6645,6672,6699,6854,6870,6923,6933,6963,6974,6983,99,117,116,101,5,225,1,59,6559,1,225,114,101,118,101,59,1,259,4,6,59,69,100,105,117,121,6582,6584,6588,6591,6600,6609,1,8766,59,3,8766,819,59,1,8767,114,99,5,226,1,59,6598,1,226,116,101,5,180,1,59,6607,1,180,59,1,1072,108,105,103,5,230,1,59,6620,1,230,4,2,59,114,6628,6630,1,8289,59,3,55349,56606,114,97,118,101,5,224,1,59,6643,1,224,4,2,101,112,6651,6667,4,2,102,112,6657,6663,115,121,109,59,1,8501,104,59,1,8501,104,97,59,1,945,4,2,97,112,6678,6692,4,2,99,108,6684,6688,114,59,1,257,103,59,1,10815,5,38,1,59,6697,1,38,4,2,100,103,6705,6737,4,5,59,97,100,115,118,6717,6719,6724,6727,6734,1,8743,110,100,59,1,10837,59,1,10844,108,111,112,101,59,1,10840,59,1,10842,4,7,59,101,108,109,114,115,122,6753,6755,6758,6762,6814,6835,6848,1,8736,59,1,10660,101,59,1,8736,115,100,4,2,59,97,6770,6772,1,8737,4,8,97,98,99,100,101,102,103,104,6790,6793,6796,6799,6802,6805,6808,6811,59,1,10664,59,1,10665,59,1,10666,59,1,10667,59,1,10668,59,1,10669,59,1,10670,59,1,10671,116,4,2,59,118,6821,6823,1,8735,98,4,2,59,100,6830,6832,1,8894,59,1,10653,4,2,112,116,6841,6845,104,59,1,8738,59,1,197,97,114,114,59,1,9084,4,2,103,112,6860,6865,111,110,59,1,261,102,59,3,55349,56658,4,7,59,69,97,101,105,111,112,6886,6888,6891,6897,6900,6904,6908,1,8776,59,1,10864,99,105,114,59,1,10863,59,1,8778,100,59,1,8779,115,59,1,39,114,111,120,4,2,59,101,6917,6919,1,8776,113,59,1,8778,105,110,103,5,229,1,59,6931,1,229,4,3,99,116,121,6941,6946,6949,114,59,3,55349,56502,59,1,42,109,112,4,2,59,101,6957,6959,1,8776,113,59,1,8781,105,108,100,101,5,227,1,59,6972,1,227,109,108,5,228,1,59,6981,1,228,4,2,99,105,6989,6997,111,110,105,110,116,59,1,8755,110,116,59,1,10769,4,16,78,97,98,99,100,101,102,105,107,108,110,111,112,114,115,117,7036,7041,7119,7135,7149,7155,7219,7224,7347,7354,7463,7489,7786,7793,7814,7866,111,116,59,1,10989,4,2,99,114,7047,7094,107,4,4,99,101,112,115,7058,7064,7073,7080,111,110,103,59,1,8780,112,115,105,108,111,110,59,1,1014,114,105,109,101,59,1,8245,105,109,4,2,59,101,7088,7090,1,8765,113,59,1,8909,4,2,118,119,7100,7105,101,101,59,1,8893,101,100,4,2,59,103,7113,7115,1,8965,101,59,1,8965,114,107,4,2,59,116,7127,7129,1,9141,98,114,107,59,1,9142,4,2,111,121,7141,7146,110,103,59,1,8780,59,1,1073,113,117,111,59,1,8222,4,5,99,109,112,114,116,7167,7181,7188,7193,7199,97,117,115,4,2,59,101,7176,7178,1,8757,59,1,8757,112,116,121,118,59,1,10672,115,105,59,1,1014,110,111,117,59,1,8492,4,3,97,104,119,7207,7210,7213,59,1,946,59,1,8502,101,101,110,59,1,8812,114,59,3,55349,56607,103,4,7,99,111,115,116,117,118,119,7241,7262,7288,7305,7328,7335,7340,4,3,97,105,117,7249,7253,7258,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,4,3,100,112,116,7270,7275,7281,111,116,59,1,10752,108,117,115,59,1,10753,105,109,101,115,59,1,10754,4,2,113,116,7294,7300,99,117,112,59,1,10758,97,114,59,1,9733,114,105,97,110,103,108,101,4,2,100,117,7318,7324,111,119,110,59,1,9661,112,59,1,9651,112,108,117,115,59,1,10756,101,101,59,1,8897,101,100,103,101,59,1,8896,97,114,111,119,59,1,10509,4,3,97,107,111,7362,7436,7458,4,2,99,110,7368,7432,107,4,3,108,115,116,7377,7386,7394,111,122,101,110,103,101,59,1,10731,113,117,97,114,101,59,1,9642,114,105,97,110,103,108,101,4,4,59,100,108,114,7411,7413,7419,7425,1,9652,111,119,110,59,1,9662,101,102,116,59,1,9666,105,103,104,116,59,1,9656,107,59,1,9251,4,2,49,51,7442,7454,4,2,50,52,7448,7451,59,1,9618,59,1,9617,52,59,1,9619,99,107,59,1,9608,4,2,101,111,7469,7485,4,2,59,113,7475,7478,3,61,8421,117,105,118,59,3,8801,8421,116,59,1,8976,4,4,112,116,119,120,7499,7504,7517,7523,102,59,3,55349,56659,4,2,59,116,7510,7512,1,8869,111,109,59,1,8869,116,105,101,59,1,8904,4,12,68,72,85,86,98,100,104,109,112,116,117,118,7549,7571,7597,7619,7655,7660,7682,7708,7715,7721,7728,7750,4,4,76,82,108,114,7559,7562,7565,7568,59,1,9559,59,1,9556,59,1,9558,59,1,9555,4,5,59,68,85,100,117,7583,7585,7588,7591,7594,1,9552,59,1,9574,59,1,9577,59,1,9572,59,1,9575,4,4,76,82,108,114,7607,7610,7613,7616,59,1,9565,59,1,9562,59,1,9564,59,1,9561,4,7,59,72,76,82,104,108,114,7635,7637,7640,7643,7646,7649,7652,1,9553,59,1,9580,59,1,9571,59,1,9568,59,1,9579,59,1,9570,59,1,9567,111,120,59,1,10697,4,4,76,82,108,114,7670,7673,7676,7679,59,1,9557,59,1,9554,59,1,9488,59,1,9484,4,5,59,68,85,100,117,7694,7696,7699,7702,7705,1,9472,59,1,9573,59,1,9576,59,1,9516,59,1,9524,105,110,117,115,59,1,8863,108,117,115,59,1,8862,105,109,101,115,59,1,8864,4,4,76,82,108,114,7738,7741,7744,7747,59,1,9563,59,1,9560,59,1,9496,59,1,9492,4,7,59,72,76,82,104,108,114,7766,7768,7771,7774,7777,7780,7783,1,9474,59,1,9578,59,1,9569,59,1,9566,59,1,9532,59,1,9508,59,1,9500,114,105,109,101,59,1,8245,4,2,101,118,7799,7804,118,101,59,1,728,98,97,114,5,166,1,59,7812,1,166,4,4,99,101,105,111,7824,7829,7834,7846,114,59,3,55349,56503,109,105,59,1,8271,109,4,2,59,101,7841,7843,1,8765,59,1,8909,108,4,3,59,98,104,7855,7857,7860,1,92,59,1,10693,115,117,98,59,1,10184,4,2,108,109,7872,7885,108,4,2,59,101,7879,7881,1,8226,116,59,1,8226,112,4,3,59,69,101,7894,7896,7899,1,8782,59,1,10926,4,2,59,113,7905,7907,1,8783,59,1,8783,4,15,97,99,100,101,102,104,105,108,111,114,115,116,117,119,121,7942,8021,8075,8080,8121,8126,8157,8279,8295,8430,8446,8485,8491,8707,8726,4,3,99,112,114,7950,7956,8007,117,116,101,59,1,263,4,6,59,97,98,99,100,115,7970,7972,7977,7984,7998,8003,1,8745,110,100,59,1,10820,114,99,117,112,59,1,10825,4,2,97,117,7990,7994,112,59,1,10827,112,59,1,10823,111,116,59,1,10816,59,3,8745,65024,4,2,101,111,8013,8017,116,59,1,8257,110,59,1,711,4,4,97,101,105,117,8031,8046,8056,8061,4,2,112,114,8037,8041,115,59,1,10829,111,110,59,1,269,100,105,108,5,231,1,59,8054,1,231,114,99,59,1,265,112,115,4,2,59,115,8069,8071,1,10828,109,59,1,10832,111,116,59,1,267,4,3,100,109,110,8088,8097,8104,105,108,5,184,1,59,8095,1,184,112,116,121,118,59,1,10674,116,5,162,2,59,101,8112,8114,1,162,114,100,111,116,59,1,183,114,59,3,55349,56608,4,3,99,101,105,8134,8138,8154,121,59,1,1095,99,107,4,2,59,109,8146,8148,1,10003,97,114,107,59,1,10003,59,1,967,114,4,7,59,69,99,101,102,109,115,8174,8176,8179,8258,8261,8268,8273,1,9675,59,1,10691,4,3,59,101,108,8187,8189,8193,1,710,113,59,1,8791,101,4,2,97,100,8200,8223,114,114,111,119,4,2,108,114,8210,8216,101,102,116,59,1,8634,105,103,104,116,59,1,8635,4,5,82,83,97,99,100,8235,8238,8241,8246,8252,59,1,174,59,1,9416,115,116,59,1,8859,105,114,99,59,1,8858,97,115,104,59,1,8861,59,1,8791,110,105,110,116,59,1,10768,105,100,59,1,10991,99,105,114,59,1,10690,117,98,115,4,2,59,117,8288,8290,1,9827,105,116,59,1,9827,4,4,108,109,110,112,8305,8326,8376,8400,111,110,4,2,59,101,8313,8315,1,58,4,2,59,113,8321,8323,1,8788,59,1,8788,4,2,109,112,8332,8344,97,4,2,59,116,8339,8341,1,44,59,1,64,4,3,59,102,108,8352,8354,8358,1,8705,110,59,1,8728,101,4,2,109,120,8365,8371,101,110,116,59,1,8705,101,115,59,1,8450,4,2,103,105,8382,8395,4,2,59,100,8388,8390,1,8773,111,116,59,1,10861,110,116,59,1,8750,4,3,102,114,121,8408,8412,8417,59,3,55349,56660,111,100,59,1,8720,5,169,2,59,115,8424,8426,1,169,114,59,1,8471,4,2,97,111,8436,8441,114,114,59,1,8629,115,115,59,1,10007,4,2,99,117,8452,8457,114,59,3,55349,56504,4,2,98,112,8463,8474,4,2,59,101,8469,8471,1,10959,59,1,10961,4,2,59,101,8480,8482,1,10960,59,1,10962,100,111,116,59,1,8943,4,7,100,101,108,112,114,118,119,8507,8522,8536,8550,8600,8697,8702,97,114,114,4,2,108,114,8516,8519,59,1,10552,59,1,10549,4,2,112,115,8528,8532,114,59,1,8926,99,59,1,8927,97,114,114,4,2,59,112,8545,8547,1,8630,59,1,10557,4,6,59,98,99,100,111,115,8564,8566,8573,8587,8592,8596,1,8746,114,99,97,112,59,1,10824,4,2,97,117,8579,8583,112,59,1,10822,112,59,1,10826,111,116,59,1,8845,114,59,1,10821,59,3,8746,65024,4,4,97,108,114,118,8610,8623,8663,8672,114,114,4,2,59,109,8618,8620,1,8631,59,1,10556,121,4,3,101,118,119,8632,8651,8656,113,4,2,112,115,8639,8645,114,101,99,59,1,8926,117,99,99,59,1,8927,101,101,59,1,8910,101,100,103,101,59,1,8911,101,110,5,164,1,59,8670,1,164,101,97,114,114,111,119,4,2,108,114,8684,8690,101,102,116,59,1,8630,105,103,104,116,59,1,8631,101,101,59,1,8910,101,100,59,1,8911,4,2,99,105,8713,8721,111,110,105,110,116,59,1,8754,110,116,59,1,8753,108,99,116,121,59,1,9005,4,19,65,72,97,98,99,100,101,102,104,105,106,108,111,114,115,116,117,119,122,8773,8778,8783,8821,8839,8854,8887,8914,8930,8944,9036,9041,9058,9197,9227,9258,9281,9297,9305,114,114,59,1,8659,97,114,59,1,10597,4,4,103,108,114,115,8793,8799,8805,8809,103,101,114,59,1,8224,101,116,104,59,1,8504,114,59,1,8595,104,4,2,59,118,8816,8818,1,8208,59,1,8867,4,2,107,108,8827,8834,97,114,111,119,59,1,10511,97,99,59,1,733,4,2,97,121,8845,8851,114,111,110,59,1,271,59,1,1076,4,3,59,97,111,8862,8864,8880,1,8518,4,2,103,114,8870,8876,103,101,114,59,1,8225,114,59,1,8650,116,115,101,113,59,1,10871,4,3,103,108,109,8895,8902,8907,5,176,1,59,8900,1,176,116,97,59,1,948,112,116,121,118,59,1,10673,4,2,105,114,8920,8926,115,104,116,59,1,10623,59,3,55349,56609,97,114,4,2,108,114,8938,8941,59,1,8643,59,1,8642,4,5,97,101,103,115,118,8956,8986,8989,8996,9001,109,4,3,59,111,115,8965,8967,8983,1,8900,110,100,4,2,59,115,8975,8977,1,8900,117,105,116,59,1,9830,59,1,9830,59,1,168,97,109,109,97,59,1,989,105,110,59,1,8946,4,3,59,105,111,9009,9011,9031,1,247,100,101,5,247,2,59,111,9020,9022,1,247,110,116,105,109,101,115,59,1,8903,110,120,59,1,8903,99,121,59,1,1106,99,4,2,111,114,9048,9053,114,110,59,1,8990,111,112,59,1,8973,4,5,108,112,116,117,119,9070,9076,9081,9130,9144,108,97,114,59,1,36,102,59,3,55349,56661,4,5,59,101,109,112,115,9093,9095,9109,9116,9122,1,729,113,4,2,59,100,9102,9104,1,8784,111,116,59,1,8785,105,110,117,115,59,1,8760,108,117,115,59,1,8724,113,117,97,114,101,59,1,8865,98,108,101,98,97,114,119,101,100,103,101,59,1,8966,110,4,3,97,100,104,9153,9160,9172,114,114,111,119,59,1,8595,111,119,110,97,114,114,111,119,115,59,1,8650,97,114,112,111,111,110,4,2,108,114,9184,9190,101,102,116,59,1,8643,105,103,104,116,59,1,8642,4,2,98,99,9203,9211,107,97,114,111,119,59,1,10512,4,2,111,114,9217,9222,114,110,59,1,8991,111,112,59,1,8972,4,3,99,111,116,9235,9248,9252,4,2,114,121,9241,9245,59,3,55349,56505,59,1,1109,108,59,1,10742,114,111,107,59,1,273,4,2,100,114,9264,9269,111,116,59,1,8945,105,4,2,59,102,9276,9278,1,9663,59,1,9662,4,2,97,104,9287,9292,114,114,59,1,8693,97,114,59,1,10607,97,110,103,108,101,59,1,10662,4,2,99,105,9311,9315,121,59,1,1119,103,114,97,114,114,59,1,10239,4,18,68,97,99,100,101,102,103,108,109,110,111,112,113,114,115,116,117,120,9361,9376,9398,9439,9444,9447,9462,9495,9531,9585,9598,9614,9659,9755,9771,9792,9808,9826,4,2,68,111,9367,9372,111,116,59,1,10871,116,59,1,8785,4,2,99,115,9382,9392,117,116,101,5,233,1,59,9390,1,233,116,101,114,59,1,10862,4,4,97,105,111,121,9408,9414,9430,9436,114,111,110,59,1,283,114,4,2,59,99,9421,9423,1,8790,5,234,1,59,9428,1,234,108,111,110,59,1,8789,59,1,1101,111,116,59,1,279,59,1,8519,4,2,68,114,9453,9458,111,116,59,1,8786,59,3,55349,56610,4,3,59,114,115,9470,9472,9482,1,10906,97,118,101,5,232,1,59,9480,1,232,4,2,59,100,9488,9490,1,10902,111,116,59,1,10904,4,4,59,105,108,115,9505,9507,9515,9518,1,10905,110,116,101,114,115,59,1,9191,59,1,8467,4,2,59,100,9524,9526,1,10901,111,116,59,1,10903,4,3,97,112,115,9539,9544,9564,99,114,59,1,275,116,121,4,3,59,115,118,9554,9556,9561,1,8709,101,116,59,1,8709,59,1,8709,112,4,2,49,59,9571,9583,4,2,51,52,9577,9580,59,1,8196,59,1,8197,1,8195,4,2,103,115,9591,9594,59,1,331,112,59,1,8194,4,2,103,112,9604,9609,111,110,59,1,281,102,59,3,55349,56662,4,3,97,108,115,9622,9635,9640,114,4,2,59,115,9629,9631,1,8917,108,59,1,10723,117,115,59,1,10865,105,4,3,59,108,118,9649,9651,9656,1,949,111,110,59,1,949,59,1,1013,4,4,99,115,117,118,9669,9686,9716,9747,4,2,105,111,9675,9680,114,99,59,1,8790,108,111,110,59,1,8789,4,2,105,108,9692,9696,109,59,1,8770,97,110,116,4,2,103,108,9705,9710,116,114,59,1,10902,101,115,115,59,1,10901,4,3,97,101,105,9724,9729,9734,108,115,59,1,61,115,116,59,1,8799,118,4,2,59,68,9741,9743,1,8801,68,59,1,10872,112,97,114,115,108,59,1,10725,4,2,68,97,9761,9766,111,116,59,1,8787,114,114,59,1,10609,4,3,99,100,105,9779,9783,9788,114,59,1,8495,111,116,59,1,8784,109,59,1,8770,4,2,97,104,9798,9801,59,1,951,5,240,1,59,9806,1,240,4,2,109,114,9814,9822,108,5,235,1,59,9820,1,235,111,59,1,8364,4,3,99,105,112,9834,9838,9843,108,59,1,33,115,116,59,1,8707,4,2,101,111,9849,9859,99,116,97,116,105,111,110,59,1,8496,110,101,110,116,105,97,108,101,59,1,8519,4,12,97,99,101,102,105,106,108,110,111,112,114,115,9896,9910,9914,9921,9954,9960,9967,9989,9994,10027,10036,10164,108,108,105,110,103,100,111,116,115,101,113,59,1,8786,121,59,1,1092,109,97,108,101,59,1,9792,4,3,105,108,114,9929,9935,9950,108,105,103,59,1,64259,4,2,105,108,9941,9945,103,59,1,64256,105,103,59,1,64260,59,3,55349,56611,108,105,103,59,1,64257,108,105,103,59,3,102,106,4,3,97,108,116,9975,9979,9984,116,59,1,9837,105,103,59,1,64258,110,115,59,1,9649,111,102,59,1,402,4,2,112,114,1e4,10005,102,59,3,55349,56663,4,2,97,107,10011,10016,108,108,59,1,8704,4,2,59,118,10022,10024,1,8916,59,1,10969,97,114,116,105,110,116,59,1,10765,4,2,97,111,10042,10159,4,2,99,115,10048,10155,4,6,49,50,51,52,53,55,10062,10102,10114,10135,10139,10151,4,6,50,51,52,53,54,56,10076,10083,10086,10093,10096,10099,5,189,1,59,10081,1,189,59,1,8531,5,188,1,59,10091,1,188,59,1,8533,59,1,8537,59,1,8539,4,2,51,53,10108,10111,59,1,8532,59,1,8534,4,3,52,53,56,10122,10129,10132,5,190,1,59,10127,1,190,59,1,8535,59,1,8540,53,59,1,8536,4,2,54,56,10145,10148,59,1,8538,59,1,8541,56,59,1,8542,108,59,1,8260,119,110,59,1,8994,99,114,59,3,55349,56507,4,17,69,97,98,99,100,101,102,103,105,106,108,110,111,114,115,116,118,10206,10217,10247,10254,10268,10273,10358,10363,10374,10380,10385,10406,10458,10464,10470,10497,10610,4,2,59,108,10212,10214,1,8807,59,1,10892,4,3,99,109,112,10225,10231,10244,117,116,101,59,1,501,109,97,4,2,59,100,10239,10241,1,947,59,1,989,59,1,10886,114,101,118,101,59,1,287,4,2,105,121,10260,10265,114,99,59,1,285,59,1,1075,111,116,59,1,289,4,4,59,108,113,115,10283,10285,10288,10308,1,8805,59,1,8923,4,3,59,113,115,10296,10298,10301,1,8805,59,1,8807,108,97,110,116,59,1,10878,4,4,59,99,100,108,10318,10320,10324,10345,1,10878,99,59,1,10921,111,116,4,2,59,111,10332,10334,1,10880,4,2,59,108,10340,10342,1,10882,59,1,10884,4,2,59,101,10351,10354,3,8923,65024,115,59,1,10900,114,59,3,55349,56612,4,2,59,103,10369,10371,1,8811,59,1,8921,109,101,108,59,1,8503,99,121,59,1,1107,4,4,59,69,97,106,10395,10397,10400,10403,1,8823,59,1,10898,59,1,10917,59,1,10916,4,4,69,97,101,115,10416,10419,10434,10453,59,1,8809,112,4,2,59,112,10426,10428,1,10890,114,111,120,59,1,10890,4,2,59,113,10440,10442,1,10888,4,2,59,113,10448,10450,1,10888,59,1,8809,105,109,59,1,8935,112,102,59,3,55349,56664,97,118,101,59,1,96,4,2,99,105,10476,10480,114,59,1,8458,109,4,3,59,101,108,10489,10491,10494,1,8819,59,1,10894,59,1,10896,5,62,6,59,99,100,108,113,114,10512,10514,10527,10532,10538,10545,1,62,4,2,99,105,10520,10523,59,1,10919,114,59,1,10874,111,116,59,1,8919,80,97,114,59,1,10645,117,101,115,116,59,1,10876,4,5,97,100,101,108,115,10557,10574,10579,10599,10605,4,2,112,114,10563,10570,112,114,111,120,59,1,10886,114,59,1,10616,111,116,59,1,8919,113,4,2,108,113,10586,10592,101,115,115,59,1,8923,108,101,115,115,59,1,10892,101,115,115,59,1,8823,105,109,59,1,8819,4,2,101,110,10616,10626,114,116,110,101,113,113,59,3,8809,65024,69,59,3,8809,65024,4,10,65,97,98,99,101,102,107,111,115,121,10653,10658,10713,10718,10724,10760,10765,10786,10850,10875,114,114,59,1,8660,4,4,105,108,109,114,10668,10674,10678,10684,114,115,112,59,1,8202,102,59,1,189,105,108,116,59,1,8459,4,2,100,114,10690,10695,99,121,59,1,1098,4,3,59,99,119,10703,10705,10710,1,8596,105,114,59,1,10568,59,1,8621,97,114,59,1,8463,105,114,99,59,1,293,4,3,97,108,114,10732,10748,10754,114,116,115,4,2,59,117,10741,10743,1,9829,105,116,59,1,9829,108,105,112,59,1,8230,99,111,110,59,1,8889,114,59,3,55349,56613,115,4,2,101,119,10772,10779,97,114,111,119,59,1,10533,97,114,111,119,59,1,10534,4,5,97,109,111,112,114,10798,10803,10809,10839,10844,114,114,59,1,8703,116,104,116,59,1,8763,107,4,2,108,114,10816,10827,101,102,116,97,114,114,111,119,59,1,8617,105,103,104,116,97,114,114,111,119,59,1,8618,102,59,3,55349,56665,98,97,114,59,1,8213,4,3,99,108,116,10858,10863,10869,114,59,3,55349,56509,97,115,104,59,1,8463,114,111,107,59,1,295,4,2,98,112,10881,10887,117,108,108,59,1,8259,104,101,110,59,1,8208,4,15,97,99,101,102,103,105,106,109,110,111,112,113,115,116,117,10925,10936,10958,10977,10990,11001,11039,11045,11101,11192,11220,11226,11237,11285,11299,99,117,116,101,5,237,1,59,10934,1,237,4,3,59,105,121,10944,10946,10955,1,8291,114,99,5,238,1,59,10953,1,238,59,1,1080,4,2,99,120,10964,10968,121,59,1,1077,99,108,5,161,1,59,10975,1,161,4,2,102,114,10983,10986,59,1,8660,59,3,55349,56614,114,97,118,101,5,236,1,59,10999,1,236,4,4,59,105,110,111,11011,11013,11028,11034,1,8520,4,2,105,110,11019,11024,110,116,59,1,10764,116,59,1,8749,102,105,110,59,1,10716,116,97,59,1,8489,108,105,103,59,1,307,4,3,97,111,112,11053,11092,11096,4,3,99,103,116,11061,11065,11088,114,59,1,299,4,3,101,108,112,11073,11076,11082,59,1,8465,105,110,101,59,1,8464,97,114,116,59,1,8465,104,59,1,305,102,59,1,8887,101,100,59,1,437,4,5,59,99,102,111,116,11113,11115,11121,11136,11142,1,8712,97,114,101,59,1,8453,105,110,4,2,59,116,11129,11131,1,8734,105,101,59,1,10717,100,111,116,59,1,305,4,5,59,99,101,108,112,11154,11156,11161,11179,11186,1,8747,97,108,59,1,8890,4,2,103,114,11167,11173,101,114,115,59,1,8484,99,97,108,59,1,8890,97,114,104,107,59,1,10775,114,111,100,59,1,10812,4,4,99,103,112,116,11202,11206,11211,11216,121,59,1,1105,111,110,59,1,303,102,59,3,55349,56666,97,59,1,953,114,111,100,59,1,10812,117,101,115,116,5,191,1,59,11235,1,191,4,2,99,105,11243,11248,114,59,3,55349,56510,110,4,5,59,69,100,115,118,11261,11263,11266,11271,11282,1,8712,59,1,8953,111,116,59,1,8949,4,2,59,118,11277,11279,1,8948,59,1,8947,59,1,8712,4,2,59,105,11291,11293,1,8290,108,100,101,59,1,297,4,2,107,109,11305,11310,99,121,59,1,1110,108,5,239,1,59,11316,1,239,4,6,99,102,109,111,115,117,11332,11346,11351,11357,11363,11380,4,2,105,121,11338,11343,114,99,59,1,309,59,1,1081,114,59,3,55349,56615,97,116,104,59,1,567,112,102,59,3,55349,56667,4,2,99,101,11369,11374,114,59,3,55349,56511,114,99,121,59,1,1112,107,99,121,59,1,1108,4,8,97,99,102,103,104,106,111,115,11404,11418,11433,11438,11445,11450,11455,11461,112,112,97,4,2,59,118,11413,11415,1,954,59,1,1008,4,2,101,121,11424,11430,100,105,108,59,1,311,59,1,1082,114,59,3,55349,56616,114,101,101,110,59,1,312,99,121,59,1,1093,99,121,59,1,1116,112,102,59,3,55349,56668,99,114,59,3,55349,56512,4,23,65,66,69,72,97,98,99,100,101,102,103,104,106,108,109,110,111,112,114,115,116,117,118,11515,11538,11544,11555,11560,11721,11780,11818,11868,12136,12160,12171,12203,12208,12246,12275,12327,12509,12523,12569,12641,12732,12752,4,3,97,114,116,11523,11528,11532,114,114,59,1,8666,114,59,1,8656,97,105,108,59,1,10523,97,114,114,59,1,10510,4,2,59,103,11550,11552,1,8806,59,1,10891,97,114,59,1,10594,4,9,99,101,103,109,110,112,113,114,116,11580,11586,11594,11600,11606,11624,11627,11636,11694,117,116,101,59,1,314,109,112,116,121,118,59,1,10676,114,97,110,59,1,8466,98,100,97,59,1,955,103,4,3,59,100,108,11615,11617,11620,1,10216,59,1,10641,101,59,1,10216,59,1,10885,117,111,5,171,1,59,11634,1,171,114,4,8,59,98,102,104,108,112,115,116,11655,11657,11669,11673,11677,11681,11685,11690,1,8592,4,2,59,102,11663,11665,1,8676,115,59,1,10527,115,59,1,10525,107,59,1,8617,112,59,1,8619,108,59,1,10553,105,109,59,1,10611,108,59,1,8610,4,3,59,97,101,11702,11704,11709,1,10923,105,108,59,1,10521,4,2,59,115,11715,11717,1,10925,59,3,10925,65024,4,3,97,98,114,11729,11734,11739,114,114,59,1,10508,114,107,59,1,10098,4,2,97,107,11745,11758,99,4,2,101,107,11752,11755,59,1,123,59,1,91,4,2,101,115,11764,11767,59,1,10635,108,4,2,100,117,11774,11777,59,1,10639,59,1,10637,4,4,97,101,117,121,11790,11796,11811,11815,114,111,110,59,1,318,4,2,100,105,11802,11807,105,108,59,1,316,108,59,1,8968,98,59,1,123,59,1,1083,4,4,99,113,114,115,11828,11832,11845,11864,97,59,1,10550,117,111,4,2,59,114,11840,11842,1,8220,59,1,8222,4,2,100,117,11851,11857,104,97,114,59,1,10599,115,104,97,114,59,1,10571,104,59,1,8626,4,5,59,102,103,113,115,11880,11882,12008,12011,12031,1,8804,116,4,5,97,104,108,114,116,11895,11913,11935,11947,11996,114,114,111,119,4,2,59,116,11905,11907,1,8592,97,105,108,59,1,8610,97,114,112,111,111,110,4,2,100,117,11925,11931,111,119,110,59,1,8637,112,59,1,8636,101,102,116,97,114,114,111,119,115,59,1,8647,105,103,104,116,4,3,97,104,115,11959,11974,11984,114,114,111,119,4,2,59,115,11969,11971,1,8596,59,1,8646,97,114,112,111,111,110,115,59,1,8651,113,117,105,103,97,114,114,111,119,59,1,8621,104,114,101,101,116,105,109,101,115,59,1,8907,59,1,8922,4,3,59,113,115,12019,12021,12024,1,8804,59,1,8806,108,97,110,116,59,1,10877,4,5,59,99,100,103,115,12043,12045,12049,12070,12083,1,10877,99,59,1,10920,111,116,4,2,59,111,12057,12059,1,10879,4,2,59,114,12065,12067,1,10881,59,1,10883,4,2,59,101,12076,12079,3,8922,65024,115,59,1,10899,4,5,97,100,101,103,115,12095,12103,12108,12126,12131,112,112,114,111,120,59,1,10885,111,116,59,1,8918,113,4,2,103,113,12115,12120,116,114,59,1,8922,103,116,114,59,1,10891,116,114,59,1,8822,105,109,59,1,8818,4,3,105,108,114,12144,12150,12156,115,104,116,59,1,10620,111,111,114,59,1,8970,59,3,55349,56617,4,2,59,69,12166,12168,1,8822,59,1,10897,4,2,97,98,12177,12198,114,4,2,100,117,12184,12187,59,1,8637,4,2,59,108,12193,12195,1,8636,59,1,10602,108,107,59,1,9604,99,121,59,1,1113,4,5,59,97,99,104,116,12220,12222,12227,12235,12241,1,8810,114,114,59,1,8647,111,114,110,101,114,59,1,8990,97,114,100,59,1,10603,114,105,59,1,9722,4,2,105,111,12252,12258,100,111,116,59,1,320,117,115,116,4,2,59,97,12267,12269,1,9136,99,104,101,59,1,9136,4,4,69,97,101,115,12285,12288,12303,12322,59,1,8808,112,4,2,59,112,12295,12297,1,10889,114,111,120,59,1,10889,4,2,59,113,12309,12311,1,10887,4,2,59,113,12317,12319,1,10887,59,1,8808,105,109,59,1,8934,4,8,97,98,110,111,112,116,119,122,12345,12359,12364,12421,12446,12467,12474,12490,4,2,110,114,12351,12355,103,59,1,10220,114,59,1,8701,114,107,59,1,10214,103,4,3,108,109,114,12373,12401,12409,101,102,116,4,2,97,114,12382,12389,114,114,111,119,59,1,10229,105,103,104,116,97,114,114,111,119,59,1,10231,97,112,115,116,111,59,1,10236,105,103,104,116,97,114,114,111,119,59,1,10230,112,97,114,114,111,119,4,2,108,114,12433,12439,101,102,116,59,1,8619,105,103,104,116,59,1,8620,4,3,97,102,108,12454,12458,12462,114,59,1,10629,59,3,55349,56669,117,115,59,1,10797,105,109,101,115,59,1,10804,4,2,97,98,12480,12485,115,116,59,1,8727,97,114,59,1,95,4,3,59,101,102,12498,12500,12506,1,9674,110,103,101,59,1,9674,59,1,10731,97,114,4,2,59,108,12517,12519,1,40,116,59,1,10643,4,5,97,99,104,109,116,12535,12540,12548,12561,12564,114,114,59,1,8646,111,114,110,101,114,59,1,8991,97,114,4,2,59,100,12556,12558,1,8651,59,1,10605,59,1,8206,114,105,59,1,8895,4,6,97,99,104,105,113,116,12583,12589,12594,12597,12614,12635,113,117,111,59,1,8249,114,59,3,55349,56513,59,1,8624,109,4,3,59,101,103,12606,12608,12611,1,8818,59,1,10893,59,1,10895,4,2,98,117,12620,12623,59,1,91,111,4,2,59,114,12630,12632,1,8216,59,1,8218,114,111,107,59,1,322,5,60,8,59,99,100,104,105,108,113,114,12660,12662,12675,12680,12686,12692,12698,12705,1,60,4,2,99,105,12668,12671,59,1,10918,114,59,1,10873,111,116,59,1,8918,114,101,101,59,1,8907,109,101,115,59,1,8905,97,114,114,59,1,10614,117,101,115,116,59,1,10875,4,2,80,105,12711,12716,97,114,59,1,10646,4,3,59,101,102,12724,12726,12729,1,9667,59,1,8884,59,1,9666,114,4,2,100,117,12739,12746,115,104,97,114,59,1,10570,104,97,114,59,1,10598,4,2,101,110,12758,12768,114,116,110,101,113,113,59,3,8808,65024,69,59,3,8808,65024,4,14,68,97,99,100,101,102,104,105,108,110,111,112,115,117,12803,12809,12893,12908,12914,12928,12933,12937,13011,13025,13032,13049,13052,13069,68,111,116,59,1,8762,4,4,99,108,112,114,12819,12827,12849,12887,114,5,175,1,59,12825,1,175,4,2,101,116,12833,12836,59,1,9794,4,2,59,101,12842,12844,1,10016,115,101,59,1,10016,4,2,59,115,12855,12857,1,8614,116,111,4,4,59,100,108,117,12869,12871,12877,12883,1,8614,111,119,110,59,1,8615,101,102,116,59,1,8612,112,59,1,8613,107,101,114,59,1,9646,4,2,111,121,12899,12905,109,109,97,59,1,10793,59,1,1084,97,115,104,59,1,8212,97,115,117,114,101,100,97,110,103,108,101,59,1,8737,114,59,3,55349,56618,111,59,1,8487,4,3,99,100,110,12945,12954,12985,114,111,5,181,1,59,12952,1,181,4,4,59,97,99,100,12964,12966,12971,12976,1,8739,115,116,59,1,42,105,114,59,1,10992,111,116,5,183,1,59,12983,1,183,117,115,4,3,59,98,100,12995,12997,13e3,1,8722,59,1,8863,4,2,59,117,13006,13008,1,8760,59,1,10794,4,2,99,100,13017,13021,112,59,1,10971,114,59,1,8230,112,108,117,115,59,1,8723,4,2,100,112,13038,13044,101,108,115,59,1,8871,102,59,3,55349,56670,59,1,8723,4,2,99,116,13058,13063,114,59,3,55349,56514,112,111,115,59,1,8766,4,3,59,108,109,13077,13079,13087,1,956,116,105,109,97,112,59,1,8888,97,112,59,1,8888,4,24,71,76,82,86,97,98,99,100,101,102,103,104,105,106,108,109,111,112,114,115,116,117,118,119,13142,13165,13217,13229,13247,13330,13359,13414,13420,13508,13513,13579,13602,13626,13631,13762,13767,13855,13936,13995,14214,14285,14312,14432,4,2,103,116,13148,13152,59,3,8921,824,4,2,59,118,13158,13161,3,8811,8402,59,3,8811,824,4,3,101,108,116,13173,13200,13204,102,116,4,2,97,114,13181,13188,114,114,111,119,59,1,8653,105,103,104,116,97,114,114,111,119,59,1,8654,59,3,8920,824,4,2,59,118,13210,13213,3,8810,8402,59,3,8810,824,105,103,104,116,97,114,114,111,119,59,1,8655,4,2,68,100,13235,13241,97,115,104,59,1,8879,97,115,104,59,1,8878,4,5,98,99,110,112,116,13259,13264,13270,13275,13308,108,97,59,1,8711,117,116,101,59,1,324,103,59,3,8736,8402,4,5,59,69,105,111,112,13287,13289,13293,13298,13302,1,8777,59,3,10864,824,100,59,3,8779,824,115,59,1,329,114,111,120,59,1,8777,117,114,4,2,59,97,13316,13318,1,9838,108,4,2,59,115,13325,13327,1,9838,59,1,8469,4,2,115,117,13336,13344,112,5,160,1,59,13342,1,160,109,112,4,2,59,101,13352,13355,3,8782,824,59,3,8783,824,4,5,97,101,111,117,121,13371,13385,13391,13407,13411,4,2,112,114,13377,13380,59,1,10819,111,110,59,1,328,100,105,108,59,1,326,110,103,4,2,59,100,13399,13401,1,8775,111,116,59,3,10861,824,112,59,1,10818,59,1,1085,97,115,104,59,1,8211,4,7,59,65,97,100,113,115,120,13436,13438,13443,13466,13472,13478,13494,1,8800,114,114,59,1,8663,114,4,2,104,114,13450,13454,107,59,1,10532,4,2,59,111,13460,13462,1,8599,119,59,1,8599,111,116,59,3,8784,824,117,105,118,59,1,8802,4,2,101,105,13484,13489,97,114,59,1,10536,109,59,3,8770,824,105,115,116,4,2,59,115,13503,13505,1,8708,59,1,8708,114,59,3,55349,56619,4,4,69,101,115,116,13523,13527,13563,13568,59,3,8807,824,4,3,59,113,115,13535,13537,13559,1,8817,4,3,59,113,115,13545,13547,13551,1,8817,59,3,8807,824,108,97,110,116,59,3,10878,824,59,3,10878,824,105,109,59,1,8821,4,2,59,114,13574,13576,1,8815,59,1,8815,4,3,65,97,112,13587,13592,13597,114,114,59,1,8654,114,114,59,1,8622,97,114,59,1,10994,4,3,59,115,118,13610,13612,13623,1,8715,4,2,59,100,13618,13620,1,8956,59,1,8954,59,1,8715,99,121,59,1,1114,4,7,65,69,97,100,101,115,116,13647,13652,13656,13661,13665,13737,13742,114,114,59,1,8653,59,3,8806,824,114,114,59,1,8602,114,59,1,8229,4,4,59,102,113,115,13675,13677,13703,13725,1,8816,116,4,2,97,114,13684,13691,114,114,111,119,59,1,8602,105,103,104,116,97,114,114,111,119,59,1,8622,4,3,59,113,115,13711,13713,13717,1,8816,59,3,8806,824,108,97,110,116,59,3,10877,824,4,2,59,115,13731,13734,3,10877,824,59,1,8814,105,109,59,1,8820,4,2,59,114,13748,13750,1,8814,105,4,2,59,101,13757,13759,1,8938,59,1,8940,105,100,59,1,8740,4,2,112,116,13773,13778,102,59,3,55349,56671,5,172,3,59,105,110,13787,13789,13829,1,172,110,4,4,59,69,100,118,13800,13802,13806,13812,1,8713,59,3,8953,824,111,116,59,3,8949,824,4,3,97,98,99,13820,13823,13826,59,1,8713,59,1,8951,59,1,8950,105,4,2,59,118,13836,13838,1,8716,4,3,97,98,99,13846,13849,13852,59,1,8716,59,1,8958,59,1,8957,4,3,97,111,114,13863,13892,13899,114,4,4,59,97,115,116,13874,13876,13883,13888,1,8742,108,108,101,108,59,1,8742,108,59,3,11005,8421,59,3,8706,824,108,105,110,116,59,1,10772,4,3,59,99,101,13907,13909,13914,1,8832,117,101,59,1,8928,4,2,59,99,13920,13923,3,10927,824,4,2,59,101,13929,13931,1,8832,113,59,3,10927,824,4,4,65,97,105,116,13946,13951,13971,13982,114,114,59,1,8655,114,114,4,3,59,99,119,13961,13963,13967,1,8603,59,3,10547,824,59,3,8605,824,103,104,116,97,114,114,111,119,59,1,8603,114,105,4,2,59,101,13990,13992,1,8939,59,1,8941,4,7,99,104,105,109,112,113,117,14011,14036,14060,14080,14085,14090,14106,4,4,59,99,101,114,14021,14023,14028,14032,1,8833,117,101,59,1,8929,59,3,10928,824,59,3,55349,56515,111,114,116,4,2,109,112,14045,14050,105,100,59,1,8740,97,114,97,108,108,101,108,59,1,8742,109,4,2,59,101,14067,14069,1,8769,4,2,59,113,14075,14077,1,8772,59,1,8772,105,100,59,1,8740,97,114,59,1,8742,115,117,4,2,98,112,14098,14102,101,59,1,8930,101,59,1,8931,4,3,98,99,112,14114,14157,14171,4,4,59,69,101,115,14124,14126,14130,14133,1,8836,59,3,10949,824,59,1,8840,101,116,4,2,59,101,14141,14144,3,8834,8402,113,4,2,59,113,14151,14153,1,8840,59,3,10949,824,99,4,2,59,101,14164,14166,1,8833,113,59,3,10928,824,4,4,59,69,101,115,14181,14183,14187,14190,1,8837,59,3,10950,824,59,1,8841,101,116,4,2,59,101,14198,14201,3,8835,8402,113,4,2,59,113,14208,14210,1,8841,59,3,10950,824,4,4,103,105,108,114,14224,14228,14238,14242,108,59,1,8825,108,100,101,5,241,1,59,14236,1,241,103,59,1,8824,105,97,110,103,108,101,4,2,108,114,14254,14269,101,102,116,4,2,59,101,14263,14265,1,8938,113,59,1,8940,105,103,104,116,4,2,59,101,14279,14281,1,8939,113,59,1,8941,4,2,59,109,14291,14293,1,957,4,3,59,101,115,14301,14303,14308,1,35,114,111,59,1,8470,112,59,1,8199,4,9,68,72,97,100,103,105,108,114,115,14332,14338,14344,14349,14355,14369,14376,14408,14426,97,115,104,59,1,8877,97,114,114,59,1,10500,112,59,3,8781,8402,97,115,104,59,1,8876,4,2,101,116,14361,14365,59,3,8805,8402,59,3,62,8402,110,102,105,110,59,1,10718,4,3,65,101,116,14384,14389,14393,114,114,59,1,10498,59,3,8804,8402,4,2,59,114,14399,14402,3,60,8402,105,101,59,3,8884,8402,4,2,65,116,14414,14419,114,114,59,1,10499,114,105,101,59,3,8885,8402,105,109,59,3,8764,8402,4,3,65,97,110,14440,14445,14468,114,114,59,1,8662,114,4,2,104,114,14452,14456,107,59,1,10531,4,2,59,111,14462,14464,1,8598,119,59,1,8598,101,97,114,59,1,10535,4,18,83,97,99,100,101,102,103,104,105,108,109,111,112,114,115,116,117,118,14512,14515,14535,14560,14597,14603,14618,14643,14657,14662,14701,14741,14747,14769,14851,14877,14907,14916,59,1,9416,4,2,99,115,14521,14531,117,116,101,5,243,1,59,14529,1,243,116,59,1,8859,4,2,105,121,14541,14557,114,4,2,59,99,14548,14550,1,8858,5,244,1,59,14555,1,244,59,1,1086,4,5,97,98,105,111,115,14572,14577,14583,14587,14591,115,104,59,1,8861,108,97,99,59,1,337,118,59,1,10808,116,59,1,8857,111,108,100,59,1,10684,108,105,103,59,1,339,4,2,99,114,14609,14614,105,114,59,1,10687,59,3,55349,56620,4,3,111,114,116,14626,14630,14640,110,59,1,731,97,118,101,5,242,1,59,14638,1,242,59,1,10689,4,2,98,109,14649,14654,97,114,59,1,10677,59,1,937,110,116,59,1,8750,4,4,97,99,105,116,14672,14677,14693,14698,114,114,59,1,8634,4,2,105,114,14683,14687,114,59,1,10686,111,115,115,59,1,10683,110,101,59,1,8254,59,1,10688,4,3,97,101,105,14709,14714,14719,99,114,59,1,333,103,97,59,1,969,4,3,99,100,110,14727,14733,14736,114,111,110,59,1,959,59,1,10678,117,115,59,1,8854,112,102,59,3,55349,56672,4,3,97,101,108,14755,14759,14764,114,59,1,10679,114,112,59,1,10681,117,115,59,1,8853,4,7,59,97,100,105,111,115,118,14785,14787,14792,14831,14837,14841,14848,1,8744,114,114,59,1,8635,4,4,59,101,102,109,14802,14804,14817,14824,1,10845,114,4,2,59,111,14811,14813,1,8500,102,59,1,8500,5,170,1,59,14822,1,170,5,186,1,59,14829,1,186,103,111,102,59,1,8886,114,59,1,10838,108,111,112,101,59,1,10839,59,1,10843,4,3,99,108,111,14859,14863,14873,114,59,1,8500,97,115,104,5,248,1,59,14871,1,248,108,59,1,8856,105,4,2,108,109,14884,14893,100,101,5,245,1,59,14891,1,245,101,115,4,2,59,97,14901,14903,1,8855,115,59,1,10806,109,108,5,246,1,59,14914,1,246,98,97,114,59,1,9021,4,12,97,99,101,102,104,105,108,109,111,114,115,117,14948,14992,14996,15033,15038,15068,15090,15189,15192,15222,15427,15441,114,4,4,59,97,115,116,14959,14961,14976,14989,1,8741,5,182,2,59,108,14968,14970,1,182,108,101,108,59,1,8741,4,2,105,108,14982,14986,109,59,1,10995,59,1,11005,59,1,8706,121,59,1,1087,114,4,5,99,105,109,112,116,15009,15014,15019,15024,15027,110,116,59,1,37,111,100,59,1,46,105,108,59,1,8240,59,1,8869,101,110,107,59,1,8241,114,59,3,55349,56621,4,3,105,109,111,15046,15057,15063,4,2,59,118,15052,15054,1,966,59,1,981,109,97,116,59,1,8499,110,101,59,1,9742,4,3,59,116,118,15076,15078,15087,1,960,99,104,102,111,114,107,59,1,8916,59,1,982,4,2,97,117,15096,15119,110,4,2,99,107,15103,15115,107,4,2,59,104,15110,15112,1,8463,59,1,8462,118,59,1,8463,115,4,9,59,97,98,99,100,101,109,115,116,15140,15142,15148,15151,15156,15168,15171,15179,15184,1,43,99,105,114,59,1,10787,59,1,8862,105,114,59,1,10786,4,2,111,117,15162,15165,59,1,8724,59,1,10789,59,1,10866,110,5,177,1,59,15177,1,177,105,109,59,1,10790,119,111,59,1,10791,59,1,177,4,3,105,112,117,15200,15208,15213,110,116,105,110,116,59,1,10773,102,59,3,55349,56673,110,100,5,163,1,59,15220,1,163,4,10,59,69,97,99,101,105,110,111,115,117,15244,15246,15249,15253,15258,15334,15347,15367,15416,15421,1,8826,59,1,10931,112,59,1,10935,117,101,59,1,8828,4,2,59,99,15264,15266,1,10927,4,6,59,97,99,101,110,115,15280,15282,15290,15299,15303,15329,1,8826,112,112,114,111,120,59,1,10935,117,114,108,121,101,113,59,1,8828,113,59,1,10927,4,3,97,101,115,15311,15319,15324,112,112,114,111,120,59,1,10937,113,113,59,1,10933,105,109,59,1,8936,105,109,59,1,8830,109,101,4,2,59,115,15342,15344,1,8242,59,1,8473,4,3,69,97,115,15355,15358,15362,59,1,10933,112,59,1,10937,105,109,59,1,8936,4,3,100,102,112,15375,15378,15404,59,1,8719,4,3,97,108,115,15386,15392,15398,108,97,114,59,1,9006,105,110,101,59,1,8978,117,114,102,59,1,8979,4,2,59,116,15410,15412,1,8733,111,59,1,8733,105,109,59,1,8830,114,101,108,59,1,8880,4,2,99,105,15433,15438,114,59,3,55349,56517,59,1,968,110,99,115,112,59,1,8200,4,6,102,105,111,112,115,117,15462,15467,15472,15478,15485,15491,114,59,3,55349,56622,110,116,59,1,10764,112,102,59,3,55349,56674,114,105,109,101,59,1,8279,99,114,59,3,55349,56518,4,3,97,101,111,15499,15520,15534,116,4,2,101,105,15506,15515,114,110,105,111,110,115,59,1,8461,110,116,59,1,10774,115,116,4,2,59,101,15528,15530,1,63,113,59,1,8799,116,5,34,1,59,15540,1,34,4,21,65,66,72,97,98,99,100,101,102,104,105,108,109,110,111,112,114,115,116,117,120,15586,15609,15615,15620,15796,15855,15893,15931,15977,16001,16039,16183,16204,16222,16228,16285,16312,16318,16363,16408,16416,4,3,97,114,116,15594,15599,15603,114,114,59,1,8667,114,59,1,8658,97,105,108,59,1,10524,97,114,114,59,1,10511,97,114,59,1,10596,4,7,99,100,101,110,113,114,116,15636,15651,15656,15664,15687,15696,15770,4,2,101,117,15642,15646,59,3,8765,817,116,101,59,1,341,105,99,59,1,8730,109,112,116,121,118,59,1,10675,103,4,4,59,100,101,108,15675,15677,15680,15683,1,10217,59,1,10642,59,1,10661,101,59,1,10217,117,111,5,187,1,59,15694,1,187,114,4,11,59,97,98,99,102,104,108,112,115,116,119,15721,15723,15727,15739,15742,15746,15750,15754,15758,15763,15767,1,8594,112,59,1,10613,4,2,59,102,15733,15735,1,8677,115,59,1,10528,59,1,10547,115,59,1,10526,107,59,1,8618,112,59,1,8620,108,59,1,10565,105,109,59,1,10612,108,59,1,8611,59,1,8605,4,2,97,105,15776,15781,105,108,59,1,10522,111,4,2,59,110,15788,15790,1,8758,97,108,115,59,1,8474,4,3,97,98,114,15804,15809,15814,114,114,59,1,10509,114,107,59,1,10099,4,2,97,107,15820,15833,99,4,2,101,107,15827,15830,59,1,125,59,1,93,4,2,101,115,15839,15842,59,1,10636,108,4,2,100,117,15849,15852,59,1,10638,59,1,10640,4,4,97,101,117,121,15865,15871,15886,15890,114,111,110,59,1,345,4,2,100,105,15877,15882,105,108,59,1,343,108,59,1,8969,98,59,1,125,59,1,1088,4,4,99,108,113,115,15903,15907,15914,15927,97,59,1,10551,100,104,97,114,59,1,10601,117,111,4,2,59,114,15922,15924,1,8221,59,1,8221,104,59,1,8627,4,3,97,99,103,15939,15966,15970,108,4,4,59,105,112,115,15950,15952,15957,15963,1,8476,110,101,59,1,8475,97,114,116,59,1,8476,59,1,8477,116,59,1,9645,5,174,1,59,15975,1,174,4,3,105,108,114,15985,15991,15997,115,104,116,59,1,10621,111,111,114,59,1,8971,59,3,55349,56623,4,2,97,111,16007,16028,114,4,2,100,117,16014,16017,59,1,8641,4,2,59,108,16023,16025,1,8640,59,1,10604,4,2,59,118,16034,16036,1,961,59,1,1009,4,3,103,110,115,16047,16167,16171,104,116,4,6,97,104,108,114,115,116,16063,16081,16103,16130,16143,16155,114,114,111,119,4,2,59,116,16073,16075,1,8594,97,105,108,59,1,8611,97,114,112,111,111,110,4,2,100,117,16093,16099,111,119,110,59,1,8641,112,59,1,8640,101,102,116,4,2,97,104,16112,16120,114,114,111,119,115,59,1,8644,97,114,112,111,111,110,115,59,1,8652,105,103,104,116,97,114,114,111,119,115,59,1,8649,113,117,105,103,97,114,114,111,119,59,1,8605,104,114,101,101,116,105,109,101,115,59,1,8908,103,59,1,730,105,110,103,100,111,116,115,101,113,59,1,8787,4,3,97,104,109,16191,16196,16201,114,114,59,1,8644,97,114,59,1,8652,59,1,8207,111,117,115,116,4,2,59,97,16214,16216,1,9137,99,104,101,59,1,9137,109,105,100,59,1,10990,4,4,97,98,112,116,16238,16252,16257,16278,4,2,110,114,16244,16248,103,59,1,10221,114,59,1,8702,114,107,59,1,10215,4,3,97,102,108,16265,16269,16273,114,59,1,10630,59,3,55349,56675,117,115,59,1,10798,105,109,101,115,59,1,10805,4,2,97,112,16291,16304,114,4,2,59,103,16298,16300,1,41,116,59,1,10644,111,108,105,110,116,59,1,10770,97,114,114,59,1,8649,4,4,97,99,104,113,16328,16334,16339,16342,113,117,111,59,1,8250,114,59,3,55349,56519,59,1,8625,4,2,98,117,16348,16351,59,1,93,111,4,2,59,114,16358,16360,1,8217,59,1,8217,4,3,104,105,114,16371,16377,16383,114,101,101,59,1,8908,109,101,115,59,1,8906,105,4,4,59,101,102,108,16394,16396,16399,16402,1,9657,59,1,8885,59,1,9656,116,114,105,59,1,10702,108,117,104,97,114,59,1,10600,59,1,8478,4,19,97,98,99,100,101,102,104,105,108,109,111,112,113,114,115,116,117,119,122,16459,16466,16472,16572,16590,16672,16687,16746,16844,16850,16924,16963,16988,17115,17121,17154,17206,17614,17656,99,117,116,101,59,1,347,113,117,111,59,1,8218,4,10,59,69,97,99,101,105,110,112,115,121,16494,16496,16499,16513,16518,16531,16536,16556,16564,16569,1,8827,59,1,10932,4,2,112,114,16505,16508,59,1,10936,111,110,59,1,353,117,101,59,1,8829,4,2,59,100,16524,16526,1,10928,105,108,59,1,351,114,99,59,1,349,4,3,69,97,115,16544,16547,16551,59,1,10934,112,59,1,10938,105,109,59,1,8937,111,108,105,110,116,59,1,10771,105,109,59,1,8831,59,1,1089,111,116,4,3,59,98,101,16582,16584,16587,1,8901,59,1,8865,59,1,10854,4,7,65,97,99,109,115,116,120,16606,16611,16634,16642,16646,16652,16668,114,114,59,1,8664,114,4,2,104,114,16618,16622,107,59,1,10533,4,2,59,111,16628,16630,1,8600,119,59,1,8600,116,5,167,1,59,16640,1,167,105,59,1,59,119,97,114,59,1,10537,109,4,2,105,110,16659,16665,110,117,115,59,1,8726,59,1,8726,116,59,1,10038,114,4,2,59,111,16679,16682,3,55349,56624,119,110,59,1,8994,4,4,97,99,111,121,16697,16702,16716,16739,114,112,59,1,9839,4,2,104,121,16708,16713,99,121,59,1,1097,59,1,1096,114,116,4,2,109,112,16724,16729,105,100,59,1,8739,97,114,97,108,108,101,108,59,1,8741,5,173,1,59,16744,1,173,4,2,103,109,16752,16770,109,97,4,3,59,102,118,16762,16764,16767,1,963,59,1,962,59,1,962,4,8,59,100,101,103,108,110,112,114,16788,16790,16795,16806,16817,16828,16832,16838,1,8764,111,116,59,1,10858,4,2,59,113,16801,16803,1,8771,59,1,8771,4,2,59,69,16812,16814,1,10910,59,1,10912,4,2,59,69,16823,16825,1,10909,59,1,10911,101,59,1,8774,108,117,115,59,1,10788,97,114,114,59,1,10610,97,114,114,59,1,8592,4,4,97,101,105,116,16860,16883,16891,16904,4,2,108,115,16866,16878,108,115,101,116,109,105,110,117,115,59,1,8726,104,112,59,1,10803,112,97,114,115,108,59,1,10724,4,2,100,108,16897,16900,59,1,8739,101,59,1,8995,4,2,59,101,16910,16912,1,10922,4,2,59,115,16918,16920,1,10924,59,3,10924,65024,4,3,102,108,112,16932,16938,16958,116,99,121,59,1,1100,4,2,59,98,16944,16946,1,47,4,2,59,97,16952,16954,1,10692,114,59,1,9023,102,59,3,55349,56676,97,4,2,100,114,16970,16985,101,115,4,2,59,117,16978,16980,1,9824,105,116,59,1,9824,59,1,8741,4,3,99,115,117,16996,17028,17089,4,2,97,117,17002,17015,112,4,2,59,115,17009,17011,1,8851,59,3,8851,65024,112,4,2,59,115,17022,17024,1,8852,59,3,8852,65024,117,4,2,98,112,17035,17062,4,3,59,101,115,17043,17045,17048,1,8847,59,1,8849,101,116,4,2,59,101,17056,17058,1,8847,113,59,1,8849,4,3,59,101,115,17070,17072,17075,1,8848,59,1,8850,101,116,4,2,59,101,17083,17085,1,8848,113,59,1,8850,4,3,59,97,102,17097,17099,17112,1,9633,114,4,2,101,102,17106,17109,59,1,9633,59,1,9642,59,1,9642,97,114,114,59,1,8594,4,4,99,101,109,116,17131,17136,17142,17148,114,59,3,55349,56520,116,109,110,59,1,8726,105,108,101,59,1,8995,97,114,102,59,1,8902,4,2,97,114,17160,17172,114,4,2,59,102,17167,17169,1,9734,59,1,9733,4,2,97,110,17178,17202,105,103,104,116,4,2,101,112,17188,17197,112,115,105,108,111,110,59,1,1013,104,105,59,1,981,115,59,1,175,4,5,98,99,109,110,112,17218,17351,17420,17423,17427,4,9,59,69,100,101,109,110,112,114,115,17238,17240,17243,17248,17261,17267,17279,17285,17291,1,8834,59,1,10949,111,116,59,1,10941,4,2,59,100,17254,17256,1,8838,111,116,59,1,10947,117,108,116,59,1,10945,4,2,69,101,17273,17276,59,1,10955,59,1,8842,108,117,115,59,1,10943,97,114,114,59,1,10617,4,3,101,105,117,17299,17335,17339,116,4,3,59,101,110,17308,17310,17322,1,8834,113,4,2,59,113,17317,17319,1,8838,59,1,10949,101,113,4,2,59,113,17330,17332,1,8842,59,1,10955,109,59,1,10951,4,2,98,112,17345,17348,59,1,10965,59,1,10963,99,4,6,59,97,99,101,110,115,17366,17368,17376,17385,17389,17415,1,8827,112,112,114,111,120,59,1,10936,117,114,108,121,101,113,59,1,8829,113,59,1,10928,4,3,97,101,115,17397,17405,17410,112,112,114,111,120,59,1,10938,113,113,59,1,10934,105,109,59,1,8937,105,109,59,1,8831,59,1,8721,103,59,1,9834,4,13,49,50,51,59,69,100,101,104,108,109,110,112,115,17455,17462,17469,17476,17478,17481,17496,17509,17524,17530,17536,17548,17554,5,185,1,59,17460,1,185,5,178,1,59,17467,1,178,5,179,1,59,17474,1,179,1,8835,59,1,10950,4,2,111,115,17487,17491,116,59,1,10942,117,98,59,1,10968,4,2,59,100,17502,17504,1,8839,111,116,59,1,10948,115,4,2,111,117,17516,17520,108,59,1,10185,98,59,1,10967,97,114,114,59,1,10619,117,108,116,59,1,10946,4,2,69,101,17542,17545,59,1,10956,59,1,8843,108,117,115,59,1,10944,4,3,101,105,117,17562,17598,17602,116,4,3,59,101,110,17571,17573,17585,1,8835,113,4,2,59,113,17580,17582,1,8839,59,1,10950,101,113,4,2,59,113,17593,17595,1,8843,59,1,10956,109,59,1,10952,4,2,98,112,17608,17611,59,1,10964,59,1,10966,4,3,65,97,110,17622,17627,17650,114,114,59,1,8665,114,4,2,104,114,17634,17638,107,59,1,10534,4,2,59,111,17644,17646,1,8601,119,59,1,8601,119,97,114,59,1,10538,108,105,103,5,223,1,59,17664,1,223,4,13,97,98,99,100,101,102,104,105,111,112,114,115,119,17694,17709,17714,17737,17742,17749,17754,17860,17905,17957,17964,18090,18122,4,2,114,117,17700,17706,103,101,116,59,1,8982,59,1,964,114,107,59,1,9140,4,3,97,101,121,17722,17728,17734,114,111,110,59,1,357,100,105,108,59,1,355,59,1,1090,111,116,59,1,8411,108,114,101,99,59,1,8981,114,59,3,55349,56625,4,4,101,105,107,111,17764,17805,17836,17851,4,2,114,116,17770,17786,101,4,2,52,102,17777,17780,59,1,8756,111,114,101,59,1,8756,97,4,3,59,115,118,17795,17797,17802,1,952,121,109,59,1,977,59,1,977,4,2,99,110,17811,17831,107,4,2,97,115,17818,17826,112,112,114,111,120,59,1,8776,105,109,59,1,8764,115,112,59,1,8201,4,2,97,115,17842,17846,112,59,1,8776,105,109,59,1,8764,114,110,5,254,1,59,17858,1,254,4,3,108,109,110,17868,17873,17901,100,101,59,1,732,101,115,5,215,3,59,98,100,17884,17886,17898,1,215,4,2,59,97,17892,17894,1,8864,114,59,1,10801,59,1,10800,116,59,1,8749,4,3,101,112,115,17913,17917,17953,97,59,1,10536,4,4,59,98,99,102,17927,17929,17934,17939,1,8868,111,116,59,1,9014,105,114,59,1,10993,4,2,59,111,17945,17948,3,55349,56677,114,107,59,1,10970,97,59,1,10537,114,105,109,101,59,1,8244,4,3,97,105,112,17972,17977,18082,100,101,59,1,8482,4,7,97,100,101,109,112,115,116,17993,18051,18056,18059,18066,18072,18076,110,103,108,101,4,5,59,100,108,113,114,18009,18011,18017,18032,18035,1,9653,111,119,110,59,1,9663,101,102,116,4,2,59,101,18026,18028,1,9667,113,59,1,8884,59,1,8796,105,103,104,116,4,2,59,101,18045,18047,1,9657,113,59,1,8885,111,116,59,1,9708,59,1,8796,105,110,117,115,59,1,10810,108,117,115,59,1,10809,98,59,1,10701,105,109,101,59,1,10811,101,122,105,117,109,59,1,9186,4,3,99,104,116,18098,18111,18116,4,2,114,121,18104,18108,59,3,55349,56521,59,1,1094,99,121,59,1,1115,114,111,107,59,1,359,4,2,105,111,18128,18133,120,116,59,1,8812,104,101,97,100,4,2,108,114,18143,18154,101,102,116,97,114,114,111,119,59,1,8606,105,103,104,116,97,114,114,111,119,59,1,8608,4,18,65,72,97,98,99,100,102,103,104,108,109,111,112,114,115,116,117,119,18204,18209,18214,18234,18250,18268,18292,18308,18319,18343,18379,18397,18413,18504,18547,18553,18584,18603,114,114,59,1,8657,97,114,59,1,10595,4,2,99,114,18220,18230,117,116,101,5,250,1,59,18228,1,250,114,59,1,8593,114,4,2,99,101,18241,18245,121,59,1,1118,118,101,59,1,365,4,2,105,121,18256,18265,114,99,5,251,1,59,18263,1,251,59,1,1091,4,3,97,98,104,18276,18281,18287,114,114,59,1,8645,108,97,99,59,1,369,97,114,59,1,10606,4,2,105,114,18298,18304,115,104,116,59,1,10622,59,3,55349,56626,114,97,118,101,5,249,1,59,18317,1,249,4,2,97,98,18325,18338,114,4,2,108,114,18332,18335,59,1,8639,59,1,8638,108,107,59,1,9600,4,2,99,116,18349,18374,4,2,111,114,18355,18369,114,110,4,2,59,101,18363,18365,1,8988,114,59,1,8988,111,112,59,1,8975,114,105,59,1,9720,4,2,97,108,18385,18390,99,114,59,1,363,5,168,1,59,18395,1,168,4,2,103,112,18403,18408,111,110,59,1,371,102,59,3,55349,56678,4,6,97,100,104,108,115,117,18427,18434,18445,18470,18475,18494,114,114,111,119,59,1,8593,111,119,110,97,114,114,111,119,59,1,8597,97,114,112,111,111,110,4,2,108,114,18457,18463,101,102,116,59,1,8639,105,103,104,116,59,1,8638,117,115,59,1,8846,105,4,3,59,104,108,18484,18486,18489,1,965,59,1,978,111,110,59,1,965,112,97,114,114,111,119,115,59,1,8648,4,3,99,105,116,18512,18537,18542,4,2,111,114,18518,18532,114,110,4,2,59,101,18526,18528,1,8989,114,59,1,8989,111,112,59,1,8974,110,103,59,1,367,114,105,59,1,9721,99,114,59,3,55349,56522,4,3,100,105,114,18561,18566,18572,111,116,59,1,8944,108,100,101,59,1,361,105,4,2,59,102,18579,18581,1,9653,59,1,9652,4,2,97,109,18590,18595,114,114,59,1,8648,108,5,252,1,59,18601,1,252,97,110,103,108,101,59,1,10663,4,15,65,66,68,97,99,100,101,102,108,110,111,112,114,115,122,18643,18648,18661,18667,18847,18851,18857,18904,18909,18915,18931,18937,18943,18949,18996,114,114,59,1,8661,97,114,4,2,59,118,18656,18658,1,10984,59,1,10985,97,115,104,59,1,8872,4,2,110,114,18673,18679,103,114,116,59,1,10652,4,7,101,107,110,112,114,115,116,18695,18704,18711,18720,18742,18754,18810,112,115,105,108,111,110,59,1,1013,97,112,112,97,59,1,1008,111,116,104,105,110,103,59,1,8709,4,3,104,105,114,18728,18732,18735,105,59,1,981,59,1,982,111,112,116,111,59,1,8733,4,2,59,104,18748,18750,1,8597,111,59,1,1009,4,2,105,117,18760,18766,103,109,97,59,1,962,4,2,98,112,18772,18791,115,101,116,110,101,113,4,2,59,113,18784,18787,3,8842,65024,59,3,10955,65024,115,101,116,110,101,113,4,2,59,113,18803,18806,3,8843,65024,59,3,10956,65024,4,2,104,114,18816,18822,101,116,97,59,1,977,105,97,110,103,108,101,4,2,108,114,18834,18840,101,102,116,59,1,8882,105,103,104,116,59,1,8883,121,59,1,1074,97,115,104,59,1,8866,4,3,101,108,114,18865,18884,18890,4,3,59,98,101,18873,18875,18880,1,8744,97,114,59,1,8891,113,59,1,8794,108,105,112,59,1,8942,4,2,98,116,18896,18901,97,114,59,1,124,59,1,124,114,59,3,55349,56627,116,114,105,59,1,8882,115,117,4,2,98,112,18923,18927,59,3,8834,8402,59,3,8835,8402,112,102,59,3,55349,56679,114,111,112,59,1,8733,116,114,105,59,1,8883,4,2,99,117,18955,18960,114,59,3,55349,56523,4,2,98,112,18966,18981,110,4,2,69,101,18973,18977,59,3,10955,65024,59,3,8842,65024,110,4,2,69,101,18988,18992,59,3,10956,65024,59,3,8843,65024,105,103,122,97,103,59,1,10650,4,7,99,101,102,111,112,114,115,19020,19026,19061,19066,19072,19075,19089,105,114,99,59,1,373,4,2,100,105,19032,19055,4,2,98,103,19038,19043,97,114,59,1,10847,101,4,2,59,113,19050,19052,1,8743,59,1,8793,101,114,112,59,1,8472,114,59,3,55349,56628,112,102,59,3,55349,56680,59,1,8472,4,2,59,101,19081,19083,1,8768,97,116,104,59,1,8768,99,114,59,3,55349,56524,4,14,99,100,102,104,105,108,109,110,111,114,115,117,118,119,19125,19146,19152,19157,19173,19176,19192,19197,19202,19236,19252,19269,19286,19291,4,3,97,105,117,19133,19137,19142,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,116,114,105,59,1,9661,114,59,3,55349,56629,4,2,65,97,19163,19168,114,114,59,1,10234,114,114,59,1,10231,59,1,958,4,2,65,97,19182,19187,114,114,59,1,10232,114,114,59,1,10229,97,112,59,1,10236,105,115,59,1,8955,4,3,100,112,116,19210,19215,19230,111,116,59,1,10752,4,2,102,108,19221,19225,59,3,55349,56681,117,115,59,1,10753,105,109,101,59,1,10754,4,2,65,97,19242,19247,114,114,59,1,10233,114,114,59,1,10230,4,2,99,113,19258,19263,114,59,3,55349,56525,99,117,112,59,1,10758,4,2,112,116,19275,19281,108,117,115,59,1,10756,114,105,59,1,9651,101,101,59,1,8897,101,100,103,101,59,1,8896,4,8,97,99,101,102,105,111,115,117,19316,19335,19349,19357,19362,19367,19373,19379,99,4,2,117,121,19323,19332,116,101,5,253,1,59,19330,1,253,59,1,1103,4,2,105,121,19341,19346,114,99,59,1,375,59,1,1099,110,5,165,1,59,19355,1,165,114,59,3,55349,56630,99,121,59,1,1111,112,102,59,3,55349,56682,99,114,59,3,55349,56526,4,2,99,109,19385,19389,121,59,1,1102,108,5,255,1,59,19395,1,255,4,10,97,99,100,101,102,104,105,111,115,119,19419,19426,19441,19446,19462,19467,19472,19480,19486,19492,99,117,116,101,59,1,378,4,2,97,121,19432,19438,114,111,110,59,1,382,59,1,1079,111,116,59,1,380,4,2,101,116,19452,19458,116,114,102,59,1,8488,97,59,1,950,114,59,3,55349,56631,99,121,59,1,1078,103,114,97,114,114,59,1,8669,112,102,59,3,55349,56683,99,114,59,3,55349,56527,4,2,106,110,19498,19501,59,1,8205,106,59,1,8204])},147:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(4529),o=n(4551),s=i.CODE_POINTS,l=function(){function e(){r(this,e),this.html=null,this.pos=-1,this.lastGapPos=-1,this.lastCharPos=-1,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=65536}return a(e,[{key:"_err",value:function(){}},{key:"_addGap",value:function(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos}},{key:"_processSurrogate",value:function(e){if(this.pos!==this.lastCharPos){var t=this.html.charCodeAt(this.pos+1);if(i.isSurrogatePair(t))return this.pos++,this._addGap(),i.getSurrogatePairCodePoint(e,t)}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,s.EOF;return this._err(o.surrogateInInputStream),e}},{key:"dropParsedChunk",value:function(){this.pos>this.bufferWaterline&&(this.lastCharPos-=this.pos,this.html=this.html.substring(this.pos),this.pos=0,this.lastGapPos=-1,this.gapStack=[])}},{key:"write",value:function(e,t){this.html?this.html+=e:this.html=e,this.lastCharPos=this.html.length-1,this.endOfChunkHit=!1,this.lastChunkWritten=t}},{key:"insertHtmlAtCurrentPos",value:function(e){this.html=this.html.substring(0,this.pos+1)+e+this.html.substring(this.pos+1,this.html.length),this.lastCharPos=this.html.length-1,this.endOfChunkHit=!1}},{key:"advance",value:function(){if(this.pos++,this.pos>this.lastCharPos)return this.endOfChunkHit=!this.lastChunkWritten,s.EOF;var e=this.html.charCodeAt(this.pos);return this.skipNextNewLine&&e===s.LINE_FEED?(this.skipNextNewLine=!1,this._addGap(),this.advance()):e===s.CARRIAGE_RETURN?(this.skipNextNewLine=!0,s.LINE_FEED):(this.skipNextNewLine=!1,i.isSurrogate(e)&&(e=this._processSurrogate(e)),e>31&&e<127||e===s.LINE_FEED||e===s.CARRIAGE_RETURN||e>159&&e<64976||this._checkForProblematicCharacters(e),e)}},{key:"_checkForProblematicCharacters",value:function(e){i.isControlCodePoint(e)?this._err(o.controlCharacterInInputStream):i.isUndefinedCodePoint(e)&&this._err(o.noncharacterInInputStream)}},{key:"retreat",value:function(){this.pos===this.lastGapPos&&(this.lastGapPos=this.gapStack.pop(),this.pos--),this.pos--}}]),e}();e.exports=l},3860:function(e,t,n){"use strict";var r=n(9539).DOCUMENT_MODE;t.createDocument=function(){return{nodeName:"#document",mode:r.NO_QUIRKS,childNodes:[]}},t.createDocumentFragment=function(){return{nodeName:"#document-fragment",childNodes:[]}},t.createElement=function(e,t,n){return{nodeName:e,tagName:e,attrs:n,namespaceURI:t,childNodes:[],parentNode:null}},t.createCommentNode=function(e){return{nodeName:"#comment",data:e,parentNode:null}};var a=function(e){return{nodeName:"#text",value:e,parentNode:null}},i=t.appendChild=function(e,t){e.childNodes.push(t),t.parentNode=e},o=t.insertBefore=function(e,t,n){var r=e.childNodes.indexOf(n);e.childNodes.splice(r,0,t),t.parentNode=e};t.setTemplateContent=function(e,t){e.content=t},t.getTemplateContent=function(e){return e.content},t.setDocumentType=function(e,t,n,r){for(var a=null,o=0;o<e.childNodes.length;o++)if("#documentType"===e.childNodes[o].nodeName){a=e.childNodes[o];break}a?(a.name=t,a.publicId=n,a.systemId=r):i(e,{nodeName:"#documentType",name:t,publicId:n,systemId:r})},t.setDocumentMode=function(e,t){e.mode=t},t.getDocumentMode=function(e){return e.mode},t.detachNode=function(e){if(e.parentNode){var t=e.parentNode.childNodes.indexOf(e);e.parentNode.childNodes.splice(t,1),e.parentNode=null}},t.insertText=function(e,t){if(e.childNodes.length){var n=e.childNodes[e.childNodes.length-1];if("#text"===n.nodeName)return void(n.value+=t)}i(e,a(t))},t.insertTextBefore=function(e,t,n){var r=e.childNodes[e.childNodes.indexOf(n)-1];r&&"#text"===r.nodeName?r.value+=t:o(e,a(t),n)},t.adoptAttributes=function(e,t){for(var n=[],r=0;r<e.attrs.length;r++)n.push(e.attrs[r].name);for(var a=0;a<t.length;a++)-1===n.indexOf(t[a].name)&&e.attrs.push(t[a])},t.getFirstChild=function(e){return e.childNodes[0]},t.getChildNodes=function(e){return e.childNodes},t.getParentNode=function(e){return e.parentNode},t.getAttrList=function(e){return e.attrs},t.getTagName=function(e){return e.tagName},t.getNamespaceURI=function(e){return e.namespaceURI},t.getTextNodeContent=function(e){return e.value},t.getCommentNodeContent=function(e){return e.data},t.getDocumentTypeNodeName=function(e){return e.name},t.getDocumentTypeNodePublicId=function(e){return e.publicId},t.getDocumentTypeNodeSystemId=function(e){return e.systemId},t.isTextNode=function(e){return"#text"===e.nodeName},t.isCommentNode=function(e){return"#comment"===e.nodeName},t.isDocumentTypeNode=function(e){return"#documentType"===e.nodeName},t.isElementNode=function(e){return!!e.tagName},t.setNodeSourceCodeLocation=function(e,t){e.sourceCodeLocation=t},t.getNodeSourceCodeLocation=function(e){return e.sourceCodeLocation},t.updateNodeSourceCodeLocation=function(e,t){e.sourceCodeLocation=Object.assign(e.sourceCodeLocation,t)}},3874:function(e){"use strict";e.exports=function(e,t){return[e,t=t||Object.create(null)].reduce((function(e,t){return Object.keys(t).forEach((function(n){e[n]=t[n]})),e}),Object.create(null))}},1458:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=function(){function e(t){r(this,e);for(var n={},a=this._getOverriddenMethods(this,n),i=0,o=Object.keys(a);i<o.length;i++){var s=o[i];"function"===typeof a[s]&&(n[s]=t[s],t[s]=a[s])}}return a(e,[{key:"_getOverriddenMethods",value:function(){throw new Error("Not implemented")}}]),e}();i.install=function(e,t,n){e.__mixins||(e.__mixins=[]);for(var r=0;r<e.__mixins.length;r++)if(e.__mixins[r].constructor===t)return e.__mixins[r];var a=new t(e,n);return e.__mixins.push(a),a},e.exports=i},888:function(e,t,n){"use strict";var r=n(9047);function a(){}function i(){}i.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,i,o){if(o!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:a};return n.PropTypes=n,n}},2007:function(e,t,n){e.exports=n(888)()},9047:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4463:function(e,t,n){"use strict";var r=n(2791),a=n(5296);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var o=new Set,s={};function l(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)o.add(t[e])}var u=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),d=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,m={},g={};function h(e,t,n,r,a,i,o){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var f={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){f[e]=new h(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];f[t]=new h(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){f[e]=new h(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){f[e]=new h(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){f[e]=new h(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){f[e]=new h(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){f[e]=new h(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){f[e]=new h(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){f[e]=new h(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function E(e){return e[1].toUpperCase()}function y(e,t,n,r){var a=f.hasOwnProperty(t)?f[t]:null;(null!==a?0!==a.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null===t||"undefined"===typeof t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!d.call(g,e)||!d.call(m,e)&&(p.test(e)?g[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,E);f[t]=new h(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,E);f[t]=new h(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,E);f[t]=new h(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){f[e]=new h(e,1,!1,e.toLowerCase(),null,!1,!1)})),f.xlinkHref=new h("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){f[e]=new h(e,1,!1,e.toLowerCase(),null,!0,!0)}));var T=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=Symbol.for("react.element"),v=Symbol.for("react.portal"),A=Symbol.for("react.fragment"),k=Symbol.for("react.strict_mode"),w=Symbol.for("react.profiler"),_=Symbol.for("react.provider"),C=Symbol.for("react.context"),N=Symbol.for("react.forward_ref"),I=Symbol.for("react.suspense"),x=Symbol.for("react.suspense_list"),R=Symbol.for("react.memo"),O=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var L=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var P=Symbol.iterator;function D(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=P&&e[P]||e["@@iterator"])?e:null}var M,F=Object.assign;function U(e){if(void 0===M)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);M=t&&t[1]||""}return"\n"+M+e}var B=!1;function G(e,t){if(!e||B)return"";B=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"===typeof c.stack){for(var a=c.stack.split("\n"),i=r.stack.split("\n"),o=a.length-1,s=i.length-1;1<=o&&0<=s&&a[o]!==i[s];)s--;for(;1<=o&&0<=s;o--,s--)if(a[o]!==i[s]){if(1!==o||1!==s)do{if(o--,0>--s||a[o]!==i[s]){var l="\n"+a[o].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}}while(1<=o&&0<=s);break}}}finally{B=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?U(e):""}function H(e){switch(e.tag){case 5:return U(e.type);case 16:return U("Lazy");case 13:return U("Suspense");case 19:return U("SuspenseList");case 0:case 2:case 15:return e=G(e.type,!1);case 11:return e=G(e.type.render,!1);case 1:return e=G(e.type,!0);default:return""}}function z(e){if(null==e)return null;if("function"===typeof e)return e.displayName||e.name||null;if("string"===typeof e)return e;switch(e){case A:return"Fragment";case v:return"Portal";case w:return"Profiler";case k:return"StrictMode";case I:return"Suspense";case x:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case C:return(e.displayName||"Context")+".Consumer";case _:return(e._context.displayName||"Context")+".Provider";case N:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case R:return null!==(t=e.displayName||null)?t:z(e.type)||"Memo";case O:t=e._payload,e=e._init;try{return z(e(t))}catch(n){}}return null}function $(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return z(t);case 8:return t===k?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"===typeof t)return t.displayName||t.name||null;if("string"===typeof t)return t}return null}function V(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function j(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function W(e){e._valueTracker||(e._valueTracker=function(e){var t=j(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&"undefined"!==typeof n&&"function"===typeof n.get&&"function"===typeof n.set){var a=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,i.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function q(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=j(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function K(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function X(e,t){var n=t.checked;return F({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Y(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=V(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Z(e,t){null!=(t=t.checked)&&y(e,"checked",t,!1)}function Q(e,t){Z(e,t);var n=V(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,V(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&K(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+V(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return F({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ae(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(te(n)){if(1<n.length)throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:V(n)}}function ie(e,t){var n=V(t.value),r=V(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function oe(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function se(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function le(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?se(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ce,ue,de=(ue=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ce=ce||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ce.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ue(e,t)}))}:ue);function pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var me={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ge=["Webkit","ms","Moz","O"];function he(e,t,n){return null==t||"boolean"===typeof t||""===t?"":n||"number"!==typeof t||0===t||me.hasOwnProperty(e)&&me[e]?(""+t).trim():t+"px"}function fe(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=he(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(me).forEach((function(e){ge.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),me[t]=me[e]}))}));var be=F({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ee(e,t){if(t){if(be[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!==typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!==typeof t.style)throw Error(i(62))}}function ye(e,t){if(-1===e.indexOf("-"))return"string"===typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Te=null;function Se(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var ve=null,Ae=null,ke=null;function we(e){if(e=ya(e)){if("function"!==typeof ve)throw Error(i(280));var t=e.stateNode;t&&(t=Sa(t),ve(e.stateNode,e.type,t))}}function _e(e){Ae?ke?ke.push(e):ke=[e]:Ae=e}function Ce(){if(Ae){var e=Ae,t=ke;if(ke=Ae=null,we(e),t)for(e=0;e<t.length;e++)we(t[e])}}function Ne(e,t){return e(t)}function Ie(){}var xe=!1;function Re(e,t,n){if(xe)return e(t,n);xe=!0;try{return Ne(e,t,n)}finally{xe=!1,(null!==Ae||null!==ke)&&(Ie(),Ce())}}function Oe(e,t){var n=e.stateNode;if(null===n)return null;var r=Sa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!==typeof n)throw Error(i(231,t,typeof n));return n}var Le=!1;if(u)try{var Pe={};Object.defineProperty(Pe,"passive",{get:function(){Le=!0}}),window.addEventListener("test",Pe,Pe),window.removeEventListener("test",Pe,Pe)}catch(ue){Le=!1}function De(e,t,n,r,a,i,o,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var Me=!1,Fe=null,Ue=!1,Be=null,Ge={onError:function(e){Me=!0,Fe=e}};function He(e,t,n,r,a,i,o,s,l){Me=!1,Fe=null,De.apply(Ge,arguments)}function ze(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!==(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function $e(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ve(e){if(ze(e)!==e)throw Error(i(188))}function je(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=ze(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Ve(a),e;if(o===r)return Ve(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var s=!1,l=a.child;l;){if(l===n){s=!0,n=a,r=o;break}if(l===r){s=!0,r=a,n=o;break}l=l.sibling}if(!s){for(l=o.child;l;){if(l===n){s=!0,n=o,r=a;break}if(l===r){s=!0,r=o,n=a;break}l=l.sibling}if(!s)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e))?We(e):null}function We(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=We(e);if(null!==t)return t;e=e.sibling}return null}var qe=a.unstable_scheduleCallback,Ke=a.unstable_cancelCallback,Xe=a.unstable_shouldYield,Ye=a.unstable_requestPaint,Ze=a.unstable_now,Qe=a.unstable_getCurrentPriorityLevel,Je=a.unstable_ImmediatePriority,et=a.unstable_UserBlockingPriority,tt=a.unstable_NormalPriority,nt=a.unstable_LowPriority,rt=a.unstable_IdlePriority,at=null,it=null;var ot=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(st(e)/lt|0)|0},st=Math.log,lt=Math.LN2;var ct=64,ut=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,a=e.suspendedLanes,i=e.pingedLanes,o=268435455&n;if(0!==o){var s=o&~a;0!==s?r=dt(s):0!==(i&=o)&&(r=dt(i))}else 0!==(o=n&~a)?r=dt(o):0!==i&&(r=dt(i));if(0===r)return 0;if(0!==t&&t!==r&&0===(t&a)&&((a=r&-r)>=(i=t&-t)||16===a&&0!==(4194240&i)))return t;if(0!==(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-ot(t)),r|=e[n],t&=~a;return r}function mt(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function gt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function ht(){var e=ct;return 0===(4194240&(ct<<=1))&&(ct=64),e}function ft(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-ot(t)]=n}function Et(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-ot(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}var yt=0;function Tt(e){return 1<(e&=-e)?4<e?0!==(268435455&e)?16:536870912:4:1}var St,vt,At,kt,wt,_t=!1,Ct=[],Nt=null,It=null,xt=null,Rt=new Map,Ot=new Map,Lt=[],Pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Dt(e,t){switch(e){case"focusin":case"focusout":Nt=null;break;case"dragenter":case"dragleave":It=null;break;case"mouseover":case"mouseout":xt=null;break;case"pointerover":case"pointerout":Rt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Ot.delete(t.pointerId)}}function Mt(e,t,n,r,a,i){return null===e||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:i,targetContainers:[a]},null!==t&&(null!==(t=ya(t))&&vt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function Ft(e){var t=Ea(e.target);if(null!==t){var n=ze(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=$e(n)))return e.blockedOn=t,void wt(e.priority,(function(){At(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Ut(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=ya(n))&&vt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);Te=r,n.target.dispatchEvent(r),Te=null,t.shift()}return!0}function Bt(e,t,n){Ut(e)&&n.delete(t)}function Gt(){_t=!1,null!==Nt&&Ut(Nt)&&(Nt=null),null!==It&&Ut(It)&&(It=null),null!==xt&&Ut(xt)&&(xt=null),Rt.forEach(Bt),Ot.forEach(Bt)}function Ht(e,t){e.blockedOn===t&&(e.blockedOn=null,_t||(_t=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,Gt)))}function zt(e){function t(t){return Ht(t,e)}if(0<Ct.length){Ht(Ct[0],e);for(var n=1;n<Ct.length;n++){var r=Ct[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Nt&&Ht(Nt,e),null!==It&&Ht(It,e),null!==xt&&Ht(xt,e),Rt.forEach(t),Ot.forEach(t),n=0;n<Lt.length;n++)(r=Lt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Lt.length&&null===(n=Lt[0]).blockedOn;)Ft(n),null===n.blockedOn&&Lt.shift()}var $t=T.ReactCurrentBatchConfig,Vt=!0;function jt(e,t,n,r){var a=yt,i=$t.transition;$t.transition=null;try{yt=1,qt(e,t,n,r)}finally{yt=a,$t.transition=i}}function Wt(e,t,n,r){var a=yt,i=$t.transition;$t.transition=null;try{yt=4,qt(e,t,n,r)}finally{yt=a,$t.transition=i}}function qt(e,t,n,r){if(Vt){var a=Xt(e,t,n,r);if(null===a)Vr(e,t,r,Kt,n),Dt(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return Nt=Mt(Nt,e,t,n,r,a),!0;case"dragenter":return It=Mt(It,e,t,n,r,a),!0;case"mouseover":return xt=Mt(xt,e,t,n,r,a),!0;case"pointerover":var i=a.pointerId;return Rt.set(i,Mt(Rt.get(i)||null,e,t,n,r,a)),!0;case"gotpointercapture":return i=a.pointerId,Ot.set(i,Mt(Ot.get(i)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(Dt(e,r),4&t&&-1<Pt.indexOf(e)){for(;null!==a;){var i=ya(a);if(null!==i&&St(i),null===(i=Xt(e,t,n,r))&&Vr(e,t,r,Kt,n),i===a)break;a=i}null!==a&&r.stopPropagation()}else Vr(e,t,r,null,n)}}var Kt=null;function Xt(e,t,n,r){if(Kt=null,null!==(e=Ea(e=Se(r))))if(null===(t=ze(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=$e(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Kt=e,null}function Yt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Qe()){case Je:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Zt=null,Qt=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=Qt,r=n.length,a="value"in Zt?Zt.value:Zt.textContent,i=a.length;for(e=0;e<r&&n[e]===a[e];e++);var o=r-e;for(t=1;t<=o&&n[r-t]===a[i-t];t++);return Jt=a.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function an(e){function t(t,n,r,a,i){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=i,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(a):a[o]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return F(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var on,sn,ln,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},un=an(cn),dn=F({},cn,{view:0,detail:0}),pn=an(dn),mn=F({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:wn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==ln&&(ln&&"mousemove"===e.type?(on=e.screenX-ln.screenX,sn=e.screenY-ln.screenY):sn=on=0,ln=e),on)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),gn=an(mn),hn=an(F({},mn,{dataTransfer:0})),fn=an(F({},dn,{relatedTarget:0})),bn=an(F({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),En=F({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),yn=an(En),Tn=an(F({},cn,{data:0})),Sn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},vn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},An={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function kn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=An[e])&&!!t[e]}function wn(){return kn}var _n=F({},dn,{key:function(e){if(e.key){var t=Sn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?vn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:wn,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Cn=an(_n),Nn=an(F({},mn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),In=an(F({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:wn})),xn=an(F({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Rn=F({},mn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),On=an(Rn),Ln=[9,13,27,32],Pn=u&&"CompositionEvent"in window,Dn=null;u&&"documentMode"in document&&(Dn=document.documentMode);var Mn=u&&"TextEvent"in window&&!Dn,Fn=u&&(!Pn||Dn&&8<Dn&&11>=Dn),Un=String.fromCharCode(32),Bn=!1;function Gn(e,t){switch(e){case"keyup":return-1!==Ln.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Hn(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var zn=!1;var $n={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Vn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!$n[e.type]:"textarea"===t}function jn(e,t,n,r){_e(r),0<(t=Wr(t,"onChange")).length&&(n=new un("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Wn=null,qn=null;function Kn(e){Ur(e,0)}function Xn(e){if(q(Ta(e)))return e}function Yn(e,t){if("change"===e)return t}var Zn=!1;if(u){var Qn;if(u){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"===typeof er.oninput}Qn=Jn}else Qn=!1;Zn=Qn&&(!document.documentMode||9<document.documentMode)}function tr(){Wn&&(Wn.detachEvent("onpropertychange",nr),qn=Wn=null)}function nr(e){if("value"===e.propertyName&&Xn(qn)){var t=[];jn(t,qn,e,Se(e)),Re(Kn,t)}}function rr(e,t,n){"focusin"===e?(tr(),qn=n,(Wn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function ar(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(qn)}function ir(e,t){if("click"===e)return Xn(t)}function or(e,t){if("input"===e||"change"===e)return Xn(t)}var sr="function"===typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e===1/t)||e!==e&&t!==t};function lr(e,t){if(sr(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!d.call(t,a)||!sr(e[a],t[a]))return!1}return!0}function cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ur(e,t){var n,r=cr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=cr(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=K();t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=K((e=t.contentWindow).document)}return t}function mr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function gr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&mr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var a=n.textContent.length,i=Math.min(r.start,a);r=void 0===r.end?i:Math.min(r.end,a),!e.extend&&i>r&&(a=r,r=i,i=a),a=ur(n,i);var o=ur(n,r);a&&o&&(1!==e.rangeCount||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&((t=t.createRange()).setStart(a.node,a.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"===typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var hr=u&&"documentMode"in document&&11>=document.documentMode,fr=null,br=null,Er=null,yr=!1;function Tr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;yr||null==fr||fr!==K(r)||("selectionStart"in(r=fr)&&mr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},Er&&lr(Er,r)||(Er=r,0<(r=Wr(br,"onSelect")).length&&(t=new un("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=fr)))}function Sr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var vr={animationend:Sr("Animation","AnimationEnd"),animationiteration:Sr("Animation","AnimationIteration"),animationstart:Sr("Animation","AnimationStart"),transitionend:Sr("Transition","TransitionEnd")},Ar={},kr={};function wr(e){if(Ar[e])return Ar[e];if(!vr[e])return e;var t,n=vr[e];for(t in n)if(n.hasOwnProperty(t)&&t in kr)return Ar[e]=n[t];return e}u&&(kr=document.createElement("div").style,"AnimationEvent"in window||(delete vr.animationend.animation,delete vr.animationiteration.animation,delete vr.animationstart.animation),"TransitionEvent"in window||delete vr.transitionend.transition);var _r=wr("animationend"),Cr=wr("animationiteration"),Nr=wr("animationstart"),Ir=wr("transitionend"),xr=new Map,Rr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Or(e,t){xr.set(e,t),l(t,[e])}for(var Lr=0;Lr<Rr.length;Lr++){var Pr=Rr[Lr];Or(Pr.toLowerCase(),"on"+(Pr[0].toUpperCase()+Pr.slice(1)))}Or(_r,"onAnimationEnd"),Or(Cr,"onAnimationIteration"),Or(Nr,"onAnimationStart"),Or("dblclick","onDoubleClick"),Or("focusin","onFocus"),Or("focusout","onBlur"),Or(Ir,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Dr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Mr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Dr));function Fr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,s,l,c){if(He.apply(this,arguments),Me){if(!Me)throw Error(i(198));var u=Fe;Me=!1,Fe=null,Ue||(Ue=!0,Be=u)}}(r,t,void 0,e),e.currentTarget=null}function Ur(e,t){t=0!==(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var i=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==i&&a.isPropagationStopped())break e;Fr(a,s,c),i=l}else for(o=0;o<r.length;o++){if(l=(s=r[o]).instance,c=s.currentTarget,s=s.listener,l!==i&&a.isPropagationStopped())break e;Fr(a,s,c),i=l}}}if(Ue)throw e=Be,Ue=!1,Be=null,e}function Br(e,t){var n=t[ha];void 0===n&&(n=t[ha]=new Set);var r=e+"__bubble";n.has(r)||($r(t,e,2,!1),n.add(r))}function Gr(e,t,n){var r=0;t&&(r|=4),$r(n,e,r,t)}var Hr="_reactListening"+Math.random().toString(36).slice(2);function zr(e){if(!e[Hr]){e[Hr]=!0,o.forEach((function(t){"selectionchange"!==t&&(Mr.has(t)||Gr(t,!1,e),Gr(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[Hr]||(t[Hr]=!0,Gr("selectionchange",!1,t))}}function $r(e,t,n,r){switch(Yt(t)){case 1:var a=jt;break;case 4:a=Wt;break;default:a=qt}n=a.bind(null,t,n,e),a=void 0,!Le||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Vr(e,t,n,r,a){var i=r;if(0===(1&t)&&0===(2&t)&&null!==r)e:for(;;){if(null===r)return;var o=r.tag;if(3===o||4===o){var s=r.stateNode.containerInfo;if(s===a||8===s.nodeType&&s.parentNode===a)break;if(4===o)for(o=r.return;null!==o;){var l=o.tag;if((3===l||4===l)&&((l=o.stateNode.containerInfo)===a||8===l.nodeType&&l.parentNode===a))return;o=o.return}for(;null!==s;){if(null===(o=Ea(s)))return;if(5===(l=o.tag)||6===l){r=i=o;continue e}s=s.parentNode}}r=r.return}Re((function(){var r=i,a=Se(n),o=[];e:{var s=xr.get(e);if(void 0!==s){var l=un,c=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":l=Cn;break;case"focusin":c="focus",l=fn;break;case"focusout":c="blur",l=fn;break;case"beforeblur":case"afterblur":l=fn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":l=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=hn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=In;break;case _r:case Cr:case Nr:l=bn;break;case Ir:l=xn;break;case"scroll":l=pn;break;case"wheel":l=On;break;case"copy":case"cut":case"paste":l=yn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=Nn}var u=0!==(4&t),d=!u&&"scroll"===e,p=u?null!==s?s+"Capture":null:s;u=[];for(var m,g=r;null!==g;){var h=(m=g).stateNode;if(5===m.tag&&null!==h&&(m=h,null!==p&&(null!=(h=Oe(g,p))&&u.push(jr(g,h,m)))),d)break;g=g.return}0<u.length&&(s=new l(s,c,null,n,a),o.push({event:s,listeners:u}))}}if(0===(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===Te||!(c=n.relatedTarget||n.fromElement)||!Ea(c)&&!c[ga])&&(l||s)&&(s=a.window===a?a:(s=a.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(c=(c=n.relatedTarget||n.toElement)?Ea(c):null)&&(c!==(d=ze(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=r),l!==c)){if(u=gn,h="onMouseLeave",p="onMouseEnter",g="mouse","pointerout"!==e&&"pointerover"!==e||(u=Nn,h="onPointerLeave",p="onPointerEnter",g="pointer"),d=null==l?s:Ta(l),m=null==c?s:Ta(c),(s=new u(h,g+"leave",l,n,a)).target=d,s.relatedTarget=m,h=null,Ea(a)===r&&((u=new u(p,g+"enter",c,n,a)).target=m,u.relatedTarget=d,h=u),d=h,l&&c)e:{for(p=c,g=0,m=u=l;m;m=qr(m))g++;for(m=0,h=p;h;h=qr(h))m++;for(;0<g-m;)u=qr(u),g--;for(;0<m-g;)p=qr(p),m--;for(;g--;){if(u===p||null!==p&&u===p.alternate)break e;u=qr(u),p=qr(p)}u=null}else u=null;null!==l&&Kr(o,s,l,u,!1),null!==c&&null!==d&&Kr(o,d,c,u,!0)}if("select"===(l=(s=r?Ta(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var f=Yn;else if(Vn(s))if(Zn)f=or;else{f=ar;var b=rr}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(f=ir);switch(f&&(f=f(e,r))?jn(o,f,n,a):(b&&b(e,s,r),"focusout"===e&&(b=s._wrapperState)&&b.controlled&&"number"===s.type&&ee(s,"number",s.value)),b=r?Ta(r):window,e){case"focusin":(Vn(b)||"true"===b.contentEditable)&&(fr=b,br=r,Er=null);break;case"focusout":Er=br=fr=null;break;case"mousedown":yr=!0;break;case"contextmenu":case"mouseup":case"dragend":yr=!1,Tr(o,n,a);break;case"selectionchange":if(hr)break;case"keydown":case"keyup":Tr(o,n,a)}var E;if(Pn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else zn?Gn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Fn&&"ko"!==n.locale&&(zn||"onCompositionStart"!==y?"onCompositionEnd"===y&&zn&&(E=en()):(Qt="value"in(Zt=a)?Zt.value:Zt.textContent,zn=!0)),0<(b=Wr(r,y)).length&&(y=new Tn(y,e,null,n,a),o.push({event:y,listeners:b}),E?y.data=E:null!==(E=Hn(n))&&(y.data=E))),(E=Mn?function(e,t){switch(e){case"compositionend":return Hn(t);case"keypress":return 32!==t.which?null:(Bn=!0,Un);case"textInput":return(e=t.data)===Un&&Bn?null:e;default:return null}}(e,n):function(e,t){if(zn)return"compositionend"===e||!Pn&&Gn(e,t)?(e=en(),Jt=Qt=Zt=null,zn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Fn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Wr(r,"onBeforeInput")).length&&(a=new Tn("onBeforeInput","beforeinput",null,n,a),o.push({event:a,listeners:r}),a.data=E))}Ur(o,t)}))}function jr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Wr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,i=a.stateNode;5===a.tag&&null!==i&&(a=i,null!=(i=Oe(e,n))&&r.unshift(jr(e,i,a)),null!=(i=Oe(e,t))&&r.push(jr(e,i,a))),e=e.return}return r}function qr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Kr(e,t,n,r,a){for(var i=t._reactName,o=[];null!==n&&n!==r;){var s=n,l=s.alternate,c=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==c&&(s=c,a?null!=(l=Oe(n,i))&&o.unshift(jr(n,l,s)):a||null!=(l=Oe(n,i))&&o.push(jr(n,l,s))),n=n.return}0!==o.length&&e.push({event:t,listeners:o})}var Xr=/\r\n?/g,Yr=/\u0000|\uFFFD/g;function Zr(e){return("string"===typeof e?e:""+e).replace(Xr,"\n").replace(Yr,"")}function Qr(e,t,n){if(t=Zr(t),Zr(e)!==t&&n)throw Error(i(425))}function Jr(){}var ea=null,ta=null;function na(e,t){return"textarea"===e||"noscript"===e||"string"===typeof t.children||"number"===typeof t.children||"object"===typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ra="function"===typeof setTimeout?setTimeout:void 0,aa="function"===typeof clearTimeout?clearTimeout:void 0,ia="function"===typeof Promise?Promise:void 0,oa="function"===typeof queueMicrotask?queueMicrotask:"undefined"!==typeof ia?function(e){return ia.resolve(null).then(e).catch(sa)}:ra;function sa(e){setTimeout((function(){throw e}))}function la(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&8===a.nodeType)if("/$"===(n=a.data)){if(0===r)return e.removeChild(a),void zt(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=a}while(n);zt(t)}function ca(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function ua(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var da=Math.random().toString(36).slice(2),pa="__reactFiber$"+da,ma="__reactProps$"+da,ga="__reactContainer$"+da,ha="__reactEvents$"+da,fa="__reactListeners$"+da,ba="__reactHandles$"+da;function Ea(e){var t=e[pa];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ga]||n[pa]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ua(e);null!==e;){if(n=e[pa])return n;e=ua(e)}return t}n=(e=n).parentNode}return null}function ya(e){return!(e=e[pa]||e[ga])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function Ta(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function Sa(e){return e[ma]||null}var va=[],Aa=-1;function ka(e){return{current:e}}function wa(e){0>Aa||(e.current=va[Aa],va[Aa]=null,Aa--)}function _a(e,t){Aa++,va[Aa]=e.current,e.current=t}var Ca={},Na=ka(Ca),Ia=ka(!1),xa=Ca;function Ra(e,t){var n=e.type.contextTypes;if(!n)return Ca;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,i={};for(a in n)i[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Oa(e){return null!==(e=e.childContextTypes)&&void 0!==e}function La(){wa(Ia),wa(Na)}function Pa(e,t,n){if(Na.current!==Ca)throw Error(i(168));_a(Na,t),_a(Ia,n)}function Da(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!==typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in t))throw Error(i(108,$(e)||"Unknown",a));return F({},n,r)}function Ma(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ca,xa=Na.current,_a(Na,e),_a(Ia,Ia.current),!0}function Fa(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=Da(e,t,xa),r.__reactInternalMemoizedMergedChildContext=e,wa(Ia),wa(Na),_a(Na,e)):wa(Ia),_a(Ia,n)}var Ua=null,Ba=!1,Ga=!1;function Ha(e){null===Ua?Ua=[e]:Ua.push(e)}function za(){if(!Ga&&null!==Ua){Ga=!0;var e=0,t=yt;try{var n=Ua;for(yt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Ua=null,Ba=!1}catch(a){throw null!==Ua&&(Ua=Ua.slice(e+1)),qe(Je,za),a}finally{yt=t,Ga=!1}}return null}var $a=[],Va=0,ja=null,Wa=0,qa=[],Ka=0,Xa=null,Ya=1,Za="";function Qa(e,t){$a[Va++]=Wa,$a[Va++]=ja,ja=e,Wa=t}function Ja(e,t,n){qa[Ka++]=Ya,qa[Ka++]=Za,qa[Ka++]=Xa,Xa=e;var r=Ya;e=Za;var a=32-ot(r)-1;r&=~(1<<a),n+=1;var i=32-ot(t)+a;if(30<i){var o=a-a%5;i=(r&(1<<o)-1).toString(32),r>>=o,a-=o,Ya=1<<32-ot(t)+a|n<<a|r,Za=i+e}else Ya=1<<i|n<<a|r,Za=e}function ei(e){null!==e.return&&(Qa(e,1),Ja(e,1,0))}function ti(e){for(;e===ja;)ja=$a[--Va],$a[Va]=null,Wa=$a[--Va],$a[Va]=null;for(;e===Xa;)Xa=qa[--Ka],qa[Ka]=null,Za=qa[--Ka],qa[Ka]=null,Ya=qa[--Ka],qa[Ka]=null}var ni=null,ri=null,ai=!1,ii=null;function oi(e,t){var n=Rc(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function si(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,ni=e,ri=ca(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,ni=e,ri=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Xa?{id:Ya,overflow:Za}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Rc(18,null,null,0)).stateNode=t,n.return=e,e.child=n,ni=e,ri=null,!0);default:return!1}}function li(e){return 0!==(1&e.mode)&&0===(128&e.flags)}function ci(e){if(ai){var t=ri;if(t){var n=t;if(!si(e,t)){if(li(e))throw Error(i(418));t=ca(n.nextSibling);var r=ni;t&&si(e,t)?oi(r,n):(e.flags=-4097&e.flags|2,ai=!1,ni=e)}}else{if(li(e))throw Error(i(418));e.flags=-4097&e.flags|2,ai=!1,ni=e}}}function ui(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;ni=e}function di(e){if(e!==ni)return!1;if(!ai)return ui(e),ai=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!na(e.type,e.memoizedProps)),t&&(t=ri)){if(li(e))throw pi(),Error(i(418));for(;t;)oi(e,t),t=ca(t.nextSibling)}if(ui(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){ri=ca(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}ri=null}}else ri=ni?ca(e.stateNode.nextSibling):null;return!0}function pi(){for(var e=ri;e;)e=ca(e.nextSibling)}function mi(){ri=ni=null,ai=!1}function gi(e){null===ii?ii=[e]:ii.push(e)}var hi=T.ReactCurrentBatchConfig;function fi(e,t){if(e&&e.defaultProps){for(var n in t=F({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var bi=ka(null),Ei=null,yi=null,Ti=null;function Si(){Ti=yi=Ei=null}function vi(e){var t=bi.current;wa(bi),e._currentValue=t}function Ai(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function ki(e,t){Ei=e,Ti=yi=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!==(e.lanes&t)&&(Ts=!0),e.firstContext=null)}function wi(e){var t=e._currentValue;if(Ti!==e)if(e={context:e,memoizedValue:t,next:null},null===yi){if(null===Ei)throw Error(i(308));yi=e,Ei.dependencies={lanes:0,firstContext:e}}else yi=yi.next=e;return t}var _i=null;function Ci(e){null===_i?_i=[e]:_i.push(e)}function Ni(e,t,n,r){var a=t.interleaved;return null===a?(n.next=n,Ci(t)):(n.next=a.next,a.next=n),t.interleaved=n,Ii(e,r)}function Ii(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var xi=!1;function Ri(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Oi(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Li(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Pi(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!==(2&Nl)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,Ii(e,n)}return null===(a=r.interleaved)?(t.next=t,Ci(r)):(t.next=a.next,a.next=t),r.interleaved=t,Ii(e,n)}function Di(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!==(4194240&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,Et(e,n)}}function Mi(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,i=null;if(null!==(n=n.firstBaseUpdate)){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===i?a=i=o:i=i.next=o,n=n.next}while(null!==n);null===i?a=i=t:i=i.next=t}else a=i=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:i,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Fi(e,t,n,r){var a=e.updateQueue;xi=!1;var i=a.firstBaseUpdate,o=a.lastBaseUpdate,s=a.shared.pending;if(null!==s){a.shared.pending=null;var l=s,c=l.next;l.next=null,null===o?i=c:o.next=c,o=l;var u=e.alternate;null!==u&&((s=(u=u.updateQueue).lastBaseUpdate)!==o&&(null===s?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(null!==i){var d=a.baseState;for(o=0,u=c=l=null,s=i;;){var p=s.lane,m=s.eventTime;if((r&p)===p){null!==u&&(u=u.next={eventTime:m,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var g=e,h=s;switch(p=t,m=n,h.tag){case 1:if("function"===typeof(g=h.payload)){d=g.call(m,d,p);break e}d=g;break e;case 3:g.flags=-65537&g.flags|128;case 0:if(null===(p="function"===typeof(g=h.payload)?g.call(m,d,p):g)||void 0===p)break e;d=F({},d,p);break e;case 2:xi=!0}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(p=a.effects)?a.effects=[s]:p.push(s))}else m={eventTime:m,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===u?(c=u=m,l=d):u=u.next=m,o|=p;if(null===(s=s.next)){if(null===(s=a.shared.pending))break;s=(p=s).next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}if(null===u&&(l=d),a.baseState=l,a.firstBaseUpdate=c,a.lastBaseUpdate=u,null!==(t=a.shared.interleaved)){a=t;do{o|=a.lane,a=a.next}while(a!==t)}else null===i&&(a.shared.lanes=0);Ml|=o,e.lanes=o,e.memoizedState=d}}function Ui(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!==typeof a)throw Error(i(191,a));a.call(r)}}}var Bi=(new r.Component).refs;function Gi(e,t,n,r){n=null===(n=n(r,t=e.memoizedState))||void 0===n?t:F({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var Hi={isMounted:function(e){return!!(e=e._reactInternals)&&ze(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ec(),a=tc(e),i=Li(r,a);i.payload=t,void 0!==n&&null!==n&&(i.callback=n),null!==(t=Pi(e,i,a))&&(nc(t,e,a,r),Di(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ec(),a=tc(e),i=Li(r,a);i.tag=1,i.payload=t,void 0!==n&&null!==n&&(i.callback=n),null!==(t=Pi(e,i,a))&&(nc(t,e,a,r),Di(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ec(),r=tc(e),a=Li(n,r);a.tag=2,void 0!==t&&null!==t&&(a.callback=t),null!==(t=Pi(e,a,r))&&(nc(t,e,r,n),Di(t,e,r))}};function zi(e,t,n,r,a,i,o){return"function"===typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,i,o):!t.prototype||!t.prototype.isPureReactComponent||(!lr(n,r)||!lr(a,i))}function $i(e,t,n){var r=!1,a=Ca,i=t.contextType;return"object"===typeof i&&null!==i?i=wi(i):(a=Oa(t)?xa:Na.current,i=(r=null!==(r=t.contextTypes)&&void 0!==r)?Ra(e,a):Ca),t=new t(n,i),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Hi,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=i),t}function Vi(e,t,n,r){e=t.state,"function"===typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"===typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Hi.enqueueReplaceState(t,t.state,null)}function ji(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=Bi,Ri(e);var i=t.contextType;"object"===typeof i&&null!==i?a.context=wi(i):(i=Oa(t)?xa:Na.current,a.context=Ra(e,i)),a.state=e.memoizedState,"function"===typeof(i=t.getDerivedStateFromProps)&&(Gi(e,t,i,n),a.state=e.memoizedState),"function"===typeof t.getDerivedStateFromProps||"function"===typeof a.getSnapshotBeforeUpdate||"function"!==typeof a.UNSAFE_componentWillMount&&"function"!==typeof a.componentWillMount||(t=a.state,"function"===typeof a.componentWillMount&&a.componentWillMount(),"function"===typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&Hi.enqueueReplaceState(a,a.state,null),Fi(e,n,a,r),a.state=e.memoizedState),"function"===typeof a.componentDidMount&&(e.flags|=4194308)}function Wi(e,t,n){if(null!==(e=n.ref)&&"function"!==typeof e&&"object"!==typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=r,o=""+e;return null!==t&&null!==t.ref&&"function"===typeof t.ref&&t.ref._stringRef===o?t.ref:(t=function(e){var t=a.refs;t===Bi&&(t=a.refs={}),null===e?delete t[o]:t[o]=e},t._stringRef=o,t)}if("string"!==typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function qi(e,t){throw e=Object.prototype.toString.call(t),Error(i(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Ki(e){return(0,e._init)(e._payload)}function Xi(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Lc(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function s(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Fc(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function c(e,t,n,r){var i=n.type;return i===A?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===i||"object"===typeof i&&null!==i&&i.$$typeof===O&&Ki(i)===t.type)?((r=a(t,n.props)).ref=Wi(e,t,n),r.return=e,r):((r=Pc(n.type,n.key,n.props,null,e.mode,r)).ref=Wi(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Uc(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,i){return null===t||7!==t.tag?((t=Dc(n,e.mode,r,i)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"===typeof t&&""!==t||"number"===typeof t)return(t=Fc(""+t,e.mode,n)).return=e,t;if("object"===typeof t&&null!==t){switch(t.$$typeof){case S:return(n=Pc(t.type,t.key,t.props,null,e.mode,n)).ref=Wi(e,null,t),n.return=e,n;case v:return(t=Uc(t,e.mode,n)).return=e,t;case O:return p(e,(0,t._init)(t._payload),n)}if(te(t)||D(t))return(t=Dc(t,e.mode,n,null)).return=e,t;qi(e,t)}return null}function m(e,t,n,r){var a=null!==t?t.key:null;if("string"===typeof n&&""!==n||"number"===typeof n)return null!==a?null:l(e,t,""+n,r);if("object"===typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===a?c(e,t,n,r):null;case v:return n.key===a?u(e,t,n,r):null;case O:return m(e,t,(a=n._init)(n._payload),r)}if(te(n)||D(n))return null!==a?null:d(e,t,n,r,null);qi(e,n)}return null}function g(e,t,n,r,a){if("string"===typeof r&&""!==r||"number"===typeof r)return l(t,e=e.get(n)||null,""+r,a);if("object"===typeof r&&null!==r){switch(r.$$typeof){case S:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case v:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case O:return g(e,t,n,(0,r._init)(r._payload),a)}if(te(r)||D(r))return d(t,e=e.get(n)||null,r,a,null);qi(t,r)}return null}function h(a,i,s,l){for(var c=null,u=null,d=i,h=i=0,f=null;null!==d&&h<s.length;h++){d.index>h?(f=d,d=null):f=d.sibling;var b=m(a,d,s[h],l);if(null===b){null===d&&(d=f);break}e&&d&&null===b.alternate&&t(a,d),i=o(b,i,h),null===u?c=b:u.sibling=b,u=b,d=f}if(h===s.length)return n(a,d),ai&&Qa(a,h),c;if(null===d){for(;h<s.length;h++)null!==(d=p(a,s[h],l))&&(i=o(d,i,h),null===u?c=d:u.sibling=d,u=d);return ai&&Qa(a,h),c}for(d=r(a,d);h<s.length;h++)null!==(f=g(d,a,h,s[h],l))&&(e&&null!==f.alternate&&d.delete(null===f.key?h:f.key),i=o(f,i,h),null===u?c=f:u.sibling=f,u=f);return e&&d.forEach((function(e){return t(a,e)})),ai&&Qa(a,h),c}function f(a,s,l,c){var u=D(l);if("function"!==typeof u)throw Error(i(150));if(null==(l=u.call(l)))throw Error(i(151));for(var d=u=null,h=s,f=s=0,b=null,E=l.next();null!==h&&!E.done;f++,E=l.next()){h.index>f?(b=h,h=null):b=h.sibling;var y=m(a,h,E.value,c);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(a,h),s=o(y,s,f),null===d?u=y:d.sibling=y,d=y,h=b}if(E.done)return n(a,h),ai&&Qa(a,f),u;if(null===h){for(;!E.done;f++,E=l.next())null!==(E=p(a,E.value,c))&&(s=o(E,s,f),null===d?u=E:d.sibling=E,d=E);return ai&&Qa(a,f),u}for(h=r(a,h);!E.done;f++,E=l.next())null!==(E=g(h,a,f,E.value,c))&&(e&&null!==E.alternate&&h.delete(null===E.key?f:E.key),s=o(E,s,f),null===d?u=E:d.sibling=E,d=E);return e&&h.forEach((function(e){return t(a,e)})),ai&&Qa(a,f),u}return function e(r,i,o,l){if("object"===typeof o&&null!==o&&o.type===A&&null===o.key&&(o=o.props.children),"object"===typeof o&&null!==o){switch(o.$$typeof){case S:e:{for(var c=o.key,u=i;null!==u;){if(u.key===c){if((c=o.type)===A){if(7===u.tag){n(r,u.sibling),(i=a(u,o.props.children)).return=r,r=i;break e}}else if(u.elementType===c||"object"===typeof c&&null!==c&&c.$$typeof===O&&Ki(c)===u.type){n(r,u.sibling),(i=a(u,o.props)).ref=Wi(r,u,o),i.return=r,r=i;break e}n(r,u);break}t(r,u),u=u.sibling}o.type===A?((i=Dc(o.props.children,r.mode,l,o.key)).return=r,r=i):((l=Pc(o.type,o.key,o.props,null,r.mode,l)).ref=Wi(r,i,o),l.return=r,r=l)}return s(r);case v:e:{for(u=o.key;null!==i;){if(i.key===u){if(4===i.tag&&i.stateNode.containerInfo===o.containerInfo&&i.stateNode.implementation===o.implementation){n(r,i.sibling),(i=a(i,o.children||[])).return=r,r=i;break e}n(r,i);break}t(r,i),i=i.sibling}(i=Uc(o,r.mode,l)).return=r,r=i}return s(r);case O:return e(r,i,(u=o._init)(o._payload),l)}if(te(o))return h(r,i,o,l);if(D(o))return f(r,i,o,l);qi(r,o)}return"string"===typeof o&&""!==o||"number"===typeof o?(o=""+o,null!==i&&6===i.tag?(n(r,i.sibling),(i=a(i,o)).return=r,r=i):(n(r,i),(i=Fc(o,r.mode,l)).return=r,r=i),s(r)):n(r,i)}}var Yi=Xi(!0),Zi=Xi(!1),Qi={},Ji=ka(Qi),eo=ka(Qi),to=ka(Qi);function no(e){if(e===Qi)throw Error(i(174));return e}function ro(e,t){switch(_a(to,t),_a(eo,e),_a(Ji,Qi),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:le(null,"");break;default:t=le(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}wa(Ji),_a(Ji,t)}function ao(){wa(Ji),wa(eo),wa(to)}function io(e){no(to.current);var t=no(Ji.current),n=le(t,e.type);t!==n&&(_a(eo,e),_a(Ji,n))}function oo(e){eo.current===e&&(wa(Ji),wa(eo))}var so=ka(0);function lo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!==(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var co=[];function uo(){for(var e=0;e<co.length;e++)co[e]._workInProgressVersionPrimary=null;co.length=0}var po=T.ReactCurrentDispatcher,mo=T.ReactCurrentBatchConfig,go=0,ho=null,fo=null,bo=null,Eo=!1,yo=!1,To=0,So=0;function vo(){throw Error(i(321))}function Ao(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sr(e[n],t[n]))return!1;return!0}function ko(e,t,n,r,a,o){if(go=o,ho=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,po.current=null===e||null===e.memoizedState?ss:ls,e=n(r,a),yo){o=0;do{if(yo=!1,To=0,25<=o)throw Error(i(301));o+=1,bo=fo=null,t.updateQueue=null,po.current=cs,e=n(r,a)}while(yo)}if(po.current=os,t=null!==fo&&null!==fo.next,go=0,bo=fo=ho=null,Eo=!1,t)throw Error(i(300));return e}function wo(){var e=0!==To;return To=0,e}function _o(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===bo?ho.memoizedState=bo=e:bo=bo.next=e,bo}function Co(){if(null===fo){var e=ho.alternate;e=null!==e?e.memoizedState:null}else e=fo.next;var t=null===bo?ho.memoizedState:bo.next;if(null!==t)bo=t,fo=e;else{if(null===e)throw Error(i(310));e={memoizedState:(fo=e).memoizedState,baseState:fo.baseState,baseQueue:fo.baseQueue,queue:fo.queue,next:null},null===bo?ho.memoizedState=bo=e:bo=bo.next=e}return bo}function No(e,t){return"function"===typeof t?t(e):t}function Io(e){var t=Co(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=fo,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var s=a.next;a.next=o.next,o.next=s}r.baseQueue=a=o,n.pending=null}if(null!==a){o=a.next,r=r.baseState;var l=s=null,c=null,u=o;do{var d=u.lane;if((go&d)===d)null!==c&&(c=c.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var p={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};null===c?(l=c=p,s=r):c=c.next=p,ho.lanes|=d,Ml|=d}u=u.next}while(null!==u&&u!==o);null===c?s=r:c.next=l,sr(r,t.memoizedState)||(Ts=!0),t.memoizedState=r,t.baseState=s,t.baseQueue=c,n.lastRenderedState=r}if(null!==(e=n.interleaved)){a=e;do{o=a.lane,ho.lanes|=o,Ml|=o,a=a.next}while(a!==e)}else null===a&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function xo(e){var t=Co(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var s=a=a.next;do{o=e(o,s.action),s=s.next}while(s!==a);sr(o,t.memoizedState)||(Ts=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Ro(){}function Oo(e,t){var n=ho,r=Co(),a=t(),o=!sr(r.memoizedState,a);if(o&&(r.memoizedState=a,Ts=!0),r=r.queue,Vo(Do.bind(null,n,r,e),[e]),r.getSnapshot!==t||o||null!==bo&&1&bo.memoizedState.tag){if(n.flags|=2048,Bo(9,Po.bind(null,n,r,a,t),void 0,null),null===Il)throw Error(i(349));0!==(30&go)||Lo(n,t,a)}return a}function Lo(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=ho.updateQueue)?(t={lastEffect:null,stores:null},ho.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Po(e,t,n,r){t.value=n,t.getSnapshot=r,Mo(t)&&Fo(e)}function Do(e,t,n){return n((function(){Mo(t)&&Fo(e)}))}function Mo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sr(e,n)}catch(r){return!0}}function Fo(e){var t=Ii(e,1);null!==t&&nc(t,e,1,-1)}function Uo(e){var t=_o();return"function"===typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:No,lastRenderedState:e},t.queue=e,e=e.dispatch=ns.bind(null,ho,e),[t.memoizedState,e]}function Bo(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=ho.updateQueue)?(t={lastEffect:null,stores:null},ho.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Go(){return Co().memoizedState}function Ho(e,t,n,r){var a=_o();ho.flags|=e,a.memoizedState=Bo(1|t,n,void 0,void 0===r?null:r)}function zo(e,t,n,r){var a=Co();r=void 0===r?null:r;var i=void 0;if(null!==fo){var o=fo.memoizedState;if(i=o.destroy,null!==r&&Ao(r,o.deps))return void(a.memoizedState=Bo(t,n,i,r))}ho.flags|=e,a.memoizedState=Bo(1|t,n,i,r)}function $o(e,t){return Ho(8390656,8,e,t)}function Vo(e,t){return zo(2048,8,e,t)}function jo(e,t){return zo(4,2,e,t)}function Wo(e,t){return zo(4,4,e,t)}function qo(e,t){return"function"===typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Ko(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,zo(4,4,qo.bind(null,t,e),n)}function Xo(){}function Yo(e,t){var n=Co();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Ao(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Zo(e,t){var n=Co();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Ao(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Qo(e,t,n){return 0===(21&go)?(e.baseState&&(e.baseState=!1,Ts=!0),e.memoizedState=n):(sr(n,t)||(n=ht(),ho.lanes|=n,Ml|=n,e.baseState=!0),t)}function Jo(e,t){var n=yt;yt=0!==n&&4>n?n:4,e(!0);var r=mo.transition;mo.transition={};try{e(!1),t()}finally{yt=n,mo.transition=r}}function es(){return Co().memoizedState}function ts(e,t,n){var r=tc(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},rs(e))as(t,n);else if(null!==(n=Ni(e,t,n,r))){nc(n,e,r,ec()),is(n,t,r)}}function ns(e,t,n){var r=tc(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(rs(e))as(t,a);else{var i=e.alternate;if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var o=t.lastRenderedState,s=i(o,n);if(a.hasEagerState=!0,a.eagerState=s,sr(s,o)){var l=t.interleaved;return null===l?(a.next=a,Ci(t)):(a.next=l.next,l.next=a),void(t.interleaved=a)}}catch(c){}null!==(n=Ni(e,t,a,r))&&(nc(n,e,r,a=ec()),is(n,t,r))}}function rs(e){var t=e.alternate;return e===ho||null!==t&&t===ho}function as(e,t){yo=Eo=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function is(e,t,n){if(0!==(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,Et(e,n)}}var os={readContext:wi,useCallback:vo,useContext:vo,useEffect:vo,useImperativeHandle:vo,useInsertionEffect:vo,useLayoutEffect:vo,useMemo:vo,useReducer:vo,useRef:vo,useState:vo,useDebugValue:vo,useDeferredValue:vo,useTransition:vo,useMutableSource:vo,useSyncExternalStore:vo,useId:vo,unstable_isNewReconciler:!1},ss={readContext:wi,useCallback:function(e,t){return _o().memoizedState=[e,void 0===t?null:t],e},useContext:wi,useEffect:$o,useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,Ho(4194308,4,qo.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ho(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ho(4,2,e,t)},useMemo:function(e,t){var n=_o();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=_o();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=ts.bind(null,ho,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},_o().memoizedState=e},useState:Uo,useDebugValue:Xo,useDeferredValue:function(e){return _o().memoizedState=e},useTransition:function(){var e=Uo(!1),t=e[0];return e=Jo.bind(null,e[1]),_o().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ho,a=_o();if(ai){if(void 0===n)throw Error(i(407));n=n()}else{if(n=t(),null===Il)throw Error(i(349));0!==(30&go)||Lo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,$o(Do.bind(null,r,o,e),[e]),r.flags|=2048,Bo(9,Po.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=_o(),t=Il.identifierPrefix;if(ai){var n=Za;t=":"+t+"R"+(n=(Ya&~(1<<32-ot(Ya)-1)).toString(32)+n),0<(n=To++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=So++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},ls={readContext:wi,useCallback:Yo,useContext:wi,useEffect:Vo,useImperativeHandle:Ko,useInsertionEffect:jo,useLayoutEffect:Wo,useMemo:Zo,useReducer:Io,useRef:Go,useState:function(){return Io(No)},useDebugValue:Xo,useDeferredValue:function(e){return Qo(Co(),fo.memoizedState,e)},useTransition:function(){return[Io(No)[0],Co().memoizedState]},useMutableSource:Ro,useSyncExternalStore:Oo,useId:es,unstable_isNewReconciler:!1},cs={readContext:wi,useCallback:Yo,useContext:wi,useEffect:Vo,useImperativeHandle:Ko,useInsertionEffect:jo,useLayoutEffect:Wo,useMemo:Zo,useReducer:xo,useRef:Go,useState:function(){return xo(No)},useDebugValue:Xo,useDeferredValue:function(e){var t=Co();return null===fo?t.memoizedState=e:Qo(t,fo.memoizedState,e)},useTransition:function(){return[xo(No)[0],Co().memoizedState]},useMutableSource:Ro,useSyncExternalStore:Oo,useId:es,unstable_isNewReconciler:!1};function us(e,t){try{var n="",r=t;do{n+=H(r),r=r.return}while(r);var a=n}catch(i){a="\nError generating stack: "+i.message+"\n"+i.stack}return{value:e,source:t,stack:a,digest:null}}function ds(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function ps(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var ms="function"===typeof WeakMap?WeakMap:Map;function gs(e,t,n){(n=Li(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Vl||(Vl=!0,jl=r),ps(0,t)},n}function hs(e,t,n){(n=Li(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"===typeof r){var a=t.value;n.payload=function(){return r(a)},n.callback=function(){ps(0,t)}}var i=e.stateNode;return null!==i&&"function"===typeof i.componentDidCatch&&(n.callback=function(){ps(0,t),"function"!==typeof r&&(null===Wl?Wl=new Set([this]):Wl.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function fs(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new ms;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(a.add(n),e=wc.bind(null,e,t,n),t.then(e,e))}function bs(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function Es(e,t,n,r,a){return 0===(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Li(-1,1)).tag=2,Pi(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=a,e)}var ys=T.ReactCurrentOwner,Ts=!1;function Ss(e,t,n,r){t.child=null===e?Zi(t,null,n,r):Yi(t,e.child,n,r)}function vs(e,t,n,r,a){n=n.render;var i=t.ref;return ki(t,a),r=ko(e,t,n,r,i,a),n=wo(),null===e||Ts?(ai&&n&&ei(t),t.flags|=1,Ss(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Vs(e,t,a))}function As(e,t,n,r,a){if(null===e){var i=n.type;return"function"!==typeof i||Oc(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Pc(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,ks(e,t,i,r,a))}if(i=e.child,0===(e.lanes&a)){var o=i.memoizedProps;if((n=null!==(n=n.compare)?n:lr)(o,r)&&e.ref===t.ref)return Vs(e,t,a)}return t.flags|=1,(e=Lc(i,r)).ref=t.ref,e.return=t,t.child=e}function ks(e,t,n,r,a){if(null!==e){var i=e.memoizedProps;if(lr(i,r)&&e.ref===t.ref){if(Ts=!1,t.pendingProps=r=i,0===(e.lanes&a))return t.lanes=e.lanes,Vs(e,t,a);0!==(131072&e.flags)&&(Ts=!0)}}return Cs(e,t,n,r,a)}function ws(e,t,n){var r=t.pendingProps,a=r.children,i=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0===(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},_a(Ll,Ol),Ol|=n;else{if(0===(1073741824&n))return e=null!==i?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,_a(Ll,Ol),Ol|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==i?i.baseLanes:n,_a(Ll,Ol),Ol|=r}else null!==i?(r=i.baseLanes|n,t.memoizedState=null):r=n,_a(Ll,Ol),Ol|=r;return Ss(e,t,a,n),t.child}function _s(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Cs(e,t,n,r,a){var i=Oa(n)?xa:Na.current;return i=Ra(t,i),ki(t,a),n=ko(e,t,n,r,i,a),r=wo(),null===e||Ts?(ai&&r&&ei(t),t.flags|=1,Ss(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Vs(e,t,a))}function Ns(e,t,n,r,a){if(Oa(n)){var i=!0;Ma(t)}else i=!1;if(ki(t,a),null===t.stateNode)$s(e,t),$i(t,n,r),ji(t,n,r,a),r=!0;else if(null===e){var o=t.stateNode,s=t.memoizedProps;o.props=s;var l=o.context,c=n.contextType;"object"===typeof c&&null!==c?c=wi(c):c=Ra(t,c=Oa(n)?xa:Na.current);var u=n.getDerivedStateFromProps,d="function"===typeof u||"function"===typeof o.getSnapshotBeforeUpdate;d||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(s!==r||l!==c)&&Vi(t,o,r,c),xi=!1;var p=t.memoizedState;o.state=p,Fi(t,r,o,a),l=t.memoizedState,s!==r||p!==l||Ia.current||xi?("function"===typeof u&&(Gi(t,n,u,r),l=t.memoizedState),(s=xi||zi(t,n,s,r,p,l,c))?(d||"function"!==typeof o.UNSAFE_componentWillMount&&"function"!==typeof o.componentWillMount||("function"===typeof o.componentWillMount&&o.componentWillMount(),"function"===typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"===typeof o.componentDidMount&&(t.flags|=4194308)):("function"===typeof o.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),o.props=r,o.state=l,o.context=c,r=s):("function"===typeof o.componentDidMount&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,Oi(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:fi(t.type,s),o.props=c,d=t.pendingProps,p=o.context,"object"===typeof(l=n.contextType)&&null!==l?l=wi(l):l=Ra(t,l=Oa(n)?xa:Na.current);var m=n.getDerivedStateFromProps;(u="function"===typeof m||"function"===typeof o.getSnapshotBeforeUpdate)||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(s!==d||p!==l)&&Vi(t,o,r,l),xi=!1,p=t.memoizedState,o.state=p,Fi(t,r,o,a);var g=t.memoizedState;s!==d||p!==g||Ia.current||xi?("function"===typeof m&&(Gi(t,n,m,r),g=t.memoizedState),(c=xi||zi(t,n,c,r,p,g,l)||!1)?(u||"function"!==typeof o.UNSAFE_componentWillUpdate&&"function"!==typeof o.componentWillUpdate||("function"===typeof o.componentWillUpdate&&o.componentWillUpdate(r,g,l),"function"===typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,g,l)),"function"===typeof o.componentDidUpdate&&(t.flags|=4),"function"===typeof o.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!==typeof o.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=g),o.props=r,o.state=g,o.context=l,r=c):("function"!==typeof o.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Is(e,t,n,r,i,a)}function Is(e,t,n,r,a,i){_s(e,t);var o=0!==(128&t.flags);if(!r&&!o)return a&&Fa(t,n,!1),Vs(e,t,i);r=t.stateNode,ys.current=t;var s=o&&"function"!==typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&o?(t.child=Yi(t,e.child,null,i),t.child=Yi(t,null,s,i)):Ss(e,t,s,i),t.memoizedState=r.state,a&&Fa(t,n,!0),t.child}function xs(e){var t=e.stateNode;t.pendingContext?Pa(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Pa(0,t.context,!1),ro(e,t.containerInfo)}function Rs(e,t,n,r,a){return mi(),gi(a),t.flags|=256,Ss(e,t,n,r),t.child}var Os,Ls,Ps,Ds={dehydrated:null,treeContext:null,retryLane:0};function Ms(e){return{baseLanes:e,cachePool:null,transitions:null}}function Fs(e,t,n){var r,a=t.pendingProps,o=so.current,s=!1,l=0!==(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&0!==(2&o)),r?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(o|=1),_a(so,1&o),null===e)return ci(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0===(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(l=a.children,e=a.fallback,s?(a=t.mode,s=t.child,l={mode:"hidden",children:l},0===(1&a)&&null!==s?(s.childLanes=0,s.pendingProps=l):s=Mc(l,a,0,null),e=Dc(e,a,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Ms(n),t.memoizedState=Ds,e):Us(t,l));if(null!==(o=e.memoizedState)&&null!==(r=o.dehydrated))return function(e,t,n,r,a,o,s){if(n)return 256&t.flags?(t.flags&=-257,Bs(e,t,s,r=ds(Error(i(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(o=r.fallback,a=t.mode,r=Mc({mode:"visible",children:r.children},a,0,null),(o=Dc(o,a,s,null)).flags|=2,r.return=t,o.return=t,r.sibling=o,t.child=r,0!==(1&t.mode)&&Yi(t,e.child,null,s),t.child.memoizedState=Ms(s),t.memoizedState=Ds,o);if(0===(1&t.mode))return Bs(e,t,s,null);if("$!"===a.data){if(r=a.nextSibling&&a.nextSibling.dataset)var l=r.dgst;return r=l,Bs(e,t,s,r=ds(o=Error(i(419)),r,void 0))}if(l=0!==(s&e.childLanes),Ts||l){if(null!==(r=Il)){switch(s&-s){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}0!==(a=0!==(a&(r.suspendedLanes|s))?0:a)&&a!==o.retryLane&&(o.retryLane=a,Ii(e,a),nc(r,e,a,-1))}return hc(),Bs(e,t,s,r=ds(Error(i(421))))}return"$?"===a.data?(t.flags|=128,t.child=e.child,t=Cc.bind(null,e),a._reactRetry=t,null):(e=o.treeContext,ri=ca(a.nextSibling),ni=t,ai=!0,ii=null,null!==e&&(qa[Ka++]=Ya,qa[Ka++]=Za,qa[Ka++]=Xa,Ya=e.id,Za=e.overflow,Xa=t),(t=Us(t,r.children)).flags|=4096,t)}(e,t,l,a,r,o,n);if(s){s=a.fallback,l=t.mode,r=(o=e.child).sibling;var c={mode:"hidden",children:a.children};return 0===(1&l)&&t.child!==o?((a=t.child).childLanes=0,a.pendingProps=c,t.deletions=null):(a=Lc(o,c)).subtreeFlags=14680064&o.subtreeFlags,null!==r?s=Lc(r,s):(s=Dc(s,l,n,null)).flags|=2,s.return=t,a.return=t,a.sibling=s,t.child=a,a=s,s=t.child,l=null===(l=e.child.memoizedState)?Ms(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~n,t.memoizedState=Ds,a}return e=(s=e.child).sibling,a=Lc(s,{mode:"visible",children:a.children}),0===(1&t.mode)&&(a.lanes=n),a.return=t,a.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=a,t.memoizedState=null,a}function Us(e,t){return(t=Mc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Bs(e,t,n,r){return null!==r&&gi(r),Yi(t,e.child,null,n),(e=Us(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Gs(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Ai(e.return,t,n)}function Hs(e,t,n,r,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a)}function zs(e,t,n){var r=t.pendingProps,a=r.revealOrder,i=r.tail;if(Ss(e,t,r.children,n),0!==(2&(r=so.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!==(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Gs(e,n,t);else if(19===e.tag)Gs(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(_a(so,r),0===(1&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===lo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),Hs(t,!1,a,n,i);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===lo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}Hs(t,!0,n,null,i);break;case"together":Hs(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function $s(e,t){0===(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Vs(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ml|=t.lanes,0===(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Lc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Lc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function js(e,t){if(!ai)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ws(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=14680064&a.subtreeFlags,r|=14680064&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function qs(e,t,n){var r=t.pendingProps;switch(ti(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ws(t),null;case 1:case 17:return Oa(t.type)&&La(),Ws(t),null;case 3:return r=t.stateNode,ao(),wa(Ia),wa(Na),uo(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(di(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0===(256&t.flags)||(t.flags|=1024,null!==ii&&(oc(ii),ii=null))),Ws(t),null;case 5:oo(t);var a=no(to.current);if(n=t.type,null!==e&&null!=t.stateNode)Ls(e,t,n,r),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(i(166));return Ws(t),null}if(e=no(Ji.current),di(t)){r=t.stateNode,n=t.type;var o=t.memoizedProps;switch(r[pa]=t,r[ma]=o,e=0!==(1&t.mode),n){case"dialog":Br("cancel",r),Br("close",r);break;case"iframe":case"object":case"embed":Br("load",r);break;case"video":case"audio":for(a=0;a<Dr.length;a++)Br(Dr[a],r);break;case"source":Br("error",r);break;case"img":case"image":case"link":Br("error",r),Br("load",r);break;case"details":Br("toggle",r);break;case"input":Y(r,o),Br("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!o.multiple},Br("invalid",r);break;case"textarea":ae(r,o),Br("invalid",r)}for(var l in Ee(n,o),a=null,o)if(o.hasOwnProperty(l)){var c=o[l];"children"===l?"string"===typeof c?r.textContent!==c&&(!0!==o.suppressHydrationWarning&&Qr(r.textContent,c,e),a=["children",c]):"number"===typeof c&&r.textContent!==""+c&&(!0!==o.suppressHydrationWarning&&Qr(r.textContent,c,e),a=["children",""+c]):s.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&Br("scroll",r)}switch(n){case"input":W(r),J(r,o,!0);break;case"textarea":W(r),oe(r);break;case"select":case"option":break;default:"function"===typeof o.onClick&&(r.onclick=Jr)}r=a,t.updateQueue=r,null!==r&&(t.flags|=4)}else{l=9===a.nodeType?a:a.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=se(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"===typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[pa]=t,e[ma]=r,Os(e,t),t.stateNode=e;e:{switch(l=ye(n,r),n){case"dialog":Br("cancel",e),Br("close",e),a=r;break;case"iframe":case"object":case"embed":Br("load",e),a=r;break;case"video":case"audio":for(a=0;a<Dr.length;a++)Br(Dr[a],e);a=r;break;case"source":Br("error",e),a=r;break;case"img":case"image":case"link":Br("error",e),Br("load",e),a=r;break;case"details":Br("toggle",e),a=r;break;case"input":Y(e,r),a=X(e,r),Br("invalid",e);break;case"option":default:a=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=F({},r,{value:void 0}),Br("invalid",e);break;case"textarea":ae(e,r),a=re(e,r),Br("invalid",e)}for(o in Ee(n,a),c=a)if(c.hasOwnProperty(o)){var u=c[o];"style"===o?fe(e,u):"dangerouslySetInnerHTML"===o?null!=(u=u?u.__html:void 0)&&de(e,u):"children"===o?"string"===typeof u?("textarea"!==n||""!==u)&&pe(e,u):"number"===typeof u&&pe(e,""+u):"suppressContentEditableWarning"!==o&&"suppressHydrationWarning"!==o&&"autoFocus"!==o&&(s.hasOwnProperty(o)?null!=u&&"onScroll"===o&&Br("scroll",e):null!=u&&y(e,o,u,l))}switch(n){case"input":W(e),J(e,r,!1);break;case"textarea":W(e),oe(e);break;case"option":null!=r.value&&e.setAttribute("value",""+V(r.value));break;case"select":e.multiple=!!r.multiple,null!=(o=r.value)?ne(e,!!r.multiple,o,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"===typeof a.onClick&&(e.onclick=Jr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Ws(t),null;case 6:if(e&&null!=t.stateNode)Ps(0,t,e.memoizedProps,r);else{if("string"!==typeof r&&null===t.stateNode)throw Error(i(166));if(n=no(to.current),no(Ji.current),di(t)){if(r=t.stateNode,n=t.memoizedProps,r[pa]=t,(o=r.nodeValue!==n)&&null!==(e=ni))switch(e.tag){case 3:Qr(r.nodeValue,n,0!==(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Qr(r.nodeValue,n,0!==(1&e.mode))}o&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[pa]=t,t.stateNode=r}return Ws(t),null;case 13:if(wa(so),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(ai&&null!==ri&&0!==(1&t.mode)&&0===(128&t.flags))pi(),mi(),t.flags|=98560,o=!1;else if(o=di(t),null!==r&&null!==r.dehydrated){if(null===e){if(!o)throw Error(i(318));if(!(o=null!==(o=t.memoizedState)?o.dehydrated:null))throw Error(i(317));o[pa]=t}else mi(),0===(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Ws(t),o=!1}else null!==ii&&(oc(ii),ii=null),o=!0;if(!o)return 65536&t.flags?t:null}return 0!==(128&t.flags)?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,0!==(1&t.mode)&&(null===e||0!==(1&so.current)?0===Pl&&(Pl=3):hc())),null!==t.updateQueue&&(t.flags|=4),Ws(t),null);case 4:return ao(),null===e&&zr(t.stateNode.containerInfo),Ws(t),null;case 10:return vi(t.type._context),Ws(t),null;case 19:if(wa(so),null===(o=t.memoizedState))return Ws(t),null;if(r=0!==(128&t.flags),null===(l=o.rendering))if(r)js(o,!1);else{if(0!==Pl||null!==e&&0!==(128&e.flags))for(e=t.child;null!==e;){if(null!==(l=lo(e))){for(t.flags|=128,js(o,!1),null!==(r=l.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(o=n).flags&=14680066,null===(l=o.alternate)?(o.childLanes=0,o.lanes=e,o.child=null,o.subtreeFlags=0,o.memoizedProps=null,o.memoizedState=null,o.updateQueue=null,o.dependencies=null,o.stateNode=null):(o.childLanes=l.childLanes,o.lanes=l.lanes,o.child=l.child,o.subtreeFlags=0,o.deletions=null,o.memoizedProps=l.memoizedProps,o.memoizedState=l.memoizedState,o.updateQueue=l.updateQueue,o.type=l.type,e=l.dependencies,o.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return _a(so,1&so.current|2),t.child}e=e.sibling}null!==o.tail&&Ze()>zl&&(t.flags|=128,r=!0,js(o,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=lo(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),js(o,!0),null===o.tail&&"hidden"===o.tailMode&&!l.alternate&&!ai)return Ws(t),null}else 2*Ze()-o.renderingStartTime>zl&&1073741824!==n&&(t.flags|=128,r=!0,js(o,!1),t.lanes=4194304);o.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=o.last)?n.sibling=l:t.child=l,o.last=l)}return null!==o.tail?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=Ze(),t.sibling=null,n=so.current,_a(so,r?1&n|2:1&n),t):(Ws(t),null);case 22:case 23:return dc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!==(1&t.mode)?0!==(1073741824&Ol)&&(Ws(t),6&t.subtreeFlags&&(t.flags|=8192)):Ws(t),null;case 24:case 25:return null}throw Error(i(156,t.tag))}function Ks(e,t){switch(ti(t),t.tag){case 1:return Oa(t.type)&&La(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return ao(),wa(Ia),wa(Na),uo(),0!==(65536&(e=t.flags))&&0===(128&e)?(t.flags=-65537&e|128,t):null;case 5:return oo(t),null;case 13:if(wa(so),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(i(340));mi()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return wa(so),null;case 4:return ao(),null;case 10:return vi(t.type._context),null;case 22:case 23:return dc(),null;default:return null}}Os=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ls=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,no(Ji.current);var i,o=null;switch(n){case"input":a=X(e,a),r=X(e,r),o=[];break;case"select":a=F({},a,{value:void 0}),r=F({},r,{value:void 0}),o=[];break;case"textarea":a=re(e,a),r=re(e,r),o=[];break;default:"function"!==typeof a.onClick&&"function"===typeof r.onClick&&(e.onclick=Jr)}for(u in Ee(n,r),n=null,a)if(!r.hasOwnProperty(u)&&a.hasOwnProperty(u)&&null!=a[u])if("style"===u){var l=a[u];for(i in l)l.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(s.hasOwnProperty(u)?o||(o=[]):(o=o||[]).push(u,null));for(u in r){var c=r[u];if(l=null!=a?a[u]:void 0,r.hasOwnProperty(u)&&c!==l&&(null!=c||null!=l))if("style"===u)if(l){for(i in l)!l.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&l[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(o||(o=[]),o.push(u,n)),n=c;else"dangerouslySetInnerHTML"===u?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(o=o||[]).push(u,c)):"children"===u?"string"!==typeof c&&"number"!==typeof c||(o=o||[]).push(u,""+c):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(s.hasOwnProperty(u)?(null!=c&&"onScroll"===u&&Br("scroll",e),o||l===c||(o=[])):(o=o||[]).push(u,c))}n&&(o=o||[]).push("style",n);var u=o;(t.updateQueue=u)&&(t.flags|=4)}},Ps=function(e,t,n,r){n!==r&&(t.flags|=4)};var Xs=!1,Ys=!1,Zs="function"===typeof WeakSet?WeakSet:Set,Qs=null;function Js(e,t){var n=e.ref;if(null!==n)if("function"===typeof n)try{n(null)}catch(r){kc(e,t,r)}else n.current=null}function el(e,t,n){try{n()}catch(r){kc(e,t,r)}}var tl=!1;function nl(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var a=r=r.next;do{if((a.tag&e)===e){var i=a.destroy;a.destroy=void 0,void 0!==i&&el(t,n,i)}a=a.next}while(a!==r)}}function rl(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function al(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"===typeof t?t(e):t.current=e}}function il(e){var t=e.alternate;null!==t&&(e.alternate=null,il(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[pa],delete t[ma],delete t[ha],delete t[fa],delete t[ba])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ol(e){return 5===e.tag||3===e.tag||4===e.tag}function sl(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||ol(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function ll(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!==(n=n._reactRootContainer)&&void 0!==n||null!==t.onclick||(t.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(ll(e,t,n),e=e.sibling;null!==e;)ll(e,t,n),e=e.sibling}function cl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling}var ul=null,dl=!1;function pl(e,t,n){for(n=n.child;null!==n;)ml(e,t,n),n=n.sibling}function ml(e,t,n){if(it&&"function"===typeof it.onCommitFiberUnmount)try{it.onCommitFiberUnmount(at,n)}catch(s){}switch(n.tag){case 5:Ys||Js(n,t);case 6:var r=ul,a=dl;ul=null,pl(e,t,n),dl=a,null!==(ul=r)&&(dl?(e=ul,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):ul.removeChild(n.stateNode));break;case 18:null!==ul&&(dl?(e=ul,n=n.stateNode,8===e.nodeType?la(e.parentNode,n):1===e.nodeType&&la(e,n),zt(e)):la(ul,n.stateNode));break;case 4:r=ul,a=dl,ul=n.stateNode.containerInfo,dl=!0,pl(e,t,n),ul=r,dl=a;break;case 0:case 11:case 14:case 15:if(!Ys&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){a=r=r.next;do{var i=a,o=i.destroy;i=i.tag,void 0!==o&&(0!==(2&i)||0!==(4&i))&&el(n,t,o),a=a.next}while(a!==r)}pl(e,t,n);break;case 1:if(!Ys&&(Js(n,t),"function"===typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){kc(n,t,s)}pl(e,t,n);break;case 21:pl(e,t,n);break;case 22:1&n.mode?(Ys=(r=Ys)||null!==n.memoizedState,pl(e,t,n),Ys=r):pl(e,t,n);break;default:pl(e,t,n)}}function gl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Zs),t.forEach((function(t){var r=Nc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function hl(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];try{var o=e,s=t,l=s;e:for(;null!==l;){switch(l.tag){case 5:ul=l.stateNode,dl=!1;break e;case 3:case 4:ul=l.stateNode.containerInfo,dl=!0;break e}l=l.return}if(null===ul)throw Error(i(160));ml(o,s,a),ul=null,dl=!1;var c=a.alternate;null!==c&&(c.return=null),a.return=null}catch(u){kc(a,t,u)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)fl(t,e),t=t.sibling}function fl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(hl(t,e),bl(e),4&r){try{nl(3,e,e.return),rl(3,e)}catch(f){kc(e,e.return,f)}try{nl(5,e,e.return)}catch(f){kc(e,e.return,f)}}break;case 1:hl(t,e),bl(e),512&r&&null!==n&&Js(n,n.return);break;case 5:if(hl(t,e),bl(e),512&r&&null!==n&&Js(n,n.return),32&e.flags){var a=e.stateNode;try{pe(a,"")}catch(f){kc(e,e.return,f)}}if(4&r&&null!=(a=e.stateNode)){var o=e.memoizedProps,s=null!==n?n.memoizedProps:o,l=e.type,c=e.updateQueue;if(e.updateQueue=null,null!==c)try{"input"===l&&"radio"===o.type&&null!=o.name&&Z(a,o),ye(l,s);var u=ye(l,o);for(s=0;s<c.length;s+=2){var d=c[s],p=c[s+1];"style"===d?fe(a,p):"dangerouslySetInnerHTML"===d?de(a,p):"children"===d?pe(a,p):y(a,d,p,u)}switch(l){case"input":Q(a,o);break;case"textarea":ie(a,o);break;case"select":var m=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!o.multiple;var g=o.value;null!=g?ne(a,!!o.multiple,g,!1):m!==!!o.multiple&&(null!=o.defaultValue?ne(a,!!o.multiple,o.defaultValue,!0):ne(a,!!o.multiple,o.multiple?[]:"",!1))}a[ma]=o}catch(f){kc(e,e.return,f)}}break;case 6:if(hl(t,e),bl(e),4&r){if(null===e.stateNode)throw Error(i(162));a=e.stateNode,o=e.memoizedProps;try{a.nodeValue=o}catch(f){kc(e,e.return,f)}}break;case 3:if(hl(t,e),bl(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{zt(t.containerInfo)}catch(f){kc(e,e.return,f)}break;case 4:default:hl(t,e),bl(e);break;case 13:hl(t,e),bl(e),8192&(a=e.child).flags&&(o=null!==a.memoizedState,a.stateNode.isHidden=o,!o||null!==a.alternate&&null!==a.alternate.memoizedState||(Hl=Ze())),4&r&&gl(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Ys=(u=Ys)||d,hl(t,e),Ys=u):hl(t,e),bl(e),8192&r){if(u=null!==e.memoizedState,(e.stateNode.isHidden=u)&&!d&&0!==(1&e.mode))for(Qs=e,d=e.child;null!==d;){for(p=Qs=d;null!==Qs;){switch(g=(m=Qs).child,m.tag){case 0:case 11:case 14:case 15:nl(4,m,m.return);break;case 1:Js(m,m.return);var h=m.stateNode;if("function"===typeof h.componentWillUnmount){r=m,n=m.return;try{t=r,h.props=t.memoizedProps,h.state=t.memoizedState,h.componentWillUnmount()}catch(f){kc(r,n,f)}}break;case 5:Js(m,m.return);break;case 22:if(null!==m.memoizedState){Sl(p);continue}}null!==g?(g.return=m,Qs=g):Sl(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{a=p.stateNode,u?"function"===typeof(o=a.style).setProperty?o.setProperty("display","none","important"):o.display="none":(l=p.stateNode,s=void 0!==(c=p.memoizedProps.style)&&null!==c&&c.hasOwnProperty("display")?c.display:null,l.style.display=he("display",s))}catch(f){kc(e,e.return,f)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=u?"":p.memoizedProps}catch(f){kc(e,e.return,f)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;d===p&&(d=null),p=p.return}d===p&&(d=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:hl(t,e),bl(e),4&r&&gl(e);case 21:}}function bl(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(ol(n)){var r=n;break e}n=n.return}throw Error(i(160))}switch(r.tag){case 5:var a=r.stateNode;32&r.flags&&(pe(a,""),r.flags&=-33),cl(e,sl(e),a);break;case 3:case 4:var o=r.stateNode.containerInfo;ll(e,sl(e),o);break;default:throw Error(i(161))}}catch(s){kc(e,e.return,s)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function El(e,t,n){Qs=e,yl(e,t,n)}function yl(e,t,n){for(var r=0!==(1&e.mode);null!==Qs;){var a=Qs,i=a.child;if(22===a.tag&&r){var o=null!==a.memoizedState||Xs;if(!o){var s=a.alternate,l=null!==s&&null!==s.memoizedState||Ys;s=Xs;var c=Ys;if(Xs=o,(Ys=l)&&!c)for(Qs=a;null!==Qs;)l=(o=Qs).child,22===o.tag&&null!==o.memoizedState?vl(a):null!==l?(l.return=o,Qs=l):vl(a);for(;null!==i;)Qs=i,yl(i,t,n),i=i.sibling;Qs=a,Xs=s,Ys=c}Tl(e)}else 0!==(8772&a.subtreeFlags)&&null!==i?(i.return=a,Qs=i):Tl(e)}}function Tl(e){for(;null!==Qs;){var t=Qs;if(0!==(8772&t.flags)){var n=t.alternate;try{if(0!==(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Ys||rl(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Ys)if(null===n)r.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:fi(t.type,n.memoizedProps);r.componentDidUpdate(a,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var o=t.updateQueue;null!==o&&Ui(t,o,r);break;case 3:var s=t.updateQueue;if(null!==s){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Ui(t,s,n)}break;case 5:var l=t.stateNode;if(null===n&&4&t.flags){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var u=t.alternate;if(null!==u){var d=u.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&zt(p)}}}break;default:throw Error(i(163))}Ys||512&t.flags&&al(t)}catch(m){kc(t,t.return,m)}}if(t===e){Qs=null;break}if(null!==(n=t.sibling)){n.return=t.return,Qs=n;break}Qs=t.return}}function Sl(e){for(;null!==Qs;){var t=Qs;if(t===e){Qs=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Qs=n;break}Qs=t.return}}function vl(e){for(;null!==Qs;){var t=Qs;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{rl(4,t)}catch(l){kc(t,n,l)}break;case 1:var r=t.stateNode;if("function"===typeof r.componentDidMount){var a=t.return;try{r.componentDidMount()}catch(l){kc(t,a,l)}}var i=t.return;try{al(t)}catch(l){kc(t,i,l)}break;case 5:var o=t.return;try{al(t)}catch(l){kc(t,o,l)}}}catch(l){kc(t,t.return,l)}if(t===e){Qs=null;break}var s=t.sibling;if(null!==s){s.return=t.return,Qs=s;break}Qs=t.return}}var Al,kl=Math.ceil,wl=T.ReactCurrentDispatcher,_l=T.ReactCurrentOwner,Cl=T.ReactCurrentBatchConfig,Nl=0,Il=null,xl=null,Rl=0,Ol=0,Ll=ka(0),Pl=0,Dl=null,Ml=0,Fl=0,Ul=0,Bl=null,Gl=null,Hl=0,zl=1/0,$l=null,Vl=!1,jl=null,Wl=null,ql=!1,Kl=null,Xl=0,Yl=0,Zl=null,Ql=-1,Jl=0;function ec(){return 0!==(6&Nl)?Ze():-1!==Ql?Ql:Ql=Ze()}function tc(e){return 0===(1&e.mode)?1:0!==(2&Nl)&&0!==Rl?Rl&-Rl:null!==hi.transition?(0===Jl&&(Jl=ht()),Jl):0!==(e=yt)?e:e=void 0===(e=window.event)?16:Yt(e.type)}function nc(e,t,n,r){if(50<Yl)throw Yl=0,Zl=null,Error(i(185));bt(e,n,r),0!==(2&Nl)&&e===Il||(e===Il&&(0===(2&Nl)&&(Fl|=n),4===Pl&&sc(e,Rl)),rc(e,r),1===n&&0===Nl&&0===(1&t.mode)&&(zl=Ze()+500,Ba&&za()))}function rc(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,i=e.pendingLanes;0<i;){var o=31-ot(i),s=1<<o,l=a[o];-1===l?0!==(s&n)&&0===(s&r)||(a[o]=mt(s,t)):l<=t&&(e.expiredLanes|=s),i&=~s}}(e,t);var r=pt(e,e===Il?Rl:0);if(0===r)null!==n&&Ke(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Ke(n),1===t)0===e.tag?function(e){Ba=!0,Ha(e)}(lc.bind(null,e)):Ha(lc.bind(null,e)),oa((function(){0===(6&Nl)&&za()})),n=null;else{switch(Tt(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=Ic(n,ac.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function ac(e,t){if(Ql=-1,Jl=0,0!==(6&Nl))throw Error(i(327));var n=e.callbackNode;if(vc()&&e.callbackNode!==n)return null;var r=pt(e,e===Il?Rl:0);if(0===r)return null;if(0!==(30&r)||0!==(r&e.expiredLanes)||t)t=fc(e,r);else{t=r;var a=Nl;Nl|=2;var o=gc();for(Il===e&&Rl===t||($l=null,zl=Ze()+500,pc(e,t));;)try{Ec();break}catch(l){mc(e,l)}Si(),wl.current=o,Nl=a,null!==xl?t=0:(Il=null,Rl=0,t=Pl)}if(0!==t){if(2===t&&(0!==(a=gt(e))&&(r=a,t=ic(e,a))),1===t)throw n=Dl,pc(e,0),sc(e,r),rc(e,Ze()),n;if(6===t)sc(e,r);else{if(a=e.current.alternate,0===(30&r)&&!function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var a=n[r],i=a.getSnapshot;a=a.value;try{if(!sr(i(),a))return!1}catch(s){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(a)&&(2===(t=fc(e,r))&&(0!==(o=gt(e))&&(r=o,t=ic(e,o))),1===t))throw n=Dl,pc(e,0),sc(e,r),rc(e,Ze()),n;switch(e.finishedWork=a,e.finishedLanes=r,t){case 0:case 1:throw Error(i(345));case 2:case 5:Sc(e,Gl,$l);break;case 3:if(sc(e,r),(130023424&r)===r&&10<(t=Hl+500-Ze())){if(0!==pt(e,0))break;if(((a=e.suspendedLanes)&r)!==r){ec(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=ra(Sc.bind(null,e,Gl,$l),t);break}Sc(e,Gl,$l);break;case 4:if(sc(e,r),(4194240&r)===r)break;for(t=e.eventTimes,a=-1;0<r;){var s=31-ot(r);o=1<<s,(s=t[s])>a&&(a=s),r&=~o}if(r=a,10<(r=(120>(r=Ze()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*kl(r/1960))-r)){e.timeoutHandle=ra(Sc.bind(null,e,Gl,$l),r);break}Sc(e,Gl,$l);break;default:throw Error(i(329))}}}return rc(e,Ze()),e.callbackNode===n?ac.bind(null,e):null}function ic(e,t){var n=Bl;return e.current.memoizedState.isDehydrated&&(pc(e,t).flags|=256),2!==(e=fc(e,t))&&(t=Gl,Gl=n,null!==t&&oc(t)),e}function oc(e){null===Gl?Gl=e:Gl.push.apply(Gl,e)}function sc(e,t){for(t&=~Ul,t&=~Fl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-ot(t),r=1<<n;e[n]=-1,t&=~r}}function lc(e){if(0!==(6&Nl))throw Error(i(327));vc();var t=pt(e,0);if(0===(1&t))return rc(e,Ze()),null;var n=fc(e,t);if(0!==e.tag&&2===n){var r=gt(e);0!==r&&(t=r,n=ic(e,r))}if(1===n)throw n=Dl,pc(e,0),sc(e,t),rc(e,Ze()),n;if(6===n)throw Error(i(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Sc(e,Gl,$l),rc(e,Ze()),null}function cc(e,t){var n=Nl;Nl|=1;try{return e(t)}finally{0===(Nl=n)&&(zl=Ze()+500,Ba&&za())}}function uc(e){null!==Kl&&0===Kl.tag&&0===(6&Nl)&&vc();var t=Nl;Nl|=1;var n=Cl.transition,r=yt;try{if(Cl.transition=null,yt=1,e)return e()}finally{yt=r,Cl.transition=n,0===(6&(Nl=t))&&za()}}function dc(){Ol=Ll.current,wa(Ll)}function pc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,aa(n)),null!==xl)for(n=xl.return;null!==n;){var r=n;switch(ti(r),r.tag){case 1:null!==(r=r.type.childContextTypes)&&void 0!==r&&La();break;case 3:ao(),wa(Ia),wa(Na),uo();break;case 5:oo(r);break;case 4:ao();break;case 13:case 19:wa(so);break;case 10:vi(r.type._context);break;case 22:case 23:dc()}n=n.return}if(Il=e,xl=e=Lc(e.current,null),Rl=Ol=t,Pl=0,Dl=null,Ul=Fl=Ml=0,Gl=Bl=null,null!==_i){for(t=0;t<_i.length;t++)if(null!==(r=(n=_i[t]).interleaved)){n.interleaved=null;var a=r.next,i=n.pending;if(null!==i){var o=i.next;i.next=a,r.next=o}n.pending=r}_i=null}return e}function mc(e,t){for(;;){var n=xl;try{if(Si(),po.current=os,Eo){for(var r=ho.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}Eo=!1}if(go=0,bo=fo=ho=null,yo=!1,To=0,_l.current=null,null===n||null===n.return){Pl=1,Dl=t,xl=null;break}e:{var o=e,s=n.return,l=n,c=t;if(t=Rl,l.flags|=32768,null!==c&&"object"===typeof c&&"function"===typeof c.then){var u=c,d=l,p=d.tag;if(0===(1&d.mode)&&(0===p||11===p||15===p)){var m=d.alternate;m?(d.updateQueue=m.updateQueue,d.memoizedState=m.memoizedState,d.lanes=m.lanes):(d.updateQueue=null,d.memoizedState=null)}var g=bs(s);if(null!==g){g.flags&=-257,Es(g,s,l,0,t),1&g.mode&&fs(o,u,t),c=u;var h=(t=g).updateQueue;if(null===h){var f=new Set;f.add(c),t.updateQueue=f}else h.add(c);break e}if(0===(1&t)){fs(o,u,t),hc();break e}c=Error(i(426))}else if(ai&&1&l.mode){var b=bs(s);if(null!==b){0===(65536&b.flags)&&(b.flags|=256),Es(b,s,l,0,t),gi(us(c,l));break e}}o=c=us(c,l),4!==Pl&&(Pl=2),null===Bl?Bl=[o]:Bl.push(o),o=s;do{switch(o.tag){case 3:o.flags|=65536,t&=-t,o.lanes|=t,Mi(o,gs(0,c,t));break e;case 1:l=c;var E=o.type,y=o.stateNode;if(0===(128&o.flags)&&("function"===typeof E.getDerivedStateFromError||null!==y&&"function"===typeof y.componentDidCatch&&(null===Wl||!Wl.has(y)))){o.flags|=65536,t&=-t,o.lanes|=t,Mi(o,hs(o,l,t));break e}}o=o.return}while(null!==o)}Tc(n)}catch(T){t=T,xl===n&&null!==n&&(xl=n=n.return);continue}break}}function gc(){var e=wl.current;return wl.current=os,null===e?os:e}function hc(){0!==Pl&&3!==Pl&&2!==Pl||(Pl=4),null===Il||0===(268435455&Ml)&&0===(268435455&Fl)||sc(Il,Rl)}function fc(e,t){var n=Nl;Nl|=2;var r=gc();for(Il===e&&Rl===t||($l=null,pc(e,t));;)try{bc();break}catch(a){mc(e,a)}if(Si(),Nl=n,wl.current=r,null!==xl)throw Error(i(261));return Il=null,Rl=0,Pl}function bc(){for(;null!==xl;)yc(xl)}function Ec(){for(;null!==xl&&!Xe();)yc(xl)}function yc(e){var t=Al(e.alternate,e,Ol);e.memoizedProps=e.pendingProps,null===t?Tc(e):xl=t,_l.current=null}function Tc(e){var t=e;do{var n=t.alternate;if(e=t.return,0===(32768&t.flags)){if(null!==(n=qs(n,t,Ol)))return void(xl=n)}else{if(null!==(n=Ks(n,t)))return n.flags&=32767,void(xl=n);if(null===e)return Pl=6,void(xl=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(xl=t);xl=t=e}while(null!==t);0===Pl&&(Pl=5)}function Sc(e,t,n){var r=yt,a=Cl.transition;try{Cl.transition=null,yt=1,function(e,t,n,r){do{vc()}while(null!==Kl);if(0!==(6&Nl))throw Error(i(327));n=e.finishedWork;var a=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null,e.callbackPriority=0;var o=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var a=31-ot(n),i=1<<a;t[a]=0,r[a]=-1,e[a]=-1,n&=~i}}(e,o),e===Il&&(xl=Il=null,Rl=0),0===(2064&n.subtreeFlags)&&0===(2064&n.flags)||ql||(ql=!0,Ic(tt,(function(){return vc(),null}))),o=0!==(15990&n.flags),0!==(15990&n.subtreeFlags)||o){o=Cl.transition,Cl.transition=null;var s=yt;yt=1;var l=Nl;Nl|=4,_l.current=null,function(e,t){if(ea=Vt,mr(e=pr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch(S){n=null;break e}var s=0,l=-1,c=-1,u=0,d=0,p=e,m=null;t:for(;;){for(var g;p!==n||0!==a&&3!==p.nodeType||(l=s+a),p!==o||0!==r&&3!==p.nodeType||(c=s+r),3===p.nodeType&&(s+=p.nodeValue.length),null!==(g=p.firstChild);)m=p,p=g;for(;;){if(p===e)break t;if(m===n&&++u===a&&(l=s),m===o&&++d===r&&(c=s),null!==(g=p.nextSibling))break;m=(p=m).parentNode}p=g}n=-1===l||-1===c?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(ta={focusedElem:e,selectionRange:n},Vt=!1,Qs=t;null!==Qs;)if(e=(t=Qs).child,0!==(1028&t.subtreeFlags)&&null!==e)e.return=t,Qs=e;else for(;null!==Qs;){t=Qs;try{var h=t.alternate;if(0!==(1024&t.flags))switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==h){var f=h.memoizedProps,b=h.memoizedState,E=t.stateNode,y=E.getSnapshotBeforeUpdate(t.elementType===t.type?f:fi(t.type,f),b);E.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var T=t.stateNode.containerInfo;1===T.nodeType?T.textContent="":9===T.nodeType&&T.documentElement&&T.removeChild(T.documentElement);break;default:throw Error(i(163))}}catch(S){kc(t,t.return,S)}if(null!==(e=t.sibling)){e.return=t.return,Qs=e;break}Qs=t.return}h=tl,tl=!1}(e,n),fl(n,e),gr(ta),Vt=!!ea,ta=ea=null,e.current=n,El(n,e,a),Ye(),Nl=l,yt=s,Cl.transition=o}else e.current=n;if(ql&&(ql=!1,Kl=e,Xl=a),0===(o=e.pendingLanes)&&(Wl=null),function(e){if(it&&"function"===typeof it.onCommitFiberRoot)try{it.onCommitFiberRoot(at,e,void 0,128===(128&e.current.flags))}catch(t){}}(n.stateNode),rc(e,Ze()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)r((a=t[n]).value,{componentStack:a.stack,digest:a.digest});if(Vl)throw Vl=!1,e=jl,jl=null,e;0!==(1&Xl)&&0!==e.tag&&vc(),0!==(1&(o=e.pendingLanes))?e===Zl?Yl++:(Yl=0,Zl=e):Yl=0,za()}(e,t,n,r)}finally{Cl.transition=a,yt=r}return null}function vc(){if(null!==Kl){var e=Tt(Xl),t=Cl.transition,n=yt;try{if(Cl.transition=null,yt=16>e?16:e,null===Kl)var r=!1;else{if(e=Kl,Kl=null,Xl=0,0!==(6&Nl))throw Error(i(331));var a=Nl;for(Nl|=4,Qs=e.current;null!==Qs;){var o=Qs,s=o.child;if(0!==(16&Qs.flags)){var l=o.deletions;if(null!==l){for(var c=0;c<l.length;c++){var u=l[c];for(Qs=u;null!==Qs;){var d=Qs;switch(d.tag){case 0:case 11:case 15:nl(8,d,o)}var p=d.child;if(null!==p)p.return=d,Qs=p;else for(;null!==Qs;){var m=(d=Qs).sibling,g=d.return;if(il(d),d===u){Qs=null;break}if(null!==m){m.return=g,Qs=m;break}Qs=g}}}var h=o.alternate;if(null!==h){var f=h.child;if(null!==f){h.child=null;do{var b=f.sibling;f.sibling=null,f=b}while(null!==f)}}Qs=o}}if(0!==(2064&o.subtreeFlags)&&null!==s)s.return=o,Qs=s;else e:for(;null!==Qs;){if(0!==(2048&(o=Qs).flags))switch(o.tag){case 0:case 11:case 15:nl(9,o,o.return)}var E=o.sibling;if(null!==E){E.return=o.return,Qs=E;break e}Qs=o.return}}var y=e.current;for(Qs=y;null!==Qs;){var T=(s=Qs).child;if(0!==(2064&s.subtreeFlags)&&null!==T)T.return=s,Qs=T;else e:for(s=y;null!==Qs;){if(0!==(2048&(l=Qs).flags))try{switch(l.tag){case 0:case 11:case 15:rl(9,l)}}catch(v){kc(l,l.return,v)}if(l===s){Qs=null;break e}var S=l.sibling;if(null!==S){S.return=l.return,Qs=S;break e}Qs=l.return}}if(Nl=a,za(),it&&"function"===typeof it.onPostCommitFiberRoot)try{it.onPostCommitFiberRoot(at,e)}catch(v){}r=!0}return r}finally{yt=n,Cl.transition=t}}return!1}function Ac(e,t,n){e=Pi(e,t=gs(0,t=us(n,t),1),1),t=ec(),null!==e&&(bt(e,1,t),rc(e,t))}function kc(e,t,n){if(3===e.tag)Ac(e,e,n);else for(;null!==t;){if(3===t.tag){Ac(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"===typeof t.type.getDerivedStateFromError||"function"===typeof r.componentDidCatch&&(null===Wl||!Wl.has(r))){t=Pi(t,e=hs(t,e=us(n,e),1),1),e=ec(),null!==t&&(bt(t,1,e),rc(t,e));break}}t=t.return}}function wc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ec(),e.pingedLanes|=e.suspendedLanes&n,Il===e&&(Rl&n)===n&&(4===Pl||3===Pl&&(130023424&Rl)===Rl&&500>Ze()-Hl?pc(e,0):Ul|=n),rc(e,t)}function _c(e,t){0===t&&(0===(1&e.mode)?t=1:(t=ut,0===(130023424&(ut<<=1))&&(ut=4194304)));var n=ec();null!==(e=Ii(e,t))&&(bt(e,t,n),rc(e,n))}function Cc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),_c(e,n)}function Nc(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(i(314))}null!==r&&r.delete(t),_c(e,n)}function Ic(e,t){return qe(e,t)}function xc(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Rc(e,t,n,r){return new xc(e,t,n,r)}function Oc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Lc(e,t){var n=e.alternate;return null===n?((n=Rc(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Pc(e,t,n,r,a,o){var s=2;if(r=e,"function"===typeof e)Oc(e)&&(s=1);else if("string"===typeof e)s=5;else e:switch(e){case A:return Dc(n.children,a,o,t);case k:s=8,a|=8;break;case w:return(e=Rc(12,n,t,2|a)).elementType=w,e.lanes=o,e;case I:return(e=Rc(13,n,t,a)).elementType=I,e.lanes=o,e;case x:return(e=Rc(19,n,t,a)).elementType=x,e.lanes=o,e;case L:return Mc(n,a,o,t);default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case _:s=10;break e;case C:s=9;break e;case N:s=11;break e;case R:s=14;break e;case O:s=16,r=null;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Rc(s,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Dc(e,t,n,r){return(e=Rc(7,e,r,t)).lanes=n,e}function Mc(e,t,n,r){return(e=Rc(22,e,r,t)).elementType=L,e.lanes=n,e.stateNode={isHidden:!1},e}function Fc(e,t,n){return(e=Rc(6,e,null,t)).lanes=n,e}function Uc(e,t,n){return(t=Rc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Bc(e,t,n,r,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ft(0),this.expirationTimes=ft(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ft(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function Gc(e,t,n,r,a,i,o,s,l){return e=new Bc(e,t,n,s,l),1===t?(t=1,!0===i&&(t|=8)):t=0,i=Rc(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ri(i),e}function Hc(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:v,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function zc(e){if(!e)return Ca;e:{if(ze(e=e._reactInternals)!==e||1!==e.tag)throw Error(i(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Oa(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(i(171))}if(1===e.tag){var n=e.type;if(Oa(n))return Da(e,n,t)}return t}function $c(e,t,n,r,a,i,o,s,l){return(e=Gc(n,r,!0,e,0,i,0,s,l)).context=zc(null),n=e.current,(i=Li(r=ec(),a=tc(n))).callback=void 0!==t&&null!==t?t:null,Pi(n,i,a),e.current.lanes=a,bt(e,a,r),rc(e,r),e}function Vc(e,t,n,r){var a=t.current,i=ec(),o=tc(a);return n=zc(n),null===t.context?t.context=n:t.pendingContext=n,(t=Li(i,o)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Pi(a,t,o))&&(nc(e,a,o,i),Di(e,a,o)),o}function jc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Wc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function qc(e,t){Wc(e,t),(e=e.alternate)&&Wc(e,t)}Al=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||Ia.current)Ts=!0;else{if(0===(e.lanes&n)&&0===(128&t.flags))return Ts=!1,function(e,t,n){switch(t.tag){case 3:xs(t),mi();break;case 5:io(t);break;case 1:Oa(t.type)&&Ma(t);break;case 4:ro(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,a=t.memoizedProps.value;_a(bi,r._currentValue),r._currentValue=a;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(_a(so,1&so.current),t.flags|=128,null):0!==(n&t.child.childLanes)?Fs(e,t,n):(_a(so,1&so.current),null!==(e=Vs(e,t,n))?e.sibling:null);_a(so,1&so.current);break;case 19:if(r=0!==(n&t.childLanes),0!==(128&e.flags)){if(r)return zs(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),_a(so,so.current),r)break;return null;case 22:case 23:return t.lanes=0,ws(e,t,n)}return Vs(e,t,n)}(e,t,n);Ts=0!==(131072&e.flags)}else Ts=!1,ai&&0!==(1048576&t.flags)&&Ja(t,Wa,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;$s(e,t),e=t.pendingProps;var a=Ra(t,Na.current);ki(t,n),a=ko(null,t,r,e,a,n);var o=wo();return t.flags|=1,"object"===typeof a&&null!==a&&"function"===typeof a.render&&void 0===a.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Oa(r)?(o=!0,Ma(t)):o=!1,t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,Ri(t),a.updater=Hi,t.stateNode=a,a._reactInternals=t,ji(t,r,e,n),t=Is(null,t,r,!0,o,n)):(t.tag=0,ai&&o&&ei(t),Ss(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch($s(e,t),e=t.pendingProps,r=(a=r._init)(r._payload),t.type=r,a=t.tag=function(e){if("function"===typeof e)return Oc(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===N)return 11;if(e===R)return 14}return 2}(r),e=fi(r,e),a){case 0:t=Cs(null,t,r,e,n);break e;case 1:t=Ns(null,t,r,e,n);break e;case 11:t=vs(null,t,r,e,n);break e;case 14:t=As(null,t,r,fi(r.type,e),n);break e}throw Error(i(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,Cs(e,t,r,a=t.elementType===r?a:fi(r,a),n);case 1:return r=t.type,a=t.pendingProps,Ns(e,t,r,a=t.elementType===r?a:fi(r,a),n);case 3:e:{if(xs(t),null===e)throw Error(i(387));r=t.pendingProps,a=(o=t.memoizedState).element,Oi(e,t),Fi(t,r,null,n);var s=t.memoizedState;if(r=s.element,o.isDehydrated){if(o={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=o,t.memoizedState=o,256&t.flags){t=Rs(e,t,r,n,a=us(Error(i(423)),t));break e}if(r!==a){t=Rs(e,t,r,n,a=us(Error(i(424)),t));break e}for(ri=ca(t.stateNode.containerInfo.firstChild),ni=t,ai=!0,ii=null,n=Zi(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(mi(),r===a){t=Vs(e,t,n);break e}Ss(e,t,r,n)}t=t.child}return t;case 5:return io(t),null===e&&ci(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,s=a.children,na(r,a)?s=null:null!==o&&na(r,o)&&(t.flags|=32),_s(e,t),Ss(e,t,s,n),t.child;case 6:return null===e&&ci(t),null;case 13:return Fs(e,t,n);case 4:return ro(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Yi(t,null,r,n):Ss(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,vs(e,t,r,a=t.elementType===r?a:fi(r,a),n);case 7:return Ss(e,t,t.pendingProps,n),t.child;case 8:case 12:return Ss(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,o=t.memoizedProps,s=a.value,_a(bi,r._currentValue),r._currentValue=s,null!==o)if(sr(o.value,s)){if(o.children===a.children&&!Ia.current){t=Vs(e,t,n);break e}}else for(null!==(o=t.child)&&(o.return=t);null!==o;){var l=o.dependencies;if(null!==l){s=o.child;for(var c=l.firstContext;null!==c;){if(c.context===r){if(1===o.tag){(c=Li(-1,n&-n)).tag=2;var u=o.updateQueue;if(null!==u){var d=(u=u.shared).pending;null===d?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}o.lanes|=n,null!==(c=o.alternate)&&(c.lanes|=n),Ai(o.return,n,t),l.lanes|=n;break}c=c.next}}else if(10===o.tag)s=o.type===t.type?null:o.child;else if(18===o.tag){if(null===(s=o.return))throw Error(i(341));s.lanes|=n,null!==(l=s.alternate)&&(l.lanes|=n),Ai(s,n,t),s=o.sibling}else s=o.child;if(null!==s)s.return=o;else for(s=o;null!==s;){if(s===t){s=null;break}if(null!==(o=s.sibling)){o.return=s.return,s=o;break}s=s.return}o=s}Ss(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,ki(t,n),r=r(a=wi(a)),t.flags|=1,Ss(e,t,r,n),t.child;case 14:return a=fi(r=t.type,t.pendingProps),As(e,t,r,a=fi(r.type,a),n);case 15:return ks(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:fi(r,a),$s(e,t),t.tag=1,Oa(r)?(e=!0,Ma(t)):e=!1,ki(t,n),$i(t,r,a),ji(t,r,a,n),Is(null,t,r,!0,e,n);case 19:return zs(e,t,n);case 22:return ws(e,t,n)}throw Error(i(156,t.tag))};var Kc="function"===typeof reportError?reportError:function(e){console.error(e)};function Xc(e){this._internalRoot=e}function Yc(e){this._internalRoot=e}function Zc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Qc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Jc(){}function eu(e,t,n,r,a){var i=n._reactRootContainer;if(i){var o=i;if("function"===typeof a){var s=a;a=function(){var e=jc(o);s.call(e)}}Vc(t,o,e,a)}else o=function(e,t,n,r,a){if(a){if("function"===typeof r){var i=r;r=function(){var e=jc(o);i.call(e)}}var o=$c(t,r,e,0,null,!1,0,"",Jc);return e._reactRootContainer=o,e[ga]=o.current,zr(8===e.nodeType?e.parentNode:e),uc(),o}for(;a=e.lastChild;)e.removeChild(a);if("function"===typeof r){var s=r;r=function(){var e=jc(l);s.call(e)}}var l=Gc(e,0,!1,null,0,!1,0,"",Jc);return e._reactRootContainer=l,e[ga]=l.current,zr(8===e.nodeType?e.parentNode:e),uc((function(){Vc(t,l,n,r)})),l}(n,t,e,a,r);return jc(o)}Yc.prototype.render=Xc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(i(409));Vc(e,t,null,null)},Yc.prototype.unmount=Xc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;uc((function(){Vc(null,e,null,null)})),t[ga]=null}},Yc.prototype.unstable_scheduleHydration=function(e){if(e){var t=kt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Lt.length&&0!==t&&t<Lt[n].priority;n++);Lt.splice(n,0,e),0===n&&Ft(e)}},St=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(Et(t,1|n),rc(t,Ze()),0===(6&Nl)&&(zl=Ze()+500,za()))}break;case 13:uc((function(){var t=Ii(e,1);if(null!==t){var n=ec();nc(t,e,1,n)}})),qc(e,1)}},vt=function(e){if(13===e.tag){var t=Ii(e,134217728);if(null!==t)nc(t,e,134217728,ec());qc(e,134217728)}},At=function(e){if(13===e.tag){var t=tc(e),n=Ii(e,t);if(null!==n)nc(n,e,t,ec());qc(e,t)}},kt=function(){return yt},wt=function(e,t){var n=yt;try{return yt=e,t()}finally{yt=n}},ve=function(e,t,n){switch(t){case"input":if(Q(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=Sa(r);if(!a)throw Error(i(90));q(r),Q(r,a)}}}break;case"textarea":ie(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Ne=cc,Ie=uc;var tu={usingClientEntryPoint:!1,Events:[ya,Ta,Sa,_e,Ce,cc]},nu={findFiberByHostInstance:Ea,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},ru={bundleType:nu.bundleType,version:nu.version,rendererPackageName:nu.rendererPackageName,rendererConfig:nu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:T.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=je(e))?null:e.stateNode},findFiberByHostInstance:nu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var au=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!au.isDisabled&&au.supportsFiber)try{at=au.inject(ru),it=au}catch(ue){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tu,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Zc(t))throw Error(i(200));return Hc(e,t,null,n)},t.createRoot=function(e,t){if(!Zc(e))throw Error(i(299));var n=!1,r="",a=Kc;return null!==t&&void 0!==t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(a=t.onRecoverableError)),t=Gc(e,1,!1,null,0,n,0,r,a),e[ga]=t.current,zr(8===e.nodeType?e.parentNode:e),new Xc(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"===typeof e.render)throw Error(i(188));throw e=Object.keys(e).join(","),Error(i(268,e))}return e=null===(e=je(t))?null:e.stateNode},t.flushSync=function(e){return uc(e)},t.hydrate=function(e,t,n){if(!Qc(t))throw Error(i(200));return eu(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Zc(e))throw Error(i(405));var r=null!=n&&n.hydratedSources||null,a=!1,o="",s=Kc;if(null!==n&&void 0!==n&&(!0===n.unstable_strictMode&&(a=!0),void 0!==n.identifierPrefix&&(o=n.identifierPrefix),void 0!==n.onRecoverableError&&(s=n.onRecoverableError)),t=$c(t,null,e,1,null!=n?n:null,a,0,o,s),e[ga]=t.current,zr(e),r)for(e=0;e<r.length;e++)a=(a=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Yc(t)},t.render=function(e,t,n){if(!Qc(t))throw Error(i(200));return eu(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Qc(e))throw Error(i(40));return!!e._reactRootContainer&&(uc((function(){eu(null,null,e,!1,(function(){e._reactRootContainer=null,e[ga]=null}))})),!0)},t.unstable_batchedUpdates=cc,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Qc(n))throw Error(i(200));if(null==e||void 0===e._reactInternals)throw Error(i(38));return eu(e,t,n,!1,r)},t.version="18.2.0-next-9e3b772b8-20220608"},1250:function(e,t,n){"use strict";var r=n(4164);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},4164:function(e,t,n){"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4463)},7574:function(e,t){"use strict";var n,r=Symbol.for("react.element"),a=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),c=Symbol.for("react.context"),u=Symbol.for("react.server_context"),d=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),m=Symbol.for("react.suspense_list"),g=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),f=Symbol.for("react.offscreen");function b(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case i:case s:case o:case p:case m:return e;default:switch(e=e&&e.$$typeof){case u:case c:case d:case h:case g:case l:return e;default:return t}}case a:return t}}}n=Symbol.for("react.module.reference"),t.ContextConsumer=c,t.ContextProvider=l,t.Element=r,t.ForwardRef=d,t.Fragment=i,t.Lazy=h,t.Memo=g,t.Portal=a,t.Profiler=s,t.StrictMode=o,t.Suspense=p,t.SuspenseList=m,t.isAsyncMode=function(){return!1},t.isConcurrentMode=function(){return!1},t.isContextConsumer=function(e){return b(e)===c},t.isContextProvider=function(e){return b(e)===l},t.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return b(e)===d},t.isFragment=function(e){return b(e)===i},t.isLazy=function(e){return b(e)===h},t.isMemo=function(e){return b(e)===g},t.isPortal=function(e){return b(e)===a},t.isProfiler=function(e){return b(e)===s},t.isStrictMode=function(e){return b(e)===o},t.isSuspense=function(e){return b(e)===p},t.isSuspenseList=function(e){return b(e)===m},t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===i||e===s||e===o||e===p||e===m||e===f||"object"===typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===g||e.$$typeof===l||e.$$typeof===c||e.$$typeof===d||e.$$typeof===n||void 0!==e.getModuleId)},t.typeOf=b},8599:function(e,t,n){"use strict";e.exports=n(7574)},8171:function(e,t,n){var r=n(1065);function a(e,t){var n,a=null;if(!e||"string"!==typeof e)return a;for(var i,o,s=r(e),l="function"===typeof t,c=0,u=s.length;c<u;c++)i=(n=s[c]).property,o=n.value,l?t(i,o,n):o&&(a||(a={}),a[i]=o);return a}e.exports=a,e.exports.default=a},6374:function(e,t,n){"use strict";var r=n(2791),a=Symbol.for("react.element"),i=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,s=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,i={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)o.call(t,r)&&!l.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===i[r]&&(i[r]=t[r]);return{$$typeof:a,type:e,key:c,ref:u,props:i,_owner:s.current}}t.Fragment=i,t.jsx=c,t.jsxs=c},9117:function(e,t){"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),m=Symbol.iterator;var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,f={};function b(e,t,n){this.props=e,this.context=t,this.refs=f,this.updater=n||g}function E(){}function y(e,t,n){this.props=e,this.context=t,this.refs=f,this.updater=n||g}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},E.prototype=b.prototype;var T=y.prototype=new E;T.constructor=y,h(T,b.prototype),T.isPureReactComponent=!0;var S=Array.isArray,v=Object.prototype.hasOwnProperty,A={current:null},k={key:!0,ref:!0,__self:!0,__source:!0};function w(e,t,r){var a,i={},o=null,s=null;if(null!=t)for(a in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(o=""+t.key),t)v.call(t,a)&&!k.hasOwnProperty(a)&&(i[a]=t[a]);var l=arguments.length-2;if(1===l)i.children=r;else if(1<l){for(var c=Array(l),u=0;u<l;u++)c[u]=arguments[u+2];i.children=c}if(e&&e.defaultProps)for(a in l=e.defaultProps)void 0===i[a]&&(i[a]=l[a]);return{$$typeof:n,type:e,key:o,ref:s,props:i,_owner:A.current}}function _(e){return"object"===typeof e&&null!==e&&e.$$typeof===n}var C=/\/+/g;function N(e,t){return"object"===typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function I(e,t,a,i,o){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case n:case r:l=!0}}if(l)return o=o(l=e),e=""===i?"."+N(l,0):i,S(o)?(a="",null!=e&&(a=e.replace(C,"$&/")+"/"),I(o,t,a,"",(function(e){return e}))):null!=o&&(_(o)&&(o=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(o,a+(!o.key||l&&l.key===o.key?"":(""+o.key).replace(C,"$&/")+"/")+e)),t.push(o)),1;if(l=0,i=""===i?".":i+":",S(e))for(var c=0;c<e.length;c++){var u=i+N(s=e[c],c);l+=I(s,t,a,u,o)}else if(u=function(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=m&&e[m]||e["@@iterator"])?e:null}(e),"function"===typeof u)for(e=u.call(e),c=0;!(s=e.next()).done;)l+=I(s=s.value,t,a,u=i+N(s,c++),o);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function x(e,t,n){if(null==e)return e;var r=[],a=0;return I(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function R(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var O={current:null},L={transition:null},P={ReactCurrentDispatcher:O,ReactCurrentBatchConfig:L,ReactCurrentOwner:A};t.Children={map:x,forEach:function(e,t,n){x(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return x(e,(function(){t++})),t},toArray:function(e){return x(e,(function(e){return e}))||[]},only:function(e){if(!_(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=a,t.Profiler=o,t.PureComponent=y,t.StrictMode=i,t.Suspense=u,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=P,t.cloneElement=function(e,t,r){if(null===e||void 0===e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var a=h({},e.props),i=e.key,o=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(o=t.ref,s=A.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)v.call(t,c)&&!k.hasOwnProperty(c)&&(a[c]=void 0===t[c]&&void 0!==l?l[c]:t[c])}var c=arguments.length-2;if(1===c)a.children=r;else if(1<c){l=Array(c);for(var u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}return{$$typeof:n,type:e.type,key:i,ref:o,props:a,_owner:s}},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=w,t.createFactory=function(e){var t=w.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=_,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:R}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=L.transition;L.transition={};try{e()}finally{L.transition=t}},t.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")},t.useCallback=function(e,t){return O.current.useCallback(e,t)},t.useContext=function(e){return O.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return O.current.useDeferredValue(e)},t.useEffect=function(e,t){return O.current.useEffect(e,t)},t.useId=function(){return O.current.useId()},t.useImperativeHandle=function(e,t,n){return O.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return O.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return O.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return O.current.useMemo(e,t)},t.useReducer=function(e,t,n){return O.current.useReducer(e,t,n)},t.useRef=function(e){return O.current.useRef(e)},t.useState=function(e){return O.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return O.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return O.current.useTransition()},t.version="18.2.0"},2791:function(e,t,n){"use strict";e.exports=n(9117)},184:function(e,t,n){"use strict";e.exports=n(6374)},8959:function(e,t,n){"use strict";var r="object"===typeof globalThis?globalThis:"object"===typeof self?self:"object"===typeof window?window:"object"===typeof n.g?n.g:{},a=function(){var e="Prism"in r,t=e?r.Prism:void 0;return function(){e?r.Prism=t:delete r.Prism;e=void 0,t=void 0}}();r.Prism={manual:!0,disableWorkerMessageHandler:!0};var i=n(6913),o=n(5434),s=n(3264),l=n(2357),c=n(9625),u=n(3052),d=n(7556);a();var p={}.hasOwnProperty;function m(){}m.prototype=s;var g=new m;function h(e){if("function"!==typeof e||!e.displayName)throw new Error("Expected `function` for `grammar`, got `"+e+"`");void 0===g.languages[e.displayName]&&e(g)}e.exports=g,g.highlight=function(e,t){var n,r=s.highlight;if("string"!==typeof e)throw new Error("Expected `string` for `value`, got `"+e+"`");if("Object"===g.util.type(t))n=t,t=null;else{if("string"!==typeof t)throw new Error("Expected `string` for `name`, got `"+t+"`");if(!p.call(g.languages,t))throw new Error("Unknown language: `"+t+"` is not registered");n=g.languages[t]}return r.call(this,e,n,t)},g.register=h,g.alias=function(e,t){var n,r,a,i,o=g.languages,s=e;t&&((s={})[e]=t);for(n in s)for(r=s[n],a=(r="string"===typeof r?[r]:r).length,i=-1;++i<a;)o[r[i]]=o[n]},g.registered=function(e){if("string"!==typeof e)throw new Error("Expected `string` for `language`, got `"+e+"`");return p.call(g.languages,e)},g.listLanguages=function(){var e,t=g.languages,n=[];for(e in t)p.call(t,e)&&"object"===typeof t[e]&&n.push(e);return n},h(l),h(c),h(u),h(d),g.util.encode=function(e){return e},g.Token.stringify=function(e,t,n){var r;if("string"===typeof e)return{type:"text",value:e};if("Array"===g.util.type(e))return function(e,t){var n,r=[],a=e.length,i=-1;for(;++i<a;)""!==(n=e[i])&&null!==n&&void 0!==n&&r.push(n);i=-1,a=r.length;for(;++i<a;)n=r[i],r[i]=g.Token.stringify(n,t,r);return r}(e,t);r={type:e.type,content:g.Token.stringify(e.content,t,n),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:n},e.alias&&(r.classes=r.classes.concat(e.alias));return g.hooks.run("wrap",r),i(r.tag+"."+r.classes.join("."),function(e){var t;for(t in e)e[t]=o(e[t]);return e}(r.attributes),r.content)}},9158:function(e,t,n){"use strict";var r=n(8959);e.exports=r,r.register(n(9743)),r.register(n(6887)),r.register(n(8081)),r.register(n(2677)),r.register(n(2239)),r.register(n(3306)),r.register(n(5001)),r.register(n(6748)),r.register(n(4556)),r.register(n(5775)),r.register(n(118)),r.register(n(9134)),r.register(n(4144)),r.register(n(7209)),r.register(n(4865)),r.register(n(2083)),r.register(n(6054)),r.register(n(476)),r.register(n(9894)),r.register(n(4291)),r.register(n(3981)),r.register(n(9730)),r.register(n(7033)),r.register(n(7867)),r.register(n(9607)),r.register(n(150)),r.register(n(3098)),r.register(n(4786)),r.register(n(6938)),r.register(n(9784)),r.register(n(2689)),r.register(n(6514)),r.register(n(25)),r.register(n(7501)),r.register(n(272)),r.register(n(943)),r.register(n(9785)),r.register(n(9529)),r.register(n(1915)),r.register(n(3549)),r.register(n(4732)),r.register(n(6522)),r.register(n(3723)),r.register(n(423)),r.register(n(8593)),r.register(n(7916)),r.register(n(3281)),r.register(n(9333)),r.register(n(3524)),r.register(n(9689)),r.register(n(691)),r.register(n(4704)),r.register(n(3818)),r.register(n(583)),r.register(n(5462)),r.register(n(1717)),r.register(n(6655)),r.register(n(9442)),r.register(n(6412)),r.register(n(8818)),r.register(n(3386)),r.register(n(7837)),r.register(n(9845)),r.register(n(6268)),r.register(n(4326)),r.register(n(8331)),r.register(n(3596)),r.register(n(3972)),r.register(n(4665)),r.register(n(865)),r.register(n(6168)),r.register(n(3207)),r.register(n(6175)),r.register(n(4988)),r.register(n(2727)),r.register(n(4037)),r.register(n(9770)),r.register(n(1987)),r.register(n(1505)),r.register(n(8403)),r.register(n(9124)),r.register(n(8495)),r.register(n(1019)),r.register(n(3666)),r.register(n(5120)),r.register(n(214)),r.register(n(1903)),r.register(n(288)),r.register(n(78)),r.register(n(8558)),r.register(n(8430)),r.register(n(7986)),r.register(n(7865)),r.register(n(4490)),r.register(n(9233)),r.register(n(6647)),r.register(n(8237)),r.register(n(9814)),r.register(n(8661)),r.register(n(5727)),r.register(n(7761)),r.register(n(6722)),r.register(n(1469)),r.register(n(8340)),r.register(n(8925)),r.register(n(3298)),r.register(n(3390)),r.register(n(7145)),r.register(n(4600)),r.register(n(3409)),r.register(n(4197)),r.register(n(3269)),r.register(n(5543)),r.register(n(8428)),r.register(n(9285)),r.register(n(1570)),r.register(n(9298)),r.register(n(32)),r.register(n(6044)),r.register(n(1408)),r.register(n(750)),r.register(n(2327)),r.register(n(837)),r.register(n(7778)),r.register(n(2117)),r.register(n(3228)),r.register(n(765)),r.register(n(1905)),r.register(n(6776)),r.register(n(8714)),r.register(n(8471)),r.register(n(2286)),r.register(n(6513)),r.register(n(5999)),r.register(n(9405)),r.register(n(9135)),r.register(n(382)),r.register(n(1146)),r.register(n(3807)),r.register(n(3062)),r.register(n(5467)),r.register(n(2112)),r.register(n(1343)),r.register(n(6759)),r.register(n(9987)),r.register(n(7589)),r.register(n(7932)),r.register(n(595)),r.register(n(93)),r.register(n(4234)),r.register(n(1102)),r.register(n(2172)),r.register(n(1337)),r.register(n(5638)),r.register(n(54)),r.register(n(1741)),r.register(n(2089)),r.register(n(5739)),r.register(n(8347)),r.register(n(9899)),r.register(n(2420)),r.register(n(2019)),r.register(n(2618)),r.register(n(8659)),r.register(n(6e3)),r.register(n(7190)),r.register(n(1465)),r.register(n(9263)),r.register(n(4974)),r.register(n(6296)),r.register(n(6778)),r.register(n(6792)),r.register(n(6478)),r.register(n(6806)),r.register(n(347)),r.register(n(7976)),r.register(n(7484)),r.register(n(3205)),r.register(n(1797)),r.register(n(7241)),r.register(n(7304)),r.register(n(7613)),r.register(n(7363)),r.register(n(7953)),r.register(n(4986)),r.register(n(4970)),r.register(n(5725)),r.register(n(7415)),r.register(n(9164)),r.register(n(4973)),r.register(n(1344)),r.register(n(9862)),r.register(n(354)),r.register(n(883)),r.register(n(3983)),r.register(n(2935)),r.register(n(5888)),r.register(n(9596)),r.register(n(6395)),r.register(n(7679)),r.register(n(2406)),r.register(n(2014)),r.register(n(548)),r.register(n(6023)),r.register(n(4005)),r.register(n(9982)),r.register(n(4184)),r.register(n(8228)),r.register(n(7937)),r.register(n(5728)),r.register(n(1528)),r.register(n(6326)),r.register(n(771)),r.register(n(4840)),r.register(n(1357)),r.register(n(7719)),r.register(n(2284)),r.register(n(1254)),r.register(n(6442)),r.register(n(2034)),r.register(n(9676)),r.register(n(9895)),r.register(n(3775)),r.register(n(5767)),r.register(n(9093)),r.register(n(8768)),r.register(n(8517)),r.register(n(7942)),r.register(n(4457)),r.register(n(7740)),r.register(n(4038)),r.register(n(4585)),r.register(n(692)),r.register(n(3171)),r.register(n(2257)),r.register(n(5559)),r.register(n(9547)),r.register(n(9338)),r.register(n(5515)),r.register(n(4207)),r.register(n(7492)),r.register(n(6453)),r.register(n(6686)),r.register(n(7369)),r.register(n(7191)),r.register(n(3089)),r.register(n(4411)),r.register(n(9669)),r.register(n(4773)),r.register(n(3210)),r.register(n(2613)),r.register(n(4317)),r.register(n(1927)),r.register(n(6845)),r.register(n(4941)),r.register(n(9803)),r.register(n(1107)),r.register(n(1413)),r.register(n(3555)),r.register(n(7117)),r.register(n(3244)),r.register(n(3673)),r.register(n(8953)),r.register(n(6747)),r.register(n(4211)),r.register(n(8832)),r.register(n(8186)),r.register(n(3679)),r.register(n(1752)),r.register(n(243)),r.register(n(5133)),r.register(n(2195)),r.register(n(3672))},9743:function(e){"use strict";function t(e){e.languages.abap={comment:/^\*.*/m,string:/(`|')(?:\\.|(?!\1)[^\\\r\n])*\1/,"string-template":{pattern:/([|}])(?:\\.|[^\\|{\r\n])*(?=[|{])/,lookbehind:!0,alias:"string"},"eol-comment":{pattern:/(^|\s)".*/m,lookbehind:!0,alias:"comment"},keyword:{pattern:/(\s|\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\/MM\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\/DD\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\/MM\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\/DD\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\b/i,lookbehind:!0},number:/\b\d+\b/,operator:{pattern:/(\s)(?:\*\*?|<[=>]?|>=?|\?=|[-+\/=])(?=\s)/,lookbehind:!0},"string-operator":{pattern:/(\s)&&?(?=\s)/,lookbehind:!0,alias:"keyword"},"token-operator":[{pattern:/(\w)(?:->?|=>|[~|{}])(?=\w)/,lookbehind:!0,alias:"punctuation"},{pattern:/[|{}]/,alias:"punctuation"}],punctuation:/[,.:()]/}}e.exports=t,t.displayName="abap",t.aliases=[]},6887:function(e){"use strict";function t(e){!function(e){var t="(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)";e.languages.abnf={comment:/;.*/,string:{pattern:/(?:%[is])?"[^"\n\r]*"/,greedy:!0,inside:{punctuation:/^%[is]/}},range:{pattern:/%(?:b[01]+-[01]+|d\d+-\d+|x[A-F\d]+-[A-F\d]+)/i,alias:"number"},terminal:{pattern:/%(?:b[01]+(?:\.[01]+)*|d\d+(?:\.\d+)*|x[A-F\d]+(?:\.[A-F\d]+)*)/i,alias:"number"},repetition:{pattern:/(^|[^\w-])(?:\d*\*\d*|\d+)/,lookbehind:!0,alias:"operator"},definition:{pattern:/(^[ \t]*)(?:[a-z][\w-]*|<[^<>\r\n]*>)(?=\s*=)/m,lookbehind:!0,alias:"keyword",inside:{punctuation:/<|>/}},"core-rule":{pattern:RegExp("(?:(^|[^<\\w-])"+t+"|<"+t+">)(?![\\w-])","i"),lookbehind:!0,alias:["rule","constant"],inside:{punctuation:/<|>/}},rule:{pattern:/(^|[^<\w-])[a-z][\w-]*|<[^<>\r\n]*>/i,lookbehind:!0,inside:{punctuation:/<|>/}},operator:/=\/?|\//,punctuation:/[()\[\]]/}}(e)}e.exports=t,t.displayName="abnf",t.aliases=[]},8081:function(e){"use strict";function t(e){e.languages.actionscript=e.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),e.languages.actionscript["class-name"].alias="function",delete e.languages.actionscript.parameter,delete e.languages.actionscript["literal-property"],e.languages.markup&&e.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:e.languages.markup}})}e.exports=t,t.displayName="actionscript",t.aliases=[]},2677:function(e){"use strict";function t(e){e.languages.ada={comment:/--.*/,string:/"(?:""|[^"\r\f\n])*"/,number:[{pattern:/\b\d(?:_?\d)*#[\dA-F](?:_?[\dA-F])*(?:\.[\dA-F](?:_?[\dA-F])*)?#(?:E[+-]?\d(?:_?\d)*)?/i},{pattern:/\b\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:E[+-]?\d(?:_?\d)*)?\b/i}],"attr-name":/\b'\w+/,keyword:/\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|new|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|return|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\b/i,boolean:/\b(?:false|true)\b/i,operator:/<[=>]?|>=?|=>?|:=|\/=?|\*\*?|[&+-]/,punctuation:/\.\.?|[,;():]/,char:/'.'/,variable:/\b[a-z](?:\w)*\b/i}}e.exports=t,t.displayName="ada",t.aliases=[]},2239:function(e){"use strict";function t(e){!function(e){e.languages.agda={comment:/\{-[\s\S]*?(?:-\}|$)|--.*/,string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},punctuation:/[(){}\u2983\u2984.;@]/,"class-name":{pattern:/((?:data|record) +)\S+/,lookbehind:!0},function:{pattern:/(^[ \t]*)(?!\s)[^:\r\n]+(?=:)/m,lookbehind:!0},operator:{pattern:/(^\s*|\s)(?:[=|:\u2200\u2192\u03bb\\?_]|->)(?=\s)/,lookbehind:!0},keyword:/\b(?:Set|abstract|constructor|data|eta-equality|field|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\b/}}(e)}e.exports=t,t.displayName="agda",t.aliases=[]},3306:function(e){"use strict";function t(e){e.languages.al={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,greedy:!0},function:{pattern:/(\b(?:event|procedure|trigger)\s+|(?:^|[^.])\.\s*)[a-z_]\w*(?=\s*\()/i,lookbehind:!0},keyword:[/\b(?:array|asserterror|begin|break|case|do|downto|else|end|event|exit|for|foreach|function|if|implements|in|indataset|interface|internal|local|of|procedure|program|protected|repeat|runonclient|securityfiltering|suppressdispose|temporary|then|to|trigger|until|var|while|with|withevents)\b/i,/\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\b/i],number:/\b(?:0x[\da-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)(?:F|LL?|U(?:LL?)?)?\b/i,boolean:/\b(?:false|true)\b/i,variable:/\b(?:Curr(?:FieldNo|Page|Report)|x?Rec|RequestOptionsPage)\b/,"class-name":/\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\b/i,operator:/\.\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\b(?:and|div|mod|not|or|xor)\b/i,punctuation:/[()\[\]{}:.;,]/}}e.exports=t,t.displayName="al",t.aliases=[]},5001:function(e){"use strict";function t(e){e.languages.antlr4={comment:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,string:{pattern:/'(?:\\.|[^\\'\r\n])*'/,greedy:!0},"character-class":{pattern:/\[(?:\\.|[^\\\]\r\n])*\]/,greedy:!0,alias:"regex",inside:{range:{pattern:/([^[]|(?:^|[^\\])(?:\\\\)*\\\[)-(?!\])/,lookbehind:!0,alias:"punctuation"},escape:/\\(?:u(?:[a-fA-F\d]{4}|\{[a-fA-F\d]+\})|[pP]\{[=\w-]+\}|[^\r\nupP])/,punctuation:/[\[\]]/}},action:{pattern:/\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\}/,greedy:!0,inside:{content:{pattern:/(\{)[\s\S]+(?=\})/,lookbehind:!0},punctuation:/[{}]/}},command:{pattern:/(->\s*(?!\s))(?:\s*(?:,\s*)?\b[a-z]\w*(?:\s*\([^()\r\n]*\))?)+(?=\s*;)/i,lookbehind:!0,inside:{function:/\b\w+(?=\s*(?:[,(]|$))/,punctuation:/[,()]/}},annotation:{pattern:/@\w+(?:::\w+)*/,alias:"keyword"},label:{pattern:/#[ \t]*\w+/,alias:"punctuation"},keyword:/\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\b/,definition:[{pattern:/\b[a-z]\w*(?=\s*:)/,alias:["rule","class-name"]},{pattern:/\b[A-Z]\w*(?=\s*:)/,alias:["token","constant"]}],constant:/\b[A-Z][A-Z_]*\b/,operator:/\.\.|->|[|~]|[*+?]\??/,punctuation:/[;:()=]/},e.languages.g4=e.languages.antlr4}e.exports=t,t.displayName="antlr4",t.aliases=["g4"]},6748:function(e){"use strict";function t(e){e.languages.apacheconf={comment:/#.*/,"directive-inline":{pattern:/(^[\t ]*)\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|Type|UserFile|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|Limit(?:InternalRecursion|Request(?:Body|Fields|FieldSize|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|SRPUnknownUserSeed|SRPVerifierFile|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UserName|UseStapling|VerifyClient|VerifyDepth)|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/im,lookbehind:!0,alias:"property"},"directive-block":{pattern:/<\/?\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\b.*>/i,inside:{"directive-block":{pattern:/^<\/?\w+/,inside:{punctuation:/^<\/?/},alias:"tag"},"directive-block-parameter":{pattern:/.*[^>]/,inside:{punctuation:/:/,string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}}},alias:"attr-value"},punctuation:/>/},alias:"tag"},"directive-flags":{pattern:/\[(?:[\w=],?)+\]/,alias:"keyword"},string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}},variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/,regex:/\^?.*\$|\^.*\$?/}}e.exports=t,t.displayName="apacheconf",t.aliases=[]},4556:function(e,t,n){"use strict";var r=n(7740);function a(e){e.register(r),function(e){var t=/\b(?:(?:after|before)(?=\s+[a-z])|abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|get(?=\s*[{};])|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|(?:inherited|with|without)\s+sharing)\b/i,n=/\b(?:(?=[a-z_]\w*\s*[<\[])|(?!<keyword>))[A-Z_]\w*(?:\s*\.\s*[A-Z_]\w*)*\b(?:\s*(?:\[\s*\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source.replace(/<keyword>/g,(function(){return t.source}));function r(e){return RegExp(e.replace(/<CLASS-NAME>/g,(function(){return n})),"i")}var a={keyword:t,punctuation:/[()\[\]{};,:.<>]/};e.languages.apex={comment:e.languages.clike.comment,string:e.languages.clike.string,sql:{pattern:/((?:[=,({:]|\breturn)\s*)\[[^\[\]]*\]/i,lookbehind:!0,greedy:!0,alias:"language-sql",inside:e.languages.sql},annotation:{pattern:/@\w+\b/,alias:"punctuation"},"class-name":[{pattern:r(/(\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\s+\w+\s+on)\s+)<CLASS-NAME>/.source),lookbehind:!0,inside:a},{pattern:r(/(\(\s*)<CLASS-NAME>(?=\s*\)\s*[\w(])/.source),lookbehind:!0,inside:a},{pattern:r(/<CLASS-NAME>(?=\s*\w+\s*[;=,(){:])/.source),inside:a}],trigger:{pattern:/(\btrigger\s+)\w+\b/i,lookbehind:!0,alias:"class-name"},keyword:t,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/i,number:/(?:\B\.\d+|\b\d+(?:\.\d+|L)?)\b/i,operator:/[!=](?:==?)?|\?\.?|&&|\|\||--|\+\+|[-+*/^&|]=?|:|<<?=?|>{1,3}=?/,punctuation:/[()\[\]{};,.]/}}(e)}e.exports=a,a.displayName="apex",a.aliases=[]},5775:function(e){"use strict";function t(e){e.languages.apl={comment:/(?:\u235d|#[! ]).*$/m,string:{pattern:/'(?:[^'\r\n]|'')*'/,greedy:!0},number:/\xaf?(?:\d*\.?\b\d+(?:e[+\xaf]?\d+)?|\xaf|\u221e)(?:j\xaf?(?:(?:\d+(?:\.\d+)?|\.\d+)(?:e[+\xaf]?\d+)?|\xaf|\u221e))?/i,statement:/:[A-Z][a-z][A-Za-z]*\b/,"system-function":{pattern:/\u2395[A-Z]+/i,alias:"function"},constant:/[\u236c\u233e#\u2395\u235e]/,function:/[-+\xd7\xf7\u2308\u230a\u2223|\u2373\u2378?*\u235f\u25cb!\u2339<\u2264=>\u2265\u2260\u2261\u2262\u220a\u2377\u222a\u2229~\u2228\u2227\u2371\u2372\u2374,\u236a\u233d\u2296\u2349\u2191\u2193\u2282\u2283\u2286\u2287\u2337\u234b\u2352\u22a4\u22a5\u2355\u234e\u22a3\u22a2\u2341\u2342\u2248\u236f\u2197\xa4\u2192]/,"monadic-operator":{pattern:/[\\\/\u233f\u2340\xa8\u2368\u2336&\u2225]/,alias:"operator"},"dyadic-operator":{pattern:/[.\u2363\u2360\u2364\u2218\u2338@\u233a\u2365]/,alias:"operator"},assignment:{pattern:/\u2190/,alias:"keyword"},punctuation:/[\[;\]()\u25c7\u22c4]/,dfn:{pattern:/[{}\u237a\u2375\u2376\u2379\u2207\u236b:]/,alias:"builtin"}}}e.exports=t,t.displayName="apl",t.aliases=[]},118:function(e){"use strict";function t(e){e.languages.applescript={comment:[/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,/--.+/,/#.+/],string:/"(?:\\.|[^"\\\r\n])*"/,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?\b/i,operator:[/[&=\u2260\u2264\u2265*+\-\/\xf7^]|[<>]=?/,/\b(?:(?:begin|end|start)s? with|(?:contains?|(?:does not|doesn't) contain)|(?:is|isn't|is not) (?:contained by|in)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:comes|(?:does not|doesn't) come) (?:after|before)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equal to|equals|is not|isn't)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|as|div|mod|not|or))\b/],keyword:/\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b/,"class-name":/\b(?:POSIX file|RGB color|alias|application|boolean|centimeters|centimetres|class|constant|cubic centimeters|cubic centimetres|cubic feet|cubic inches|cubic meters|cubic metres|cubic yards|date|degrees Celsius|degrees Fahrenheit|degrees Kelvin|feet|file|gallons|grams|inches|integer|kilograms|kilometers|kilometres|list|liters|litres|meters|metres|miles|number|ounces|pounds|quarts|real|record|reference|script|square feet|square kilometers|square kilometres|square meters|square metres|square miles|square yards|text|yards)\b/,punctuation:/[{}():,\xac\xab\xbb\u300a\u300b]/}}e.exports=t,t.displayName="applescript",t.aliases=[]},9134:function(e){"use strict";function t(e){e.languages.aql={comment:/\/\/.*|\/\*[\s\S]*?\*\//,property:{pattern:/([{,]\s*)(?:(?!\d)\w+|(["'\xb4`])(?:(?!\2)[^\\\r\n]|\\.)*\2)(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\.)*\1/,greedy:!0},identifier:{pattern:/([\xb4`])(?:(?!\1)[^\\\r\n]|\\.)*\1/,greedy:!0},variable:/@@?\w+/,keyword:[{pattern:/(\bWITH\s+)COUNT(?=\s+INTO\b)/i,lookbehind:!0},/\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_PATHS|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WINDOW|WITH)\b/i,{pattern:/(^|[^\w.[])(?:KEEP|PRUNE|SEARCH|TO)\b/i,lookbehind:!0},{pattern:/(^|[^\w.[])(?:CURRENT|NEW|OLD)\b/,lookbehind:!0},{pattern:/\bOPTIONS(?=\s*\{)/i}],function:/\b(?!\d)\w+(?=\s*\()/,boolean:/\b(?:false|true)\b/i,range:{pattern:/\.\./,alias:"operator"},number:[/\b0b[01]+/i,/\b0x[0-9a-f]+/i,/(?:\B\.\d+|\b(?:0|[1-9]\d*)(?:\.\d+)?)(?:e[+-]?\d+)?/i],operator:/\*{2,}|[=!]~|[!=<>]=?|&&|\|\||[-+*/%]/,punctuation:/::|[?.:,;()[\]{}]/}}e.exports=t,t.displayName="aql",t.aliases=[]},4144:function(e,t,n){"use strict";var r=n(8593);function a(e){e.register(r),e.languages.arduino=e.languages.extend("cpp",{keyword:/\b(?:String|array|bool|boolean|break|byte|case|catch|continue|default|do|double|else|finally|for|function|goto|if|in|instanceof|int|integer|long|loop|new|null|return|setup|string|switch|throw|try|void|while|word)\b/,constant:/\b(?:ANALOG_MESSAGE|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FIRMATA_STRING|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL2V56|LED_BUILTIN|LOW|OUTPUT|REPORT_ANALOG|REPORT_DIGITAL|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET)\b/,builtin:/\b(?:Audio|BSSID|Bridge|Client|Console|EEPROM|Esplora|EsploraTFT|Ethernet|EthernetClient|EthernetServer|EthernetUDP|File|FileIO|FileSystem|Firmata|GPRS|GSM|GSMBand|GSMClient|GSMModem|GSMPIN|GSMScanner|GSMServer|GSMVoiceCall|GSM_SMS|HttpClient|IPAddress|IRread|Keyboard|KeyboardController|LiquidCrystal|LiquidCrystal_I2C|Mailbox|Mouse|MouseController|PImage|Process|RSSI|RobotControl|RobotMotor|SD|SPI|SSID|Scheduler|Serial|Server|Servo|SoftwareSerial|Stepper|Stream|TFT|Task|USBHost|WiFi|WiFiClient|WiFiServer|WiFiUDP|Wire|YunClient|YunServer|abs|addParameter|analogRead|analogReadResolution|analogReference|analogWrite|analogWriteResolution|answerCall|attach|attachGPRS|attachInterrupt|attached|autoscroll|available|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|bitClear|bitRead|bitSet|bitWrite|blink|blinkVersion|buffer|changePIN|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compassRead|config|connect|connected|constrain|cos|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|delay|delayMicroseconds|detach|detachInterrupt|digitalRead|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endTransmission|endWrite|exists|exitValue|fill|find|findUntil|flush|gatewayIP|get|getAsynchronously|getBand|getButton|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|home|image|interrupts|isActionDone|isDirectory|isListening|isPIN|isPressed|isValid|keyPressed|keyReleased|keyboardRead|knobRead|leftToRight|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|lowByte|macAddress|maintain|map|max|messageAvailable|micros|millis|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|noListenOnLocalhost|noStroke|noTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|pinMode|playFile|playMelody|point|pointTo|position|pow|prepare|press|print|printFirmwareVersion|printVersion|println|process|processInput|pulseIn|put|random|randomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|run|runAsynchronously|runShellCommand|runShellCommandAsynchronously|running|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|serialEvent|setBand|setBitOrder|setClockDivider|setCursor|setDNS|setDataMode|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|shiftIn|shiftOut|shutdown|sin|size|sqrt|startLoop|step|stop|stroke|subnetMask|switchPIN|tan|tempoWrite|text|tone|transfer|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRGB|writeRed|yield)\b/}),e.languages.ino=e.languages.arduino}e.exports=a,a.displayName="arduino",a.aliases=["ino"]},7209:function(e){"use strict";function t(e){e.languages.arff={comment:/%.*/,string:{pattern:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/@(?:attribute|data|end|relation)\b/i,number:/\b\d+(?:\.\d+)?\b/,punctuation:/[{},]/}}e.exports=t,t.displayName="arff",t.aliases=[]},4865:function(e){"use strict";function t(e){!function(e){var t={pattern:/(^[ \t]*)\[(?!\[)(?:(["'$`])(?:(?!\2)[^\\]|\\.)*\2|\[(?:[^\[\]\\]|\\.)*\]|[^\[\]\\"'$`]|\\.)*\]/m,lookbehind:!0,inside:{quoted:{pattern:/([$`])(?:(?!\1)[^\\]|\\.)*\1/,inside:{punctuation:/^[$`]|[$`]$/}},interpreted:{pattern:/'(?:[^'\\]|\\.)*'/,inside:{punctuation:/^'|'$/}},string:/"(?:[^"\\]|\\.)*"/,variable:/\w+(?==)/,punctuation:/^\[|\]$|,/,operator:/=/,"attr-value":/(?!^\s+$).+/}},n=e.languages.asciidoc={"comment-block":{pattern:/^(\/{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1/m,alias:"comment"},table:{pattern:/^\|={3,}(?:(?:\r?\n|\r(?!\n)).*)*?(?:\r?\n|\r)\|={3,}$/m,inside:{specifiers:{pattern:/(?:(?:(?:\d+(?:\.\d+)?|\.\d+)[+*](?:[<^>](?:\.[<^>])?|\.[<^>])?|[<^>](?:\.[<^>])?|\.[<^>])[a-z]*|[a-z]+)(?=\|)/,alias:"attr-value"},punctuation:{pattern:/(^|[^\\])[|!]=*/,lookbehind:!0}}},"passthrough-block":{pattern:/^(\+{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^\++|\++$/}},"literal-block":{pattern:/^(-{4,}|\.{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\.+)|(?:-+|\.+)$/}},"other-block":{pattern:/^(--|\*{4,}|_{4,}|={4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\*+|_+|=+)|(?:-+|\*+|_+|=+)$/}},"list-punctuation":{pattern:/(^[ \t]*)(?:-|\*{1,5}|\.{1,5}|(?:[a-z]|\d+)\.|[xvi]+\))(?= )/im,lookbehind:!0,alias:"punctuation"},"list-label":{pattern:/(^[ \t]*)[a-z\d].+(?::{2,4}|;;)(?=\s)/im,lookbehind:!0,alias:"symbol"},"indented-block":{pattern:/((\r?\n|\r)\2)([ \t]+)\S.*(?:(?:\r?\n|\r)\3.+)*(?=\2{2}|$)/,lookbehind:!0},comment:/^\/\/.*/m,title:{pattern:/^.+(?:\r?\n|\r)(?:={3,}|-{3,}|~{3,}|\^{3,}|\+{3,})$|^={1,5} .+|^\.(?![\s.]).*/m,alias:"important",inside:{punctuation:/^(?:\.|=+)|(?:=+|-+|~+|\^+|\++)$/}},"attribute-entry":{pattern:/^:[^:\r\n]+:(?: .*?(?: \+(?:\r?\n|\r).*?)*)?$/m,alias:"tag"},attributes:t,hr:{pattern:/^'{3,}$/m,alias:"punctuation"},"page-break":{pattern:/^<{3,}$/m,alias:"punctuation"},admonition:{pattern:/^(?:CAUTION|IMPORTANT|NOTE|TIP|WARNING):/m,alias:"keyword"},callout:[{pattern:/(^[ \t]*)<?\d*>/m,lookbehind:!0,alias:"symbol"},{pattern:/<\d+>/,alias:"symbol"}],macro:{pattern:/\b[a-z\d][a-z\d-]*::?(?:[^\s\[\]]*\[(?:[^\]\\"']|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:{function:/^[a-z\d-]+(?=:)/,punctuation:/^::?/,attributes:{pattern:/(?:\[(?:[^\]\\"']|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:t.inside}}},inline:{pattern:/(^|[^\\])(?:(?:\B\[(?:[^\]\\"']|(["'])(?:(?!\2)[^\\]|\\.)*\2|\\.)*\])?(?:\b_(?!\s)(?: _|[^_\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: _|[^_\\\r\n]|\\.)+)*_\b|\B``(?!\s).+?(?:(?:\r?\n|\r).+?)*''\B|\B`(?!\s)(?:[^`'\s]|\s+\S)+['`]\B|\B(['*+#])(?!\s)(?: \3|(?!\3)[^\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: \3|(?!\3)[^\\\r\n]|\\.)+)*\3\B)|(?:\[(?:[^\]\\"']|(["'])(?:(?!\4)[^\\]|\\.)*\4|\\.)*\])?(?:(__|\*\*|\+\+\+?|##|\$\$|[~^]).+?(?:(?:\r?\n|\r).+?)*\5|\{[^}\r\n]+\}|\[\[\[?.+?(?:(?:\r?\n|\r).+?)*\]?\]\]|<<.+?(?:(?:\r?\n|\r).+?)*>>|\(\(\(?.+?(?:(?:\r?\n|\r).+?)*\)?\)\)))/m,lookbehind:!0,inside:{attributes:t,url:{pattern:/^(?:\[\[\[?.+?\]?\]\]|<<.+?>>)$/,inside:{punctuation:/^(?:\[\[\[?|<<)|(?:\]\]\]?|>>)$/}},"attribute-ref":{pattern:/^\{.+\}$/,inside:{variable:{pattern:/(^\{)[a-z\d,+_-]+/,lookbehind:!0},operator:/^[=?!#%@$]|!(?=[:}])/,punctuation:/^\{|\}$|::?/}},italic:{pattern:/^(['_])[\s\S]+\1$/,inside:{punctuation:/^(?:''?|__?)|(?:''?|__?)$/}},bold:{pattern:/^\*[\s\S]+\*$/,inside:{punctuation:/^\*\*?|\*\*?$/}},punctuation:/^(?:``?|\+{1,3}|##?|\$\$|[~^]|\(\(\(?)|(?:''?|\+{1,3}|##?|\$\$|[~^`]|\)?\)\))$/}},replacement:{pattern:/\((?:C|R|TM)\)/,alias:"builtin"},entity:/&#?[\da-z]{1,8};/i,"line-continuation":{pattern:/(^| )\+$/m,lookbehind:!0,alias:"punctuation"}};function r(e){for(var t={},r=0,a=(e=e.split(" ")).length;r<a;r++)t[e[r]]=n[e[r]];return t}t.inside.interpreted.inside.rest=r("macro inline replacement entity"),n["passthrough-block"].inside.rest=r("macro"),n["literal-block"].inside.rest=r("callout"),n.table.inside.rest=r("comment-block passthrough-block literal-block other-block list-punctuation indented-block comment title attribute-entry attributes hr page-break admonition list-label callout macro inline replacement entity line-continuation"),n["other-block"].inside.rest=r("table list-punctuation indented-block comment attribute-entry attributes hr page-break admonition list-label macro inline replacement entity line-continuation"),n.title.inside.rest=r("macro inline replacement entity"),e.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.value.replace(/&amp;/,"&"))})),e.languages.adoc=e.languages.asciidoc}(e)}e.exports=t,t.displayName="asciidoc",t.aliases=["adoc"]},2083:function(e){"use strict";function t(e){e.languages.asm6502={comment:/;.*/,directive:{pattern:/\.\w+(?= )/,alias:"property"},string:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,"op-code":{pattern:/\b(?:ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA|adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya)\b/,alias:"keyword"},"hex-number":{pattern:/#?\$[\da-f]{1,4}\b/i,alias:"number"},"binary-number":{pattern:/#?%[01]+\b/,alias:"number"},"decimal-number":{pattern:/#?\b\d+\b/,alias:"number"},register:{pattern:/\b[xya]\b/i,alias:"variable"},punctuation:/[(),:]/}}e.exports=t,t.displayName="asm6502",t.aliases=[]},6054:function(e){"use strict";function t(e){e.languages.asmatmel={comment:{pattern:/;.*/,greedy:!0},string:{pattern:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},constant:/\b(?:PORT[A-Z]|DDR[A-Z]|(?:DD|P)[A-Z](?:\d|[0-2]\d|3[01]))\b/,directive:{pattern:/\.\w+(?= )/,alias:"property"},"r-register":{pattern:/\br(?:\d|[12]\d|3[01])\b/,alias:"variable"},"op-code":{pattern:/\b(?:ADC|ADD|ADIW|AND|ANDI|ASR|BCLR|BLD|BRBC|BRBS|BRCC|BRCS|BREAK|BREQ|BRGE|BRHC|BRHS|BRID|BRIE|BRLO|BRLT|BRMI|BRNE|BRPL|BRSH|BRTC|BRTS|BRVC|BRVS|BSET|BST|CALL|CBI|CBR|CLC|CLH|CLI|CLN|CLR|CLS|CLT|CLV|CLZ|COM|CP|CPC|CPI|CPSE|DEC|DES|EICALL|EIJMP|ELPM|EOR|FMUL|FMULS|FMULSU|ICALL|IJMP|IN|INC|JMP|LAC|LAS|LAT|LD|LD[A-Za-z0-9]|LPM|LSL|LSR|MOV|MOVW|MUL|MULS|MULSU|NEG|NOP|OR|ORI|OUT|POP|PUSH|RCALL|RET|RETI|RJMP|ROL|ROR|SBC|SBCI|SBI|SBIC|SBIS|SBIW|SBR|SBRC|SBRS|SEC|SEH|SEI|SEN|SER|SES|SET|SEV|SEZ|SLEEP|SPM|ST|ST[A-Z0-9]|SUB|SUBI|SWAP|TST|WDR|XCH|adc|add|adiw|and|andi|asr|bclr|bld|brbc|brbs|brcc|brcs|break|breq|brge|brhc|brhs|brid|brie|brlo|brlt|brmi|brne|brpl|brsh|brtc|brts|brvc|brvs|bset|bst|call|cbi|cbr|clc|clh|cli|cln|clr|cls|clt|clv|clz|com|cp|cpc|cpi|cpse|dec|des|eicall|eijmp|elpm|eor|fmul|fmuls|fmulsu|icall|ijmp|in|inc|jmp|lac|las|lat|ld|ld[a-z0-9]|lpm|lsl|lsr|mov|movw|mul|muls|mulsu|neg|nop|or|ori|out|pop|push|rcall|ret|reti|rjmp|rol|ror|sbc|sbci|sbi|sbic|sbis|sbiw|sbr|sbrc|sbrs|sec|seh|sei|sen|ser|ses|set|sev|sez|sleep|spm|st|st[a-zA-Z0-9]|sub|subi|swap|tst|wdr|xch)\b/,alias:"keyword"},"hex-number":{pattern:/#?\$[\da-f]{2,4}\b/i,alias:"number"},"binary-number":{pattern:/#?%[01]+\b/,alias:"number"},"decimal-number":{pattern:/#?\b\d+\b/,alias:"number"},register:{pattern:/\b[acznvshtixy]\b/i,alias:"variable"},operator:/>>=?|<<=?|&&?|\|\|?|[-+*/%&|^!=<>?]=?/,punctuation:/[(),:]/}}e.exports=t,t.displayName="asmatmel",t.aliases=[]},476:function(e,t,n){"use strict";var r=n(3281);function a(e){e.register(r),e.languages.aspnet=e.languages.extend("markup",{"page-directive":{pattern:/<%\s*@.*%>/,alias:"tag",inside:{"page-directive":{pattern:/<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,alias:"tag"},rest:e.languages.markup.tag.inside}},directive:{pattern:/<%.*%>/,alias:"tag",inside:{directive:{pattern:/<%\s*?[$=%#:]{0,2}|%>/,alias:"tag"},rest:e.languages.csharp}}}),e.languages.aspnet.tag.pattern=/<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/,e.languages.insertBefore("inside","punctuation",{directive:e.languages.aspnet.directive},e.languages.aspnet.tag.inside["attr-value"]),e.languages.insertBefore("aspnet","comment",{"asp-comment":{pattern:/<%--[\s\S]*?--%>/,alias:["asp","comment"]}}),e.languages.insertBefore("aspnet",e.languages.javascript?"script":"tag",{"asp-script":{pattern:/(<script(?=.*runat=['"]?server\b)[^>]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,alias:["asp","script"],inside:e.languages.csharp||{}}})}e.exports=a,a.displayName="aspnet",a.aliases=[]},9894:function(e){"use strict";function t(e){e.languages.autohotkey={comment:[{pattern:/(^|\s);.*/,lookbehind:!0},{pattern:/(^[\t ]*)\/\*(?:[\r\n](?![ \t]*\*\/)|[^\r\n])*(?:[\r\n][ \t]*\*\/)?/m,lookbehind:!0,greedy:!0}],tag:{pattern:/^([ \t]*)[^\s,`":]+(?=:[ \t]*$)/m,lookbehind:!0},string:/"(?:[^"\n\r]|"")*"/,variable:/%\w+%/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/\?|\/\/?=?|:=|\|[=|]?|&[=&]?|\+[=+]?|-[=-]?|\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\b(?:AND|NOT|OR)\b/,boolean:/\b(?:false|true)\b/,selector:/\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\b/i,constant:/\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guicontrol|a_guicontrolevent|a_guievent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel|programfiles)\b/i,builtin:/\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|isfunc|islabel|IsObject|ln|log|ltrim|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|numget|numput|onmessage|regexmatch|regexreplace|registercallback|round|rtrim|sb_seticon|sb_setparts|sb_settext|sin|sqrt|strlen|strreplace|strsplit|substr|tan|tv_add|tv_delete|tv_get|tv_getchild|tv_getcount|tv_getnext|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__Call|__Get|__New|__Set)\b/i,symbol:/\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\b/i,important:/#\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|DerefChar|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|If|IfTimeout|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InputLevel|InstallKeybdHook|InstallMouseHook|KeyHistory|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|MenuMaskKey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|Warn|WinActivateForce)\b/i,keyword:/\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Catch|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|Finally|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|Region|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Throw|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|Try|TryAgain|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\b/i,function:/[^(); \t,\n+*\-=?>:\\\/<&%\[\]]+(?=\()/,punctuation:/[{}[\]():,]/}}e.exports=t,t.displayName="autohotkey",t.aliases=[]},4291:function(e){"use strict";function t(e){e.languages.autoit={comment:[/;.*/,{pattern:/(^[\t ]*)#(?:comments-start|cs)[\s\S]*?^[ \t]*#(?:ce|comments-end)/m,lookbehind:!0}],url:{pattern:/(^[\t ]*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m,lookbehind:!0},string:{pattern:/(["'])(?:\1\1|(?!\1)[^\r\n])*\1/,greedy:!0,inside:{variable:/([%$@])\w+\1/}},directive:{pattern:/(^[\t ]*)#[\w-]+/m,lookbehind:!0,alias:"keyword"},function:/\b\w+(?=\()/,variable:/[$@]\w+/,keyword:/\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,boolean:/\b(?:False|True)\b/i,operator:/<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Not|Or)\b/i,punctuation:/[\[\]().,:]/}}e.exports=t,t.displayName="autoit",t.aliases=[]},3981:function(e){"use strict";function t(e){!function(e){function t(e,t,n){return RegExp(function(e,t){return e.replace(/<<(\d+)>>/g,(function(e,n){return t[+n]}))}(e,t),n||"")}var n=/bool|clip|float|int|string|val/.source,r=[[/is(?:bool|clip|float|int|string)|defined|(?:(?:internal)?function|var)?exists?/.source,/apply|assert|default|eval|import|nop|select|undefined/.source,/opt_(?:allowfloataudio|avipadscanlines|dwchannelmask|enable_(?:b64a|planartopackedrgb|v210|y3_10_10|y3_10_16)|usewaveextensible|vdubplanarhack)|set(?:cachemode|maxcpu|memorymax|planarlegacyalignment|workingdir)/.source,/hex(?:value)?|value/.source,/abs|ceil|continued(?:denominator|numerator)?|exp|floor|fmod|frac|log(?:10)?|max|min|muldiv|pi|pow|rand|round|sign|spline|sqrt/.source,/a?sinh?|a?cosh?|a?tan[2h]?/.source,/(?:bit(?:and|not|x?or|[lr]?shift[aslu]?|sh[lr]|sa[lr]|[lr]rotatel?|ro[rl]|te?st|set(?:count)?|cl(?:ea)?r|ch(?:an)?ge?))/.source,/average(?:[bgr]|chroma[uv]|luma)|(?:[rgb]|chroma[uv]|luma|rgb|[yuv](?=difference(?:fromprevious|tonext)))difference(?:fromprevious|tonext)?|[yuvrgb]plane(?:median|min|max|minmaxdifference)/.source,/getprocessinfo|logmsg|script(?:dir(?:utf8)?|file(?:utf8)?|name(?:utf8)?)|setlogparams/.source,/chr|(?:fill|find|left|mid|replace|rev|right)str|format|[lu]case|ord|str(?:cmpi?|fromutf8|len|toutf8)|time|trim(?:all|left|right)/.source,/isversionorgreater|version(?:number|string)/.source,/buildpixeltype|colorspacenametopixeltype/.source,/addautoloaddir|on(?:cpu|cuda)|prefetch|setfiltermtmode/.source].join("|"),[/has(?:audio|video)/.source,/height|width/.source,/frame(?:count|rate)|framerate(?:denominator|numerator)/.source,/getparity|is(?:field|frame)based/.source,/bitspercomponent|componentsize|hasalpha|is(?:planar(?:rgba?)?|interleaved|rgb(?:24|32|48|64)?|y(?:8|u(?:va?|y2))?|yv(?:12|16|24|411)|420|422|444|packedrgb)|numcomponents|pixeltype/.source,/audio(?:bits|channels|duration|length(?:[fs]|hi|lo)?|rate)|isaudio(?:float|int)/.source].join("|"),[/avi(?:file)?source|directshowsource|image(?:reader|source|sourceanim)|opendmlsource|segmented(?:avisource|directshowsource)|wavsource/.source,/coloryuv|convertbacktoyuy2|convertto(?:RGB(?:24|32|48|64)|(?:planar)?RGBA?|Y8?|YV(?:12|16|24|411)|YUVA?(?:411|420|422|444)|YUY2)|fixluminance|gr[ae]yscale|invert|levels|limiter|mergea?rgb|merge(?:chroma|luma)|rgbadjust|show(?:alpha|blue|green|red)|swapuv|tweak|[uv]toy8?|ytouv/.source,/(?:colorkey|reset)mask|layer|mask(?:hs)?|merge|overlay|subtract/.source,/addborders|(?:bicubic|bilinear|blackman|gauss|lanczos4|lanczos|point|sinc|spline(?:16|36|64))resize|crop(?:bottom)?|flip(?:horizontal|vertical)|(?:horizontal|vertical)?reduceby2|letterbox|skewrows|turn(?:180|left|right)/.source,/blur|fixbrokenchromaupsampling|generalconvolution|(?:spatial|temporal)soften|sharpen/.source,/trim|(?:un)?alignedsplice|(?:assume|assumescaled|change|convert)FPS|(?:delete|duplicate)frame|dissolve|fade(?:in|io|out)[02]?|freezeframe|interleave|loop|reverse|select(?:even|odd|(?:range)?every)/.source,/assume[bt]ff|assume(?:field|frame)based|bob|complementparity|doubleweave|peculiarblend|pulldown|separate(?:columns|fields|rows)|swapfields|weave(?:columns|rows)?/.source,/amplify(?:db)?|assumesamplerate|audiodub(?:ex)?|audiotrim|convertaudioto(?:(?:8|16|24|32)bit|float)|converttomono|delayaudio|ensurevbrmp3sync|get(?:left|right)?channel|kill(?:audio|video)|mergechannels|mixaudio|monotostereo|normalize|resampleaudio|ssrc|supereq|timestretch/.source,/animate|applyrange|conditional(?:filter|reader|select)|frameevaluate|scriptclip|tcp(?:server|source)|writefile(?:end|if|start)?/.source,/imagewriter/.source,/blackness|blankclip|colorbars(?:hd)?|compare|dumpfiltergraph|echo|histogram|info|messageclip|preroll|setgraphanalysis|show(?:framenumber|smpte|time)|showfiveversions|stack(?:horizontal|vertical)|subtitle|tone|version/.source].join("|")].join("|");e.languages.avisynth={comment:[{pattern:/(^|[^\\])\[\*(?:[^\[*]|\[(?!\*)|\*(?!\])|\[\*(?:[^\[*]|\[(?!\*)|\*(?!\]))*\*\])*\*\]/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0,greedy:!0}],argument:{pattern:t(/\b(?:<<0>>)\s+("?)\w+\1/.source,[n],"i"),inside:{keyword:/^\w+/}},"argument-label":{pattern:/([,(][\s\\]*)\w+\s*=(?!=)/,lookbehind:!0,inside:{"argument-name":{pattern:/^\w+/,alias:"punctuation"},punctuation:/=$/}},string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0,inside:{constant:{pattern:/\b(?:DEFAULT_MT_MODE|(?:MAINSCRIPT|PROGRAM|SCRIPT)DIR|(?:MACHINE|USER)_(?:CLASSIC|PLUS)_PLUGINS)\b/}}}],variable:/\b(?:last)\b/i,boolean:/\b(?:false|no|true|yes)\b/i,keyword:/\b(?:catch|else|for|function|global|if|return|try|while|__END__)\b/i,constant:/\bMT_(?:MULTI_INSTANCE|NICE_FILTER|SERIALIZED|SPECIAL_MT)\b/,"builtin-function":{pattern:t(/\b(?:<<0>>)\b/.source,[r],"i"),alias:"function"},"type-cast":{pattern:t(/\b(?:<<0>>)(?=\s*\()/.source,[n],"i"),alias:"keyword"},function:{pattern:/\b[a-z_]\w*(?=\s*\()|(\.)[a-z_]\w*\b/i,lookbehind:!0},"line-continuation":{pattern:/(^[ \t]*)\\|\\(?=[ \t]*$)/m,lookbehind:!0,alias:"punctuation"},number:/\B\$(?:[\da-f]{6}|[\da-f]{8})\b|(?:(?:\b|\B-)\d+(?:\.\d*)?\b|\B\.\d+\b)/i,operator:/\+\+?|[!=<>]=?|&&|\|\||[?:*/%-]/,punctuation:/[{}\[\]();,.]/},e.languages.avs=e.languages.avisynth}(e)}e.exports=t,t.displayName="avisynth",t.aliases=["avs"]},9730:function(e){"use strict";function t(e){e.languages["avro-idl"]={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/(^|[^\\])"(?:[^\r\n"\\]|\\.)*"/,lookbehind:!0,greedy:!0},annotation:{pattern:/@(?:[$\w.-]|`[^\r\n`]+`)+/,greedy:!0,alias:"function"},"function-identifier":{pattern:/`[^\r\n`]+`(?=\s*\()/,greedy:!0,alias:"function"},identifier:{pattern:/`[^\r\n`]+`/,greedy:!0},"class-name":{pattern:/(\b(?:enum|error|protocol|record|throws)\b\s+)[$\w]+/,lookbehind:!0,greedy:!0},keyword:/\b(?:array|boolean|bytes|date|decimal|double|enum|error|false|fixed|float|idl|import|int|local_timestamp_ms|long|map|null|oneway|protocol|record|schema|string|throws|time_ms|timestamp_ms|true|union|uuid|void)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:[{pattern:/(^|[^\w.])-?(?:(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|0x(?:[a-f0-9]+(?:\.[a-f0-9]*)?|\.[a-f0-9]+)(?:p[+-]?\d+)?)[dfl]?(?![\w.])/i,lookbehind:!0},/-?\b(?:Infinity|NaN)\b/],operator:/=/,punctuation:/[()\[\]{}<>.:,;-]/},e.languages.avdl=e.languages["avro-idl"]}e.exports=t,t.displayName="avroIdl",t.aliases=[]},7033:function(e){"use strict";function t(e){!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=r.variable[1].inside,o=0;o<a.length;o++)i[a[o]]=e.languages.bash[a[o]];e.languages.shell=e.languages.bash}(e)}e.exports=t,t.displayName="bash",t.aliases=["shell"]},7867:function(e){"use strict";function t(e){e.languages.basic={comment:{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^\w +\-.])*"/,greedy:!0},number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SELECT CASE|SHARED|SHELL|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\$|\b)/i,function:/\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\$|\b)/i,operator:/<[=>]?|>=?|[+\-*\/^=&]|\b(?:AND|EQV|IMP|NOT|OR|XOR)\b/i,punctuation:/[,;:()]/}}e.exports=t,t.displayName="basic",t.aliases=[]},9607:function(e){"use strict";function t(e){!function(e){var t=/%%?[~:\w]+%?|!\S+!/,n={pattern:/\/[a-z?]+(?=[ :]|$):?|-[a-z]\b|--[a-z-]+\b/im,alias:"attr-name",inside:{punctuation:/:/}},r=/"(?:[\\"]"|[^"])*"(?!")/,a=/(?:\b|-)\d+\b/;e.languages.batch={comment:[/^::.*/m,{pattern:/((?:^|[&(])[ \t]*)rem\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0}],label:{pattern:/^:.*/m,alias:"property"},command:[{pattern:/((?:^|[&(])[ \t]*)for(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* \S+ in \([^)]+\) do/im,lookbehind:!0,inside:{keyword:/\b(?:do|in)\b|^for\b/i,string:r,parameter:n,variable:t,number:a,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*)if(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:not )?(?:cmdextversion \d+|defined \w+|errorlevel \d+|exist \S+|(?:"[^"]*"|(?!")(?:(?!==)\S)+)?(?:==| (?:equ|geq|gtr|leq|lss|neq) )(?:"[^"]*"|[^\s"]\S*))/im,lookbehind:!0,inside:{keyword:/\b(?:cmdextversion|defined|errorlevel|exist|not)\b|^if\b/i,string:r,parameter:n,variable:t,number:a,operator:/\^|==|\b(?:equ|geq|gtr|leq|lss|neq)\b/i}},{pattern:/((?:^|[&()])[ \t]*)else\b/im,lookbehind:!0,inside:{keyword:/^else\b/i}},{pattern:/((?:^|[&(])[ \t]*)set(?: \/[a-z](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0,inside:{keyword:/^set\b/i,string:r,parameter:n,variable:[t,/\w+(?=(?:[*\/%+\-&^|]|<<|>>)?=)/],number:a,operator:/[*\/%+\-&^|]=?|<<=?|>>=?|[!~_=]/,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*@?)\w+\b(?:"(?:[\\"]"|[^"])*"(?!")|[^"^&)\r\n]|\^(?:\r\n|[\s\S]))*/m,lookbehind:!0,inside:{keyword:/^\w+\b/,string:r,parameter:n,label:{pattern:/(^\s*):\S+/m,lookbehind:!0,alias:"property"},variable:t,number:a,operator:/\^/}}],operator:/[&@]/,punctuation:/[()']/}}(e)}e.exports=t,t.displayName="batch",t.aliases=[]},150:function(e){"use strict";function t(e){e.languages.bbcode={tag:{pattern:/\[\/?[^\s=\]]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))?(?:\s+[^\s=\]]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))*\s*\]/,inside:{tag:{pattern:/^\[\/?[^\s=\]]+/,inside:{punctuation:/^\[\/?/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+)/,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\]/,"attr-name":/[^\s=\]]+/}}},e.languages.shortcode=e.languages.bbcode}e.exports=t,t.displayName="bbcode",t.aliases=["shortcode"]},3098:function(e){"use strict";function t(e){e.languages.bicep={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],property:[{pattern:/([\r\n][ \t]*)[a-z_]\w*(?=[ \t]*:)/i,lookbehind:!0},{pattern:/([\r\n][ \t]*)'(?:\\.|\$(?!\{)|[^'\\\r\n$])*'(?=[ \t]*:)/,lookbehind:!0,greedy:!0}],string:[{pattern:/'''[^'][\s\S]*?'''/,greedy:!0},{pattern:/(^|[^\\'])'(?:\\.|\$(?!\{)|[^'\\\r\n$])*'/,lookbehind:!0,greedy:!0}],"interpolated-string":{pattern:/(^|[^\\'])'(?:\\.|\$(?:(?!\{)|\{[^{}\r\n]*\})|[^'\\\r\n$])*'/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/\$\{[^{}\r\n]*\}/,inside:{expression:{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0},punctuation:/^\$\{|\}$/}},string:/[\s\S]+/}},datatype:{pattern:/(\b(?:output|param)\b[ \t]+\w+[ \t]+)\w+\b/,lookbehind:!0,alias:"class-name"},boolean:/\b(?:false|true)\b/,keyword:/\b(?:existing|for|if|in|module|null|output|param|resource|targetScope|var)\b/,decorator:/@\w+\b/,function:/\b[a-z_]\w*(?=[ \t]*\()/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/,punctuation:/[{}[\];(),.:]/},e.languages.bicep["interpolated-string"].inside.interpolation.inside.expression.inside=e.languages.bicep}e.exports=t,t.displayName="bicep",t.aliases=[]},4786:function(e){"use strict";function t(e){e.languages.birb=e.languages.extend("clike",{string:{pattern:/r?("|')(?:\\.|(?!\1)[^\\])*\1/,greedy:!0},"class-name":[/\b[A-Z](?:[\d_]*[a-zA-Z]\w*)?\b/,/\b(?:[A-Z]\w*|(?!(?:var|void)\b)[a-z]\w*)(?=\s+\w+\s*[;,=()])/],keyword:/\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|new|next|noSeeb|return|static|switch|throw|var|void|while)\b/,operator:/\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?|:/,variable:/\b[a-z_]\w*\b/}),e.languages.insertBefore("birb","function",{metadata:{pattern:/<\w+>/,greedy:!0,alias:"symbol"}})}e.exports=t,t.displayName="birb",t.aliases=[]},6938:function(e,t,n){"use strict";var r=n(272);function a(e){e.register(r),e.languages.bison=e.languages.extend("c",{}),e.languages.insertBefore("bison","comment",{bison:{pattern:/^(?:[^%]|%(?!%))*%%[\s\S]*?%%/,inside:{c:{pattern:/%\{[\s\S]*?%\}|\{(?:\{[^}]*\}|[^{}])*\}/,inside:{delimiter:{pattern:/^%?\{|%?\}$/,alias:"punctuation"},"bison-variable":{pattern:/[$@](?:<[^\s>]+>)?[\w$]+/,alias:"variable",inside:{punctuation:/<|>/}},rest:e.languages.c}},comment:e.languages.c.comment,string:e.languages.c.string,property:/\S+(?=:)/,keyword:/%\w+/,number:{pattern:/(^|[^@])\b(?:0x[\da-f]+|\d+)/i,lookbehind:!0},punctuation:/%[%?]|[|:;\[\]<>]/}}})}e.exports=a,a.displayName="bison",a.aliases=[]},9784:function(e){"use strict";function t(e){e.languages.bnf={string:{pattern:/"[^\r\n"]*"|'[^\r\n']*'/},definition:{pattern:/<[^<>\r\n\t]+>(?=\s*::=)/,alias:["rule","keyword"],inside:{punctuation:/^<|>$/}},rule:{pattern:/<[^<>\r\n\t]+>/,inside:{punctuation:/^<|>$/}},operator:/::=|[|()[\]{}*+?]|\.{3}/},e.languages.rbnf=e.languages.bnf}e.exports=t,t.displayName="bnf",t.aliases=["rbnf"]},2689:function(e){"use strict";function t(e){e.languages.brainfuck={pointer:{pattern:/<|>/,alias:"keyword"},increment:{pattern:/\+/,alias:"inserted"},decrement:{pattern:/-/,alias:"deleted"},branching:{pattern:/\[|\]/,alias:"important"},operator:/[.,]/,comment:/\S+/}}e.exports=t,t.displayName="brainfuck",t.aliases=[]},6514:function(e){"use strict";function t(e){e.languages.brightscript={comment:/(?:\brem|').*/i,"directive-statement":{pattern:/(^[\t ]*)#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if).*/im,lookbehind:!0,alias:"property",inside:{"error-message":{pattern:/(^#error).+/,lookbehind:!0},directive:{pattern:/^#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if)/,alias:"keyword"},expression:{pattern:/[\s\S]+/,inside:null}}},property:{pattern:/([\r\n{,][\t ]*)(?:(?!\d)\w+|"(?:[^"\r\n]|"")*"(?!"))(?=[ \t]*:)/,lookbehind:!0,greedy:!0},string:{pattern:/"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},"class-name":{pattern:/(\bAs[\t ]+)\w+/i,lookbehind:!0},keyword:/\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\b/i,boolean:/\b(?:false|true)\b/i,function:/\b(?!\d)\w+(?=[\t ]*\()/,number:/(?:\b\d+(?:\.\d+)?(?:[ed][+-]\d+)?|&h[a-f\d]+)\b[%&!#]?/i,operator:/--|\+\+|>>=?|<<=?|<>|[-+*/\\<>]=?|[:^=?]|\b(?:and|mod|not|or)\b/i,punctuation:/[.,;()[\]{}]/,constant:/\b(?:LINE_NUM)\b/i},e.languages.brightscript["directive-statement"].inside.expression.inside=e.languages.brightscript}e.exports=t,t.displayName="brightscript",t.aliases=[]},25:function(e){"use strict";function t(e){e.languages.bro={comment:{pattern:/(^|[^\\$])#.*/,lookbehind:!0,inside:{italic:/\b(?:FIXME|TODO|XXX)\b/}},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},boolean:/\b[TF]\b/,function:{pattern:/(\b(?:event|function|hook)[ \t]+)\w+(?:::\w+)?/,lookbehind:!0},builtin:/(?:@(?:load(?:-(?:plugin|sigs))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:add_func|create_expire|default|delete_func|encrypt|error_handler|expire_func|group|log|mergeable|optional|persistent|priority|raw_output|read_expire|redef|rotate_interval|rotate_size|synchronized|type_column|write_expire))/,constant:{pattern:/(\bconst[ \t]+)\w+/i,lookbehind:!0},keyword:/\b(?:add|addr|alarm|any|bool|break|const|continue|count|delete|double|else|enum|event|export|file|for|function|global|hook|if|in|int|interval|local|module|next|of|opaque|pattern|port|print|record|return|schedule|set|string|subnet|table|time|timeout|using|vector|when)\b/,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&|\|\|?|\?|\*|\/|~|\^|%/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,punctuation:/[{}[\];(),.:]/}}e.exports=t,t.displayName="bro",t.aliases=[]},7501:function(e){"use strict";function t(e){e.languages.bsl={comment:/\/\/.*/,string:[{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},{pattern:/'(?:[^'\r\n\\]|\\.)*'/}],keyword:[{pattern:/(^|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:\u043f\u043e\u043a\u0430|\u0434\u043b\u044f|\u043d\u043e\u0432\u044b\u0439|\u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c|\u043f\u043e\u043f\u044b\u0442\u043a\u0430|\u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435|\u0432\u044b\u0437\u0432\u0430\u0442\u044c\u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435|\u0438\u043d\u0430\u0447\u0435|\u043a\u043e\u043d\u0435\u0446\u043f\u043e\u043f\u044b\u0442\u043a\u0438|\u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e|\u0444\u0443\u043d\u043a\u0446\u0438\u044f|\u043f\u0435\u0440\u0435\u043c|\u0432\u043e\u0437\u0432\u0440\u0430\u0442|\u043a\u043e\u043d\u0435\u0446\u0444\u0443\u043d\u043a\u0446\u0438\u0438|\u0435\u0441\u043b\u0438|\u0438\u043d\u0430\u0447\u0435\u0435\u0441\u043b\u0438|\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430|\u043a\u043e\u043d\u0435\u0446\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b|\u0442\u043e\u0433\u0434\u0430|\u0437\u043d\u0430\u0447|\u044d\u043a\u0441\u043f\u043e\u0440\u0442|\u043a\u043e\u043d\u0435\u0446\u0435\u0441\u043b\u0438|\u0438\u0437|\u043a\u0430\u0436\u0434\u043e\u0433\u043e|\u0438\u0441\u0442\u0438\u043d\u0430|\u043b\u043e\u0436\u044c|\u043f\u043e|\u0446\u0438\u043a\u043b|\u043a\u043e\u043d\u0435\u0446\u0446\u0438\u043a\u043b\u0430|\u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c)(?![\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,lookbehind:!0},{pattern:/\b(?:break|do|each|else|elseif|enddo|endfunction|endif|endprocedure|endtry|except|execute|export|false|for|function|if|in|new|null|procedure|raise|return|then|to|true|try|undefined|val|var|while)\b/i}],number:{pattern:/(^(?=\d)|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:\d+(?:\.\d*)?|\.\d+)(?:E[+-]?\d+)?/i,lookbehind:!0},operator:[/[<>+\-*/]=?|[%=]/,{pattern:/(^|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:\u0438|\u0438\u043b\u0438|\u043d\u0435)(?![\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,lookbehind:!0},{pattern:/\b(?:and|not|or)\b/i}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/,directive:[{pattern:/^([ \t]*)&.*/m,lookbehind:!0,greedy:!0,alias:"important"},{pattern:/^([ \t]*)#.*/gm,lookbehind:!0,greedy:!0,alias:"important"}]},e.languages.oscript=e.languages.bsl}e.exports=t,t.displayName="bsl",t.aliases=[]},272:function(e){"use strict";function t(e){e.languages.c=e.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),e.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),e.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},e.languages.c.string],char:e.languages.c.char,comment:e.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:e.languages.c}}}}),e.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete e.languages.c.boolean}e.exports=t,t.displayName="c",t.aliases=[]},943:function(e){"use strict";function t(e){e.languages.cfscript=e.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,inside:{annotation:{pattern:/(?:^|[^.])@[\w\.]+/,alias:"punctuation"}}},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],keyword:/\b(?:abstract|break|catch|component|continue|default|do|else|extends|final|finally|for|function|if|in|include|package|private|property|public|remote|required|rethrow|return|static|switch|throw|try|var|while|xml)\b(?!\s*=)/,operator:[/\+\+|--|&&|\|\||::|=>|[!=]==|<=?|>=?|[-+*/%&|^!=<>]=?|\?(?:\.|:)?|[?:]/,/\b(?:and|contains|eq|equal|eqv|gt|gte|imp|is|lt|lte|mod|not|or|xor)\b/],scope:{pattern:/\b(?:application|arguments|cgi|client|cookie|local|session|super|this|variables)\b/,alias:"global"},type:{pattern:/\b(?:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|void|xml)\b/,alias:"builtin"}}),e.languages.insertBefore("cfscript","keyword",{"function-variable":{pattern:/[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"}}),delete e.languages.cfscript["class-name"],e.languages.cfc=e.languages.cfscript}e.exports=t,t.displayName="cfscript",t.aliases=[]},9785:function(e,t,n){"use strict";var r=n(8593);function a(e){e.register(r),e.languages.chaiscript=e.languages.extend("clike",{string:{pattern:/(^|[^\\])'(?:[^'\\]|\\[\s\S])*'/,lookbehind:!0,greedy:!0},"class-name":[{pattern:/(\bclass\s+)\w+/,lookbehind:!0},{pattern:/(\b(?:attr|def)\s+)\w+(?=\s*::)/,lookbehind:!0}],keyword:/\b(?:attr|auto|break|case|catch|class|continue|def|default|else|finally|for|fun|global|if|return|switch|this|try|var|while)\b/,number:[e.languages.cpp.number,/\b(?:Infinity|NaN)\b/],operator:/>>=?|<<=?|\|\||&&|:[:=]?|--|\+\+|[=!<>+\-*/%|&^]=?|[?~]|`[^`\r\n]{1,4}`/}),e.languages.insertBefore("chaiscript","operator",{"parameter-type":{pattern:/([,(]\s*)\w+(?=\s+\w)/,lookbehind:!0,alias:"class-name"}}),e.languages.insertBefore("chaiscript","string",{"string-interpolation":{pattern:/(^|[^\\])"(?:[^"$\\]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\}/,lookbehind:!0,inside:{"interpolation-expression":{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.chaiscript},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"}}},string:/[\s\S]+/}}})}e.exports=a,a.displayName="chaiscript",a.aliases=[]},9529:function(e){"use strict";function t(e){e.languages.cil={comment:/\/\/.*/,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},directive:{pattern:/(^|\W)\.[a-z]+(?=\s)/,lookbehind:!0,alias:"class-name"},variable:/\[[\w\.]+\]/,keyword:/\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|u?int(?:8|16|32|64)?|iant|idispatch|implements|import|initonly|instance|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\b/,function:/\b(?:(?:constrained|no|readonly|tail|unaligned|volatile)\.)?(?:conv\.(?:[iu][1248]?|ovf\.[iu][1248]?(?:\.un)?|r\.un|r4|r8)|ldc\.(?:i4(?:\.\d+|\.[mM]1|\.s)?|i8|r4|r8)|ldelem(?:\.[iu][1248]?|\.r[48]|\.ref|a)?|ldind\.(?:[iu][1248]?|r[48]|ref)|stelem\.?(?:i[1248]?|r[48]|ref)?|stind\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\.[0-3s]|a(?:\.s)?)?|ldloc(?:\.\d+|\.s)?|sub(?:\.ovf(?:\.un)?)?|mul(?:\.ovf(?:\.un)?)?|add(?:\.ovf(?:\.un)?)?|stloc(?:\.[0-3s])?|refany(?:type|val)|blt(?:\.un)?(?:\.s)?|ble(?:\.un)?(?:\.s)?|bgt(?:\.un)?(?:\.s)?|bge(?:\.un)?(?:\.s)?|unbox(?:\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\.s)?|bne\.un(?:\.s)?|ldloca(?:\.s)?|brzero(?:\.s)?|brtrue(?:\.s)?|brnull(?:\.s)?|brinst(?:\.s)?|starg(?:\.s)?|leave(?:\.s)?|shr(?:\.un)?|rem(?:\.un)?|div(?:\.un)?|clt(?:\.un)?|alignment|castclass|ldvirtftn|beq(?:\.s)?|ckfinite|ldsflda|ldtoken|localloc|mkrefany|rethrow|cgt\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\b/,boolean:/\b(?:false|true)\b/,number:/\b-?(?:0x[0-9a-f]+|\d+)(?:\.[0-9a-f]+)?\b/i,punctuation:/[{}[\];(),:=]|IL_[0-9A-Za-z]+/}}e.exports=t,t.displayName="cil",t.aliases=[]},3052:function(e){"use strict";function t(e){e.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}}e.exports=t,t.displayName="clike",t.aliases=[]},1915:function(e){"use strict";function t(e){e.languages.clojure={comment:{pattern:/;.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},char:/\\\w+/,symbol:{pattern:/(^|[\s()\[\]{},])::?[\w*+!?'<>=/.-]+/,lookbehind:!0},keyword:{pattern:/(\()(?:-|->|->>|\.|\.\.|\*|\/|\+|<|<=|=|==|>|>=|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|cond|conj|cons|constantly|construct-proxy|contains\?|count|create-ns|create-struct|cycle|dec|declare|def|def-|definline|definterface|defmacro|defmethod|defmulti|defn|defn-|defonce|defproject|defprotocol|defrecord|defstruct|deftype|deref|difference|disj|dissoc|distinct|do|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\?|ensure|eval|every\?|false\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|fn|fnseq|for|frest|gensym|get|get-proxy-class|hash-map|hash-set|identical\?|identity|if|if-let|if-not|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\?|last|lazy-cat|lazy-cons|left|lefts|let|line-seq|list|list\*|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|monitor-enter|name|namespace|neg\?|new|newline|next|nil\?|node|not|not-any\?|not-every\?|not=|ns|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|quote|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|recur|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\?|set|set!|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\?|split-at|split-with|str|string\?|struct|struct-map|subs|subvec|symbol|symbol\?|sync|take|take-nth|take-while|test|throw|time|to-array|to-array-2d|tree-seq|true\?|try|union|up|update-proxy|val|vals|var|var-get|var-set|var\?|vector|vector-zip|vector\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\?|zipmap|zipper)(?=[\s)]|$)/,lookbehind:!0},boolean:/\b(?:false|nil|true)\b/,number:{pattern:/(^|[^\w$@])(?:\d+(?:[/.]\d+)?(?:e[+-]?\d+)?|0x[a-f0-9]+|[1-9]\d?r[a-z0-9]+)[lmn]?(?![\w$@])/i,lookbehind:!0},function:{pattern:/((?:^|[^'])\()[\w*+!?'<>=/.-]+(?=[\s)]|$)/,lookbehind:!0},operator:/[#@^`~]/,punctuation:/[{}\[\](),]/}}e.exports=t,t.displayName="clojure",t.aliases=[]},3549:function(e){"use strict";function t(e){e.languages.cmake={comment:/#.*/,string:{pattern:/"(?:[^\\"]|\\.)*"/,greedy:!0,inside:{interpolation:{pattern:/\$\{(?:[^{}$]|\$\{[^{}$]*\})*\}/,inside:{punctuation:/\$\{|\}/,variable:/\w+/}}}},variable:/\b(?:CMAKE_\w+|\w+_(?:(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT|VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?)|(?:ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_(?:BINARY_DIR|DESCRIPTION|HOMEPAGE_URL|NAME|SOURCE_DIR|VERSION|VERSION_(?:MAJOR|MINOR|PATCH|TWEAK))|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE|XCODE_VERSION))\b/,property:/\b(?:cxx_\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\w+|\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|GLOBAL_KEYWORD|GLOBAL_PROJECT_TYPES|GLOBAL_ROOTNAMESPACE|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\b/,keyword:/\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\s*\()\b/,boolean:/\b(?:FALSE|OFF|ON|TRUE)\b/,namespace:/\b(?:INTERFACE|PRIVATE|PROPERTIES|PUBLIC|SHARED|STATIC|TARGET_OBJECTS)\b/,operator:/\b(?:AND|DEFINED|EQUAL|GREATER|LESS|MATCHES|NOT|OR|STREQUAL|STRGREATER|STRLESS|VERSION_EQUAL|VERSION_GREATER|VERSION_LESS)\b/,inserted:{pattern:/\b\w+::\w+\b/,alias:"class-name"},number:/\b\d+(?:\.\d+)*\b/,function:/\b[a-z_]\w*(?=\s*\()\b/i,punctuation:/[()>}]|\$[<{]/}}e.exports=t,t.displayName="cmake",t.aliases=[]},4732:function(e){"use strict";function t(e){e.languages.cobol={comment:{pattern:/\*>.*|(^[ \t]*)\*.*/m,lookbehind:!0,greedy:!0},string:{pattern:/[xzgn]?(?:"(?:[^\r\n"]|"")*"(?!")|'(?:[^\r\n']|'')*'(?!'))/i,greedy:!0},level:{pattern:/(^[ \t]*)\d+\b/m,lookbehind:!0,greedy:!0,alias:"number"},"class-name":{pattern:/(\bpic(?:ture)?\s+)(?:(?:[-\w$/,:*+<>]|\.(?!\s|$))(?:\(\d+\))?)+/i,lookbehind:!0,inside:{number:{pattern:/(\()\d+/,lookbehind:!0},punctuation:/[()]/}},keyword:{pattern:/(^|[^\w-])(?:ABORT|ACCEPT|ACCESS|ADD|ADDRESS|ADVANCING|AFTER|ALIGNED|ALL|ALPHABET|ALPHABETIC|ALPHABETIC-LOWER|ALPHABETIC-UPPER|ALPHANUMERIC|ALPHANUMERIC-EDITED|ALSO|ALTER|ALTERNATE|ANY|ARE|AREA|AREAS|AS|ASCENDING|ASCII|ASSIGN|ASSOCIATED-DATA|ASSOCIATED-DATA-LENGTH|AT|ATTRIBUTE|AUTHOR|AUTO|AUTO-SKIP|BACKGROUND-COLOR|BACKGROUND-COLOUR|BASIS|BEEP|BEFORE|BEGINNING|BELL|BINARY|BIT|BLANK|BLINK|BLOCK|BOTTOM|BOUNDS|BY|BYFUNCTION|BYTITLE|CALL|CANCEL|CAPABLE|CCSVERSION|CD|CF|CH|CHAINING|CHANGED|CHANNEL|CHARACTER|CHARACTERS|CLASS|CLASS-ID|CLOCK-UNITS|CLOSE|CLOSE-DISPOSITION|COBOL|CODE|CODE-SET|COL|COLLATING|COLUMN|COM-REG|COMMA|COMMITMENT|COMMON|COMMUNICATION|COMP|COMP-1|COMP-2|COMP-3|COMP-4|COMP-5|COMPUTATIONAL|COMPUTATIONAL-1|COMPUTATIONAL-2|COMPUTATIONAL-3|COMPUTATIONAL-4|COMPUTATIONAL-5|COMPUTE|CONFIGURATION|CONTAINS|CONTENT|CONTINUE|CONTROL|CONTROL-POINT|CONTROLS|CONVENTION|CONVERTING|COPY|CORR|CORRESPONDING|COUNT|CRUNCH|CURRENCY|CURSOR|DATA|DATA-BASE|DATE|DATE-COMPILED|DATE-WRITTEN|DAY|DAY-OF-WEEK|DBCS|DE|DEBUG-CONTENTS|DEBUG-ITEM|DEBUG-LINE|DEBUG-NAME|DEBUG-SUB-1|DEBUG-SUB-2|DEBUG-SUB-3|DEBUGGING|DECIMAL-POINT|DECLARATIVES|DEFAULT|DEFAULT-DISPLAY|DEFINITION|DELETE|DELIMITED|DELIMITER|DEPENDING|DESCENDING|DESTINATION|DETAIL|DFHRESP|DFHVALUE|DISABLE|DISK|DISPLAY|DISPLAY-1|DIVIDE|DIVISION|DONTCARE|DOUBLE|DOWN|DUPLICATES|DYNAMIC|EBCDIC|EGCS|EGI|ELSE|EMI|EMPTY-CHECK|ENABLE|END|END-ACCEPT|END-ADD|END-CALL|END-COMPUTE|END-DELETE|END-DIVIDE|END-EVALUATE|END-IF|END-MULTIPLY|END-OF-PAGE|END-PERFORM|END-READ|END-RECEIVE|END-RETURN|END-REWRITE|END-SEARCH|END-START|END-STRING|END-SUBTRACT|END-UNSTRING|END-WRITE|ENDING|ENTER|ENTRY|ENTRY-PROCEDURE|ENVIRONMENT|EOL|EOP|EOS|ERASE|ERROR|ESCAPE|ESI|EVALUATE|EVENT|EVERY|EXCEPTION|EXCLUSIVE|EXHIBIT|EXIT|EXPORT|EXTEND|EXTENDED|EXTERNAL|FD|FILE|FILE-CONTROL|FILLER|FINAL|FIRST|FOOTING|FOR|FOREGROUND-COLOR|FOREGROUND-COLOUR|FROM|FULL|FUNCTION|FUNCTION-POINTER|FUNCTIONNAME|GENERATE|GIVING|GLOBAL|GO|GOBACK|GRID|GROUP|HEADING|HIGH-VALUE|HIGH-VALUES|HIGHLIGHT|I-O|I-O-CONTROL|ID|IDENTIFICATION|IF|IMPLICIT|IMPORT|IN|INDEX|INDEXED|INDICATE|INITIAL|INITIALIZE|INITIATE|INPUT|INPUT-OUTPUT|INSPECT|INSTALLATION|INTEGER|INTO|INVALID|INVOKE|IS|JUST|JUSTIFIED|KANJI|KEPT|KEY|KEYBOARD|LABEL|LANGUAGE|LAST|LB|LD|LEADING|LEFT|LEFTLINE|LENGTH|LENGTH-CHECK|LIBACCESS|LIBPARAMETER|LIBRARY|LIMIT|LIMITS|LINAGE|LINAGE-COUNTER|LINE|LINE-COUNTER|LINES|LINKAGE|LIST|LOCAL|LOCAL-STORAGE|LOCK|LONG-DATE|LONG-TIME|LOW-VALUE|LOW-VALUES|LOWER|LOWLIGHT|MEMORY|MERGE|MESSAGE|MMDDYYYY|MODE|MODULES|MORE-LABELS|MOVE|MULTIPLE|MULTIPLY|NAMED|NATIONAL|NATIONAL-EDITED|NATIVE|NEGATIVE|NETWORK|NEXT|NO|NO-ECHO|NULL|NULLS|NUMBER|NUMERIC|NUMERIC-DATE|NUMERIC-EDITED|NUMERIC-TIME|OBJECT-COMPUTER|OCCURS|ODT|OF|OFF|OMITTED|ON|OPEN|OPTIONAL|ORDER|ORDERLY|ORGANIZATION|OTHER|OUTPUT|OVERFLOW|OVERLINE|OWN|PACKED-DECIMAL|PADDING|PAGE|PAGE-COUNTER|PASSWORD|PERFORM|PF|PH|PIC|PICTURE|PLUS|POINTER|PORT|POSITION|POSITIVE|PRINTER|PRINTING|PRIVATE|PROCEDURE|PROCEDURE-POINTER|PROCEDURES|PROCEED|PROCESS|PROGRAM|PROGRAM-ID|PROGRAM-LIBRARY|PROMPT|PURGE|QUEUE|QUOTE|QUOTES|RANDOM|RD|READ|READER|REAL|RECEIVE|RECEIVED|RECORD|RECORDING|RECORDS|RECURSIVE|REDEFINES|REEL|REF|REFERENCE|REFERENCES|RELATIVE|RELEASE|REMAINDER|REMARKS|REMOTE|REMOVAL|REMOVE|RENAMES|REPLACE|REPLACING|REPORT|REPORTING|REPORTS|REQUIRED|RERUN|RESERVE|RESET|RETURN|RETURN-CODE|RETURNING|REVERSE-VIDEO|REVERSED|REWIND|REWRITE|RF|RH|RIGHT|ROUNDED|RUN|SAME|SAVE|SCREEN|SD|SEARCH|SECTION|SECURE|SECURITY|SEGMENT|SEGMENT-LIMIT|SELECT|SEND|SENTENCE|SEPARATE|SEQUENCE|SEQUENTIAL|SET|SHARED|SHAREDBYALL|SHAREDBYRUNUNIT|SHARING|SHIFT-IN|SHIFT-OUT|SHORT-DATE|SIGN|SIZE|SORT|SORT-CONTROL|SORT-CORE-SIZE|SORT-FILE-SIZE|SORT-MERGE|SORT-MESSAGE|SORT-MODE-SIZE|SORT-RETURN|SOURCE|SOURCE-COMPUTER|SPACE|SPACES|SPECIAL-NAMES|STANDARD|STANDARD-1|STANDARD-2|START|STATUS|STOP|STRING|SUB-QUEUE-1|SUB-QUEUE-2|SUB-QUEUE-3|SUBTRACT|SUM|SUPPRESS|SYMBOL|SYMBOLIC|SYNC|SYNCHRONIZED|TABLE|TALLY|TALLYING|TAPE|TASK|TERMINAL|TERMINATE|TEST|TEXT|THEN|THREAD|THREAD-LOCAL|THROUGH|THRU|TIME|TIMER|TIMES|TITLE|TO|TODAYS-DATE|TODAYS-NAME|TOP|TRAILING|TRUNCATED|TYPE|TYPEDEF|UNDERLINE|UNIT|UNSTRING|UNTIL|UP|UPON|USAGE|USE|USING|VALUE|VALUES|VARYING|VIRTUAL|WAIT|WHEN|WHEN-COMPILED|WITH|WORDS|WORKING-STORAGE|WRITE|YEAR|YYYYDDD|YYYYMMDD|ZERO-FILL|ZEROES|ZEROS)(?![\w-])/i,lookbehind:!0},boolean:{pattern:/(^|[^\w-])(?:false|true)(?![\w-])/i,lookbehind:!0},number:{pattern:/(^|[^\w-])(?:[+-]?(?:(?:\d+(?:[.,]\d+)?|[.,]\d+)(?:e[+-]?\d+)?|zero))(?![\w-])/i,lookbehind:!0},operator:[/<>|[<>]=?|[=+*/&]/,{pattern:/(^|[^\w-])(?:-|and|equal|greater|less|not|or|than)(?![\w-])/i,lookbehind:!0}],punctuation:/[.:,()]/}}e.exports=t,t.displayName="cobol",t.aliases=[]},6522:function(e){"use strict";function t(e){!function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(e)}e.exports=t,t.displayName="coffeescript",t.aliases=["coffee"]},3723:function(e){"use strict";function t(e){e.languages.concurnas={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\/\/.*)/,lookbehind:!0,greedy:!0},langext:{pattern:/\b\w+\s*\|\|[\s\S]+?\|\|/,greedy:!0,inside:{"class-name":/^\w+/,string:{pattern:/(^\s*\|\|)[\s\S]+(?=\|\|$)/,lookbehind:!0},punctuation:/\|\|/}},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/,lookbehind:!0},keyword:/\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\b/,boolean:/\b(?:false|true)\b/,number:/\b0b[01][01_]*L?\b|\b0x(?:[\da-f_]*\.)?[\da-f_p+-]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfls]?/i,punctuation:/[{}[\];(),.:]/,operator:/<==|>==|=>|->|<-|<>|&==|&<>|\?:?|\.\?|\+\+|--|[-+*/=<>]=?|[!^~]|\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\b=?/,annotation:{pattern:/@(?:\w+:)?(?:\w+|\[[^\]]+\])?/,alias:"builtin"}},e.languages.insertBefore("concurnas","langext",{"regex-literal":{pattern:/\br("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:e.languages.concurnas},regex:/[\s\S]+/}},"string-literal":{pattern:/(?:\B|\bs)("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:e.languages.concurnas},string:/[\s\S]+/}}}),e.languages.conc=e.languages.concurnas}e.exports=t,t.displayName="concurnas",t.aliases=["conc"]},423:function(e){"use strict";function t(e){!function(e){for(var t=/\(\*(?:[^(*]|\((?!\*)|\*(?!\))|<self>)*\*\)/.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,"[]"),e.languages.coq={comment:RegExp(t),string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},attribute:[{pattern:RegExp(/#\[(?:[^\[\]("]|"(?:[^"]|"")*"(?!")|\((?!\*)|<comment>)*\]/.source.replace(/<comment>/g,(function(){return t}))),greedy:!0,alias:"attr-name",inside:{comment:RegExp(t),string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},operator:/=/,punctuation:/^#\[|\]$|[,()]/}},{pattern:/\b(?:Cumulative|Global|Local|Monomorphic|NonCumulative|Polymorphic|Private|Program)\b/,alias:"attr-name"}],keyword:/\b(?:Abort|About|Add|Admit|Admitted|All|Arguments|As|Assumptions|Axiom|Axioms|Back|BackTo|Backtrace|BinOp|BinOpSpec|BinRel|Bind|Blacklist|Canonical|Case|Cd|Check|Class|Classes|Close|CoFixpoint|CoInductive|Coercion|Coercions|Collection|Combined|Compute|Conjecture|Conjectures|Constant|Constants|Constraint|Constructors|Context|Corollary|Create|CstOp|Custom|Cut|Debug|Declare|Defined|Definition|Delimit|Dependencies|Dependent|Derive|Diffs|Drop|Elimination|End|Entry|Equality|Eval|Example|Existential|Existentials|Existing|Export|Extern|Extraction|Fact|Fail|Field|File|Firstorder|Fixpoint|Flags|Focus|From|Funclass|Function|Functional|GC|Generalizable|Goal|Grab|Grammar|Graph|Guarded|Haskell|Heap|Hide|Hint|HintDb|Hints|Hypotheses|Hypothesis|IF|Identity|Immediate|Implicit|Implicits|Import|Include|Induction|Inductive|Infix|Info|Initial|InjTyp|Inline|Inspect|Instance|Instances|Intro|Intros|Inversion|Inversion_clear|JSON|Language|Left|Lemma|Let|Lia|Libraries|Library|Load|LoadPath|Locate|Ltac|Ltac2|ML|Match|Method|Minimality|Module|Modules|Morphism|Next|NoInline|Notation|Number|OCaml|Obligation|Obligations|Opaque|Open|Optimize|Parameter|Parameters|Parametric|Path|Paths|Prenex|Preterm|Primitive|Print|Profile|Projections|Proof|Prop|PropBinOp|PropOp|PropUOp|Property|Proposition|Pwd|Qed|Quit|Rec|Record|Recursive|Redirect|Reduction|Register|Relation|Remark|Remove|Require|Reserved|Reset|Resolve|Restart|Rewrite|Right|Ring|Rings|SProp|Saturate|Save|Scheme|Scope|Scopes|Search|SearchHead|SearchPattern|SearchRewrite|Section|Separate|Set|Setoid|Show|Signatures|Solve|Solver|Sort|Sortclass|Sorted|Spec|Step|Strategies|Strategy|String|Structure|SubClass|Subgraph|SuchThat|Tactic|Term|TestCompile|Theorem|Time|Timeout|To|Transparent|Type|Typeclasses|Types|Typing|UnOp|UnOpSpec|Undelimit|Undo|Unfocus|Unfocused|Unfold|Universe|Universes|Unshelve|Variable|Variables|Variant|Verbose|View|Visibility|Zify|_|apply|as|at|by|cofix|else|end|exists|exists2|fix|for|forall|fun|if|in|let|match|measure|move|removed|return|struct|then|using|wf|where|with)\b/,number:/\b(?:0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]+)?(?:p[+-]?\d[\d_]*)?|\d[\d_]*(?:\.[\d_]+)?(?:e[+-]?\d[\d_]*)?)\b/i,punct:{pattern:/@\{|\{\||\[=|:>/,alias:"punctuation"},operator:/\/\\|\\\/|\.{2,3}|:{1,2}=|\*\*|[-=]>|<(?:->?|[+:=>]|<:)|>(?:=|->)|\|[-|]?|[-!%&*+/<=>?@^~']/,punctuation:/\.\(|`\(|@\{|`\{|\{\||\[=|:>|[:.,;(){}\[\]]/}}(e)}e.exports=t,t.displayName="coq",t.aliases=[]},8593:function(e,t,n){"use strict";var r=n(272);function a(e){e.register(r),function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(e)}e.exports=a,a.displayName="cpp",a.aliases=[]},7916:function(e,t,n){"use strict";var r=n(6326);function a(e){e.register(r),function(e){e.languages.crystal=e.languages.extend("ruby",{keyword:[/\b(?:__DIR__|__END_LINE__|__FILE__|__LINE__|abstract|alias|annotation|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|ifdef|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|ptr|require|rescue|return|select|self|sizeof|struct|super|then|type|typeof|undef|uninitialized|union|unless|until|when|while|with|yield)\b/,{pattern:/(\.\s*)(?:is_a|responds_to)\?/,lookbehind:!0}],number:/\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\da-fA-F_]*[\da-fA-F]|(?:\d(?:[\d_]*\d)?)(?:\.[\d_]*\d)?(?:[eE][+-]?[\d_]*\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\b/,operator:[/->/,e.languages.ruby.operator],punctuation:/[(){}[\].,;\\]/}),e.languages.insertBefore("crystal","string-literal",{attribute:{pattern:/@\[.*?\]/,inside:{delimiter:{pattern:/^@\[|\]$/,alias:"punctuation"},attribute:{pattern:/^(\s*)\w+/,lookbehind:!0,alias:"class-name"},args:{pattern:/\S(?:[\s\S]*\S)?/,inside:e.languages.crystal}}},expansion:{pattern:/\{(?:\{.*?\}|%.*?%)\}/,inside:{content:{pattern:/^(\{.)[\s\S]+(?=.\}$)/,lookbehind:!0,inside:e.languages.crystal},delimiter:{pattern:/^\{[\{%]|[\}%]\}$/,alias:"operator"}}},char:{pattern:/'(?:[^\\\r\n]{1,2}|\\(?:.|u(?:[A-Fa-f0-9]{1,4}|\{[A-Fa-f0-9]{1,6}\})))'/,greedy:!0}})}(e)}e.exports=a,a.displayName="crystal",a.aliases=[]},3281:function(e){"use strict";function t(e){!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,(function(e,n){return"(?:"+t[+n]+")"}))}function n(e,n,r){return RegExp(t(e,n),r||"")}function r(e,t){for(var n=0;n<t;n++)e=e.replace(/<<self>>/g,(function(){return"(?:"+e+")"}));return e.replace(/<<self>>/g,"[^\\s\\S]")}var a="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",i="class enum interface record struct",o="add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",s="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var c=l(i),u=RegExp(l(a+" "+i+" "+o+" "+s)),d=l(i+" "+o+" "+s),p=l(a+" "+i+" "+s),m=r(/<(?:[^<>;=+\-*/%&|^]|<<self>>)*>/.source,2),g=r(/\((?:[^()]|<<self>>)*\)/.source,2),h=/@?\b[A-Za-z_]\w*\b/.source,f=t(/<<0>>(?:\s*<<1>>)?/.source,[h,m]),b=t(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[d,f]),E=/\[\s*(?:,\s*)*\]/.source,y=t(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[b,E]),T=t(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[m,g,E]),S=t(/\(<<0>>+(?:,<<0>>+)+\)/.source,[T]),v=t(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[S,b,E]),A={keyword:u,punctuation:/[<>()?,.:[\]]/},k=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,w=/"(?:\\.|[^\\"\r\n])*"/.source,_=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;e.languages.csharp=e.languages.extend("clike",{string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[_]),lookbehind:!0,greedy:!0},{pattern:n(/(^|[^@$\\])<<0>>/.source,[w]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:n(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[b]),lookbehind:!0,inside:A},{pattern:n(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[h,v]),lookbehind:!0,inside:A},{pattern:n(/(\busing\s+)<<0>>(?=\s*=)/.source,[h]),lookbehind:!0},{pattern:n(/(\b<<0>>\s+)<<1>>/.source,[c,f]),lookbehind:!0,inside:A},{pattern:n(/(\bcatch\s*\(\s*)<<0>>/.source,[b]),lookbehind:!0,inside:A},{pattern:n(/(\bwhere\s+)<<0>>/.source,[h]),lookbehind:!0},{pattern:n(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[y]),lookbehind:!0,inside:A},{pattern:n(/\b<<0>>(?=\s+(?!<<1>>|with\s*\{)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[v,p,h]),inside:A}],keyword:u,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:n(/([(,]\s*)<<0>>(?=\s*:)/.source,[h]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:n(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[h]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:n(/(\b(?:default|sizeof|typeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[g]),lookbehind:!0,alias:"class-name",inside:A},"return-type":{pattern:n(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[v,b]),inside:A,alias:"class-name"},"constructor-invocation":{pattern:n(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[v]),lookbehind:!0,inside:A,alias:"class-name"},"generic-method":{pattern:n(/<<0>>\s*<<1>>(?=\s*\()/.source,[h,m]),inside:{function:n(/^<<0>>/.source,[h]),generic:{pattern:RegExp(m),alias:"class-name",inside:A}}},"type-list":{pattern:n(/\b((?:<<0>>\s+<<1>>|record\s+<<1>>\s*<<5>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>|<<1>>\s*<<5>>|<<6>>)(?:\s*,\s*(?:<<3>>|<<4>>|<<6>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[c,f,h,v,u.source,g,/\bnew\s*\(\s*\)/.source]),lookbehind:!0,inside:{"record-arguments":{pattern:n(/(^(?!new\s*\()<<0>>\s*)<<1>>/.source,[f,g]),lookbehind:!0,greedy:!0,inside:e.languages.csharp},keyword:u,"class-name":{pattern:RegExp(v),greedy:!0,inside:A},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var C=w+"|"+k,N=t(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[C]),I=r(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[N]),2),x=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,R=t(/<<0>>(?:\s*\(<<1>>*\))?/.source,[b,I]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:n(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[x,R]),lookbehind:!0,greedy:!0,inside:{target:{pattern:n(/^<<0>>(?=\s*:)/.source,[x]),alias:"keyword"},"attribute-arguments":{pattern:n(/\(<<0>>*\)/.source,[I]),inside:e.languages.csharp},"class-name":{pattern:RegExp(b),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var O=/:[^}\r\n]+/.source,L=r(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[N]),2),P=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[L,O]),D=r(t(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<<self>>*\)/.source,[C]),2),M=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[D,O]);function F(t,r){return{interpolation:{pattern:n(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[t]),lookbehind:!0,inside:{"format-string":{pattern:n(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[r,O]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:n(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[P]),lookbehind:!0,greedy:!0,inside:F(P,L)},{pattern:n(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[M]),lookbehind:!0,greedy:!0,inside:F(M,D)}],char:{pattern:RegExp(k),greedy:!0}}),e.languages.dotnet=e.languages.cs=e.languages.csharp}(e)}e.exports=t,t.displayName="csharp",t.aliases=["dotnet","cs"]},9333:function(e,t,n){"use strict";var r=n(3281);function a(e){e.register(r),function(e){var t=/\/(?![/*])|\/\/.*[\r\n]|\/\*[^*]*(?:\*(?!\/)[^*]*)*\*\//.source,n=/@(?!")|"(?:[^\r\n\\"]|\\.)*"|@"(?:[^\\"]|""|\\[\s\S])*"(?!")/.source+"|"+/'(?:(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'|(?=[^\\](?!')))/.source;function r(e,r){for(var a=0;a<r;a++)e=e.replace(/<self>/g,(function(){return"(?:"+e+")"}));return e.replace(/<self>/g,"[^\\s\\S]").replace(/<str>/g,"(?:"+n+")").replace(/<comment>/g,"(?:"+t+")")}var a=r(/\((?:[^()'"@/]|<str>|<comment>|<self>)*\)/.source,2),i=r(/\[(?:[^\[\]'"@/]|<str>|<comment>|<self>)*\]/.source,2),o=r(/\{(?:[^{}'"@/]|<str>|<comment>|<self>)*\}/.source,2),s=r(/<(?:[^<>'"@/]|<str>|<comment>|<self>)*>/.source,2),l=/(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?/.source,c=/(?!\d)[^\s>\/=$<%]+/.source+l+/\s*\/?>/.source,u=/\B@?/.source+"(?:"+/<([a-zA-Z][\w:]*)/.source+l+/\s*>/.source+"(?:"+/[^<]/.source+"|"+/<\/?(?!\1\b)/.source+c+"|"+r(/<\1/.source+l+/\s*>/.source+"(?:"+/[^<]/.source+"|"+/<\/?(?!\1\b)/.source+c+"|<self>)*"+/<\/\1\s*>/.source,2)+")*"+/<\/\1\s*>/.source+"|"+/</.source+c+")";e.languages.cshtml=e.languages.extend("markup",{});var d={pattern:/\S[\s\S]*/,alias:"language-csharp",inside:e.languages.insertBefore("csharp","string",{html:{pattern:RegExp(u),greedy:!0,inside:e.languages.cshtml}},{csharp:e.languages.extend("csharp",{})})};e.languages.insertBefore("cshtml","prolog",{"razor-comment":{pattern:/@\*[\s\S]*?\*@/,greedy:!0,alias:"comment"},block:{pattern:RegExp(/(^|[^@])@/.source+"(?:"+[o,/(?:code|functions)\s*/.source+o,/(?:for|foreach|lock|switch|using|while)\s*/.source+a+/\s*/.source+o,/do\s*/.source+o+/\s*while\s*/.source+a+/(?:\s*;)?/.source,/try\s*/.source+o+/\s*catch\s*/.source+a+/\s*/.source+o+/\s*finally\s*/.source+o,/if\s*/.source+a+/\s*/.source+o+"(?:"+/\s*else/.source+"(?:"+/\s+if\s*/.source+a+")?"+/\s*/.source+o+")*"].join("|")+")"),lookbehind:!0,greedy:!0,inside:{keyword:/^@\w*/,csharp:d}},directive:{pattern:/^([ \t]*)@(?:addTagHelper|attribute|implements|inherits|inject|layout|model|namespace|page|preservewhitespace|removeTagHelper|section|tagHelperPrefix|using)(?=\s).*/m,lookbehind:!0,greedy:!0,inside:{keyword:/^@\w+/,csharp:d}},value:{pattern:RegExp(/(^|[^@])@/.source+/(?:await\b\s*)?/.source+"(?:"+/\w+\b/.source+"|"+a+")(?:"+/[?!]?\.\w+\b/.source+"|"+a+"|"+i+"|"+s+a+")*"),lookbehind:!0,greedy:!0,alias:"variable",inside:{keyword:/^@/,csharp:d}},"delegate-operator":{pattern:/(^|[^@])@(?=<)/,lookbehind:!0,alias:"operator"}}),e.languages.razor=e.languages.cshtml}(e)}e.exports=a,a.displayName="cshtml",a.aliases=["razor"]},3524:function(e){"use strict";function t(e){!function(e){function t(e){return RegExp(/([ \t])/.source+"(?:"+e+")"+/(?=[\s;]|$)/.source,"i")}e.languages.csp={directive:{pattern:/(^|[\s;])(?:base-uri|block-all-mixed-content|(?:child|connect|default|font|frame|img|manifest|media|object|prefetch|script|style|worker)-src|disown-opener|form-action|frame-(?:ancestors|options)|input-protection(?:-(?:clip|selectors))?|navigate-to|plugin-types|policy-uri|referrer|reflected-xss|report-(?:to|uri)|require-sri-for|sandbox|(?:script|style)-src-(?:attr|elem)|upgrade-insecure-requests)(?=[\s;]|$)/i,lookbehind:!0,alias:"property"},scheme:{pattern:t(/[a-z][a-z0-9.+-]*:/.source),lookbehind:!0},none:{pattern:t(/'none'/.source),lookbehind:!0,alias:"keyword"},nonce:{pattern:t(/'nonce-[-+/\w=]+'/.source),lookbehind:!0,alias:"number"},hash:{pattern:t(/'sha(?:256|384|512)-[-+/\w=]+'/.source),lookbehind:!0,alias:"number"},host:{pattern:t(/[a-z][a-z0-9.+-]*:\/\/[^\s;,']*/.source+"|"+/\*[^\s;,']*/.source+"|"+/[a-z0-9-]+(?:\.[a-z0-9-]+)+(?::[\d*]+)?(?:\/[^\s;,']*)?/.source),lookbehind:!0,alias:"url",inside:{important:/\*/}},keyword:[{pattern:t(/'unsafe-[a-z-]+'/.source),lookbehind:!0,alias:"unsafe"},{pattern:t(/'[a-z-]+'/.source),lookbehind:!0,alias:"safe"}],punctuation:/;/}}(e)}e.exports=t,t.displayName="csp",t.aliases=[]},9689:function(e){"use strict";function t(e){!function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(e)}e.exports=t,t.displayName="cssExtras",t.aliases=[]},9625:function(e){"use strict";function t(e){!function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(e)}e.exports=t,t.displayName="css",t.aliases=[]},691:function(e){"use strict";function t(e){e.languages.csv={value:/[^\r\n,"]+|"(?:[^"]|"")*"(?!")/,punctuation:/,/}}e.exports=t,t.displayName="csv",t.aliases=[]},4704:function(e){"use strict";function t(e){e.languages.cypher={comment:/\/\/.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/,greedy:!0},"class-name":{pattern:/(:\s*)(?:\w+|`(?:[^`\\\r\n])*`)(?=\s*[{):])/,lookbehind:!0,greedy:!0},relationship:{pattern:/(-\[\s*(?:\w+\s*|`(?:[^`\\\r\n])*`\s*)?:\s*|\|\s*:\s*)(?:\w+|`(?:[^`\\\r\n])*`)/,lookbehind:!0,greedy:!0,alias:"property"},identifier:{pattern:/`(?:[^`\\\r\n])*`/,greedy:!0},variable:/\$\w+/,keyword:/\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\b/i,function:/\b\w+\b(?=\s*\()/,boolean:/\b(?:false|null|true)\b/i,number:/\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\b/,operator:/:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\.\.\.?/,punctuation:/[()[\]{},;.]/}}e.exports=t,t.displayName="cypher",t.aliases=[]},3818:function(e){"use strict";function t(e){e.languages.d=e.languages.extend("clike",{comment:[{pattern:/^\s*#!.+/,greedy:!0},{pattern:RegExp(/(^|[^\\])/.source+"(?:"+[/\/\+(?:\/\+(?:[^+]|\+(?!\/))*\+\/|(?!\/\+)[\s\S])*?\+\//.source,/\/\/.*/.source,/\/\*[\s\S]*?\*\//.source].join("|")+")"),lookbehind:!0,greedy:!0}],string:[{pattern:RegExp([/\b[rx]"(?:\\[\s\S]|[^\\"])*"[cwd]?/.source,/\bq"(?:\[[\s\S]*?\]|\([\s\S]*?\)|<[\s\S]*?>|\{[\s\S]*?\})"/.source,/\bq"((?!\d)\w+)$[\s\S]*?^\1"/.source,/\bq"(.)[\s\S]*?\2"/.source,/(["`])(?:\\[\s\S]|(?!\3)[^\\])*\3[cwd]?/.source].join("|"),"m"),greedy:!0},{pattern:/\bq\{(?:\{[^{}]*\}|[^{}])*\}/,greedy:!0,alias:"token-string"}],keyword:/\$|\b(?:__(?:(?:DATE|EOF|FILE|FUNCTION|LINE|MODULE|PRETTY_FUNCTION|TIMESTAMP|TIME|VENDOR|VERSION)__|gshared|parameters|traits|vector)|abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|dstring|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|ptrdiff_t|public|pure|real|ref|return|scope|shared|short|size_t|static|string|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|wstring)\b/,number:[/\b0x\.?[a-f\d_]+(?:(?!\.\.)\.[a-f\d_]*)?(?:p[+-]?[a-f\d_]+)?[ulfi]{0,4}/i,{pattern:/((?:\.\.)?)(?:\b0b\.?|\b|\.)\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:e[+-]?\d[\d_]*)?[ulfi]{0,4}/i,lookbehind:!0}],operator:/\|[|=]?|&[&=]?|\+[+=]?|-[-=]?|\.?\.\.|=[>=]?|!(?:i[ns]\b|<>?=?|>=?|=)?|\bi[ns]\b|(?:<[<>]?|>>?>?|\^\^|[*\/%^~])=?/}),e.languages.insertBefore("d","string",{char:/'(?:\\(?:\W|\w+)|[^\\])'/}),e.languages.insertBefore("d","keyword",{property:/\B@\w*/}),e.languages.insertBefore("d","function",{register:{pattern:/\b(?:[ABCD][LHX]|E?(?:BP|DI|SI|SP)|[BS]PL|[ECSDGF]S|CR[0234]|[DS]IL|DR[012367]|E[ABCD]X|X?MM[0-7]|R(?:1[0-5]|[89])[BWD]?|R[ABCD]X|R[BS]P|R[DS]I|TR[3-7]|XMM(?:1[0-5]|[89])|YMM(?:1[0-5]|\d))\b|\bST(?:\([0-7]\)|\b)/,alias:"variable"}})}e.exports=t,t.displayName="d",t.aliases=[]},583:function(e){"use strict";function t(e){!function(e){var t=[/\b(?:async|sync|yield)\*/,/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extends|extension|external|factory|final|finally|for|get|hide|if|implements|import|in|interface|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\b/],n=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,r={pattern:RegExp(n+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}}}};e.languages.dart=e.languages.extend("clike",{"class-name":[r,{pattern:RegExp(n+/[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source),lookbehind:!0,inside:r.inside}],keyword:t,operator:/\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),e.languages.insertBefore("dart","string",{"string-literal":{pattern:/r?(?:("""|''')[\s\S]*?\1|(["'])(?:\\.|(?!\2)[^\\\r\n])*\2(?!\2))/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,lookbehind:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:e.languages.dart}}},string:/[\s\S]+/}},string:void 0}),e.languages.insertBefore("dart","class-name",{metadata:{pattern:/@\w+/,alias:"function"}}),e.languages.insertBefore("dart","class-name",{generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":r,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})}(e)}e.exports=t,t.displayName="dart",t.aliases=[]},5462:function(e){"use strict";function t(e){!function(e){e.languages.dataweave={url:/\b[A-Za-z]+:\/\/[\w/:.?=&-]+|\burn:[\w:.?=&-]+/,property:{pattern:/(?:\b\w+#)?(?:"(?:\\.|[^\\"\r\n])*"|\b\w+)(?=\s*[:@])/,greedy:!0},string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},"mime-type":/\b(?:application|audio|image|multipart|text|video)\/[\w+-]+/,date:{pattern:/\|[\w:+-]+\|/,greedy:!0},comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],regex:{pattern:/\/(?:[^\\\/\r\n]|\\[^\r\n])+\//,greedy:!0},keyword:/\b(?:and|as|at|case|do|else|fun|if|input|is|match|not|ns|null|or|output|type|unless|update|using|var)\b/,function:/\b[A-Z_]\w*(?=\s*\()/i,number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\];(),.:@]/,operator:/<<|>>|->|[<>~=]=?|!=|--?-?|\+\+?|!|\?/,boolean:/\b(?:false|true)\b/}}(e)}e.exports=t,t.displayName="dataweave",t.aliases=[]},1717:function(e){"use strict";function t(e){e.languages.dax={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/).*)/,lookbehind:!0},"data-field":{pattern:/'(?:[^']|'')*'(?!')(?:\[[ \w\xA0-\uFFFF]+\])?|\w+\[[ \w\xA0-\uFFFF]+\]/,alias:"symbol"},measure:{pattern:/\[[ \w\xA0-\uFFFF]+\]/,alias:"constant"},string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},function:/\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\.DIST|BETA\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\.DIST|CHISQ\.DIST\.RT|CHISQ\.INV|CHISQ\.INV\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\.NORM|CONFIDENCE\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\.DIST|NORM\.INV|NORM\.S\.DIST|NORM\.S\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\.EXC|PERCENTILE\.INC|PERCENTILEX\.EXC|PERCENTILEX\.INC|PERMUT|PI|POISSON\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\.P|STDEV\.S|STDEVX\.P|STDEVX\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\.DIST|T\.DIST\.2T|T\.DIST\.RT|T\.INV|T\.INV\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\.P|VAR\.S|VARX\.P|VARX\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\s*\()/i,keyword:/\b(?:DEFINE|EVALUATE|MEASURE|ORDER\s+BY|RETURN|VAR|START\s+AT|ASC|DESC)\b/i,boolean:{pattern:/\b(?:FALSE|NULL|TRUE)\b/i,alias:"constant"},number:/\b\d+(?:\.\d*)?|\B\.\d+\b/,operator:/:=|[-+*\/=^]|&&?|\|\||<(?:=>?|<|>)?|>[>=]?|\b(?:IN|NOT)\b/i,punctuation:/[;\[\](){}`,.]/}}e.exports=t,t.displayName="dax",t.aliases=[]},6655:function(e){"use strict";function t(e){e.languages.dhall={comment:/--.*|\{-(?:[^-{]|-(?!\})|\{(?!-)|\{-(?:[^-{]|-(?!\})|\{(?!-))*-\})*-\}/,string:{pattern:/"(?:[^"\\]|\\.)*"|''(?:[^']|'(?!')|'''|''\$\{)*''(?!'|\$)/,greedy:!0,inside:{interpolation:{pattern:/\$\{[^{}]*\}/,inside:{expression:{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0,alias:"language-dhall",inside:null},punctuation:/\$\{|\}/}}}},label:{pattern:/`[^`]*`/,greedy:!0},url:{pattern:/\bhttps?:\/\/[\w.:%!$&'*+;=@~-]+(?:\/[\w.:%!$&'*+;=@~-]*)*(?:\?[/?\w.:%!$&'*+;=@~-]*)?/,greedy:!0},env:{pattern:/\benv:(?:(?!\d)\w+|"(?:[^"\\=]|\\.)*")/,greedy:!0,inside:{function:/^env/,operator:/^:/,variable:/[\s\S]+/}},hash:{pattern:/\bsha256:[\da-fA-F]{64}\b/,inside:{function:/sha256/,operator:/:/,number:/[\da-fA-F]{64}/}},keyword:/\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\b|\u2200/,builtin:/\b(?:None|Some)\b/,boolean:/\b(?:False|True)\b/,number:/\bNaN\b|-?\bInfinity\b|[+-]?\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/,operator:/\/\\|\/\/\\\\|&&|\|\||===|[!=]=|\/\/|->|\+\+|::|[+*#@=:?<>|\\\u2227\u2a53\u2261\u2afd\u03bb\u2192]/,punctuation:/\.\.|[{}\[\](),./]/,"class-name":/\b[A-Z]\w*\b/},e.languages.dhall.string.inside.interpolation.inside.expression.inside=e.languages.dhall}e.exports=t,t.displayName="dhall",t.aliases=[]},9442:function(e){"use strict";function t(e){!function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(e)}e.exports=t,t.displayName="diff",t.aliases=[]},6412:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),function(e){e.languages.django={comment:/^\{#[\s\S]*?#\}$/,tag:{pattern:/(^\{%[+-]?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%][+-]?|[+-]?[}%]\}$/,alias:"punctuation"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},filter:{pattern:/(\|)\w+/,lookbehind:!0,alias:"function"},test:{pattern:/(\bis\s+(?:not\s+)?)(?!not\b)\w+/,lookbehind:!0,alias:"function"},function:/\b[a-z_]\w+(?=\s*\()/i,keyword:/\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\b/,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,number:/\b\d+(?:\.\d+)?\b/,boolean:/[Ff]alse|[Nn]one|[Tt]rue/,variable:/\b\w+\b/,punctuation:/[{}[\](),.:;]/};var t=/\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}|\{#[\s\S]*?#\}/g,n=e.languages["markup-templating"];e.hooks.add("before-tokenize",(function(e){n.buildPlaceholders(e,"django",t)})),e.hooks.add("after-tokenize",(function(e){n.tokenizePlaceholders(e,"django")})),e.languages.jinja2=e.languages.django,e.hooks.add("before-tokenize",(function(e){n.buildPlaceholders(e,"jinja2",t)})),e.hooks.add("after-tokenize",(function(e){n.tokenizePlaceholders(e,"jinja2")}))}(e)}e.exports=a,a.displayName="django",a.aliases=["jinja2"]},8818:function(e){"use strict";function t(e){e.languages["dns-zone-file"]={comment:/;.*/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},variable:[{pattern:/(^\$ORIGIN[ \t]+)\S+/m,lookbehind:!0},{pattern:/(^|\s)@(?=\s|$)/,lookbehind:!0}],keyword:/^\$(?:INCLUDE|ORIGIN|TTL)(?=\s|$)/m,class:{pattern:/(^|\s)(?:CH|CS|HS|IN)(?=\s|$)/,lookbehind:!0,alias:"keyword"},type:{pattern:/(^|\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\s|$)/,lookbehind:!0,alias:"keyword"},punctuation:/[()]/},e.languages["dns-zone"]=e.languages["dns-zone-file"]}e.exports=t,t.displayName="dnsZoneFile",t.aliases=[]},3386:function(e){"use strict";function t(e){!function(e){var t=/\\[\r\n](?:\s|\\[\r\n]|#.*(?!.))*(?![\s#]|\\[\r\n])/.source,n=/(?:[ \t]+(?![ \t])(?:<SP_BS>)?|<SP_BS>)/.source.replace(/<SP_BS>/g,(function(){return t})),r=/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"|'(?:[^'\\\r\n]|\\(?:\r\n|[\s\S]))*'/.source,a=/--[\w-]+=(?:<STR>|(?!["'])(?:[^\s\\]|\\.)+)/.source.replace(/<STR>/g,(function(){return r})),i={pattern:RegExp(r),greedy:!0},o={pattern:/(^[ \t]*)#.*/m,lookbehind:!0,greedy:!0};function s(e,t){return e=e.replace(/<OPT>/g,(function(){return a})).replace(/<SP>/g,(function(){return n})),RegExp(e,t)}e.languages.docker={instruction:{pattern:/(^[ \t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)(?:\\.|[^\r\n\\])*(?:\\$(?:\s|#.*$)*(?![\s#])(?:\\.|[^\r\n\\])*)*/im,lookbehind:!0,greedy:!0,inside:{options:{pattern:s(/(^(?:ONBUILD<SP>)?\w+<SP>)<OPT>(?:<SP><OPT>)*/.source,"i"),lookbehind:!0,greedy:!0,inside:{property:{pattern:/(^|\s)--[\w-]+/,lookbehind:!0},string:[i,{pattern:/(=)(?!["'])(?:[^\s\\]|\\.)+/,lookbehind:!0}],operator:/\\$/m,punctuation:/=/}},keyword:[{pattern:s(/(^(?:ONBUILD<SP>)?HEALTHCHECK<SP>(?:<OPT><SP>)*)(?:CMD|NONE)\b/.source,"i"),lookbehind:!0,greedy:!0},{pattern:s(/(^(?:ONBUILD<SP>)?FROM<SP>(?:<OPT><SP>)*(?!--)[^ \t\\]+<SP>)AS/.source,"i"),lookbehind:!0,greedy:!0},{pattern:s(/(^ONBUILD<SP>)\w+/.source,"i"),lookbehind:!0,greedy:!0},{pattern:/^\w+/,greedy:!0}],comment:o,string:i,variable:/\$(?:\w+|\{[^{}"'\\]*\})/,operator:/\\$/m}},comment:o},e.languages.dockerfile=e.languages.docker}(e)}e.exports=t,t.displayName="docker",t.aliases=["dockerfile"]},7837:function(e){"use strict";function t(e){!function(e){var t="(?:"+[/[a-zA-Z_\x80-\uFFFF][\w\x80-\uFFFF]*/.source,/-?(?:\.\d+|\d+(?:\.\d*)?)/.source,/"[^"\\]*(?:\\[\s\S][^"\\]*)*"/.source,/<(?:[^<>]|(?!<!--)<(?:[^<>"']|"[^"]*"|'[^']*')+>|<!--(?:[^-]|-(?!->))*-->)*>/.source].join("|")+")",n={markup:{pattern:/(^<)[\s\S]+(?=>$)/,lookbehind:!0,alias:["language-markup","language-html","language-xml"],inside:e.languages.markup}};function r(e,n){return RegExp(e.replace(/<ID>/g,(function(){return t})),n)}e.languages.dot={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\/|^#.*/m,greedy:!0},"graph-name":{pattern:r(/(\b(?:digraph|graph|subgraph)[ \t\r\n]+)<ID>/.source,"i"),lookbehind:!0,greedy:!0,alias:"class-name",inside:n},"attr-value":{pattern:r(/(=[ \t\r\n]*)<ID>/.source),lookbehind:!0,greedy:!0,inside:n},"attr-name":{pattern:r(/([\[;, \t\r\n])<ID>(?=[ \t\r\n]*=)/.source),lookbehind:!0,greedy:!0,inside:n},keyword:/\b(?:digraph|edge|graph|node|strict|subgraph)\b/i,"compass-point":{pattern:/(:[ \t\r\n]*)(?:[ewc_]|[ns][ew]?)(?![\w\x80-\uFFFF])/,lookbehind:!0,alias:"builtin"},node:{pattern:r(/(^|[^-.\w\x80-\uFFFF\\])<ID>/.source),lookbehind:!0,greedy:!0,inside:n},operator:/[=:]|-[->]/,punctuation:/[\[\]{};,]/},e.languages.gv=e.languages.dot}(e)}e.exports=t,t.displayName="dot",t.aliases=["gv"]},9845:function(e){"use strict";function t(e){e.languages.ebnf={comment:/\(\*[\s\S]*?\*\)/,string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0},special:{pattern:/\?[^?\r\n]*\?/,greedy:!0,alias:"class-name"},definition:{pattern:/^([\t ]*)[a-z]\w*(?:[ \t]+[a-z]\w*)*(?=\s*=)/im,lookbehind:!0,alias:["rule","keyword"]},rule:/\b[a-z]\w*(?:[ \t]+[a-z]\w*)*\b/i,punctuation:/\([:/]|[:/]\)|[.,;()[\]{}]/,operator:/[-=|*/!]/}}e.exports=t,t.displayName="ebnf",t.aliases=[]},6268:function(e){"use strict";function t(e){e.languages.editorconfig={comment:/[;#].*/,section:{pattern:/(^[ \t]*)\[.+\]/m,lookbehind:!0,alias:"selector",inside:{regex:/\\\\[\[\]{},!?.*]/,operator:/[!?]|\.\.|\*{1,2}/,punctuation:/[\[\]{},]/}},key:{pattern:/(^[ \t]*)[^\s=]+(?=[ \t]*=)/m,lookbehind:!0,alias:"attr-name"},value:{pattern:/=.*/,alias:"attr-value",inside:{punctuation:/^=/}}}}e.exports=t,t.displayName="editorconfig",t.aliases=[]},4326:function(e){"use strict";function t(e){e.languages.eiffel={comment:/--.*/,string:[{pattern:/"([^[]*)\[[\s\S]*?\]\1"/,greedy:!0},{pattern:/"([^{]*)\{[\s\S]*?\}\1"/,greedy:!0},{pattern:/"(?:%(?:(?!\n)\s)*\n\s*%|%\S|[^%"\r\n])*"/,greedy:!0}],char:/'(?:%.|[^%'\r\n])+'/,keyword:/\b(?:across|agent|alias|all|and|as|assign|attached|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\b/i,boolean:/\b(?:False|True)\b/i,"class-name":/\b[A-Z][\dA-Z_]*\b/,number:[/\b0[xcb][\da-f](?:_*[\da-f])*\b/i,/(?:\b\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?e[+-]?)?\d(?:_*\d)*\b|\b\d(?:_*\d)*\b\.?/i],punctuation:/:=|<<|>>|\(\||\|\)|->|\.(?=\w)|[{}[\];(),:?]/,operator:/\\\\|\|\.\.\||\.\.|\/[~\/=]?|[><]=?|[-+*^=~]/}}e.exports=t,t.displayName="eiffel",t.aliases=[]},8331:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),function(e){e.languages.ejs={delimiter:{pattern:/^<%[-_=]?|[-_]?%>$/,alias:"punctuation"},comment:/^#[\s\S]*/,"language-javascript":{pattern:/[\s\S]+/,inside:e.languages.javascript}},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"ejs",/<%(?!%)[\s\S]+?%>/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"ejs")})),e.languages.eta=e.languages.ejs}(e)}e.exports=a,a.displayName="ejs",a.aliases=["eta"]},3596:function(e){"use strict";function t(e){e.languages.elixir={doc:{pattern:/@(?:doc|moduledoc)\s+(?:("""|''')[\s\S]*?\1|("|')(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2)/,inside:{attribute:/^@\w+/,string:/['"][\s\S]+/}},comment:{pattern:/#.*/,greedy:!0},regex:{pattern:/~[rR](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[uismxfr]*/,greedy:!0},string:[{pattern:/~[cCsSwW](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|#\{[^}]+\}|#(?!\{)|[^#\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[csa]?/,greedy:!0,inside:{}},{pattern:/("""|''')[\s\S]*?\1/,greedy:!0,inside:{}},{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{}}],atom:{pattern:/(^|[^:]):\w+/,lookbehind:!0,alias:"symbol"},module:{pattern:/\b[A-Z]\w*\b/,alias:"class-name"},"attr-name":/\b\w+\??:(?!:)/,argument:{pattern:/(^|[^&])&\d+/,lookbehind:!0,alias:"variable"},attribute:{pattern:/@\w+/,alias:"variable"},function:/\b[_a-zA-Z]\w*[?!]?(?:(?=\s*(?:\.\s*)?\()|(?=\/\d))/,number:/\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i,keyword:/\b(?:after|alias|and|case|catch|cond|def(?:callback|delegate|exception|impl|macro|module|n|np|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|quote|raise|require|rescue|try|unless|unquote|use|when)\b/,boolean:/\b(?:false|nil|true)\b/,operator:[/\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/,{pattern:/([^<])<(?!<)/,lookbehind:!0},{pattern:/([^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,%\[\]{}()]/},e.languages.elixir.string.forEach((function(t){t.inside={interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},rest:e.languages.elixir}}}}))}e.exports=t,t.displayName="elixir",t.aliases=[]},3972:function(e){"use strict";function t(e){e.languages.elm={comment:/--.*|\{-[\s\S]*?-\}/,char:{pattern:/'(?:[^\\'\r\n]|\\(?:[abfnrtv\\']|\d+|x[0-9a-fA-F]+|u\{[0-9a-fA-F]+\}))'/,greedy:!0},string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/"(?:[^\\"\r\n]|\\.)*"/,greedy:!0}],"import-statement":{pattern:/(^[\t ]*)import\s+[A-Z]\w*(?:\.[A-Z]\w*)*(?:\s+as\s+(?:[A-Z]\w*)(?:\.[A-Z]\w*)*)?(?:\s+exposing\s+)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|exposing|import)\b/}},keyword:/\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\b/,builtin:/\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[+\-/*=.$<>:&|^?%#@~!]{2,}|[+\-/*=$<>:&|^?%#@~!]/,hvariable:/\b(?:[A-Z]\w*\.)*[a-z]\w*\b/,constant:/\b(?:[A-Z]\w*\.)*[A-Z]\w*\b/,punctuation:/[{}[\]|(),.:]/}}e.exports=t,t.displayName="elm",t.aliases=[]},4665:function(e,t,n){"use strict";var r=n(6326),a=n(595);function i(e){e.register(r),e.register(a),function(e){e.languages.erb={delimiter:{pattern:/^(\s*)<%=?|%>(?=\s*$)/,lookbehind:!0,alias:"punctuation"},ruby:{pattern:/\s*\S[\s\S]*/,alias:"language-ruby",inside:e.languages.ruby}},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"erb",/<%=?(?:[^\r\n]|[\r\n](?!=begin)|[\r\n]=begin\s(?:[^\r\n]|[\r\n](?!=end))*[\r\n]=end)+?%>/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"erb")}))}(e)}e.exports=i,i.displayName="erb",i.aliases=[]},865:function(e){"use strict";function t(e){e.languages.erlang={comment:/%.+/,string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},"quoted-function":{pattern:/'(?:\\.|[^\\'\r\n])+'(?=\()/,alias:"function"},"quoted-atom":{pattern:/'(?:\\.|[^\\'\r\n])+'/,alias:"atom"},boolean:/\b(?:false|true)\b/,keyword:/\b(?:after|case|catch|end|fun|if|of|receive|try|when)\b/,number:[/\$\\?./,/\b\d+#[a-z0-9]+/i,/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i],function:/\b[a-z][\w@]*(?=\()/,variable:{pattern:/(^|[^@])(?:\b|\?)[A-Z_][\w@]*/,lookbehind:!0},operator:[/[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:and|andalso|band|bnot|bor|bsl|bsr|bxor|div|not|or|orelse|rem|xor)\b/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],atom:/\b[a-z][\w@]*/,punctuation:/[()[\]{}:;,.#|]|<<|>>/}}e.exports=t,t.displayName="erlang",t.aliases=[]},6168:function(e,t,n){"use strict";var r=n(6759),a=n(595);function i(e){e.register(r),e.register(a),function(e){e.languages.etlua={delimiter:{pattern:/^<%[-=]?|-?%>$/,alias:"punctuation"},"language-lua":{pattern:/[\s\S]+/,inside:e.languages.lua}},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"etlua",/<%[\s\S]+?%>/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"etlua")}))}(e)}e.exports=i,i.displayName="etlua",i.aliases=[]},3207:function(e){"use strict";function t(e){e.languages["excel-formula"]={comment:{pattern:/(\bN\(\s*)"(?:[^"]|"")*"(?=\s*\))/i,lookbehind:!0,greedy:!0},string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},reference:{pattern:/(?:'[^']*'|(?:[^\s()[\]{}<>*?"';,$&]*\[[^^\s()[\]{}<>*?"']+\])?\w+)!/,greedy:!0,alias:"string",inside:{operator:/!$/,punctuation:/'/,sheet:{pattern:/[^[\]]+$/,alias:"function"},file:{pattern:/\[[^[\]]+\]$/,inside:{punctuation:/[[\]]/}},path:/[\s\S]+/}},"function-name":{pattern:/\b[A-Z]\w*(?=\()/i,alias:"keyword"},range:{pattern:/\$?\b(?:[A-Z]+\$?\d+:\$?[A-Z]+\$?\d+|[A-Z]+:\$?[A-Z]+|\d+:\$?\d+)\b/i,alias:"property",inside:{operator:/:/,cell:/\$?[A-Z]+\$?\d+/i,column:/\$?[A-Z]+/i,row:/\$?\d+/}},cell:{pattern:/\b[A-Z]+\d+\b|\$[A-Za-z]+\$?\d+\b|\b[A-Za-z]+\$\d+\b/,alias:"property"},number:/(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?\b/i,boolean:/\b(?:FALSE|TRUE)\b/i,operator:/[-+*/^%=&,]|<[=>]?|>=?/,punctuation:/[[\]();{}|]/},e.languages.xlsx=e.languages.xls=e.languages["excel-formula"]}e.exports=t,t.displayName="excelFormula",t.aliases=[]},6175:function(e){"use strict";function t(e){!function(e){var t={function:/\b(?:BUGS?|FIX(?:MES?)?|NOTES?|TODOS?|XX+|HACKS?|WARN(?:ING)?|\?{2,}|!{2,})\b/},n={number:/\\[^\s']|%\w/},r={comment:[{pattern:/(^|\s)(?:! .*|!$)/,lookbehind:!0,inside:t},{pattern:/(^|\s)\/\*\s[\s\S]*?\*\/(?=\s|$)/,lookbehind:!0,greedy:!0,inside:t},{pattern:/(^|\s)!\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,lookbehind:!0,greedy:!0,inside:t}],number:[{pattern:/(^|\s)[+-]?\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?0(?:b[01]+|o[0-7]+|d\d+|x[\dA-F]+)(?=\s|$)/i,lookbehind:!0},{pattern:/(^|\s)[+-]?\d+\/\d+\.?(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)\+?\d+\+\d+\/\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)-\d+-\d+\/\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?(?:\d*\.\d+|\d+\.\d*|\d+)(?:e[+-]?\d+)?(?=\s|$)/i,lookbehind:!0},{pattern:/(^|\s)NAN:\s+[\da-fA-F]+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?0(?:b1\.[01]*|o1\.[0-7]*|d1\.\d*|x1\.[\dA-F]*)p\d+(?=\s|$)/i,lookbehind:!0}],regexp:{pattern:/(^|\s)R\/\s(?:\\\S|[^\\/])*\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\s|$)/,lookbehind:!0,alias:"number",inside:{variable:/\\\S/,keyword:/[+?*\[\]^$(){}.|]/,operator:{pattern:/(\/)[idmsr]+(?:-[idmsr]+)?/,lookbehind:!0}}},boolean:{pattern:/(^|\s)[tf](?=\s|$)/,lookbehind:!0},"custom-string":{pattern:/(^|\s)[A-Z0-9\-]+"\s(?:\\\S|[^"\\])*"/,lookbehind:!0,greedy:!0,alias:"string",inside:{number:/\\\S|%\w|\//}},"multiline-string":[{pattern:/(^|\s)STRING:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*;(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:{number:n.number,"semicolon-or-setlocal":{pattern:/([\r\n][ \t]*);(?=\s|$)/,lookbehind:!0,alias:"function"}}},{pattern:/(^|\s)HEREDOC:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*\S+(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:n},{pattern:/(^|\s)\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:n}],"special-using":{pattern:/(^|\s)USING:(?:\s\S+)*(?=\s+;(?:\s|$))/,lookbehind:!0,alias:"function",inside:{string:{pattern:/(\s)[^:\s]+/,lookbehind:!0}}},"stack-effect-delimiter":[{pattern:/(^|\s)(?:call|eval|execute)?\((?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)--(?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)\)(?=\s|$)/,lookbehind:!0,alias:"operator"}],combinators:{pattern:null,lookbehind:!0,alias:"keyword"},"kernel-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"sequences-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"math-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"constructor-word":{pattern:/(^|\s)<(?!=+>|-+>)\S+>(?=\s|$)/,lookbehind:!0,alias:"keyword"},"other-builtin-syntax":{pattern:null,lookbehind:!0,alias:"operator"},"conventionally-named-word":{pattern:/(^|\s)(?!")(?:(?:change|new|set|with)-\S+|\$\S+|>[^>\s]+|[^:>\s]+>|[^>\s]+>[^>\s]+|\+[^+\s]+\+|[^?\s]+\?|\?[^?\s]+|[^>\s]+>>|>>[^>\s]+|[^<\s]+<<|\([^()\s]+\)|[^!\s]+!|[^*\s]\S*\*|[^.\s]\S*\.)(?=\s|$)/,lookbehind:!0,alias:"keyword"},"colon-syntax":{pattern:/(^|\s)(?:[A-Z0-9\-]+#?)?:{1,2}\s+(?:;\S+|(?!;)\S+)(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"function"},"semicolon-or-setlocal":{pattern:/(\s)(?:;|:>)(?=\s|$)/,lookbehind:!0,alias:"function"},"curly-brace-literal-delimiter":[{pattern:/(^|\s)[a-z]*\{(?=\s)/i,lookbehind:!0,alias:"operator"},{pattern:/(\s)\}(?=\s|$)/,lookbehind:!0,alias:"operator"}],"quotation-delimiter":[{pattern:/(^|\s)\[(?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)\](?=\s|$)/,lookbehind:!0,alias:"operator"}],"normal-word":{pattern:/(^|\s)[^"\s]\S*(?=\s|$)/,lookbehind:!0},string:{pattern:/"(?:\\\S|[^"\\])*"/,greedy:!0,inside:n}},a=function(e){return(e+"").replace(/([.?*+\^$\[\]\\(){}|\-])/g,"\\$1")},i=function(e){return new RegExp("(^|\\s)(?:"+e.map(a).join("|")+")(?=\\s|$)")},o={"kernel-builtin":["or","2nipd","4drop","tuck","wrapper","nip","wrapper?","callstack>array","die","dupd","callstack","callstack?","3dup","hashcode","pick","4nip","build",">boolean","nipd","clone","5nip","eq?","?","=","swapd","2over","clear","2dup","get-retainstack","not","tuple?","dup","3nipd","call","-rotd","object","drop","assert=","assert?","-rot","execute","boa","get-callstack","curried?","3drop","pickd","overd","over","roll","3nip","swap","and","2nip","rotd","throw","(clone)","hashcode*","spin","reach","4dup","equal?","get-datastack","assert","2drop","<wrapper>","boolean?","identity-hashcode","identity-tuple?","null","composed?","new","5drop","rot","-roll","xor","identity-tuple","boolean"],"other-builtin-syntax":["=======","recursive","flushable",">>","<<<<<<","M\\","B","PRIVATE>","\\","======","final","inline","delimiter","deprecated","<PRIVATE",">>>>>>","<<<<<<<","parse-complex","malformed-complex","read-only",">>>>>>>","call-next-method","<<","foldable","$","$[","${"],"sequences-builtin":["member-eq?","mismatch","append","assert-sequence=","longer","repetition","clone-like","3sequence","assert-sequence?","last-index-from","reversed","index-from","cut*","pad-tail","join-as","remove-eq!","concat-as","but-last","snip","nths","nth","sequence","longest","slice?","<slice>","remove-nth","tail-slice","empty?","tail*","member?","virtual-sequence?","set-length","drop-prefix","iota","unclip","bounds-error?","unclip-last-slice","non-negative-integer-expected","non-negative-integer-expected?","midpoint@","longer?","?set-nth","?first","rest-slice","prepend-as","prepend","fourth","sift","subseq-start","new-sequence","?last","like","first4","1sequence","reverse","slice","virtual@","repetition?","set-last","index","4sequence","max-length","set-second","immutable-sequence","first2","first3","supremum","unclip-slice","suffix!","insert-nth","tail","3append","short","suffix","concat","flip","immutable?","reverse!","2sequence","sum","delete-all","indices","snip-slice","<iota>","check-slice","sequence?","head","append-as","halves","sequence=","collapse-slice","?second","slice-error?","product","bounds-check?","bounds-check","immutable","virtual-exemplar","harvest","remove","pad-head","last","set-fourth","cartesian-product","remove-eq","shorten","shorter","reversed?","shorter?","shortest","head-slice","pop*","tail-slice*","but-last-slice","iota?","append!","cut-slice","new-resizable","head-slice*","sequence-hashcode","pop","set-nth","?nth","second","join","immutable-sequence?","<reversed>","3append-as","virtual-sequence","subseq?","remove-nth!","length","last-index","lengthen","assert-sequence","copy","move","third","first","tail?","set-first","prefix","bounds-error","<repetition>","exchange","surround","cut","min-length","set-third","push-all","head?","subseq-start-from","delete-slice","rest","sum-lengths","head*","infimum","remove!","glue","slice-error","subseq","push","replace-slice","subseq-as","unclip-last"],"math-builtin":["number=","next-power-of-2","?1+","fp-special?","imaginary-part","float>bits","number?","fp-infinity?","bignum?","fp-snan?","denominator","gcd","*","+","fp-bitwise=","-","u>=","/",">=","bitand","power-of-2?","log2-expects-positive","neg?","<","log2",">","integer?","number","bits>double","2/","zero?","bits>float","float?","shift","ratio?","rect>","even?","ratio","fp-sign","bitnot",">fixnum","complex?","/i","integer>fixnum","/f","sgn",">bignum","next-float","u<","u>","mod","recip","rational",">float","2^","integer","fixnum?","neg","fixnum","sq","bignum",">rect","bit?","fp-qnan?","simple-gcd","complex","<fp-nan>","real",">fraction","double>bits","bitor","rem","fp-nan-payload","real-part","log2-expects-positive?","prev-float","align","unordered?","float","fp-nan?","abs","bitxor","integer>fixnum-strict","u<=","odd?","<=","/mod",">integer","real?","rational?","numerator"]};Object.keys(o).forEach((function(e){r[e].pattern=i(o[e])}));r.combinators.pattern=i(["2bi","while","2tri","bi*","4dip","both?","same?","tri@","curry","prepose","3bi","?if","tri*","2keep","3keep","curried","2keepd","when","2bi*","2tri*","4keep","bi@","keepdd","do","unless*","tri-curry","if*","loop","bi-curry*","when*","2bi@","2tri@","with","2with","either?","bi","until","3dip","3curry","tri-curry*","tri-curry@","bi-curry","keepd","compose","2dip","if","3tri","unless","tuple","keep","2curry","tri","most","while*","dip","composed","bi-curry@","find-last-from","trim-head-slice","map-as","each-from","none?","trim-tail","partition","if-empty","accumulate*","reject!","find-from","accumulate-as","collector-for-as","reject","map","map-sum","accumulate!","2each-from","follow","supremum-by","map!","unless-empty","collector","padding","reduce-index","replicate-as","infimum-by","trim-tail-slice","count","find-index","filter","accumulate*!","reject-as","map-integers","map-find","reduce","selector","interleave","2map","filter-as","binary-reduce","map-index-as","find","produce","filter!","replicate","cartesian-map","cartesian-each","find-index-from","map-find-last","3map-as","3map","find-last","selector-as","2map-as","2map-reduce","accumulate","each","each-index","accumulate*-as","when-empty","all?","collector-as","push-either","new-like","collector-for","2selector","push-if","2all?","map-reduce","3each","any?","trim-slice","2reduce","change-nth","produce-as","2each","trim","trim-head","cartesian-find","map-index","if-zero","each-integer","unless-zero","(find-integer)","when-zero","find-last-integer","(all-integers?)","times","(each-integer)","find-integer","all-integers?","unless-negative","if-positive","when-positive","when-negative","unless-positive","if-negative","case","2cleave","cond>quot","case>quot","3cleave","wrong-values","to-fixed-point","alist>quot","cond","cleave","call-effect","recursive-hashcode","spread","deep-spread>quot","2||","0||","n||","0&&","2&&","3||","1||","1&&","n&&","3&&","smart-unless*","keep-inputs","reduce-outputs","smart-when*","cleave>array","smart-with","smart-apply","smart-if","inputs/outputs","output>sequence-n","map-outputs","map-reduce-outputs","dropping","output>array","smart-map-reduce","smart-2map-reduce","output>array-n","nullary","input<sequence","append-outputs","drop-inputs","inputs","smart-2reduce","drop-outputs","smart-reduce","preserving","smart-when","outputs","append-outputs-as","smart-unless","smart-if*","sum-outputs","input<sequence-unsafe","output>sequence"]),e.languages.factor=r}(e)}e.exports=t,t.displayName="factor",t.aliases=[]},4988:function(e){"use strict";function t(e){!function(e){e.languages.false={comment:{pattern:/\{[^}]*\}/},string:{pattern:/"[^"]*"/,greedy:!0},"character-code":{pattern:/'(?:[^\r]|\r\n?)/,alias:"number"},"assembler-code":{pattern:/\d+`/,alias:"important"},number:/\d+/,operator:/[-!#$%&'*+,./:;=>?@\\^_`|~\xdf\xf8]/,punctuation:/\[|\]/,variable:/[a-z]/,"non-standard":{pattern:/[()<BDO\xae]/,alias:"bold"}}}(e)}e.exports=t,t.displayName="$false",t.aliases=[]},2727:function(e){"use strict";function t(e){e.languages["firestore-security-rules"]=e.languages.extend("clike",{comment:/\/\/.*/,keyword:/\b(?:allow|function|if|match|null|return|rules_version|service)\b/,operator:/&&|\|\||[<>!=]=?|[-+*/%]|\b(?:in|is)\b/}),delete e.languages["firestore-security-rules"]["class-name"],e.languages.insertBefore("firestore-security-rules","keyword",{path:{pattern:/(^|[\s(),])(?:\/(?:[\w\xA0-\uFFFF]+|\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)))+/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)/,inside:{operator:/=/,keyword:/\*\*/,punctuation:/[.$(){}]/}},punctuation:/\//}},method:{pattern:/(\ballow\s+)[a-z]+(?:\s*,\s*[a-z]+)*(?=\s*[:;])/,lookbehind:!0,alias:"builtin",inside:{punctuation:/,/}}})}e.exports=t,t.displayName="firestoreSecurityRules",t.aliases=[]},4037:function(e){"use strict";function t(e){!function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|any|mixed|null|void)\b/,alias:"tag"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(e)}e.exports=t,t.displayName="flow",t.aliases=[]},9770:function(e){"use strict";function t(e){e.languages.fortran={"quoted-number":{pattern:/[BOZ](['"])[A-F0-9]+\1/i,alias:"number"},string:{pattern:/(?:\b\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:[ \t]*!.*(?:\r\n?|\n)|(?![ \t]*!))|(?!\1).)*(?:\1|&)/,inside:{comment:{pattern:/(&(?:\r\n?|\n)\s*)!.*/,lookbehind:!0}}},comment:{pattern:/!.*/,greedy:!0},boolean:/\.(?:FALSE|TRUE)\.(?:_\w+)?/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,keyword:[/\b(?:CHARACTER|COMPLEX|DOUBLE ?PRECISION|INTEGER|LOGICAL|REAL)\b/i,/\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i,/\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i,/\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEIF|ELSEWHERE|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i],operator:[/\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.[A-Z]+\./i,{pattern:/(^|(?!\().)\/(?!\))/,lookbehind:!0}],punctuation:/\(\/|\/\)|[(),;:&]/}}e.exports=t,t.displayName="fortran",t.aliases=[]},1987:function(e){"use strict";function t(e){e.languages.fsharp=e.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\(\*(?!\))[\s\S]*?\*\)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|"(?:\\[\s\S]|[^\\"])*")B?/,greedy:!0},"class-name":{pattern:/(\b(?:exception|inherit|interface|new|of|type)\s+|\w\s*:\s*|\s:\??>\s*)[.\w]+\b(?:\s*(?:->|\*)\s*[.\w]+\b)*(?!\s*[:.])/,lookbehind:!0,inside:{operator:/->|\*/,punctuation:/\./}},keyword:/\b(?:let|return|use|yield)(?:!\B|\b)|\b(?:abstract|and|as|asr|assert|atomic|base|begin|break|checked|class|component|const|constraint|constructor|continue|default|delegate|do|done|downcast|downto|eager|elif|else|end|event|exception|extern|external|false|finally|fixed|for|fun|function|functor|global|if|in|include|inherit|inline|interface|internal|land|lazy|lor|lsl|lsr|lxor|match|member|method|mixin|mod|module|mutable|namespace|new|not|null|object|of|open|or|override|parallel|private|process|protected|public|pure|rec|sealed|select|sig|static|struct|tailcall|then|to|trait|true|try|type|upcast|val|virtual|void|volatile|when|while|with)\b/,number:[/\b0x[\da-fA-F]+(?:LF|lf|un)?\b/,/\b0b[01]+(?:uy|y)?\b/,/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[fm]|e[+-]?\d+)?\b/i,/\b\d+(?:[IlLsy]|UL|u[lsy]?)?\b/],operator:/([<>~&^])\1\1|([*.:<>&])\2|<-|->|[!=:]=|<?\|{1,3}>?|\??(?:<=|>=|<>|[-+*/%=<>])\??|[!?^&]|~[+~-]|:>|:\?>?/}),e.languages.insertBefore("fsharp","keyword",{preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(^#)\b(?:else|endif|if|light|line|nowarn)\b/,lookbehind:!0,alias:"keyword"}}}}),e.languages.insertBefore("fsharp","punctuation",{"computation-expression":{pattern:/\b[_a-z]\w*(?=\s*\{)/i,alias:"keyword"}}),e.languages.insertBefore("fsharp","string",{annotation:{pattern:/\[<.+?>\]/,greedy:!0,inside:{punctuation:/^\[<|>\]$/,"class-name":{pattern:/^\w+$|(^|;\s*)[A-Z]\w*(?=\()/,lookbehind:!0},"annotation-content":{pattern:/[\s\S]+/,inside:e.languages.fsharp}}},char:{pattern:/'(?:[^\\']|\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8}))'B?/,greedy:!0}})}e.exports=t,t.displayName="fsharp",t.aliases=[]},1505:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),function(e){for(var t=/[^<()"']|\((?:<expr>)*\)|<(?!#--)|<#--(?:[^-]|-(?!->))*-->|"(?:[^\\"]|\\.)*"|'(?:[^\\']|\\.)*'/.source,n=0;n<2;n++)t=t.replace(/<expr>/g,(function(){return t}));t=t.replace(/<expr>/g,/[^\s\S]/.source);var r={comment:/<#--[\s\S]*?-->/,string:[{pattern:/\br("|')(?:(?!\1)[^\\]|\\.)*\1/,greedy:!0},{pattern:RegExp(/("|')(?:(?!\1|\$\{)[^\\]|\\.|\$\{(?:(?!\})(?:<expr>))*\})*\1/.source.replace(/<expr>/g,(function(){return t}))),greedy:!0,inside:{interpolation:{pattern:RegExp(/((?:^|[^\\])(?:\\\\)*)\$\{(?:(?!\})(?:<expr>))*\}/.source.replace(/<expr>/g,(function(){return t}))),lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:null}}}}],keyword:/\b(?:as)\b/,boolean:/\b(?:false|true)\b/,"builtin-function":{pattern:/((?:^|[^?])\?\s*)\w+/,lookbehind:!0,alias:"function"},function:/\b\w+(?=\s*\()/,number:/\b\d+(?:\.\d+)?\b/,operator:/\.\.[<*!]?|->|--|\+\+|&&|\|\||\?{1,2}|[-+*/%!=<>]=?|\b(?:gt|gte|lt|lte)\b/,punctuation:/[,;.:()[\]{}]/};r.string[1].inside.interpolation.inside.rest=r,e.languages.ftl={"ftl-comment":{pattern:/^<#--[\s\S]*/,alias:"comment"},"ftl-directive":{pattern:/^<[\s\S]+>$/,inside:{directive:{pattern:/(^<\/?)[#@][a-z]\w*/i,lookbehind:!0,alias:"keyword"},punctuation:/^<\/?|\/?>$/,content:{pattern:/\s*\S[\s\S]*/,alias:"ftl",inside:r}}},"ftl-interpolation":{pattern:/^\$\{[\s\S]*\}$/,inside:{punctuation:/^\$\{|\}$/,content:{pattern:/\s*\S[\s\S]*/,alias:"ftl",inside:r}}}},e.hooks.add("before-tokenize",(function(n){var r=RegExp(/<#--[\s\S]*?-->|<\/?[#@][a-zA-Z](?:<expr>)*?>|\$\{(?:<expr>)*?\}/.source.replace(/<expr>/g,(function(){return t})),"gi");e.languages["markup-templating"].buildPlaceholders(n,"ftl",r)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"ftl")}))}(e)}e.exports=a,a.displayName="ftl",a.aliases=[]},8403:function(e){"use strict";function t(e){e.languages.gap={shell:{pattern:/^gap>[\s\S]*?(?=^gap>|$(?![\s\S]))/m,greedy:!0,inside:{gap:{pattern:/^(gap>).+(?:(?:\r(?:\n|(?!\n))|\n)>.*)*/,lookbehind:!0,inside:null},punctuation:/^gap>/}},comment:{pattern:/#.*/,greedy:!0},string:{pattern:/(^|[^\\'"])(?:'(?:[^\r\n\\']|\\.){1,10}'|"(?:[^\r\n\\"]|\\.)*"(?!")|"""[\s\S]*?""")/,lookbehind:!0,greedy:!0,inside:{continuation:{pattern:/([\r\n])>/,lookbehind:!0,alias:"punctuation"}}},keyword:/\b(?:Assert|Info|IsBound|QUIT|TryNextMethod|Unbind|and|atomic|break|continue|do|elif|else|end|fi|for|function|if|in|local|mod|not|od|or|quit|readonly|readwrite|rec|repeat|return|then|until|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:{pattern:/(^|[^\w.]|\.\.)(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?(?:_[a-z]?)?(?=$|[^\w.]|\.\.)/,lookbehind:!0},continuation:{pattern:/([\r\n])>/,lookbehind:!0,alias:"punctuation"},operator:/->|[-+*/^~=!]|<>|[<>]=?|:=|\.\./,punctuation:/[()[\]{},;.:]/},e.languages.gap.shell.inside.gap.inside=e.languages.gap}e.exports=t,t.displayName="gap",t.aliases=[]},9124:function(e){"use strict";function t(e){e.languages.gcode={comment:/;.*|\B\(.*?\)\B/,string:{pattern:/"(?:""|[^"])*"/,greedy:!0},keyword:/\b[GM]\d+(?:\.\d+)?\b/,property:/\b[A-Z]/,checksum:{pattern:/(\*)\d+/,lookbehind:!0,alias:"number"},punctuation:/[:*]/}}e.exports=t,t.displayName="gcode",t.aliases=[]},8495:function(e){"use strict";function t(e){e.languages.gdscript={comment:/#.*/,string:{pattern:/@?(?:("|')(?:(?!\1)[^\n\\]|\\[\s\S])*\1(?!"|')|"""(?:[^\\]|\\[\s\S])*?""")/,greedy:!0},"class-name":{pattern:/(^(?:class|class_name|extends)[ \t]+|^export\([ \t]*|\bas[ \t]+|(?:\b(?:const|var)[ \t]|[,(])[ \t]*\w+[ \t]*:[ \t]*|->[ \t]*)[a-zA-Z_]\w*/m,lookbehind:!0},keyword:/\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\b/,function:/\b[a-z_]\w*(?=[ \t]*\()/i,variable:/\$\w+/,number:[/\b0b[01_]+\b|\b0x[\da-fA-F_]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.[\d_]+)(?:e[+-]?[\d_]+)?\b/,/\b(?:INF|NAN|PI|TAU)\b/],constant:/\b[A-Z][A-Z_\d]*\b/,boolean:/\b(?:false|true)\b/,operator:/->|:=|&&|\|\||<<|>>|[-+*/%&|!<>=]=?|[~^]/,punctuation:/[.:,;()[\]{}]/}}e.exports=t,t.displayName="gdscript",t.aliases=[]},1019:function(e){"use strict";function t(e){e.languages.gedcom={"line-value":{pattern:/(^[\t ]*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?\w+ ).+/m,lookbehind:!0,inside:{pointer:{pattern:/^@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@$/,alias:"variable"}}},tag:{pattern:/(^[\t ]*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?)\w+/m,lookbehind:!0,alias:"string"},level:{pattern:/(^[\t ]*)\d+/m,lookbehind:!0,alias:"number"},pointer:{pattern:/@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@/,alias:"variable"}}}e.exports=t,t.displayName="gedcom",t.aliases=[]},3666:function(e){"use strict";function t(e){!function(e){var t=/(?:\r?\n|\r)[ \t]*\|.+\|(?:(?!\|).)*/.source;e.languages.gherkin={pystring:{pattern:/("""|''')[\s\S]+?\1/,alias:"string"},comment:{pattern:/(^[ \t]*)#.*/m,lookbehind:!0},tag:{pattern:/(^[ \t]*)@\S*/m,lookbehind:!0},feature:{pattern:/((?:^|\r?\n|\r)[ \t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Caracter\xedstica|Egenskab|Egenskap|Eiginleiki|Feature|F\u012b\u010da|Fitur|Fonctionnalit\xe9|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Func\u0163ionalitate|Func\u021bionalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalit\u0101te|Funkcionalnost|Funkcja|Funksie|Funktionalit\xe4t|Funktionalit\xe9it|Funzionalit\xe0|Hwaet|Hw\xe6t|Jellemz\u0151|Karakteristik|Lastnost|Mak|Mogucnost|laH|Mogu\u0107nost|Moznosti|Mo\u017enosti|OH HAI|Omadus|Ominaisuus|Osobina|\xd6zellik|Potrzeba biznesowa|perbogh|poQbogh malja'|Po\u017eadavek|Po\u017eiadavka|Pretty much|Qap|Qu'meH 'ut|Savyb\u0117|T\xednh n\u0103ng|Trajto|Vermo\xeb|Vlastnos\u0165|W\u0142a\u015bciwo\u015b\u0107|Zna\u010dilnost|\u0394\u03c5\u03bd\u03b1\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1|\u039b\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1|\u041c\u043e\u0433\u0443\u045b\u043d\u043e\u0441\u0442|\u041c\u04e9\u043c\u043a\u0438\u043d\u043b\u0435\u043a|\u041e\u0441\u043e\u0431\u0438\u043d\u0430|\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e|\u04ae\u0437\u0435\u043d\u0447\u04d9\u043b\u0435\u043a\u043b\u0435\u043b\u0435\u043a|\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b|\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043d\u043e\u0441\u0442|\u0424\u0443\u043d\u043a\u0446\u0438\u044f|\u0424\u0443\u043d\u043a\u0446\u0456\u043e\u043d\u0430\u043b|\u05ea\u05db\u05d5\u05e0\u05d4|\u062e\u0627\u0635\u064a\u0629|\u062e\u0635\u0648\u0635\u06cc\u062a|\u0635\u0644\u0627\u062d\u06cc\u062a|\u06a9\u0627\u0631\u0648\u0628\u0627\u0631 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a|\u0648\u0650\u06cc\u0698\u06af\u06cc|\u0930\u0942\u092a \u0932\u0947\u0916|\u0a16\u0a3e\u0a38\u0a40\u0a05\u0a24|\u0a28\u0a15\u0a36 \u0a28\u0a41\u0a39\u0a3e\u0a30|\u0a2e\u0a41\u0a39\u0a3e\u0a02\u0a26\u0a30\u0a3e|\u0c17\u0c41\u0c23\u0c2e\u0c41|\u0cb9\u0cc6\u0c9a\u0ccd\u0c9a\u0cb3|\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e32\u0e07\u0e18\u0e38\u0e23\u0e01\u0e34\u0e08|\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16|\u0e42\u0e04\u0e23\u0e07\u0e2b\u0e25\u0e31\u0e01|\uae30\ub2a5|\u30d5\u30a3\u30fc\u30c1\u30e3|\u529f\u80fd|\u6a5f\u80fd):(?:[^:\r\n]+(?:\r?\n|\r|$))*/,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]+/,lookbehind:!0},keyword:/[^:\r\n]+:/}},scenario:{pattern:/(^[ \t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|\xc6r|Agtergrond|All y'all|Antecedentes|Antecedents|Atbur\xf0ar\xe1s|Atbur\xf0ar\xe1sir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|B\u1ed1i c\u1ea3nh|Cefndir|Cenario|Cen\xe1rio|Cenario de Fundo|Cen\xe1rio de Fundo|Cenarios|Cen\xe1rios|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|D\xe6mi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delinea\xe7\xe3o do Cen\xe1rio|Dis is what went down|D\u1eef li\u1ec7u|Dyagram Senaryo|Dyagram senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cen\xe1rio|EXAMPLZ|Examples|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgat\xf3k\xf6nyv|Forgat\xf3k\xf6nyv v\xe1zlat|Fundo|Ge\xe7mi\u015f|Grundlage|Hannergrond|ghantoH|H\xe1tt\xe9r|Heave to|Istorik|Juhtumid|Keadaan|Khung k\u1ecbch b\u1ea3n|Khung t\xecnh hu\u1ed1ng|K\u1ecbch b\u1ea3n|Koncept|Konsep skenario|Kont\xe8ks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut chovnatlh|lut|lutmey|L\xfdsing Atbur\xf0ar\xe1sar|L\xfdsing D\xe6ma|MISHUN SRSLY|MISHUN|Menggariskan Senario|mo'|N\xe1\u010drt Scen\xe1ra|N\xe1\u010drt Sc\xe9n\xe1\u0159e|N\xe1\u010drt Scen\xe1ru|Oris scenarija|\xd6rnekler|Osnova|Osnova Scen\xe1ra|Osnova sc\xe9n\xe1\u0159e|Osnutek|Ozadje|Paraugs|Pavyzd\u017eiai|P\xe9ld\xe1k|Piem\u0113ri|Plan du sc\xe9nario|Plan du Sc\xe9nario|Plan Senaryo|Plan senaryo|Plang vum Szenario|Pozad\xed|Pozadie|Pozadina|Pr\xedklady|P\u0159\xedklady|Primer|Primeri|Primjeri|Przyk\u0142ady|Raamstsenaarium|Reckon it's like|Rerefons|Scen\xe1r|Sc\xe9n\xe1\u0159|Scenarie|Scenarij|Scenarijai|Scenarijaus \u0161ablonas|Scenariji|Scen\u0101rijs|Scen\u0101rijs p\u0113c parauga|Scenarijus|Scenario|Sc\xe9nario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se \xf0e|Se the|Se \xfee|Senario|Senaryo Deskripsyon|Senaryo deskripsyon|Senaryo|Senaryo tasla\u011f\u0131|Shiver me timbers|Situ\u0101cija|Situai|Situasie Uiteensetting|Situasie|Skenario konsep|Skenario|Skica|Structura scenariu|Structur\u0103 scenariu|Struktura scenarija|Stsenaarium|Swa hwaer swa|Swa|Swa hw\xe6r swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|T\xecnh hu\u1ed1ng|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo-ho-ho|You'll wanna|Za\u0142o\u017cenia|\u03a0\u03b1\u03c1\u03b1\u03b4\u03b5\u03af\u03b3\u03bc\u03b1\u03c4\u03b1|\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03a3\u03b5\u03bd\u03b1\u03c1\u03af\u03bf\u03c5|\u03a3\u03b5\u03bd\u03ac\u03c1\u03b9\u03b1|\u03a3\u03b5\u03bd\u03ac\u03c1\u03b9\u03bf|\u03a5\u03c0\u03cc\u03b2\u03b1\u03b8\u03c1\u03bf|\u041a\u0435\u0440\u0435\u0448|\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442|\u041a\u043e\u043d\u0446\u0435\u043f\u0442|\u041c\u0438\u0441\u0430\u043b\u043b\u0430\u0440|\u041c\u0438\u0441\u043e\u043b\u043b\u0430\u0440|\u041e\u0441\u043d\u043e\u0432\u0430|\u041f\u0435\u0440\u0435\u0434\u0443\u043c\u043e\u0432\u0430|\u041f\u043e\u0437\u0430\u0434\u0438\u043d\u0430|\u041f\u0440\u0435\u0434\u0438\u0441\u0442\u043e\u0440\u0438\u044f|\u041f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f|\u041f\u0440\u0438\u043a\u043b\u0430\u0434\u0438|\u041f\u0440\u0438\u043c\u0435\u0440|\u041f\u0440\u0438\u043c\u0435\u0440\u0438|\u041f\u0440\u0438\u043c\u0435\u0440\u044b|\u0420\u0430\u043c\u043a\u0430 \u043d\u0430 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439|\u0421\u043a\u0438\u0446\u0430|\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0458\u0430|\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f|\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u044e|\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439|\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0441\u0438|\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439\u043d\u044b\u04a3 \u0442\u04e9\u0437\u0435\u043b\u0435\u0448\u0435|\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0458\u0438|\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u043e|\u0421\u0446\u0435\u043d\u0430\u0440\u0456\u0439|\u0422\u0430\u0440\u0438\u0445|\u04ae\u0440\u043d\u04d9\u043a\u043b\u04d9\u0440|\u05d3\u05d5\u05d2\u05de\u05d0\u05d5\u05ea|\u05e8\u05e7\u05e2|\u05ea\u05d1\u05e0\u05d9\u05ea \u05ea\u05e8\u05d7\u05d9\u05e9|\u05ea\u05e8\u05d7\u05d9\u05e9|\u0627\u0644\u062e\u0644\u0641\u064a\u0629|\u0627\u0644\u06af\u0648\u06cc \u0633\u0646\u0627\u0631\u06cc\u0648|\u0627\u0645\u062b\u0644\u0629|\u067e\u0633 \u0645\u0646\u0638\u0631|\u0632\u0645\u06cc\u0646\u0647|\u0633\u0646\u0627\u0631\u06cc\u0648|\u0633\u064a\u0646\u0627\u0631\u064a\u0648|\u0633\u064a\u0646\u0627\u0631\u064a\u0648 \u0645\u062e\u0637\u0637|\u0645\u062b\u0627\u0644\u06cc\u06ba|\u0645\u0646\u0638\u0631 \u0646\u0627\u0645\u06d2 \u06a9\u0627 \u062e\u0627\u06a9\u06c1|\u0645\u0646\u0638\u0631\u0646\u0627\u0645\u06c1|\u0646\u0645\u0648\u0646\u0647 \u0647\u0627|\u0909\u0926\u093e\u0939\u0930\u0923|\u092a\u0930\u093f\u0926\u0943\u0936\u094d\u092f|\u092a\u0930\u093f\u0926\u0943\u0936\u094d\u092f \u0930\u0942\u092a\u0930\u0947\u0916\u093e|\u092a\u0943\u0937\u094d\u0920\u092d\u0942\u092e\u093f|\u0a09\u0a26\u0a3e\u0a39\u0a30\u0a28\u0a3e\u0a02|\u0a2a\u0a1f\u0a15\u0a25\u0a3e|\u0a2a\u0a1f\u0a15\u0a25\u0a3e \u0a22\u0a3e\u0a02\u0a1a\u0a3e|\u0a2a\u0a1f\u0a15\u0a25\u0a3e \u0a30\u0a42\u0a2a \u0a30\u0a47\u0a16\u0a3e|\u0a2a\u0a3f\u0a1b\u0a4b\u0a15\u0a5c|\u0c09\u0c26\u0c3e\u0c39\u0c30\u0c23\u0c32\u0c41|\u0c15\u0c25\u0c28\u0c02|\u0c28\u0c47\u0c2a\u0c25\u0c4d\u0c2f\u0c02|\u0c38\u0c28\u0c4d\u0c28\u0c3f\u0c35\u0c47\u0c36\u0c02|\u0c89\u0ca6\u0cbe\u0cb9\u0cb0\u0ca3\u0cc6\u0c97\u0cb3\u0cc1|\u0c95\u0ca5\u0cbe\u0cb8\u0cbe\u0cb0\u0cbe\u0c82\u0cb6|\u0cb5\u0cbf\u0cb5\u0cb0\u0ca3\u0cc6|\u0cb9\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6\u0cb2\u0cc6|\u0e42\u0e04\u0e23\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e02\u0e2d\u0e07\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c|\u0e0a\u0e38\u0e14\u0e02\u0e2d\u0e07\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07|\u0e0a\u0e38\u0e14\u0e02\u0e2d\u0e07\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c|\u0e41\u0e19\u0e27\u0e04\u0e34\u0e14|\u0e2a\u0e23\u0e38\u0e1b\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c|\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c|\ubc30\uacbd|\uc2dc\ub098\ub9ac\uc624|\uc2dc\ub098\ub9ac\uc624 \uac1c\uc694|\uc608|\u30b5\u30f3\u30d7\u30eb|\u30b7\u30ca\u30ea\u30aa|\u30b7\u30ca\u30ea\u30aa\u30a2\u30a6\u30c8\u30e9\u30a4\u30f3|\u30b7\u30ca\u30ea\u30aa\u30c6\u30f3\u30d7\u30ec|\u30b7\u30ca\u30ea\u30aa\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8|\u30c6\u30f3\u30d7\u30ec|\u4f8b|\u4f8b\u5b50|\u5267\u672c|\u5267\u672c\u5927\u7eb2|\u5287\u672c|\u5287\u672c\u5927\u7db1|\u573a\u666f|\u573a\u666f\u5927\u7eb2|\u5834\u666f|\u5834\u666f\u5927\u7db1|\u80cc\u666f):[^:\r\n]*/m,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]*/,lookbehind:!0},keyword:/[^:\r\n]+:/}},"table-body":{pattern:RegExp("("+t+")(?:"+t+")+"),lookbehind:!0,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"},td:{pattern:/\s*[^\s|][^|]*/,alias:"string"},punctuation:/\|/}},"table-head":{pattern:RegExp(t),inside:{th:{pattern:/\s*[^\s|][^|]*/,alias:"variable"},punctuation:/\|/}},atrule:{pattern:/(^[ \t]+)(?:'a|'ach|'ej|7|a|A tak\xe9|A taktie\u017e|A tie\u017e|A z\xe1rove\u0148|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|At\xe8s|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Bi\u1ebft|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|C\xe2nd|Cand|Cando|Ce|Cuando|\u010ce|\xd0a \xf0e|\xd0a|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Da\u0163i fiind|Da\u021bi fiind|DEN|Dato|De|Den youse gotta|Dengan|Diberi|Diyelim ki|Donada|Donat|Donita\u0135o|Do|Dun|Duota|\xd0urh|Eeldades|Ef|E\u011fer ki|Entao|Ent\xe3o|Ent\xf3n|E|En|Entonces|Epi|\xc9s|Etant donn\xe9e|Etant donn\xe9|Et|\xc9tant donn\xe9es|\xc9tant donn\xe9e|\xc9tant donn\xe9|Etant donn\xe9es|Etant donn\xe9s|\xc9tant donn\xe9s|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Je\u015bli|Je\u017celi|Kad|Kada|Kadar|Kai|Kaj|Kdy\u017e|Ke\u010f|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|L\xe8 sa a|L\xe8|Logo|Lorsqu'<|Lorsque|m\xe4|Maar|Mais|Maj\u0105c|Ma|Majd|Maka|Manawa|Mas|Men|Menawa|Mutta|Nalika|Nalikaning|Nanging|N\xe5r|N\xe4r|Nato|Nh\u01b0ng|Niin|Njuk|O zaman|Och|Og|Oletetaan|Ond|Onda|Oraz|Pak|Pero|Per\xf2|Podano|Pokia\u013e|Pokud|Potem|Potom|Privzeto|Pryd|Quan|Quand|Quando|qaSDI'|S\xe5|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|\u015ei|\u0218i|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Th\xec|Thurh|Toda|Too right|Un|Und|ugeholl|V\xe0|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za p\u0159edpokladu|Zadan|Zadani|Zadano|Zadate|Zadato|Zak\u0142adaj\u0105c|Zaradi|Zatati|\xdea \xfee|\xdea|\xde\xe1|\xdeegar|\xdeurh|\u0391\u03bb\u03bb\u03ac|\u0394\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03bf\u03c5|\u039a\u03b1\u03b9|\u038c\u03c4\u03b1\u03bd|\u03a4\u03cc\u03c4\u03b5|\u0410 \u0442\u0430\u043a\u043e\u0436|\u0410\u0433\u0430\u0440|\u0410\u043b\u0435|\u0410\u043b\u0438|\u0410\u043c\u043c\u043e|\u0410|\u04d8\u0433\u04d9\u0440|\u04d8\u0439\u0442\u0438\u043a|\u04d8\u043c\u043c\u0430|\u0411\u0438\u0440\u043e\u043a|\u0412\u0430|\u0412\u04d9|\u0414\u0430\u0434\u0435\u043d\u043e|\u0414\u0430\u043d\u043e|\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c|\u0415\u0441\u043b\u0438|\u0417\u0430\u0434\u0430\u0442\u0435|\u0417\u0430\u0434\u0430\u0442\u0438|\u0417\u0430\u0434\u0430\u0442\u043e|\u0418|\u0406|\u041a \u0442\u043e\u043c\u0443 \u0436\u0435|\u041a\u0430\u0434\u0430|\u041a\u0430\u0434|\u041a\u043e\u0433\u0430\u0442\u043e|\u041a\u043e\u0433\u0434\u0430|\u041a\u043e\u043b\u0438|\u041b\u04d9\u043a\u0438\u043d|\u041b\u0435\u043a\u0438\u043d|\u041d\u04d9\u0442\u0438\u0497\u04d9\u0434\u04d9|\u041d\u0435\u0445\u0430\u0439|\u041d\u043e|\u041e\u043d\u0434\u0430|\u041f\u0440\u0438\u043f\u0443\u0441\u0442\u0438\u043c\u043e, \u0449\u043e|\u041f\u0440\u0438\u043f\u0443\u0441\u0442\u0438\u043c\u043e|\u041f\u0443\u0441\u0442\u044c|\u0422\u0430\u043a\u0436\u0435|\u0422\u0430|\u0422\u043e\u0433\u0434\u0430|\u0422\u043e\u0434\u0456|\u0422\u043e|\u0423\u043d\u0434\u0430|\u04ba\u04d9\u043c|\u042f\u043a\u0449\u043e|\u05d0\u05d1\u05dc|\u05d0\u05d6\u05d9|\u05d0\u05d6|\u05d1\u05d4\u05d9\u05e0\u05ea\u05df|\u05d5\u05d2\u05dd|\u05db\u05d0\u05e9\u05e8|\u0622\u0646\u06af\u0627\u0647|\u0627\u0630\u0627\u064b|\u0627\u06af\u0631|\u0627\u0645\u0627|\u0627\u0648\u0631|\u0628\u0627 \u0641\u0631\u0636|\u0628\u0627\u0644\u0641\u0631\u0636|\u0628\u0641\u0631\u0636|\u067e\u06be\u0631|\u062a\u0628|\u062b\u0645|\u062c\u0628|\u0639\u0646\u062f\u0645\u0627|\u0641\u0631\u0636 \u06a9\u06cc\u0627|\u0644\u0643\u0646|\u0644\u06cc\u06a9\u0646|\u0645\u062a\u0649|\u0647\u0646\u06af\u0627\u0645\u06cc|\u0648|\u0905\u0917\u0930|\u0914\u0930|\u0915\u0926\u093e|\u0915\u093f\u0928\u094d\u0924\u0941|\u091a\u0942\u0902\u0915\u093f|\u091c\u092c|\u0924\u0925\u093e|\u0924\u0926\u093e|\u0924\u092c|\u092a\u0930\u0928\u094d\u0924\u0941|\u092a\u0930|\u092f\u0926\u093f|\u0a05\u0a24\u0a47|\u0a1c\u0a26\u0a4b\u0a02|\u0a1c\u0a3f\u0a35\u0a47\u0a02 \u0a15\u0a3f|\u0a1c\u0a47\u0a15\u0a30|\u0a24\u0a26|\u0a2a\u0a30|\u0c05\u0c2a\u0c4d\u0c2a\u0c41\u0c21\u0c41|\u0c08 \u0c2a\u0c30\u0c3f\u0c38\u0c4d\u0c25\u0c3f\u0c24\u0c3f\u0c32\u0c4b|\u0c15\u0c3e\u0c28\u0c3f|\u0c1a\u0c46\u0c2a\u0c4d\u0c2a\u0c2c\u0c21\u0c3f\u0c28\u0c26\u0c3f|\u0c2e\u0c30\u0c3f\u0c2f\u0c41|\u0c86\u0ca6\u0cb0\u0cc6|\u0ca8\u0c82\u0ca4\u0cb0|\u0ca8\u0cbf\u0cd5\u0ca1\u0cbf\u0ca6|\u0cae\u0ca4\u0ccd\u0ca4\u0cc1|\u0cb8\u0ccd\u0ca5\u0cbf\u0ca4\u0cbf\u0caf\u0ca8\u0ccd\u0ca8\u0cc1|\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e43\u0e2b\u0e49|\u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19|\u0e41\u0e15\u0e48|\u0e40\u0e21\u0e37\u0e48\u0e2d|\u0e41\u0e25\u0e30|\uadf8\ub7ec\uba74<|\uadf8\ub9ac\uace0<|\ub2e8<|\ub9cc\uc57d<|\ub9cc\uc77c<|\uba3c\uc800<|\uc870\uac74<|\ud558\uc9c0\ub9cc<|\u304b\u3064<|\u3057\u304b\u3057<|\u305f\u3060\u3057<|\u306a\u3089\u3070<|\u3082\u3057<|\u4e26\u4e14<|\u4f46\u3057<|\u4f46\u662f<|\u5047\u5982<|\u5047\u5b9a<|\u5047\u8a2d<|\u5047\u8bbe<|\u524d\u63d0<|\u540c\u65f6<|\u540c\u6642<|\u5e76\u4e14<|\u5f53<|\u7576<|\u800c\u4e14<|\u90a3\u4e48<|\u90a3\u9ebc<)(?=[ \t])/m,lookbehind:!0},string:{pattern:/"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"}}},outline:{pattern:/<[^>]+>/,alias:"variable"}}}(e)}e.exports=t,t.displayName="gherkin",t.aliases=[]},5120:function(e){"use strict";function t(e){e.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m}}e.exports=t,t.displayName="git",t.aliases=[]},214:function(e,t,n){"use strict";var r=n(272);function a(e){e.register(r),e.languages.glsl=e.languages.extend("c",{keyword:/\b(?:active|asm|atomic_uint|attribute|[ibdu]?vec[234]|bool|break|buffer|case|cast|centroid|class|coherent|common|const|continue|d?mat[234](?:x[234])?|default|discard|do|double|else|enum|extern|external|false|filter|fixed|flat|float|for|fvec[234]|goto|half|highp|hvec[234]|[iu]?sampler2DMS(?:Array)?|[iu]?sampler2DRect|[iu]?samplerBuffer|[iu]?samplerCube|[iu]?samplerCubeArray|[iu]?sampler[123]D|[iu]?sampler[12]DArray|[iu]?image2DMS(?:Array)?|[iu]?image2DRect|[iu]?imageBuffer|[iu]?imageCube|[iu]?imageCubeArray|[iu]?image[123]D|[iu]?image[12]DArray|if|in|inline|inout|input|int|interface|invariant|layout|long|lowp|mediump|namespace|noinline|noperspective|out|output|partition|patch|precise|precision|public|readonly|resource|restrict|return|sample|sampler[12]DArrayShadow|sampler[12]DShadow|sampler2DRectShadow|sampler3DRect|samplerCubeArrayShadow|samplerCubeShadow|shared|short|sizeof|smooth|static|struct|subroutine|superp|switch|template|this|true|typedef|uint|uniform|union|unsigned|using|varying|void|volatile|while|writeonly)\b/})}e.exports=a,a.displayName="glsl",a.aliases=[]},1903:function(e){"use strict";function t(e){e.languages.gamemakerlanguage=e.languages.gml=e.languages.extend("clike",{keyword:/\b(?:break|case|continue|default|do|else|enum|exit|for|globalvar|if|repeat|return|switch|until|var|while)\b/,number:/(?:\b0x[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ulf]{0,4}/i,operator:/--|\+\+|[-+%/=]=?|!=|\*\*?=?|<[<=>]?|>[=>]?|&&?|\^\^?|\|\|?|~|\b(?:and|at|not|or|with|xor)\b/,constant:/\b(?:GM_build_date|GM_version|action_(?:continue|restart|reverse|stop)|all|gamespeed_(?:fps|microseconds)|global|local|noone|other|pi|pointer_(?:invalid|null)|self|timezone_(?:local|utc)|undefined|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|post|pre)|keypress|keyrelease|trigger|(?:left|middle|no|right)_button|(?:left|middle|right)_press|(?:left|middle|right)_release|mouse_(?:enter|leave|wheel_down|wheel_up)|global_(?:left|middle|right)_button|global_(?:left|middle|right)_press|global_(?:left|middle|right)_release|joystick(?:1|2)_(?:button1|button2|button3|button4|button5|button6|button7|button8|down|left|right|up)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\d|gui|gui_begin|gui_end|step_(?:begin|end|normal))|vk_(?:alt|anykey|backspace|control|delete|down|end|enter|escape|home|insert|left|nokey|pagedown|pageup|pause|printscreen|return|right|shift|space|tab|up|f\d|numpad\d|add|decimal|divide|lalt|lcontrol|lshift|multiply|ralt|rcontrol|rshift|subtract)|achievement_(?:filter_(?:all_players|favorites_only|friends_only)|friends_info|info|leaderboard_info|our_info|pic_loaded|show_(?:achievement|bank|friend_picker|leaderboard|profile|purchase_prompt|ui)|type_challenge|type_score_challenge)|asset_(?:font|object|path|room|script|shader|sound|sprite|tiles|timeline|unknown)|audio_(?:3d|falloff_(?:exponent_distance|exponent_distance_clamped|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|none)|mono|new_system|old_system|stereo)|bm_(?:add|complex|dest_alpha|dest_color|dest_colour|inv_dest_alpha|inv_dest_color|inv_dest_colour|inv_src_alpha|inv_src_color|inv_src_colour|max|normal|one|src_alpha|src_alpha_sat|src_color|src_colour|subtract|zero)|browser_(?:chrome|firefox|ie|ie_mobile|not_a_browser|opera|safari|safari_mobile|tizen|unknown|windows_store)|buffer_(?:bool|f16|f32|f64|fast|fixed|generalerror|grow|invalidtype|network|outofbounds|outofspace|s16|s32|s8|seek_end|seek_relative|seek_start|string|text|u16|u32|u64|u8|vbuffer|wrap)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)|cmpfunc_(?:always|equal|greater|greaterequal|less|lessequal|never|notequal)|cr_(?:appstart|arrow|beam|cross|default|drag|handpoint|hourglass|none|size_all|size_nesw|size_ns|size_nwse|size_we|uparrow)|cull_(?:clockwise|counterclockwise|noculling)|device_(?:emulator|tablet)|device_ios_(?:ipad|ipad_retina|iphone|iphone5|iphone6|iphone6plus|iphone_retina|unknown)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|dll_(?:cdecl|cdel|stdcall)|ds_type_(?:grid|list|map|priority|queue|stack)|ef_(?:cloud|ellipse|explosion|firework|flare|rain|ring|smoke|smokeup|snow|spark|star)|fa_(?:archive|bottom|center|directory|hidden|left|middle|readonly|right|sysfile|top|volumeid)|fb_login_(?:default|fallback_to_webview|forcing_safari|forcing_webview|no_fallback_to_webview|use_system_account)|iap_(?:available|canceled|ev_consume|ev_product|ev_purchase|ev_restore|ev_storeload|failed|purchased|refunded|status_available|status_loading|status_processing|status_restoring|status_unavailable|status_uninitialised|storeload_failed|storeload_ok|unavailable)|leaderboard_type_(?:number|time_mins_secs)|lighttype_(?:dir|point)|matrix_(?:projection|view|world)|mb_(?:any|left|middle|none|right)|network_(?:config_(?:connect_timeout|disable_reliable_udp|enable_reliable_udp|use_non_blocking_socket)|socket_(?:bluetooth|tcp|udp)|type_(?:connect|data|disconnect|non_blocking_connect))|of_challenge_(?:lose|tie|win)|os_(?:android|ios|linux|macosx|ps3|ps4|psvita|unknown|uwp|win32|win8native|windows|winphone|xboxone)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|angle|angle_limits|damping_ratio|frequency|length_1|length_2|lower_angle_limit|max_force|max_length|max_motor_force|max_motor_torque|max_torque|motor_force|motor_speed|motor_torque|reaction_force_x|reaction_force_y|reaction_torque|speed|translation|upper_angle_limit)|phy_particle_data_flag_(?:category|color|colour|position|typeflags|velocity)|phy_particle_flag_(?:colormixing|colourmixing|elastic|powder|spring|tensile|viscous|wall|water|zombie)|phy_particle_group_flag_(?:rigid|solid)|pr_(?:linelist|linestrip|pointlist|trianglefan|trianglelist|trianglestrip)|ps_(?:distr|shape)_(?:diamond|ellipse|gaussian|invgaussian|line|linear|rectangle)|pt_shape_(?:circle|cloud|disk|explosion|flare|line|pixel|ring|smoke|snow|spark|sphere|square|star)|ty_(?:real|string)|gp_(?:face\d|axislh|axislv|axisrh|axisrv|padd|padl|padr|padu|select|shoulderl|shoulderlb|shoulderr|shoulderrb|start|stickl|stickr)|lb_disp_(?:none|numeric|time_ms|time_sec)|lb_sort_(?:ascending|descending|none)|ov_(?:achievements|community|friends|gamegroup|players|settings)|ugc_(?:filetype_(?:community|microtrans)|list_(?:Favorited|Followed|Published|Subscribed|UsedOrPlayed|VotedDown|VotedOn|VotedUp|WillVoteLater)|match_(?:AllGuides|Artwork|Collections|ControllerBindings|IntegratedGuides|Items|Items_Mtx|Items_ReadyToUse|Screenshots|UsableInGame|Videos|WebGuides)|query_(?:AcceptedForGameRankedByAcceptanceDate|CreatedByFriendsRankedByPublicationDate|FavoritedByFriendsRankedByPublicationDate|NotYetRated)|query_RankedBy(?:NumTimesReported|PublicationDate|TextSearch|TotalVotesAsc|Trend|Vote|VotesUp)|result_success|sortorder_CreationOrder(?:Asc|Desc)|sortorder_(?:ForModeration|LastUpdatedDesc|SubscriptionDateDesc|TitleAsc|VoteScoreDesc)|visibility_(?:friends_only|private|public))|vertex_usage_(?:binormal|blendindices|blendweight|color|colour|depth|fog|normal|position|psize|sample|tangent|texcoord|textcoord)|vertex_type_(?:float\d|color|colour|ubyte4)|input_type|layerelementtype_(?:background|instance|oldtilemap|particlesystem|sprite|tile|tilemap|undefined)|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|tile_(?:flip|index_mask|mirror|rotate)|(?:obj|rm|scr|spr)\w+)\b/,variable:/\b(?:alarm|application_surface|async_load|background_(?:alpha|blend|color|colour|foreground|height|hspeed|htiled|index|showcolor|showcolour|visible|vspeed|vtiled|width|x|xscale|y|yscale)|bbox_(?:bottom|left|right|top)|browser_(?:height|width)|caption_(?:health|lives|score)|current_(?:day|hour|minute|month|second|time|weekday|year)|cursor_sprite|debug_mode|delta_time|direction|display_aa|error_(?:last|occurred)|event_(?:action|number|object|type)|fps|fps_real|friction|game_(?:display|project|save)_(?:id|name)|gamemaker_(?:pro|registered|version)|gravity|gravity_direction|(?:h|v)speed|health|iap_data|id|image_(?:alpha|angle|blend|depth|index|number|speed|xscale|yscale)|instance_(?:count|id)|keyboard_(?:key|lastchar|lastkey|string)|layer|lives|mask_index|mouse_(?:button|lastbutton|x|y)|object_index|os_(?:browser|device|type|version)|path_(?:endaction|index|orientation|position|positionprevious|scale|speed)|persistent|phy_(?:rotation|(?:col_normal|collision|com|linear_velocity|position|speed)_(?:x|y)|angular_(?:damping|velocity)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|pointer_(?:invalid|null)|room|room_(?:caption|first|height|last|persistent|speed|width)|score|secure_mode|show_(?:health|lives|score)|solid|speed|sprite_(?:height|index|width|xoffset|yoffset)|temp_directory|timeline_(?:index|loop|position|running|speed)|transition_(?:color|kind|steps)|undefined|view_(?:angle|current|enabled|(?:h|v)(?:border|speed)|(?:h|w|x|y)port|(?:h|w|x|y)view|object|surface_id|visible)|visible|webgl_enabled|working_directory|(?:x|y)(?:previous|start)|x|y|argument(?:_relitive|_count|\d)|argument|global|local|other|self)\b/})}e.exports=t,t.displayName="gml",t.aliases=[]},288:function(e){"use strict";function t(e){e.languages.gn={comment:{pattern:/#.*/,greedy:!0},"string-literal":{pattern:/(^|[^\\"])"(?:[^\r\n"\\]|\\.)*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\{[\s\S]*?\}|[a-zA-Z_]\w*|0x[a-fA-F0-9]{2})/,lookbehind:!0,inside:{number:/^\$0x[\s\S]{2}$/,variable:/^\$\w+$/,"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:null}}},string:/[\s\S]+/}},keyword:/\b(?:else|if)\b/,boolean:/\b(?:false|true)\b/,"builtin-function":{pattern:/\b(?:assert|defined|foreach|import|pool|print|template|tool|toolchain)(?=\s*\()/i,alias:"keyword"},function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:current_cpu|current_os|current_toolchain|default_toolchain|host_cpu|host_os|root_build_dir|root_gen_dir|root_out_dir|target_cpu|target_gen_dir|target_os|target_out_dir)\b/,number:/-?\b\d+\b/,operator:/[-+!=<>]=?|&&|\|\|/,punctuation:/[(){}[\],.]/},e.languages.gn["string-literal"].inside.interpolation.inside.expression.inside=e.languages.gn,e.languages.gni=e.languages.gn}e.exports=t,t.displayName="gn",t.aliases=["gni"]},78:function(e){"use strict";function t(e){e.languages["go-mod"]=e.languages["go-module"]={comment:{pattern:/\/\/.*/,greedy:!0},version:{pattern:/(^|[\s()[\],])v\d+\.\d+\.\d+(?:[+-][-+.\w]*)?(?![^\s()[\],])/,lookbehind:!0,alias:"number"},"go-version":{pattern:/((?:^|\s)go\s+)\d+(?:\.\d+){1,2}/,lookbehind:!0,alias:"number"},keyword:{pattern:/^([ \t]*)(?:exclude|go|module|replace|require|retract)\b/m,lookbehind:!0},operator:/=>/,punctuation:/[()[\],]/}}e.exports=t,t.displayName="goModule",t.aliases=[]},8558:function(e){"use strict";function t(e){e.languages.go=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),e.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete e.languages.go["class-name"]}e.exports=t,t.displayName="go",t.aliases=[]},8430:function(e){"use strict";function t(e){e.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:e.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},e.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!==typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var i=p(/^\($/,/^\)$/);if(-1===i)continue;for(;n<i;n++){var o=u(0);"variable"===o.type&&(m(o,"variable-input"),a.push(o.content))}n=i+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,m(u(0),"property-mutation"),a.length>0)){var s=p(/^\{$/,/^\}$/);if(-1===s)continue;for(var l=n;l<s;l++){var c=t[l];"variable"===c.type&&a.indexOf(c.content)>=0&&m(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return!1}return!0}function p(e,r){for(var a=1,i=n;i<t.length;i++){var o=t[i],s=o.content;if("punctuation"===o.type&&"string"===typeof s)if(e.test(s))a++;else if(r.test(s)&&0===--a)return i}return-1}function m(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}}))}e.exports=t,t.displayName="graphql",t.aliases=[]},7986:function(e){"use strict";function t(e){e.languages.groovy=e.languages.extend("clike",{string:[{pattern:/("""|''')(?:[^\\]|\\[\s\S])*?\1|\$\/(?:[^/$]|\$(?:[/$]|(?![/$]))|\/(?!\$))*\/\$/,greedy:!0},{pattern:/(["'/])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],keyword:/\b(?:abstract|as|assert|boolean|break|byte|case|catch|char|class|const|continue|def|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|in|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/,number:/\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?\d+)?)[glidf]?\b/i,operator:{pattern:/(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.\.(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),e.languages.insertBefore("groovy","string",{shebang:{pattern:/#!.+/,alias:"comment"}}),e.languages.insertBefore("groovy","punctuation",{"spock-block":/\b(?:and|cleanup|expect|given|setup|then|when|where):/}),e.languages.insertBefore("groovy","function",{annotation:{pattern:/(^|[^.])@\w+/,lookbehind:!0,alias:"punctuation"}}),e.hooks.add("wrap",(function(t){if("groovy"===t.language&&"string"===t.type){var n=t.content.value[0];if("'"!=n){var r=/([^\\])(?:\$(?:\{.*?\}|[\w.]+))/;"$"===n&&(r=/([^\$])(?:\$(?:\{.*?\}|[\w.]+))/),t.content.value=t.content.value.replace(/&lt;/g,"<").replace(/&amp;/g,"&"),t.content=e.highlight(t.content.value,{expression:{pattern:r,lookbehind:!0,inside:e.languages.groovy}}),t.classes.push("/"===n?"regex":"gstring")}}}))}e.exports=t,t.displayName="groovy",t.aliases=[]},7865:function(e,t,n){"use strict";var r=n(6326);function a(e){e.register(r),function(e){e.languages.haml={"multiline-comment":{pattern:/((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*(?:(?:\r?\n|\r)\2[\t ].+)*/,lookbehind:!0,alias:"comment"},"multiline-code":[{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(?:(?:\r?\n|\r)\2[\t ].*,[\t ]*)*(?:(?:\r?\n|\r)\2[\t ].+)/,lookbehind:!0,inside:e.languages.ruby},{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*(?:(?:\r?\n|\r)\2[\t ].*\|[\t ]*)*/,lookbehind:!0,inside:e.languages.ruby}],filter:{pattern:/((?:^|\r?\n|\r)([\t ]*)):[\w-]+(?:(?:\r?\n|\r)(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"symbol"}}},markup:{pattern:/((?:^|\r?\n|\r)[\t ]*)<.+/,lookbehind:!0,inside:e.languages.markup},doctype:{pattern:/((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/,lookbehind:!0},tag:{pattern:/((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^{}])+\}|\[[^\]]+\])*[\/<>]*/,lookbehind:!0,inside:{attributes:[{pattern:/(^|[^#])\{(?:\{[^}]+\}|[^{}])+\}/,lookbehind:!0,inside:e.languages.ruby},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*)(?:"(?:\\.|[^\\"\r\n])*"|[^)\s]+)/,lookbehind:!0},"attr-name":/[\w:-]+(?=\s*!?=|\s*[,)])/,punctuation:/[=(),]/}},{pattern:/\[[^\]]+\]/,inside:e.languages.ruby}],punctuation:/[<>]/}},code:{pattern:/((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/,lookbehind:!0,inside:e.languages.ruby},interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},ruby:{pattern:/[\s\S]+/,inside:e.languages.ruby}}},punctuation:{pattern:/((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/,lookbehind:!0}};for(var t=["css",{filter:"coffee",language:"coffeescript"},"erb","javascript","less","markdown","ruby","scss","textile"],n={},r=0,a=t.length;r<a;r++){var i=t[r];i="string"===typeof i?{filter:i,language:i}:i,e.languages[i.language]&&(n["filter-"+i.filter]={pattern:RegExp("((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+".replace("{{filter_name}}",(function(){return i.filter}))),lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"symbol"},text:{pattern:/[\s\S]+/,alias:[i.language,"language-"+i.language],inside:e.languages[i.language]}}})}e.languages.insertBefore("haml","filter",n)}(e)}e.exports=a,a.displayName="haml",a.aliases=[]},4490:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(e)}e.exports=a,a.displayName="handlebars",a.aliases=["hbs"]},9233:function(e){"use strict";function t(e){e.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\/].*|$)|\{-[\s\S]*?-\})/m,lookbehind:!0},char:{pattern:/'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|ACK|BEL|BS|CAN|CR|DC1|DC2|DC3|DC4|DEL|DLE|EM|ENQ|EOT|ESC|ETB|ETX|FF|FS|GS|HT|LF|NAK|NUL|RS|SI|SO|SOH|SP|STX|SUB|SYN|US|VT|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,alias:"string"},string:{pattern:/"(?:[^\\"]|\\(?:\S|\s+\\))*"/,greedy:!0},keyword:/\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,"import-statement":{pattern:/(^[\t ]*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|hiding|import|qualified)\b/,punctuation:/\./}},builtin:/\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:[{pattern:/`(?:[A-Z][\w']*\.)*[_a-z][\w']*`/,greedy:!0},{pattern:/(\s)\.(?=\s)/,lookbehind:!0},/[-!#$%*+=?&@|~:<>^\\\/][-!#$%*+=?&@|~.:<>^\\\/]*|\.[-!#$%*+=?&@|~.:<>^\\\/]+/],hvariable:{pattern:/\b(?:[A-Z][\w']*\.)*[_a-z][\w']*/,inside:{punctuation:/\./}},constant:{pattern:/\b(?:[A-Z][\w']*\.)*[A-Z][\w']*/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:]/},e.languages.hs=e.languages.haskell}e.exports=t,t.displayName="haskell",t.aliases=["hs"]},6647:function(e){"use strict";function t(e){e.languages.haxe=e.languages.extend("clike",{string:{pattern:/"(?:[^"\\]|\\[\s\S])*"/,greedy:!0},"class-name":[{pattern:/(\b(?:abstract|class|enum|extends|implements|interface|new|typedef)\s+)[A-Z_]\w*/,lookbehind:!0},/\b[A-Z]\w*/],keyword:/\bthis\b|\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|final|for|from|function|if|implements|import|in|inline|interface|macro|new|null|operator|overload|override|package|private|public|return|static|super|switch|throw|to|try|typedef|untyped|using|var|while)(?!\.)\b/,function:{pattern:/\b[a-z_]\w*(?=\s*(?:<[^<>]*>\s*)?\()/i,greedy:!0},operator:/\.{3}|\+\+|--|&&|\|\||->|=>|(?:<<?|>{1,3}|[-+*/%!=&|^])=?|[?:~]/}),e.languages.insertBefore("haxe","string",{"string-interpolation":{pattern:/'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{interpolation:{pattern:/(^|[^\\])\$(?:\w+|\{[^{}]+\})/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.haxe}}},string:/[\s\S]+/}}}),e.languages.insertBefore("haxe","class-name",{regex:{pattern:/~\/(?:[^\/\\\r\n]|\\.)+\/[a-z]*/,greedy:!0,inside:{"regex-flags":/\b[a-z]+$/,"regex-source":{pattern:/^(~\/)[\s\S]+(?=\/$)/,lookbehind:!0,alias:"language-regex",inside:e.languages.regex},"regex-delimiter":/^~\/|\/$/}}}),e.languages.insertBefore("haxe","keyword",{preprocessor:{pattern:/#(?:else|elseif|end|if)\b.*/,alias:"property"},metadata:{pattern:/@:?[\w.]+/,alias:"symbol"},reification:{pattern:/\$(?:\w+|(?=\{))/,alias:"important"}})}e.exports=t,t.displayName="haxe",t.aliases=[]},8237:function(e){"use strict";function t(e){e.languages.hcl={comment:/(?:\/\/|#).*|\/\*[\s\S]*?(?:\*\/|$)/,heredoc:{pattern:/<<-?(\w+\b)[\s\S]*?^[ \t]*\1/m,greedy:!0,alias:"string"},keyword:[{pattern:/(?:data|resource)\s+(?:"(?:\\[\s\S]|[^\\"])*")(?=\s+"[\w-]+"\s+\{)/i,inside:{type:{pattern:/(resource|data|\s+)(?:"(?:\\[\s\S]|[^\\"])*")/i,lookbehind:!0,alias:"variable"}}},{pattern:/(?:backend|module|output|provider|provisioner|variable)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+(?=\{)/i,inside:{type:{pattern:/(backend|module|output|provider|provisioner|variable)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+/i,lookbehind:!0,alias:"variable"}}},/[\w-]+(?=\s+\{)/],property:[/[-\w\.]+(?=\s*=(?!=))/,/"(?:\\[\s\S]|[^\\"])+"(?=\s*[:=])/],string:{pattern:/"(?:[^\\$"]|\\[\s\S]|\$(?:(?=")|\$+(?!\$)|[^"${])|\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\})*"/,greedy:!0,inside:{interpolation:{pattern:/(^|[^$])\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\}/,lookbehind:!0,inside:{type:{pattern:/(\b(?:count|data|local|module|path|self|terraform|var)\b\.)[\w\*]+/i,lookbehind:!0,alias:"variable"},keyword:/\b(?:count|data|local|module|path|self|terraform|var)\b/i,function:/\w+(?=\()/,string:{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0},number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,punctuation:/[!\$#%&'()*+,.\/;<=>@\[\\\]^`{|}~?:]/}}}},number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,boolean:/\b(?:false|true)\b/i,punctuation:/[=\[\]{}]/}}e.exports=t,t.displayName="hcl",t.aliases=[]},9814:function(e,t,n){"use strict";var r=n(272);function a(e){e.register(r),e.languages.hlsl=e.languages.extend("c",{"class-name":[e.languages.c["class-name"],/\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|RasterizerState|RenderTargetView|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\b/],keyword:[/\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\b/,/\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\b/],number:/(?:(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?|\b0x[\da-fA-F]+)[fFhHlLuU]?\b/,boolean:/\b(?:false|true)\b/})}e.exports=a,a.displayName="hlsl",a.aliases=[]},8661:function(e){"use strict";function t(e){e.languages.hoon={comment:{pattern:/::.*/,greedy:!0},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},constant:/%(?:\.[ny]|[\w-]+)/,"class-name":/@(?:[a-z0-9-]*[a-z0-9])?|\*/i,function:/(?:\+[-+] {2})?(?:[a-z](?:[a-z0-9-]*[a-z0-9])?)/,keyword:/\.[\^\+\*=\?]|![><:\.=\?!]|=[>|:,\.\-\^<+;/~\*\?]|\?[>|:\.\-\^<\+&~=@!]|\|[\$_%:\.\-\^~\*=@\?]|\+[|\$\+\*]|:[_\-\^\+~\*]|%[_:\.\-\^\+~\*=]|\^[|:\.\-\+&~\*=\?]|\$[|_%:<>\-\^&~@=\?]|;[:<\+;\/~\*=]|~[>|\$_%<\+\/&=\?!]|--|==/}}e.exports=t,t.displayName="hoon",t.aliases=[]},5727:function(e){"use strict";function t(e){e.languages.hpkp={directive:{pattern:/\b(?:includeSubDomains|max-age|pin-sha256|preload|report-to|report-uri|strict)(?=[\s;=]|$)/i,alias:"property"},operator:/=/,punctuation:/;/}}e.exports=t,t.displayName="hpkp",t.aliases=[]},7761:function(e){"use strict";function t(e){e.languages.hsts={directive:{pattern:/\b(?:includeSubDomains|max-age|preload)(?=[\s;=]|$)/i,alias:"property"},operator:/=/,punctuation:/;/}}e.exports=t,t.displayName="hsts",t.aliases=[]},6722:function(e){"use strict";function t(e){!function(e){function t(e){return RegExp("(^(?:"+e+"):[ \t]*(?![ \t]))[^]+","i")}e.languages.http={"request-line":{pattern:/^(?:CONNECT|DELETE|GET|HEAD|OPTIONS|PATCH|POST|PRI|PUT|SEARCH|TRACE)\s(?:https?:\/\/|\/)\S*\sHTTP\/[\d.]+/m,inside:{method:{pattern:/^[A-Z]+\b/,alias:"property"},"request-target":{pattern:/^(\s)(?:https?:\/\/|\/)\S*(?=\s)/,lookbehind:!0,alias:"url",inside:e.languages.uri},"http-version":{pattern:/^(\s)HTTP\/[\d.]+/,lookbehind:!0,alias:"property"}}},"response-status":{pattern:/^HTTP\/[\d.]+ \d+ .+/m,inside:{"http-version":{pattern:/^HTTP\/[\d.]+/,alias:"property"},"status-code":{pattern:/^(\s)\d+(?=\s)/,lookbehind:!0,alias:"number"},"reason-phrase":{pattern:/^(\s).+/,lookbehind:!0,alias:"string"}}},header:{pattern:/^[\w-]+:.+(?:(?:\r\n?|\n)[ \t].+)*/m,inside:{"header-value":[{pattern:t(/Content-Security-Policy/.source),lookbehind:!0,alias:["csp","languages-csp"],inside:e.languages.csp},{pattern:t(/Public-Key-Pins(?:-Report-Only)?/.source),lookbehind:!0,alias:["hpkp","languages-hpkp"],inside:e.languages.hpkp},{pattern:t(/Strict-Transport-Security/.source),lookbehind:!0,alias:["hsts","languages-hsts"],inside:e.languages.hsts},{pattern:t(/[^:]+/.source),lookbehind:!0}],"header-name":{pattern:/^[^:]+/,alias:"keyword"},punctuation:/^:/}}};var n,r=e.languages,a={"application/javascript":r.javascript,"application/json":r.json||r.javascript,"application/xml":r.xml,"text/xml":r.xml,"text/html":r.html,"text/css":r.css,"text/plain":r.plain},i={"application/json":!0,"application/xml":!0};function o(e){var t=e.replace(/^[a-z]+\//,"");return"(?:"+e+"|"+("\\w+/(?:[\\w.-]+\\+)+"+t+"(?![+\\w.-])")+")"}for(var s in a)if(a[s]){n=n||{};var l=i[s]?o(s):s;n[s.replace(/\//g,"-")]={pattern:RegExp("("+/content-type:\s*/.source+l+/(?:(?:\r\n?|\n)[\w-].*)*(?:\r(?:\n|(?!\n))|\n)/.source+")"+/[^ \t\w-][\s\S]*/.source,"i"),lookbehind:!0,inside:a[s]}}n&&e.languages.insertBefore("http","header",n)}(e)}e.exports=t,t.displayName="http",t.aliases=[]},1469:function(e){"use strict";function t(e){e.languages.ichigojam={comment:/(?:\B'|REM)(?:[^\n\r]*)/i,string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^\w +\-.])*"/,greedy:!0},number:/\B#[0-9A-F]+|\B`[01]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GOTO|GSB|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RIGHT|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\$|\b)/i,function:/\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\$|\b)/i,label:/(?:\B@\S+)/,operator:/<[=>]?|>=?|\|\||&&|[+\-*\/=|&^~!]|\b(?:AND|NOT|OR)\b/i,punctuation:/[\[,;:()\]]/}}e.exports=t,t.displayName="ichigojam",t.aliases=[]},8340:function(e){"use strict";function t(e){e.languages.icon={comment:/#.*/,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n_]|\\.|_(?!\1)(?:\r\n|[\s\S]))*\1/,greedy:!0},number:/\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i,"builtin-keyword":{pattern:/&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/,alias:"variable"},directive:{pattern:/\$\w+/,alias:"builtin"},keyword:/\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/,function:/\b(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/,operator:/[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|<?=?)|>>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/,punctuation:/[\[\](){},;]/}}e.exports=t,t.displayName="icon",t.aliases=[]},8925:function(e){"use strict";function t(e){!function(e){function t(e,n){return n<=0?/[]/.source:e.replace(/<SELF>/g,(function(){return t(e,n-1)}))}var n=/'[{}:=,](?:[^']|'')*'(?!')/,r={pattern:/''/,greedy:!0,alias:"operator"},a={pattern:n,greedy:!0,inside:{escape:r}},i=t(/\{(?:[^{}']|'(?![{},'])|''|<STR>|<SELF>)*\}/.source.replace(/<STR>/g,(function(){return n.source})),8),o={pattern:RegExp(i),inside:{message:{pattern:/^(\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:null},"message-delimiter":{pattern:/./,alias:"punctuation"}}};e.languages["icu-message-format"]={argument:{pattern:RegExp(i),greedy:!0,inside:{content:{pattern:/^(\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:{"argument-name":{pattern:/^(\s*)[^{}:=,\s]+/,lookbehind:!0},"choice-style":{pattern:/^(\s*,\s*choice\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{punctuation:/\|/,range:{pattern:/^(\s*)[+-]?(?:\d+(?:\.\d*)?|\u221e)\s*[<#\u2264]/,lookbehind:!0,inside:{operator:/[<#\u2264]/,number:/\S+/}},rest:null}},"plural-style":{pattern:/^(\s*,\s*(?:plural|selectordinal)\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{offset:/^offset:\s*\d+/,"nested-message":o,selector:{pattern:/=\d+|[^{}:=,\s]+/,inside:{keyword:/^(?:few|many|one|other|two|zero)$/}}}},"select-style":{pattern:/^(\s*,\s*select\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{"nested-message":o,selector:{pattern:/[^{}:=,\s]+/,inside:{keyword:/^other$/}}}},keyword:/\b(?:choice|plural|select|selectordinal)\b/,"arg-type":{pattern:/\b(?:date|duration|number|ordinal|spellout|time)\b/,alias:"keyword"},"arg-skeleton":{pattern:/(,\s*)::[^{}:=,\s]+/,lookbehind:!0},"arg-style":{pattern:/(,\s*)(?:currency|full|integer|long|medium|percent|short)(?=\s*$)/,lookbehind:!0},"arg-style-text":{pattern:RegExp(/(^\s*,\s*(?=\S))/.source+t(/(?:[^{}']|'[^']*'|\{(?:<SELF>)?\})+/.source,8)+"$"),lookbehind:!0,alias:"string"},punctuation:/,/}},"argument-delimiter":{pattern:/./,alias:"operator"}}},escape:r,string:a},o.inside.message.inside=e.languages["icu-message-format"],e.languages["icu-message-format"].argument.inside.content.inside["choice-style"].inside.rest=e.languages["icu-message-format"]}(e)}e.exports=t,t.displayName="icuMessageFormat",t.aliases=[]},3298:function(e,t,n){"use strict";var r=n(9233);function a(e){e.register(r),e.languages.idris=e.languages.extend("haskell",{comment:{pattern:/(?:(?:--|\|\|\|).*$|\{-[\s\S]*?-\})/m},keyword:/\b(?:Type|case|class|codata|constructor|corecord|data|do|dsl|else|export|if|implementation|implicit|import|impossible|in|infix|infixl|infixr|instance|interface|let|module|mutual|namespace|of|parameters|partial|postulate|private|proof|public|quoteGoal|record|rewrite|syntax|then|total|using|where|with)\b/,builtin:void 0}),e.languages.insertBefore("idris","keyword",{"import-statement":{pattern:/(^\s*import\s+)(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*/m,lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.idr=e.languages.idris}e.exports=a,a.displayName="idris",a.aliases=["idr"]},3390:function(e){"use strict";function t(e){e.languages.iecst={comment:[{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\(\*[\s\S]*?(?:\*\)|$)|\{[\s\S]*?(?:\}|$))/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:[/\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:ACCESS|CONFIG|EXTERNAL|GLOBAL|INPUT|IN_OUT|OUTPUT|TEMP)|VAR|METHOD|PROPERTY)\b/i,/\b(?:AT|BY|(?:END_)?(?:CASE|FOR|IF|REPEAT|WHILE)|CONSTANT|CONTINUE|DO|ELSE|ELSIF|EXIT|EXTENDS|FROM|GET|GOTO|IMPLEMENTS|JMP|NON_RETAIN|OF|PRIVATE|PROTECTED|PUBLIC|RETAIN|RETURN|SET|TASK|THEN|TO|UNTIL|USING|WITH|__CATCH|__ENDTRY|__FINALLY|__TRY)\b/],"class-name":/\b(?:ANY|ARRAY|BOOL|BYTE|U?(?:D|L|S)?INT|(?:D|L)?WORD|DATE(?:_AND_TIME)?|DT|L?REAL|POINTER|STRING|TIME(?:_OF_DAY)?|TOD)\b/,address:{pattern:/%[IQM][XBWDL][\d.]*|%[IQ][\d.]*/,alias:"symbol"},number:/\b(?:16#[\da-f]+|2#[01_]+|0x[\da-f]+)\b|\b(?:D|DT|T|TOD)#[\d_shmd:]*|\b[A-Z]*#[\d.,_]*|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/,operator:/S?R?:?=>?|&&?|\*\*?|<[=>]?|>=?|[-:^/+#]|\b(?:AND|EQ|EXPT|GE|GT|LE|LT|MOD|NE|NOT|OR|XOR)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,punctuation:/[()[\].,;]/}}e.exports=t,t.displayName="iecst",t.aliases=[]},7145:function(e){"use strict";function t(e){!function(e){e.languages.ignore={comment:/^#.*/m,entry:{pattern:/\S(?:.*(?:(?:\\ )|\S))?/,alias:"string",inside:{operator:/^!|\*\*?|\?/,regex:{pattern:/(^|[^\\])\[[^\[\]]*\]/,lookbehind:!0},punctuation:/\//}}},e.languages.gitignore=e.languages.ignore,e.languages.hgignore=e.languages.ignore,e.languages.npmignore=e.languages.ignore}(e)}e.exports=t,t.displayName="ignore",t.aliases=["gitignore","hgignore","npmignore"]},4600:function(e){"use strict";function t(e){e.languages.inform7={string:{pattern:/"[^"]*"/,inside:{substitution:{pattern:/\[[^\[\]]+\]/,inside:{delimiter:{pattern:/\[|\]/,alias:"punctuation"}}}}},comment:{pattern:/\[[^\[\]]+\]/,greedy:!0},title:{pattern:/^[ \t]*(?:book|chapter|part(?! of)|section|table|volume)\b.+/im,alias:"important"},number:{pattern:/(^|[^-])(?:\b\d+(?:\.\d+)?(?:\^\d+)?(?:(?!\d)\w+)?|\b(?:eight|eleven|five|four|nine|one|seven|six|ten|three|twelve|two))\b(?!-)/i,lookbehind:!0},verb:{pattern:/(^|[^-])\b(?:answering|applying to|are|asking|attacking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:ing|s)?|consulting|contain(?:ing|s)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:s|ve|ving)|hold(?:ing|s)?|impl(?:ies|y)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:ing|s)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:ing|s)?|setting|showing|singing|sleeping|smelling|squeezing|support(?:ing|s)?|swearing|switching|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:ing|s)?|var(?:ies|y|ying)|waiting|waking|waving|wear(?:ing|s)?)\b(?!-)/i,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^-])\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|the story|unless)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\b(?!-)/i,lookbehind:!0},property:{pattern:/(^|[^-])\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: off| on)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\b(?!-)/i,lookbehind:!0,alias:"symbol"},position:{pattern:/(^|[^-])\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\b(?!-)/i,lookbehind:!0,alias:"keyword"},type:{pattern:/(^|[^-])\b(?:actions?|activit(?:ies|y)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\b(?!-)/i,lookbehind:!0,alias:"variable"},punctuation:/[.,:;(){}]/},e.languages.inform7.string.inside.substitution.inside.rest=e.languages.inform7,e.languages.inform7.string.inside.substitution.inside.rest.text={pattern:/\S(?:\s*\S)*/,alias:"comment"}}e.exports=t,t.displayName="inform7",t.aliases=[]},3409:function(e){"use strict";function t(e){e.languages.ini={comment:{pattern:/(^[ \f\t\v]*)[#;][^\n\r]*/m,lookbehind:!0},section:{pattern:/(^[ \f\t\v]*)\[[^\n\r\]]*\]?/m,lookbehind:!0,inside:{"section-name":{pattern:/(^\[[ \f\t\v]*)[^ \f\t\v\]]+(?:[ \f\t\v]+[^ \f\t\v\]]+)*/,lookbehind:!0,alias:"selector"},punctuation:/\[|\]/}},key:{pattern:/(^[ \f\t\v]*)[^ \f\n\r\t\v=]+(?:[ \f\t\v]+[^ \f\n\r\t\v=]+)*(?=[ \f\t\v]*=)/m,lookbehind:!0,alias:"attr-name"},value:{pattern:/(=[ \f\t\v]*)[^ \f\n\r\t\v]+(?:[ \f\t\v]+[^ \f\n\r\t\v]+)*/,lookbehind:!0,alias:"attr-value",inside:{"inner-value":{pattern:/^("|').+(?=\1$)/,lookbehind:!0}}},punctuation:/=/}}e.exports=t,t.displayName="ini",t.aliases=[]},4197:function(e){"use strict";function t(e){e.languages.io={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\/\/.*|#.*)/,lookbehind:!0,greedy:!0},"triple-quoted-string":{pattern:/"""(?:\\[\s\S]|(?!""")[^\\])*"""/,greedy:!0,alias:"string"},string:{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},keyword:/\b(?:activate|activeCoroCount|asString|block|break|call|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getEnvironmentVariable|getSlot|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|try|type|uniqueId|updateSlot|wait|while|write|yield)\b/,builtin:/\b(?:Array|AudioDevice|AudioMixer|BigNum|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Random|Regex|SGML|SGMLElement|SGMLParser|SQLite|Sequence|Server|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink)\b/,boolean:/\b(?:false|nil|true)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?/i,operator:/[=!*/%+\-^&|]=|>>?=?|<<?=?|:?:?=|\+\+?|--?|\*\*?|\/\/?|%|\|\|?|&&?|\b(?:and|not|or|return)\b|@@?|\?\??|\.\./,punctuation:/[{}[\];(),.:]/}}e.exports=t,t.displayName="io",t.aliases=[]},3269:function(e){"use strict";function t(e){e.languages.j={comment:{pattern:/\bNB\..*/,greedy:!0},string:{pattern:/'(?:''|[^'\r\n])*'/,greedy:!0},keyword:/\b(?:(?:CR|LF|adverb|conjunction|def|define|dyad|monad|noun|verb)\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\w+|goto_\w+|if|label_\w+|return|select|throw|try|while|whilst)\.)/,verb:{pattern:/(?!\^:|;\.|[=!][.:])(?:\{(?:\.|::?)?|p(?:\.\.?|:)|[=!\]]|[<>+*\-%$|,#][.:]?|[?^]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,alias:"keyword"},number:/\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:ad|ar|[ejpx])_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_\b(?!\.))/,adverb:{pattern:/[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,alias:"builtin"},operator:/[=a][.:]|_\./,conjunction:{pattern:/&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,alias:"variable"},punctuation:/[()]/}}e.exports=t,t.displayName="j",t.aliases=[]},5543:function(e){"use strict";function t(e){!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,r={pattern:RegExp(n+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[r,{pattern:RegExp(n+/[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source),lookbehind:!0,inside:r.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":r,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!<keyword>)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(e)}e.exports=t,t.displayName="java",t.aliases=[]},8428:function(e,t,n){"use strict";var r=n(5543),a=n(9285);function i(e){e.register(r),e.register(a),function(e){var t=/(^(?:[\t ]*(?:\*\s*)*))[^*\s].*$/m,n=/#\s*\w+(?:\s*\([^()]*\))?/.source,r=/(?:\b[a-zA-Z]\w+\s*\.\s*)*\b[A-Z]\w*(?:\s*<mem>)?|<mem>/.source.replace(/<mem>/g,(function(){return n}));e.languages.javadoc=e.languages.extend("javadoclike",{}),e.languages.insertBefore("javadoc","keyword",{reference:{pattern:RegExp(/(@(?:exception|link|linkplain|see|throws|value)\s+(?:\*\s*)?)/.source+"(?:"+r+")"),lookbehind:!0,inside:{function:{pattern:/(#\s*)\w+(?=\s*\()/,lookbehind:!0},field:{pattern:/(#\s*)\w+/,lookbehind:!0},namespace:{pattern:/\b(?:[a-z]\w*\s*\.\s*)+/,inside:{punctuation:/\./}},"class-name":/\b[A-Z]\w*/,keyword:e.languages.java.keyword,punctuation:/[#()[\],.]/}},"class-name":{pattern:/(@param\s+)<[A-Z]\w*>/,lookbehind:!0,inside:{punctuation:/[.<>]/}},"code-section":[{pattern:/(\{@code\s+(?!\s))(?:[^\s{}]|\s+(?![\s}])|\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\})+(?=\s*\})/,lookbehind:!0,inside:{code:{pattern:t,lookbehind:!0,inside:e.languages.java,alias:"language-java"}}},{pattern:/(<(code|pre|tt)>(?!<code>)\s*)\S(?:\S|\s+\S)*?(?=\s*<\/\2>)/,lookbehind:!0,inside:{line:{pattern:t,lookbehind:!0,inside:{tag:e.languages.markup.tag,entity:e.languages.markup.entity,code:{pattern:/.+/,inside:e.languages.java,alias:"language-java"}}}}}],tag:e.languages.markup.tag,entity:e.languages.markup.entity}),e.languages.javadoclike.addSupport("java",e.languages.javadoc)}(e)}e.exports=i,i.displayName="javadoc",i.aliases=[]},9285:function(e){"use strict";function t(e){!function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){"string"===typeof t&&(t=[t]),t.forEach((function(t){!function(t,n){var r="doc-comment",a=e.languages[t];if(a){var i=a[r];if(!i){var o={"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}};i=(a=e.languages.insertBefore(t,"comment",o))[r]}if(i instanceof RegExp&&(i=a[r]={pattern:i}),Array.isArray(i))for(var s=0,l=i.length;s<l;s++)i[s]instanceof RegExp&&(i[s]={pattern:i[s]}),n(i[s]);else n(i)}}(t,(function(e){e.inside||(e.inside={}),e.inside.rest=n}))}))}}),t.addSupport(["java","javascript","php"],t)}(e)}e.exports=t,t.displayName="javadoclike",t.aliases=[]},7556:function(e){"use strict";function t(e){e.languages.javascript=e.languages.extend("clike",{"class-name":[e.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),e.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,e.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:e.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:e.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:e.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:e.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:e.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),e.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:e.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),e.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),e.languages.markup&&(e.languages.markup.tag.addInlined("script","javascript"),e.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),e.languages.js=e.languages.javascript}e.exports=t,t.displayName="javascript",t.aliases=["js"]},1570:function(e){"use strict";function t(e){e.languages.javastacktrace={summary:{pattern:/^([\t ]*)(?:(?:Caused by:|Suppressed:|Exception in thread "[^"]*")[\t ]+)?[\w$.]+(?::.*)?$/m,lookbehind:!0,inside:{keyword:{pattern:/^([\t ]*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,lookbehind:!0},string:{pattern:/^(\s*)"[^"]*"/,lookbehind:!0},exceptions:{pattern:/^(:?\s*)[\w$.]+(?=:|$)/,lookbehind:!0,inside:{"class-name":/[\w$]+$/,namespace:/\b[a-z]\w*\b/,punctuation:/\./}},message:{pattern:/(:\s*)\S.*/,lookbehind:!0,alias:"string"},punctuation:/:/}},"stack-frame":{pattern:/^([\t ]*)at (?:[\w$./]|@[\w$.+-]*\/)+(?:<init>)?\([^()]*\)/m,lookbehind:!0,inside:{keyword:{pattern:/^(\s*)at(?= )/,lookbehind:!0},source:[{pattern:/(\()\w+\.\w+:\d+(?=\))/,lookbehind:!0,inside:{file:/^\w+\.\w+/,punctuation:/:/,"line-number":{pattern:/\b\d+\b/,alias:"number"}}},{pattern:/(\()[^()]*(?=\))/,lookbehind:!0,inside:{keyword:/^(?:Native Method|Unknown Source)$/}}],"class-name":/[\w$]+(?=\.(?:<init>|[\w$]+)\()/,function:/(?:<init>|[\w$]+)(?=\()/,"class-loader":{pattern:/(\s)[a-z]\w*(?:\.[a-z]\w*)*(?=\/[\w@$.]*\/)/,lookbehind:!0,alias:"namespace",inside:{punctuation:/\./}},module:{pattern:/([\s/])[a-z]\w*(?:\.[a-z]\w*)*(?:@[\w$.+-]*)?(?=\/)/,lookbehind:!0,inside:{version:{pattern:/(@)[\s\S]+/,lookbehind:!0,alias:"number"},punctuation:/[@.]/}},namespace:{pattern:/(?:\b[a-z]\w*\.)+/,inside:{punctuation:/\./}},punctuation:/[()/.]/}},more:{pattern:/^([\t ]*)\.{3} \d+ [a-z]+(?: [a-z]+)*/m,lookbehind:!0,inside:{punctuation:/\.{3}/,number:/\d+/,keyword:/\b[a-z]+(?: [a-z]+)*\b/}}}}e.exports=t,t.displayName="javastacktrace",t.aliases=[]},9298:function(e){"use strict";function t(e){e.languages.jexl={string:/(["'])(?:\\[\s\S]|(?!\1)[^\\])*\1/,transform:{pattern:/(\|\s*)[a-zA-Z\u0430-\u044f\u0410-\u042f_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][\w\u0430-\u044f\u0410-\u042f\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*/,alias:"function",lookbehind:!0},function:/[a-zA-Z\u0430-\u044f\u0410-\u042f_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][\w\u0430-\u044f\u0410-\u042f\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*\s*(?=\()/,number:/\b\d+(?:\.\d+)?\b|\B\.\d+\b/,operator:/[<>!]=?|-|\+|&&|==|\|\|?|\/\/?|[?:*^%]/,boolean:/\b(?:false|true)\b/,keyword:/\bin\b/,punctuation:/[{}[\](),.]/}}e.exports=t,t.displayName="jexl",t.aliases=[]},32:function(e){"use strict";function t(e){e.languages.jolie=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\[\s\S]|[^"\\])*"/,lookbehind:!0,greedy:!0},"class-name":{pattern:/((?:\b(?:as|courier|embed|in|inputPort|outputPort|service)\b|@)[ \t]*)\w+/,lookbehind:!0},keyword:/\b(?:as|cH|comp|concurrent|constants|courier|cset|csets|default|define|else|embed|embedded|execution|exit|extender|for|foreach|forward|from|global|if|import|in|include|init|inputPort|install|instanceof|interface|is_defined|linkIn|linkOut|main|new|nullProcess|outputPort|over|private|provide|public|scope|sequential|service|single|spawn|synchronized|this|throw|throws|type|undef|until|while|with)\b/,function:/\b[a-z_]\w*(?=[ \t]*[@(])/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?l?/i,operator:/-[-=>]?|\+[+=]?|<[<=]?|[>=*!]=?|&&|\|\||[?\/%^@|]/,punctuation:/[()[\]{},;.:]/,builtin:/\b(?:Byte|any|bool|char|double|enum|float|int|length|long|ranges|regex|string|undefined|void)\b/}),e.languages.insertBefore("jolie","keyword",{aggregates:{pattern:/(\bAggregates\s*:\s*)(?:\w+(?:\s+with\s+\w+)?\s*,\s*)*\w+(?:\s+with\s+\w+)?/,lookbehind:!0,inside:{keyword:/\bwith\b/,"class-name":/\w+/,punctuation:/,/}},redirects:{pattern:/(\bRedirects\s*:\s*)(?:\w+\s*=>\s*\w+\s*,\s*)*(?:\w+\s*=>\s*\w+)/,lookbehind:!0,inside:{punctuation:/,/,"class-name":/\w+/,operator:/=>/}},property:{pattern:/\b(?:Aggregates|[Ii]nterfaces|Java|Javascript|Jolie|[Ll]ocation|OneWay|[Pp]rotocol|Redirects|RequestResponse)\b(?=[ \t]*:)/}})}e.exports=t,t.displayName="jolie",t.aliases=[]},6044:function(e){"use strict";function t(e){!function(e){var t=/\\\((?:[^()]|\([^()]*\))*\)/.source,n=RegExp(/(^|[^\\])"(?:[^"\r\n\\]|\\[^\r\n(]|__)*"/.source.replace(/__/g,(function(){return t}))),r={interpolation:{pattern:RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+t),lookbehind:!0,inside:{content:{pattern:/^(\\\()[\s\S]+(?=\)$)/,lookbehind:!0,inside:null},punctuation:/^\\\(|\)$/}}},a=e.languages.jq={comment:/#.*/,property:{pattern:RegExp(n.source+/(?=\s*:(?!:))/.source),lookbehind:!0,greedy:!0,inside:r},string:{pattern:n,lookbehind:!0,greedy:!0,inside:r},function:{pattern:/(\bdef\s+)[a-z_]\w+/i,lookbehind:!0},variable:/\B\$\w+/,"property-literal":{pattern:/\b[a-z_]\w*(?=\s*:(?!:))/i,alias:"property"},keyword:/\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\b/,boolean:/\b(?:false|true)\b/,number:/(?:\b\d+\.|\B\.)?\b\d+(?:[eE][+-]?\d+)?\b/,operator:[{pattern:/\|=?/,alias:"pipe"},/\.\.|[!=<>]?=|\?\/\/|\/\/=?|[-+*/%]=?|[<>?]|\b(?:and|not|or)\b/],"c-style-function":{pattern:/\b[a-z_]\w*(?=\s*\()/i,alias:"function"},punctuation:/::|[()\[\]{},:;]|\.(?=\s*[\[\w$])/,dot:{pattern:/\./,alias:"important"}};r.interpolation.inside.content.inside=a}(e)}e.exports=t,t.displayName="jq",t.aliases=[]},1408:function(e){"use strict";function t(e){!function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],i=e.languages.javascript[a];"RegExp"===e.util.type(i)&&(i=e.languages.javascript[a]={pattern:i});var o=i.inside||{};i.inside=o,o["maybe-class-name"]=/^[A-Z][\s\S]*/}}(e)}e.exports=t,t.displayName="jsExtras",t.aliases=[]},750:function(e){"use strict";function t(e){!function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],i=r.pattern.source;function o(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function l(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function c(t){var n={};n["interpolation-punctuation"]=a;var i=e.tokenize(t,n);if(3===i.length){var o=[1,1];o.push.apply(o,l(i[1],e.languages.javascript,"javascript")),i.splice.apply(i,o)}return new e.Token("interpolation",i,r.alias,t)}function u(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(i),lookbehind:!0}}),o=0,u={},d=l(a.map((function(e){if("string"===typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=s(o++,r)););return u[n]=a,n})).join(""),n,r),p=Object.keys(u);return o=0,function e(t){for(var n=0;n<t.length;n++){if(o>=p.length)return;var r=t[n];if("string"===typeof r||"string"===typeof r.content){var a=p[o],i="string"===typeof r?r:r.content,s=i.indexOf(a);if(-1!==s){++o;var l=i.substring(0,s),d=c(u[a]),m=i.substring(s+a.length),g=[];if(l&&g.push(l),g.push(d),m){var h=[m];e(h),g.push.apply(g,h)}"string"===typeof r?(t.splice.apply(t,[n,1].concat(g)),n+=g.length-1):r.content=g}}else{var f=r.content;Array.isArray(f)?e(f):e([f])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[o("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),o("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),o("svg",/\bsvg/.source),o("markdown",/\b(?:markdown|md)/.source),o("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),o("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"===typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var i=n[r];if("string"!==typeof i){var o=i.content;if(Array.isArray(o))if("template-string"===i.type){var s=o[1];if(3===o.length&&"string"!==typeof s&&"embedded-code"===s.type){var l=p(s),c=s.alias,d=Array.isArray(c)?c[0]:c,m=e.languages[d];if(!m)continue;o[1]=u(l,m,d)}}else t(o);else"string"!==typeof o&&t([o])}}}(t.tokens)}))}(e)}e.exports=t,t.displayName="jsTemplates",t.aliases=[]},2327:function(e,t,n){"use strict";var r=n(9285),a=n(9669);function i(e){e.register(r),e.register(a),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(e)}e.exports=i,i.displayName="jsdoc",i.aliases=[]},837:function(e){"use strict";function t(e){e.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},e.languages.webmanifest=e.languages.json}e.exports=t,t.displayName="json",t.aliases=["webmanifest"]},7778:function(e,t,n){"use strict";var r=n(837);function a(e){e.register(r),function(e){var t=/("|')(?:\\(?:\r\n?|\n|.)|(?!\1)[^\\\r\n])*\1/;e.languages.json5=e.languages.extend("json",{property:[{pattern:RegExp(t.source+"(?=\\s*:)"),greedy:!0},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/,alias:"unquoted"}],string:{pattern:t,greedy:!0},number:/[+-]?\b(?:NaN|Infinity|0x[a-fA-F\d]+)\b|[+-]?(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+\b)?/})}(e)}e.exports=a,a.displayName="json5",a.aliases=[]},2117:function(e,t,n){"use strict";var r=n(837);function a(e){e.register(r),e.languages.jsonp=e.languages.extend("json",{punctuation:/[{}[\]();,.]/}),e.languages.insertBefore("jsonp","punctuation",{function:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*\()/})}e.exports=a,a.displayName="jsonp",a.aliases=[]},3228:function(e){"use strict";function t(e){e.languages.jsstacktrace={"error-message":{pattern:/^\S.*/m,alias:"string"},"stack-frame":{pattern:/(^[ \t]+)at[ \t].*/m,lookbehind:!0,inside:{"not-my-code":{pattern:/^at[ \t]+(?!\s)(?:node\.js|<unknown>|.*(?:node_modules|\(<anonymous>\)|\(<unknown>|<anonymous>$|\(internal\/|\(node\.js)).*/m,alias:"comment"},filename:{pattern:/(\bat\s+(?!\s)|\()(?:[a-zA-Z]:)?[^():]+(?=:)/,lookbehind:!0,alias:"url"},function:{pattern:/(\bat\s+(?:new\s+)?)(?!\s)[_$a-zA-Z\xA0-\uFFFF<][.$\w\xA0-\uFFFF<>]*/,lookbehind:!0,inside:{punctuation:/\./}},punctuation:/[()]/,keyword:/\b(?:at|new)\b/,alias:{pattern:/\[(?:as\s+)?(?!\s)[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\]/,alias:"variable"},"line-number":{pattern:/:\d+(?::\d+)?\b/,alias:"number",inside:{punctuation:/:/}}}}}}e.exports=t,t.displayName="jsstacktrace",t.aliases=[]},765:function(e){"use strict";function t(e){!function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function i(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=i(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=i(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:i(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:i(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var o=function e(t){return t?"string"===typeof t?t:"string"===typeof t.content?t.content:t.content.map(e).join(""):""},s=function t(n){for(var r=[],a=0;a<n.length;a++){var i=n[a],s=!1;if("string"!==typeof i&&("tag"===i.type&&i.content[0]&&"tag"===i.content[0].type?"</"===i.content[0].content[0].content?r.length>0&&r[r.length-1].tagName===o(i.content[0].content[1])&&r.pop():"/>"===i.content[i.content.length-1].content||r.push({tagName:o(i.content[0].content[1]),openedBraces:0}):r.length>0&&"punctuation"===i.type&&"{"===i.content?r[r.length-1].openedBraces++:r.length>0&&r[r.length-1].openedBraces>0&&"punctuation"===i.type&&"}"===i.content?r[r.length-1].openedBraces--:s=!0),(s||"string"===typeof i)&&r.length>0&&0===r[r.length-1].openedBraces){var l=o(i);a<n.length-1&&("string"===typeof n[a+1]||"plain-text"===n[a+1].type)&&(l+=o(n[a+1]),n.splice(a+1,1)),a>0&&("string"===typeof n[a-1]||"plain-text"===n[a-1].type)&&(l=o(n[a-1])+l,n.splice(a-1,1),a--),n[a]=new e.Token("plain-text",l,null,l)}i.content&&"string"!==typeof i.content&&t(i.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(e)}e.exports=t,t.displayName="jsx",t.aliases=[]},1905:function(e){"use strict";function t(e){e.languages.julia={comment:{pattern:/(^|[^\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/,lookbehind:!0},regex:{pattern:/r"(?:\\.|[^"\\\r\n])*"[imsx]{0,4}/,greedy:!0},string:{pattern:/"""[\s\S]+?"""|(?:\b\w+)?"(?:\\.|[^"\\\r\n])*"|`(?:[^\\`\r\n]|\\.)*`/,greedy:!0},char:{pattern:/(^|[^\w'])'(?:\\[^\r\n][^'\r\n]*|[^\\\r\n])'/,lookbehind:!0,greedy:!0},keyword:/\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\b/,boolean:/\b(?:false|true)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[box])?(?:[\da-f]+(?:_[\da-f]+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[efp][+-]?\d+(?:_\d+)*)?j?/i,operator:/&&|\|\||[-+*^%\xf7\u22bb&$\\]=?|\/[\/=]?|!=?=?|\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~\u2260\u2264\u2265'\u221a\u221b]/,punctuation:/::?|[{}[\]();,.?]/,constant:/\b(?:(?:Inf|NaN)(?:16|32|64)?|im|pi)\b|[\u03c0\u212f]/}}e.exports=t,t.displayName="julia",t.aliases=[]},6776:function(e){"use strict";function t(e){e.languages.keepalived={comment:{pattern:/[#!].*/,greedy:!0},string:{pattern:/(^|[^\\])(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/,lookbehind:!0,greedy:!0},ip:{pattern:RegExp(/\b(?:(?:(?:[\da-f]{1,4}:){7}[\da-f]{1,4}|(?:[\da-f]{1,4}:){6}:[\da-f]{1,4}|(?:[\da-f]{1,4}:){5}:(?:[\da-f]{1,4}:)?[\da-f]{1,4}|(?:[\da-f]{1,4}:){4}:(?:[\da-f]{1,4}:){0,2}[\da-f]{1,4}|(?:[\da-f]{1,4}:){3}:(?:[\da-f]{1,4}:){0,3}[\da-f]{1,4}|(?:[\da-f]{1,4}:){2}:(?:[\da-f]{1,4}:){0,4}[\da-f]{1,4}|(?:[\da-f]{1,4}:){6}<ipv4>|(?:[\da-f]{1,4}:){0,5}:<ipv4>|::(?:[\da-f]{1,4}:){0,5}<ipv4>|[\da-f]{1,4}::(?:[\da-f]{1,4}:){0,5}[\da-f]{1,4}|::(?:[\da-f]{1,4}:){0,6}[\da-f]{1,4}|(?:[\da-f]{1,4}:){1,7}:)(?:\/\d{1,3})?|<ipv4>(?:\/\d{1,2})?)\b/.source.replace(/<ipv4>/g,(function(){return/(?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d))/.source})),"i"),alias:"number"},path:{pattern:/(\s)\/(?:[^\/\s]+\/)*[^\/\s]*|\b[a-zA-Z]:\\(?:[^\\\s]+\\)*[^\\\s]*/,lookbehind:!0,alias:"string"},variable:/\$\{?\w+\}?/,email:{pattern:/[\w-]+@[\w-]+(?:\.[\w-]{2,3}){1,2}/,alias:"string"},"conditional-configuration":{pattern:/@\^?[\w-]+/,alias:"variable"},operator:/=/,property:/\b(?:BFD_CHECK|DNS_CHECK|FILE_CHECK|HTTP_GET|MISC_CHECK|NAME|PING_CHECK|SCRIPTS|SMTP_CHECK|SSL|SSL_GET|TCP_CHECK|UDP_CHECK|accept|advert_int|alpha|auth_pass|auth_type|authentication|bfd_cpu_affinity|bfd_instance|bfd_no_swap|bfd_priority|bfd_process_name|bfd_rlimit_rttime|bfd_rt_priority|bind_if|bind_port|bindto|ca|certificate|check_unicast_src|checker|checker_cpu_affinity|checker_log_all_failures|checker_no_swap|checker_priority|checker_rlimit_rttime|checker_rt_priority|child_wait_time|connect_ip|connect_port|connect_timeout|dbus_service_name|debug|default_interface|delay|delay_before_retry|delay_loop|digest|dont_track_primary|dynamic|dynamic_interfaces|enable_(?:dbus|script_security|sni|snmp_checker|snmp_rfc|snmp_rfcv2|snmp_rfcv3|snmp_vrrp|traps)|end|fall|fast_recovery|file|flag-[123]|fork_delay|full_command|fwmark|garp_group|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|global_defs|global_tracking|gna_interval|group|ha_suspend|hashed|helo_name|higher_prio_send_advert|hoplimit|http_protocol|hysteresis|idle_tx|include|inhibit_on_failure|init_fail|init_file|instance|interface|interfaces|interval|ip_family|ipvs_process_name|keepalived.conf|kernel_rx_buf_size|key|linkbeat_interfaces|linkbeat_use_polling|log_all_failures|log_unknown_vrids|lower_prio_no_advert|lthreshold|lvs_flush|lvs_flush_onstop|lvs_method|lvs_netlink_cmd_rcv_bufs|lvs_netlink_cmd_rcv_bufs_force|lvs_netlink_monitor_rcv_bufs|lvs_netlink_monitor_rcv_bufs_force|lvs_notify_fifo|lvs_notify_fifo_script|lvs_sched|lvs_sync_daemon|max_auto_priority|max_hops|mcast_src_ip|mh-fallback|mh-port|min_auto_priority_delay|min_rx|min_tx|misc_dynamic|misc_path|misc_timeout|multiplier|name|namespace_with_ipsets|native_ipv6|neighbor_ip|net_namespace|net_namespace_ipvs|nftables|nftables_counters|nftables_ifindex|nftables_priority|no_accept|no_checker_emails|no_email_faults|nopreempt|notification_email|notification_email_from|notify|notify_backup|notify_deleted|notify_down|notify_fault|notify_fifo|notify_fifo_script|notify_master|notify_master_rx_lower_pri|notify_priority_changes|notify_stop|notify_up|old_unicast_checksum|omega|ops|param_match|passive|password|path|persistence_engine|persistence_granularity|persistence_timeout|preempt|preempt_delay|priority|process|process_monitor_rcv_bufs|process_monitor_rcv_bufs_force|process_name|process_names|promote_secondaries|protocol|proxy_arp|proxy_arp_pvlan|quorum|quorum_down|quorum_max|quorum_up|random_seed|real_server|regex|regex_max_offset|regex_min_offset|regex_no_match|regex_options|regex_stack|reload_repeat|reload_time_file|require_reply|retry|rise|router_id|rs_init_notifies|script|script_user|sh-fallback|sh-port|shutdown_script|shutdown_script_timeout|skip_check_adv_addr|smtp_alert|smtp_alert_checker|smtp_alert_vrrp|smtp_connect_timeout|smtp_helo_name|smtp_server|snmp_socket|sorry_server|sorry_server_inhibit|sorry_server_lvs_method|source_ip|start|startup_script|startup_script_timeout|state|static_ipaddress|static_routes|static_rules|status_code|step|strict_mode|sync_group_tracking_weight|terminate_delay|timeout|track_bfd|track_file|track_group|track_interface|track_process|track_script|track_src_ip|ttl|type|umask|unicast_peer|unicast_src_ip|unicast_ttl|url|use_ipvlan|use_pid_dir|use_vmac|user|uthreshold|val[123]|version|virtual_ipaddress|virtual_ipaddress_excluded|virtual_router_id|virtual_routes|virtual_rules|virtual_server|virtual_server_group|virtualhost|vmac_xmit_base|vrrp|vrrp_(?:check_unicast_src|cpu_affinity|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|gna_interval|higher_prio_send_advert|instance|ipsets|iptables|lower_prio_no_advert|mcast_group4|mcast_group6|min_garp|netlink_cmd_rcv_bufs|netlink_cmd_rcv_bufs_force|netlink_monitor_rcv_bufs|netlink_monitor_rcv_bufs_force|no_swap|notify_fifo|notify_fifo_script|notify_priority_changes|priority|process_name|rlimit_rttime|rt_priority|rx_bufs_multiplier|rx_bufs_policy|script|skip_check_adv_addr|startup_delay|strict|sync_group|track_process|version)|warmup|weight)\b/,constant:/\b(?:A|AAAA|AH|BACKUP|CNAME|DR|MASTER|MX|NAT|NS|PASS|SCTP|SOA|TCP|TUN|TXT|UDP|dh|fo|lblc|lblcr|lc|mh|nq|ovf|rr|sed|sh|wlc|wrr)\b/,number:{pattern:/(^|[^\w.-])-?\d+(?:\.\d+)?/,lookbehind:!0},boolean:/\b(?:false|no|off|on|true|yes)\b/,punctuation:/[\{\}]/}}e.exports=t,t.displayName="keepalived",t.aliases=[]},8714:function(e){"use strict";function t(e){e.languages.keyman={comment:{pattern:/\bc .*/i,greedy:!0},string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0},"virtual-key":{pattern:/\[\s*(?:(?:ALT|CAPS|CTRL|LALT|LCTRL|NCAPS|RALT|RCTRL|SHIFT)\s+)*(?:[TKU]_[\w?]+|[A-E]\d\d?|"[^"\r\n]*"|'[^'\r\n]*')\s*\]/i,greedy:!0,alias:"function"},"header-keyword":{pattern:/&\w+/,alias:"bold"},"header-statement":{pattern:/\b(?:bitmap|bitmaps|caps always off|caps on only|copyright|hotkey|language|layout|message|name|shift frees caps|version)\b/i,alias:"bold"},"rule-keyword":{pattern:/\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|reset|return|save|set|store|use)\b/i,alias:"keyword"},"structural-keyword":{pattern:/\b(?:ansi|begin|group|match|nomatch|unicode|using keys)\b/i,alias:"keyword"},"compile-target":{pattern:/\$(?:keyman|keymanonly|keymanweb|kmfl|weaver):/i,alias:"property"},number:/\b(?:U\+[\dA-F]+|d\d+|x[\da-f]+|\d+)\b/i,operator:/[+>\\$]|\.\./,punctuation:/[()=,]/}}e.exports=t,t.displayName="keyman",t.aliases=[]},8471:function(e){"use strict";function t(e){!function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(e)}e.exports=t,t.displayName="kotlin",t.aliases=["kt","kts"]},2286:function(e){"use strict";function t(e){!function(e){var t=/\s\x00-\x1f\x22-\x2f\x3a-\x3f\x5b-\x5e\x60\x7b-\x7e/.source;function n(e,n){return RegExp(e.replace(/<nonId>/g,t),n)}e.languages.kumir={comment:{pattern:/\|.*/},prolog:{pattern:/#.*/,greedy:!0},string:{pattern:/"[^\n\r"]*"|'[^\n\r']*'/,greedy:!0},boolean:{pattern:n(/(^|[<nonId>])(?:\u0434\u0430|\u043d\u0435\u0442)(?=[<nonId>]|$)/.source),lookbehind:!0},"operator-word":{pattern:n(/(^|[<nonId>])(?:\u0438|\u0438\u043b\u0438|\u043d\u0435)(?=[<nonId>]|$)/.source),lookbehind:!0,alias:"keyword"},"system-variable":{pattern:n(/(^|[<nonId>])\u0437\u043d\u0430\u0447(?=[<nonId>]|$)/.source),lookbehind:!0,alias:"keyword"},type:[{pattern:n(/(^|[<nonId>])(?:\u0432\u0435\u0449|\u043b\u0438\u0442|\u043b\u043e\u0433|\u0441\u0438\u043c|\u0446\u0435\u043b)(?:\x20*\u0442\u0430\u0431)?(?=[<nonId>]|$)/.source),lookbehind:!0,alias:"builtin"},{pattern:n(/(^|[<nonId>])(?:\u043a\u043e\u043c\u043f\u043b|\u0441\u043a\u0430\u043d\u043a\u043e\u0434|\u0444\u0430\u0439\u043b|\u0446\u0432\u0435\u0442)(?=[<nonId>]|$)/.source),lookbehind:!0,alias:"important"}],keyword:{pattern:n(/(^|[<nonId>])(?:\u0430\u043b\u0433|\u0430\u0440\u0433(?:\x20*\u0440\u0435\u0437)?|\u0432\u0432\u043e\u0434|\u0412\u041a\u041b\u042e\u0427\u0418\u0422\u042c|\u0432\u0441[\u0435\u0451]|\u0432\u044b\u0431\u043e\u0440|\u0432\u044b\u0432\u043e\u0434|\u0432\u044b\u0445\u043e\u0434|\u0434\u0430\u043d\u043e|\u0434\u043b\u044f|\u0434\u043e|\u0434\u0441|\u0435\u0441\u043b\u0438|\u0438\u043d\u0430\u0447\u0435|\u0438\u0441\u043f|\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c|\u043a\u043e\u043d(?:(?:\x20+|_)\u0438\u0441\u043f)?|\u043a\u0446(?:(?:\x20+|_)\u043f\u0440\u0438)?|\u043d\u0430\u0434\u043e|\u043d\u0430\u0447|\u043d\u0441|\u043d\u0446|\u043e\u0442|\u043f\u0430\u0443\u0437\u0430|\u043f\u043e\u043a\u0430|\u043f\u0440\u0438|\u0440\u0430\u0437\u0430?|\u0440\u0435\u0437|\u0441\u0442\u043e\u043f|\u0442\u0430\u0431|\u0442\u043e|\u0443\u0442\u0432|\u0448\u0430\u0433)(?=[<nonId>]|$)/.source),lookbehind:!0},name:{pattern:n(/(^|[<nonId>])[^\d<nonId>][^<nonId>]*(?:\x20+[^<nonId>]+)*(?=[<nonId>]|$)/.source),lookbehind:!0},number:{pattern:n(/(^|[<nonId>])(?:\B\$[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?=[<nonId>]|$)/.source,"i"),lookbehind:!0},punctuation:/:=|[(),:;\[\]]/,"operator-char":{pattern:/\*\*?|<[=>]?|>=?|[-+/=]/,alias:"operator"}},e.languages.kum=e.languages.kumir}(e)}e.exports=t,t.displayName="kumir",t.aliases=["kum"]},6513:function(e){"use strict";function t(e){e.languages.kusto={comment:{pattern:/\/\/.*/,greedy:!0},string:{pattern:/```[\s\S]*?```|[hH]?(?:"(?:[^\r\n\\"]|\\.)*"|'(?:[^\r\n\\']|\\.)*'|@(?:"[^\r\n"]*"|'[^\r\n']*'))/,greedy:!0},verb:{pattern:/(\|\s*)[a-z][\w-]*/i,lookbehind:!0,alias:"keyword"},command:{pattern:/\.[a-z][a-z\d-]*\b/,alias:"keyword"},"class-name":/\b(?:bool|datetime|decimal|dynamic|guid|int|long|real|string|timespan)\b/,keyword:/\b(?:access|alias|and|anti|as|asc|auto|between|by|(?:contains|(?:ends|starts)with|has(?:perfix|suffix)?)(?:_cs)?|database|declare|desc|external|from|fullouter|has_all|in|ingestion|inline|inner|innerunique|into|(?:left|right)(?:anti(?:semi)?|inner|outer|semi)?|let|like|local|not|of|on|or|pattern|print|query_parameters|range|restrict|schema|set|step|table|tables|to|view|where|with|matches\s+regex|nulls\s+(?:first|last))(?![\w-])/,boolean:/\b(?:false|null|true)\b/,function:/\b[a-z_]\w*(?=\s*\()/,datetime:[{pattern:/\b(?:(?:Fri|Friday|Mon|Monday|Sat|Saturday|Sun|Sunday|Thu|Thursday|Tue|Tuesday|Wed|Wednesday)\s*,\s*)?\d{1,2}(?:\s+|-)(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)(?:\s+|-)\d{2}\s+\d{2}:\d{2}(?::\d{2})?(?:\s*(?:\b(?:[A-Z]|(?:[ECMT][DS]|GM|U)T)|[+-]\d{4}))?\b/,alias:"number"},{pattern:/[+-]?\b(?:\d{4}-\d{2}-\d{2}(?:[ T]\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?)?|\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?)Z?/,alias:"number"}],number:/\b(?:0x[0-9A-Fa-f]+|\d+(?:\.\d+)?(?:[Ee][+-]?\d+)?)(?:(?:min|sec|[mn\xb5]s|[dhms]|microsecond|tick)\b)?|[+-]?\binf\b/,operator:/=>|[!=]~|[!=<>]=?|[-+*/%|]|\.\./,punctuation:/[()\[\]{},;.:]/}}e.exports=t,t.displayName="kusto",t.aliases=[]},5999:function(e){"use strict";function t(e){!function(e){var t=/\\(?:[^a-z()[\]]|[a-z*]+)/i,n={"equation-command":{pattern:t,alias:"regex"}};e.languages.latex={comment:/%.*/,cdata:{pattern:/(\\begin\{((?:lstlisting|verbatim)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0},equation:[{pattern:/\$\$(?:\\[\s\S]|[^\\$])+\$\$|\$(?:\\[\s\S]|[^\\$])+\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/,inside:n,alias:"string"},{pattern:/(\\begin\{((?:align|eqnarray|equation|gather|math|multline)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0,inside:n,alias:"string"}],keyword:{pattern:/(\\(?:begin|cite|documentclass|end|label|ref|usepackage)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0},url:{pattern:/(\\url\{)[^}]+(?=\})/,lookbehind:!0},headline:{pattern:/(\\(?:chapter|frametitle|paragraph|part|section|subparagraph|subsection|subsubparagraph|subsubsection|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0,alias:"class-name"},function:{pattern:t,alias:"selector"},punctuation:/[[\]{}&]/},e.languages.tex=e.languages.latex,e.languages.context=e.languages.latex}(e)}e.exports=t,t.displayName="latex",t.aliases=["tex","context"]},9405:function(e,t,n){"use strict";var r=n(595),a=n(7304);function i(e){e.register(r),e.register(a),function(e){e.languages.latte={comment:/^\{\*[\s\S]*/,"latte-tag":{pattern:/(^\{(?:\/(?=[a-z]))?)(?:[=_]|[a-z]\w*\b(?!\())/i,lookbehind:!0,alias:"important"},delimiter:{pattern:/^\{\/?|\}$/,alias:"punctuation"},php:{pattern:/\S(?:[\s\S]*\S)?/,alias:"language-php",inside:e.languages.php}};var t=e.languages.extend("markup",{});e.languages.insertBefore("inside","attr-value",{"n-attr":{pattern:/n:[\w-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+))?/,inside:{"attr-name":{pattern:/^[^\s=]+/,alias:"important"},"attr-value":{pattern:/=[\s\S]+/,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}],php:{pattern:/\S(?:[\s\S]*\S)?/,inside:e.languages.php}}}}}},t.tag),e.hooks.add("before-tokenize",(function(n){if("latte"===n.language){e.languages["markup-templating"].buildPlaceholders(n,"latte",/\{\*[\s\S]*?\*\}|\{[^'"\s{}*](?:[^"'/{}]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|\/\*(?:[^*]|\*(?!\/))*\*\/)*\}/g),n.grammar=t}})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"latte")}))}(e)}e.exports=i,i.displayName="latte",i.aliases=[]},9135:function(e){"use strict";function t(e){e.languages.less=e.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),e.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}})}e.exports=t,t.displayName="less",t.aliases=[]},382:function(e,t,n){"use strict";var r=n(2284);function a(e){e.register(r),function(e){for(var t=/\((?:[^();"#\\]|\\[\s\S]|;.*(?!.)|"(?:[^"\\]|\\.)*"|#(?:\{(?:(?!#\})[\s\S])*#\}|[^{])|<expr>)*\)/.source,n=0;n<5;n++)t=t.replace(/<expr>/g,(function(){return t}));t=t.replace(/<expr>/g,/[^\s\S]/.source);var r=e.languages.lilypond={comment:/%(?:(?!\{).*|\{[\s\S]*?%\})/,"embedded-scheme":{pattern:RegExp(/(^|[=\s])#(?:"(?:[^"\\]|\\.)*"|[^\s()"]*(?:[^\s()]|<expr>))/.source.replace(/<expr>/g,(function(){return t})),"m"),lookbehind:!0,greedy:!0,inside:{scheme:{pattern:/^(#)[\s\S]+$/,lookbehind:!0,alias:"language-scheme",inside:{"embedded-lilypond":{pattern:/#\{[\s\S]*?#\}/,greedy:!0,inside:{punctuation:/^#\{|#\}$/,lilypond:{pattern:/[\s\S]+/,alias:"language-lilypond",inside:null}}},rest:e.languages.scheme}},punctuation:/#/}},string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},"class-name":{pattern:/(\\new\s+)[\w-]+/,lookbehind:!0},keyword:{pattern:/\\[a-z][-\w]*/i,inside:{punctuation:/^\\/}},operator:/[=|]|<<|>>/,punctuation:{pattern:/(^|[a-z\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\d))|[_^]\.?|[.!])|[{}()[\]<>^~]|\\[()[\]<>\\!]|--|__/,lookbehind:!0},number:/\b\d+(?:\/\d+)?\b/};r["embedded-scheme"].inside.scheme.inside["embedded-lilypond"].inside.lilypond.inside=r,e.languages.ly=r}(e)}e.exports=a,a.displayName="lilypond",a.aliases=[]},1146:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),e.languages.liquid={comment:{pattern:/(^\{%\s*comment\s*%\})[\s\S]+(?=\{%\s*endcomment\s*%\}$)/,lookbehind:!0},delimiter:{pattern:/^\{(?:\{\{|[%\{])-?|-?(?:\}\}|[%\}])\}$/,alias:"punctuation"},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},keyword:/\b(?:as|assign|break|(?:end)?(?:capture|case|comment|for|form|if|paginate|raw|style|tablerow|unless)|continue|cycle|decrement|echo|else|elsif|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\b/,object:/\b(?:address|all_country_option_tags|article|block|blog|cart|checkout|collection|color|country|country_option_tags|currency|current_page|current_tags|customer|customer_address|date|discount_allocation|discount_application|external_video|filter|filter_value|font|forloop|fulfillment|generic_file|gift_card|group|handle|image|line_item|link|linklist|localization|location|measurement|media|metafield|model|model_source|order|page|page_description|page_image|page_title|part|policy|product|product_option|recommendations|request|robots|routes|rule|script|search|selling_plan|selling_plan_allocation|selling_plan_group|shipping_method|shop|shop_locale|sitemap|store_availability|tax_line|template|theme|transaction|unit_price_measurement|user_agent|variant|video|video_source)\b/,function:[{pattern:/(\|\s*)\w+/,lookbehind:!0,alias:"filter"},{pattern:/(\.\s*)(?:first|last|size)/,lookbehind:!0}],boolean:/\b(?:false|nil|true)\b/,range:{pattern:/\.\./,alias:"operator"},number:/\b\d+(?:\.\d+)?\b/,operator:/[!=]=|<>|[<>]=?|[|?:=-]|\b(?:and|contains(?=\s)|or)\b/,punctuation:/[.,\[\]()]/,empty:{pattern:/\bempty\b/,alias:"keyword"}},e.hooks.add("before-tokenize",(function(t){var n=!1;e.languages["markup-templating"].buildPlaceholders(t,"liquid",/\{%\s*comment\s*%\}[\s\S]*?\{%\s*endcomment\s*%\}|\{(?:%[\s\S]*?%|\{\{[\s\S]*?\}\}|\{[\s\S]*?\})\}/g,(function(e){var t=/^\{%-?\s*(\w+)/.exec(e);if(t){var r=t[1];if("raw"===r&&!n)return n=!0,!0;if("endraw"===r)return n=!1,!0}return!n}))})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"liquid")}))}e.exports=a,a.displayName="liquid",a.aliases=[]},3807:function(e){"use strict";function t(e){!function(e){function t(e){return RegExp(/(\()/.source+"(?:"+e+")"+/(?=[\s\)])/.source)}function n(e){return RegExp(/([\s([])/.source+"(?:"+e+")"+/(?=[\s)])/.source)}var r=/(?!\d)[-+*/~!@$%^=<>{}\w]+/.source,a="&"+r,i="(\\()",o=/(?:[^()]|\((?:[^()]|\((?:[^()]|\((?:[^()]|\((?:[^()]|\([^()]*\))*\))*\))*\))*\))*/.source,s={heading:{pattern:/;;;.*/,alias:["comment","title"]},comment:/;.*/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0,inside:{argument:/[-A-Z]+(?=[.,\s])/,symbol:RegExp("`"+r+"'")}},"quoted-symbol":{pattern:RegExp("#?'"+r),alias:["variable","symbol"]},"lisp-property":{pattern:RegExp(":"+r),alias:"property"},splice:{pattern:RegExp(",@?"+r),alias:["symbol","variable"]},keyword:[{pattern:RegExp("(\\()(?:and|(?:cl-)?letf|cl-loop|cond|cons|error|if|(?:lexical-)?let\\*?|message|not|null|or|provide|require|setq|unless|use-package|when|while)(?=\\s)"),lookbehind:!0},{pattern:RegExp("(\\()(?:append|by|collect|concat|do|finally|for|in|return)(?=\\s)"),lookbehind:!0}],declare:{pattern:t(/declare/.source),lookbehind:!0,alias:"keyword"},interactive:{pattern:t(/interactive/.source),lookbehind:!0,alias:"keyword"},boolean:{pattern:n(/nil|t/.source),lookbehind:!0},number:{pattern:n(/[-+]?\d+(?:\.\d*)?/.source),lookbehind:!0},defvar:{pattern:RegExp("(\\()def(?:const|custom|group|var)\\s+"+r),lookbehind:!0,inside:{keyword:/^def[a-z]+/,variable:RegExp(r)}},defun:{pattern:RegExp(i+/(?:cl-)?(?:defmacro|defun\*?)\s+/.source+r+/\s+\(/.source+o+/\)/.source),lookbehind:!0,greedy:!0,inside:{keyword:/^(?:cl-)?def\S+/,arguments:null,function:{pattern:RegExp("(^\\s)"+r),lookbehind:!0},punctuation:/[()]/}},lambda:{pattern:RegExp("(\\()lambda\\s+\\(\\s*(?:&?"+r+"(?:\\s+&?"+r+")*\\s*)?\\)"),lookbehind:!0,greedy:!0,inside:{keyword:/^lambda/,arguments:null,punctuation:/[()]/}},car:{pattern:RegExp(i+r),lookbehind:!0},punctuation:[/(?:['`,]?\(|[)\[\]])/,{pattern:/(\s)\.(?=\s)/,lookbehind:!0}]},l={"lisp-marker":RegExp(a),varform:{pattern:RegExp(/\(/.source+r+/\s+(?=\S)/.source+o+/\)/.source),inside:s},argument:{pattern:RegExp(/(^|[\s(])/.source+r),lookbehind:!0,alias:"variable"},rest:s},c="\\S+(?:\\s+\\S+)*",u={pattern:RegExp(i+o+"(?=\\))"),lookbehind:!0,inside:{"rest-vars":{pattern:RegExp("&(?:body|rest)\\s+"+c),inside:l},"other-marker-vars":{pattern:RegExp("&(?:aux|optional)\\s+"+c),inside:l},keys:{pattern:RegExp("&key\\s+"+c+"(?:\\s+&allow-other-keys)?"),inside:l},argument:{pattern:RegExp(r),alias:"variable"},punctuation:/[()]/}};s.lambda.inside.arguments=u,s.defun.inside.arguments=e.util.clone(u),s.defun.inside.arguments.inside.sublist=u,e.languages.lisp=s,e.languages.elisp=s,e.languages.emacs=s,e.languages["emacs-lisp"]=s}(e)}e.exports=t,t.displayName="lisp",t.aliases=[]},3062:function(e){"use strict";function t(e){e.languages.livescript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\])#.*/,lookbehind:!0}],"interpolated-string":{pattern:/(^|[^"])("""|")(?:\\[\s\S]|(?!\2)[^\\])*\2(?!")/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/(^|[^\\])#[a-z_](?:-?[a-z]|[\d_])*/m,lookbehind:!0},interpolation:{pattern:/(^|[^\\])#\{[^}]+\}/m,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^#\{|\}$/,alias:"variable"}}},string:/[\s\S]+/}},string:[{pattern:/('''|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},{pattern:/<\[[\s\S]*?\]>/,greedy:!0},/\\[^\s,;\])}]+/],regex:[{pattern:/\/\/(?:\[[^\r\n\]]*\]|\\.|(?!\/\/)[^\\\[])+\/\/[gimyu]{0,5}/,greedy:!0,inside:{comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0}}},{pattern:/\/(?:\[[^\r\n\]]*\]|\\.|[^/\\\r\n\[])+\/[gimyu]{0,5}/,greedy:!0}],keyword:{pattern:/(^|(?!-).)\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\b/m,lookbehind:!0},"keyword-operator":{pattern:/(^|[^-])\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?: not|nt)?|not|of|or|til|to|typeof|with|xor)(?!-)\b)/m,lookbehind:!0,alias:"operator"},boolean:{pattern:/(^|[^-])\b(?:false|no|off|on|true|yes)(?!-)\b/m,lookbehind:!0},argument:{pattern:/(^|(?!\.&\.)[^&])&(?!&)\d*/m,lookbehind:!0,alias:"variable"},number:/\b(?:\d+~[\da-z]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[a-z]\w*)?)/i,identifier:/[a-z_](?:-?[a-z]|[\d_])*/i,operator:[{pattern:/( )\.(?= )/,lookbehind:!0},/\.(?:[=~]|\.\.?)|\.(?:[&|^]|<<|>>>?)\.|:(?:=|:=?)|&&|\|[|>]|<(?:<<?<?|--?!?|~~?!?|[|=?])?|>[>=?]?|-(?:->?|>)?|\+\+?|@@?|%%?|\*\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\^\^?|[\/?]/],punctuation:/[(){}\[\]|.,:;`]/},e.languages.livescript["interpolated-string"].inside.interpolation.inside.rest=e.languages.livescript}e.exports=t,t.displayName="livescript",t.aliases=[]},5467:function(e){"use strict";function t(e){!function(e){e.languages.llvm={comment:/;.*/,string:{pattern:/"[^"]*"/,greedy:!0},boolean:/\b(?:false|true)\b/,variable:/[%@!#](?:(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+|\d+)/i,label:/(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+:/i,type:{pattern:/\b(?:double|float|fp128|half|i[1-9]\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\b/,alias:"class-name"},keyword:/\b[a-z_][a-z_0-9]*\b/,number:/[+-]?\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-Fa-f]+\b|\b0xK[\dA-Fa-f]{20}\b|\b0x[ML][\dA-Fa-f]{32}\b|\b0xH[\dA-Fa-f]{4}\b/,punctuation:/[{}[\];(),.!*=<>]/}}(e)}e.exports=t,t.displayName="llvm",t.aliases=[]},2112:function(e){"use strict";function t(e){e.languages.log={string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?![st] | \w)(?:[^'\\\r\n]|\\.)*'/,greedy:!0},exception:{pattern:/(^|[^\w.])[a-z][\w.]*(?:Error|Exception):.*(?:(?:\r\n?|\n)[ \t]*(?:at[ \t].+|\.{3}.*|Caused by:.*))+(?:(?:\r\n?|\n)[ \t]*\.\.\. .*)?/,lookbehind:!0,greedy:!0,alias:["javastacktrace","language-javastacktrace"],inside:e.languages.javastacktrace||{keyword:/\bat\b/,function:/[a-z_][\w$]*(?=\()/,punctuation:/[.:()]/}},level:[{pattern:/\b(?:ALERT|CRIT|CRITICAL|EMERG|EMERGENCY|ERR|ERROR|FAILURE|FATAL|SEVERE)\b/,alias:["error","important"]},{pattern:/\b(?:WARN|WARNING|WRN)\b/,alias:["warning","important"]},{pattern:/\b(?:DISPLAY|INF|INFO|NOTICE|STATUS)\b/,alias:["info","keyword"]},{pattern:/\b(?:DBG|DEBUG|FINE)\b/,alias:["debug","keyword"]},{pattern:/\b(?:FINER|FINEST|TRACE|TRC|VERBOSE|VRB)\b/,alias:["trace","comment"]}],property:{pattern:/((?:^|[\]|])[ \t]*)[a-z_](?:[\w-]|\b\/\b)*(?:[. ]\(?\w(?:[\w-]|\b\/\b)*\)?)*:(?=\s)/im,lookbehind:!0},separator:{pattern:/(^|[^-+])-{3,}|={3,}|\*{3,}|- - /m,lookbehind:!0,alias:"comment"},url:/\b(?:file|ftp|https?):\/\/[^\s|,;'"]*[^\s|,;'">.]/,email:{pattern:/(^|\s)[-\w+.]+@[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)+(?=\s)/,lookbehind:!0,alias:"url"},"ip-address":{pattern:/\b(?:\d{1,3}(?:\.\d{1,3}){3})\b/,alias:"constant"},"mac-address":{pattern:/\b[a-f0-9]{2}(?::[a-f0-9]{2}){5}\b/i,alias:"constant"},domain:{pattern:/(^|\s)[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)*\.[a-z][a-z0-9-]+(?=\s)/,lookbehind:!0,alias:"constant"},uuid:{pattern:/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/i,alias:"constant"},hash:{pattern:/\b(?:[a-f0-9]{32}){1,2}\b/i,alias:"constant"},"file-path":{pattern:/\b[a-z]:[\\/][^\s|,;:(){}\[\]"']+|(^|[\s:\[\](>|])\.{0,2}\/\w[^\s|,;:(){}\[\]"']*/i,lookbehind:!0,greedy:!0,alias:"string"},date:{pattern:RegExp(/\b\d{4}[-/]\d{2}[-/]\d{2}(?:T(?=\d{1,2}:)|(?=\s\d{1,2}:))/.source+"|"+/\b\d{1,4}[-/ ](?:\d{1,2}|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)[-/ ]\d{2,4}T?\b/.source+"|"+/\b(?:(?:Fri|Mon|Sat|Sun|Thu|Tue|Wed)(?:\s{1,2}(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep))?|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)\s{1,2}\d{1,2}\b/.source,"i"),alias:"number"},time:{pattern:/\b\d{1,2}:\d{1,2}:\d{1,2}(?:[.,:]\d+)?(?:\s?[+-]\d{2}:?\d{2}|Z)?\b/,alias:"number"},boolean:/\b(?:false|null|true)\b/i,number:{pattern:/(^|[^.\w])(?:0x[a-f0-9]+|0o[0-7]+|0b[01]+|v?\d[\da-f]*(?:\.\d+)*(?:e[+-]?\d+)?[a-z]{0,3}\b)\b(?!\.\w)/i,lookbehind:!0},operator:/[;:?<=>~/@!$%&+\-|^(){}*#]/,punctuation:/[\[\].,]/}}e.exports=t,t.displayName="log",t.aliases=[]},1343:function(e){"use strict";function t(e){e.languages.lolcode={comment:[/\bOBTW\s[\s\S]*?\sTLDR\b/,/\bBTW.+/],string:{pattern:/"(?::.|[^":])*"/,inside:{variable:/:\{[^}]+\}/,symbol:[/:\([a-f\d]+\)/i,/:\[[^\]]+\]/,/:[)>o":]/]},greedy:!0},number:/(?:\B-)?(?:\b\d+(?:\.\d*)?|\B\.\d+)/,symbol:{pattern:/(^|\s)(?:A )?(?:BUKKIT|NOOB|NUMBAR|NUMBR|TROOF|YARN)(?=\s|,|$)/,lookbehind:!0,inside:{keyword:/A(?=\s)/}},label:{pattern:/((?:^|\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\w*/,lookbehind:!0,alias:"string"},function:{pattern:/((?:^|\s)(?:HOW IZ I|I IZ|IZ) )[a-zA-Z]\w*/,lookbehind:!0},keyword:[{pattern:/(^|\s)(?:AN|FOUND YR|GIMMEH|GTFO|HAI|HAS A|HOW IZ I|I HAS A|I IZ|IF U SAY SO|IM IN YR|IM OUTTA YR|IS NOW(?: A)?|ITZ(?: A)?|IZ|KTHX|KTHXBYE|LIEK(?: A)?|MAEK|MEBBE|MKAY|NERFIN|NO WAI|O HAI IM|O RLY\?|OIC|OMG|OMGWTF|R|SMOOSH|SRS|TIL|UPPIN|VISIBLE|WILE|WTF\?|YA RLY|YR)(?=\s|,|$)/,lookbehind:!0},/'Z(?=\s|,|$)/],boolean:{pattern:/(^|\s)(?:FAIL|WIN)(?=\s|,|$)/,lookbehind:!0},variable:{pattern:/(^|\s)IT(?=\s|,|$)/,lookbehind:!0},operator:{pattern:/(^|\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:ALL|ANY|BIGGR|BOTH|DIFF|EITHER|MOD|PRODUKT|QUOSHUNT|SMALLR|SUM|WON) OF)(?=\s|,|$)/,lookbehind:!0},punctuation:/\.{3}|\u2026|,|!/}}e.exports=t,t.displayName="lolcode",t.aliases=[]},6759:function(e){"use strict";function t(e){e.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[^z]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+(?:\.[a-f\d]*)?(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|(?:\.\d*)?(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/}}e.exports=t,t.displayName="lua",t.aliases=[]},9987:function(e){"use strict";function t(e){e.languages.magma={output:{pattern:/^(>.*(?:\r(?:\n|(?!\n))|\n))(?!>)(?:.+|(?:\r(?:\n|(?!\n))|\n)(?!>).*)(?:(?:\r(?:\n|(?!\n))|\n)(?!>).*)*/m,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/(^|[^\\"])"(?:[^\r\n\\"]|\\.)*"/,lookbehind:!0,greedy:!0},keyword:/\b(?:_|adj|and|assert|assert2|assert3|assigned|break|by|case|cat|catch|clear|cmpeq|cmpne|continue|declare|default|delete|diff|div|do|elif|else|end|eq|error|eval|exists|exit|for|forall|forward|fprintf|freeze|function|ge|gt|if|iload|import|in|intrinsic|is|join|le|load|local|lt|meet|mod|ne|not|notadj|notin|notsubset|or|print|printf|procedure|quit|random|read|readi|repeat|require|requirege|requirerange|restore|return|save|sdiff|select|subset|then|time|to|try|until|vprint|vprintf|vtime|when|where|while|xor)\b/,boolean:/\b(?:false|true)\b/,generator:{pattern:/\b[a-z_]\w*(?=\s*<)/i,alias:"class-name"},function:/\b[a-z_]\w*(?=\s*\()/i,number:{pattern:/(^|[^\w.]|\.\.)(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?(?:_[a-z]?)?(?=$|[^\w.]|\.\.)/,lookbehind:!0},operator:/->|[-+*/^~!|#=]|:=|\.\./,punctuation:/[()[\]{}<>,;.:]/}}e.exports=t,t.displayName="magma",t.aliases=[]},7589:function(e){"use strict";function t(e){e.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/}}e.exports=t,t.displayName="makefile",t.aliases=[]},7932:function(e){"use strict";function t(e){!function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),i=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+i+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+i+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+i+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!==typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var i=a.content[1],o=a.content[3];if(i&&o&&"code-language"===i.type&&"code-block"===o.type&&"string"===typeof i.content){var s=i.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),l="language-"+(s=(/[a-z][\w-]*/i.exec(s)||[""])[0].toLowerCase());o.alias?"string"===typeof o.alias?o.alias=[o.alias,l]:o.alias.push(l):o.alias=[l]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var i=t.classes[r],c=/language-(.+)/.exec(i);if(c){n=c[1];break}}var u=e.languages[n];if(u)t.content=e.highlight(function(e){var t=e.replace(o,"");return t=t.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),l(n);var r=s[t];return r||e}))}(t.content.value),u,n);else if(n&&"none"!==n&&e.plugins.autoloader){var d="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=d,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(d);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var o=RegExp(e.languages.markup.tag.pattern.source,"gi"),s={amp:"&",lt:"<",gt:">",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(e)}e.exports=t,t.displayName="markdown",t.aliases=["md"]},595:function(e){"use strict";function t(e){!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,i){if(n.language===r){var o=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"===typeof i&&!i(e))return e;for(var a,s=o.length;-1!==n.code.indexOf(a=t(r,s));)++s;return o[s]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,i=Object.keys(n.tokenStack);!function o(s){for(var l=0;l<s.length&&!(a>=i.length);l++){var c=s[l];if("string"===typeof c||c.content&&"string"===typeof c.content){var u=i[a],d=n.tokenStack[u],p="string"===typeof c?c:c.content,m=t(r,u),g=p.indexOf(m);if(g>-1){++a;var h=p.substring(0,g),f=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(g+m.length),E=[];h&&E.push.apply(E,o([h])),E.push(f),b&&E.push.apply(E,o([b])),"string"===typeof c?s.splice.apply(s,[l,1].concat(E)):c.content=E}}else c.content&&o(c.content)}return s}(n.tokens)}}}})}(e)}e.exports=t,t.displayName="markupTemplating",t.aliases=[]},2357:function(e){"use strict";function t(e){e.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},e.languages.markup.tag.inside["attr-value"].inside.entity=e.languages.markup.entity,e.languages.markup.doctype.inside["internal-subset"].inside=e.languages.markup,e.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.value.replace(/&amp;/,"&"))})),Object.defineProperty(e.languages.markup.tag,"addInlined",{value:function(t,n){var r={};r["language-"+n]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:e.languages[n]},r.cdata=/^<!\[CDATA\[|\]\]>$/i;var a={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:r}};a["language-"+n]={pattern:/[\s\S]+/,inside:e.languages[n]};var i={};i[t]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return t})),"i"),lookbehind:!0,greedy:!0,inside:a},e.languages.insertBefore("markup","cdata",i)}}),Object.defineProperty(e.languages.markup.tag,"addAttribute",{value:function(t,n){e.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+t+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[n,"language-"+n],inside:e.languages[n]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),e.languages.html=e.languages.markup,e.languages.mathml=e.languages.markup,e.languages.svg=e.languages.markup,e.languages.xml=e.languages.extend("markup",{}),e.languages.ssml=e.languages.xml,e.languages.atom=e.languages.xml,e.languages.rss=e.languages.xml}e.exports=t,t.displayName="markup",t.aliases=["html","mathml","svg","xml","ssml","atom","rss"]},93:function(e){"use strict";function t(e){e.languages.matlab={comment:[/%\{[\s\S]*?\}%/,/%.+/],string:{pattern:/\B'(?:''|[^'\r\n])*'/,greedy:!0},number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?(?:[ij])?|\b[ij]\b/,keyword:/\b(?:NaN|break|case|catch|continue|else|elseif|end|for|function|if|inf|otherwise|parfor|pause|pi|return|switch|try|while)\b/,function:/\b(?!\d)\w+(?=\s*\()/,operator:/\.?[*^\/\\']|[+\-:@]|[<>=~]=?|&&?|\|\|?/,punctuation:/\.{3}|[.,;\[\](){}!]/}}e.exports=t,t.displayName="matlab",t.aliases=[]},4234:function(e){"use strict";function t(e){!function(e){var t=/\b(?:about|and|animate|as|at|attributes|by|case|catch|collect|continue|coordsys|do|else|exit|fn|for|from|function|global|if|in|local|macroscript|mapped|max|not|of|off|on|or|parameters|persistent|plugin|rcmenu|return|rollout|set|struct|then|throw|to|tool|try|undo|utility|when|where|while|with)\b/i;e.languages.maxscript={comment:{pattern:/\/\*[\s\S]*?(?:\*\/|$)|--.*/,greedy:!0},string:{pattern:/(^|[^"\\@])(?:"(?:[^"\\]|\\[\s\S])*"|@"[^"]*")/,lookbehind:!0,greedy:!0},path:{pattern:/\$(?:[\w/\\.*?]|'[^']*')*/,greedy:!0,alias:"string"},"function-call":{pattern:RegExp("((?:"+/^/.source+"|"+/[;=<>+\-*/^({\[]/.source+"|"+/\b(?:and|by|case|catch|collect|do|else|if|in|not|or|return|then|to|try|where|while|with)\b/.source+")[ \t]*)(?!"+t.source+")"+/[a-z_]\w*\b/.source+"(?=[ \t]*(?:(?!"+t.source+")"+/[a-z_]/.source+"|"+/\d|-\.?\d/.source+"|"+/[({'"$@#?]/.source+"))","im"),lookbehind:!0,greedy:!0,alias:"function"},"function-definition":{pattern:/(\b(?:fn|function)\s+)\w+\b/i,lookbehind:!0,alias:"function"},argument:{pattern:/\b[a-z_]\w*(?=:)/i,alias:"attr-name"},keyword:t,boolean:/\b(?:false|true)\b/,time:{pattern:/(^|[^\w.])(?:(?:(?:\d+(?:\.\d*)?|\.\d+)(?:[eEdD][+-]\d+|[LP])?[msft])+|\d+:\d+(?:\.\d*)?)(?![\w.:])/,lookbehind:!0,alias:"number"},number:[{pattern:/(^|[^\w.])(?:(?:\d+(?:\.\d*)?|\.\d+)(?:[eEdD][+-]\d+|[LP])?|0x[a-fA-F0-9]+)(?![\w.:])/,lookbehind:!0},/\b(?:e|pi)\b/],constant:/\b(?:dontcollect|ok|silentValue|undefined|unsupplied)\b/,color:{pattern:/\b(?:black|blue|brown|gray|green|orange|red|white|yellow)\b/i,alias:"constant"},operator:/[-+*/<>=!]=?|[&^?]|#(?!\()/,punctuation:/[()\[\]{}.:,;]|#(?=\()|\\$/m}}(e)}e.exports=t,t.displayName="maxscript",t.aliases=[]},1102:function(e){"use strict";function t(e){e.languages.mel={comment:/\/\/.*/,code:{pattern:/`(?:\\.|[^\\`\r\n])*`/,greedy:!0,alias:"italic",inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},variable:/\$\w+/,number:/\b0x[\da-fA-F]+\b|\b\d+(?:\.\d*)?|\B\.\d+/,flag:{pattern:/-[^\d\W]\w*/,alias:"operator"},keyword:/\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\b/,function:/\b\w+(?=\()|\b(?:CBG|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|Mayatomr|about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\b/,operator:[/\+[+=]?|-[-=]?|&&|\|\||[<>]=|[*\/!=]=?|[%^]/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,:;?\[\](){}]/},e.languages.mel.code.inside.rest=e.languages.mel}e.exports=t,t.displayName="mel",t.aliases=[]},2172:function(e){"use strict";function t(e){e.languages.mermaid={comment:{pattern:/%%.*/,greedy:!0},style:{pattern:/^([ \t]*(?:classDef|linkStyle|style)[ \t]+[\w$-]+[ \t]+)\w.*[^\s;]/m,lookbehind:!0,inside:{property:/\b\w[\w-]*(?=[ \t]*:)/,operator:/:/,punctuation:/,/}},"inter-arrow-label":{pattern:/([^<>ox.=-])(?:-[-.]|==)(?![<>ox.=-])[ \t]*(?:"[^"\r\n]*"|[^\s".=-](?:[^\r\n.=-]*[^\s.=-])?)[ \t]*(?:\.+->?|--+[->]|==+[=>])(?![<>ox.=-])/,lookbehind:!0,greedy:!0,inside:{arrow:{pattern:/(?:\.+->?|--+[->]|==+[=>])$/,alias:"operator"},label:{pattern:/^([\s\S]{2}[ \t]*)\S(?:[\s\S]*\S)?/,lookbehind:!0,alias:"property"},"arrow-head":{pattern:/^\S+/,alias:["arrow","operator"]}}},arrow:[{pattern:/(^|[^{}|o.-])[|}][|o](?:--|\.\.)[|o][|{](?![{}|o.-])/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>ox.=-])(?:[<ox](?:==+|--+|-\.*-)[>ox]?|(?:==+|--+|-\.*-)[>ox]|===+|---+|-\.+-)(?![<>ox.=-])/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>()x-])(?:--?(?:>>|[x>)])(?![<>()x])|(?:<<|[x<(])--?(?!-))/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>|*o.-])(?:[*o]--|--[*o]|<\|?(?:--|\.\.)|(?:--|\.\.)\|?>|--|\.\.)(?![<>|*o.-])/,lookbehind:!0,alias:"operator"}],label:{pattern:/(^|[^|<])\|(?:[^\r\n"|]|"[^"\r\n]*")+\|/,lookbehind:!0,greedy:!0,alias:"property"},text:{pattern:/(?:[(\[{]+|\b>)(?:[^\r\n"()\[\]{}]|"[^"\r\n]*")+(?:[)\]}]+|>)/,alias:"string"},string:{pattern:/"[^"\r\n]*"/,greedy:!0},annotation:{pattern:/<<(?:abstract|choice|enumeration|fork|interface|join|service)>>|\[\[(?:choice|fork|join)\]\]/i,alias:"important"},keyword:[{pattern:/(^[ \t]*)(?:action|callback|class|classDef|classDiagram|click|direction|erDiagram|flowchart|gantt|gitGraph|graph|journey|link|linkStyle|pie|requirementDiagram|sequenceDiagram|stateDiagram|stateDiagram-v2|style|subgraph)(?![\w$-])/m,lookbehind:!0,greedy:!0},{pattern:/(^[ \t]*)(?:activate|alt|and|as|autonumber|deactivate|else|end(?:[ \t]+note)?|loop|opt|par|participant|rect|state|note[ \t]+(?:over|(?:left|right)[ \t]+of))(?![\w$-])/im,lookbehind:!0,greedy:!0}],entity:/#[a-z0-9]+;/,operator:{pattern:/(\w[ \t]*)&(?=[ \t]*\w)|:::|:/,lookbehind:!0},punctuation:/[(){};]/}}e.exports=t,t.displayName="mermaid",t.aliases=[]},1337:function(e){"use strict";function t(e){e.languages.mizar={comment:/::.+/,keyword:/@proof\b|\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|end|environ|equals|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:ies|y)|when|where|with|wrt)\b/,parameter:{pattern:/\$(?:10|\d)/,alias:"variable"},variable:/\b\w+(?=:)/,number:/(?:\b|-)\d+\b/,operator:/\.\.\.|->|&|\.?=/,punctuation:/\(#|#\)|[,:;\[\](){}]/}}e.exports=t,t.displayName="mizar",t.aliases=[]},5638:function(e){"use strict";function t(e){!function(e){var t=["$eq","$gt","$gte","$in","$lt","$lte","$ne","$nin","$and","$not","$nor","$or","$exists","$type","$expr","$jsonSchema","$mod","$regex","$text","$where","$geoIntersects","$geoWithin","$near","$nearSphere","$all","$elemMatch","$size","$bitsAllClear","$bitsAllSet","$bitsAnyClear","$bitsAnySet","$comment","$elemMatch","$meta","$slice","$currentDate","$inc","$min","$max","$mul","$rename","$set","$setOnInsert","$unset","$addToSet","$pop","$pull","$push","$pullAll","$each","$position","$slice","$sort","$bit","$addFields","$bucket","$bucketAuto","$collStats","$count","$currentOp","$facet","$geoNear","$graphLookup","$group","$indexStats","$limit","$listLocalSessions","$listSessions","$lookup","$match","$merge","$out","$planCacheStats","$project","$redact","$replaceRoot","$replaceWith","$sample","$set","$skip","$sort","$sortByCount","$unionWith","$unset","$unwind","$setWindowFields","$abs","$accumulator","$acos","$acosh","$add","$addToSet","$allElementsTrue","$and","$anyElementTrue","$arrayElemAt","$arrayToObject","$asin","$asinh","$atan","$atan2","$atanh","$avg","$binarySize","$bsonSize","$ceil","$cmp","$concat","$concatArrays","$cond","$convert","$cos","$dateFromParts","$dateToParts","$dateFromString","$dateToString","$dayOfMonth","$dayOfWeek","$dayOfYear","$degreesToRadians","$divide","$eq","$exp","$filter","$first","$floor","$function","$gt","$gte","$hour","$ifNull","$in","$indexOfArray","$indexOfBytes","$indexOfCP","$isArray","$isNumber","$isoDayOfWeek","$isoWeek","$isoWeekYear","$last","$last","$let","$literal","$ln","$log","$log10","$lt","$lte","$ltrim","$map","$max","$mergeObjects","$meta","$min","$millisecond","$minute","$mod","$month","$multiply","$ne","$not","$objectToArray","$or","$pow","$push","$radiansToDegrees","$range","$reduce","$regexFind","$regexFindAll","$regexMatch","$replaceOne","$replaceAll","$reverseArray","$round","$rtrim","$second","$setDifference","$setEquals","$setIntersection","$setIsSubset","$setUnion","$size","$sin","$slice","$split","$sqrt","$stdDevPop","$stdDevSamp","$strcasecmp","$strLenBytes","$strLenCP","$substr","$substrBytes","$substrCP","$subtract","$sum","$switch","$tan","$toBool","$toDate","$toDecimal","$toDouble","$toInt","$toLong","$toObjectId","$toString","$toLower","$toUpper","$trim","$trunc","$type","$week","$year","$zip","$count","$dateAdd","$dateDiff","$dateSubtract","$dateTrunc","$getField","$rand","$sampleRate","$setField","$unsetField","$comment","$explain","$hint","$max","$maxTimeMS","$min","$orderby","$query","$returnKey","$showDiskLoc","$natural"],n="(?:"+(t=t.map((function(e){return e.replace("$","\\$")}))).join("|")+")\\b";e.languages.mongodb=e.languages.extend("javascript",{}),e.languages.insertBefore("mongodb","string",{property:{pattern:/(?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)(?=\s*:)/,greedy:!0,inside:{keyword:RegExp("^(['\"])?"+n+"(?:\\1)?$")}}}),e.languages.mongodb.string.inside={url:{pattern:/https?:\/\/[-\w@:%.+~#=]{1,256}\.[a-z0-9()]{1,6}\b[-\w()@:%+.~#?&/=]*/i,greedy:!0},entity:{pattern:/\b(?:(?:[01]?\d\d?|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d\d?|2[0-4]\d|25[0-5])\b/,greedy:!0}},e.languages.insertBefore("mongodb","constant",{builtin:{pattern:RegExp("\\b(?:"+["ObjectId","Code","BinData","DBRef","Timestamp","NumberLong","NumberDecimal","MaxKey","MinKey","RegExp","ISODate","UUID"].join("|")+")\\b"),alias:"keyword"}})}(e)}e.exports=t,t.displayName="mongodb",t.aliases=[]},54:function(e){"use strict";function t(e){e.languages.monkey={comment:{pattern:/^#Rem\s[\s\S]*?^#End|'.+/im,greedy:!0},string:{pattern:/"[^"\r\n]*"/,greedy:!0},preprocessor:{pattern:/(^[ \t]*)#.+/m,lookbehind:!0,greedy:!0,alias:"property"},function:/\b\w+(?=\()/,"type-char":{pattern:/\b[?%#$]/,alias:"class-name"},number:{pattern:/((?:\.\.)?)(?:(?:\b|\B-\.?|\B\.)\d+(?:(?!\.\.)\.\d*)?|\$[\da-f]+)/i,lookbehind:!0},keyword:/\b(?:Abstract|Array|Bool|Case|Catch|Class|Const|Continue|Default|Eachin|Else|ElseIf|End|EndIf|Exit|Extends|Extern|False|Field|Final|Float|For|Forever|Function|Global|If|Implements|Import|Inline|Int|Interface|Local|Method|Module|New|Next|Null|Object|Private|Property|Public|Repeat|Return|Select|Self|Step|Strict|String|Super|Then|Throw|To|True|Try|Until|Void|Wend|While)\b/i,operator:/\.\.|<[=>]?|>=?|:?=|(?:[+\-*\/&~|]|\b(?:Mod|Shl|Shr)\b)=?|\b(?:And|Not|Or)\b/i,punctuation:/[.,:;()\[\]]/}}e.exports=t,t.displayName="monkey",t.aliases=[]},1741:function(e){"use strict";function t(e){e.languages.moonscript={comment:/--.*/,string:[{pattern:/'[^']*'|\[(=*)\[[\s\S]*?\]\1\]/,greedy:!0},{pattern:/"[^"]*"/,greedy:!0,inside:{interpolation:{pattern:/#\{[^{}]*\}/,inside:{moonscript:{pattern:/(^#\{)[\s\S]+(?=\})/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/#\{|\}/,alias:"punctuation"}}}}}],"class-name":[{pattern:/(\b(?:class|extends)[ \t]+)\w+/,lookbehind:!0},/\b[A-Z]\w*/],keyword:/\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\b/,variable:/@@?\w*/,property:{pattern:/\b(?!\d)\w+(?=:)|(:)(?!\d)\w+/,lookbehind:!0},function:{pattern:/\b(?:_G|_VERSION|assert|collectgarbage|coroutine\.(?:create|resume|running|status|wrap|yield)|debug\.(?:debug|getfenv|gethook|getinfo|getlocal|getmetatable|getregistry|getupvalue|setfenv|sethook|setlocal|setmetatable|setupvalue|traceback)|dofile|error|getfenv|getmetatable|io\.(?:close|flush|input|lines|open|output|popen|read|stderr|stdin|stdout|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\.(?:abs|acos|asin|atan|atan2|ceil|cos|cosh|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pi|pow|rad|random|randomseed|sin|sinh|sqrt|tan|tanh)|module|next|os\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\.(?:byte|char|dump|find|format|gmatch|gsub|len|lower|match|rep|reverse|sub|upper)|table\.(?:concat|insert|maxn|remove|sort)|tonumber|tostring|type|unpack|xpcall)\b/,inside:{punctuation:/\./}},boolean:/\b(?:false|true)\b/,number:/(?:\B\.\d+|\b\d+\.\d+|\b\d+(?=[eE]))(?:[eE][-+]?\d+)?\b|\b(?:0x[a-fA-F\d]+|\d+)(?:U?LL)?\b/,operator:/\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\.\.)=?|[:#^]|\b(?:and|or)\b=?|\b(?:not)\b/,punctuation:/[.,()[\]{}\\]/},e.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside=e.languages.moonscript,e.languages.moon=e.languages.moonscript}e.exports=t,t.displayName="moonscript",t.aliases=["moon"]},2089:function(e){"use strict";function t(e){e.languages.n1ql={comment:{pattern:/\/\*[\s\S]*?(?:$|\*\/)|--.*/,greedy:!0},string:{pattern:/(["'])(?:\\[\s\S]|(?!\1)[^\\]|\1\1)*\1/,greedy:!0},identifier:{pattern:/`(?:\\[\s\S]|[^\\`]|``)*`/,greedy:!0},parameter:/\$[\w.]+/,keyword:/\b(?:ADVISE|ALL|ALTER|ANALYZE|AS|ASC|AT|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|COMMITTED|CONNECT|CONTINUE|CORRELATE|CORRELATED|COVER|CREATE|CURRENT|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FILTER|FLATTEN|FLUSH|FOLLOWING|FOR|FORCE|FROM|FTS|FUNCTION|GOLANG|GRANT|GROUP|GROUPS|GSI|HASH|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|ISOLATION|JAVASCRIPT|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LANGUAGE|LAST|LEFT|LET|LETTING|LEVEL|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NL|NO|NTH_VALUE|NULL|NULLS|NUMBER|OBJECT|OFFSET|ON|OPTION|OPTIONS|ORDER|OTHERS|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PRECEDING|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROBE|PROCEDURE|PUBLIC|RANGE|RAW|REALM|REDUCE|RENAME|RESPECT|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|ROW|ROWS|SATISFIES|SAVEPOINT|SCHEMA|SCOPE|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TIES|TO|TRAN|TRANSACTION|TRIGGER|TRUNCATE|UNBOUNDED|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WINDOW|WITH|WORK|XOR)\b/i,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:FALSE|TRUE)\b/i,number:/(?:\b\d+\.|\B\.)\d+e[+\-]?\d+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/%]|!=|==?|\|\||<[>=]?|>=?|\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\b/i,punctuation:/[;[\](),.{}:]/}}e.exports=t,t.displayName="n1ql",t.aliases=[]},5739:function(e){"use strict";function t(e){e.languages.n4js=e.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),e.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),e.languages.n4jsd=e.languages.n4js}e.exports=t,t.displayName="n4js",t.aliases=["n4jsd"]},8347:function(e){"use strict";function t(e){e.languages["nand2tetris-hdl"]={comment:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,keyword:/\b(?:BUILTIN|CHIP|CLOCKED|IN|OUT|PARTS)\b/,boolean:/\b(?:false|true)\b/,function:/\b[A-Za-z][A-Za-z0-9]*(?=\()/,number:/\b\d+\b/,operator:/=|\.\./,punctuation:/[{}[\];(),:]/}}e.exports=t,t.displayName="nand2tetrisHdl",t.aliases=[]},9899:function(e){"use strict";function t(e){!function(e){var t=/\{[^\r\n\[\]{}]*\}/,n={"quoted-string":{pattern:/"(?:[^"\\]|\\.)*"/,alias:"operator"},"command-param-id":{pattern:/(\s)\w+:/,lookbehind:!0,alias:"property"},"command-param-value":[{pattern:t,alias:"selector"},{pattern:/([\t ])\S+/,lookbehind:!0,greedy:!0,alias:"operator"},{pattern:/\S(?:.*\S)?/,alias:"operator"}]};function r(e){return"string"===typeof e?e:Array.isArray(e)?e.map(r).join(""):r(e.content)}e.languages.naniscript={comment:{pattern:/^([\t ]*);.*/m,lookbehind:!0},define:{pattern:/^>.+/m,alias:"tag",inside:{value:{pattern:/(^>\w+[\t ]+)(?!\s)[^{}\r\n]+/,lookbehind:!0,alias:"operator"},key:{pattern:/(^>)\w+/,lookbehind:!0}}},label:{pattern:/^([\t ]*)#[\t ]*\w+[\t ]*$/m,lookbehind:!0,alias:"regex"},command:{pattern:/^([\t ]*)@\w+(?=[\t ]|$).*/m,lookbehind:!0,alias:"function",inside:{"command-name":/^@\w+/,expression:{pattern:t,greedy:!0,alias:"selector"},"command-params":{pattern:/\s*\S[\s\S]*/,inside:n}}},"generic-text":{pattern:/(^[ \t]*)[^#@>;\s].*/m,lookbehind:!0,alias:"punctuation",inside:{"escaped-char":/\\[{}\[\]"]/,expression:{pattern:t,greedy:!0,alias:"selector"},"inline-command":{pattern:/\[[\t ]*\w[^\r\n\[\]]*\]/,greedy:!0,alias:"function",inside:{"command-params":{pattern:/(^\[[\t ]*\w+\b)[\s\S]+(?=\]$)/,lookbehind:!0,inside:n},"command-param-name":{pattern:/^(\[[\t ]*)\w+/,lookbehind:!0,alias:"name"},"start-stop-char":/[\[\]]/}}}}},e.languages.nani=e.languages.naniscript,e.hooks.add("after-tokenize",(function(e){e.tokens.forEach((function(e){if("string"!==typeof e&&"generic-text"===e.type){var t=r(e);(function(e){for(var t="[]{}",n=[],r=0;r<e.length;r++){var a=e[r],i=t.indexOf(a);if(-1!==i)if(i%2===0)n.push(i+1);else if(n.pop()!==i)return!1}return 0===n.length})(t)||(e.type="bad-line",e.content=t)}}))}))}(e)}e.exports=t,t.displayName="naniscript",t.aliases=[]},2420:function(e){"use strict";function t(e){e.languages.nasm={comment:/;.*$/m,string:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,label:{pattern:/(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m,lookbehind:!0,alias:"function"},keyword:[/\[?BITS (?:16|32|64)\]?/,{pattern:/(^\s*)section\s*[a-z.]+:?/im,lookbehind:!0},/(?:extern|global)[^;\r\n]*/i,/(?:CPU|DEFAULT|FLOAT).*$/m],register:{pattern:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s)\b/i,alias:"variable"},number:/(?:\b|(?=\$))(?:0[hx](?:\.[\da-f]+|[\da-f]+(?:\.[\da-f]+)?)(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|(?:\d+(?:\.\d+)?|\.\d+)(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-\/%<>=&|$!]/}}e.exports=t,t.displayName="nasm",t.aliases=[]},2019:function(e){"use strict";function t(e){e.languages.neon={comment:{pattern:/#.*/,greedy:!0},datetime:{pattern:/(^|[[{(=:,\s])\d\d\d\d-\d\d?-\d\d?(?:(?:[Tt]| +)\d\d?:\d\d:\d\d(?:\.\d*)? *(?:Z|[-+]\d\d?(?::?\d\d)?)?)?(?=$|[\]}),\s])/,lookbehind:!0,alias:"number"},key:{pattern:/(^|[[{(,\s])[^,:=[\]{}()'"\s]+(?=\s*:(?:$|[\]}),\s])|\s*=)/,lookbehind:!0,alias:"atrule"},number:{pattern:/(^|[[{(=:,\s])[+-]?(?:0x[\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\d+(?:\.\d*)?|\.?\d+)(?:[eE][+-]?\d+)?)(?=$|[\]}),:=\s])/,lookbehind:!0},boolean:{pattern:/(^|[[{(=:,\s])(?:false|no|true|yes)(?=$|[\]}),:=\s])/i,lookbehind:!0},null:{pattern:/(^|[[{(=:,\s])(?:null)(?=$|[\]}),:=\s])/i,lookbehind:!0,alias:"keyword"},string:{pattern:/(^|[[{(=:,\s])(?:('''|""")\r?\n(?:(?:[^\r\n]|\r?\n(?![\t ]*\2))*\r?\n)?[\t ]*\2|'[^'\r\n]*'|"(?:\\.|[^\\"\r\n])*")/,lookbehind:!0,greedy:!0},literal:{pattern:/(^|[[{(=:,\s])(?:[^#"',:=[\]{}()\s`-]|[:-][^"',=[\]{}()\s])(?:[^,:=\]})(\s]|:(?![\s,\]})]|$)|[ \t]+[^#,:=\]})(\s])*/,lookbehind:!0,alias:"string"},punctuation:/[,:=[\]{}()-]/}}e.exports=t,t.displayName="neon",t.aliases=[]},2618:function(e){"use strict";function t(e){e.languages.nevod={comment:/\/\/.*|(?:\/\*[\s\S]*?(?:\*\/|$))/,string:{pattern:/(?:"(?:""|[^"])*"(?!")|'(?:''|[^'])*'(?!'))!?\*?/,greedy:!0,inside:{"string-attrs":/!$|!\*$|\*$/}},namespace:{pattern:/(@namespace\s+)[a-zA-Z0-9\-.]+(?=\s*\{)/,lookbehind:!0},pattern:{pattern:/(@pattern\s+)?#?[a-zA-Z0-9\-.]+(?:\s*\(\s*(?:~\s*)?[a-zA-Z0-9\-.]+\s*(?:,\s*(?:~\s*)?[a-zA-Z0-9\-.]*)*\))?(?=\s*=)/,lookbehind:!0,inside:{"pattern-name":{pattern:/^#?[a-zA-Z0-9\-.]+/,alias:"class-name"},fields:{pattern:/\(.*\)/,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},punctuation:/[,()]/,operator:{pattern:/~/,alias:"field-hidden-mark"}}}}},search:{pattern:/(@search\s+|#)[a-zA-Z0-9\-.]+(?:\.\*)?(?=\s*;)/,alias:"function",lookbehind:!0},keyword:/@(?:having|inside|namespace|outside|pattern|require|search|where)\b/,"standard-pattern":{pattern:/\b(?:Alpha|AlphaNum|Any|Blank|End|LineBreak|Num|NumAlpha|Punct|Space|Start|Symbol|Word|WordBreak)\b(?:\([a-zA-Z0-9\-.,\s+]*\))?/,inside:{"standard-pattern-name":{pattern:/^[a-zA-Z0-9\-.]+/,alias:"builtin"},quantifier:{pattern:/\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/,alias:"number"},"standard-pattern-attr":{pattern:/[a-zA-Z0-9\-.]+/,alias:"builtin"},punctuation:/[,()]/}},quantifier:{pattern:/\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/,alias:"number"},operator:[{pattern:/=/,alias:"pattern-def"},{pattern:/&/,alias:"conjunction"},{pattern:/~/,alias:"exception"},{pattern:/\?/,alias:"optionality"},{pattern:/[[\]]/,alias:"repetition"},{pattern:/[{}]/,alias:"variation"},{pattern:/[+_]/,alias:"sequence"},{pattern:/\.{2,3}/,alias:"span"}],"field-capture":[{pattern:/([a-zA-Z0-9\-.]+\s*\()\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+(?:\s*,\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+)*(?=\s*\))/,lookbehind:!0,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},colon:/:/}},{pattern:/[a-zA-Z0-9\-.]+\s*:/,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},colon:/:/}}],punctuation:/[:;,()]/,name:/[a-zA-Z0-9\-.]+/}}e.exports=t,t.displayName="nevod",t.aliases=[]},8659:function(e){"use strict";function t(e){!function(e){var t=/\$(?:\w[a-z\d]*(?:_[^\x00-\x1F\s"'\\()$]*)?|\{[^}\s"'\\]+\})/i;e.languages.nginx={comment:{pattern:/(^|[\s{};])#.*/,lookbehind:!0,greedy:!0},directive:{pattern:/(^|\s)\w(?:[^;{}"'\\\s]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\s+(?:#.*(?!.)|(?![#\s])))*?(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:{string:{pattern:/((?:^|[^\\])(?:\\\\)*)(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,lookbehind:!0,greedy:!0,inside:{escape:{pattern:/\\["'\\nrt]/,alias:"entity"},variable:t}},comment:{pattern:/(\s)#.*/,lookbehind:!0,greedy:!0},keyword:{pattern:/^\S+/,greedy:!0},boolean:{pattern:/(\s)(?:off|on)(?!\S)/,lookbehind:!0},number:{pattern:/(\s)\d+[a-z]*(?!\S)/i,lookbehind:!0},variable:t}},punctuation:/[{};]/}}(e)}e.exports=t,t.displayName="nginx",t.aliases=[]},6e3:function(e){"use strict";function t(e){e.languages.nim={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/(?:\b(?!\d)(?:\w|\\x[89a-fA-F][0-9a-fA-F])+)?(?:"""[\s\S]*?"""(?!")|"(?:\\[\s\S]|""|[^"\\])*")/,greedy:!0},char:{pattern:/'(?:\\(?:\d+|x[\da-fA-F]{0,2}|.)|[^'])'/,greedy:!0},function:{pattern:/(?:(?!\d)(?:\w|\\x[89a-fA-F][0-9a-fA-F])+|`[^`\r\n]+`)\*?(?:\[[^\]]+\])?(?=\s*\()/,greedy:!0,inside:{operator:/\*$/}},identifier:{pattern:/`[^`\r\n]+`/,greedy:!0,inside:{punctuation:/`/}},number:/\b(?:0[xXoObB][\da-fA-F_]+|\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:[eE][+-]?\d[\d_]*)?)(?:'?[iuf]\d*)?/,keyword:/\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\b/,operator:{pattern:/(^|[({\[](?=\.\.)|(?![({\[]\.).)(?:(?:[=+\-*\/<>@$~&%|!?^:\\]|\.\.|\.(?![)}\]]))+|\b(?:and|div|in|is|isnot|mod|not|notin|of|or|shl|shr|xor)\b)/m,lookbehind:!0},punctuation:/[({\[]\.|\.[)}\]]|[`(){}\[\],:]/}}e.exports=t,t.displayName="nim",t.aliases=[]},7190:function(e){"use strict";function t(e){e.languages.nix={comment:{pattern:/\/\*[\s\S]*?\*\/|#.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/,greedy:!0,inside:{interpolation:{pattern:/(^|(?:^|(?!'').)[^\\])\$\{(?:[^{}]|\{[^}]*\})*\}/,lookbehind:!0,inside:null}}},url:[/\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/,{pattern:/([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/,lookbehind:!0}],antiquotation:{pattern:/\$(?=\{)/,alias:"important"},number:/\b\d+\b/,keyword:/\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/,function:/\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:Tarball|url)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/,boolean:/\b(?:false|true)\b/,operator:/[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/,punctuation:/[{}()[\].,:;]/},e.languages.nix.string.inside.interpolation.inside=e.languages.nix}e.exports=t,t.displayName="nix",t.aliases=[]},1465:function(e){"use strict";function t(e){e.languages.nsis={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|[#;].*)/,lookbehind:!0,greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:{pattern:/(^[\t ]*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|BG(?:Font|Gradient|Image)|Banner|BrandingText|BringToFront|CRCCheck|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|Seek|Write|WriteByte|WriteUTF16LE|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DLLVersion(?:Local)?|DlgItem|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|NSISdl|Name|Nop|OutFile|PE(?:DllCharacteristics|SubsysVer)|Page(?:Callbacks)?|Pop|Push|Quit|RMDir|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|UnRegDLL|Unicode|UninstPage|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UserInfo|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|Var|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle|ns(?:Dialogs|Exec))\b/m,lookbehind:!0},property:/\b(?:ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY|admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user)\b/,constant:/\$\{[!\w\.:\^-]+\}|\$\([!\w\.:\^-]+\)/,variable:/\$\w[\w\.]*/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|\+\+?|<=?|>=?|==?=?|&&?|\|\|?|[?*\/~^%]/,punctuation:/[{}[\];(),.:]/,important:{pattern:/(^[\t ]*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\b/im,lookbehind:!0}}}e.exports=t,t.displayName="nsis",t.aliases=[]},9263:function(e,t,n){"use strict";var r=n(272);function a(e){e.register(r),e.languages.objectivec=e.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete e.languages.objectivec["class-name"],e.languages.objc=e.languages.objectivec}e.exports=a,a.displayName="objectivec",a.aliases=["objc"]},4974:function(e){"use strict";function t(e){e.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/}}e.exports=t,t.displayName="ocaml",t.aliases=[]},6296:function(e,t,n){"use strict";var r=n(272);function a(e){e.register(r),function(e){e.languages.opencl=e.languages.extend("c",{keyword:/\b(?:(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|__attribute__|auto|(?:bool|u?(?:char|int|long|short)|half|quad)(?:2|3|4|8|16)?|break|case|complex|const|continue|(?:double|float)(?:16(?:x(?:1|2|4|8|16))?|1x(?:1|2|4|8|16)|2(?:x(?:1|2|4|8|16))?|3|4(?:x(?:1|2|4|8|16))?|8(?:x(?:1|2|4|8|16))?)?|default|do|else|enum|extern|for|goto|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\b/,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[fuhl]{0,4}/i,boolean:/\b(?:false|true)\b/,"constant-opencl-kernel":{pattern:/\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:GLOBAL|LOCAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|(?:MAX|MIN)(?:(?:_10)?_EXP)?|MANT_DIG)|FLT_RADIX|HUGE_VALF?|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|INFINITY|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:2|10)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN|(?:UCHAR|UINT|ULONG|USHRT)_MAX)\b/,alias:"constant"}}),e.languages.insertBefore("opencl","class-name",{"builtin-type":{pattern:/\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\b/,alias:"keyword"}});var t={"type-opencl-host":{pattern:/\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|int|long|short)|double|float)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\b/,alias:"keyword"},"boolean-opencl-host":{pattern:/\bCL_(?:FALSE|TRUE)\b/,alias:"boolean"},"constant-opencl-host":{pattern:/\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:8|16|24|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\b/,alias:"constant"},"function-opencl-host":{pattern:/\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\b/,alias:"function"}};e.languages.insertBefore("c","keyword",t),e.languages.cpp&&(t["type-opencl-host-cpp"]={pattern:/\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|Sampler|UserEvent)\b/,alias:"keyword"},e.languages.insertBefore("cpp","keyword",t))}(e)}e.exports=a,a.displayName="opencl",a.aliases=[]},6778:function(e){"use strict";function t(e){e.languages.openqasm={comment:/\/\*[\s\S]*?\*\/|\/\/.*/,string:{pattern:/"[^"\r\n\t]*"|'[^'\r\n\t]*'/,greedy:!0},keyword:/\b(?:CX|OPENQASM|U|barrier|boxas|boxto|break|const|continue|ctrl|def|defcal|defcalgrammar|delay|else|end|for|gate|gphase|if|in|include|inv|kernel|lengthof|let|measure|pow|reset|return|rotary|stretchinf|while)\b|#pragma\b/,"class-name":/\b(?:angle|bit|bool|creg|fixed|float|int|length|qreg|qubit|stretch|uint)\b/,function:/\b(?:cos|exp|ln|popcount|rotl|rotr|sin|sqrt|tan)\b(?=\s*\()/,constant:/\b(?:euler|pi|tau)\b|\u03c0|\ud835\udf0f|\u2107/,number:{pattern:/(^|[^.\w$])(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?(?:dt|ns|us|\xb5s|ms|s)?/i,lookbehind:!0},operator:/->|>>=?|<<=?|&&|\|\||\+\+|--|[!=<>&|~^+\-*/%]=?|@/,punctuation:/[(){}\[\];,:.]/},e.languages.qasm=e.languages.openqasm}e.exports=t,t.displayName="openqasm",t.aliases=["qasm"]},6792:function(e){"use strict";function t(e){e.languages.oz={comment:{pattern:/\/\*[\s\S]*?\*\/|%.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\[\s\S])*"/,greedy:!0},atom:{pattern:/'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,alias:"builtin"},keyword:/\$|\[\]|\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\b/,function:[/\b[a-z][A-Za-z\d]*(?=\()/,{pattern:/(\{)[A-Z][A-Za-z\d]*\b/,lookbehind:!0}],number:/\b(?:0[bx][\da-f]+|\d+(?:\.\d*)?(?:e~?\d+)?)\b|&(?:[^\\]|\\(?:\d{3}|.))/i,variable:/`(?:[^`\\]|\\.)+`/,"attr-name":/\b\w+(?=[ \t]*:(?![:=]))/,operator:/:(?:=|::?)|<[-:=]?|=(?:=|<?:?)|>=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/,punctuation:/[\[\](){}.:;?]/}}e.exports=t,t.displayName="oz",t.aliases=[]},6478:function(e){"use strict";function t(e){e.languages.parigp={comment:/\/\*[\s\S]*?\*\/|\\\\.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"/,greedy:!0},keyword:function(){var e=["breakpoint","break","dbg_down","dbg_err","dbg_up","dbg_x","forcomposite","fordiv","forell","forpart","forprime","forstep","forsubgroup","forvec","for","iferr","if","local","my","next","return","until","while"];return e=e.map((function(e){return e.split("").join(" *")})).join("|"),RegExp("\\b(?:"+e+")\\b")}(),function:/\b\w(?:[\w ]*\w)?(?= *\()/,number:{pattern:/((?:\. *\. *)?)(?:\b\d(?: *\d)*(?: *(?!\. *\.)\.(?: *\d)*)?|\. *\d(?: *\d)*)(?: *e *(?:[+-] *)?\d(?: *\d)*)?/i,lookbehind:!0},operator:/\. *\.|[*\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\+(?: *[+=])?|-(?: *[-=>])?|<(?: *>|(?: *<)?(?: *=)?)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\(?: *\/)?(?: *=)?|&(?: *&)?|\| *\||['#~^]/,punctuation:/[\[\]{}().,:;|]/}}e.exports=t,t.displayName="parigp",t.aliases=[]},6806:function(e){"use strict";function t(e){!function(e){var t=e.languages.parser=e.languages.extend("markup",{keyword:{pattern:/(^|[^^])(?:\^(?:case|eval|for|if|switch|throw)\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\b)/,lookbehind:!0},variable:{pattern:/(^|[^^])\B\$(?:\w+|(?=[.{]))(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{punctuation:/\.|:+/}},function:{pattern:/(^|[^^])\B[@^]\w+(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{keyword:{pattern:/(^@)(?:GET_|SET_)/,lookbehind:!0},punctuation:/\.|:+/}},escape:{pattern:/\^(?:[$^;@()\[\]{}"':]|#[a-f\d]*)/i,alias:"builtin"},punctuation:/[\[\](){};]/});t=e.languages.insertBefore("parser","keyword",{"parser-comment":{pattern:/(\s)#.*/,lookbehind:!0,alias:"comment"},expression:{pattern:/(^|[^^])\((?:[^()]|\((?:[^()]|\((?:[^()])*\))*\))*\)/,greedy:!0,lookbehind:!0,inside:{string:{pattern:/(^|[^^])(["'])(?:(?!\2)[^^]|\^[\s\S])*\2/,lookbehind:!0},keyword:t.keyword,variable:t.variable,function:t.function,boolean:/\b(?:false|true)\b/,number:/\b(?:0x[a-f\d]+|\d+(?:\.\d*)?(?:e[+-]?\d+)?)\b/i,escape:t.escape,operator:/[~+*\/\\%]|!(?:\|\|?|=)?|&&?|\|\|?|==|<[<=]?|>[>=]?|-[fd]?|\b(?:def|eq|ge|gt|in|is|le|lt|ne)\b/,punctuation:t.punctuation}}}),e.languages.insertBefore("inside","punctuation",{expression:t.expression,keyword:t.keyword,variable:t.variable,function:t.function,escape:t.escape,"parser-punctuation":{pattern:t.punctuation,alias:"punctuation"}},t.tag.inside["attr-value"])}(e)}e.exports=t,t.displayName="parser",t.aliases=[]},347:function(e){"use strict";function t(e){e.languages.pascal={directive:{pattern:/\{\$[\s\S]*?\}/,greedy:!0,alias:["marco","property"]},comment:{pattern:/\(\*[\s\S]*?\*\)|\{[\s\S]*?\}|\/\/.*/,greedy:!0},string:{pattern:/(?:'(?:''|[^'\r\n])*'(?!')|#[&$%]?[a-f\d]+)+|\^[a-z]/i,greedy:!0},asm:{pattern:/(\basm\b)[\s\S]+?(?=\bend\s*[;[])/i,lookbehind:!0,greedy:!0,inside:null},keyword:[{pattern:/(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:dispose|exit|false|new|true)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i,lookbehind:!0}],number:[/(?:[&%]\d+|\$[a-f\d]+)/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?/i],operator:[/\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/,{pattern:/(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/,lookbehind:!0}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/},e.languages.pascal.asm.inside=e.languages.extend("pascal",{asm:void 0,keyword:void 0,operator:void 0}),e.languages.objectpascal=e.languages.pascal}e.exports=t,t.displayName="pascal",t.aliases=["objectpascal"]},7976:function(e){"use strict";function t(e){!function(e){var t=/\((?:[^()]|\((?:[^()]|\([^()]*\))*\))*\)/.source,n=/(?:\b\w+(?:<braces>)?|<braces>)/.source.replace(/<braces>/g,(function(){return t})),r=e.languages.pascaligo={comment:/\(\*[\s\S]+?\*\)|\/\/.*/,string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1|\^[a-z]/i,greedy:!0},"class-name":[{pattern:RegExp(/(\btype\s+\w+\s+is\s+)<type>/.source.replace(/<type>/g,(function(){return n})),"i"),lookbehind:!0,inside:null},{pattern:RegExp(/<type>(?=\s+is\b)/.source.replace(/<type>/g,(function(){return n})),"i"),inside:null},{pattern:RegExp(/(:\s*)<type>/.source.replace(/<type>/g,(function(){return n}))),lookbehind:!0,inside:null}],keyword:{pattern:/(^|[^&])\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\b/i,lookbehind:!0},boolean:{pattern:/(^|[^&])\b(?:False|True)\b/i,lookbehind:!0},builtin:{pattern:/(^|[^&])\b(?:bool|int|list|map|nat|record|string|unit)\b/i,lookbehind:!0},function:/\b\w+(?=\s*\()/,number:[/%[01]+|&[0-7]+|\$[a-f\d]+/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?(?:mtz|n)?/i],operator:/->|=\/=|\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=|]|\b(?:and|mod|or)\b/,punctuation:/\(\.|\.\)|[()\[\]:;,.{}]/},a=["comment","keyword","builtin","operator","punctuation"].reduce((function(e,t){return e[t]=r[t],e}),{});r["class-name"].forEach((function(e){e.inside=a}))}(e)}e.exports=t,t.displayName="pascaligo",t.aliases=[]},7484:function(e){"use strict";function t(e){e.languages.pcaxis={string:/"[^"]*"/,keyword:{pattern:/((?:^|;)\s*)[-A-Z\d]+(?:\s*\[[-\w]+\])?(?:\s*\("[^"]*"(?:,\s*"[^"]*")*\))?(?=\s*=)/,lookbehind:!0,greedy:!0,inside:{keyword:/^[-A-Z\d]+/,language:{pattern:/^(\s*)\[[-\w]+\]/,lookbehind:!0,inside:{punctuation:/^\[|\]$/,property:/[-\w]+/}},"sub-key":{pattern:/^(\s*)\S[\s\S]*/,lookbehind:!0,inside:{parameter:{pattern:/"[^"]*"/,alias:"property"},punctuation:/^\(|\)$|,/}}}},operator:/=/,tlist:{pattern:/TLIST\s*\(\s*\w+(?:(?:\s*,\s*"[^"]*")+|\s*,\s*"[^"]*"-"[^"]*")?\s*\)/,greedy:!0,inside:{function:/^TLIST/,property:{pattern:/^(\s*\(\s*)\w+/,lookbehind:!0},string:/"[^"]*"/,punctuation:/[(),]/,operator:/-/}},punctuation:/[;,]/,number:{pattern:/(^|\s)\d+(?:\.\d+)?(?!\S)/,lookbehind:!0},boolean:/NO|YES/},e.languages.px=e.languages.pcaxis}e.exports=t,t.displayName="pcaxis",t.aliases=["px"]},3205:function(e){"use strict";function t(e){e.languages.peoplecode={comment:RegExp([/\/\*[\s\S]*?\*\//.source,/\bREM[^;]*;/.source,/<\*(?:[^<*]|\*(?!>)|<(?!\*)|<\*(?:(?!\*>)[\s\S])*\*>)*\*>/.source,/\/\+[\s\S]*?\+\//.source].join("|")),string:{pattern:/'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,greedy:!0},variable:/%\w+/,"function-definition":{pattern:/((?:^|[^\w-])(?:function|method)\s+)\w+/i,lookbehind:!0,alias:"function"},"class-name":{pattern:/((?:^|[^-\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\s+)\w+(?::\w+)*/i,lookbehind:!0,inside:{punctuation:/:/}},keyword:/\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|if|implements|import|instance|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\b/i,"operator-keyword":{pattern:/\b(?:and|not|or)\b/i,alias:"operator"},function:/[_a-z]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/i,number:/\b\d+(?:\.\d+)?\b/,operator:/<>|[<>]=?|!=|\*\*|[-+*/|=@]/,punctuation:/[:.;,()[\]]/},e.languages.pcode=e.languages.peoplecode}e.exports=t,t.displayName="peoplecode",t.aliases=["pcode"]},1797:function(e){"use strict";function t(e){!function(e){var t=/(?:\((?:[^()\\]|\\[\s\S])*\)|\{(?:[^{}\\]|\\[\s\S])*\}|\[(?:[^[\]\\]|\\[\s\S])*\]|<(?:[^<>\\]|\\[\s\S])*>)/.source;e.languages.perl={comment:[{pattern:/(^\s*)=\w[\s\S]*?=cut.*/m,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0,greedy:!0}],string:[{pattern:RegExp(/\b(?:q|qq|qw|qx)(?![a-zA-Z0-9])\s*/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2/.source,t].join("|")+")"),greedy:!0},{pattern:/("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/'(?:[^'\\\r\n]|\\.)*'/,greedy:!0}],regex:[{pattern:RegExp(/\b(?:m|qr)(?![a-zA-Z0-9])\s*/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2/.source,t].join("|")+")"+/[msixpodualngc]*/.source),greedy:!0},{pattern:RegExp(/(^|[^-])\b(?:s|tr|y)(?![a-zA-Z0-9])\s*/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2/.source,/([a-zA-Z0-9])(?:(?!\3)[^\\]|\\[\s\S])*\3(?:(?!\3)[^\\]|\\[\s\S])*\3/.source,t+/\s*/.source+t].join("|")+")"+/[msixpodualngcer]*/.source),lookbehind:!0,greedy:!0},{pattern:/\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|x|xor)\b))/,greedy:!0}],variable:[/[&*$@%]\{\^[A-Z]+\}/,/[&*$@%]\^[A-Z_]/,/[&*$@%]#?(?=\{)/,/[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+(?![\w$]))+(?:::)*/,/[&*$@%]\d+/,/(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/],filehandle:{pattern:/<(?![<=])\S*?>|\b_\b/,alias:"symbol"},"v-string":{pattern:/v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/,alias:"string"},function:{pattern:/(\bsub[ \t]+)\w+/,lookbehind:!0},keyword:/\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\b/,number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/,operator:/-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\b/,punctuation:/[{}[\];(),:]/}}(e)}e.exports=t,t.displayName="perl",t.aliases=[]},7241:function(e,t,n){"use strict";var r=n(7304);function a(e){e.register(r),e.languages.insertBefore("php","variable",{this:{pattern:/\$this\b/,alias:"keyword"},global:/\$(?:GLOBALS|HTTP_RAW_POST_DATA|_(?:COOKIE|ENV|FILES|GET|POST|REQUEST|SERVER|SESSION)|argc|argv|http_response_header|php_errormsg)\b/,scope:{pattern:/\b[\w\\]+::/,inside:{keyword:/\b(?:parent|self|static)\b/,punctuation:/::|\\/}}})}e.exports=a,a.displayName="phpExtras",a.aliases=[]},7304:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),function(e){var t=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,n=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],r=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,a=/<?=>|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,i=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:t,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s+)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:r,operator:a,punctuation:i};var o={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},s=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:o}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:o}}];e.languages.insertBefore("php","variable",{string:s,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:t,string:s,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,number:r,operator:a,punctuation:i}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),e.hooks.add("before-tokenize",(function(t){if(/<\?/.test(t.code)){e.languages["markup-templating"].buildPlaceholders(t,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g)}})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")}))}(e)}e.exports=a,a.displayName="php",a.aliases=[]},7613:function(e,t,n){"use strict";var r=n(7304),a=n(9285);function i(e){e.register(r),e.register(a),function(e){var t=/(?:\b[a-zA-Z]\w*|[|\\[\]])+/.source;e.languages.phpdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp("(@(?:global|param|property(?:-read|-write)?|var)\\s+(?:"+t+"\\s+)?)\\$\\w+"),lookbehind:!0}}),e.languages.insertBefore("phpdoc","keyword",{"class-name":[{pattern:RegExp("(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\s+)"+t),lookbehind:!0,inside:{keyword:/\b(?:array|bool|boolean|callback|double|false|float|int|integer|mixed|null|object|resource|self|string|true|void)\b/,punctuation:/[|\\[\]()]/}}]}),e.languages.javadoclike.addSupport("php",e.languages.phpdoc)}(e)}e.exports=i,i.displayName="phpdoc",i.aliases=[]},7363:function(e,t,n){"use strict";var r=n(7740);function a(e){e.register(r),e.languages.plsql=e.languages.extend("sql",{comment:{pattern:/\/\*[\s\S]*?\*\/|--.*/,greedy:!0},keyword:/\b(?:A|ACCESSIBLE|ADD|AGENT|AGGREGATE|ALL|ALTER|AND|ANY|ARRAY|AS|ASC|AT|ATTRIBUTE|AUTHID|AVG|BEGIN|BETWEEN|BFILE_BASE|BINARY|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BULK|BY|BYTE|C|CALL|CALLING|CASCADE|CASE|CHAR|CHARACTER|CHARSET|CHARSETFORM|CHARSETID|CHAR_BASE|CHECK|CLOB_BASE|CLONE|CLOSE|CLUSTER|CLUSTERS|COLAUTH|COLLECT|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPILED|COMPRESS|CONNECT|CONSTANT|CONSTRUCTOR|CONTEXT|CONTINUE|CONVERT|COUNT|CRASH|CREATE|CREDENTIAL|CURRENT|CURSOR|CUSTOMDATUM|DANGLING|DATA|DATE|DATE_BASE|DAY|DECLARE|DEFAULT|DEFINE|DELETE|DESC|DETERMINISTIC|DIRECTORY|DISTINCT|DOUBLE|DROP|DURATION|ELEMENT|ELSE|ELSIF|EMPTY|END|ESCAPE|EXCEPT|EXCEPTION|EXCEPTIONS|EXCLUSIVE|EXECUTE|EXISTS|EXIT|EXTERNAL|FETCH|FINAL|FIRST|FIXED|FLOAT|FOR|FORALL|FORCE|FROM|FUNCTION|GENERAL|GOTO|GRANT|GROUP|HASH|HAVING|HEAP|HIDDEN|HOUR|IDENTIFIED|IF|IMMEDIATE|IMMUTABLE|IN|INCLUDING|INDEX|INDEXES|INDICATOR|INDICES|INFINITE|INSERT|INSTANTIABLE|INT|INTERFACE|INTERSECT|INTERVAL|INTO|INVALIDATE|IS|ISOLATION|JAVA|LANGUAGE|LARGE|LEADING|LENGTH|LEVEL|LIBRARY|LIKE|LIKE2|LIKE4|LIKEC|LIMIT|LIMITED|LOCAL|LOCK|LONG|LOOP|MAP|MAX|MAXLEN|MEMBER|MERGE|MIN|MINUS|MINUTE|MOD|MODE|MODIFY|MONTH|MULTISET|MUTABLE|NAME|NAN|NATIONAL|NATIVE|NCHAR|NEW|NOCOMPRESS|NOCOPY|NOT|NOWAIT|NULL|NUMBER_BASE|OBJECT|OCICOLL|OCIDATE|OCIDATETIME|OCIDURATION|OCIINTERVAL|OCILOBLOCATOR|OCINUMBER|OCIRAW|OCIREF|OCIREFCURSOR|OCIROWID|OCISTRING|OCITYPE|OF|OLD|ON|ONLY|OPAQUE|OPEN|OPERATOR|OPTION|OR|ORACLE|ORADATA|ORDER|ORGANIZATION|ORLANY|ORLVARY|OTHERS|OUT|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETER|PARAMETERS|PARENT|PARTITION|PASCAL|PERSISTABLE|PIPE|PIPELINED|PLUGGABLE|POLYMORPHIC|PRAGMA|PRECISION|PRIOR|PRIVATE|PROCEDURE|PUBLIC|RAISE|RANGE|RAW|READ|RECORD|REF|REFERENCE|RELIES_ON|REM|REMAINDER|RENAME|RESOURCE|RESULT|RESULT_CACHE|RETURN|RETURNING|REVERSE|REVOKE|ROLLBACK|ROW|SAMPLE|SAVE|SAVEPOINT|SB1|SB2|SB4|SECOND|SEGMENT|SELECT|SELF|SEPARATE|SEQUENCE|SERIALIZABLE|SET|SHARE|SHORT|SIZE|SIZE_T|SOME|SPARSE|SQL|SQLCODE|SQLDATA|SQLNAME|SQLSTATE|STANDARD|START|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUM|SYNONYM|TABAUTH|TABLE|TDO|THE|THEN|TIME|TIMESTAMP|TIMEZONE_ABBR|TIMEZONE_HOUR|TIMEZONE_MINUTE|TIMEZONE_REGION|TO|TRAILING|TRANSACTION|TRANSACTIONAL|TRUSTED|TYPE|UB1|UB2|UB4|UNDER|UNION|UNIQUE|UNPLUG|UNSIGNED|UNTRUSTED|UPDATE|USE|USING|VALIST|VALUE|VALUES|VARIABLE|VARIANCE|VARRAY|VARYING|VIEW|VIEWS|VOID|WHEN|WHERE|WHILE|WITH|WORK|WRAPPED|WRITE|YEAR|ZONE)\b/i,operator:/:=?|=>|[<>^~!]=|\.\.|\|\||\*\*|[-+*/%<>=@]/}),e.languages.insertBefore("plsql","operator",{label:{pattern:/<<\s*\w+\s*>>/,alias:"symbol"}})}e.exports=a,a.displayName="plsql",a.aliases=[]},7953:function(e){"use strict";function t(e){e.languages.powerquery={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},"quoted-identifier":{pattern:/#"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},string:{pattern:/(?:#!)?"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},constant:[/\bDay\.(?:Friday|Monday|Saturday|Sunday|Thursday|Tuesday|Wednesday)\b/,/\bTraceLevel\.(?:Critical|Error|Information|Verbose|Warning)\b/,/\bOccurrence\.(?:All|First|Last)\b/,/\bOrder\.(?:Ascending|Descending)\b/,/\bRoundingMode\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\b/,/\bMissingField\.(?:Error|Ignore|UseNull)\b/,/\bQuoteStyle\.(?:Csv|None)\b/,/\bJoinKind\.(?:FullOuter|Inner|LeftAnti|LeftOuter|RightAnti|RightOuter)\b/,/\bGroupKind\.(?:Global|Local)\b/,/\bExtraValues\.(?:Error|Ignore|List)\b/,/\bJoinAlgorithm\.(?:Dynamic|LeftHash|LeftIndex|PairwiseHash|RightHash|RightIndex|SortMerge)\b/,/\bJoinSide\.(?:Left|Right)\b/,/\bPrecision\.(?:Decimal|Double)\b/,/\bRelativePosition\.From(?:End|Start)\b/,/\bTextEncoding\.(?:Ascii|BigEndianUnicode|Unicode|Utf16|Utf8|Windows)\b/,/\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Function|Int16|Int32|Int64|Int8|List|Logical|None|Number|Record|Table|Text|Time)\.Type\b/,/\bnull\b/],boolean:/\b(?:false|true)\b/,keyword:/\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\b/,function:{pattern:/(^|[^#\w.])[a-z_][\w.]*(?=\s*\()/i,lookbehind:!0},"data-type":{pattern:/\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time)\b/,alias:"class-name"},number:{pattern:/\b0x[\da-f]+\b|(?:[+-]?(?:\b\d+\.)?\b\d+|[+-]\.\d+|(^|[^.])\B\.\d+)(?:e[+-]?\d+)?\b/i,lookbehind:!0},operator:/[-+*\/&?@^]|<(?:=>?|>)?|>=?|=>?|\.\.\.?/,punctuation:/[,;\[\](){}]/},e.languages.pq=e.languages.powerquery,e.languages.mscript=e.languages.powerquery}e.exports=t,t.displayName="powerquery",t.aliases=[]},4986:function(e){"use strict";function t(e){!function(e){var t=e.languages.powershell={comment:[{pattern:/(^|[^`])<#[\s\S]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/"(?:`[\s\S]|[^`"])*"/,greedy:!0,inside:null},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\[[a-z](?:\[(?:\[[^\]]*\]|[^\[\]])*\]|[^\[\]])*\]/i,boolean:/\$(?:false|true)\b/i,variable:/\$\w+\b/,function:[/\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i,/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(^|\W)(?:!|-(?:b?(?:and|x?or)|as|(?:Not)?(?:Contains|In|Like|Match)|eq|ge|gt|is(?:Not)?|Join|le|lt|ne|not|Replace|sh[lr])\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/};t.string[0].inside={function:{pattern:/(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/,lookbehind:!0,inside:t},boolean:t.boolean,variable:t.variable}}(e)}e.exports=t,t.displayName="powershell",t.aliases=[]},4970:function(e){"use strict";function t(e){e.languages.processing=e.languages.extend("clike",{keyword:/\b(?:break|case|catch|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,function:/\b\w+(?=\s*\()/,operator:/<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/}),e.languages.insertBefore("processing","number",{constant:/\b(?!XML\b)[A-Z][A-Z\d_]+\b/,type:{pattern:/\b(?:boolean|byte|char|color|double|float|int|[A-Z]\w*)\b/,alias:"class-name"}})}e.exports=t,t.displayName="processing",t.aliases=[]},5725:function(e){"use strict";function t(e){e.languages.prolog={comment:{pattern:/\/\*[\s\S]*?\*\/|%.*/,greedy:!0},string:{pattern:/(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1(?!\1)/,greedy:!0},builtin:/\b(?:fx|fy|xf[xy]?|yfx?)\b/,function:/\b[a-z]\w*(?:(?=\()|\/\d+)/,number:/\b\d+(?:\.\d*)?/,operator:/[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,punctuation:/[(){}\[\],]/}}e.exports=t,t.displayName="prolog",t.aliases=[]},7415:function(e){"use strict";function t(e){!function(e){var t=["on","ignoring","group_right","group_left","by","without"],n=["sum","min","max","avg","group","stddev","stdvar","count","count_values","bottomk","topk","quantile"].concat(t,["offset"]);e.languages.promql={comment:{pattern:/(^[ \t]*)#.*/m,lookbehind:!0},"vector-match":{pattern:new RegExp("((?:"+t.join("|")+")\\s*)\\([^)]*\\)"),lookbehind:!0,inside:{"label-key":{pattern:/\b[^,]+\b/,alias:"attr-name"},punctuation:/[(),]/}},"context-labels":{pattern:/\{[^{}]*\}/,inside:{"label-key":{pattern:/\b[a-z_]\w*(?=\s*(?:=|![=~]))/,alias:"attr-name"},"label-value":{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0,alias:"attr-value"},punctuation:/\{|\}|=~?|![=~]|,/}},"context-range":[{pattern:/\[[\w\s:]+\]/,inside:{punctuation:/\[|\]|:/,"range-duration":{pattern:/\b(?:\d+(?:[smhdwy]|ms))+\b/i,alias:"number"}}},{pattern:/(\boffset\s+)\w+/,lookbehind:!0,inside:{"range-duration":{pattern:/\b(?:\d+(?:[smhdwy]|ms))+\b/i,alias:"number"}}}],keyword:new RegExp("\\b(?:"+n.join("|")+")\\b","i"),function:/\b[a-z_]\w*(?=\s*\()/i,number:/[-+]?(?:(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[-+]?\d+)?\b|\b(?:0x[0-9a-f]+|nan|inf)\b)/i,operator:/[\^*/%+-]|==|!=|<=|<|>=|>|\b(?:and|or|unless)\b/i,punctuation:/[{};()`,.[\]]/}}(e)}e.exports=t,t.displayName="promql",t.aliases=[]},9164:function(e){"use strict";function t(e){e.languages.properties={comment:/^[ \t]*[#!].*$/m,"attr-value":{pattern:/(^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+(?: *[=:] *(?! )| ))(?:\\(?:\r\n|[\s\S])|[^\\\r\n])+/m,lookbehind:!0},"attr-name":/^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+(?= *[=:]| )/m,punctuation:/[=:]/}}e.exports=t,t.displayName="properties",t.aliases=[]},4973:function(e){"use strict";function t(e){!function(e){var t=/\b(?:bool|bytes|double|s?fixed(?:32|64)|float|[su]?int(?:32|64)|string)\b/;e.languages.protobuf=e.languages.extend("clike",{"class-name":[{pattern:/(\b(?:enum|extend|message|service)\s+)[A-Za-z_]\w*(?=\s*\{)/,lookbehind:!0},{pattern:/(\b(?:rpc\s+\w+|returns)\s*\(\s*(?:stream\s+)?)\.?[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*(?=\s*\))/,lookbehind:!0}],keyword:/\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\s+\w)|service|stream|syntax|to)\b(?!\s*=\s*\d)/,function:/\b[a-z_]\w*(?=\s*\()/i}),e.languages.insertBefore("protobuf","operator",{map:{pattern:/\bmap<\s*[\w.]+\s*,\s*[\w.]+\s*>(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/[<>.,]/,builtin:t}},builtin:t,"positional-class-name":{pattern:/(?:\b|\B\.)[a-z_]\w*(?:\.[a-z_]\w*)*(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/\./}},annotation:{pattern:/(\[\s*)[a-z_]\w*(?=\s*=)/i,lookbehind:!0}})}(e)}e.exports=t,t.displayName="protobuf",t.aliases=[]},1344:function(e){"use strict";function t(e){e.languages.psl={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0,inside:{symbol:/\\[ntrbA-Z"\\]/}},"heredoc-string":{pattern:/<<<([a-zA-Z_]\w*)[\r\n](?:.*[\r\n])*?\1\b/,alias:"string",greedy:!0},keyword:/\b(?:__multi|__single|case|default|do|else|elsif|exit|export|for|foreach|function|if|last|line|local|next|requires|return|switch|until|while|word)\b/,constant:/\b(?:ALARM|CHART_ADD_GRAPH|CHART_DELETE_GRAPH|CHART_DESTROY|CHART_LOAD|CHART_PRINT|EOF|OFFLINE|OK|PSL_PROF_LOG|R_CHECK_HORIZ|R_CHECK_VERT|R_CLICKER|R_COLUMN|R_FRAME|R_ICON|R_LABEL|R_LABEL_CENTER|R_LIST_MULTIPLE|R_LIST_MULTIPLE_ND|R_LIST_SINGLE|R_LIST_SINGLE_ND|R_MENU|R_POPUP|R_POPUP_SCROLLED|R_RADIO_HORIZ|R_RADIO_VERT|R_ROW|R_SCALE_HORIZ|R_SCALE_VERT|R_SEP_HORIZ|R_SEP_VERT|R_SPINNER|R_TEXT_FIELD|R_TEXT_FIELD_LABEL|R_TOGGLE|TRIM_LEADING|TRIM_LEADING_AND_TRAILING|TRIM_REDUNDANT|TRIM_TRAILING|VOID|WARN)\b/,boolean:/\b(?:FALSE|False|NO|No|TRUE|True|YES|Yes|false|no|true|yes)\b/,variable:/\b(?:PslDebug|errno|exit_status)\b/,builtin:{pattern:/\b(?:PslExecute|PslFunctionCall|PslFunctionExists|PslSetOptions|_snmp_debug|acos|add_diary|annotate|annotate_get|ascii_to_ebcdic|asctime|asin|atan|atexit|batch_set|blackout|cat|ceil|chan_exists|change_state|close|code_cvt|cond_signal|cond_wait|console_type|convert_base|convert_date|convert_locale_date|cos|cosh|create|date|dcget_text|destroy|destroy_lock|dget_text|difference|dump_hist|ebcdic_to_ascii|encrypt|event_archive|event_catalog_get|event_check|event_query|event_range_manage|event_range_query|event_report|event_schedule|event_trigger|event_trigger2|execute|exists|exp|fabs|file|floor|fmod|fopen|fseek|ftell|full_discovery|get|get_chan_info|get_ranges|get_text|get_vars|getenv|gethostinfo|getpid|getpname|grep|history|history_get_retention|in_transition|index|int|internal|intersection|is_var|isnumber|join|kill|length|lines|lock|lock_info|log|log10|loge|matchline|msg_check|msg_get_format|msg_get_severity|msg_printf|msg_sprintf|ntharg|nthargf|nthline|nthlinef|num_bytes|num_consoles|pconfig|popen|poplines|pow|print|printf|proc_exists|process|random|read|readln|refresh_parameters|remote_check|remote_close|remote_event_query|remote_event_trigger|remote_file_send|remote_open|remove|replace|rindex|sec_check_priv|sec_store_get|sec_store_set|set|set_alarm_ranges|set_locale|share|sin|sinh|sleep|snmp_agent_config|snmp_agent_start|snmp_agent_stop|snmp_close|snmp_config|snmp_get|snmp_get_next|snmp_h_get|snmp_h_get_next|snmp_h_set|snmp_open|snmp_set|snmp_trap_ignore|snmp_trap_listen|snmp_trap_raise_std_trap|snmp_trap_receive|snmp_trap_register_im|snmp_trap_send|snmp_walk|sopen|sort|splitline|sprintf|sqrt|srandom|str_repeat|strcasecmp|subset|substr|system|tail|tan|tanh|text_domain|time|tmpnam|tolower|toupper|trace_psl_process|trim|union|unique|unlock|unset|va_arg|va_start|write)\b/,alias:"builtin-function"},"foreach-variable":{pattern:/(\bforeach\s+(?:(?:\w+\b|"(?:\\.|[^\\"])*")\s+){0,2})[_a-zA-Z]\w*(?=\s*\()/,lookbehind:!0,greedy:!0},function:/\b[_a-z]\w*\b(?=\s*\()/i,number:/\b(?:0x[0-9a-f]+|\d+(?:\.\d+)?)\b/i,operator:/--|\+\+|&&=?|\|\|=?|<<=?|>>=?|[=!]~|[-+*/%&|^!=<>]=?|\.|[:?]/,punctuation:/[(){}\[\];,]/}}e.exports=t,t.displayName="psl",t.aliases=[]},9862:function(e){"use strict";function t(e){!function(e){e.languages.pug={comment:{pattern:/(^([\t ]*))\/\/.*(?:(?:\r?\n|\r)\2[\t ].+)*/m,lookbehind:!0},"multiline-script":{pattern:/(^([\t ]*)script\b.*\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:e.languages.javascript},filter:{pattern:/(^([\t ]*)):.+(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},text:/\S[\s\S]*/}},"multiline-plain-text":{pattern:/(^([\t ]*)[\w\-#.]+\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0},markup:{pattern:/(^[\t ]*)<.+/m,lookbehind:!0,inside:e.languages.markup},doctype:{pattern:/((?:^|\n)[\t ]*)doctype(?: .+)?/,lookbehind:!0},"flow-control":{pattern:/(^[\t ]*)(?:case|default|each|else|if|unless|when|while)\b(?: .+)?/m,lookbehind:!0,inside:{each:{pattern:/^each .+? in\b/,inside:{keyword:/\b(?:each|in)\b/,punctuation:/,/}},branch:{pattern:/^(?:case|default|else|if|unless|when|while)\b/,alias:"keyword"},rest:e.languages.javascript}},keyword:{pattern:/(^[\t ]*)(?:append|block|extends|include|prepend)\b.+/m,lookbehind:!0},mixin:[{pattern:/(^[\t ]*)mixin .+/m,lookbehind:!0,inside:{keyword:/^mixin/,function:/\w+(?=\s*\(|\s*$)/,punctuation:/[(),.]/}},{pattern:/(^[\t ]*)\+.+/m,lookbehind:!0,inside:{name:{pattern:/^\+\w+/,alias:"function"},rest:e.languages.javascript}}],script:{pattern:/(^[\t ]*script(?:(?:&[^(]+)?\([^)]+\))*[\t ]).+/m,lookbehind:!0,inside:e.languages.javascript},"plain-text":{pattern:/(^[\t ]*(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?[\t ]).+/m,lookbehind:!0},tag:{pattern:/(^[\t ]*)(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?:?/m,lookbehind:!0,inside:{attributes:[{pattern:/&[^(]+\([^)]+\)/,inside:e.languages.javascript},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*(?!\s))(?:\{[^}]*\}|[^,)\r\n]+)/,lookbehind:!0,inside:e.languages.javascript},"attr-name":/[\w-]+(?=\s*!?=|\s*[,)])/,punctuation:/[!=(),]+/}}],punctuation:/:/,"attr-id":/#[\w\-]+/,"attr-class":/\.[\w\-]+/}},code:[{pattern:/(^[\t ]*(?:-|!?=)).+/m,lookbehind:!0,inside:e.languages.javascript}],punctuation:/[.\-!=|]+/};for(var t=/(^([\t ]*)):<filter_name>(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/.source,n=[{filter:"atpl",language:"twig"},{filter:"coffee",language:"coffeescript"},"ejs","handlebars","less","livescript","markdown",{filter:"sass",language:"scss"},"stylus"],r={},a=0,i=n.length;a<i;a++){var o=n[a];o="string"===typeof o?{filter:o,language:o}:o,e.languages[o.language]&&(r["filter-"+o.filter]={pattern:RegExp(t.replace("<filter_name>",(function(){return o.filter})),"m"),lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},text:{pattern:/\S[\s\S]*/,alias:[o.language,"language-"+o.language],inside:e.languages[o.language]}}})}e.languages.insertBefore("pug","filter",r)}(e)}e.exports=t,t.displayName="pug",t.aliases=[]},354:function(e){"use strict";function t(e){!function(e){e.languages.puppet={heredoc:[{pattern:/(@\("([^"\r\n\/):]+)"(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,lookbehind:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/(@\(([^"\r\n\/):]+)(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,lookbehind:!0,greedy:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/@\("?(?:[^"\r\n\/):]+)"?(?:\/[nrts$uL]*)?\)/,alias:"string",inside:{punctuation:{pattern:/(\().+?(?=\))/,lookbehind:!0}}}],"multiline-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,greedy:!0,alias:"comment"},regex:{pattern:/((?:\bnode\s+|[~=\(\[\{,]\s*|[=+]>\s*|^\s*))\/(?:[^\/\\]|\\[\s\S])+\/(?:[imx]+\b|\B)/,lookbehind:!0,greedy:!0,inside:{"extended-regex":{pattern:/^\/(?:[^\/\\]|\\[\s\S])+\/[im]*x[im]*$/,inside:{comment:/#.*/}}}},comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},string:{pattern:/(["'])(?:\$\{(?:[^'"}]|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}|\$(?!\{)|(?!\1)[^\\$]|\\[\s\S])*\1/,greedy:!0,inside:{"double-quoted":{pattern:/^"[\s\S]*"$/,inside:{}}}},variable:{pattern:/\$(?:::)?\w+(?:::\w+)*/,inside:{punctuation:/::/}},"attr-name":/(?:\b\w+|\*)(?=\s*=>)/,function:[{pattern:/(\.)(?!\d)\w+/,lookbehind:!0},/\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\b|\b(?!\d)\w+(?=\()/],number:/\b(?:0x[a-f\d]+|\d+(?:\.\d+)?(?:e-?\d+)?)\b/i,boolean:/\b(?:false|true)\b/,keyword:/\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\b/,datatype:{pattern:/\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\b/,alias:"symbol"},operator:/=[=~>]?|![=~]?|<(?:<\|?|[=~|-])?|>[>=]?|->?|~>|\|>?>?|[*\/%+?]|\b(?:and|in|or)\b/,punctuation:/[\[\]{}().,;]|:+/};var t=[{pattern:/(^|[^\\])\$\{(?:[^'"{}]|\{[^}]*\}|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}/,lookbehind:!0,inside:{"short-variable":{pattern:/(^\$\{)(?!\w+\()(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}},delimiter:{pattern:/^\$/,alias:"variable"},rest:e.languages.puppet}},{pattern:/(^|[^\\])\$(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}}];e.languages.puppet.heredoc[0].inside.interpolation=t,e.languages.puppet.string.inside["double-quoted"].inside.interpolation=t}(e)}e.exports=t,t.displayName="puppet",t.aliases=[]},883:function(e){"use strict";function t(e){!function(e){e.languages.pure={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0},/#!.+/],"inline-lang":{pattern:/%<[\s\S]+?%>/,greedy:!0,inside:{lang:{pattern:/(^%< *)-\*-.+?-\*-/,lookbehind:!0,alias:"comment"},delimiter:{pattern:/^%<.*|%>$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},number:{pattern:/((?:\.\.)?)(?:\b(?:inf|nan)\b|\b0x[\da-f]+|(?:\b(?:0b)?\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?L?)/i,lookbehind:!0},keyword:/\b(?:NULL|ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\b/,function:/\b(?:abs|add_(?:addr|constdef|(?:fundef|interface|macdef|typedef)(?:_at)?|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_c?string(?:_pointer)?|byte_(?:matrix|pointer)|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|sentry|short|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\b/,special:{pattern:/\b__[a-z]+__\b/i,alias:"builtin"},operator:/(?:[!"#$%&'*+,\-.\/:<=>?@\\^`|~\u00a1-\u00bf\u00d7-\u00f7\u20d0-\u2bff]|\b_+\b)+|\b(?:and|div|mod|not|or)\b/,punctuation:/[(){}\[\];,|]/};var t=/%< *-\*- *<lang>\d* *-\*-[\s\S]+?%>/.source;["c",{lang:"c++",alias:"cpp"},"fortran"].forEach((function(n){var r=n;if("string"!==typeof n&&(r=n.alias,n=n.lang),e.languages[r]){var a={};a["inline-lang-"+r]={pattern:RegExp(t.replace("<lang>",n.replace(/([.+*?\/\\(){}\[\]])/g,"\\$1")),"i"),inside:e.util.clone(e.languages.pure["inline-lang"].inside)},a["inline-lang-"+r].inside.rest=e.util.clone(e.languages[r]),e.languages.insertBefore("pure","inline-lang",a)}})),e.languages.c&&(e.languages.pure["inline-lang"].inside.rest=e.util.clone(e.languages.c))}(e)}e.exports=t,t.displayName="pure",t.aliases=[]},3983:function(e){"use strict";function t(e){e.languages.purebasic=e.languages.extend("clike",{comment:/;.*/,keyword:/\b(?:align|and|as|break|calldebugger|case|compilercase|compilerdefault|compilerelse|compilerelseif|compilerendif|compilerendselect|compilererror|compilerif|compilerselect|continue|data|datasection|debug|debuglevel|declare|declarec|declarecdll|declaredll|declaremodule|default|define|dim|disableasm|disabledebugger|disableexplicit|else|elseif|enableasm|enabledebugger|enableexplicit|end|enddatasection|enddeclaremodule|endenumeration|endif|endimport|endinterface|endmacro|endmodule|endprocedure|endselect|endstructure|endstructureunion|endwith|enumeration|extends|fakereturn|for|foreach|forever|global|gosub|goto|if|import|importc|includebinary|includefile|includepath|interface|macro|module|newlist|newmap|next|not|or|procedure|procedurec|procedurecdll|proceduredll|procedurereturn|protected|prototype|prototypec|read|redim|repeat|restore|return|runtime|select|shared|static|step|structure|structureunion|swap|threaded|to|until|wend|while|with|xincludefile|xor)\b/i,function:/\b\w+(?:\.\w+)?\s*(?=\()/,number:/(?:\$[\da-f]+|\b-?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?)\b/i,operator:/(?:@\*?|\?|\*)\w+|-[>-]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|?\||[~^%?*/@]/}),e.languages.insertBefore("purebasic","keyword",{tag:/#\w+\$?/,asm:{pattern:/(^[\t ]*)!.*/m,lookbehind:!0,alias:"tag",inside:{comment:/;.*/,string:{pattern:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"label-reference-anonymous":{pattern:/(!\s*j[a-z]+\s+)@[fb]/i,lookbehind:!0,alias:"fasm-label"},"label-reference-addressed":{pattern:/(!\s*j[a-z]+\s+)[A-Z._?$@][\w.?$@~#]*/i,lookbehind:!0,alias:"fasm-label"},keyword:[/\b(?:extern|global)\b[^;\r\n]*/i,/\b(?:CPU|DEFAULT|FLOAT)\b.*/],function:{pattern:/^([\t ]*!\s*)[\da-z]+(?=\s|$)/im,lookbehind:!0},"function-inline":{pattern:/(:\s*)[\da-z]+(?=\s)/i,lookbehind:!0,alias:"function"},label:{pattern:/^([\t ]*!\s*)[A-Za-z._?$@][\w.?$@~#]*(?=:)/m,lookbehind:!0,alias:"fasm-label"},register:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s|mm\d+)\b/i,number:/(?:\b|-|(?=\$))(?:0[hx](?:[\da-f]*\.)?[\da-f]+(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|(?:\d+(?:\.\d+)?|\.\d+)(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-/%<>=&|$!,.:]/}}}),delete e.languages.purebasic["class-name"],delete e.languages.purebasic.boolean,e.languages.pbfasm=e.languages.purebasic}e.exports=t,t.displayName="purebasic",t.aliases=[]},2935:function(e,t,n){"use strict";var r=n(9233);function a(e){e.register(r),e.languages.purescript=e.languages.extend("haskell",{keyword:/\b(?:ado|case|class|data|derive|do|else|forall|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b|\u2200/,"import-statement":{pattern:/(^[\t ]*)import\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*(?:\s+as\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|hiding|import)\b/,punctuation:/\./}},builtin:/\b(?:absurd|add|ap|append|apply|between|bind|bottom|clamp|compare|comparing|compose|conj|const|degree|discard|disj|div|eq|flap|flip|gcd|identity|ifM|join|lcm|liftA1|liftM1|map|max|mempty|min|mod|mul|negate|not|notEq|one|otherwise|recip|show|sub|top|unit|unless|unlessM|void|when|whenM|zero)\b/,operator:[e.languages.haskell.operator[0],e.languages.haskell.operator[2],/[\xa2-\xa6\xa8\xa9\xac\xae-\xb1\xb4\xb8\xd7\xf7\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed\u02ef-\u02ff\u0375\u0384\u0385\u03f6\u0482\u058d-\u058f\u0606-\u0608\u060b\u060e\u060f\u06de\u06e9\u06fd\u06fe\u07f6\u07fe\u07ff\u09f2\u09f3\u09fa\u09fb\u0af1\u0b70\u0bf3-\u0bfa\u0c7f\u0d4f\u0d79\u0e3f\u0f01-\u0f03\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce\u0fcf\u0fd5-\u0fd8\u109e\u109f\u1390-\u1399\u166d\u17db\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd\u1ffe\u2044\u2052\u207a-\u207c\u208a-\u208c\u20a0-\u20bf\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211e-\u2123\u2125\u2127\u2129\u212e\u213a\u213b\u2140-\u2144\u214a-\u214d\u214f\u218a\u218b\u2190-\u2307\u230c-\u2328\u232b-\u2426\u2440-\u244a\u249c-\u24e9\u2500-\u2767\u2794-\u27c4\u27c7-\u27e5\u27f0-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2b73\u2b76-\u2b95\u2b97-\u2bff\u2ce5-\u2cea\u2e50\u2e51\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3004\u3012\u3013\u3020\u3036\u3037\u303e\u303f\u309b\u309c\u3190\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3247\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua700-\ua716\ua720\ua721\ua789\ua78a\ua828-\ua82b\ua836-\ua839\uaa77-\uaa79\uab5b\uab6a\uab6b\ufb29\ufbb2-\ufbc1\ufdfc\ufdfd\ufe62\ufe64-\ufe66\ufe69\uff04\uff0b\uff1c-\uff1e\uff3e\uff40\uff5c\uff5e\uffe0-\uffe6\uffe8-\uffee\ufffc\ufffd]/]}),e.languages.purs=e.languages.purescript}e.exports=a,a.displayName="purescript",a.aliases=["purs"]},5888:function(e){"use strict";function t(e){e.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},e.languages.python["string-interpolation"].inside.interpolation.inside.rest=e.languages.python,e.languages.py=e.languages.python}e.exports=t,t.displayName="python",t.aliases=["py"]},9596:function(e){"use strict";function t(e){e.languages.q={string:/"(?:\\.|[^"\\\r\n])*"/,comment:[{pattern:/([\t )\]}])\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|\r?\n|\r)\/[\t ]*(?:(?:\r?\n|\r)(?:.*(?:\r?\n|\r(?!\n)))*?(?:\\(?=[\t ]*(?:\r?\n|\r))|$)|\S.*)/,lookbehind:!0,greedy:!0},{pattern:/^\\[\t ]*(?:\r?\n|\r)[\s\S]+/m,greedy:!0},{pattern:/^#!.+/m,greedy:!0}],symbol:/`(?::\S+|[\w.]*)/,datetime:{pattern:/0N[mdzuvt]|0W[dtz]|\d{4}\.\d\d(?:m|\.\d\d(?:T(?:\d\d(?::\d\d(?::\d\d(?:[.:]\d\d\d)?)?)?)?)?[dz]?)|\d\d:\d\d(?::\d\d(?:[.:]\d\d\d)?)?[uvt]?/,alias:"number"},number:/\b(?![01]:)(?:0N[hje]?|0W[hj]?|0[wn]|0x[\da-fA-F]+|\d+(?:\.\d*)?(?:e[+-]?\d+)?[hjfeb]?)/,keyword:/\\\w+\b|\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\b/,adverb:{pattern:/['\/\\]:?|\beach\b/,alias:"function"},verb:{pattern:/(?:\B\.\B|\b[01]:|<[=>]?|>=?|[:+\-*%,!?~=|$&#@^]):?|\b_\b:?/,alias:"operator"},punctuation:/[(){}\[\];.]/}}e.exports=t,t.displayName="q",t.aliases=[]},6395:function(e){"use strict";function t(e){!function(e){for(var t=/"(?:\\.|[^\\"\r\n])*"|'(?:\\.|[^\\'\r\n])*'/.source,n=/\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))*\*\//.source,r=/(?:[^\\()[\]{}"'/]|<string>|\/(?![*/])|<comment>|\(<expr>*\)|\[<expr>*\]|\{<expr>*\}|\\[\s\S])/.source.replace(/<string>/g,(function(){return t})).replace(/<comment>/g,(function(){return n})),a=0;a<2;a++)r=r.replace(/<expr>/g,(function(){return r}));r=r.replace(/<expr>/g,"[^\\s\\S]"),e.languages.qml={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},"javascript-function":{pattern:RegExp(/((?:^|;)[ \t]*)function\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*\(<js>*\)\s*\{<js>*\}/.source.replace(/<js>/g,(function(){return r})),"m"),lookbehind:!0,greedy:!0,alias:"language-javascript",inside:e.languages.javascript},"class-name":{pattern:/((?:^|[:;])[ \t]*)(?!\d)\w+(?=[ \t]*\{|[ \t]+on\b)/m,lookbehind:!0},property:[{pattern:/((?:^|[;{])[ \t]*)(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m,lookbehind:!0},{pattern:/((?:^|[;{])[ \t]*)property[ \t]+(?!\d)\w+(?:\.\w+)*[ \t]+(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m,lookbehind:!0,inside:{keyword:/^property/,property:/\w+(?:\.\w+)*/}}],"javascript-expression":{pattern:RegExp(/(:[ \t]*)(?![\s;}[])(?:(?!$|[;}])<js>)+/.source.replace(/<js>/g,(function(){return r})),"m"),lookbehind:!0,greedy:!0,alias:"language-javascript",inside:e.languages.javascript},string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},keyword:/\b(?:as|import|on)\b/,punctuation:/[{}[\]:;,]/}}(e)}e.exports=t,t.displayName="qml",t.aliases=[]},7679:function(e){"use strict";function t(e){e.languages.qore=e.languages.extend("clike",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:\/\/|#).*)/,lookbehind:!0},string:{pattern:/("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},keyword:/\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:bool|date|float|int|list|number|string)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\b/,boolean:/\b(?:false|true)\b/i,function:/\$?\b(?!\d)\w+(?=\()/,number:/\b(?:0b[01]+|0x(?:[\da-f]*\.)?[\da-fp\-]+|(?:\d+(?:\.\d+)?|\.\d+)(?:e\d+)?[df]|(?:\d+(?:\.\d+)?|\.\d+))\b/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\|[|=]?|[*\/%^]=?|[~?])/,lookbehind:!0},variable:/\$(?!\d)\w+\b/})}e.exports=t,t.displayName="qore",t.aliases=[]},2406:function(e){"use strict";function t(e){!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,(function(e,n){return"(?:"+t[+n]+")"}))}function n(e,n,r){return RegExp(t(e,n),r||"")}var r=RegExp("\\b(?:"+("Adj BigInt Bool Ctl Double false Int One Pauli PauliI PauliX PauliY PauliZ Qubit Range Result String true Unit Zero"+" "+"Adjoint adjoint apply as auto body borrow borrowing Controlled controlled distribute elif else fail fixup for function if in internal intrinsic invert is let mutable namespace new newtype open operation repeat return self set until use using while within").trim().replace(/ /g,"|")+")\\b"),a=t(/<<0>>(?:\s*\.\s*<<0>>)*/.source,[/\b[A-Za-z_]\w*\b/.source]),i={keyword:r,punctuation:/[<>()?,.:[\]]/},o=/"(?:\\.|[^\\"])*"/.source;e.languages.qsharp=e.languages.extend("clike",{comment:/\/\/.*/,string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[o]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:n(/(\b(?:as|open)\s+)<<0>>(?=\s*(?:;|as\b))/.source,[a]),lookbehind:!0,inside:i},{pattern:n(/(\bnamespace\s+)<<0>>(?=\s*\{)/.source,[a]),lookbehind:!0,inside:i}],keyword:r,number:/(?:\b0(?:x[\da-f]+|b[01]+|o[0-7]+)|(?:\B\.\d+|\b\d+(?:\.\d*)?)(?:e[-+]?\d+)?)l?\b/i,operator:/\band=|\bor=|\band\b|\bnot\b|\bor\b|<[-=]|[-=]>|>>>=?|<<<=?|\^\^\^=?|\|\|\|=?|&&&=?|w\/=?|~~~|[*\/+\-^=!%]=?/,punctuation:/::|[{}[\];(),.:]/}),e.languages.insertBefore("qsharp","number",{range:{pattern:/\.\./,alias:"operator"}});var s=function(e,t){for(var n=0;n<t;n++)e=e.replace(/<<self>>/g,(function(){return"(?:"+e+")"}));return e.replace(/<<self>>/g,"[^\\s\\S]")}(t(/\{(?:[^"{}]|<<0>>|<<self>>)*\}/.source,[o]),2);e.languages.insertBefore("qsharp","string",{"interpolation-string":{pattern:n(/\$"(?:\\.|<<0>>|[^\\"{])*"/.source,[s]),greedy:!0,inside:{interpolation:{pattern:n(/((?:^|[^\\])(?:\\\\)*)<<0>>/.source,[s]),lookbehind:!0,inside:{punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-qsharp",inside:e.languages.qsharp}}},string:/[\s\S]+/}}})}(e),e.languages.qs=e.languages.qsharp}e.exports=t,t.displayName="qsharp",t.aliases=["qs"]},2014:function(e){"use strict";function t(e){e.languages.r={comment:/#.*/,string:{pattern:/(['"])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"percent-operator":{pattern:/%[^%\s]*%/,alias:"operator"},boolean:/\b(?:FALSE|TRUE)\b/,ellipsis:/\.\.(?:\.|\d+)/,number:[/\b(?:Inf|NaN)\b/,/(?:\b0x[\dA-Fa-f]+(?:\.\d*)?|\b\d+(?:\.\d*)?|\B\.\d+)(?:[EePp][+-]?\d+)?[iL]?/],keyword:/\b(?:NA|NA_character_|NA_complex_|NA_integer_|NA_real_|NULL|break|else|for|function|if|in|next|repeat|while)\b/,operator:/->?>?|<(?:=|<?-)?|[>=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/,punctuation:/[(){}\[\],;]/}}e.exports=t,t.displayName="r",t.aliases=[]},548:function(e,t,n){"use strict";var r=n(2284);function a(e){e.register(r),e.languages.racket=e.languages.extend("scheme",{"lambda-parameter":{pattern:/([(\[]lambda\s+[(\[])[^()\[\]'\s]+/,lookbehind:!0}}),e.languages.insertBefore("racket","string",{lang:{pattern:/^#lang.+/m,greedy:!0,alias:"keyword"}}),e.languages.rkt=e.languages.racket}e.exports=a,a.displayName="racket",a.aliases=["rkt"]},6023:function(e){"use strict";function t(e){e.languages.reason=e.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),e.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete e.languages.reason.function}e.exports=t,t.displayName="reason",t.aliases=[]},4005:function(e){"use strict";function t(e){!function(e){var t={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,r="(?:[^\\\\-]|"+n.source+")",a=RegExp(r+"-"+r),i={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"};e.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:a,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":t,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:n}},"special-escape":t,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":i}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":i}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}}}(e)}e.exports=t,t.displayName="regex",t.aliases=[]},9982:function(e){"use strict";function t(e){e.languages.rego={comment:/#.*/,property:{pattern:/(^|[^\\.])(?:"(?:\\.|[^\\"\r\n])*"|`[^`]*`|\b[a-z_]\w*\b)(?=\s*:(?!=))/i,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:as|default|else|import|not|null|package|set(?=\s*\()|some|with)\b/,boolean:/\b(?:false|true)\b/,function:{pattern:/\b[a-z_]\w*\b(?:\s*\.\s*\b[a-z_]\w*\b)*(?=\s*\()/i,inside:{namespace:/\b\w+\b(?=\s*\.)/,punctuation:/\./}},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,operator:/[-+*/%|&]|[<>:=]=?|!=|\b_\b/,punctuation:/[,;.\[\]{}()]/}}e.exports=t,t.displayName="rego",t.aliases=[]},4184:function(e){"use strict";function t(e){e.languages.renpy={comment:{pattern:/(^|[^\\])#.+/,lookbehind:!0},string:{pattern:/("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\])*\2|(?:^#?(?:(?:[0-9a-fA-F]){3}|[0-9a-fA-F]{6})$)/m,greedy:!0},function:/\b[a-z_]\w*(?=\()/i,property:/\b(?:Update|UpdateVersion|action|activate_sound|adv_nvl_transition|after_load_transition|align|alpha|alt|anchor|antialias|area|auto|background|bar_invert|bar_resizing|bar_vertical|black_color|bold|bottom_bar|bottom_gutter|bottom_margin|bottom_padding|box_reverse|box_wrap|can_update|caret|child|color|crop|default_afm_enable|default_afm_time|default_fullscreen|default_text_cps|developer|directory_name|drag_handle|drag_joined|drag_name|drag_raise|draggable|dragged|drop_shadow|drop_shadow_color|droppable|dropped|easein|easeout|edgescroll|end_game_transition|end_splash_transition|enter_replay_transition|enter_sound|enter_transition|enter_yesno_transition|executable_name|exit_replay_transition|exit_sound|exit_transition|exit_yesno_transition|fadein|fadeout|first_indent|first_spacing|fit_first|focus|focus_mask|font|foreground|game_main_transition|get_installed_packages|google_play_key|google_play_salt|ground|has_music|has_sound|has_voice|height|help|hinting|hover|hover_background|hover_color|hover_sound|hovered|hyperlink_functions|idle|idle_color|image_style|include_update|insensitive|insensitive_background|insensitive_color|inside|intra_transition|italic|justify|kerning|keyboard_focus|language|layer_clipping|layers|layout|left_bar|left_gutter|left_margin|left_padding|length|line_leading|line_overlap_split|line_spacing|linear|main_game_transition|main_menu_music|maximum|min_width|minimum|minwidth|modal|mouse|mousewheel|name|narrator_menu|newline_indent|nvl_adv_transition|offset|order_reverse|outlines|overlay_functions|pos|position|prefix|radius|range|rest_indent|right_bar|right_gutter|right_margin|right_padding|rotate|rotate_pad|ruby_style|sample_sound|save_directory|say_attribute_transition|screen_height|screen_width|scrollbars|selected_hover|selected_hover_color|selected_idle|selected_idle_color|selected_insensitive|show_side_image|show_two_window|side_spacing|side_xpos|side_ypos|size|size_group|slow_cps|slow_cps_multiplier|spacing|strikethrough|subpixel|text_align|text_style|text_xpos|text_y_fudge|text_ypos|thumb|thumb_offset|thumb_shadow|thumbnail_height|thumbnail_width|time|top_bar|top_gutter|top_margin|top_padding|translations|underline|unscrollable|update|value|version|version_name|version_tuple|vertical|width|window_hide_transition|window_icon|window_left_padding|window_show_transition|window_title|windows_icon|xadjustment|xalign|xanchor|xanchoraround|xaround|xcenter|xfill|xinitial|xmargin|xmaximum|xminimum|xoffset|xofsset|xpadding|xpos|xsize|xzoom|yadjustment|yalign|yanchor|yanchoraround|yaround|ycenter|yfill|yinitial|ymargin|ymaximum|yminimum|yoffset|ypadding|ypos|ysize|ysizexysize|yzoom|zoom|zorder)\b/,tag:/\b(?:bar|block|button|buttoscreenn|drag|draggroup|fixed|frame|grid|[hv]box|hotbar|hotspot|image|imagebutton|imagemap|input|key|label|menu|mm_menu_frame|mousearea|nvl|parallel|screen|self|side|tag|text|textbutton|timer|vbar|viewport|window)\b|\$/,keyword:/\b(?:None|add|adjustment|alignaround|allow|angle|animation|around|as|assert|behind|box_layout|break|build|cache|call|center|changed|child_size|choice|circles|class|clear|clicked|clipping|clockwise|config|contains|continue|corner1|corner2|counterclockwise|def|default|define|del|delay|disabled|disabled_text|dissolve|elif|else|event|except|exclude|exec|expression|fade|finally|for|from|function|global|gm_root|has|hide|id|if|import|in|init|is|jump|knot|lambda|left|less_rounded|mm_root|movie|music|null|on|onlayer|pass|pause|persistent|play|print|python|queue|raise|random|renpy|repeat|return|right|rounded_window|scene|scope|set|show|slow|slow_abortable|slow_done|sound|stop|store|style|style_group|substitute|suffix|theme|transform|transform_anchor|transpose|try|ui|unhovered|updater|use|voice|while|widget|widget_hover|widget_selected|widget_text|yield)\b/,boolean:/\b(?:[Ff]alse|[Tt]rue)\b/,number:/(?:\b(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?)|\B\.\d+)(?:e[+-]?\d+)?j?/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:and|at|not|or|with)\b/,punctuation:/[{}[\];(),.:]/},e.languages.rpy=e.languages.renpy}e.exports=t,t.displayName="renpy",t.aliases=["rpy"]},8228:function(e){"use strict";function t(e){e.languages.rest={table:[{pattern:/(^[\t ]*)(?:\+[=-]+)+\+(?:\r?\n|\r)(?:\1[+|].+[+|](?:\r?\n|\r))+\1(?:\+[=-]+)+\+/m,lookbehind:!0,inside:{punctuation:/\||(?:\+[=-]+)+\+/}},{pattern:/(^[\t ]*)=+ [ =]*=(?:(?:\r?\n|\r)\1.+)+(?:\r?\n|\r)\1=+ [ =]*=(?=(?:\r?\n|\r){2}|\s*$)/m,lookbehind:!0,inside:{punctuation:/[=-]+/}}],"substitution-def":{pattern:/(^[\t ]*\.\. )\|(?:[^|\s](?:[^|]*[^|\s])?)\| [^:]+::/m,lookbehind:!0,inside:{substitution:{pattern:/^\|(?:[^|\s]|[^|\s][^|]*[^|\s])\|/,alias:"attr-value",inside:{punctuation:/^\||\|$/}},directive:{pattern:/( )(?! )[^:]+::/,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}}}},"link-target":[{pattern:/(^[\t ]*\.\. )\[[^\]]+\]/m,lookbehind:!0,alias:"string",inside:{punctuation:/^\[|\]$/}},{pattern:/(^[\t ]*\.\. )_(?:`[^`]+`|(?:[^:\\]|\\.)+):/m,lookbehind:!0,alias:"string",inside:{punctuation:/^_|:$/}}],directive:{pattern:/(^[\t ]*\.\. )[^:]+::/m,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}},comment:{pattern:/(^[\t ]*\.\.)(?:(?: .+)?(?:(?:\r?\n|\r).+)+| .+)(?=(?:\r?\n|\r){2}|$)/m,lookbehind:!0},title:[{pattern:/^(([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+)(?:\r?\n|\r).+(?:\r?\n|\r)\1$/m,inside:{punctuation:/^[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+|[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}},{pattern:/(^|(?:\r?\n|\r){2}).+(?:\r?\n|\r)([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+(?=\r?\n|\r|$)/,lookbehind:!0,inside:{punctuation:/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}}],hr:{pattern:/((?:\r?\n|\r){2})([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2{3,}(?=(?:\r?\n|\r){2})/,lookbehind:!0,alias:"punctuation"},field:{pattern:/(^[\t ]*):[^:\r\n]+:(?= )/m,lookbehind:!0,alias:"attr-name"},"command-line-option":{pattern:/(^[\t ]*)(?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?)*(?=(?:\r?\n|\r)? {2,}\S)/im,lookbehind:!0,alias:"symbol"},"literal-block":{pattern:/::(?:\r?\n|\r){2}([ \t]+)(?![ \t]).+(?:(?:\r?\n|\r)\1.+)*/,inside:{"literal-block-punctuation":{pattern:/^::/,alias:"punctuation"}}},"quoted-literal-block":{pattern:/::(?:\r?\n|\r){2}([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]).*(?:(?:\r?\n|\r)\1.*)*/,inside:{"literal-block-punctuation":{pattern:/^(?:::|([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\1*)/m,alias:"punctuation"}}},"list-bullet":{pattern:/(^[\t ]*)(?:[*+\-\u2022\u2023\u2043]|\(?(?:\d+|[a-z]|[ivxdclm]+)\)|(?:\d+|[a-z]|[ivxdclm]+)\.)(?= )/im,lookbehind:!0,alias:"punctuation"},"doctest-block":{pattern:/(^[\t ]*)>>> .+(?:(?:\r?\n|\r).+)*/m,lookbehind:!0,inside:{punctuation:/^>>>/}},inline:[{pattern:/(^|[\s\-:\/'"<(\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\*\*?|``?|\|)(?!\s)(?:(?!\2).)*\S\2(?=[\s\-.,:;!?\\\/'")\]}]|$))/m,lookbehind:!0,inside:{bold:{pattern:/(^\*\*).+(?=\*\*$)/,lookbehind:!0},italic:{pattern:/(^\*).+(?=\*$)/,lookbehind:!0},"inline-literal":{pattern:/(^``).+(?=``$)/,lookbehind:!0,alias:"symbol"},role:{pattern:/^:[^:]+:|:[^:]+:$/,alias:"function",inside:{punctuation:/^:|:$/}},"interpreted-text":{pattern:/(^`).+(?=`$)/,lookbehind:!0,alias:"attr-value"},substitution:{pattern:/(^\|).+(?=\|$)/,lookbehind:!0,alias:"attr-value"},punctuation:/\*\*?|``?|\|/}}],link:[{pattern:/\[[^\[\]]+\]_(?=[\s\-.,:;!?\\\/'")\]}]|$)/,alias:"string",inside:{punctuation:/^\[|\]_$/}},{pattern:/(?:\b[a-z\d]+(?:[_.:+][a-z\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\s\-.,:;!?\\\/'")\]}]|$)/i,alias:"string",inside:{punctuation:/^_?`|`$|`?_?_$/}}],punctuation:{pattern:/(^[\t ]*)(?:\|(?= |$)|(?:---?|\u2014|\.\.|__)(?= )|\.\.$)/m,lookbehind:!0}}}e.exports=t,t.displayName="rest",t.aliases=[]},7937:function(e){"use strict";function t(e){e.languages.rip={comment:{pattern:/#.*/,greedy:!0},char:{pattern:/\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/,greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},regex:{pattern:/(^|[^/])\/(?!\/)(?:\[[^\n\r\]]*\]|\\.|[^/\\\r\n\[])+\/(?=\s*(?:$|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},keyword:/(?:=>|->)|\b(?:case|catch|class|else|exit|finally|if|raise|return|switch|try)\b/,builtin:/@|\bSystem\b/,boolean:/\b(?:false|true)\b/,date:/\b\d{4}-\d{2}-\d{2}\b/,time:/\b\d{2}:\d{2}:\d{2}\b/,datetime:/\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/,symbol:/:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/,number:/[+-]?\b(?:\d+\.\d+|\d+)\b/,punctuation:/(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/,reference:/[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/}}e.exports=t,t.displayName="rip",t.aliases=[]},5728:function(e){"use strict";function t(e){e.languages.roboconf={comment:/#.*/,keyword:{pattern:/(^|\s)(?:(?:external|import)\b|(?:facet|instance of)(?=[ \t]+[\w-]+[ \t]*\{))/,lookbehind:!0},component:{pattern:/[\w-]+(?=[ \t]*\{)/,alias:"variable"},property:/[\w.-]+(?=[ \t]*:)/,value:{pattern:/(=[ \t]*(?![ \t]))[^,;]+/,lookbehind:!0,alias:"attr-value"},optional:{pattern:/\(optional\)/,alias:"builtin"},wildcard:{pattern:/(\.)\*/,lookbehind:!0,alias:"operator"},punctuation:/[{},.;:=]/}}e.exports=t,t.displayName="roboconf",t.aliases=[]},1528:function(e){"use strict";function t(e){!function(e){var t={pattern:/(^[ \t]*| {2}|\t)#.*/m,lookbehind:!0,greedy:!0},n={pattern:/((?:^|[^\\])(?:\\{2})*)[$@&%]\{(?:[^{}\r\n]|\{[^{}\r\n]*\})*\}/,lookbehind:!0,inside:{punctuation:/^[$@&%]\{|\}$/}};function r(e,r){var a={"section-header":{pattern:/^ ?\*{3}.+?\*{3}/,alias:"keyword"}};for(var i in r)a[i]=r[i];return a.tag={pattern:/([\r\n](?: {2}|\t)[ \t]*)\[[-\w]+\]/,lookbehind:!0,inside:{punctuation:/\[|\]/}},a.variable=n,a.comment=t,{pattern:RegExp(/^ ?\*{3}[ \t]*<name>[ \t]*\*{3}(?:.|[\r\n](?!\*{3}))*/.source.replace(/<name>/g,(function(){return e})),"im"),alias:"section",inside:a}}var a={pattern:/(\[Documentation\](?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,lookbehind:!0,alias:"string"},i={pattern:/([\r\n] ?)(?!#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0,alias:"function",inside:{variable:n}},o={pattern:/([\r\n](?: {2}|\t)[ \t]*)(?!\[|\.{3}|#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0,inside:{variable:n}};e.languages.robotframework={settings:r("Settings",{documentation:{pattern:/([\r\n] ?Documentation(?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,lookbehind:!0,alias:"string"},property:{pattern:/([\r\n] ?)(?!\.{3}|#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0}}),variables:r("Variables"),"test-cases":r("Test Cases",{"test-name":i,documentation:a,property:o}),keywords:r("Keywords",{"keyword-name":i,documentation:a,property:o}),tasks:r("Tasks",{"task-name":i,documentation:a,property:o}),comment:t},e.languages.robot=e.languages.robotframework}(e)}e.exports=t,t.displayName="robotframework",t.aliases=[]},6326:function(e){"use strict";function t(e){!function(e){e.languages.ruby=e.languages.extend("clike",{comment:{pattern:/#.*|^=begin\s[\s\S]*?^=end/m,greedy:!0},"class-name":{pattern:/(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/,operator:/\.{2,3}|&\.|===|<?=>|[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/,punctuation:/[(){}[\].,;]/}),e.languages.insertBefore("ruby","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});var t={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"}}};delete e.languages.ruby.function;var n="(?:"+[/([^a-zA-Z0-9\s{(\[<=])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/\((?:[^()\\]|\\[\s\S]|\((?:[^()\\]|\\[\s\S])*\))*\)/.source,/\{(?:[^{}\\]|\\[\s\S]|\{(?:[^{}\\]|\\[\s\S])*\})*\}/.source,/\[(?:[^\[\]\\]|\\[\s\S]|\[(?:[^\[\]\\]|\\[\s\S])*\])*\]/.source,/<(?:[^<>\\]|\\[\s\S]|<(?:[^<>\\]|\\[\s\S])*>)*>/.source].join("|")+")",r=/(?:"(?:\\.|[^"\\\r\n])*"|(?:\b[a-zA-Z_]\w*|[^\s\0-\x7F]+)[?!]?|\$.)/.source;e.languages.insertBefore("ruby","keyword",{"regex-literal":[{pattern:RegExp(/%r/.source+n+/[egimnosux]{0,6}/.source),greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp(/(^|[^:]):/.source+r),lookbehind:!0,greedy:!0},{pattern:RegExp(/([\r\n{(,][ \t]*)/.source+r+/(?=:(?!:))/.source),lookbehind:!0,greedy:!0}],"method-definition":{pattern:/(\bdef\s+)\w+(?:\s*\.\s*\w+)?/,lookbehind:!0,inside:{function:/\b\w+$/,keyword:/^self\b/,"class-name":/^\w+/,punctuation:/\./}}}),e.languages.insertBefore("ruby","string",{"string-literal":[{pattern:RegExp(/%[qQiIwWs]?/.source+n),greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?/}},interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?'|'$/}},string:/[\s\S]+/}}],"command-literal":[{pattern:RegExp(/%x/.source+n),greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:"string"}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:"string"}}}]}),delete e.languages.ruby.string,e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/,constant:/\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/}),e.languages.rb=e.languages.ruby}(e)}e.exports=t,t.displayName="ruby",t.aliases=["rb"]},771:function(e){"use strict";function t(e){!function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(e)}e.exports=t,t.displayName="rust",t.aliases=[]},4840:function(e){"use strict";function t(e){!function(e){var t=/(?:"(?:""|[^"])*"(?!")|'(?:''|[^'])*'(?!'))/.source,n=/\b(?:\d[\da-f]*x|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,r={pattern:RegExp(t+"[bx]"),alias:"number"},a={pattern:/&[a-z_]\w*/i},i={pattern:/((?:^|\s|=|\())%(?:ABORT|BY|CMS|COPY|DISPLAY|DO|ELSE|END|EVAL|GLOBAL|GO|GOTO|IF|INC|INCLUDE|INDEX|INPUT|KTRIM|LENGTH|LET|LIST|LOCAL|PUT|QKTRIM|QSCAN|QSUBSTR|QSYSFUNC|QUPCASE|RETURN|RUN|SCAN|SUBSTR|SUPERQ|SYMDEL|SYMEXIST|SYMGLOBL|SYMLOCAL|SYSCALL|SYSEVALF|SYSEXEC|SYSFUNC|SYSGET|SYSRPUT|THEN|TO|TSO|UNQUOTE|UNTIL|UPCASE|WHILE|WINDOW)\b/i,lookbehind:!0,alias:"keyword"},o={pattern:/(^|\s)(?:proc\s+\w+|data(?!=)|quit|run)\b/i,alias:"keyword",lookbehind:!0},s=[/\/\*[\s\S]*?\*\//,{pattern:/(^[ \t]*|;\s*)\*[^;]*;/m,lookbehind:!0}],l={pattern:RegExp(t),greedy:!0},c=/[$%@.(){}\[\];,\\]/,u={pattern:/%?\b\w+(?=\()/,alias:"keyword"},d={function:u,"arg-value":{pattern:/(=\s*)[A-Z\.]+/i,lookbehind:!0},operator:/=/,"macro-variable":a,arg:{pattern:/[A-Z]+/i,alias:"keyword"},number:n,"numeric-constant":r,punctuation:c,string:l},p={pattern:/\b(?:format|put)\b=?[\w'$.]+/i,inside:{keyword:/^(?:format|put)(?==)/i,equals:/=/,format:{pattern:/(?:\w|\$\d)+\.\d?/,alias:"number"}}},m={pattern:/\b(?:format|put)\s+[\w']+(?:\s+[$.\w]+)+(?=;)/i,inside:{keyword:/^(?:format|put)/i,format:{pattern:/[\w$]+\.\d?/,alias:"number"}}},g={pattern:/((?:^|\s)=?)(?:catname|checkpoint execute_always|dm|endsas|filename|footnote|%include|libname|%list|lock|missing|options|page|resetline|%run|sasfile|skip|sysecho|title\d?)\b/i,lookbehind:!0,alias:"keyword"},h={pattern:/(^|\s)(?:submit(?:\s+(?:load|norun|parseonly))?|endsubmit)\b/i,lookbehind:!0,alias:"keyword"},f=/aStore|accessControl|aggregation|audio|autotune|bayesianNetClassifier|bioMedImage|boolRule|builtins|cardinality|cdm|clustering|conditionalRandomFields|configuration|copula|countreg|dataDiscovery|dataPreprocess|dataSciencePilot|dataStep|decisionTree|deduplication|deepLearn|deepNeural|deepRnn|ds2|ecm|entityRes|espCluster|explainModel|factmac|fastKnn|fcmpact|fedSql|freqTab|gVarCluster|gam|gleam|graphSemiSupLearn|hiddenMarkovModel|hyperGroup|ica|image|iml|kernalPca|langModel|ldaTopic|loadStreams|mbc|mixed|mlTools|modelPublishing|network|neuralNet|nmf|nonParametricBayes|nonlinear|optNetwork|optimization|panel|pca|percentile|phreg|pls|qkb|qlim|quantreg|recommend|regression|reinforcementLearn|robustPca|ruleMining|sampling|sandwich|sccasl|search(?:Analytics)?|sentimentAnalysis|sequence|session(?:Prop)?|severity|simSystem|simple|smartData|sparkEmbeddedProcess|sparseML|spatialreg|spc|stabilityMonitoring|svDataDescription|svm|table|text(?:Filters|Frequency|Mining|Parse|Rule(?:Develop|Score)|Topic|Util)|timeData|transpose|tsInfo|tsReconcile|uniTimeSeries|varReduce/.source,b={pattern:RegExp(/(^|\s)(?:action\s+)?(?:<act>)\.[a-z]+\b[^;]+/.source.replace(/<act>/g,(function(){return f})),"i"),lookbehind:!0,inside:{keyword:RegExp(/(?:<act>)\.[a-z]+\b/.source.replace(/<act>/g,(function(){return f})),"i"),action:{pattern:/(?:action)/i,alias:"keyword"},comment:s,function:u,"arg-value":d["arg-value"],operator:d.operator,argument:d.arg,number:n,"numeric-constant":r,punctuation:c,string:l}},E={pattern:/((?:^|\s)=?)(?:after|analysis|and|array|barchart|barwidth|begingraph|by|call|cas|cbarline|cfill|class(?:lev)?|close|column|computed?|contains|continue|data(?==)|define|delete|describe|document|do\s+over|do|dol|drop|dul|else|end(?:comp|source)?|entryTitle|eval(?:uate)?|exec(?:ute)?|exit|file(?:name)?|fill(?:attrs)?|flist|fnc|function(?:list)?|global|goto|group(?:by)?|headline|headskip|histogram|if|infile|keep|keylabel|keyword|label|layout|leave|legendlabel|length|libname|loadactionset|merge|midpoints|_?null_|name|noobs|nowd|ods|options|or|otherwise|out(?:put)?|over(?:lay)?|plot|print|put|raise|ranexp|rannor|rbreak|retain|return|select|session|sessref|set|source|statgraph|sum|summarize|table|temp|terminate|then\s+do|then|title\d?|to|var|when|where|xaxisopts|y2axisopts|yaxisopts)\b/i,lookbehind:!0};e.languages.sas={datalines:{pattern:/^([ \t]*)(?:cards|(?:data)?lines);[\s\S]+?^[ \t]*;/im,lookbehind:!0,alias:"string",inside:{keyword:{pattern:/^(?:cards|(?:data)?lines)/i},punctuation:/;/}},"proc-sql":{pattern:/(^proc\s+(?:fed)?sql(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|data|quit|run);|(?![\s\S]))/im,lookbehind:!0,inside:{sql:{pattern:RegExp(/^[ \t]*(?:select|alter\s+table|(?:create|describe|drop)\s+(?:index|table(?:\s+constraints)?|view)|create\s+unique\s+index|insert\s+into|update)(?:<str>|[^;"'])+;/.source.replace(/<str>/g,(function(){return t})),"im"),alias:"language-sql",inside:e.languages.sql},"global-statements":g,"sql-statements":{pattern:/(^|\s)(?:disconnect\s+from|begin|commit|exec(?:ute)?|reset|rollback|validate)\b/i,lookbehind:!0,alias:"keyword"},number:n,"numeric-constant":r,punctuation:c,string:l}},"proc-groovy":{pattern:/(^proc\s+groovy(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|data|quit|run);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:s,groovy:{pattern:RegExp(/(^[ \t]*submit(?:\s+(?:load|norun|parseonly))?)(?:<str>|[^"'])+?(?=endsubmit;)/.source.replace(/<str>/g,(function(){return t})),"im"),lookbehind:!0,alias:"language-groovy",inside:e.languages.groovy},keyword:E,"submit-statement":h,"global-statements":g,number:n,"numeric-constant":r,punctuation:c,string:l}},"proc-lua":{pattern:/(^proc\s+lua(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|data|quit|run);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:s,lua:{pattern:RegExp(/(^[ \t]*submit(?:\s+(?:load|norun|parseonly))?)(?:<str>|[^"'])+?(?=endsubmit;)/.source.replace(/<str>/g,(function(){return t})),"im"),lookbehind:!0,alias:"language-lua",inside:e.languages.lua},keyword:E,"submit-statement":h,"global-statements":g,number:n,"numeric-constant":r,punctuation:c,string:l}},"proc-cas":{pattern:/(^proc\s+cas(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|quit|data);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:s,"statement-var":{pattern:/((?:^|\s)=?)saveresult\s[^;]+/im,lookbehind:!0,inside:{statement:{pattern:/^saveresult\s+\S+/i,inside:{keyword:/^(?:saveresult)/i}},rest:d}},"cas-actions":b,statement:{pattern:/((?:^|\s)=?)(?:default|(?:un)?set|on|output|upload)[^;]+/im,lookbehind:!0,inside:d},step:o,keyword:E,function:u,format:p,altformat:m,"global-statements":g,number:n,"numeric-constant":r,punctuation:c,string:l}},"proc-args":{pattern:RegExp(/(^proc\s+\w+\s+)(?!\s)(?:[^;"']|<str>)+;/.source.replace(/<str>/g,(function(){return t})),"im"),lookbehind:!0,inside:d},"macro-keyword":i,"macro-variable":a,"macro-string-functions":{pattern:/((?:^|\s|=))%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)\(.*?(?:[^%]\))/i,lookbehind:!0,inside:{function:{pattern:/%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)/i,alias:"keyword"},"macro-keyword":i,"macro-variable":a,"escaped-char":{pattern:/%['"()<>=\xac^~;,#]/},punctuation:c}},"macro-declaration":{pattern:/^%macro[^;]+(?=;)/im,inside:{keyword:/%macro/i}},"macro-end":{pattern:/^%mend[^;]+(?=;)/im,inside:{keyword:/%mend/i}},macro:{pattern:/%_\w+(?=\()/,alias:"keyword"},input:{pattern:/\binput\s[-\w\s/*.$&]+;/i,inside:{input:{alias:"keyword",pattern:/^input/i},comment:s,number:n,"numeric-constant":r}},"options-args":{pattern:/(^options)[-'"|/\\<>*+=:()\w\s]*(?=;)/im,lookbehind:!0,inside:d},"cas-actions":b,comment:s,function:u,format:p,altformat:m,"numeric-constant":r,datetime:{pattern:RegExp(t+"(?:dt?|t)"),alias:"number"},string:l,step:o,keyword:E,"operator-keyword":{pattern:/\b(?:eq|ge|gt|in|le|lt|ne|not)\b/i,alias:"operator"},number:n,operator:/\*\*?|\|\|?|!!?|\xa6\xa6?|<[>=]?|>[<=]?|[-+\/=&]|[~\xac^]=?/,punctuation:c}}(e)}e.exports=t,t.displayName="sas",t.aliases=[]},1357:function(e){"use strict";function t(e){!function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(e)}e.exports=t,t.displayName="sass",t.aliases=[]},7719:function(e,t,n){"use strict";var r=n(5543);function a(e){e.register(r),e.languages.scala=e.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),e.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:e.languages.scala}}},string:/[\s\S]+/}}}),delete e.languages.scala["class-name"],delete e.languages.scala.function}e.exports=a,a.displayName="scala",a.aliases=[]},2284:function(e){"use strict";function t(e){!function(e){e.languages.scheme={comment:/;.*|#;\s*(?:\((?:[^()]|\([^()]*\))*\)|\[(?:[^\[\]]|\[[^\[\]]*\])*\])|#\|(?:[^#|]|#(?!\|)|\|(?!#)|#\|(?:[^#|]|#(?!\|)|\|(?!#))*\|#)*\|#/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},symbol:{pattern:/'[^()\[\]#'\s]+/,greedy:!0},char:{pattern:/#\\(?:[ux][a-fA-F\d]+\b|[-a-zA-Z]+\b|[\uD800-\uDBFF][\uDC00-\uDFFF]|\S)/,greedy:!0},"lambda-parameter":[{pattern:/((?:^|[^'`#])[(\[]lambda\s+)(?:[^|()\[\]'\s]+|\|(?:[^\\|]|\\.)*\|)/,lookbehind:!0},{pattern:/((?:^|[^'`#])[(\[]lambda\s+[(\[])[^()\[\]']+/,lookbehind:!0}],keyword:{pattern:/((?:^|[^'`#])[(\[])(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|except|export|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\*)?|let\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\[\]\s]|$)/,lookbehind:!0},builtin:{pattern:/((?:^|[^'`#])[(\[])(?:abs|and|append|apply|assoc|ass[qv]|binary-port\?|boolean=?\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\?|\?|<\?|<=\?|=\?|>\?|>=\?)|close-(?:input-port|output-port|port)|complex\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\??|eq\?|equal\?|eqv\?|error|error-object(?:-irritants|-message|\?)|eval|even\?|exact(?:-integer-sqrt|-integer\?|\?)?|expt|features|file-error\?|floor(?:-quotient|-remainder|\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\??|input-port(?:-open\?|\?)|integer(?:->char|\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\?|newline|not|null\?|number(?:->string|\?)|numerator|odd\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\?|\?)|pair\?|peek-char|peek-u8|port\?|positive\?|procedure\?|quotient|raise|raise-continuable|rational\?|rationalize|read-(?:bytevector|bytevector!|char|error\?|line|string|u8)|real\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?|<\?|<=\?|=\?|>\?|>=\?)?|substring|symbol(?:->string|\?|=\?)|syntax-error|textual-port\?|truncate(?:-quotient|-remainder|\/)?|u8-ready\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\?)(?=[()\[\]\s]|$)/,lookbehind:!0},operator:{pattern:/((?:^|[^'`#])[(\[])(?:[-+*%/]|[<>]=?|=>?)(?=[()\[\]\s]|$)/,lookbehind:!0},number:{pattern:RegExp(function(e){for(var t in e)e[t]=e[t].replace(/<[\w\s]+>/g,(function(t){return"(?:"+e[t].trim()+")"}));return e[t]}({"<ureal dec>":/\d+(?:\/\d+)|(?:\d+(?:\.\d*)?|\.\d+)(?:[esfdl][+-]?\d+)?/.source,"<real dec>":/[+-]?<ureal dec>|[+-](?:inf|nan)\.0/.source,"<imaginary dec>":/[+-](?:<ureal dec>|(?:inf|nan)\.0)?i/.source,"<complex dec>":/<real dec>(?:@<real dec>|<imaginary dec>)?|<imaginary dec>/.source,"<num dec>":/(?:#d(?:#[ei])?|#[ei](?:#d)?)?<complex dec>/.source,"<ureal box>":/[0-9a-f]+(?:\/[0-9a-f]+)?/.source,"<real box>":/[+-]?<ureal box>|[+-](?:inf|nan)\.0/.source,"<imaginary box>":/[+-](?:<ureal box>|(?:inf|nan)\.0)?i/.source,"<complex box>":/<real box>(?:@<real box>|<imaginary box>)?|<imaginary box>/.source,"<num box>":/#[box](?:#[ei])?|(?:#[ei])?#[box]<complex box>/.source,"<number>":/(^|[()\[\]\s])(?:<num dec>|<num box>)(?=[()\[\]\s]|$)/.source}),"i"),lookbehind:!0},boolean:{pattern:/(^|[()\[\]\s])#(?:[ft]|false|true)(?=[()\[\]\s]|$)/,lookbehind:!0},function:{pattern:/((?:^|[^'`#])[(\[])(?:[^|()\[\]'\s]+|\|(?:[^\\|]|\\.)*\|)(?=[()\[\]\s]|$)/,lookbehind:!0},identifier:{pattern:/(^|[()\[\]\s])\|(?:[^\\|]|\\.)*\|(?=[()\[\]\s]|$)/,lookbehind:!0,greedy:!0},punctuation:/[()\[\]']/}}(e)}e.exports=t,t.displayName="scheme",t.aliases=[]},1254:function(e){"use strict";function t(e){e.languages.scss=e.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),e.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),e.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),e.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),e.languages.scss.atrule.inside.rest=e.languages.scss}e.exports=t,t.displayName="scss",t.aliases=[]},6442:function(e,t,n){"use strict";var r=n(7033);function a(e){e.register(r),function(e){var t=[/"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/.source,/'[^']*'/.source,/\$'(?:[^'\\]|\\[\s\S])*'/.source,/<<-?\s*(["']?)(\w+)\1\s[\s\S]*?[\r\n]\2/.source].join("|");e.languages["shell-session"]={command:{pattern:RegExp(/^/.source+"(?:"+/[^\s@:$#%*!/\\]+@[^\r\n@:$#%*!/\\]+(?::[^\0-\x1F$#%*?"<>:;|]+)?/.source+"|"+/[/~.][^\0-\x1F$#%*?"<>@:;|]*/.source+")?"+/[$#%](?=\s)/.source+/(?:[^\\\r\n \t'"<$]|[ \t](?:(?!#)|#.*$)|\\(?:[^\r]|\r\n?)|\$(?!')|<(?!<)|<<str>>)+/.source.replace(/<<str>>/g,(function(){return t})),"m"),greedy:!0,inside:{info:{pattern:/^[^#$%]+/,alias:"punctuation",inside:{user:/^[^\s@:$#%*!/\\]+@[^\r\n@:$#%*!/\\]+/,punctuation:/:/,path:/[\s\S]+/}},bash:{pattern:/(^[$#%]\s*)\S[\s\S]*/,lookbehind:!0,alias:"language-bash",inside:e.languages.bash},"shell-symbol":{pattern:/^[$#%]/,alias:"important"}}},output:/.(?:.*(?:[\r\n]|.$))*/},e.languages["sh-session"]=e.languages.shellsession=e.languages["shell-session"]}(e)}e.exports=a,a.displayName="shellSession",a.aliases=[]},2034:function(e){"use strict";function t(e){e.languages.smali={comment:/#.*/,string:{pattern:/"(?:[^\r\n\\"]|\\.)*"|'(?:[^\r\n\\']|\\(?:.|u[\da-fA-F]{4}))'/,greedy:!0},"class-name":{pattern:/(^|[^L])L(?:(?:\w+|`[^`\r\n]*`)\/)*(?:[\w$]+|`[^`\r\n]*`)(?=\s*;)/,lookbehind:!0,inside:{"class-name":{pattern:/(^L|\/)(?:[\w$]+|`[^`\r\n]*`)$/,lookbehind:!0},namespace:{pattern:/^(L)(?:(?:\w+|`[^`\r\n]*`)\/)+/,lookbehind:!0,inside:{punctuation:/\//}},builtin:/^L/}},builtin:[{pattern:/([();\[])[BCDFIJSVZ]+/,lookbehind:!0},{pattern:/([\w$>]:)[BCDFIJSVZ]/,lookbehind:!0}],keyword:[{pattern:/(\.end\s+)[\w-]+/,lookbehind:!0},{pattern:/(^|[^\w.-])\.(?!\d)[\w-]+/,lookbehind:!0},{pattern:/(^|[^\w.-])(?:abstract|annotation|bridge|constructor|enum|final|interface|private|protected|public|runtime|static|synthetic|system|transient)(?![\w.-])/,lookbehind:!0}],function:{pattern:/(^|[^\w.-])(?:\w+|<[\w$-]+>)(?=\()/,lookbehind:!0},field:{pattern:/[\w$]+(?=:)/,alias:"variable"},register:{pattern:/(^|[^\w.-])[vp]\d(?![\w.-])/,lookbehind:!0,alias:"variable"},boolean:{pattern:/(^|[^\w.-])(?:false|true)(?![\w.-])/,lookbehind:!0},number:{pattern:/(^|[^/\w.-])-?(?:NAN|INFINITY|0x(?:[\dA-F]+(?:\.[\dA-F]*)?|\.[\dA-F]+)(?:p[+-]?[\dA-F]+)?|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)[dflst]?(?![\w.-])/i,lookbehind:!0},label:{pattern:/(:)\w+/,lookbehind:!0,alias:"property"},operator:/->|\.\.|[\[=]/,punctuation:/[{}(),;:]/}}e.exports=t,t.displayName="smali",t.aliases=[]},9676:function(e){"use strict";function t(e){e.languages.smalltalk={comment:{pattern:/"(?:""|[^"])*"/,greedy:!0},char:{pattern:/\$./,greedy:!0},string:{pattern:/'(?:''|[^'])*'/,greedy:!0},symbol:/#[\da-z]+|#(?:-|([+\/\\*~<>=@%|&?!])\1?)|#(?=\()/i,"block-arguments":{pattern:/(\[\s*):[^\[|]*\|/,lookbehind:!0,inside:{variable:/:[\da-z]+/i,punctuation:/\|/}},"temporary-variables":{pattern:/\|[^|]+\|/,inside:{variable:/[\da-z]+/i,punctuation:/\|/}},keyword:/\b(?:new|nil|self|super)\b/,boolean:/\b(?:false|true)\b/,number:[/\d+r-?[\dA-Z]+(?:\.[\dA-Z]+)?(?:e-?\d+)?/,/\b\d+(?:\.\d+)?(?:e-?\d+)?/],operator:/[<=]=?|:=|~[~=]|\/\/?|\\\\|>[>=]?|[!^+\-*&|,@]/,punctuation:/[.;:?\[\](){}]/}}e.exports=t,t.displayName="smalltalk",t.aliases=[]},9895:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),function(e){e.languages.smarty={comment:{pattern:/^\{\*[\s\S]*?\*\}/,greedy:!0},"embedded-php":{pattern:/^\{php\}[\s\S]*?\{\/php\}/,greedy:!0,inside:{smarty:{pattern:/^\{php\}|\{\/php\}$/,inside:null},php:{pattern:/[\s\S]+/,alias:"language-php",inside:e.languages.php}}},string:[{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0,inside:{interpolation:{pattern:/\{[^{}]*\}|`[^`]*`/,inside:{"interpolation-punctuation":{pattern:/^[{`]|[`}]$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:null}}},variable:/\$\w+/}},{pattern:/'(?:\\.|[^'\\\r\n])*'/,greedy:!0}],keyword:{pattern:/(^\{\/?)[a-z_]\w*\b(?!\()/i,lookbehind:!0,greedy:!0},delimiter:{pattern:/^\{\/?|\}$/,greedy:!0,alias:"punctuation"},number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,variable:[/\$(?!\d)\w+/,/#(?!\d)\w+#/,{pattern:/(\.|->|\w\s*=)(?!\d)\w+\b(?!\()/,lookbehind:!0},{pattern:/(\[)(?!\d)\w+(?=\])/,lookbehind:!0}],function:{pattern:/(\|\s*)@?[a-z_]\w*|\b[a-z_]\w*(?=\()/i,lookbehind:!0},"attr-name":/\b[a-z_]\w*(?=\s*=)/i,boolean:/\b(?:false|no|off|on|true|yes)\b/,punctuation:/[\[\](){}.,:`]|->/,operator:[/[+\-*\/%]|==?=?|[!<>]=?|&&|\|\|?/,/\bis\s+(?:not\s+)?(?:div|even|odd)(?:\s+by)?\b/,/\b(?:and|eq|gt?e|gt|lt?e|lt|mod|neq?|not|or)\b/]},e.languages.smarty["embedded-php"].inside.smarty.inside=e.languages.smarty,e.languages.smarty.string[0].inside.interpolation.inside.expression.inside=e.languages.smarty;var t=/"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,n=RegExp(/\{\*[\s\S]*?\*\}/.source+"|"+/\{php\}[\s\S]*?\{\/php\}/.source+"|"+/\{(?:[^{}"']|<str>|\{(?:[^{}"']|<str>|\{(?:[^{}"']|<str>)*\})*\})*\}/.source.replace(/<str>/g,(function(){return t.source})),"g");e.hooks.add("before-tokenize",(function(t){var r=!1;e.languages["markup-templating"].buildPlaceholders(t,"smarty",n,(function(e){return"{/literal}"===e&&(r=!1),!r&&("{literal}"===e&&(r=!0),!0)}))})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"smarty")}))}(e)}e.exports=a,a.displayName="smarty",a.aliases=[]},3775:function(e){"use strict";function t(e){!function(e){var t=/\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\b/i;e.languages.sml={comment:/\(\*(?:[^*(]|\*(?!\))|\((?!\*)|\(\*(?:[^*(]|\*(?!\))|\((?!\*))*\*\))*\*\)/,string:{pattern:/#?"(?:[^"\\]|\\.)*"/,greedy:!0},"class-name":[{pattern:RegExp(/((?:^|[^:]):\s*)<TERMINAL>(?:\s*(?:(?:\*|->)\s*<TERMINAL>|,\s*<TERMINAL>(?:(?=<NOT-LAST>)|(?!<NOT-LAST>)\s+<LONG-ID>)))*/.source.replace(/<NOT-LAST>/g,(function(){return/\s*(?:[*,]|->)/.source})).replace(/<TERMINAL>/g,(function(){return/(?:'[\w']*|<LONG-ID>|\((?:[^()]|\([^()]*\))*\)|\{(?:[^{}]|\{[^{}]*\})*\})(?:\s+<LONG-ID>)*/.source})).replace(/<LONG-ID>/g,(function(){return/(?!<KEYWORD>)[a-z\d_][\w'.]*/.source})).replace(/<KEYWORD>/g,(function(){return t.source})),"i"),lookbehind:!0,greedy:!0,inside:null},{pattern:/((?:^|[^\w'])(?:datatype|exception|functor|signature|structure|type)\s+)[a-z_][\w'.]*/i,lookbehind:!0}],function:{pattern:/((?:^|[^\w'])fun\s+)[a-z_][\w'.]*/i,lookbehind:!0},keyword:t,variable:{pattern:/(^|[^\w'])'[\w']*/,lookbehind:!0},number:/~?\b(?:\d+(?:\.\d+)?(?:e~?\d+)?|0x[\da-f]+)\b/i,word:{pattern:/\b0w(?:\d+|x[\da-f]+)\b/i,alias:"constant"},boolean:/\b(?:false|true)\b/i,operator:/\.\.\.|:[>=:]|=>?|->|[<>]=?|[!+\-*/^#|@~]/,punctuation:/[(){}\[\].:,;]/},e.languages.sml["class-name"][0].inside=e.languages.sml,e.languages.smlnj=e.languages.sml}(e)}e.exports=t,t.displayName="sml",t.aliases=["smlnj"]},5767:function(e){"use strict";function t(e){e.languages.solidity=e.languages.extend("clike",{"class-name":{pattern:/(\b(?:contract|enum|interface|library|new|struct|using)\s+)(?!\d)[\w$]+/,lookbehind:!0},keyword:/\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\b/,operator:/=>|->|:=|=:|\*\*|\+\+|--|\|\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/}),e.languages.insertBefore("solidity","keyword",{builtin:/\b(?:address|bool|byte|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|string|bytes(?:[1-9]|[12]\d|3[0-2])?)\b/}),e.languages.insertBefore("solidity","number",{version:{pattern:/([<>]=?|\^)\d+\.\d+\.\d+\b/,lookbehind:!0,alias:"number"}}),e.languages.sol=e.languages.solidity}e.exports=t,t.displayName="solidity",t.aliases=["sol"]},9093:function(e){"use strict";function t(e){!function(e){var t={pattern:/\{[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}\}/i,alias:"constant",inside:{punctuation:/[{}]/}};e.languages["solution-file"]={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0,inside:{guid:t}},object:{pattern:/^([ \t]*)(?:([A-Z]\w*)\b(?=.*(?:\r\n?|\n)(?:\1[ \t].*(?:\r\n?|\n))*\1End\2(?=[ \t]*$))|End[A-Z]\w*(?=[ \t]*$))/m,lookbehind:!0,greedy:!0,alias:"keyword"},property:{pattern:/^([ \t]*)(?!\s)[^\r\n"#=()]*[^\s"#=()](?=\s*=)/m,lookbehind:!0,inside:{guid:t}},guid:t,number:/\b\d+(?:\.\d+)*\b/,boolean:/\b(?:FALSE|TRUE)\b/,operator:/=/,punctuation:/[(),]/},e.languages.sln=e.languages["solution-file"]}(e)}e.exports=t,t.displayName="solutionFile",t.aliases=[]},8768:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),function(e){var t=/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=/\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-F]+\b/;e.languages.soy={comment:[/\/\*[\s\S]*?\*\//,{pattern:/(\s)\/\/.*/,lookbehind:!0,greedy:!0}],"command-arg":{pattern:/(\{+\/?\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\s+)\.?[\w.]+/,lookbehind:!0,alias:"string",inside:{punctuation:/\./}},parameter:{pattern:/(\{+\/?\s*@?param\??\s+)\.?[\w.]+/,lookbehind:!0,alias:"variable"},keyword:[{pattern:/(\{+\/?[^\S\r\n]*)(?:\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\??|rb|sp|switch|template|xid)/,lookbehind:!0},/\b(?:any|as|attributes|bool|css|float|html|in|int|js|list|map|null|number|string|uri)\b/],delimiter:{pattern:/^\{+\/?|\/?\}+$/,alias:"punctuation"},property:/\w+(?==)/,variable:{pattern:/\$[^\W\d]\w*(?:\??(?:\.\w+|\[[^\]]+\]))*/,inside:{string:{pattern:t,greedy:!0},number:n,punctuation:/[\[\].?]/}},string:{pattern:t,greedy:!0},function:[/\w+(?=\()/,{pattern:/(\|[^\S\r\n]*)\w+/,lookbehind:!0}],boolean:/\b(?:false|true)\b/,number:n,operator:/\?:?|<=?|>=?|==?|!=|[+*/%-]|\b(?:and|not|or)\b/,punctuation:/[{}()\[\]|.,:]/},e.hooks.add("before-tokenize",(function(t){var n=!1;e.languages["markup-templating"].buildPlaceholders(t,"soy",/\{\{.+?\}\}|\{.+?\}|\s\/\/.*|\/\*[\s\S]*?\*\//g,(function(e){return"{/literal}"===e&&(n=!1),!n&&("{literal}"===e&&(n=!0),!0)}))})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"soy")}))}(e)}e.exports=a,a.displayName="soy",a.aliases=[]},8517:function(e,t,n){"use strict";var r=n(3089);function a(e){e.register(r),e.languages.sparql=e.languages.extend("turtle",{boolean:/\b(?:false|true)\b/i,variable:{pattern:/[?$]\w+/,greedy:!0}}),e.languages.insertBefore("sparql","punctuation",{keyword:[/\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|ORDER|RAND|REDUCED|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\b/i,/\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|REGEX|REPLACE|ROUND|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\b(?=\s*\()/i,/\b(?:BASE|GRAPH|PREFIX)\b/i]}),e.languages.rq=e.languages.sparql}e.exports=a,a.displayName="sparql",a.aliases=["rq"]},7942:function(e){"use strict";function t(e){e.languages["splunk-spl"]={comment:/`comment\("(?:\\.|[^\\"])*"\)`/,string:{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0},keyword:/\b(?:abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|anomalydetection|append|appendcols|appendcsv|appendlookup|appendpipe|arules|associate|audit|autoregress|bin|bucket|bucketdir|chart|cluster|cofilter|collect|concurrency|contingency|convert|correlate|datamodel|dbinspect|dedup|delete|delta|diff|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geom|geomfilter|geostats|head|highlight|history|iconify|input|inputcsv|inputlookup|iplocation|join|kmeans|kv|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|mcollect|metadata|metasearch|meventcollect|mstats|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|timewrap|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|union|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\b/i,"operator-word":{pattern:/\b(?:and|as|by|not|or|xor)\b/i,alias:"operator"},function:/\b\w+(?=\s*\()/,property:/\b\w+(?=\s*=(?!=))/,date:{pattern:/\b\d{1,2}\/\d{1,2}\/\d{1,4}(?:(?::\d{1,2}){3})?\b/,alias:"number"},number:/\b\d+(?:\.\d+)?\b/,boolean:/\b(?:f|false|t|true)\b/i,operator:/[<>=]=?|[-+*/%|]/,punctuation:/[()[\],]/}}e.exports=t,t.displayName="splunkSpl",t.aliases=[]},4457:function(e){"use strict";function t(e){e.languages.sqf=e.languages.extend("clike",{string:{pattern:/"(?:(?:"")?[^"])*"(?!")|'(?:[^'])*'/,greedy:!0},keyword:/\b(?:breakOut|breakTo|call|case|catch|default|do|echo|else|execFSM|execVM|exitWith|for|forEach|forEachMember|forEachMemberAgent|forEachMemberTeam|from|goto|if|nil|preprocessFile|preprocessFileLineNumbers|private|scopeName|spawn|step|switch|then|throw|to|try|while|with)\b/i,boolean:/\b(?:false|true)\b/i,function:/\b(?:abs|accTime|acos|action|actionIDs|actionKeys|actionKeysImages|actionKeysNames|actionKeysNamesArray|actionName|actionParams|activateAddons|activatedAddons|activateKey|add3DENConnection|add3DENEventHandler|add3DENLayer|addAction|addBackpack|addBackpackCargo|addBackpackCargoGlobal|addBackpackGlobal|addCamShake|addCuratorAddons|addCuratorCameraArea|addCuratorEditableObjects|addCuratorEditingArea|addCuratorPoints|addEditorObject|addEventHandler|addForce|addForceGeneratorRTD|addGoggles|addGroupIcon|addHandgunItem|addHeadgear|addItem|addItemCargo|addItemCargoGlobal|addItemPool|addItemToBackpack|addItemToUniform|addItemToVest|addLiveStats|addMagazine|addMagazineAmmoCargo|addMagazineCargo|addMagazineCargoGlobal|addMagazineGlobal|addMagazinePool|addMagazines|addMagazineTurret|addMenu|addMenuItem|addMissionEventHandler|addMPEventHandler|addMusicEventHandler|addOwnedMine|addPlayerScores|addPrimaryWeaponItem|addPublicVariableEventHandler|addRating|addResources|addScore|addScoreSide|addSecondaryWeaponItem|addSwitchableUnit|addTeamMember|addToRemainsCollector|addTorque|addUniform|addVehicle|addVest|addWaypoint|addWeapon|addWeaponCargo|addWeaponCargoGlobal|addWeaponGlobal|addWeaponItem|addWeaponPool|addWeaponTurret|admin|agent|agents|AGLToASL|aimedAtTarget|aimPos|airDensityCurveRTD|airDensityRTD|airplaneThrottle|airportSide|AISFinishHeal|alive|all3DENEntities|allAirports|allControls|allCurators|allCutLayers|allDead|allDeadMen|allDisplays|allGroups|allMapMarkers|allMines|allMissionObjects|allow3DMode|allowCrewInImmobile|allowCuratorLogicIgnoreAreas|allowDamage|allowDammage|allowFileOperations|allowFleeing|allowGetIn|allowSprint|allPlayers|allSimpleObjects|allSites|allTurrets|allUnits|allUnitsUAV|allVariables|ammo|ammoOnPylon|animate|animateBay|animateDoor|animatePylon|animateSource|animationNames|animationPhase|animationSourcePhase|animationState|append|apply|armoryPoints|arrayIntersect|asin|ASLToAGL|ASLToATL|assert|assignAsCargo|assignAsCargoIndex|assignAsCommander|assignAsDriver|assignAsGunner|assignAsTurret|assignCurator|assignedCargo|assignedCommander|assignedDriver|assignedGunner|assignedItems|assignedTarget|assignedTeam|assignedVehicle|assignedVehicleRole|assignItem|assignTeam|assignToAirport|atan|atan2|atg|ATLToASL|attachedObject|attachedObjects|attachedTo|attachObject|attachTo|attackEnabled|backpack|backpackCargo|backpackContainer|backpackItems|backpackMagazines|backpackSpaceFor|behaviour|benchmark|binocular|blufor|boundingBox|boundingBoxReal|boundingCenter|briefingName|buildingExit|buildingPos|buldozer_EnableRoadDiag|buldozer_IsEnabledRoadDiag|buldozer_LoadNewRoads|buldozer_reloadOperMap|buttonAction|buttonSetAction|cadetMode|callExtension|camCommand|camCommit|camCommitPrepared|camCommitted|camConstuctionSetParams|camCreate|camDestroy|cameraEffect|cameraEffectEnableHUD|cameraInterest|cameraOn|cameraView|campaignConfigFile|camPreload|camPreloaded|camPrepareBank|camPrepareDir|camPrepareDive|camPrepareFocus|camPrepareFov|camPrepareFovRange|camPreparePos|camPrepareRelPos|camPrepareTarget|camSetBank|camSetDir|camSetDive|camSetFocus|camSetFov|camSetFovRange|camSetPos|camSetRelPos|camSetTarget|camTarget|camUseNVG|canAdd|canAddItemToBackpack|canAddItemToUniform|canAddItemToVest|cancelSimpleTaskDestination|canFire|canMove|canSlingLoad|canStand|canSuspend|canTriggerDynamicSimulation|canUnloadInCombat|canVehicleCargo|captive|captiveNum|cbChecked|cbSetChecked|ceil|channelEnabled|cheatsEnabled|checkAIFeature|checkVisibility|civilian|className|clear3DENAttribute|clear3DENInventory|clearAllItemsFromBackpack|clearBackpackCargo|clearBackpackCargoGlobal|clearForcesRTD|clearGroupIcons|clearItemCargo|clearItemCargoGlobal|clearItemPool|clearMagazineCargo|clearMagazineCargoGlobal|clearMagazinePool|clearOverlay|clearRadio|clearVehicleInit|clearWeaponCargo|clearWeaponCargoGlobal|clearWeaponPool|clientOwner|closeDialog|closeDisplay|closeOverlay|collapseObjectTree|collect3DENHistory|collectiveRTD|combatMode|commandArtilleryFire|commandChat|commander|commandFire|commandFollow|commandFSM|commandGetOut|commandingMenu|commandMove|commandRadio|commandStop|commandSuppressiveFire|commandTarget|commandWatch|comment|commitOverlay|compile|compileFinal|completedFSM|composeText|configClasses|configFile|configHierarchy|configName|configNull|configProperties|configSourceAddonList|configSourceMod|configSourceModList|confirmSensorTarget|connectTerminalToUAV|controlNull|controlsGroupCtrl|copyFromClipboard|copyToClipboard|copyWaypoints|cos|count|countEnemy|countFriendly|countSide|countType|countUnknown|create3DENComposition|create3DENEntity|createAgent|createCenter|createDialog|createDiaryLink|createDiaryRecord|createDiarySubject|createDisplay|createGearDialog|createGroup|createGuardedPoint|createLocation|createMarker|createMarkerLocal|createMenu|createMine|createMissionDisplay|createMPCampaignDisplay|createSimpleObject|createSimpleTask|createSite|createSoundSource|createTask|createTeam|createTrigger|createUnit|createVehicle|createVehicleCrew|createVehicleLocal|crew|ctAddHeader|ctAddRow|ctClear|ctCurSel|ctData|ctFindHeaderRows|ctFindRowHeader|ctHeaderControls|ctHeaderCount|ctRemoveHeaders|ctRemoveRows|ctrlActivate|ctrlAddEventHandler|ctrlAngle|ctrlAutoScrollDelay|ctrlAutoScrollRewind|ctrlAutoScrollSpeed|ctrlChecked|ctrlClassName|ctrlCommit|ctrlCommitted|ctrlCreate|ctrlDelete|ctrlEnable|ctrlEnabled|ctrlFade|ctrlHTMLLoaded|ctrlIDC|ctrlIDD|ctrlMapAnimAdd|ctrlMapAnimClear|ctrlMapAnimCommit|ctrlMapAnimDone|ctrlMapCursor|ctrlMapMouseOver|ctrlMapScale|ctrlMapScreenToWorld|ctrlMapWorldToScreen|ctrlModel|ctrlModelDirAndUp|ctrlModelScale|ctrlParent|ctrlParentControlsGroup|ctrlPosition|ctrlRemoveAllEventHandlers|ctrlRemoveEventHandler|ctrlScale|ctrlSetActiveColor|ctrlSetAngle|ctrlSetAutoScrollDelay|ctrlSetAutoScrollRewind|ctrlSetAutoScrollSpeed|ctrlSetBackgroundColor|ctrlSetChecked|ctrlSetDisabledColor|ctrlSetEventHandler|ctrlSetFade|ctrlSetFocus|ctrlSetFont|ctrlSetFontH1|ctrlSetFontH1B|ctrlSetFontH2|ctrlSetFontH2B|ctrlSetFontH3|ctrlSetFontH3B|ctrlSetFontH4|ctrlSetFontH4B|ctrlSetFontH5|ctrlSetFontH5B|ctrlSetFontH6|ctrlSetFontH6B|ctrlSetFontHeight|ctrlSetFontHeightH1|ctrlSetFontHeightH2|ctrlSetFontHeightH3|ctrlSetFontHeightH4|ctrlSetFontHeightH5|ctrlSetFontHeightH6|ctrlSetFontHeightSecondary|ctrlSetFontP|ctrlSetFontPB|ctrlSetFontSecondary|ctrlSetForegroundColor|ctrlSetModel|ctrlSetModelDirAndUp|ctrlSetModelScale|ctrlSetPixelPrecision|ctrlSetPosition|ctrlSetScale|ctrlSetStructuredText|ctrlSetText|ctrlSetTextColor|ctrlSetTextColorSecondary|ctrlSetTextSecondary|ctrlSetTooltip|ctrlSetTooltipColorBox|ctrlSetTooltipColorShade|ctrlSetTooltipColorText|ctrlShow|ctrlShown|ctrlText|ctrlTextHeight|ctrlTextSecondary|ctrlTextWidth|ctrlType|ctrlVisible|ctRowControls|ctRowCount|ctSetCurSel|ctSetData|ctSetHeaderTemplate|ctSetRowTemplate|ctSetValue|ctValue|curatorAddons|curatorCamera|curatorCameraArea|curatorCameraAreaCeiling|curatorCoef|curatorEditableObjects|curatorEditingArea|curatorEditingAreaType|curatorMouseOver|curatorPoints|curatorRegisteredObjects|curatorSelected|curatorWaypointCost|current3DENOperation|currentChannel|currentCommand|currentMagazine|currentMagazineDetail|currentMagazineDetailTurret|currentMagazineTurret|currentMuzzle|currentNamespace|currentTask|currentTasks|currentThrowable|currentVisionMode|currentWaypoint|currentWeapon|currentWeaponMode|currentWeaponTurret|currentZeroing|cursorObject|cursorTarget|customChat|customRadio|cutFadeOut|cutObj|cutRsc|cutText|damage|date|dateToNumber|daytime|deActivateKey|debriefingText|debugFSM|debugLog|deg|delete3DENEntities|deleteAt|deleteCenter|deleteCollection|deleteEditorObject|deleteGroup|deleteGroupWhenEmpty|deleteIdentity|deleteLocation|deleteMarker|deleteMarkerLocal|deleteRange|deleteResources|deleteSite|deleteStatus|deleteTeam|deleteVehicle|deleteVehicleCrew|deleteWaypoint|detach|detectedMines|diag_activeMissionFSMs|diag_activeScripts|diag_activeSQFScripts|diag_activeSQSScripts|diag_captureFrame|diag_captureFrameToFile|diag_captureSlowFrame|diag_codePerformance|diag_drawMode|diag_dynamicSimulationEnd|diag_enable|diag_enabled|diag_fps|diag_fpsMin|diag_frameNo|diag_lightNewLoad|diag_list|diag_log|diag_logSlowFrame|diag_mergeConfigFile|diag_recordTurretLimits|diag_setLightNew|diag_tickTime|diag_toggle|dialog|diarySubjectExists|didJIP|didJIPOwner|difficulty|difficultyEnabled|difficultyEnabledRTD|difficultyOption|direction|directSay|disableAI|disableCollisionWith|disableConversation|disableDebriefingStats|disableMapIndicators|disableNVGEquipment|disableRemoteSensors|disableSerialization|disableTIEquipment|disableUAVConnectability|disableUserInput|displayAddEventHandler|displayCtrl|displayNull|displayParent|displayRemoveAllEventHandlers|displayRemoveEventHandler|displaySetEventHandler|dissolveTeam|distance|distance2D|distanceSqr|distributionRegion|do3DENAction|doArtilleryFire|doFire|doFollow|doFSM|doGetOut|doMove|doorPhase|doStop|doSuppressiveFire|doTarget|doWatch|drawArrow|drawEllipse|drawIcon|drawIcon3D|drawLine|drawLine3D|drawLink|drawLocation|drawPolygon|drawRectangle|drawTriangle|driver|drop|dynamicSimulationDistance|dynamicSimulationDistanceCoef|dynamicSimulationEnabled|dynamicSimulationSystemEnabled|east|edit3DENMissionAttributes|editObject|editorSetEventHandler|effectiveCommander|emptyPositions|enableAI|enableAIFeature|enableAimPrecision|enableAttack|enableAudioFeature|enableAutoStartUpRTD|enableAutoTrimRTD|enableCamShake|enableCaustics|enableChannel|enableCollisionWith|enableCopilot|enableDebriefingStats|enableDiagLegend|enableDynamicSimulation|enableDynamicSimulationSystem|enableEndDialog|enableEngineArtillery|enableEnvironment|enableFatigue|enableGunLights|enableInfoPanelComponent|enableIRLasers|enableMimics|enablePersonTurret|enableRadio|enableReload|enableRopeAttach|enableSatNormalOnDetail|enableSaving|enableSentences|enableSimulation|enableSimulationGlobal|enableStamina|enableStressDamage|enableTeamSwitch|enableTraffic|enableUAVConnectability|enableUAVWaypoints|enableVehicleCargo|enableVehicleSensor|enableWeaponDisassembly|endl|endLoadingScreen|endMission|engineOn|enginesIsOnRTD|enginesPowerRTD|enginesRpmRTD|enginesTorqueRTD|entities|environmentEnabled|estimatedEndServerTime|estimatedTimeLeft|evalObjectArgument|everyBackpack|everyContainer|exec|execEditorScript|exp|expectedDestination|exportJIPMessages|eyeDirection|eyePos|face|faction|fadeMusic|fadeRadio|fadeSound|fadeSpeech|failMission|fillWeaponsFromPool|find|findCover|findDisplay|findEditorObject|findEmptyPosition|findEmptyPositionReady|findIf|findNearestEnemy|finishMissionInit|finite|fire|fireAtTarget|firstBackpack|flag|flagAnimationPhase|flagOwner|flagSide|flagTexture|fleeing|floor|flyInHeight|flyInHeightASL|fog|fogForecast|fogParams|forceAddUniform|forceAtPositionRTD|forcedMap|forceEnd|forceFlagTexture|forceFollowRoad|forceGeneratorRTD|forceMap|forceRespawn|forceSpeed|forceWalk|forceWeaponFire|forceWeatherChange|forgetTarget|format|formation|formationDirection|formationLeader|formationMembers|formationPosition|formationTask|formatText|formLeader|freeLook|fromEditor|fuel|fullCrew|gearIDCAmmoCount|gearSlotAmmoCount|gearSlotData|get3DENActionState|get3DENAttribute|get3DENCamera|get3DENConnections|get3DENEntity|get3DENEntityID|get3DENGrid|get3DENIconsVisible|get3DENLayerEntities|get3DENLinesVisible|get3DENMissionAttribute|get3DENMouseOver|get3DENSelected|getAimingCoef|getAllEnvSoundControllers|getAllHitPointsDamage|getAllOwnedMines|getAllSoundControllers|getAmmoCargo|getAnimAimPrecision|getAnimSpeedCoef|getArray|getArtilleryAmmo|getArtilleryComputerSettings|getArtilleryETA|getAssignedCuratorLogic|getAssignedCuratorUnit|getBackpackCargo|getBleedingRemaining|getBurningValue|getCameraViewDirection|getCargoIndex|getCenterOfMass|getClientState|getClientStateNumber|getCompatiblePylonMagazines|getConnectedUAV|getContainerMaxLoad|getCursorObjectParams|getCustomAimCoef|getDammage|getDescription|getDir|getDirVisual|getDLCAssetsUsage|getDLCAssetsUsageByName|getDLCs|getDLCUsageTime|getEditorCamera|getEditorMode|getEditorObjectScope|getElevationOffset|getEngineTargetRpmRTD|getEnvSoundController|getFatigue|getFieldManualStartPage|getForcedFlagTexture|getFriend|getFSMVariable|getFuelCargo|getGroupIcon|getGroupIconParams|getGroupIcons|getHideFrom|getHit|getHitIndex|getHitPointDamage|getItemCargo|getMagazineCargo|getMarkerColor|getMarkerPos|getMarkerSize|getMarkerType|getMass|getMissionConfig|getMissionConfigValue|getMissionDLCs|getMissionLayerEntities|getMissionLayers|getModelInfo|getMousePosition|getMusicPlayedTime|getNumber|getObjectArgument|getObjectChildren|getObjectDLC|getObjectMaterials|getObjectProxy|getObjectTextures|getObjectType|getObjectViewDistance|getOxygenRemaining|getPersonUsedDLCs|getPilotCameraDirection|getPilotCameraPosition|getPilotCameraRotation|getPilotCameraTarget|getPlateNumber|getPlayerChannel|getPlayerScores|getPlayerUID|getPlayerUIDOld|getPos|getPosASL|getPosASLVisual|getPosASLW|getPosATL|getPosATLVisual|getPosVisual|getPosWorld|getPylonMagazines|getRelDir|getRelPos|getRemoteSensorsDisabled|getRepairCargo|getResolution|getRotorBrakeRTD|getShadowDistance|getShotParents|getSlingLoad|getSoundController|getSoundControllerResult|getSpeed|getStamina|getStatValue|getSuppression|getTerrainGrid|getTerrainHeightASL|getText|getTotalDLCUsageTime|getTrimOffsetRTD|getUnitLoadout|getUnitTrait|getUserMFDText|getUserMFDValue|getVariable|getVehicleCargo|getWeaponCargo|getWeaponSway|getWingsOrientationRTD|getWingsPositionRTD|getWPPos|glanceAt|globalChat|globalRadio|goggles|group|groupChat|groupFromNetId|groupIconSelectable|groupIconsVisible|groupId|groupOwner|groupRadio|groupSelectedUnits|groupSelectUnit|grpNull|gunner|gusts|halt|handgunItems|handgunMagazine|handgunWeapon|handsHit|hasInterface|hasPilotCamera|hasWeapon|hcAllGroups|hcGroupParams|hcLeader|hcRemoveAllGroups|hcRemoveGroup|hcSelected|hcSelectGroup|hcSetGroup|hcShowBar|hcShownBar|headgear|hideBody|hideObject|hideObjectGlobal|hideSelection|hint|hintC|hintCadet|hintSilent|hmd|hostMission|htmlLoad|HUDMovementLevels|humidity|image|importAllGroups|importance|in|inArea|inAreaArray|incapacitatedState|independent|inflame|inflamed|infoPanel|infoPanelComponentEnabled|infoPanelComponents|infoPanels|inGameUISetEventHandler|inheritsFrom|initAmbientLife|inPolygon|inputAction|inRangeOfArtillery|insertEditorObject|intersect|is3DEN|is3DENMultiplayer|isAbleToBreathe|isAgent|isAimPrecisionEnabled|isArray|isAutoHoverOn|isAutonomous|isAutoStartUpEnabledRTD|isAutotest|isAutoTrimOnRTD|isBleeding|isBurning|isClass|isCollisionLightOn|isCopilotEnabled|isDamageAllowed|isDedicated|isDLCAvailable|isEngineOn|isEqualTo|isEqualType|isEqualTypeAll|isEqualTypeAny|isEqualTypeArray|isEqualTypeParams|isFilePatchingEnabled|isFlashlightOn|isFlatEmpty|isForcedWalk|isFormationLeader|isGroupDeletedWhenEmpty|isHidden|isInRemainsCollector|isInstructorFigureEnabled|isIRLaserOn|isKeyActive|isKindOf|isLaserOn|isLightOn|isLocalized|isManualFire|isMarkedForCollection|isMultiplayer|isMultiplayerSolo|isNil|isNull|isNumber|isObjectHidden|isObjectRTD|isOnRoad|isPipEnabled|isPlayer|isRealTime|isRemoteExecuted|isRemoteExecutedJIP|isServer|isShowing3DIcons|isSimpleObject|isSprintAllowed|isStaminaEnabled|isSteamMission|isStreamFriendlyUIEnabled|isStressDamageEnabled|isText|isTouchingGround|isTurnedOut|isTutHintsEnabled|isUAVConnectable|isUAVConnected|isUIContext|isUniformAllowed|isVehicleCargo|isVehicleRadarOn|isVehicleSensorEnabled|isWalking|isWeaponDeployed|isWeaponRested|itemCargo|items|itemsWithMagazines|join|joinAs|joinAsSilent|joinSilent|joinString|kbAddDatabase|kbAddDatabaseTargets|kbAddTopic|kbHasTopic|kbReact|kbRemoveTopic|kbTell|kbWasSaid|keyImage|keyName|knowsAbout|land|landAt|landResult|language|laserTarget|lbAdd|lbClear|lbColor|lbColorRight|lbCurSel|lbData|lbDelete|lbIsSelected|lbPicture|lbPictureRight|lbSelection|lbSetColor|lbSetColorRight|lbSetCurSel|lbSetData|lbSetPicture|lbSetPictureColor|lbSetPictureColorDisabled|lbSetPictureColorSelected|lbSetPictureRight|lbSetPictureRightColor|lbSetPictureRightColorDisabled|lbSetPictureRightColorSelected|lbSetSelectColor|lbSetSelectColorRight|lbSetSelected|lbSetText|lbSetTextRight|lbSetTooltip|lbSetValue|lbSize|lbSort|lbSortByValue|lbText|lbTextRight|lbValue|leader|leaderboardDeInit|leaderboardGetRows|leaderboardInit|leaderboardRequestRowsFriends|leaderboardRequestRowsGlobal|leaderboardRequestRowsGlobalAroundUser|leaderboardsRequestUploadScore|leaderboardsRequestUploadScoreKeepBest|leaderboardState|leaveVehicle|libraryCredits|libraryDisclaimers|lifeState|lightAttachObject|lightDetachObject|lightIsOn|lightnings|limitSpeed|linearConversion|lineBreak|lineIntersects|lineIntersectsObjs|lineIntersectsSurfaces|lineIntersectsWith|linkItem|list|listObjects|listRemoteTargets|listVehicleSensors|ln|lnbAddArray|lnbAddColumn|lnbAddRow|lnbClear|lnbColor|lnbColorRight|lnbCurSelRow|lnbData|lnbDeleteColumn|lnbDeleteRow|lnbGetColumnsPosition|lnbPicture|lnbPictureRight|lnbSetColor|lnbSetColorRight|lnbSetColumnsPos|lnbSetCurSelRow|lnbSetData|lnbSetPicture|lnbSetPictureColor|lnbSetPictureColorRight|lnbSetPictureColorSelected|lnbSetPictureColorSelectedRight|lnbSetPictureRight|lnbSetText|lnbSetTextRight|lnbSetValue|lnbSize|lnbSort|lnbSortByValue|lnbText|lnbTextRight|lnbValue|load|loadAbs|loadBackpack|loadFile|loadGame|loadIdentity|loadMagazine|loadOverlay|loadStatus|loadUniform|loadVest|local|localize|locationNull|locationPosition|lock|lockCameraTo|lockCargo|lockDriver|locked|lockedCargo|lockedDriver|lockedTurret|lockIdentity|lockTurret|lockWP|log|logEntities|logNetwork|logNetworkTerminate|lookAt|lookAtPos|magazineCargo|magazines|magazinesAllTurrets|magazinesAmmo|magazinesAmmoCargo|magazinesAmmoFull|magazinesDetail|magazinesDetailBackpack|magazinesDetailUniform|magazinesDetailVest|magazinesTurret|magazineTurretAmmo|mapAnimAdd|mapAnimClear|mapAnimCommit|mapAnimDone|mapCenterOnCamera|mapGridPosition|markAsFinishedOnSteam|markerAlpha|markerBrush|markerColor|markerDir|markerPos|markerShape|markerSize|markerText|markerType|max|members|menuAction|menuAdd|menuChecked|menuClear|menuCollapse|menuData|menuDelete|menuEnable|menuEnabled|menuExpand|menuHover|menuPicture|menuSetAction|menuSetCheck|menuSetData|menuSetPicture|menuSetValue|menuShortcut|menuShortcutText|menuSize|menuSort|menuText|menuURL|menuValue|min|mineActive|mineDetectedBy|missionConfigFile|missionDifficulty|missionName|missionNamespace|missionStart|missionVersion|modelToWorld|modelToWorldVisual|modelToWorldVisualWorld|modelToWorldWorld|modParams|moonIntensity|moonPhase|morale|move|move3DENCamera|moveInAny|moveInCargo|moveInCommander|moveInDriver|moveInGunner|moveInTurret|moveObjectToEnd|moveOut|moveTime|moveTo|moveToCompleted|moveToFailed|musicVolume|name|nameSound|nearEntities|nearestBuilding|nearestLocation|nearestLocations|nearestLocationWithDubbing|nearestObject|nearestObjects|nearestTerrainObjects|nearObjects|nearObjectsReady|nearRoads|nearSupplies|nearTargets|needReload|netId|netObjNull|newOverlay|nextMenuItemIndex|nextWeatherChange|nMenuItems|numberOfEnginesRTD|numberToDate|objectCurators|objectFromNetId|objectParent|objNull|objStatus|onBriefingGear|onBriefingGroup|onBriefingNotes|onBriefingPlan|onBriefingTeamSwitch|onCommandModeChanged|onDoubleClick|onEachFrame|onGroupIconClick|onGroupIconOverEnter|onGroupIconOverLeave|onHCGroupSelectionChanged|onMapSingleClick|onPlayerConnected|onPlayerDisconnected|onPreloadFinished|onPreloadStarted|onShowNewObject|onTeamSwitch|openCuratorInterface|openDLCPage|openDSInterface|openMap|openSteamApp|openYoutubeVideo|opfor|orderGetIn|overcast|overcastForecast|owner|param|params|parseNumber|parseSimpleArray|parseText|parsingNamespace|particlesQuality|pi|pickWeaponPool|pitch|pixelGrid|pixelGridBase|pixelGridNoUIScale|pixelH|pixelW|playableSlotsNumber|playableUnits|playAction|playActionNow|player|playerRespawnTime|playerSide|playersNumber|playGesture|playMission|playMove|playMoveNow|playMusic|playScriptedMission|playSound|playSound3D|position|positionCameraToWorld|posScreenToWorld|posWorldToScreen|ppEffectAdjust|ppEffectCommit|ppEffectCommitted|ppEffectCreate|ppEffectDestroy|ppEffectEnable|ppEffectEnabled|ppEffectForceInNVG|precision|preloadCamera|preloadObject|preloadSound|preloadTitleObj|preloadTitleRsc|primaryWeapon|primaryWeaponItems|primaryWeaponMagazine|priority|processDiaryLink|processInitCommands|productVersion|profileName|profileNamespace|profileNameSteam|progressLoadingScreen|progressPosition|progressSetPosition|publicVariable|publicVariableClient|publicVariableServer|pushBack|pushBackUnique|putWeaponPool|queryItemsPool|queryMagazinePool|queryWeaponPool|rad|radioChannelAdd|radioChannelCreate|radioChannelRemove|radioChannelSetCallSign|radioChannelSetLabel|radioVolume|rain|rainbow|random|rank|rankId|rating|rectangular|registeredTasks|registerTask|reload|reloadEnabled|remoteControl|remoteExec|remoteExecCall|remoteExecutedOwner|remove3DENConnection|remove3DENEventHandler|remove3DENLayer|removeAction|removeAll3DENEventHandlers|removeAllActions|removeAllAssignedItems|removeAllContainers|removeAllCuratorAddons|removeAllCuratorCameraAreas|removeAllCuratorEditingAreas|removeAllEventHandlers|removeAllHandgunItems|removeAllItems|removeAllItemsWithMagazines|removeAllMissionEventHandlers|removeAllMPEventHandlers|removeAllMusicEventHandlers|removeAllOwnedMines|removeAllPrimaryWeaponItems|removeAllWeapons|removeBackpack|removeBackpackGlobal|removeCuratorAddons|removeCuratorCameraArea|removeCuratorEditableObjects|removeCuratorEditingArea|removeDrawIcon|removeDrawLinks|removeEventHandler|removeFromRemainsCollector|removeGoggles|removeGroupIcon|removeHandgunItem|removeHeadgear|removeItem|removeItemFromBackpack|removeItemFromUniform|removeItemFromVest|removeItems|removeMagazine|removeMagazineGlobal|removeMagazines|removeMagazinesTurret|removeMagazineTurret|removeMenuItem|removeMissionEventHandler|removeMPEventHandler|removeMusicEventHandler|removeOwnedMine|removePrimaryWeaponItem|removeSecondaryWeaponItem|removeSimpleTask|removeSwitchableUnit|removeTeamMember|removeUniform|removeVest|removeWeapon|removeWeaponAttachmentCargo|removeWeaponCargo|removeWeaponGlobal|removeWeaponTurret|reportRemoteTarget|requiredVersion|resetCamShake|resetSubgroupDirection|resistance|resize|resources|respawnVehicle|restartEditorCamera|reveal|revealMine|reverse|reversedMouseY|roadAt|roadsConnectedTo|roleDescription|ropeAttachedObjects|ropeAttachedTo|ropeAttachEnabled|ropeAttachTo|ropeCreate|ropeCut|ropeDestroy|ropeDetach|ropeEndPosition|ropeLength|ropes|ropeUnwind|ropeUnwound|rotorsForcesRTD|rotorsRpmRTD|round|runInitScript|safeZoneH|safeZoneW|safeZoneWAbs|safeZoneX|safeZoneXAbs|safeZoneY|save3DENInventory|saveGame|saveIdentity|saveJoysticks|saveOverlay|saveProfileNamespace|saveStatus|saveVar|savingEnabled|say|say2D|say3D|score|scoreSide|screenshot|screenToWorld|scriptDone|scriptName|scriptNull|scudState|secondaryWeapon|secondaryWeaponItems|secondaryWeaponMagazine|select|selectBestPlaces|selectDiarySubject|selectedEditorObjects|selectEditorObject|selectionNames|selectionPosition|selectLeader|selectMax|selectMin|selectNoPlayer|selectPlayer|selectRandom|selectRandomWeighted|selectWeapon|selectWeaponTurret|sendAUMessage|sendSimpleCommand|sendTask|sendTaskResult|sendUDPMessage|serverCommand|serverCommandAvailable|serverCommandExecutable|serverName|serverTime|set|set3DENAttribute|set3DENAttributes|set3DENGrid|set3DENIconsVisible|set3DENLayer|set3DENLinesVisible|set3DENLogicType|set3DENMissionAttribute|set3DENMissionAttributes|set3DENModelsVisible|set3DENObjectType|set3DENSelected|setAccTime|setActualCollectiveRTD|setAirplaneThrottle|setAirportSide|setAmmo|setAmmoCargo|setAmmoOnPylon|setAnimSpeedCoef|setAperture|setApertureNew|setArmoryPoints|setAttributes|setAutonomous|setBehaviour|setBleedingRemaining|setBrakesRTD|setCameraInterest|setCamShakeDefParams|setCamShakeParams|setCamUseTI|setCaptive|setCenterOfMass|setCollisionLight|setCombatMode|setCompassOscillation|setConvoySeparation|setCuratorCameraAreaCeiling|setCuratorCoef|setCuratorEditingAreaType|setCuratorWaypointCost|setCurrentChannel|setCurrentTask|setCurrentWaypoint|setCustomAimCoef|setCustomWeightRTD|setDamage|setDammage|setDate|setDebriefingText|setDefaultCamera|setDestination|setDetailMapBlendPars|setDir|setDirection|setDrawIcon|setDriveOnPath|setDropInterval|setDynamicSimulationDistance|setDynamicSimulationDistanceCoef|setEditorMode|setEditorObjectScope|setEffectCondition|setEngineRpmRTD|setFace|setFaceAnimation|setFatigue|setFeatureType|setFlagAnimationPhase|setFlagOwner|setFlagSide|setFlagTexture|setFog|setForceGeneratorRTD|setFormation|setFormationTask|setFormDir|setFriend|setFromEditor|setFSMVariable|setFuel|setFuelCargo|setGroupIcon|setGroupIconParams|setGroupIconsSelectable|setGroupIconsVisible|setGroupId|setGroupIdGlobal|setGroupOwner|setGusts|setHideBehind|setHit|setHitIndex|setHitPointDamage|setHorizonParallaxCoef|setHUDMovementLevels|setIdentity|setImportance|setInfoPanel|setLeader|setLightAmbient|setLightAttenuation|setLightBrightness|setLightColor|setLightDayLight|setLightFlareMaxDistance|setLightFlareSize|setLightIntensity|setLightnings|setLightUseFlare|setLocalWindParams|setMagazineTurretAmmo|setMarkerAlpha|setMarkerAlphaLocal|setMarkerBrush|setMarkerBrushLocal|setMarkerColor|setMarkerColorLocal|setMarkerDir|setMarkerDirLocal|setMarkerPos|setMarkerPosLocal|setMarkerShape|setMarkerShapeLocal|setMarkerSize|setMarkerSizeLocal|setMarkerText|setMarkerTextLocal|setMarkerType|setMarkerTypeLocal|setMass|setMimic|setMousePosition|setMusicEffect|setMusicEventHandler|setName|setNameSound|setObjectArguments|setObjectMaterial|setObjectMaterialGlobal|setObjectProxy|setObjectTexture|setObjectTextureGlobal|setObjectViewDistance|setOvercast|setOwner|setOxygenRemaining|setParticleCircle|setParticleClass|setParticleFire|setParticleParams|setParticleRandom|setPilotCameraDirection|setPilotCameraRotation|setPilotCameraTarget|setPilotLight|setPiPEffect|setPitch|setPlateNumber|setPlayable|setPlayerRespawnTime|setPos|setPosASL|setPosASL2|setPosASLW|setPosATL|setPosition|setPosWorld|setPylonLoadOut|setPylonsPriority|setRadioMsg|setRain|setRainbow|setRandomLip|setRank|setRectangular|setRepairCargo|setRotorBrakeRTD|setShadowDistance|setShotParents|setSide|setSimpleTaskAlwaysVisible|setSimpleTaskCustomData|setSimpleTaskDescription|setSimpleTaskDestination|setSimpleTaskTarget|setSimpleTaskType|setSimulWeatherLayers|setSize|setSkill|setSlingLoad|setSoundEffect|setSpeaker|setSpeech|setSpeedMode|setStamina|setStaminaScheme|setStatValue|setSuppression|setSystemOfUnits|setTargetAge|setTaskMarkerOffset|setTaskResult|setTaskState|setTerrainGrid|setText|setTimeMultiplier|setTitleEffect|setToneMapping|setToneMappingParams|setTrafficDensity|setTrafficDistance|setTrafficGap|setTrafficSpeed|setTriggerActivation|setTriggerArea|setTriggerStatements|setTriggerText|setTriggerTimeout|setTriggerType|setType|setUnconscious|setUnitAbility|setUnitLoadout|setUnitPos|setUnitPosWeak|setUnitRank|setUnitRecoilCoefficient|setUnitTrait|setUnloadInCombat|setUserActionText|setUserMFDText|setUserMFDValue|setVariable|setVectorDir|setVectorDirAndUp|setVectorUp|setVehicleAmmo|setVehicleAmmoDef|setVehicleArmor|setVehicleCargo|setVehicleId|setVehicleInit|setVehicleLock|setVehiclePosition|setVehicleRadar|setVehicleReceiveRemoteTargets|setVehicleReportOwnPosition|setVehicleReportRemoteTargets|setVehicleTIPars|setVehicleVarName|setVelocity|setVelocityModelSpace|setVelocityTransformation|setViewDistance|setVisibleIfTreeCollapsed|setWantedRpmRTD|setWaves|setWaypointBehaviour|setWaypointCombatMode|setWaypointCompletionRadius|setWaypointDescription|setWaypointForceBehaviour|setWaypointFormation|setWaypointHousePosition|setWaypointLoiterRadius|setWaypointLoiterType|setWaypointName|setWaypointPosition|setWaypointScript|setWaypointSpeed|setWaypointStatements|setWaypointTimeout|setWaypointType|setWaypointVisible|setWeaponReloadingTime|setWind|setWindDir|setWindForce|setWindStr|setWingForceScaleRTD|setWPPos|show3DIcons|showChat|showCinemaBorder|showCommandingMenu|showCompass|showCuratorCompass|showGPS|showHUD|showLegend|showMap|shownArtilleryComputer|shownChat|shownCompass|shownCuratorCompass|showNewEditorObject|shownGPS|shownHUD|shownMap|shownPad|shownRadio|shownScoretable|shownUAVFeed|shownWarrant|shownWatch|showPad|showRadio|showScoretable|showSubtitles|showUAVFeed|showWarrant|showWatch|showWaypoint|showWaypoints|side|sideAmbientLife|sideChat|sideEmpty|sideEnemy|sideFriendly|sideLogic|sideRadio|sideUnknown|simpleTasks|simulationEnabled|simulCloudDensity|simulCloudOcclusion|simulInClouds|simulWeatherSync|sin|size|sizeOf|skill|skillFinal|skipTime|sleep|sliderPosition|sliderRange|sliderSetPosition|sliderSetRange|sliderSetSpeed|sliderSpeed|slingLoadAssistantShown|soldierMagazines|someAmmo|sort|soundVolume|speaker|speed|speedMode|splitString|sqrt|squadParams|stance|startLoadingScreen|stop|stopEngineRTD|stopped|str|sunOrMoon|supportInfo|suppressFor|surfaceIsWater|surfaceNormal|surfaceType|swimInDepth|switchableUnits|switchAction|switchCamera|switchGesture|switchLight|switchMove|synchronizedObjects|synchronizedTriggers|synchronizedWaypoints|synchronizeObjectsAdd|synchronizeObjectsRemove|synchronizeTrigger|synchronizeWaypoint|systemChat|systemOfUnits|tan|targetKnowledge|targets|targetsAggregate|targetsQuery|taskAlwaysVisible|taskChildren|taskCompleted|taskCustomData|taskDescription|taskDestination|taskHint|taskMarkerOffset|taskNull|taskParent|taskResult|taskState|taskType|teamMember|teamMemberNull|teamName|teams|teamSwitch|teamSwitchEnabled|teamType|terminate|terrainIntersect|terrainIntersectASL|terrainIntersectAtASL|text|textLog|textLogFormat|tg|time|timeMultiplier|titleCut|titleFadeOut|titleObj|titleRsc|titleText|toArray|toFixed|toLower|toString|toUpper|triggerActivated|triggerActivation|triggerArea|triggerAttachedVehicle|triggerAttachObject|triggerAttachVehicle|triggerDynamicSimulation|triggerStatements|triggerText|triggerTimeout|triggerTimeoutCurrent|triggerType|turretLocal|turretOwner|turretUnit|tvAdd|tvClear|tvCollapse|tvCollapseAll|tvCount|tvCurSel|tvData|tvDelete|tvExpand|tvExpandAll|tvPicture|tvPictureRight|tvSetColor|tvSetCurSel|tvSetData|tvSetPicture|tvSetPictureColor|tvSetPictureColorDisabled|tvSetPictureColorSelected|tvSetPictureRight|tvSetPictureRightColor|tvSetPictureRightColorDisabled|tvSetPictureRightColorSelected|tvSetSelectColor|tvSetText|tvSetTooltip|tvSetValue|tvSort|tvSortByValue|tvText|tvTooltip|tvValue|type|typeName|typeOf|UAVControl|uiNamespace|uiSleep|unassignCurator|unassignItem|unassignTeam|unassignVehicle|underwater|uniform|uniformContainer|uniformItems|uniformMagazines|unitAddons|unitAimPosition|unitAimPositionVisual|unitBackpack|unitIsUAV|unitPos|unitReady|unitRecoilCoefficient|units|unitsBelowHeight|unlinkItem|unlockAchievement|unregisterTask|updateDrawIcon|updateMenuItem|updateObjectTree|useAIOperMapObstructionTest|useAISteeringComponent|useAudioTimeForMoves|userInputDisabled|vectorAdd|vectorCos|vectorCrossProduct|vectorDiff|vectorDir|vectorDirVisual|vectorDistance|vectorDistanceSqr|vectorDotProduct|vectorFromTo|vectorMagnitude|vectorMagnitudeSqr|vectorModelToWorld|vectorModelToWorldVisual|vectorMultiply|vectorNormalized|vectorUp|vectorUpVisual|vectorWorldToModel|vectorWorldToModelVisual|vehicle|vehicleCargoEnabled|vehicleChat|vehicleRadio|vehicleReceiveRemoteTargets|vehicleReportOwnPosition|vehicleReportRemoteTargets|vehicles|vehicleVarName|velocity|velocityModelSpace|verifySignature|vest|vestContainer|vestItems|vestMagazines|viewDistance|visibleCompass|visibleGPS|visibleMap|visiblePosition|visiblePositionASL|visibleScoretable|visibleWatch|waitUntil|waves|waypointAttachedObject|waypointAttachedVehicle|waypointAttachObject|waypointAttachVehicle|waypointBehaviour|waypointCombatMode|waypointCompletionRadius|waypointDescription|waypointForceBehaviour|waypointFormation|waypointHousePosition|waypointLoiterRadius|waypointLoiterType|waypointName|waypointPosition|waypoints|waypointScript|waypointsEnabledUAV|waypointShow|waypointSpeed|waypointStatements|waypointTimeout|waypointTimeoutCurrent|waypointType|waypointVisible|weaponAccessories|weaponAccessoriesCargo|weaponCargo|weaponDirection|weaponInertia|weaponLowered|weapons|weaponsItems|weaponsItemsCargo|weaponState|weaponsTurret|weightRTD|west|WFSideText|wind|windDir|windRTD|windStr|wingsForcesRTD|worldName|worldSize|worldToModel|worldToModelVisual|worldToScreen)\b/i,number:/(?:\$|\b0x)[\da-f]+\b|(?:\B\.\d+|\b\d+(?:\.\d+)?)(?:e[+-]?\d+)?\b/i,operator:/##|>>|&&|\|\||[!=<>]=?|[-+*/%#^]|\b(?:and|mod|not|or)\b/i,"magic-variable":{pattern:/\b(?:this|thisList|thisTrigger|_exception|_fnc_scriptName|_fnc_scriptNameParent|_forEachIndex|_this|_thisEventHandler|_thisFSM|_thisScript|_x)\b/i,alias:"keyword"},constant:/\bDIK(?:_[a-z\d]+)+\b/i}),e.languages.insertBefore("sqf","string",{macro:{pattern:/(^[ \t]*)#[a-z](?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{directive:{pattern:/#[a-z]+\b/i,alias:"keyword"},comment:e.languages.sqf.comment}}}),delete e.languages.sqf["class-name"]}e.exports=t,t.displayName="sqf",t.aliases=[]},7740:function(e){"use strict";function t(e){e.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}}e.exports=t,t.displayName="sql",t.aliases=[]},4038:function(e){"use strict";function t(e){e.languages.squirrel=e.languages.extend("clike",{comment:[e.languages.clike.comment[0],{pattern:/(^|[^\\:])(?:\/\/|#).*/,lookbehind:!0,greedy:!0}],string:{pattern:/(^|[^\\"'@])(?:@"(?:[^"]|"")*"(?!")|"(?:[^\\\r\n"]|\\.)*")/,lookbehind:!0,greedy:!0},"class-name":{pattern:/(\b(?:class|enum|extends|instanceof)\s+)\w+(?:\.\w+)*/,lookbehind:!0,inside:{punctuation:/\./}},keyword:/\b(?:__FILE__|__LINE__|base|break|case|catch|class|clone|const|constructor|continue|default|delete|else|enum|extends|for|foreach|function|if|in|instanceof|local|null|resume|return|static|switch|this|throw|try|typeof|while|yield)\b/,number:/\b(?:0x[0-9a-fA-F]+|\d+(?:\.(?:\d+|[eE][+-]?\d+))?)\b/,operator:/\+\+|--|<=>|<[-<]|>>>?|&&?|\|\|?|[-+*/%!=<>]=?|[~^]|::?/,punctuation:/[(){}\[\],;.]/}),e.languages.insertBefore("squirrel","string",{char:{pattern:/(^|[^\\"'])'(?:[^\\']|\\(?:[xuU][0-9a-fA-F]{0,8}|[\s\S]))'/,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("squirrel","operator",{"attribute-punctuation":{pattern:/<\/|\/>/,alias:"important"},lambda:{pattern:/@(?=\()/,alias:"operator"}})}e.exports=t,t.displayName="squirrel",t.aliases=[]},4585:function(e){"use strict";function t(e){!function(e){var t=/\b(?:algebra_solver|algebra_solver_newton|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect|ode_(?:adams|bdf|ckrk|rk45)(?:_tol)?|ode_adjoint_tol_ctl|reduce_sum|reduce_sum_static)\b/;e.languages.stan={comment:/\/\/.*|\/\*[\s\S]*?\*\/|#(?!include).*/,string:{pattern:/"[\x20\x21\x23-\x5B\x5D-\x7E]*"/,greedy:!0},directive:{pattern:/^([ \t]*)#include\b.*/m,lookbehind:!0,alias:"property"},"function-arg":{pattern:RegExp("("+t.source+/\s*\(\s*/.source+")"+/[a-zA-Z]\w*/.source),lookbehind:!0,alias:"function"},constraint:{pattern:/(\b(?:int|matrix|real|row_vector|vector)\s*)<[^<>]*>/,lookbehind:!0,inside:{expression:{pattern:/(=\s*)\S(?:\S|\s+(?!\s))*?(?=\s*(?:>$|,\s*\w+\s*=))/,lookbehind:!0,inside:null},property:/\b[a-z]\w*(?=\s*=)/i,operator:/=/,punctuation:/^<|>$|,/}},keyword:[{pattern:/\bdata(?=\s*\{)|\b(?:functions|generated|model|parameters|quantities|transformed)\b/,alias:"program-block"},/\b(?:array|break|cholesky_factor_corr|cholesky_factor_cov|complex|continue|corr_matrix|cov_matrix|data|else|for|if|in|increment_log_prob|int|matrix|ordered|positive_ordered|print|real|reject|return|row_vector|simplex|target|unit_vector|vector|void|while)\b/,t],function:/\b[a-z]\w*(?=\s*\()/i,number:/(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:E[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,boolean:/\b(?:false|true)\b/,operator:/<-|\.[*/]=?|\|\|?|&&|[!=<>+\-*/]=?|['^%~?:]/,punctuation:/[()\[\]{},;]/},e.languages.stan.constraint.inside.expression.inside=e.languages.stan}(e)}e.exports=t,t.displayName="stan",t.aliases=[]},692:function(e){"use strict";function t(e){!function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(e)}e.exports=t,t.displayName="stylus",t.aliases=[]},3171:function(e){"use strict";function t(e){e.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},e.languages.swift["string-literal"].forEach((function(t){t.inside.interpolation.inside=e.languages.swift}))}e.exports=t,t.displayName="swift",t.aliases=[]},2257:function(e){"use strict";function t(e){!function(e){var t={pattern:/^[;#].*/m,greedy:!0},n=/"(?:[^\r\n"\\]|\\(?:[^\r]|\r\n?))*"(?!\S)/.source;e.languages.systemd={comment:t,section:{pattern:/^\[[^\n\r\[\]]*\](?=[ \t]*$)/m,greedy:!0,inside:{punctuation:/^\[|\]$/,"section-name":{pattern:/[\s\S]+/,alias:"selector"}}},key:{pattern:/^[^\s=]+(?=[ \t]*=)/m,greedy:!0,alias:"attr-name"},value:{pattern:RegExp(/(=[ \t]*(?!\s))/.source+"(?:"+n+'|(?=[^"\r\n]))(?:'+/[^\s\\]/.source+'|[ \t]+(?:(?![ \t"])|'+n+")|"+/\\[\r\n]+(?:[#;].*[\r\n]+)*(?![#;])/.source+")*"),lookbehind:!0,greedy:!0,alias:"attr-value",inside:{comment:t,quoted:{pattern:RegExp(/(^|\s)/.source+n),lookbehind:!0,greedy:!0},punctuation:/\\$/m,boolean:{pattern:/^(?:false|no|off|on|true|yes)$/,greedy:!0}}},punctuation:/=/}}(e)}e.exports=t,t.displayName="systemd",t.aliases=[]},5559:function(e,t,n){"use strict";var r=n(9547),a=n(3281);function i(e){e.register(r),e.register(a),e.languages.t4=e.languages["t4-cs"]=e.languages["t4-templating"].createT4("csharp")}e.exports=i,i.displayName="t4Cs",i.aliases=[]},9547:function(e){"use strict";function t(e){!function(e){function t(e,t,n){return{pattern:RegExp("<#"+e+"[\\s\\S]*?#>"),alias:"block",inside:{delimiter:{pattern:RegExp("^<#"+e+"|#>$"),alias:"important"},content:{pattern:/[\s\S]+/,inside:t,alias:n}}}}e.languages["t4-templating"]=Object.defineProperty({},"createT4",{value:function(n){var r=e.languages[n],a="language-"+n;return{block:{pattern:/<#[\s\S]+?#>/,inside:{directive:t("@",{"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/,inside:{punctuation:/^=|^["']|["']$/}},keyword:/\b\w+(?=\s)/,"attr-name":/\b\w+/}),expression:t("=",r,a),"class-feature":t("\\+",r,a),standard:t("",r,a)}}}}})}(e)}e.exports=t,t.displayName="t4Templating",t.aliases=[]},9338:function(e,t,n){"use strict";var r=n(9547),a=n(4941);function i(e){e.register(r),e.register(a),e.languages["t4-vb"]=e.languages["t4-templating"].createT4("vbnet")}e.exports=i,i.displayName="t4Vb",i.aliases=[]},5515:function(e,t,n){"use strict";var r=n(5133);function a(e){e.register(r),e.languages.tap={fail:/not ok[^#{\n\r]*/,pass:/ok[^#{\n\r]*/,pragma:/pragma [+-][a-z]+/,bailout:/bail out!.*/i,version:/TAP version \d+/i,plan:/\b\d+\.\.\d+(?: +#.*)?/,subtest:{pattern:/# Subtest(?:: .*)?/,greedy:!0},punctuation:/[{}]/,directive:/#.*/,yamlish:{pattern:/(^[ \t]*)---[\s\S]*?[\r\n][ \t]*\.\.\.$/m,lookbehind:!0,inside:e.languages.yaml,alias:"language-yaml"}}}e.exports=a,a.displayName="tap",a.aliases=[]},4207:function(e){"use strict";function t(e){e.languages.tcl={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:{pattern:/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"/,greedy:!0},variable:[{pattern:/(\$)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/,lookbehind:!0},{pattern:/(\$)\{[^}]+\}/,lookbehind:!0},{pattern:/(^[\t ]*set[ \t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/m,lookbehind:!0}],function:{pattern:/(^[\t ]*proc[ \t]+)\S+/m,lookbehind:!0},builtin:[{pattern:/(^[\t ]*)(?:break|class|continue|error|eval|exit|for|foreach|if|proc|return|switch|while)\b/m,lookbehind:!0},/\b(?:else|elseif)\b/],scope:{pattern:/(^[\t ]*)(?:global|upvar|variable)\b/m,lookbehind:!0,alias:"constant"},keyword:{pattern:/(^[\t ]*|\[)(?:Safe_Base|Tcl|after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|scan|seek|set|socket|source|split|string|subst|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|test|vars|wordBreak(?:After|Before))|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\b/m,lookbehind:!0},operator:/!=?|\*\*?|==|&&?|\|\|?|<[=<]?|>[=>]?|[-+~\/%?^]|\b(?:eq|in|ne|ni)\b/,punctuation:/[{}()\[\]]/}}e.exports=t,t.displayName="tcl",t.aliases=[]},7492:function(e){"use strict";function t(e){!function(e){var t=/\([^|()\n]+\)|\[[^\]\n]+\]|\{[^}\n]+\}/.source,n=/\)|\((?![^|()\n]+\))/.source;function r(e,r){return RegExp(e.replace(/<MOD>/g,(function(){return"(?:"+t+")"})).replace(/<PAR>/g,(function(){return"(?:"+n+")"})),r||"")}var a={css:{pattern:/\{[^{}]+\}/,inside:{rest:e.languages.css}},"class-id":{pattern:/(\()[^()]+(?=\))/,lookbehind:!0,alias:"attr-value"},lang:{pattern:/(\[)[^\[\]]+(?=\])/,lookbehind:!0,alias:"attr-value"},punctuation:/[\\\/]\d+|\S/},i=e.languages.textile=e.languages.extend("markup",{phrase:{pattern:/(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,lookbehind:!0,inside:{"block-tag":{pattern:r(/^[a-z]\w*(?:<MOD>|<PAR>|[<>=])*\./.source),inside:{modifier:{pattern:r(/(^[a-z]\w*)(?:<MOD>|<PAR>|[<>=])+(?=\.)/.source),lookbehind:!0,inside:a},tag:/^[a-z]\w*/,punctuation:/\.$/}},list:{pattern:r(/^[*#]+<MOD>*\s+\S.*/.source,"m"),inside:{modifier:{pattern:r(/(^[*#]+)<MOD>+/.source),lookbehind:!0,inside:a},punctuation:/^[*#]+/}},table:{pattern:r(/^(?:(?:<MOD>|<PAR>|[<>=^~])+\.\s*)?(?:\|(?:(?:<MOD>|<PAR>|[<>=^~_]|[\\/]\d+)+\.|(?!(?:<MOD>|<PAR>|[<>=^~_]|[\\/]\d+)+\.))[^|]*)+\|/.source,"m"),inside:{modifier:{pattern:r(/(^|\|(?:\r?\n|\r)?)(?:<MOD>|<PAR>|[<>=^~_]|[\\/]\d+)+(?=\.)/.source),lookbehind:!0,inside:a},punctuation:/\||^\./}},inline:{pattern:r(/(^|[^a-zA-Z\d])(\*\*|__|\?\?|[*_%@+\-^~])<MOD>*.+?\2(?![a-zA-Z\d])/.source),lookbehind:!0,inside:{bold:{pattern:r(/(^(\*\*?)<MOD>*).+?(?=\2)/.source),lookbehind:!0},italic:{pattern:r(/(^(__?)<MOD>*).+?(?=\2)/.source),lookbehind:!0},cite:{pattern:r(/(^\?\?<MOD>*).+?(?=\?\?)/.source),lookbehind:!0,alias:"string"},code:{pattern:r(/(^@<MOD>*).+?(?=@)/.source),lookbehind:!0,alias:"keyword"},inserted:{pattern:r(/(^\+<MOD>*).+?(?=\+)/.source),lookbehind:!0},deleted:{pattern:r(/(^-<MOD>*).+?(?=-)/.source),lookbehind:!0},span:{pattern:r(/(^%<MOD>*).+?(?=%)/.source),lookbehind:!0},modifier:{pattern:r(/(^\*\*|__|\?\?|[*_%@+\-^~])<MOD>+/.source),lookbehind:!0,inside:a},punctuation:/[*_%?@+\-^~]+/}},"link-ref":{pattern:/^\[[^\]]+\]\S+$/m,inside:{string:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0},url:{pattern:/(^\])\S+$/,lookbehind:!0},punctuation:/[\[\]]/}},link:{pattern:r(/"<MOD>*[^"]+":.+?(?=[^\w/]?(?:\s|$))/.source),inside:{text:{pattern:r(/(^"<MOD>*)[^"]+(?=")/.source),lookbehind:!0},modifier:{pattern:r(/(^")<MOD>+/.source),lookbehind:!0,inside:a},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[":]/}},image:{pattern:r(/!(?:<MOD>|<PAR>|[<>=])*(?![<>=])[^!\s()]+(?:\([^)]+\))?!(?::.+?(?=[^\w/]?(?:\s|$)))?/.source),inside:{source:{pattern:r(/(^!(?:<MOD>|<PAR>|[<>=])*)(?![<>=])[^!\s()]+(?:\([^)]+\))?(?=!)/.source),lookbehind:!0,alias:"url"},modifier:{pattern:r(/(^!)(?:<MOD>|<PAR>|[<>=])+/.source),lookbehind:!0,inside:a},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[!:]/}},footnote:{pattern:/\b\[\d+\]/,alias:"comment",inside:{punctuation:/\[|\]/}},acronym:{pattern:/\b[A-Z\d]+\([^)]+\)/,inside:{comment:{pattern:/(\()[^()]+(?=\))/,lookbehind:!0},punctuation:/[()]/}},mark:{pattern:/\b\((?:C|R|TM)\)/,alias:"comment",inside:{punctuation:/[()]/}}}}}),o=i.phrase.inside,s={inline:o.inline,link:o.link,image:o.image,footnote:o.footnote,acronym:o.acronym,mark:o.mark};i.tag.pattern=/<\/?(?!\d)[a-z0-9]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i;var l=o.inline.inside;l.bold.inside=s,l.italic.inside=s,l.inserted.inside=s,l.deleted.inside=s,l.span.inside=s;var c=o.table.inside;c.inline=s.inline,c.link=s.link,c.image=s.image,c.footnote=s.footnote,c.acronym=s.acronym,c.mark=s.mark}(e)}e.exports=t,t.displayName="textile",t.aliases=[]},6453:function(e){"use strict";function t(e){!function(e){var t=/(?:[\w-]+|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*")/.source;function n(e){return e.replace(/__/g,(function(){return t}))}e.languages.toml={comment:{pattern:/#.*/,greedy:!0},table:{pattern:RegExp(n(/(^[\t ]*\[\s*(?:\[\s*)?)__(?:\s*\.\s*__)*(?=\s*\])/.source),"m"),lookbehind:!0,greedy:!0,alias:"class-name"},key:{pattern:RegExp(n(/(^[\t ]*|[{,]\s*)__(?:\s*\.\s*__)*(?=\s*=)/.source),"m"),lookbehind:!0,greedy:!0,alias:"property"},string:{pattern:/"""(?:\\[\s\S]|[^\\])*?"""|'''[\s\S]*?'''|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},date:[{pattern:/\b\d{4}-\d{2}-\d{2}(?:[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?)?\b/i,alias:"number"},{pattern:/\b\d{2}:\d{2}:\d{2}(?:\.\d+)?\b/,alias:"number"}],number:/(?:\b0(?:x[\da-zA-Z]+(?:_[\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\b|[-+]?\b\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?\b|[-+]?\b(?:inf|nan)\b/,boolean:/\b(?:false|true)\b/,punctuation:/[.,=[\]{}]/}}(e)}e.exports=t,t.displayName="toml",t.aliases=[]},6686:function(e){"use strict";function t(e){!function(e){e.languages.tremor={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},"interpolated-string":null,extractor:{pattern:/\b[a-z_]\w*\|(?:[^\r\n\\|]|\\(?:\r\n|[\s\S]))*\|/i,greedy:!0,inside:{regex:{pattern:/(^re)\|[\s\S]+/,lookbehind:!0},function:/^\w+/,value:/\|[\s\S]+/}},identifier:{pattern:/`[^`]*`/,greedy:!0},function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())\b/,keyword:/\b(?:args|as|by|case|config|connect|connector|const|copy|create|default|define|deploy|drop|each|emit|end|erase|event|flow|fn|for|from|group|having|insert|into|intrinsic|let|links|match|merge|mod|move|of|operator|patch|pipeline|recur|script|select|set|sliding|state|stream|to|tumbling|update|use|when|where|window|with)\b/,boolean:/\b(?:false|null|true)\b/i,number:/\b(?:0b[01_]*|0x[0-9a-fA-F_]*|\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee][+-]?[\d_]+)?)\b/,"pattern-punctuation":{pattern:/%(?=[({[])/,alias:"punctuation"},operator:/[-+*\/%~!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?>?=?|(?:absent|and|not|or|present|xor)\b/,punctuation:/::|[;\[\]()\{\},.:]/};var t=/#\{(?:[^"{}]|\{[^{}]*\}|"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*")*\}/.source;e.languages.tremor["interpolated-string"]={pattern:RegExp(/(^|[^\\])/.source+'(?:"""(?:'+/[^"\\#]|\\[\s\S]|"(?!"")|#(?!\{)/.source+"|"+t+')*"""|"(?:'+/[^"\\\r\n#]|\\(?:\r\n|[\s\S])|#(?!\{)/.source+"|"+t+')*")'),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:RegExp(t),inside:{punctuation:/^#\{|\}$/,expression:{pattern:/[\s\S]+/,inside:e.languages.tremor}}},string:/[\s\S]+/}},e.languages.troy=e.languages.tremor,e.languages.trickle=e.languages.tremor}(e)}e.exports=t,t.displayName="tremor",t.aliases=[]},7369:function(e,t,n){"use strict";var r=n(765),a=n(9669);function i(e){e.register(r),e.register(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(e)}e.exports=i,i.displayName="tsx",i.aliases=[]},7191:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),function(e){e.languages.tt2=e.languages.extend("clike",{comment:/#.*|\[%#[\s\S]*?%\]/,keyword:/\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|SWITCH|TAGS|THROW|TRY|UNLESS|USE|WHILE|WRAPPER)\b/,punctuation:/[[\]{},()]/}),e.languages.insertBefore("tt2","number",{operator:/=[>=]?|!=?|<=?|>=?|&&|\|\|?|\b(?:and|not|or)\b/,variable:{pattern:/\b[a-z]\w*(?:\s*\.\s*(?:\d+|\$?[a-z]\w*))*\b/i}}),e.languages.insertBefore("tt2","keyword",{delimiter:{pattern:/^(?:\[%|%%)-?|-?%\]$/,alias:"punctuation"}}),e.languages.insertBefore("tt2","string",{"single-quoted-string":{pattern:/'[^\\']*(?:\\[\s\S][^\\']*)*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"[^\\"]*(?:\\[\s\S][^\\"]*)*"/,greedy:!0,alias:"string",inside:{variable:{pattern:/\$(?:[a-z]\w*(?:\.(?:\d+|\$?[a-z]\w*))*)/i}}}}),delete e.languages.tt2.string,e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"tt2",/\[%[\s\S]+?%\]/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"tt2")}))}(e)}e.exports=a,a.displayName="tt2",a.aliases=[]},3089:function(e){"use strict";function t(e){e.languages.turtle={comment:{pattern:/#.*/,greedy:!0},"multiline-string":{pattern:/"""(?:(?:""?)?(?:[^"\\]|\\.))*"""|'''(?:(?:''?)?(?:[^'\\]|\\.))*'''/,greedy:!0,alias:"string",inside:{comment:/#.*/}},string:{pattern:/"(?:[^\\"\r\n]|\\.)*"|'(?:[^\\'\r\n]|\\.)*'/,greedy:!0},url:{pattern:/<(?:[^\x00-\x20<>"{}|^`\\]|\\(?:u[\da-fA-F]{4}|U[\da-fA-F]{8}))*>/,greedy:!0,inside:{punctuation:/[<>]/}},function:{pattern:/(?:(?![-.\d\xB7])[-.\w\xB7\xC0-\uFFFD]+)?:(?:(?![-.])(?:[-.:\w\xC0-\uFFFD]|%[\da-f]{2}|\\.)+)?/i,inside:{"local-name":{pattern:/([^:]*:)[\s\S]+/,lookbehind:!0},prefix:{pattern:/[\s\S]+/,inside:{punctuation:/:/}}}},number:/[+-]?\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,punctuation:/[{}.,;()[\]]|\^\^/,boolean:/\b(?:false|true)\b/,keyword:[/(?:\ba|@prefix|@base)\b|=/,/\b(?:base|graph|prefix)\b/i],tag:{pattern:/@[a-z]+(?:-[a-z\d]+)*/i,inside:{punctuation:/@/}}},e.languages.trig=e.languages.turtle}e.exports=t,t.displayName="turtle",t.aliases=[]},4411:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),e.languages.twig={comment:/^\{#[\s\S]*?#\}$/,"tag-name":{pattern:/(^\{%-?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%]-?|-?[%}]\}$/,alias:"punctuation"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/}},keyword:/\b(?:even|if|odd)\b/,boolean:/\b(?:false|null|true)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],punctuation:/[()\[\]{}:.,]/},e.hooks.add("before-tokenize",(function(t){if("twig"===t.language){e.languages["markup-templating"].buildPlaceholders(t,"twig",/\{(?:#[\s\S]*?#|%[\s\S]*?%|\{[\s\S]*?\})\}/g)}})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"twig")}))}e.exports=a,a.displayName="twig",a.aliases=[]},9669:function(e){"use strict";function t(e){!function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(e)}e.exports=t,t.displayName="typescript",t.aliases=["ts"]},4773:function(e){"use strict";function t(e){!function(e){var t=/\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\b/;e.languages.typoscript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:= \t]|(?:^|[^= \t])[ \t]+)\/\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^"'])#.*/,lookbehind:!0,greedy:!0}],function:[{pattern:/<INCLUDE_TYPOSCRIPT:\s*source\s*=\s*(?:"[^"\r\n]*"|'[^'\r\n]*')\s*>/,inside:{string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,inside:{keyword:t}},keyword:{pattern:/INCLUDE_TYPOSCRIPT/}}},{pattern:/@import\s*(?:"[^"\r\n]*"|'[^'\r\n]*')/,inside:{string:/"[^"\r\n]*"|'[^'\r\n]*'/}}],string:{pattern:/^([^=]*=[< ]?)(?:(?!\]\n).)*/,lookbehind:!0,inside:{function:/\{\$.*\}/,keyword:t,number:/^\d+$/,punctuation:/[,|:]/}},keyword:t,number:{pattern:/\b\d+\s*[.{=]/,inside:{operator:/[.{=]/}},tag:{pattern:/\.?[-\w\\]+\.?/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:|]/,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/},e.languages.tsconfig=e.languages.typoscript}(e)}e.exports=t,t.displayName="typoscript",t.aliases=["tsconfig"]},3210:function(e){"use strict";function t(e){e.languages.unrealscript={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},category:{pattern:/(\b(?:(?:autoexpand|hide|show)categories|var)\s*\()[^()]+(?=\))/,lookbehind:!0,greedy:!0,alias:"property"},metadata:{pattern:/(\w\s*)<\s*\w+\s*=[^<>|=\r\n]+(?:\|\s*\w+\s*=[^<>|=\r\n]+)*>/,lookbehind:!0,greedy:!0,inside:{property:/\b\w+(?=\s*=)/,operator:/=/,punctuation:/[<>|]/}},macro:{pattern:/`\w+/,alias:"property"},"class-name":{pattern:/(\b(?:class|enum|extends|interface|state(?:\(\))?|struct|within)\s+)\w+/,lookbehind:!0},keyword:/\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/>>|<<|--|\+\+|\*\*|[-+*/~!=<>$@]=?|&&?|\|\|?|\^\^?|[?:%]|\b(?:ClockwiseFrom|Cross|Dot)\b/,punctuation:/[()[\]{};,.]/},e.languages.uc=e.languages.uscript=e.languages.unrealscript}e.exports=t,t.displayName="unrealscript",t.aliases=["uc","uscript"]},2613:function(e){"use strict";function t(e){e.languages.uorazor={"comment-hash":{pattern:/#.*/,alias:"comment",greedy:!0},"comment-slash":{pattern:/\/\/.*/,alias:"comment",greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/},greedy:!0},"source-layers":{pattern:/\b(?:arms|backpack|blue|bracelet|cancel|clear|cloak|criminal|earrings|enemy|facialhair|friend|friendly|gloves|gray|grey|ground|hair|head|innerlegs|innertorso|innocent|lefthand|middletorso|murderer|neck|nonfriendly|onehandedsecondary|outerlegs|outertorso|pants|red|righthand|ring|self|shirt|shoes|talisman|waist)\b/i,alias:"function"},"source-commands":{pattern:/\b(?:alliance|attack|cast|clearall|clearignore|clearjournal|clearlist|clearsysmsg|createlist|createtimer|dclick|dclicktype|dclickvar|dress|dressconfig|drop|droprelloc|emote|getlabel|guild|gumpclose|gumpresponse|hotkey|ignore|lasttarget|lift|lifttype|menu|menuresponse|msg|org|organize|organizer|overhead|pause|poplist|potion|promptresponse|pushlist|removelist|removetimer|rename|restock|say|scav|scavenger|script|setability|setlasttarget|setskill|settimer|setvar|sysmsg|target|targetloc|targetrelloc|targettype|undress|unignore|unsetvar|useobject|useonce|useskill|usetype|virtue|wait|waitforgump|waitformenu|waitforprompt|waitforstat|waitforsysmsg|waitfortarget|walk|wfsysmsg|wft|whisper|yell)\b/,alias:"function"},"tag-name":{pattern:/(^\{%-?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%]-?|-?[%}]\}$/,alias:"punctuation"},function:/\b(?:atlist|close|closest|count|counter|counttype|dead|dex|diffhits|diffmana|diffstam|diffweight|find|findbuff|finddebuff|findlayer|findtype|findtypelist|followers|gumpexists|hidden|hits|hp|hue|human|humanoid|ingump|inlist|insysmessage|insysmsg|int|invul|lhandempty|list|listexists|mana|maxhits|maxhp|maxmana|maxstam|maxweight|monster|mounted|name|next|noto|paralyzed|poisoned|position|prev|previous|queued|rand|random|rhandempty|skill|stam|str|targetexists|timer|timerexists|varexist|warmode|weight)\b/,keyword:/\b(?:and|as|break|continue|else|elseif|endfor|endif|endwhile|for|if|loop|not|or|replay|stop|while)\b/,boolean:/\b(?:false|null|true)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],punctuation:/[()\[\]{}:.,]/}}e.exports=t,t.displayName="uorazor",t.aliases=[]},4317:function(e){"use strict";function t(e){e.languages.uri={scheme:{pattern:/^[a-z][a-z0-9+.-]*:/im,greedy:!0,inside:{"scheme-delimiter":/:$/}},fragment:{pattern:/#[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"fragment-delimiter":/^#/}},query:{pattern:/\?[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"query-delimiter":{pattern:/^\?/,greedy:!0},"pair-delimiter":/[&;]/,pair:{pattern:/^[^=][\s\S]*/,inside:{key:/^[^=]+/,value:{pattern:/(^=)[\s\S]+/,lookbehind:!0}}}}},authority:{pattern:RegExp(/^\/\//.source+/(?:[\w\-.~!$&'()*+,;=%:]*@)?/.source+"(?:"+/\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\.[\w\-.~!$&'()*+,;=]+)\]/.source+"|"+/[\w\-.~!$&'()*+,;=%]*/.source+")"+/(?::\d*)?/.source,"m"),inside:{"authority-delimiter":/^\/\//,"user-info-segment":{pattern:/^[\w\-.~!$&'()*+,;=%:]*@/,inside:{"user-info-delimiter":/@$/,"user-info":/^[\w\-.~!$&'()*+,;=%:]+/}},"port-segment":{pattern:/:\d*$/,inside:{"port-delimiter":/^:/,port:/^\d+/}},host:{pattern:/[\s\S]+/,inside:{"ip-literal":{pattern:/^\[[\s\S]+\]$/,inside:{"ip-literal-delimiter":/^\[|\]$/,"ipv-future":/^v[\s\S]+/,"ipv6-address":/^[\s\S]+/}},"ipv4-address":/^(?:(?:[03-9]\d?|[12]\d{0,2})\.){3}(?:[03-9]\d?|[12]\d{0,2})$/}}}},path:{pattern:/^[\w\-.~!$&'()*+,;=%:@/]+/m,inside:{"path-separator":/\//}}},e.languages.url=e.languages.uri}e.exports=t,t.displayName="uri",t.aliases=["url"]},1927:function(e){"use strict";function t(e){!function(e){var t={pattern:/[\s\S]+/,inside:null};e.languages.v=e.languages.extend("clike",{string:{pattern:/r?(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,alias:"quoted-string",greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\{[^{}]*\}|\w+(?:\.\w+(?:\([^\(\)]*\))?|\[[^\[\]]+\])*)/,lookbehind:!0,inside:{"interpolation-variable":{pattern:/^\$\w[\s\S]*$/,alias:"variable"},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},"interpolation-expression":t}}}},"class-name":{pattern:/(\b(?:enum|interface|struct|type)\s+)(?:C\.)?\w+/,lookbehind:!0},keyword:/(?:\b(?:__global|as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\$(?:else|for|if)|#(?:flag|include))\b/,number:/\b(?:0x[a-f\d]+(?:_[a-f\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?)\b/i,operator:/~|\?|[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\.?/,builtin:/\b(?:any(?:_float|_int)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|64|128|nt)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\b/}),t.inside=e.languages.v,e.languages.insertBefore("v","string",{char:{pattern:/`(?:\\`|\\?[^`]{1,2})`/,alias:"rune"}}),e.languages.insertBefore("v","operator",{attribute:{pattern:/(^[\t ]*)\[(?:deprecated|direct_array_access|flag|inline|live|ref_only|typedef|unsafe_fn|windows_stdcall)\]/m,lookbehind:!0,alias:"annotation",inside:{punctuation:/[\[\]]/,keyword:/\w+/}},generic:{pattern:/<\w+>(?=\s*[\)\{])/,inside:{punctuation:/[<>]/,"class-name":/\w+/}}}),e.languages.insertBefore("v","function",{"generic-function":{pattern:/\b\w+\s*<\w+>(?=\()/,inside:{function:/^\w+/,generic:{pattern:/<\w+>/,inside:e.languages.v.generic.inside}}}})}(e)}e.exports=t,t.displayName="v",t.aliases=[]},6845:function(e){"use strict";function t(e){e.languages.vala=e.languages.extend("clike",{"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=(?:\?\s+|\*?\s+\*?)\w)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|enum|interface|new|struct)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],keyword:/\b(?:abstract|as|assert|async|base|bool|break|case|catch|char|class|const|construct|continue|default|delegate|delete|do|double|dynamic|else|ensures|enum|errordomain|extern|finally|float|for|foreach|get|if|in|inline|int|int16|int32|int64|int8|interface|internal|is|lock|long|namespace|new|null|out|override|owned|params|private|protected|public|ref|requires|return|set|short|signal|sizeof|size_t|ssize_t|static|string|struct|switch|this|throw|throws|try|typeof|uchar|uint|uint16|uint32|uint64|uint8|ulong|unichar|unowned|ushort|using|value|var|virtual|void|volatile|weak|while|yield)\b/i,function:/\b\w+(?=\s*\()/,number:/(?:\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?:f|u?l?)?/i,operator:/\+\+|--|&&|\|\||<<=?|>>=?|=>|->|~|[+\-*\/%&^|=!<>]=?|\?\??|\.\.\./,punctuation:/[{}[\];(),.:]/,constant:/\b[A-Z0-9_]+\b/}),e.languages.insertBefore("vala","string",{"raw-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"template-string":{pattern:/@"[\s\S]*?"/,greedy:!0,inside:{interpolation:{pattern:/\$(?:\([^)]*\)|[a-zA-Z]\w*)/,inside:{delimiter:{pattern:/^\$\(?|\)$/,alias:"punctuation"},rest:e.languages.vala}},string:/[\s\S]+/}}}),e.languages.insertBefore("vala","keyword",{regex:{pattern:/\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[imsx]{0,4}(?=\s*(?:$|[\r\n,.;})\]]))/,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:e.languages.regex},"regex-delimiter":/^\//,"regex-flags":/^[a-z]+$/}}})}e.exports=t,t.displayName="vala",t.aliases=[]},4941:function(e,t,n){"use strict";var r=n(7867);function a(e){e.register(r),e.languages.vbnet=e.languages.extend("basic",{comment:[{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},{pattern:/(^|[^\\:])'.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(^|[^"])"(?:""|[^"])*"(?!")/,lookbehind:!0,greedy:!0},keyword:/(?:\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDBL|CDEC|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DEFAULT|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LET|LIB|LIKE|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPERATOR|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHELL|SHORT|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SWAP|SYNCLOCK|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\$|\b)/i,punctuation:/[,;:(){}]/})}e.exports=a,a.displayName="vbnet",a.aliases=[]},9803:function(e){"use strict";function t(e){!function(e){e.languages.velocity=e.languages.extend("markup",{});var t={variable:{pattern:/(^|[^\\](?:\\\\)*)\$!?(?:[a-z][\w-]*(?:\([^)]*\))?(?:\.[a-z][\w-]*(?:\([^)]*\))?|\[[^\]]+\])*|\{[^}]+\})/i,lookbehind:!0,inside:{}},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},number:/\b\d+\b/,boolean:/\b(?:false|true)\b/,operator:/[=!<>]=?|[+*/%-]|&&|\|\||\.\.|\b(?:eq|g[et]|l[et]|n(?:e|ot))\b/,punctuation:/[(){}[\]:,.]/};t.variable.inside={string:t.string,function:{pattern:/([^\w-])[a-z][\w-]*(?=\()/,lookbehind:!0},number:t.number,boolean:t.boolean,punctuation:t.punctuation},e.languages.insertBefore("velocity","comment",{unparsed:{pattern:/(^|[^\\])#\[\[[\s\S]*?\]\]#/,lookbehind:!0,greedy:!0,inside:{punctuation:/^#\[\[|\]\]#$/}},"velocity-comment":[{pattern:/(^|[^\\])#\*[\s\S]*?\*#/,lookbehind:!0,greedy:!0,alias:"comment"},{pattern:/(^|[^\\])##.*/,lookbehind:!0,greedy:!0,alias:"comment"}],directive:{pattern:/(^|[^\\](?:\\\\)*)#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})(?:\s*\((?:[^()]|\([^()]*\))*\))?/i,lookbehind:!0,inside:{keyword:{pattern:/^#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})|\bin\b/,inside:{punctuation:/[{}]/}},rest:t}},variable:t.variable}),e.languages.velocity.tag.inside["attr-value"].inside.rest=e.languages.velocity}(e)}e.exports=t,t.displayName="velocity",t.aliases=[]},1107:function(e){"use strict";function t(e){e.languages.verilog={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"kernel-function":{pattern:/\B\$\w+\b/,alias:"property"},constant:/\B`\w+\b/,function:/\b\w+(?=\()/,keyword:/\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|case|casex|casez|cell|chandle|class|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endsequence|endspecify|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_ondetect|pulsestyle_onevent|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\b/,important:/\b(?:always|always_comb|always_ff|always_latch)\b(?: *@)?/,number:/\B##?\d+|(?:\b\d+)?'[odbh] ?[\da-fzx_?]+|\b(?:\d*[._])?\d+(?:e[-+]?\d+)?/i,operator:/[-+{}^~%*\/?=!<>&|]+/,punctuation:/[[\];(),.:]/}}e.exports=t,t.displayName="verilog",t.aliases=[]},1413:function(e){"use strict";function t(e){e.languages.vhdl={comment:/--.+/,"vhdl-vectors":{pattern:/\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,alias:"number"},"quoted-function":{pattern:/"\S+?"(?=\()/,alias:"function"},string:/"(?:[^\\"\r\n]|\\(?:\r\n|[\s\S]))*"/,constant:/\b(?:library|use)\b/i,keyword:/\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\b/i,boolean:/\b(?:false|true)\b/i,function:/\w+(?=\()/,number:/'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,operator:/[<>]=?|:=|[-+*/&=]|\b(?:abs|and|mod|nand|nor|not|or|rem|rol|ror|sla|sll|sra|srl|xnor|xor)\b/i,punctuation:/[{}[\];(),.:]/}}e.exports=t,t.displayName="vhdl",t.aliases=[]},3555:function(e){"use strict";function t(e){e.languages.vim={string:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/,comment:/".*/,function:/\b\w+(?=\()/,keyword:/\b(?:N|Next|P|Print|X|XMLent|XMLns|ab|abbreviate|abc|abclear|abo|aboveleft|al|all|ar|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|args|argu|argument|as|ascii|b|bN|bNext|ba|bad|badd|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bo|botright|bp|bprevious|br|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|brewind|bro|browse|bufdo|buffer|buffers|bun|bunload|bw|bwipeout|c|cN|cNext|cNfcNfile|ca|cabbrev|cabc|cabclear|cad|caddb|caddbuffer|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cg|cgetb|cgetbuffer|cgete|cgetexpr|cgetfile|change|changes|chd|chdir|che|checkpath|checkt|checktime|cl|cla|clast|clist|clo|close|cmapc|cmapclear|cn|cnew|cnewer|cnext|cnf|cnfile|cnorea|cnoreabbrev|co|col|colder|colo|colorscheme|comc|comclear|comp|compiler|con|conf|confirm|continue|cope|copen|copy|cp|cpf|cpfile|cprevious|cq|cquit|cr|crewind|cu|cuna|cunabbrev|cunmap|cw|cwindow|d|debugg|debuggreedy|delc|delcommand|delete|delf|delfunction|delm|delmarks|di|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|e|earlier|echoe|echoerr|echom|echomsg|echon|edit|el|else|elsei|elseif|em|emenu|en|endf|endfo|endfor|endfun|endfunction|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fin|fina|finally|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoc|folddoclosed|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|h|ha|hardcopy|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iu|iuna|iunabbrev|iunmap|j|join|ju|jumps|k|kee|keepalt|keepj|keepjumps|keepmarks|l|lN|lNext|lNf|lNfile|la|lad|laddb|laddbuffer|laddexpr|laddf|laddfile|lan|language|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|left|lefta|leftabove|let|lex|lexpr|lf|lfile|lfir|lfirst|lg|lgetb|lgetbuffer|lgete|lgetexpr|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|list|ll|lla|llast|lli|llist|lm|lmak|lmake|lmap|lmapc|lmapclear|ln|lne|lnew|lnewer|lnext|lnf|lnfile|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lpf|lpfile|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|ma|mak|make|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvie|mkview|mkvimrc|mod|mode|move|mz|mzf|mzfile|mzscheme|n|nbkey|new|next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|o|omapc|omapclear|on|only|open|opt|options|ou|ounmap|p|pc|pclose|pe|ped|pedit|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|print|prof|profd|profdel|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|ptN|ptNext|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|py|pyf|pyfile|python|q|qa|qall|quit|quita|quitall|r|read|rec|recover|red|redi|redir|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|rub|ruby|rubyd|rubydo|rubyf|rubyfile|runtime|rv|rviminfo|sN|sNext|sa|sal|sall|san|sandbox|sargument|sav|saveas|sb|sbN|sbNext|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbp|sbprevious|sbr|sbrewind|sbuffer|scrip|scripte|scriptencoding|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sl|sla|slast|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|so|sor|sort|source|sp|spe|spelld|spelldump|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|split|spr|sprevious|sre|srewind|st|sta|stag|star|startg|startgreplace|startinsert|startr|startreplace|stj|stjump|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tN|tNext|ta|tab|tabN|tabNext|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnew|tabnext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|u|una|unabbreviate|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|ve|verb|verbose|version|vert|vertical|vi|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|w|wN|wNext|wa|wall|wh|while|win|winc|wincmd|windo|winp|winpos|winsize|wn|wnext|wp|wprevious|wq|wqa|wqall|write|ws|wsverb|wv|wviminfo|x|xa|xall|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\b/,builtin:/\b(?:acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autocmd|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|t_AB|t_AF|t_AL|t_CS|t_CV|t_Ce|t_Co|t_Cs|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_IE|t_IS|t_K1|t_K3|t_K4|t_K5|t_K6|t_K7|t_K8|t_K9|t_KA|t_KB|t_KC|t_KD|t_KE|t_KF|t_KG|t_KH|t_KI|t_KJ|t_KK|t_KL|t_RI|t_RV|t_SI|t_Sb|t_Sf|t_WP|t_WS|t_ZH|t_ZR|t_al|t_bc|t_cd|t_ce|t_cl|t_cm|t_cs|t_da|t_db|t_dl|t_fs|t_k1|t_k2|t_k3|t_k4|t_k5|t_k6|t_k7|t_k8|t_k9|t_kB|t_kD|t_kI|t_kN|t_kP|t_kb|t_kd|t_ke|t_kh|t_kl|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_se|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_xs|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?)\b/i,operator:/\|\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\/%?]|\b(?:is(?:not)?)\b/,punctuation:/[{}[\](),;:]/}}e.exports=t,t.displayName="vim",t.aliases=[]},7117:function(e){"use strict";function t(e){e.languages["visual-basic"]={comment:{pattern:/(?:['\u2018\u2019]|REM\b)(?:[^\r\n_]|_(?:\r\n?|\n)?)*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\b_[ \t]*(?:\r\n?|\n)|.)+/i,alias:"property",greedy:!0},string:{pattern:/\$?["\u201c\u201d](?:["\u201c\u201d]{2}|[^"\u201c\u201d])*["\u201c\u201d]C?/i,greedy:!0},date:{pattern:/#[ \t]*(?:\d+([/-])\d+\1\d+(?:[ \t]+(?:\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?))?|\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?)[ \t]*#/i,alias:"number"},number:/(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:[FRD]|U?[ILS])?/i,boolean:/\b(?:False|Nothing|True)\b/i,keyword:/\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\b/i,operator:/[+\-*/\\^<=>&#@$%!]|\b_(?=[ \t]*[\r\n])/,punctuation:/[{}().,:?]/},e.languages.vb=e.languages["visual-basic"],e.languages.vba=e.languages["visual-basic"]}e.exports=t,t.displayName="visualBasic",t.aliases=[]},3244:function(e){"use strict";function t(e){e.languages.warpscript={comment:/#.*|\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'|<'(?:[^\\']|'(?!>)|\\.)*'>/,greedy:!0},variable:/\$\S+/,macro:{pattern:/@\S+/,alias:"property"},keyword:/\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\b/,number:/[+-]?\b(?:NaN|Infinity|\d+(?:\.\d*)?(?:[Ee][+-]?\d+)?|0x[\da-fA-F]+|0b[01]+)\b/,boolean:/\b(?:F|T|false|true)\b/,punctuation:/<%|%>|[{}[\]()]/,operator:/==|&&?|\|\|?|\*\*?|>>>?|<<|[<>!~]=?|[-/%^]|\+!?|\b(?:AND|NOT|OR)\b/}}e.exports=t,t.displayName="warpscript",t.aliases=[]},3673:function(e){"use strict";function t(e){e.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/}}e.exports=t,t.displayName="wasm",t.aliases=[]},8953:function(e){"use strict";function t(e){!function(e){var t=/(?:\B-|\b_|\b)[A-Za-z][\w-]*(?![\w-])/.source,n="(?:"+/\b(?:unsigned\s+)?long\s+long(?![\w-])/.source+"|"+/\b(?:unrestricted|unsigned)\s+[a-z]+(?![\w-])/.source+"|"+/(?!(?:unrestricted|unsigned)\b)/.source+t+/(?:\s*<(?:[^<>]|<[^<>]*>)*>)?/.source+")"+/(?:\s*\?)?/.source,r={};for(var a in e.languages["web-idl"]={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/"[^"]*"/,greedy:!0},namespace:{pattern:RegExp(/(\bnamespace\s+)/.source+t),lookbehind:!0},"class-name":[{pattern:/(^|[^\w-])(?:iterable|maplike|setlike)\s*<(?:[^<>]|<[^<>]*>)*>/,lookbehind:!0,inside:r},{pattern:RegExp(/(\b(?:attribute|const|deleter|getter|optional|setter)\s+)/.source+n),lookbehind:!0,inside:r},{pattern:RegExp("("+/\bcallback\s+/.source+t+/\s*=\s*/.source+")"+n),lookbehind:!0,inside:r},{pattern:RegExp(/(\btypedef\b\s*)/.source+n),lookbehind:!0,inside:r},{pattern:RegExp(/(\b(?:callback|dictionary|enum|interface(?:\s+mixin)?)\s+)(?!(?:interface|mixin)\b)/.source+t),lookbehind:!0},{pattern:RegExp(/(:\s*)/.source+t),lookbehind:!0},RegExp(t+/(?=\s+(?:implements|includes)\b)/.source),{pattern:RegExp(/(\b(?:implements|includes)\s+)/.source+t),lookbehind:!0},{pattern:RegExp(n+"(?="+/\s*(?:\.{3}\s*)?/.source+t+/\s*[(),;=]/.source+")"),inside:r}],builtin:/\b(?:ArrayBuffer|BigInt64Array|BigUint64Array|ByteString|DOMString|DataView|Float32Array|Float64Array|FrozenArray|Int16Array|Int32Array|Int8Array|ObservableArray|Promise|USVString|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray)\b/,keyword:[/\b(?:async|attribute|callback|const|constructor|deleter|dictionary|enum|getter|implements|includes|inherit|interface|mixin|namespace|null|optional|or|partial|readonly|required|setter|static|stringifier|typedef|unrestricted)\b/,/\b(?:any|bigint|boolean|byte|double|float|iterable|long|maplike|object|octet|record|sequence|setlike|short|symbol|undefined|unsigned|void)\b/],boolean:/\b(?:false|true)\b/,number:{pattern:/(^|[^\w-])-?(?:0x[0-9a-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|NaN|Infinity)(?![\w-])/i,lookbehind:!0},operator:/\.{3}|[=:?<>-]/,punctuation:/[(){}[\].,;]/},e.languages["web-idl"])"class-name"!==a&&(r[a]=e.languages["web-idl"][a]);e.languages.webidl=e.languages["web-idl"]}(e)}e.exports=t,t.displayName="webIdl",t.aliases=[]},6747:function(e){"use strict";function t(e){e.languages.wiki=e.languages.extend("markup",{"block-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,alias:"comment"},heading:{pattern:/^(=+)[^=\r\n].*?\1/m,inside:{punctuation:/^=+|=+$/,important:/.+/}},emphasis:{pattern:/('{2,5}).+?\1/,inside:{"bold-italic":{pattern:/(''''').+?(?=\1)/,lookbehind:!0,alias:["bold","italic"]},bold:{pattern:/(''')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},italic:{pattern:/('')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},punctuation:/^''+|''+$/}},hr:{pattern:/^-{4,}/m,alias:"punctuation"},url:[/ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:PMID|RFC) +\d+/i,/\[\[.+?\]\]|\[.+?\]/],variable:[/__[A-Z]+__/,/\{{3}.+?\}{3}/,/\{\{.+?\}\}/],symbol:[/^#redirect/im,/~{3,5}/],"table-tag":{pattern:/((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m,lookbehind:!0,inside:{"table-bar":{pattern:/\|$/,alias:"punctuation"},rest:e.languages.markup.tag.inside}},punctuation:/^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m}),e.languages.insertBefore("wiki","tag",{nowiki:{pattern:/<(nowiki|pre|source)\b[^>]*>[\s\S]*?<\/\1>/i,inside:{tag:{pattern:/<(?:nowiki|pre|source)\b[^>]*>|<\/(?:nowiki|pre|source)>/i,inside:e.languages.markup.tag.inside}}}})}e.exports=t,t.displayName="wiki",t.aliases=[]},4211:function(e){"use strict";function t(e){e.languages.wolfram={comment:/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\b/,context:{pattern:/\b\w+`+\w*/,alias:"class-name"},blank:{pattern:/\b\w+_\b/,alias:"regex"},"global-variable":{pattern:/\$\w+/,alias:"variable"},boolean:/\b(?:False|True)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/\/\.|;|=\.|\^=|\^:=|:=|<<|>>|<\||\|>|:>|\|->|->|<-|@@@|@@|@|\/@|=!=|===|==|=|\+|-|\^|\[\/-+%=\]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},e.languages.mathematica=e.languages.wolfram,e.languages.wl=e.languages.wolfram,e.languages.nb=e.languages.wolfram}e.exports=t,t.displayName="wolfram",t.aliases=["mathematica","wl","nb"]},8832:function(e){"use strict";function t(e){e.languages.wren={comment:[{pattern:/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*))*\*\/)*\*\/)*\*\//,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"string-literal":null,hashbang:{pattern:/^#!\/.+/,greedy:!0,alias:"comment"},attribute:{pattern:/#!?[ \t\u3000]*\w+/,alias:"keyword"},"class-name":[{pattern:/(\bclass\s+)\w+/,lookbehind:!0},/\b[A-Z][a-z\d_]*\b/],constant:/\b[A-Z][A-Z\d_]*\b/,null:{pattern:/\bnull\b/,alias:"keyword"},keyword:/\b(?:as|break|class|construct|continue|else|for|foreign|if|import|in|is|return|static|super|this|var|while)\b/,boolean:/\b(?:false|true)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,function:/\b[a-z_]\w*(?=\s*[({])/i,operator:/<<|>>|[=!<>]=?|&&|\|\||[-+*/%~^&|?:]|\.{2,3}/,punctuation:/[\[\](){}.,;]/},e.languages.wren["string-literal"]={pattern:/(^|[^\\"])"(?:[^\\"%]|\\[\s\S]|%(?!\()|%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\))*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\)/,lookbehind:!0,inside:{expression:{pattern:/^(%\()[\s\S]+(?=\)$)/,lookbehind:!0,inside:e.languages.wren},"interpolation-punctuation":{pattern:/^%\(|\)$/,alias:"punctuation"}}},string:/[\s\S]+/}}}e.exports=t,t.displayName="wren",t.aliases=[]},8186:function(e){"use strict";function t(e){!function(e){e.languages.xeora=e.languages.extend("markup",{constant:{pattern:/\$(?:DomainContents|PageRenderDuration)\$/,inside:{punctuation:{pattern:/\$/}}},variable:{pattern:/\$@?(?:#+|[-+*~=^])?[\w.]+\$/,inside:{punctuation:{pattern:/[$.]/},operator:{pattern:/#+|[-+*~=^@]/}}},"function-inline":{pattern:/\$F:[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\$/,inside:{variable:{pattern:/(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/,inside:{punctuation:{pattern:/[,.|]/},operator:{pattern:/#+|[-+*~=^@]/}}},punctuation:{pattern:/\$\w:|[$:?.,|]/}},alias:"function"},"function-block":{pattern:/\$XF:\{[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\}:XF\$/,inside:{punctuation:{pattern:/[$:{}?.,|]/}},alias:"function"},"directive-inline":{pattern:/\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\/\w.]+\$/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}}},alias:"function"},"directive-block-open":{pattern:/\$\w+:\{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\w.]+:\{(?:![A-Z]+)?/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}},attribute:{pattern:/![A-Z]+$/,inside:{punctuation:{pattern:/!/}},alias:"keyword"}},alias:"function"},"directive-block-separator":{pattern:/\}:[-\w.]+:\{/,inside:{punctuation:{pattern:/[:{}]/}},alias:"function"},"directive-block-close":{pattern:/\}:[-\w.]+\$/,inside:{punctuation:{pattern:/[:{}$]/}},alias:"function"}}),e.languages.insertBefore("inside","punctuation",{variable:e.languages.xeora["function-inline"].inside.variable},e.languages.xeora["function-block"]),e.languages.xeoracube=e.languages.xeora}(e)}e.exports=t,t.displayName="xeora",t.aliases=["xeoracube"]},3679:function(e){"use strict";function t(e){!function(e){function t(t,n){e.languages[t]&&e.languages.insertBefore(t,"comment",{"doc-comment":n})}var n=e.languages.markup.tag,r={pattern:/\/\/\/.*/,greedy:!0,alias:"comment",inside:{tag:n}},a={pattern:/'''.*/,greedy:!0,alias:"comment",inside:{tag:n}};t("csharp",r),t("fsharp",r),t("vbnet",a)}(e)}e.exports=t,t.displayName="xmlDoc",t.aliases=[]},1752:function(e){"use strict";function t(e){e.languages.xojo={comment:{pattern:/(?:'|\/\/|Rem\b).+/i,greedy:!0},string:{pattern:/"(?:""|[^"])*"/,greedy:!0},number:[/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,/&[bchou][a-z\d]+/i],directive:{pattern:/#(?:Else|ElseIf|Endif|If|Pragma)\b/i,alias:"property"},keyword:/\b(?:AddHandler|App|Array|As(?:signs)?|Auto|Boolean|Break|By(?:Ref|Val)|Byte|Call|Case|Catch|CFStringRef|CGFloat|Class|Color|Const|Continue|CString|Currency|CurrentMethodName|Declare|Delegate|Dim|Do(?:uble|wnTo)?|Each|Else(?:If)?|End|Enumeration|Event|Exception|Exit|Extends|False|Finally|For|Function|Get|GetTypeInfo|Global|GOTO|If|Implements|In|Inherits|Int(?:8|16|32|64|eger|erface)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Shared|Short|Single|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:8|16|32|64|eger)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\b/i,operator:/<[=>]?|>=?|[+\-*\/\\^=]|\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|WeakAddressOf|Xor)\b/i,punctuation:/[.,;:()]/}}e.exports=t,t.displayName="xojo",t.aliases=[]},243:function(e){"use strict";function t(e){!function(e){e.languages.xquery=e.languages.extend("markup",{"xquery-comment":{pattern:/\(:[\s\S]*?:\)/,greedy:!0,alias:"comment"},string:{pattern:/(["'])(?:\1\1|(?!\1)[\s\S])*\1/,greedy:!0},extension:{pattern:/\(#.+?#\)/,alias:"symbol"},variable:/\$[-\w:]+/,axis:{pattern:/(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,lookbehind:!0,alias:"operator"},"keyword-operator":{pattern:/(^|[^:-])\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\b(?=$|[^:-])/,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^:-])\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\b(?=$|[^:-])/,lookbehind:!0},function:/[\w-]+(?::[\w-]+)*(?=\s*\()/,"xquery-element":{pattern:/(element\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"tag"},"xquery-attribute":{pattern:/(attribute\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"attr-name"},builtin:{pattern:/(^|[^:-])\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:ENTITIES|ENTITY|ID|IDREFS?|NCName|NMTOKENS?|NOTATION|Name|QName|anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|int|integer|language|long|negativeInteger|nonNegativeInteger|nonPositiveInteger|normalizedString|positiveInteger|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\b(?=$|[^:-])/,lookbehind:!0},number:/\b\d+(?:\.\d+)?(?:E[+-]?\d+)?/,operator:[/[+*=?|@]|\.\.?|:=|!=|<[=<]?|>[=>]?/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}],punctuation:/[[\](){},;:/]/}),e.languages.xquery.tag.pattern=/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/,e.languages.xquery.tag.inside["attr-value"].pattern=/=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+)/,e.languages.xquery.tag.inside["attr-value"].inside.punctuation=/^="|"$/,e.languages.xquery.tag.inside["attr-value"].inside.expression={pattern:/\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}/,inside:e.languages.xquery,alias:"language-xquery"};var t=function e(t){return"string"===typeof t?t:"string"===typeof t.content?t.content:t.content.map(e).join("")},n=function n(r){for(var a=[],i=0;i<r.length;i++){var o=r[i],s=!1;if("string"!==typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?a.length>0&&a[a.length-1].tagName===t(o.content[0].content[1])&&a.pop():"/>"===o.content[o.content.length-1].content||a.push({tagName:t(o.content[0].content[1]),openedBraces:0}):!(a.length>0&&"punctuation"===o.type&&"{"===o.content)||r[i+1]&&"punctuation"===r[i+1].type&&"{"===r[i+1].content||r[i-1]&&"plain-text"===r[i-1].type&&"{"===r[i-1].content?a.length>0&&a[a.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?a[a.length-1].openedBraces--:"comment"!==o.type&&(s=!0):a[a.length-1].openedBraces++),(s||"string"===typeof o)&&a.length>0&&0===a[a.length-1].openedBraces){var l=t(o);i<r.length-1&&("string"===typeof r[i+1]||"plain-text"===r[i+1].type)&&(l+=t(r[i+1]),r.splice(i+1,1)),i>0&&("string"===typeof r[i-1]||"plain-text"===r[i-1].type)&&(l=t(r[i-1])+l,r.splice(i-1,1),i--),/^\s+$/.test(l)?r[i]=l:r[i]=new e.Token("plain-text",l,null,l)}o.content&&"string"!==typeof o.content&&n(o.content)}};e.hooks.add("after-tokenize",(function(e){"xquery"===e.language&&n(e.tokens)}))}(e)}e.exports=t,t.displayName="xquery",t.aliases=[]},5133:function(e){"use strict";function t(e){!function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),i=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function o(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+i+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:o(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:o(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:o(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:o(i),lookbehind:!0,greedy:!0},number:{pattern:o(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(e)}e.exports=t,t.displayName="yaml",t.aliases=["yml"]},2195:function(e){"use strict";function t(e){e.languages.yang={comment:/\/\*[\s\S]*?\*\/|\/\/.*/,string:{pattern:/"(?:[^\\"]|\\.)*"|'[^']*'/,greedy:!0},keyword:{pattern:/(^|[{};\r\n][ \t]*)[a-z_][\w.-]*/i,lookbehind:!0},namespace:{pattern:/(\s)[a-z_][\w.-]*(?=:)/i,lookbehind:!0},boolean:/\b(?:false|true)\b/,operator:/\+/,punctuation:/[{};:]/}}e.exports=t,t.displayName="yang",t.aliases=[]},3672:function(e){"use strict";function t(e){!function(e){function t(e){return function(){return e}}var n=/\b(?:align|allowzero|and|anyframe|anytype|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|nosuspend|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\b/,r="\\b(?!"+n.source+")(?!\\d)\\w+\\b",a=/align\s*\((?:[^()]|\([^()]*\))*\)/.source,i="(?!\\s)(?:!?\\s*(?:"+/(?:\?|\bpromise->|(?:\[[^[\]]*\]|\*(?!\*)|\*\*)(?:\s*<ALIGN>|\s*const\b|\s*volatile\b|\s*allowzero\b)*)/.source.replace(/<ALIGN>/g,t(a))+"\\s*)*"+/(?:\bpromise\b|(?:\berror\.)?<ID>(?:\.<ID>)*(?!\s+<ID>))/.source.replace(/<ID>/g,t(r))+")+";e.languages.zig={comment:[{pattern:/\/\/[/!].*/,alias:"doc-comment"},/\/{2}.*/],string:[{pattern:/(^|[^\\@])c?"(?:[^"\\\r\n]|\\.)*"/,lookbehind:!0,greedy:!0},{pattern:/([\r\n])([ \t]+c?\\{2}).*(?:(?:\r\n?|\n)\2.*)*/,lookbehind:!0,greedy:!0}],char:{pattern:/(^|[^\\])'(?:[^'\\\r\n]|[\uD800-\uDFFF]{2}|\\(?:.|x[a-fA-F\d]{2}|u\{[a-fA-F\d]{1,6}\}))'/,lookbehind:!0,greedy:!0},builtin:/\B@(?!\d)\w+(?=\s*\()/,label:{pattern:/(\b(?:break|continue)\s*:\s*)\w+\b|\b(?!\d)\w+\b(?=\s*:\s*(?:\{|while\b))/,lookbehind:!0},"class-name":[/\b(?!\d)\w+(?=\s*=\s*(?:(?:extern|packed)\s+)?(?:enum|struct|union)\s*[({])/,{pattern:RegExp(/(:\s*)<TYPE>(?=\s*(?:<ALIGN>\s*)?[=;,)])|<TYPE>(?=\s*(?:<ALIGN>\s*)?\{)/.source.replace(/<TYPE>/g,t(i)).replace(/<ALIGN>/g,t(a))),lookbehind:!0,inside:null},{pattern:RegExp(/(\)\s*)<TYPE>(?=\s*(?:<ALIGN>\s*)?;)/.source.replace(/<TYPE>/g,t(i)).replace(/<ALIGN>/g,t(a))),lookbehind:!0,inside:null}],"builtin-type":{pattern:/\b(?:anyerror|bool|c_u?(?:int|long|longlong|short)|c_longdouble|c_void|comptime_(?:float|int)|f(?:16|32|64|128)|[iu](?:8|16|32|64|128|size)|noreturn|type|void)\b/,alias:"keyword"},keyword:n,function:/\b(?!\d)\w+(?=\s*\()/,number:/\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\d]+(?:\.[a-fA-F\d]*)?(?:[pP][+-]?[a-fA-F\d]+)?|\d+(?:\.\d*)?(?:[eE][+-]?\d+)?)\b/,boolean:/\b(?:false|true)\b/,operator:/\.[*?]|\.{2,3}|[-=]>|\*\*|\+\+|\|\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,punctuation:/[.:,;(){}[\]]/},e.languages.zig["class-name"].forEach((function(t){null===t.inside&&(t.inside=e.languages.zig)}))}(e)}e.exports=t,t.displayName="zig",t.aliases=[]},3264:function(e,t,n){var r=function(e){var t=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,r={},a={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof i?new i(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++n}),e.__id},clone:function e(t,n){var r,i;switch(n=n||{},a.util.type(t)){case"Object":if(i=a.util.objId(t),n[i])return n[i];for(var o in r={},n[i]=r,t)t.hasOwnProperty(o)&&(r[o]=e(t[o],n));return r;case"Array":return i=a.util.objId(t),n[i]?n[i]:(r=[],n[i]=r,t.forEach((function(t,a){r[a]=e(t,n)})),r);default:return t}},getLanguage:function(e){for(;e;){var n=t.exec(e.className);if(n)return n[1].toLowerCase();e=e.parentElement}return"none"},setLanguage:function(e,n){e.className=e.className.replace(RegExp(t,"gi"),""),e.classList.add("language-"+n)},currentScript:function(){if("undefined"===typeof document)return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(r){var e=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(r.stack)||[])[1];if(e){var t=document.getElementsByTagName("script");for(var n in t)if(t[n].src==e)return t[n]}return null}},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:r,plaintext:r,text:r,txt:r,extend:function(e,t){var n=a.util.clone(a.languages[e]);for(var r in t)n[r]=t[r];return n},insertBefore:function(e,t,n,r){var i=(r=r||a.languages)[e],o={};for(var s in i)if(i.hasOwnProperty(s)){if(s==t)for(var l in n)n.hasOwnProperty(l)&&(o[l]=n[l]);n.hasOwnProperty(s)||(o[s]=i[s])}var c=r[e];return r[e]=o,a.languages.DFS(a.languages,(function(t,n){n===c&&t!=e&&(this[t]=o)})),o},DFS:function e(t,n,r,i){i=i||{};var o=a.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],r||s);var l=t[s],c=a.util.type(l);"Object"!==c||i[o(l)]?"Array"!==c||i[o(l)]||(i[o(l)]=!0,e(l,n,s,i)):(i[o(l)]=!0,e(l,n,null,i))}}},plugins:{},highlightAll:function(e,t){a.highlightAllUnder(document,e,t)},highlightAllUnder:function(e,t,n){var r={callback:n,container:e,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};a.hooks.run("before-highlightall",r),r.elements=Array.prototype.slice.apply(r.container.querySelectorAll(r.selector)),a.hooks.run("before-all-elements-highlight",r);for(var i,o=0;i=r.elements[o++];)a.highlightElement(i,!0===t,r.callback)},highlightElement:function(t,n,r){var i=a.util.getLanguage(t),o=a.languages[i];a.util.setLanguage(t,i);var s=t.parentElement;s&&"pre"===s.nodeName.toLowerCase()&&a.util.setLanguage(s,i);var l={element:t,language:i,grammar:o,code:t.textContent};function c(e){l.highlightedCode=e,a.hooks.run("before-insert",l),l.element.innerHTML=l.highlightedCode,a.hooks.run("after-highlight",l),a.hooks.run("complete",l),r&&r.call(l.element)}if(a.hooks.run("before-sanity-check",l),(s=l.element.parentElement)&&"pre"===s.nodeName.toLowerCase()&&!s.hasAttribute("tabindex")&&s.setAttribute("tabindex","0"),!l.code)return a.hooks.run("complete",l),void(r&&r.call(l.element));if(a.hooks.run("before-highlight",l),l.grammar)if(n&&e.Worker){var u=new Worker(a.filename);u.onmessage=function(e){c(e.data)},u.postMessage(JSON.stringify({language:l.language,code:l.code,immediateClose:!0}))}else c(a.highlight(l.code,l.grammar,l.language));else c(a.util.encode(l.code))},highlight:function(e,t,n){var r={code:e,grammar:t,language:n};if(a.hooks.run("before-tokenize",r),!r.grammar)throw new Error('The language "'+r.language+'" has no grammar.');return r.tokens=a.tokenize(r.code,r.grammar),a.hooks.run("after-tokenize",r),i.stringify(a.util.encode(r.tokens),r.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return c(a,a.head,e),s(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=a.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=a.hooks.all[e];if(n&&n.length)for(var r,i=0;r=n[i++];)r(t)}},Token:i};function i(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var i=a[1].length;a.index+=i,a[0]=a[0].slice(i)}return a}function s(e,t,n,r,l,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var m=n[p];m=Array.isArray(m)?m:[m];for(var g=0;g<m.length;++g){if(d&&d.cause==p+","+g)return;var h=m[g],f=h.inside,b=!!h.lookbehind,E=!!h.greedy,y=h.alias;if(E&&!h.pattern.global){var T=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,T+"g")}for(var S=h.pattern||h,v=r.next,A=l;v!==t.tail&&!(d&&A>=d.reach);A+=v.value.length,v=v.next){var k=v.value;if(t.length>e.length)return;if(!(k instanceof i)){var w,_=1;if(E){if(!(w=o(S,A,e,b))||w.index>=e.length)break;var C=w.index,N=w.index+w[0].length,I=A;for(I+=v.value.length;C>=I;)I+=(v=v.next).value.length;if(A=I-=v.value.length,v.value instanceof i)continue;for(var x=v;x!==t.tail&&(I<N||"string"===typeof x.value);x=x.next)_++,I+=x.value.length;_--,k=e.slice(A,I),w.index-=A}else if(!(w=o(S,0,k,b)))continue;C=w.index;var R=w[0],O=k.slice(0,C),L=k.slice(C+R.length),P=A+k.length;d&&P>d.reach&&(d.reach=P);var D=v.prev;if(O&&(D=c(t,D,O),A+=O.length),u(t,D,_),v=c(t,D,new i(p,f?a.tokenize(R,f):R,y,R)),L&&c(t,v,L),_>1){var M={cause:p+","+g,reach:P};s(e,t,n,v.prev,A,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function c(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}if(e.Prism=a,i.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var r="";return t.forEach((function(t){r+=e(t,n)})),r}var i={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},o=t.alias;o&&(Array.isArray(o)?Array.prototype.push.apply(i.classes,o):i.classes.push(o)),a.hooks.run("wrap",i);var s="";for(var l in i.attributes)s+=" "+l+'="'+(i.attributes[l]||"").replace(/"/g,"&quot;")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'"'+s+">"+i.content+"</"+i.tag+">"},!e.document)return e.addEventListener?(a.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var n=JSON.parse(t.data),r=n.language,i=n.code,o=n.immediateClose;e.postMessage(a.highlight(i,a.languages[r],r)),o&&e.close()}),!1),a):a;var d=a.util.currentScript();function p(){a.manual||a.highlightAll()}if(d&&(a.filename=d.src,d.hasAttribute("data-manual")&&(a.manual=!0)),!a.manual){var m=document.readyState;"loading"===m||"interactive"===m&&d&&d.defer?document.addEventListener("DOMContentLoaded",p):window.requestAnimationFrame?window.requestAnimationFrame(p):window.setTimeout(p,16)}return a}("undefined"!==typeof window?window:"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=r),"undefined"!==typeof n.g&&(n.g.Prism=r)},6813:function(e,t){"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<i(a,t)))break e;e[r]=t,e[n]=a,n=r}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,l=e[s],c=s+1,u=e[c];if(0>i(l,n))c<a&&0>i(u,l)?(e[r]=u,e[c]=n,r=c):(e[r]=l,e[s]=n,r=s);else{if(!(c<a&&0>i(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"===typeof performance&&"function"===typeof performance.now){var o=performance;t.unstable_now=function(){return o.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var c=[],u=[],d=1,p=null,m=3,g=!1,h=!1,f=!1,b="function"===typeof setTimeout?setTimeout:null,E="function"===typeof clearTimeout?clearTimeout:null,y="undefined"!==typeof setImmediate?setImmediate:null;function T(e){for(var t=r(u);null!==t;){if(null===t.callback)a(u);else{if(!(t.startTime<=e))break;a(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function S(e){if(f=!1,T(e),!h)if(null!==r(c))h=!0,L(v);else{var t=r(u);null!==t&&P(S,t.startTime-e)}}function v(e,n){h=!1,f&&(f=!1,E(_),_=-1),g=!0;var i=m;try{for(T(n),p=r(c);null!==p&&(!(p.expirationTime>n)||e&&!I());){var o=p.callback;if("function"===typeof o){p.callback=null,m=p.priorityLevel;var s=o(p.expirationTime<=n);n=t.unstable_now(),"function"===typeof s?p.callback=s:p===r(c)&&a(c),T(n)}else a(c);p=r(c)}if(null!==p)var l=!0;else{var d=r(u);null!==d&&P(S,d.startTime-n),l=!1}return l}finally{p=null,m=i,g=!1}}"undefined"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var A,k=!1,w=null,_=-1,C=5,N=-1;function I(){return!(t.unstable_now()-N<C)}function x(){if(null!==w){var e=t.unstable_now();N=e;var n=!0;try{n=w(!0,e)}finally{n?A():(k=!1,w=null)}}else k=!1}if("function"===typeof y)A=function(){y(x)};else if("undefined"!==typeof MessageChannel){var R=new MessageChannel,O=R.port2;R.port1.onmessage=x,A=function(){O.postMessage(null)}}else A=function(){b(x,0)};function L(e){w=e,k||(k=!0,A())}function P(e,n){_=b((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){h||g||(h=!0,L(v))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):C=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return m},t.unstable_getFirstCallbackNode=function(){return r(c)},t.unstable_next=function(e){switch(m){case 1:case 2:case 3:var t=3;break;default:t=m}var n=m;m=t;try{return e()}finally{m=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=m;m=e;try{return t()}finally{m=n}},t.unstable_scheduleCallback=function(e,a,i){var o=t.unstable_now();switch("object"===typeof i&&null!==i?i="number"===typeof(i=i.delay)&&0<i?o+i:o:i=o,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:d++,callback:a,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>o?(e.sortIndex=i,n(u,e),null===r(c)&&e===r(u)&&(f?(E(_),_=-1):f=!0,P(S,i-o))):(e.sortIndex=s,n(c,e),h||g||(h=!0,L(v))),e},t.unstable_shouldYield=I,t.unstable_wrapCallback=function(e){var t=m;return function(){var n=m;m=t;try{return e.apply(this,arguments)}finally{m=n}}}},5296:function(e,t,n){"use strict";e.exports=n(6813)},6426:function(e,t,n){var r=n(1065);e.exports=function(e,t){var n,a=null;if(!e||"string"!==typeof e)return a;for(var i,o,s=r(e),l="function"===typeof t,c=0,u=s.length;c<u;c++)i=(n=s[c]).property,o=n.value,l?t(i,o,n):o&&(a||(a={}),a[i]=o);return a}},5887:function(e){e.exports=function(){for(var e={},n=0;n<arguments.length;n++){var r=arguments[n];for(var a in r)t.call(r,a)&&(e[a]=r[a])}return e};var t=Object.prototype.hasOwnProperty},6115:function(e){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.__esModule=!0,e.exports.default=e.exports},6690:function(e){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports.default=e.exports},9728:function(e){function t(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e},e.exports.__esModule=!0,e.exports.default=e.exports},6389:function(e,t,n){var r=n(3808),a=n(9617),i=n(4993);e.exports=function(e){var t=a();return function(){var n,a=r(e);if(t){var o=r(this).constructor;n=Reflect.construct(a,arguments,o)}else n=a.apply(this,arguments);return i(this,n)}},e.exports.__esModule=!0,e.exports.default=e.exports},8416:function(e){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.__esModule=!0,e.exports.default=e.exports},1588:function(e,t,n){var r=n(1753);function a(){return"undefined"!==typeof Reflect&&Reflect.get?(e.exports=a=Reflect.get.bind(),e.exports.__esModule=!0,e.exports.default=e.exports):(e.exports=a=function(e,t,n){var a=r(e,t);if(a){var i=Object.getOwnPropertyDescriptor(a,t);return i.get?i.get.call(arguments.length<3?e:n):i.value}},e.exports.__esModule=!0,e.exports.default=e.exports),a.apply(this,arguments)}e.exports=a,e.exports.__esModule=!0,e.exports.default=e.exports},3808:function(e){function t(n){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},1655:function(e,t,n){var r=n(6015);e.exports=function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&r(e,t)},e.exports.__esModule=!0,e.exports.default=e.exports},9617:function(e){e.exports=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}},e.exports.__esModule=!0,e.exports.default=e.exports},4993:function(e,t,n){var r=n(8698).default,a=n(6115);e.exports=function(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return a(e)},e.exports.__esModule=!0,e.exports.default=e.exports},6015:function(e){function t(n,r){return e.exports=t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},1753:function(e,t,n){var r=n(3808);e.exports=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=r(e)););return e},e.exports.__esModule=!0,e.exports.default=e.exports},8698:function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},7452:function(e){"use strict";e.exports=JSON.parse('{"AElig":"\xc6","AMP":"&","Aacute":"\xc1","Acirc":"\xc2","Agrave":"\xc0","Aring":"\xc5","Atilde":"\xc3","Auml":"\xc4","COPY":"\xa9","Ccedil":"\xc7","ETH":"\xd0","Eacute":"\xc9","Ecirc":"\xca","Egrave":"\xc8","Euml":"\xcb","GT":">","Iacute":"\xcd","Icirc":"\xce","Igrave":"\xcc","Iuml":"\xcf","LT":"<","Ntilde":"\xd1","Oacute":"\xd3","Ocirc":"\xd4","Ograve":"\xd2","Oslash":"\xd8","Otilde":"\xd5","Ouml":"\xd6","QUOT":"\\"","REG":"\xae","THORN":"\xde","Uacute":"\xda","Ucirc":"\xdb","Ugrave":"\xd9","Uuml":"\xdc","Yacute":"\xdd","aacute":"\xe1","acirc":"\xe2","acute":"\xb4","aelig":"\xe6","agrave":"\xe0","amp":"&","aring":"\xe5","atilde":"\xe3","auml":"\xe4","brvbar":"\xa6","ccedil":"\xe7","cedil":"\xb8","cent":"\xa2","copy":"\xa9","curren":"\xa4","deg":"\xb0","divide":"\xf7","eacute":"\xe9","ecirc":"\xea","egrave":"\xe8","eth":"\xf0","euml":"\xeb","frac12":"\xbd","frac14":"\xbc","frac34":"\xbe","gt":">","iacute":"\xed","icirc":"\xee","iexcl":"\xa1","igrave":"\xec","iquest":"\xbf","iuml":"\xef","laquo":"\xab","lt":"<","macr":"\xaf","micro":"\xb5","middot":"\xb7","nbsp":"\xa0","not":"\xac","ntilde":"\xf1","oacute":"\xf3","ocirc":"\xf4","ograve":"\xf2","ordf":"\xaa","ordm":"\xba","oslash":"\xf8","otilde":"\xf5","ouml":"\xf6","para":"\xb6","plusmn":"\xb1","pound":"\xa3","quot":"\\"","raquo":"\xbb","reg":"\xae","sect":"\xa7","shy":"\xad","sup1":"\xb9","sup2":"\xb2","sup3":"\xb3","szlig":"\xdf","thorn":"\xfe","times":"\xd7","uacute":"\xfa","ucirc":"\xfb","ugrave":"\xf9","uml":"\xa8","uuml":"\xfc","yacute":"\xfd","yen":"\xa5","yuml":"\xff"}')},3580:function(e){"use strict";e.exports=JSON.parse('{"0":"\ufffd","128":"\u20ac","130":"\u201a","131":"\u0192","132":"\u201e","133":"\u2026","134":"\u2020","135":"\u2021","136":"\u02c6","137":"\u2030","138":"\u0160","139":"\u2039","140":"\u0152","142":"\u017d","145":"\u2018","146":"\u2019","147":"\u201c","148":"\u201d","149":"\u2022","150":"\u2013","151":"\u2014","152":"\u02dc","153":"\u2122","154":"\u0161","155":"\u203a","156":"\u0153","158":"\u017e","159":"\u0178"}')}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){"use strict";var e={};n.r(e),n.d(e,{attentionMarkers:function(){return Vt},contentInitial:function(){return Ut},disable:function(){return jt},document:function(){return Ft},flow:function(){return Gt},flowInitial:function(){return Bt},insideSpan:function(){return $t},string:function(){return Ht},text:function(){return zt}});var t={};n.r(t),n.d(t,{boolean:function(){return Un},booleanish:function(){return Bn},commaOrSpaceSeparated:function(){return Vn},commaSeparated:function(){return $n},number:function(){return Hn},overloadedBoolean:function(){return Gn},spaceSeparated:function(){return zn}});var r=n(2791),a=n(1250);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function u(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function d(e,t){if(e){if("string"===typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}function p(e){return function(e){if(Array.isArray(e))return c(e)}(e)||u(e)||d(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e){if(Array.isArray(e))return e}function g(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function h(e,t){return m(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i=[],o=!0,s=!1;try{for(n=n.call(e);!(o=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);o=!0);}catch(l){s=!0,a=l}finally{try{o||null==n.return||n.return()}finally{if(s)throw a}}return i}}(e,t)||d(e,t)||g()}var f={categories:[{title:"Proxmox VE Tools"},{title:"Home Assistant"},{title:"Automation"},{title:"MQTT"},{title:"Database"},{title:"Zigbee - Zwave"},{title:"Monitoring - Analytics"},{title:"Docker - Kubernetes"},{title:"Operating System"},{title:"TurnKey"},{title:"Server - Networking"},{title:"Media - Photo"},{title:"Ad Blocker - DNS"},{title:"Document - Notes"},{title:"Dashboards"},{title:"File - Code"},{title:"Miscellaneous"}],items:[{category:"Proxmox VE Tools",title:"Proxmox VE Post Install",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/proxmoxve/icon.png?raw=true" height="100"/></p>\n   \n  <h1 align="center" id="heading"> Proxmox VE Post Install </h1>\n  \n  This script provides options for managing Proxmox VE repositories, including disabling the Enterprise Repo, adding or correcting PVE sources, enabling the No-Subscription Repo, adding the test Repo, disabling the subscription nag, updating Proxmox VE, and rebooting the system.\n    \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)"\n  ~~~\n  \n  It is recommended to answer \u201cyes\u201d (y) to all options presented during the process.'},{category:"Proxmox VE Tools",title:"Proxmox VE Kernel Clean",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/proxmoxve/icon.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading">Proxmox VE Kernel Clean </h1>\n  Cleaning unused kernel images is beneficial for reducing the length of the GRUB menu and freeing up disk space. By removing old, unused kernels, the system is able to conserve disk space and streamline the boot process.\n      \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/kernel-clean.sh)"\n  ~~~'},{category:"Proxmox VE Tools",title:"Proxmox VE Processor Microcode",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/processor.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Proxmox VE Processor Microcode </h1>\n  <h3 align="center"> For Intel or AMD Processors </h3>\n  \n  Processor Microcode is a layer of low-level software that runs on the processor and provides patches or updates to its firmware. Microcode updates can fix hardware bugs, improve performance, and enhance security features of the processor.\n\n  It\'s important to note that the availability of firmware update mechanisms, such as Intel\'s Management Engine (ME) or AMD\'s Platform Security Processor (PSP), may vary depending on the processor and its specific implementation. Therefore, it\'s recommended to consult the documentation for your processor to confirm whether firmware updates can be applied through the operating system.  \n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/microcode.sh)"\n  ~~~\n  \n\n  After a reboot, you can check whether any microcode updates are currently in effect by running the following command.\n\n  ~~~bash\n  journalctl -k | grep -E "microcode" | head -n 1\n  ~~~'},{category:"Proxmox VE Tools",title:"Proxmox VE CPU Scaling Governor",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/cpu.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading">Proxmox VE CPU Scaling Governor </h1>\n\n  The CPU scaling governor determines how the CPU frequency is adjusted based on the workload, with the goal of either conserving power or improving performance. By scaling the frequency up or down, the operating system can optimize the CPU usage and conserve energy when possible. [Generic Scaling Governors](https://www.kernel.org/doc/html/latest/admin-guide/pm/cpufreq.html?#generic-scaling-governors)\n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/scaling-governor.sh)"\n  ~~~'},{category:"Proxmox VE Tools",title:"Proxmox VE LXC Cleaner",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/lxc.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading">Proxmox VE LXC Cleaner </h1>\n  This script provides options to delete logs and cache, and repopulate apt lists for Ubuntu and Debian systems.\n   \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/clean-lxcs.sh)"\n  ~~~'},{category:"Proxmox VE Tools",title:"Proxmox VE LXC Updater",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/lxc.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading">Proxmox VE LXC Updater </h1>\n  This script has been created to simplify and speed up the process of updating all LXC containers across various Linux distributions, such as Ubuntu, Debian, Devuan, Alpine Linux, CentOS-Rocky-Alma, Fedora, and ArchLinux. It\'s designed to automatically skip templates and specific containers during the update, enhancing its convenience and usability.<br> \n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/update-lxcs.sh)"\n  ~~~'},{category:"Proxmox VE Tools",title:"Proxmox VE Cron LXC Updater",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/lxc.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading">Proxmox VE Cron LXC Updater </h1>\n  This script will add/remove a crontab schedule that updates all LXCs every Sunday at midnight.<br> \n  \n  To exclude LXCs from updating, edit crontab (<code class="highlighter-rouge">crontab -e</code>) and add CTID as shown in the example (-s 103 111)\n\n  example: <code class="highlighter-rouge">0 0 * * 0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/update-lxcs-cron.sh)" -s 103 111 >>/var/log/update-lxcs-cron.log 2>/dev/null</code>\n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/cron-update-lxcs.sh)"\n  ~~~'},{category:"Proxmox VE Tools",title:"Proxmox VE Monitor-All",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/monitor.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading">Proxmox VE Monitor-All </h1>\n  This script will add Monitor-All to Proxmox VE, which will monitor the status of all your instances, both containers and virtual machines, excluding templates and user-defined ones, and automatically restart or reset them if they become unresponsive. This is particularly useful if you\'re experiencing problems with Home Assistant becoming non-responsive every few days/weeks. Monitor-All also maintains a log of the entire process, which can be helpful for troubleshooting and monitoring purposes.<br>\n  \n  \ud83d\udec8 Virtual machines without the QEMU guest agent installed must be excluded. <br>\n  \ud83d\udec8 Prior to generating any new CT/VM not found in this repository, it\'s necessary to halt Proxmox VE Monitor-All by running <code class="highlighter-rouge">systemctl stop ping-instances</code>. <br>\n  \n  All commands are run from the <b>Proxmox VE shell.</b>.\n  \n  <b>To add or remove Monitor-All in Proxmox VE:</b>\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/monitor-all.sh)"\n  ~~~\n  <br>\n  <br>\n  To make setup changes, first stop the service: <code class="highlighter-rouge">systemctl stop ping-instances</code>\n\n  To edit pause time: \n  ~~~bash\n  nano /usr/local/bin/ping-instances.sh\n  ~~~\n\n  To add excluded instances:\n  ~~~bash\n  nano /etc/systemd/system/ping-instances.service\n  ~~~\n  \n  After changes have been saved, <code class="highlighter-rouge">systemctl daemon-reload</code> and start the service: <code class="highlighter-rouge">systemctl start ping-instances</code>\n\n  Monitor-All logs : <code class="highlighter-rouge">cat /var/log/ping-instances.log</code>'},{category:"Proxmox VE Tools",title:"Proxmox VE Host Backup",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/bash-dark.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading">Proxmox VE Host Backup </h1>\n  This script serves as a versatile backup utility, enabling users to specify both the backup path and the directory they want to work in. This flexibility empowers users to select the specific files and directories they wish to back up, making it compatible with a wide range of hosts, not limited to Proxmox.\n   \n  Run the command below in the <b>Proxmox VE Shell</b>, or any host.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/host-backup.sh)"\n  ~~~\n  \n  A backup is rendered ineffective when it remains stored on the host'},{category:"Proxmox VE Tools",title:"Proxmox VE Dark Theme",content:'<p align="center"><img src="https://camo.githubusercontent.com/f6f33a09f8c1207dfb3dc1cbd754c2f3393562c11b1c999751ad9a91a656834a/68747470733a2f2f692e696d6775722e636f6d2f536e6c437948462e706e67" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Proxmox VE Discord Dark Theme </h1>\n  \n  A dark theme for the Proxmox VE Web UI is a custom theme created by [Weilbyte](https://github.com/Weilbyte/PVEDiscordDark) that changes the look and feel of the Proxmox web-based interface to a dark color scheme. This theme can improve the visual experience and make the interface easier on the eyes, especially when used in low-light environments.\n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash <(curl -s https://raw.githubusercontent.com/Weilbyte/PVEDiscordDark/master/PVEDiscordDark.sh ) install\n  ~~~\n  \n  To uninstall the theme, simply run the script with the <code class="highlighter-rouge">uninstall</code> command.'},{category:"Proxmox VE Tools",title:"Proxmox Backup Server Post Install",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/proxmoxve/icon.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Proxmox Backup Server Post Install </h1>\n  The script will give options to Disable the Enterprise Repo, Add/Correct PBS Sources, Enable the No-Subscription Repo, Add Test Repo, Disable Subscription Nag, Update Proxmox Backup Server and Reboot PBS.\n  \n  Run the command below in the <b>Proxmox Backup Server Shell</b>. \u26a0\ufe0f **Proxmox Backup Server ONLY**\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pbs-install.sh)"\n  ~~~\n  \n  It is recommended to answer \u201cyes\u201d (y) to all options presented during the process.'},{category:"Home Assistant",title:"Home Assistant OS VM",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/haos.png?raw=true"/></p>\n   \n  <h1 align="center" id="heading"> Home Assistant OS VM </h1>\n  <h3 align="center"> Option to create VM using Stable, Beta or Dev Image </h3>\n  \n  This script automates the process of creating a Virtual Machine (VM) using the official KVM (qcow2) disk image provided by the Home Assistant Team. It involves finding, downloading, and extracting the image, defining user-defined settings, importing and attaching the disk, setting the boot order, and starting the VM. It supports various storage types, and does not involve any hidden installations.\n\n  To create a new Proxmox VE Home Assistant OS VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/haos-vm.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  4GB RAM - 32GB Storage - 2vCPU - Stable Image \u26a1</h3>\n  \n  \ud83d\udec8 The disk must have a minimum size of 32GB and its size cannot be changed during the creation of the VM.\n\n  After the script completes, click on the VM, then on the **_Summary_** tab to find the VM IP.\n  \n  **Home Assistant Interface: IP:8123**'},{category:"Home Assistant",title:"PiMox HAOS VM",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/pimox.png?raw=true" width="100" height="100"/></p>\n  <h1 align="center" id="heading"> PiMox HAOS VM </h1>\n  \n  <h3 align="center"> Option to create VM using Stable, Beta or Dev Image </h3>\n  \n  The script automates the manual process of finding, downloading and extracting the aarch64 (qcow2) disk image provided by the Home Assistant Team, creating a VM with user defined settings, importing and attaching the disk, setting the boot order and starting the VM.\n  \n  To create a new PiMox HAOS VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/pimox-haos-vm.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  4GB RAM - 32GB Storage - 2vCPU - Stable Image \u26a1</h3>\n  \n  After the script completes, click on the VM, then on the **_Console_** tab to find the VM IP.\n  \n  **Home Assistant Interface: IP:8123**'},{category:"Home Assistant",title:"Home Assistant Container LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/docker.svg" height="100"/>\n  <img src="https://avatars.githubusercontent.com/u/13844975?s=200&amp;v=4" width="100" height="100"/><img src="https://avatars1.githubusercontent.com/u/22225832?s=400&amp;v=4" alt="GitHub - portainer/portainer-docs: Portainer documentation" width="100" height="100"/></p>\n    \n  <h1 align="center" id="heading"> Home Assistant Container LXC </h1>\n  <h3 align="center"> Option to Use Fuse Overlayfs (Advanced)</h3> \n\n  A standalone container-based installation of Home Assistant Core means that the software is installed inside a Docker container, separate from the host operating system. This allows for flexibility and scalability, as well as improved security, as the container can be easily moved or isolated from other processes on the host.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Home Assistant Container LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Containers, Remove Images or Install HACS, run the command below (or type update) in the <b>LXC Console</b>.\n    \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homeassistant.sh)"\n  ~~~\n    \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 16GB Storage - 2vCPU \u26a1</h3>\n    \n  **Home Assistant Interface: IP:8123**\n    \n  **Portainer Interface: IP:9000**\n    \n  \u2699\ufe0f **Path to HA /config**\n  ~~~bash\n  /var/lib/docker/volumes/hass_config/_data\n  ~~~'},{category:"Home Assistant",title:"Home Assistant Core LXC",content:'<p align="center"><img src="https://avatars.githubusercontent.com/u/13844975?s=200&amp;v=4" width="100" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Home Assistant Core LXC </h1>\n  \n  A standalone installation of Home Assistant Core refers to a setup where the Home Assistant Core software is installed directly on a device or operating system, without the use of containers. This provides a simpler, but less flexible and scalable solution, as the software is tightly coupled with the underlying system.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n  \n  To create a new Proxmox VE Home Assistant Core LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update, Install HACS or Filebrowser, run the command below (or type update) in the <b>LXC Console</b>. <br>\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homeassistant-core.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n\n  **Home Assistant Interface: IP:8123**\n  \n  \u2699\ufe0f **Path to HA /config**\n  ~~~bash\n  /root/.homeassistant\n  ~~~'},{category:"Home Assistant",title:"Podman Home Assistant Container LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/podman.svg" height="100"/>\n  <img src="https://avatars.githubusercontent.com/u/13844975?s=200&amp;v=4" height="100"/><img/></p>\n  <h1 align="center" id="heading">Podman Home Assistant Container LXC</h1>\n  \n  A standalone Podman container-based installation of Home Assistant Core means that the Home Assistant Core software is installed inside a container managed by Podman, separate from the host operating system. This provides a flexible and scalable solution for running the software, as the container can be easily moved between host systems or isolated from other processes for security. Podman is a popular open-source tool for managing containers that is similar to Docker, but designed for use on Linux systems without a daemon.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Podman Home Assistant Container LXC, run the command below in the <b>Proxmox VE Shell</b>. <br> \n  To Update Podman, Install HACS or FileBrowser, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/podman-homeassistant.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 16GB Storage - 2vCPU \u26a1</h3>\n    \n  **Home Assistant Interface: IP:8123**\n    \n  \u2699\ufe0f **Path to HA /config**\n  ~~~bash\n  /var/lib/containers/storage/volumes/hass_config/_data\n  ~~~'},{category:"Automation",title:"ioBroker LXC",content:'<p align="center"><img src="https://github.com/ioBroker/ioBroker/blob/master/img/logos/ioBroker_Logo_256px.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> ioBroker LXC </h1>\n    \n  [ioBroker](https://www.iobroker.net/#en/intro) is an open-source platform for building and managing smart home automation systems. It provides a centralized control and management interface for connected devices, sensors, and other IoT devices. ioBroker integrates with a wide range of popular smart home systems, devices, and services, making it easy to automate tasks and processes, monitor and control devices, and collect and analyze data from a variety of sources. With its flexible architecture and easy-to-use interface, ioBroker is designed to make it simple for users to build and customize their own smart home automation systems, regardless of their technical background or experience.\n  \n  To create a new Proxmox VE ioBroker LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/iobroker.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n    \n  **ioBroker Interface: IP:8081**'},{category:"Automation",title:"openHAB LXC",content:'<p align="center"><img src="https://www.openhab.org/openhab-logo-square.png?raw=true" height="100"/></p>\n  <h1 align="center" id="heading">openHAB LXC</h1>\n\n  [openHAB](https://www.openhab.org/) is a popular open-source home automation platform that provides a vendor and technology agnostic solution for integrating and automating various smart home devices and services. It supports a wide range of devices and protocols, making it easy to bring together different systems and devices into a unified smart home ecosystem. With its user-friendly interface and powerful automation capabilities, openHAB makes it easy to create custom automations and monitor and control your smart home devices and systems, all from a single interface.\n  \n  To create a new Proxmox VE openHAB LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/openhab.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n    \n  **openHAB Interface: IP:8080**'},{category:"Automation",title:"Homebridge LXC",content:'<p align="center"><img src="https://homebridge.io/assets/images/logo.svg" height="100"/></p>\n  <h1 align="center" id="heading">Homebridge LXC</h1>\n\n  [Homebridge](https://homebridge.io/) is a popular open-source software platform that enables you to integrate smart home devices and services that do not natively support Apple\'s HomeKit protocol into the HomeKit ecosystem. This allows you to control and automate these devices using Siri, the Home app, or other HomeKit-enabled apps, making it easy to bring together a variety of different devices into a unified smart home system. With Homebridge, you can expand the capabilities of your smart home, unlocking new possibilities for automating and controlling your devices and systems.\n\n  To create a new Proxmox VE Homebridge LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homebridge.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 1vCPU \u26a1</h3>\n    \n  **Homebridge Interface: IP:8581**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">admin</code>'},{category:"Automation",title:"ESPHome LXC",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/esphome/dark_icon@2x.png?raw=true" height="100"/></p>\n  <h1 align="center" id="heading">ESPHome LXC</h1>\n  \n  [ESPHome](https://esphome.io/) is a platform for controlling ESP8266/ESP32-based devices using configuration files and integrating them with Home Automation systems. It provides a simple and flexible way to set up and manage the functionality of these devices, including defining and automating actions, monitoring sensors, and connecting to networks and other services. ESPHome is designed to be user-friendly and easy to use, and supports a wide range of features and integrations, making it a popular choice for home automation projects and IoT applications.\n\n  To create a new Proxmox VE ESPHome LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update ESPHome, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/esphome.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n    \n  **ESPHome Interface: IP:6052**'},{category:"Automation",title:"Node-Red LXC",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/custom_integrations/nodered/icon.png?raw=true" height="100"/></p>\n  <h1 align="center" id="heading">Node-Red LXC</h1>\n\n  [Node-RED](https://nodered.org/) is a visual programming tool that allows developers and non-developers alike to easily wire together hardware devices, APIs, and online services to create custom applications. It provides a visual interface for building workflows, making it easy to create and modify complex integrations without having to write any code. Node-RED is used in a wide range of applications, from simple automations to complex integrations, and is known for its simplicity, versatility, and ease of use.\n\n  To create a new Proxmox VE Node-RED LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Node-Red or Install Themes run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/node-red.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 1vCPU \u26a1</h3>\n    \n  **Node-Red Interface: IP:1880**'},{category:"Automation",title:"n8n LXC",content:'<p align="center"><img src="https://docs.n8n.io/_images/n8n-docs-icon.svg" height="70"/></p>\n  <h1 align="center" id="heading">n8n LXC</h1>\n    \n  [n8n](https://n8n.io/) is a workflow automation tool that enables users to automate various tasks and processes by connecting various data sources, systems, and services. It provides a visual interface for building workflows, allowing users to easily define and automate complex sequences of actions, such as data processing, conditional branching, and API calls. n8n supports a wide range of integrations, making it a versatile tool for automating a variety of use cases, from simple data processing workflows to complex business processes. With its extendable architecture, n8n is designed to be easily customizable and can be adapted to meet the specific needs of different users and industries.\n \n  To create a new Proxmox VE n8n LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update n8n, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/n8n.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 3GB Storage - 2vCPU \u26a1</h3>\n    \n  **n8n Interface: IP:5678**'},{category:"Automation",title:"Scrypted LXC",content:'<p align="center"><img src="https://www.scrypted.app/images/web_hi_res_512.png?raw=true" height="100"/></p>\n  <h1 align="center" id="heading">Scrypted LXC</h1>\n\n  <h3 align="center"> Option to add Coral Edge TPU support </h3> \n  \n  [Scrypted](https://www.scrypted.app/) is a home automation platform that focuses on providing a seamless experience for managing and utilizing cameras in a smart home setup. It offers features like camera management, event triggering, video and image storage, and integration with other smart home devices and services. Scrypted is designed to make it easy to set up and use cameras in a home automation system, providing a simple and user-friendly interface for monitoring and automating camera-related tasks.\n\n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n  \n  To create a new Proxmox VE Scrypted LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/scrypted.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n    \n  **Scrypted Interface: (https)IP:10443**'},{category:"Automation",title:"FHEM LXC",content:'<p align="center"><img src="https://avatars.githubusercontent.com/u/45183393?s=100&v=4" height="100"/></p>\n  <h1 align="center" id="heading">FHEM LXC</h1>\n\n  [FHEM](https://fhem.de/) stands for "Freundliche Hausautomation und Energie-Messung," which translates to "Friendly Home Automation and Energy Measurement" in English. The software can interface with a wide range of devices, including lighting systems, thermostats, weather stations, and media devices, among others.\n  \n  \ud83d\udec8 If the LXC is created Privileged, the script will automatically set up USB passthrough.\n  \n  To create a new Proxmox VE FHEM LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/fhem.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n    \n  **FHEM Interface: IP:8083**'},{category:"MQTT",title:"MQTT LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/eclipsemosquitto.svg" height="100"/></p>\n  <h1 align="center" id="heading">MQTT LXC</h1>\n  \n  [Eclipse Mosquitto](https://mosquitto.org/) is an open-source message broker that implements the MQTT (Message Queuing Telemetry Transport) protocol. It is a lightweight and simple-to-use message broker that allows IoT devices and applications to communicate with each other by exchanging messages in real-time. Mosquitto is widely used in IoT applications, due to its low resource requirements and its compatibility with a wide range of devices and platforms\n  \n  To create a new Proxmox VE MQTT LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/mqtt.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n    \n  Mosquitto comes with a password file generating utility called mosquitto_passwd.\n  ~~~bash\n  mosquitto_passwd -c /etc/mosquitto/passwd <user>\n  ~~~\n \n  Ensure that the file is managed by the appropriate user and group.\n  ~~~bash\n  chown mosquitto:mosquitto /etc/mosquitto/passwd\n  ~~~\n\n  Now restart Mosquitto server.\n  ~~~bash\n  systemctl restart mosquitto\n  ~~~'},{category:"MQTT",title:"EMQX LXC",content:'<p align="center"><img src="https://github.com/hassio-addons/repository/blob/master/emqx/icon.png?raw=true" height="100"/></p>\n  <h1 align="center" id="heading">EMQX LXC</h1>\n\n  [EMQX](https://www.emqx.io/) is an open-source MQTT broker that features a high-performance, real-time message processing engine. It is designed to handle large-scale IoT deployments, providing fast and reliable message delivery for connected devices. EMQX is known for its scalability, reliability, and low latency, making it a popular choice for IoT and M2M applications. It also offers a wide range of features and plugins for enhanced security, monitoring, and management.\n  \n  To create a new Proxmox VE EMQX LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n    bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/emqx.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  \n  **EMQX Interface: IP:18083** \n    \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n\n  **password** <code class="highlighter-rouge">public</code>\n\n  \u2699\ufe0f **Setup**\n  \n  Access Control \u27a1 Authentication  \u27a1 Create \u27a1 Next \u27a1 Next \u27a1 Create \u27a1 Users \u27a1 Add \u27a1 Username / Password (to authenicate with MQTT) \u27a1 Save. You\'re now ready to enjoy a high-performance MQTT Broker.'},{category:"Database",title:"Mariadb LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/mariadb.svg" height="100"/></p>\n  <h1 align="center" id="heading">Mariadb LXC</h1>\n\n  <h3 align="center"> Option to Install Adminer</h3>\n  \n  [MariaDB](https://mariadb.org/) is a fork of the popular MySQL database management system that is developed and maintained by the open-source community. It is also commercially supported, offering enterprise-level features and support for organizations that require them. MariaDB aims to maintain high compatibility with MySQL, ensuring a drop-in replacement capability.\n  \n  To create a new Proxmox VE Mariadb LXC, run the command below in the <b>Proxmox VE Shell</b>.\n    \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/mariadb.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 1vCPU \u26a1</h3>\n  \n  The subsequent step involves executing the included security script. This script modifies certain default options that are less secure. Our purpose for running it is to prevent remote root logins and eliminate unnecessary database users.  \n  Run the security script:\n  ~~~bash\n  mysql_secure_installation\n  ~~~\n  Enter current password for root (enter for none): <code class="highlighter-rouge">enter</code>\n    \n  Switch to unix_socket authentication [Y/n] <code class="highlighter-rouge">y</code> \n    \n  Change the root password? [Y/n] <code class="highlighter-rouge">n</code> \n    \n  Remove anonymous users? [Y/n] <code class="highlighter-rouge">y</code> \n    \n  Disallow root login remotely? [Y/n] <code class="highlighter-rouge">y</code>  \n    \n  Remove test database and access to it? [Y/n] <code class="highlighter-rouge">y</code> \n    \n  Reload privilege tables now? [Y/n] <code class="highlighter-rouge">y</code>  \n  \n  We will create a new account called admin with the same capabilities as the root account, but configured for password authentication. \n  ~~~bash\n  mysql\n  ~~~ \n  Prompt will change to <code class="highlighter-rouge">MariaDB [(none)]></code>\n  \n  Create a new local admin (Change the username and password to match your preferences)\n  ~~~sql\n  CREATE USER \'admin\'@\'localhost\' IDENTIFIED BY \'password\';\n  ~~~\n  Give local admin root privileges (Change the username and password to match above)\n  ~~~sql\n  GRANT ALL ON *.* TO \'admin\'@\'localhost\' IDENTIFIED BY \'password\' WITH GRANT OPTION;\n  ~~~\n  \n  Now, we\'ll give the user admin root privileges and password-based access that can connect from anywhere on your local area network (LAN), which has addresses in the subnet 192.168.100.0/24. This is an improvement because opening a MariaDB server up to the Internet and granting access to all hosts is bad practice.. Change the **_username_**, **_password_** and **_subnet_** to match your preferences:\n  ~~~sql\n  GRANT ALL ON *.* TO \'admin\'@\'192.168.100.%\' IDENTIFIED BY \'password\' WITH GRANT OPTION;\n  ~~~\n  Flush the privileges to ensure that they are saved and available in the current session:\n  ~~~sql\n  FLUSH PRIVILEGES;\n  ~~~\n  command below this, exit the MariaDB shell:\n  ~~~bash\n  exit\n  ~~~\n  Log in as the new database user you just created:\n  ~~~bash\n  mysql -u admin -p\n  ~~~\n  Create a new database:\n  ~~~sql\n  CREATE DATABASE homeassistant;\n  ~~~\n  command below this, exit the MariaDB shell:\n  ~~~bash\n  exit\n  ~~~\n  \u26a0\ufe0f Reboot the lxc \n  \n  Checking status.\n  ~~~bash\n  systemctl status mariadb\n  ~~~ \n  Change the recorder: <code class="highlighter-rouge">db_url:</code> in your HA configuration.yaml\n    \n  Example:\n  ~~~bash\n  recorder:\n    db_url: mysql://admin:password@192.168.100.26:3306/homeassistant?charset=utf8mb4\n  ~~~\n    \n  \u2699\ufe0f [**Adminer**](https://www.adminer.org/) is a full-featured database management tool\n    \n  **Adminer Interface: IP/adminer/**'},{category:"Database",title:"PostgreSQL LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/postgresql.svg" height="100"/></p>\n  <h1 align="center" id="heading">PostgreSQL LXC</h1>\n  <h3 align="center"> Option to Install Adminer</h3>\n  \n  [PostgreSQL](https://www.postgresql.org/) (often referred to as Postgres) is an open-source relational database management system that is known for its extensibility and strict adherence to SQL standards. It is a free and powerful database solution, suitable for a wide range of applications, from small projects to large enterprise systems. PostgreSQL is widely used for its reliability, feature-richness, and robustness.\n  \n  To create a new Proxmox VE PostgreSQL LXC, run the command below in the <b>Proxmox VE Shell</b>.\n    \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/postgresql.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 1vCPU \u26a1</h3>\n  \n  To make sure our PostgreSQL is secured with a strong password, set a password for its system user and then change the default database admin user account\n  \n  Change user password\n  ~~~bash\n  passwd postgres\n  ~~~\n  Login using Postgres system account\n    \n  ~~~bash\n  su - postgres\n  ~~~\n  Now, change the Admin database password \n  ~~~bash\n  psql -c "ALTER USER postgres WITH PASSWORD \'your-password\';"\n  ~~~\n  Create a new user.\n  ~~~bash\n  psql\n  ~~~\n  ~~~sql\n  CREATE USER admin WITH PASSWORD \'your-password\';\n  ~~~\n  Create a new database:\n  ~~~sql\n  CREATE DATABASE homeassistant;\n  ~~~\n  Grant all rights or privileges on created database to the user\n  ~~~sql\n  GRANT ALL ON DATABASE homeassistant TO admin;\n  ~~~\n  To exit psql\n  ~~~bash\n  \\q\n  ~~~ \n  Then type exit to get back to root\n  \n  Change the recorder: <code class="highlighter-rouge">db_url:</code> in your HA configuration.yaml\n    \n  Example:\n  ~~~bash\n  recorder:\n    db_url: postgresql://admin:your-password@192.168.100.20:5432/homeassistant?client_encoding=utf8\n  ~~~\n\n  \u2699\ufe0f [**Adminer**](https://www.adminer.org/) is a full-featured database management tool\n    \n  **Adminer Interface: IP/adminer/**'},{category:"Database",title:"InfluxDB LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/influx.svg" height="100"/></p>\n  <h1 align="center" id="heading">InfluxDB LXC</h1>\n  <h3 align="center"> Options to Install InfluxDB v1 or v2 and Telegraf</h3>\n  * Choosing InfluxDB v1 will result in Chronograf being installed automatically.\n  \n  [InfluxDB](https://www.influxdata.com/) is designed to handle high write and query loads, and is optimized for storing and analyzing time-stamped data, such as metrics, events, and logs. InfluxDB supports SQL-like query language and has a built-in HTTP API for data ingestion and retrieval. It\'s commonly used for IoT and industrial applications where time-series data is involved.\n  \n  [Telegraf](https://www.influxdata.com/time-series-platform/telegraf/) is a server agent that collects, processes, and aggregates metrics and events data from different sources, such as systems, databases, and APIs, and outputs the data to various outputs, such as InfluxDB, Prometheus, Elasticsearch, and many others.\n  \n  To create a new Proxmox VE InfluxDB LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n    bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/influxdb.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n\n InfluxDB V1 (Chronograf) Interface: IP:8888\n\n InfluxDB V2 Interface: IP:8086\n\n \u2699\ufe0f **InfluxDB Configuration**\n  \n  ~~~yaml\n  nano /etc/influxdb/influxdb.conf\n  ~~~\n  \n \u2699\ufe0f **Telegraf Configuration**\n  \n  ~~~yaml\n  nano /etc/telegraf/telegraf.conf\n  ~~~'},{category:"Zigbee - Zwave",title:"Zigbee2MQTT LXC",content:'<p align="center"><img src="https://github.com/Koenkk/zigbee2mqtt/blob/master/images/logo_bee_only.png?raw=true" height="100"/></p>\n  <h1 align="center" id="heading">Zigbee2MQTT LXC</h1>\n\n  <h3 align="center"> Option to switch to Edge/dev branch</h3>\n  \n  [Zigbee2MQTT](https://www.zigbee2mqtt.io/) is an open-source software project that allows you to use Zigbee-based smart home devices (such as those sold under the Philips Hue and Ikea Tradfri brands) with MQTT-based home automation systems, like Home Assistant, Node-RED, and others. The software acts as a bridge between your Zigbee devices and MQTT, allowing you to control and monitor these devices from your home automation system.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Zigbee2MQTT LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Zigbee2MQTT, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/zigbee2mqtt.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n \n  As an alternative option, you can use Alpine Linux and the Zigbee2MQTT package to create a Zigbee2MQTT LXC container with faster creation time and minimal system resource usage. <br>\n\n  To create a new Proxmox VE Alpine-Zigbee2MQTT LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  ~~~bash\n  bash -c "$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-zigbee2mqtt.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  256MiB RAM - 300MiB Storage - 1vCPU \u26a1</h3>\n\n  \u2699\ufe0f **Determine the location of your adapter**\n    \n  ~~~bash\n  ls -l /dev/serial/by-id\n  ~~~\n  Example Output: <code class="highlighter-rouge">lrwxrwxrwx 1 root root 13 Jun 19 17:30 usb-1a86_USB_Serial-if00-port0 -> ../../ttyUSB0</code>\n  \n  \n  \u2699\ufe0f \u26a0\ufe0f **Before you start Zigbee2MQTT you need to edit the [configuration.yaml](https://www.zigbee2mqtt.io/guide/configuration/)**\n\n  Debian<br>\n  ~~~bash\n  nano /opt/zigbee2mqtt/data/configuration.yaml\n  ~~~\n  Alpine<br>\n  ~~~bash\n  nano /etc/zigbee2mqtt/configuration.yaml\n  ~~~\n\n  Save and exit the editor with \u201cCtrl+O\u201d, \u201cEnter\u201d and \u201cCtrl+X\u201d\n  \n  Example:\n  ~~~yaml\n  frontend:\n    port: 9442\n  homeassistant: true\n  permit_join: false\n  mqtt:\n    base_topic: zigbee2mqtt\n    server: \'mqtt://192.168.86.224:1883\'\n    user: usr\n    password: pwd\n    keepalive: 60\n    reject_unauthorized: true\n    version: 4\n  serial:\n    port: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0\n    #adapter: deconz\t#(uncomment for ConBee II)\n    #adapter: ezsp    #(uncomment for ITead Sonoff Zigbee 3.0 USB Dongle Plus V2 model "ZBDongle-E version")\n  advanced:\n    pan_id: GENERATE\n    network_key: GENERATE\n    channel: 20\n  ~~~\n  \u2699\ufe0f **Zigbee2MQTT can be started after completing the configuration**\n\n  Debian<br>  \n  ~~~bash\n  cd /opt/zigbee2mqtt && npm start\n  ~~~\n  Alpine<br>  \n  ~~~bash\n  rc-update add zigbee2mqtt default\n  ~~~'},{category:"Zigbee - Zwave",title:"deCONZ LXC",content:'<p align="center"><img src="https://phoscon.de/img/phoscon-logo128x.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> deCONZ LXC </h1>\n  \n  [deCONZ](https://www.phoscon.de/en/conbee2/software#deconz) is a software for managing and controlling Zigbee-based smart home devices. It allows for setting up, configuring and visualizing the status of connected devices, as well as for triggering actions and automations. It works as a bridge between the Zigbee network and other home automation systems and can be used as a standalone solution or integrated into existing setups.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE deCONZ LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n    bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/deconz.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **deCONZ Interface: IP:80**'},{category:"Zigbee - Zwave",title:"Z-Wave JS UI LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/zwave.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Z-Wave JS UI LXC </h1>\n  \n  [Z-Wave JS UI](https://github.com/zwave-js/zwave-js-ui#) is an open-source software that serves as a gateway between Z-Wave devices and MQTT (Message Queuing Telemetry Transport) protocol, allowing users to control and monitor their Z-Wave devices via a user interface. The software provides a configurable platform to manage Z-Wave networks and integrate with other smart home systems through MQTT.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n  \n  To create a new Proxmox VE Z-Wave JS UI LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Z-Wave JS UI, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/zwave-js-ui.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Z-Wave JS UI Interface: IP:8091**'},{category:"Monitoring - Analytics",title:"Uptime Kuma LXC",content:'<p align="center"><img src="https://github.com/louislam/uptime-kuma/blob/master/public/icon.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Uptime Kuma LXC </h1>\n  \n  [Uptime Kuma](https://github.com/louislam/uptime-kuma#uptime-kuma) is a monitoring and alerting system that tracks the availability and performance of servers, websites, and other internet-connected devices. It can be self-hosted and is open-source, offering a visually appealing interface for monitoring and receiving notifications about downtime events.\n  \n  To create a new Proxmox VE Uptime Kuma LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Uptime Kuma, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/uptimekuma.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **Uptime Kuma Interface: IP:3001**'},{category:"Monitoring - Analytics",title:"Pi.Alert LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/leiweibau/Pi.Alert/main/front/img/favicons/glass_black_white.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Pi.Alert LXC </h1>\n  \n  [Pi.Alert](https://github.com/leiweibau/Pi.Alert/) is a WIFI / LAN intruder detector. Checks the devices connected and alert you with unknown devices. It also warns of the disconnection of "always connected" devices.\n  \n  To create a new Proxmox VE Pi.Alert LXC, run the command below in the <b>Proxmox VE Shell</b>.<br>\n  To Update Pi.Alert, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/pialert.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 3GB Storage - 1vCPU \u26a1</h3>\n  \n  **Pi.Alert Interface: IP/pialert/**'},{category:"Monitoring - Analytics",title:"OpenObserve LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/tteck/Proxmox/main/misc/images/openobsecure.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> OpenObserve LXC </h1>\n  \n  [OpenObserve](https://openobserve.ai/) is a simple yet sophisticated log search, infrastructure monitoring, and APM solution.\n  \n  To create a new Proxmox VE OpenObserve LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update OpenObserve, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/openobserve.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 3GB Storage - 1vCPU \u26a1</h3>\n  \n  **Credentials:** <code class="highlighter-rouge">cat /opt/openobserve/data/.env</code>\n\n  **OpenObserve Interface: IP:5080**'},{category:"Monitoring - Analytics",title:"Change Detection LXC",content:'<p align="center"><img src="https://github.com/dgtlmoon/changedetection.io/blob/master/changedetectionio/static/images/avatar-256x256.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Change Detection LXC </h1>\n  \n  [Change Detection](https://changedetection.io/) is a service that allows you to monitor changes to web pages and receive notifications when changes occur. It can be used for a variety of purposes such as keeping track of online price changes, monitoring news websites for updates, or tracking changes to online forums.\n\n  To create a new Proxmox VE Change Detection LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Change Detection, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/changedetection.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **Change Detection Interface: IP:5000**'},{category:"Monitoring - Analytics",title:"Prometheus LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/prometheus.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Prometheus LXC </h1>\n  \n  [Prometheus](https://prometheus.io/) is widely used to monitor the performance and health of various infrastructure components and applications, and trigger alerts based on predefined rules. It has a multi-dimensional data model and supports various data sources and exporters, making it an extremely flexible and scalable monitoring solution.\n  \n  To create a new Proxmox VE Prometheus LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/prometheus.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 1vCPU \u26a1</h3>\n  \n  **Prometheus Interface: IP:9090**'},{category:"Monitoring - Analytics",title:"Grafana LXC",content:'<p align="center"><img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fdocs.checkmk.com%2Flatest%2Fimages%2Fgrafana_logo.png&f=1&nofb=1" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Grafana LXC </h1>\n  \n  [Grafana](https://grafana.com/) is a data visualization and monitoring platform that enables users to query, visualize, alert on and understand metrics, logs, and other data sources. It integrates with various data sources, including Prometheus, InfluxDB, Elasticsearch, and many others, to present a unified view of the data and enable users to create insightful and interactive dashboards.\n  \n  To create a new Proxmox VE Grafana LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/grafana.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n \n  As an alternative option, you can use Alpine Linux and the Grafana package to create a Grafana LXC container with faster creation time and minimal system resource usage. <br>\n  \n  To create a new Proxmox VE Alpine-Grafana LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  ~~~bash\n  bash -c "$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-grafana.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  256Mib RAM - 500MiB Storage - 1vCPU \u26a1</h3>\n\n  **Grafana Interface: IP:3000**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">admin</code>'},{category:"Docker - Kubernetes",title:"Docker LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/docker.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Docker LXC </h1>\n  <h3 align="center"> Options to Install Portainer and/or Docker Compose V2 (Fuse Overlayfs is in "Advanced")</h3>\n  \n  [Docker](https://www.docker.com/) is an open-source project for automating the deployment of applications as portable, self-sufficient containers.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Docker LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/docker.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  As an alternative option, you can use Alpine Linux and the Docker package to create a Docker LXC container with faster creation time and minimal system resource usage. <br>\n  \n  To create a new Proxmox VE Alpine-Docker LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  ~~~bash\n  bash -c "$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-docker.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n\n  **\u26a0 Run Compose V2 by replacing the hyphen (-) with a space, using docker compose, instead of docker-compose.**\n  \n  **Portainer Interface: IP:9443**'},{category:"Docker - Kubernetes",title:"Dockge LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/louislam/dockge/master/frontend/public/icon.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Dockge LXC </h1>\n  <h3 align="center"> Options to add Immich and/or Home Assistant </h3>\n  \n  [Dockge](https://github.com/louislam/dockge) is a fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Dockge LXC, run the command below in the <b>Proxmox VE Shell</b>.\n\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/dockge.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 18GB Storage - 2vCPU \u26a1</h3>\n  \n  **Dockge Interface: IP:5001**\n\n  To update Dockge\n  ~~~bash\n  cd /opt/dockge\n  docker compose pull\n  docker compose up -d\n  ~~~'},{category:"Docker - Kubernetes",title:"Umbrel LXC",content:'<p align="center"><img src="https://uploads-ssl.webflow.com/62966b49981ba146f4842f45/62966b49981ba15b44842fe4_umbrel-logo-compact-purple.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Umbrel LXC </h1>\n  \n  [Umbrel](https://umbrel.com/) is an open-source project that provides a secure and easy-to-use software solution for hosting your own personal server, enabling you to have full control over your data and online services. The OS provides a comprehensive web interface and pre-configured applications for various tasks, making self-hosting accessible for non-technical users.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Umbrel LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/umbrel.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Umbrel Interface: IP** (a reboot is required before app installs)'},{category:"Docker - Kubernetes",title:"CasaOS LXC",content:'<p align="center"><img src="https://www.casaos.io/images/casa_9c491a0f.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> CasaOS LXC </h1>\n  \n  [CasaOS](https://www.casaos.io/) is a software that aims to make it easy for users to create a personal cloud system at home. It uses the Docker ecosystem to provide a simple, user-friendly experience for managing various applications and services.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE CasaOS LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/casaos.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **CasaOS Interface: IP**'},{category:"Docker - Kubernetes",title:"Runtipi LXC",content:'<p align="center"><img src="https://runtipi.io/_next/static/media/tipi.c0b9b68e.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Runtipi LXC </h1>\n  \n  [Runtipi](https://umbrel.com/) lets you install all your favorite self-hosted apps without the hassle of configuring and managing each service. One-click installs and updates for more than 180 popular apps.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Runtipi LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/runtipi.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Runtipi Interface: IP**'},{category:"Docker - Kubernetes",title:"Podman LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/podman.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Podman LXC </h1>\n  \n  [Podman](https://podman.io/) is an open-source, daemonless, and portable container engine that allows users to manage containers on Linux systems without the need for a daemon or system service to be running in the background. It provides an API and a command-line interface that can be used to create, run, and manage containers and their associated networks, volumes, and images. It is built on top of the Open Container Initiative (OCI) runtime specification, making it compatible with other OCI-compliant container engines.\n  \n  \n  To create a new Proxmox VE Podman LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/podman.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>'},{category:"Operating System",title:"Debian LXC",content:'<p align="center"><img src="https://www.debian.org/Pics/debian-logo-1024x576.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Debian LXC </h1>\n  Debian Linux is a distribution that emphasizes free software. It supports many hardware platforms.\n\n  To create a new Proxmox VE Debian LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/debian.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>'},{category:"Operating System",title:"Debian 12 VM",content:'<p align="center"><img src="https://www.debian.org/Pics/debian-logo-1024x576.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Debian 12 VM </h1>\n  Debian Linux is a distribution that emphasizes free software. It supports many hardware platforms.\n\n  To create a new Proxmox VE Debian 12 VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/debian-vm.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 2GB Storage - 2vCPU \u26a1</h3>\n  \n  More Info at https://github.com/tteck/Proxmox/discussions/1988'},{category:"Operating System",title:"Ubuntu LXC",content:'<p align="center"><img src="https://assets.ubuntu.com/v1/29985a98-ubuntu-logo32.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Ubuntu LXC </h1>\n  <h3 align="center" id="heading"> Option to select version </h3>\n  Ubuntu is a distribution based on Debian, designed to have regular releases and a consistent user experience.\n  \n  To create a new Proxmox VE Ubuntu LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/ubuntu.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU - 22.04 \u26a1</h3>'},{category:"Operating System",title:"Ubuntu 22.04 VM",content:'<p align="center"><img src="https://assets.ubuntu.com/v1/29985a98-ubuntu-logo32.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Ubuntu 22.04 VM </h1>\n  Ubuntu is a distribution based on Debian, designed to have regular releases and a consistent user experience.\n\n  To create a new Proxmox VE Ubuntu 22.04 VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/ubuntu-vm.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 2GB Storage - 2vCPU \u26a1</h3>\n  \n  More Info at https://github.com/tteck/Proxmox/discussions/2072'},{category:"Operating System",title:"Alpine LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/alpinelinux.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Alpine LXC </h1>\n  A security-oriented, lightweight Linux distribution based on musl and BusyBox.<br>\n  By default, the root password is set to <code class="highlighter-rouge">alpine</code>. If you choose to use advanced settings, you will need to define a password, autologin is currently unavailable.\n\n  To create a new Proxmox VE Alpine LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/alpine.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 100MiB Storage - 1vCPU \u26a1</h3>\n\n  \u2699\ufe0f **Default Password** <code class="highlighter-rouge">alpine</code>\n\n  \u2699\ufe0f **To Update Alpine**\n  \n  ~~~bash\n  apk update && apk upgrade\n  ~~~'},{category:"TurnKey",title:"TurnKey LXC Appliances",content:'<p align="center"><img src="https://blog.desdelinux.net/wp-content/uploads/2017/01/TurnKey-Linux.png " height="100"/></p>\n  \n  <h1 align="center" id="heading"> TurnKey LXC Appliances </h1>\n\n  [TurnKey LXC Appliances](https://www.turnkeylinux.org/) is an open-source project that provides a collection of free, ready-to-use virtual appliances and installation images for various software applications and services. These appliances are pre-configured and come with all the necessary software and settings to simplify deployment and management. The goal of TurnKey Linux is to make it easier for users to set up and run popular software applications without the need for extensive manual configuration.\n  \n  To create a new Proxmox VE TurnKey LXC Appliance , run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/turnkey/turnkey.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">Resource and network settings are adjustable post LXC creation.</h3>\n  \n  The script creates a <code class="highlighter-rouge">*.creds</code> file in the Proxmox root directory with the password of the newly created TurnKey LXC Appliance.\n\n  \u2699\ufe0f **Retrieve Password** <code class="highlighter-rouge">cat turnkey-*name*.creds</code>'},{category:"Server - Networking",title:"Cloudflared LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/cloudflare.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Cloudflared LXC </h1>\n   \n  [Cloudflared](https://www.cloudflare.com/) is a command-line tool that allows you to securely access resources on the Cloudflare network, such as websites and APIs, from your local computer. It works by creating a secure tunnel between your computer and the Cloudflare network, allowing you to access resources as if they were on your local network. \n  \n  To create a new Proxmox VE Cloudflared LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/cloudflared.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>'},{category:"Server - Networking",title:"Zoraxy LXC",content:'<p align="center"><img src="https://zoraxy.arozos.com/img/icon.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Zoraxy LXC </h1>\n   \n  [Zoraxy](https://zoraxy.arozos.com/) is an all in one homelab network routing solution. \n  \n  To create a new Proxmox VE Zoraxy LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/zoraxy.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n\n  **Zoraxy Interface: IP:8000**'},{category:"Server - Networking",title:"Nginx Proxy Manager LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/nginxproxymanager.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Nginx Proxy Manager LXC </h1>\n  \n  [Nginx Proxy Manager](https://nginxproxymanager.com/) is a tool that provides a web-based interface to manage Nginx reverse proxies. It enables users to easily and securely expose their services to the internet by providing features such as HTTPS encryption, domain mapping, and access control. It eliminates the need for manual configuration of Nginx reverse proxies, making it easy for users to quickly and securely expose their services to the public.\n  \n  To create a new Proxmox VE Nginx Proxy Manager LXC Container, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Nginx Proxy Manager, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~yaml\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nginxproxymanager.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 3GB Storage - 1vCPU \u26a1</h3>\n\n  \ud83d\udea8 Since there are hundreds of Certbot instances, it\'s necessary to install the specific Certbot of your preference.\n  \n  Forward port <code class="highlighter-rouge">80</code> and <code class="highlighter-rouge">443</code> from your router to your Nginx Proxy Manager LXC IP.\n  \n  Add the command below to your <code class="highlighter-rouge">configuration.yaml</code> in Home Assistant.\n  ~~~yaml\n  http:\n    use_x_forwarded_for: true\n    trusted_proxies:\n      - 192.168.100.27 ###(Nginx Proxy Manager LXC IP)###\n  ~~~\n  \n  **Nginx Proxy Manager Interface: IP:81**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin@example.com</code>\n  \n  **password** <code class="highlighter-rouge">changeme</code>'},{category:"Server - Networking",title:"YunoHost LXC",content:'<p align="center"><img src="https://yunohost.org/_images/ynh_logo_white_300dpi.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> YunoHost LXC </h1>\n   \n  [YunoHost](https://yunohost.org/#/) is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting, while making sure it stays reliable, secure, ethical and lightweight. \n  \n  To create a new Proxmox VE YunoHost LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/yunohost.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 20GB Storage - 2vCPU \u26a1</h3>\n  \n  **YunoHost Interface: IP/**'},{category:"Server - Networking",title:"UniFi Network Application LXC",content:'<p align="center"><img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fblog.ui.com%2Fwp-content%2Fuploads%2F2016%2F10%2Funifi-app-logo-300x108.png&f=1&nofb=1" height="100"/></p>\n  \n  <h1 align="center" id="heading"> UniFi Network Application LXC </h1>\n  \n  UniFi Network Application is a software that helps manage and monitor UniFi networks (Wi-Fi, Ethernet, etc.) by providing an intuitive user interface and advanced features. It allows network administrators to configure, monitor, and upgrade network devices, as well as view network statistics, client devices, and historical events. The aim of the application is to make the management of UniFi networks easier and more efficient.\n  \n  To create a new Proxmox VE UniFi Network Application LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/unifi.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **UniFi Interface: (https)IP:8443**'},{category:"Server - Networking",title:"Omada Controller LXC",content:'<p align="center"><img src="https://www.enterpriseitpro.net/wp-content/uploads/2020/12/logo-omada.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Omada Controller LXC </h1>\n  \n  Omada Controller is a software application used to manage TP-Link\'s Omada EAP (Enterprise Access Point) devices. It allows administrators to centrally manage a large number of EAPs, monitor network performance, and control user access to the network. The software provides an intuitive interface for network configuration, firmware upgrades, and network monitoring. By using the Omada Controller, administrators can streamline the management process, reduce manual intervention, and improve the overall security and reliability of the network.\n  \n  To create a new Proxmox VE Omada Controller LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Omada, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/omada.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Omada Interface: (https)IP:8043**'},{category:"Server - Networking",title:"WireGuard LXC",content:'<p align="center"><img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fcdn.icon-icons.com%2Ficons2%2F2699%2FPNG%2F512%2Fwireguard_logo_icon_168760.png&f=1&nofb=1" height="100"/></p>\n  \n  <h1 align="center" id="heading"> WireGuard LXC </h1>\n   \n  WireGuard is a free and open-source virtual private network (VPN) software that uses modern cryptography to secure the data transmitted over a network. It is designed to be fast, secure, and easy to use. WireGuard supports various operating systems, including Linux, Windows, macOS, Android, and iOS. It operates at the network layer and is capable of being used with a wide range of protocols and configurations. Unlike other VPN protocols, WireGuard is designed to be simple and fast, with a focus on security and speed. It is known for its ease of setup and configuration, making it a popular choice for personal and commercial use.\n\n  To create a new Proxmox VE WireGuard LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update WireGuard or Install a Dashboard, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/wireguard.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  \u2699\ufe0f **Host Configuration**\n  \n  ~~~yaml\n  nano /etc/pivpn/wireguard/setupVars.conf\n  ~~~\n  \u2699\ufe0f **Add Clients** \n  \n  ~~~yaml\n  pivpn add\n  ~~~'},{category:"Server - Networking",title:"Cronicle Primary LXC",content:'<p align="center"><img src="https://github.com/jhuckaby/Cronicle/blob/master/htdocs/images/logo-128.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Cronicle Primary LXC </h1>\n  \n  [Cronicle](https://github.com/jhuckaby/Cronicle) is a task scheduling and management software that allows users to schedule and run tasks automatically on multiple servers. It has a web-based user interface that provides a convenient and centralized way to manage tasks and view their execution status. With Cronicle, users can schedule tasks to run at specific times, or on demand, and assign tasks to specific worker servers. The software provides real-time statistics and a live log viewer to help users monitor the progress of tasks. Cronicle is designed for use in large-scale environments, making it a valuable tool for automation and management of complex and time-sensitive tasks.\n\n  To create a new Proxmox VE Cronicle Primary LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Cronicle or Install Cronicle Worker, run the command below (or type update) in a <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/cronicle.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **Cronicle Primary Interface: IP:3012**\n\n  \u2699\ufe0f Config Path\n  ~~~bash\n  /opt/cronicle/conf/config.json\n  ~~~\n\n  Primary and Worker Private Keys Must Match.'},{category:"Server - Networking",title:"MeshCentral LXC",content:'<p align="center"><img src="https://github.com/Ylianst/MeshCentral/blob/master/public/favicon-303x303.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> MeshCentral LXC </h1>\n  \n  [MeshCentral](https://meshcentral.com/info/) is a web-based computer management platform that provides remote control and management capabilities for computers. It allows administrators to manage and control computers over a local network or the internet through a single, centralized web-based interface. With MeshCentral, users can monitor the status of computers, perform remote administration tasks, and control the power state of machines. The software supports various operating systems and provides real-time updates and alerts to keep administrators informed of the status of their systems. MeshCentral is designed to provide an easy-to-use, scalable, and secure solution for remote computer management, making it a valuable tool for IT administrators, helpdesk support, and remote workers.\n  \n  To create a new Proxmox VE MeshCentral LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/meshcentral.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **MeshCentral Interface: IP**'},{category:"Server - Networking",title:"Tailscale",content:'<p align="center"><img src="https://avatars.githubusercontent.com/u/48932923?v=4&s=100"/></p>\n  \n  <h1 align="center" id="heading"> Tailscale</h1>\n  \n  [Tailscale](https://tailscale.com/) is a software-defined networking solution that enables secure communication between devices over the internet. It creates a virtual private network (VPN) that enables devices to communicate with each other as if they were on the same local network. Tailscale works even when the devices are separated by firewalls or subnets, and provides secure and encrypted communication between devices. With Tailscale, users can connect devices, servers, computers, and cloud instances to create a secure network, making it easier to manage and control access to resources. Tailscale is designed to be easy to set up and use, providing a streamlined solution for secure communication between devices over the internet.\n  \n  To Install Talescale on an existing LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/add-tailscale-lxc.sh)"\n  ~~~\n  After the script finishes, reboot the LXC then run <code class="highlighter-rouge">tailscale up</code> in the LXC console\n  \n  [**Tailscale Login**](https://login.tailscale.com/start)'},{category:"Server - Networking",title:"CrowdSec",content:'<p align="center"><img src="https://raw.githubusercontent.com/crowdsecurity/crowdsec-docs/main/crowdsec-docs/static/img/crowdsec_no_txt.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> CrowdSec</h1>\n\n  [CrowdSec](https://crowdsec.net/) is a free and open-source intrusion prevention system (IPS) designed to provide network security against malicious traffic. It is a collaborative IPS that analyzes behaviors and responses to attacks by sharing signals across a community of users. CrowdSec leverages the collective intelligence of its users to detect and respond to security threats in real-time. With CrowdSec, network administrators can set up protection against a wide range of threats, including malicious traffic, bots, and denial-of-service (DoS) attacks. The software is designed to be easy to use and integrate with existing security systems, making it a valuable tool for enhancing the security of any network.\n  \n  To Install CrowdSec, \u26a0\ufe0f run the command below in the <b>LXC console</b>.\n  \n  ~~~bash\n    bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/crowdsec.sh)"\n  ~~~\n  \n  [**Control center for your CrowdSec machines.**](https://app.crowdsec.net/product-tour)'},{category:"Server - Networking",title:"Keycloak LXC",content:'<p align="center"><img src="https://www.keycloak.org/resources/images/keycloak_icon_512px.svg?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Keycloak LXC</h1>\n\n  [Keycloak](https://www.keycloak.org/) is an open-source identity and access management solution that provides centralized authentication and authorization for modern applications and services. It enables organizations to secure their applications and services with a single sign-on (SSO) solution, reducing the need for users to remember multiple login credentials. Keycloak supports various authentication protocols, including SAML, OAuth, and OpenID Connect, and integrates with a wide range of applications and services. With Keycloak, administrators can manage user identities, define security policies, and monitor access to their applications and services. The software is designed to be scalable, flexible, and easy to use, making it a valuable tool for enhancing the security and usability of modern applications and services.\n  \n  To create a new Proxmox VE Keycloak LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/keycloak.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 2CPU \u26a1</h3>\n\n  **Keycloak Interface: IP:8080** (First start can take a few minutes)\n  \n  \u2699\ufe0f **Initial Login**\n  \n  The initial admin user can be added manually using the web frontend when accessed from localhost or automatically using environment variables.\n  \n  To add the initial admin user using environment variables, set <code class="highlighter-rouge">KEYCLOAK_ADMIN</code> for the initial admin username and <code class="highlighter-rouge">KEYCLOAK_ADMIN_PASSWORD</code> for the initial admin password.\n  \n  First, stop Keycloak\n  ~~~bash\n  systemctl stop keycloak.service\n  ~~~\n  then start Keycloak by coping & pasting the command below (only needed once)\n  ~~~bash\n  cd /opt/keycloak\n  export KEYCLOAK_ADMIN=admin\n  export KEYCLOAK_ADMIN_PASSWORD=changeme\n  bin/kc.sh start-dev \n  ~~~'},{category:"Server - Networking",title:"OpenWrt VM",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/openwrt.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> OpenWrt VM </h1>\n  \n  [OpenWrt](https://openwrt.org/) is a powerful open-source firmware that can transform a wide range of networking devices into highly customizable and feature-rich routers, providing users with greater control and flexibility over their network infrastructure.\n  \n  To create a new Proxmox VE OpenWrt VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/openwrt.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  256MiB RAM - 512MiB Storage - 1CPU \u26a1</h3>'},{category:"Server - Networking",title:"Mikrotik RouterOS CHR VM",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/mikrotik.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Mikrotik RouterOS CHR VM </h1>\n  \n  [Mikrotik RouterOS CHR](https://help.mikrotik.com/docs/display/ROS/Cloud+Hosted+Router%2C+CHR) is a Linux-based operating system that transforms a computer into a router. It provides a wide range of features for network routing, firewall, bandwidth management, wireless access point, backhaul link, hotspot gateway, VPN server, and many others. RouterOS is a versatile solution that supports various network configurations, including those with multiple WAN links, hotspots, and VPNs. It is highly customizable, allowing administrators to configure and manage their networks according to their specific requirements. With RouterOS, network administrators can monitor and control the performance and security of their networks, ensuring reliable and secure communication for their users. The software is designed to be easy to use and provides a wide range of tools for network management, making it a valuable solution for small and large networks alike.\n  \n  To create a new Proxmox VE Mikrotik RouterOS CHR VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/mikrotik-routeros.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 128MiB Storage - 2CPU \u26a1</h3>\n\n  Initial setup is done via VM console. Go to the IP address to manage.\n\n  \u2699\ufe0f **Initial Login**\n\n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">no password</code>'},{category:"Media - Photo",title:"Audiobookshelf LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/audiobookshelf.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading">Audiobookshelf LXC </h1>\n  \n  [Audiobookshelf](https://www.audiobookshelf.org/) is a Self-hosted audiobook and podcast server.\n\n  To create a new Proxmox VE Audiobookshelf LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/audiobookshelf.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Audiobookshelf Interface: IP:13378**'},{category:"Media - Photo",title:"Plex Media Server LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/plex-white.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Plex Media Server LXC </h1>\n  <h3 align="center" id="heading"> With Hardware Acceleration Support </h3> \n  \n  To create a new Proxmox VE Plex Media Server LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Plex Media Server or add Extras, run the command below (or type update) in the <b>LXC Console</b>.\n\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/plex.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Plex Media Server Interface: IP:32400/web**'},{category:"Media - Photo",title:"Tautulli LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/tautulli.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Tautulli LXC </h1>\n\n  [Tautulli](https://tautulli.com/) allows you to monitor and track your Plex Media Server usage, such as viewing statistics and analysis of your media library. It can be used to monitor user activity, get notifications about new media added to your library, and even generate reports on your media usage.\n  \n  To create a new Proxmox VE Tautulli LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/tautulli.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Tautulli Interface: IP:8181**'},{category:"Media - Photo",title:"Emby Media Server LXC",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/emby/icon.png?raw=true" height="100"/></p>\n  <h1 align="center" id="heading"> Emby Media Server LXC </h1>\n  \n  [Emby](https://emby.media/) brings together your personal videos, music, photos, and live television.\n  \n  To create a new Proxmox VE Emby Media Server LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Emby, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/emby.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Emby Media Server Interface: IP:8096**'},{category:"Media - Photo",title:"Jellyfin Media Server LXC",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/jellyfin/icon.png?raw=true" height="100"/></p>\n  <h1 align="center" id="heading"> Jellyfin Media Server LXC </h1>\n  \n  [TurnKey has a LXC CT for Jellyfin](https://www.turnkeylinux.org/mediaserver)\n  \n  To create a new Proxmox VE Jellyfin Media Server LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n    bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/jellyfin.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Jellyfin Media Server Interface: IP:8096**\n  \n  FFmpeg path: <code class="highlighter-rouge">/usr/lib/jellyfin-ffmpeg/ffmpeg</code>'},{category:"Media - Photo",title:"Jellyseerr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/jellyseerr.svg" height="100"/></p>\n  <h1 align="center" id="heading"> Jellyseerr LXC </h1>\n  \n  [Jellyseerr](https://github.com/Fallenbagel/jellyseerr) is a free and open source software application for managing requests for your media library. It is a a fork of Overseerr built to bring support for Jellyfin & Emby media servers.\n  \n  To create a new Proxmox VE Jellyseerr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Jellyseerr, run the command below (or type update) in the <b>LXC Console</b>.\n \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/jellyseerr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Jellyseerr Interface: IP:5055**'},{category:"Media - Photo",title:"Overseerr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/overseerr.svg" height="100"/></p>\n  <h1 align="center" id="heading"> Overseerr LXC </h1>\n  \n  [Overseerr](https://overseerr.dev/) is a request management and media discovery tool built to work with your existing Plex ecosystem.\n  \n  To create a new Proxmox VE Overseerr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Overseerr, run the command below (or type update) in the <b>LXC Console</b>.\n \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/overseerr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Overseerr Interface: IP:5055**'},{category:"Media - Photo",title:"Ombi LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/ombi.svg" height="100"/></p>\n  <h1 align="center" id="heading"> Ombi LXC </h1>\n  \n  [Ombi](https://ombi.io/) is a self-hosted web application designed to empower shared Plex, Emby or Jellyfin users with automated content request capabilities. By integrating with various TV Show and Movie DVR tools, Ombi ensures a smooth and comprehensive experience for your users, allowing them to effortlessly request content on their own.\n  \n  To create a new Proxmox VE Ombi LXC, run the command below in the <b>Proxmox VE Shell</b>.\n \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/ombi.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 1vCPU \u26a1</h3>\n  \n  **Ombi Interface: IP:5000**'},{category:"Media - Photo",title:"ownCloud VM",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/owncloud.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> ownCloud VM </h1>\n\n  [TurnKey ownCloud](https://www.turnkeylinux.org/owncloud) is an open-source file sharing server and collaboration platform that can store your personal content, like documents and pictures, in a centralized location.\n  \n  To create a new Proxmox VE TurnKey ownCloud VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/owncloud-vm.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>  \n  \n  **ownCloud Interface: IP**'},{category:"Media - Photo",title:"Nextcloud LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/nextcloud.svg" height="150"/></p>\n  \n  <h1 align="center" id="heading">Nextcloud LXC </h1>\n  \n  [NextCloudPi](https://github.com/nextcloud/nextcloudpi#features) is a popular self-hosted solution for file collaboration and data storage. It is built on the NextCloud software, which is an open-source platform for data management.\n  \n  To create a new Proxmox VE NextCloudPi LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nextcloudpi.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n\n  **NextCloudPi Interface: (https)IP/**<br><br>\n  \n  [Alpine Nextcloud Hub](https://nextcloud.com/) integrates the four key Nextcloud products Files, Talk, Groupware and Office into a single platform, optimizing the flow of collaboration.\n  \n  To create a new Proxmox VE Alpine Nextcloud Hub LXC, run the command below in the <b>Proxmox VE Shell</b>.<br>\n  To Update Alpine Nextcloud or Show Alpine Nextcloud Login Credentials, run the command below in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-nextcloud.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 2vCPU \u26a1</h3>\n\n  **Alpine Nextcloud Hub Interface: (https)IP/**<br><br>\n  \n  [TurnKey Nextcloud](https://www.turnkeylinux.org/nextcloud) helps store your files, folders, contacts, photo galleries, calendars and more on a server of your choosing. Access that folder from your mobile device, your desktop, or a web browser. Access your data wherever you are, when you need it.\n  \n  To create a new Proxmox VE TurnKey Nextcloud LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/turnkey/turnkey.sh)"\n  ~~~\n  To create a new Proxmox VE TurnKey Nextcloud VM, run the command below in the <b>Proxmox VE Shell</b>.\n\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/nextcloud-vm.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n\n  **TurnKey Nextcloud Interface: (https)IP/**'},{category:"Media - Photo",title:"Owncast LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/owncast/owncast/develop/web/public/img/favicon/android-icon-144x144.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Owncast LXC </h1>\n  \n  [Owncast](https://owncast.online/) is a free and open source live video and web chat server for use with existing popular broadcasting software.\n  \n  To create a new Proxmox VE Owncast LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/owncast.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 2GB Storage - 2vCPU \u26a1</h3>\n  \n  **Owncast Interface: IP:8080** <br>\n  **Owncast Admin Interface: IP:8080/admin**\n  \n  \u2699\ufe0f **Initial Admin Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">abc123</code>'},{category:"Media - Photo",title:"OpenMediaVault LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/openmediavault.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> OpenMediaVault LXC </h1>\n  \n  [OpenMediaVault](https://www.openmediavault.org/) is a next-generation network-attached storage (NAS) solution based on Debian Linux. It provides a web-based interface for managing and storing digital data, making it easy to use and set up. OpenMediaVault supports various storage protocols, including SMB/CIFS, NFS, and FTP, and provides a wide range of features for data management, such as user and group management, disk quotas, and data backup and recovery. The software is designed to be flexible and scalable, making it a valuable solution for both personal and enterprise use. OpenMediaVault provides a stable and reliable platform for managing and storing digital data, making it a popular choice for those who want to host their own data and ensure its security and privacy. With OpenMediaVault, users can access their data from anywhere and easily share it with others, making it a valuable tool for collaboration and data management.\n  \n  To create a new Proxmox VE OpenMediaVault LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/omv.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **OpenMediaVault Interface: IP**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">openmediavault</code>'},{category:"Media - Photo",title:"Navidrome LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/navidrome/navidrome/master/resources/logo-192x192.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Navidrome LXC </h1>\n  \n  [Navidrome](https://www.navidrome.org/) is a music server solution that makes your music collection accessible from anywhere. It provides a modern web-based user interface and compatibility with a range of third-party mobile apps for both iOS and Android devices. With Navidrome, users can access their music collection from anywhere, whether at home or on the go. The software supports a variety of music formats, making it easy for users to play their favorite songs and albums. Navidrome provides a simple and user-friendly interface for managing and organizing music collections, making it a valuable tool for music lovers who want to access their music from anywhere. The software is designed to be easy to set up and use, making it a popular choice for those who want to host their own music server and enjoy their music collection from anywhere.\n  \n  To create a new Proxmox VE Navidrome LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Navidrome, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/navidrome.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  To change Navidrome music folder path, edit: <code class="highlighter-rouge">/var/lib/navidrome/navidrome.toml</code>\n  \n  **Navidrome Interface: IP:4533**'},{category:"Media - Photo",title:"PhotoPrism LXC",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/photoprism.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> PhotoPrism LXC </h1>\n  \n  [PhotoPrism](https://photoprism.app/) is an AI-Powered Photos App for the Decentralized Web. It makes use of the latest technologies to tag and find pictures automatically without getting in your way.\n  \n  To create a new Proxmox VE PhotoPrism LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update PhotoPrism, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/photoprism.sh)"\n  ~~~\n\n  Please note that Ubuntu 22.04 and Debian 12 are supported, while older Linux distributions may not be compatible.\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **PhotoPrism Interface: IP:2342**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">changeme</code>\n  \n  [PhotoSync](https://www.photosync-app.com/home.html)'},{category:"Media - Photo",title:"Bazarr LXC",content:'<p align="center"><img src="https://www.bazarr.media/assets/img/logo.png" height="100"/></p>\n  \n  <h1 align="center" id="heading">Bazarr LXC </h1>\n  \n  [Bazarr](https://www.bazarr.media/) is a companion application to Sonarr and Radarr that manages and downloads subtitles based on your requirements.\n  \n  To create a new Proxmox VE Bazarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/bazarr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Bazarr Interface: IP:6767**'},{category:"Media - Photo",title:"Lidarr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Lidarr/Lidarr/develop/Logo/256.png" height="100"/></p>\n  \n  <h1 align="center" id="heading">Lidarr LXC </h1>\n  \n  [Lidarr](https://lidarr.audio/) is a music management tool designed for Usenet and BitTorrent users. It allows users to manage and organize their music collection with ease. Lidarr integrates with popular Usenet and BitTorrent clients, such as Sonarr and Radarr, to automate the downloading and organizing of music files. The software provides a web-based interface for managing and organizing music, making it easy to search and find songs, albums, and artists. Lidarr also supports metadata management, including album art, artist information, and lyrics, making it easy for users to keep their music collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing music collections, making it a valuable tool for music lovers who want to keep their collection organized and up-to-date. With Lidarr, users can enjoy their music collection from anywhere, making it a powerful tool for managing and sharing music files.\n  \n  To create a new Proxmox VE Lidarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/lidarr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Lidarr Interface: IP:8686**'},{category:"Media - Photo",title:"Prowlarr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Prowlarr/Prowlarr/develop/Logo/256.png" height="100"/></p>\n  \n  <h1 align="center" id="heading">Prowlarr LXC </h1>\n  \n  [Prowlarr](https://github.com/Prowlarr/Prowlarr) is a software tool designed to integrate with various PVR (Personal Video Recorder) apps. It is built on a popular *arr .net/ReactJS base stack and serves as an indexer manager and proxy. Prowlarr makes it easy to manage and organize TV show and movie collections, by integrating with popular PVR apps and automating the downloading and organizing of media files. The software provides a web-based interface for managing and organizing TV shows and movies, making it easy to search and find content. Prowlarr also supports metadata management, including show and movie information, making it easy for users to keep their media collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing media collections, making it a valuable tool for media enthusiasts who want to keep their collection organized and up-to-date. With Prowlarr, users can enjoy their media collection from anywhere, making it a powerful tool for managing and sharing media files.\n  \n  To create a new Proxmox VE Prowlarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/prowlarr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Prowlarr Interface: IP:9696**'},{category:"Media - Photo",title:"Radarr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Radarr/Radarr/develop/Logo/256.png" height="100"/></p>\n  \n  <h1 align="center" id="heading">Radarr LXC </h1>\n  \n  [Radarr](https://radarr.video/) is a movie management tool designed for Usenet and BitTorrent users. It allows users to manage and organize their movie collection with ease. Radarr integrates with popular Usenet and BitTorrent clients, such as Sonarr and Lidarr, to automate the downloading and organizing of movie files. The software provides a web-based interface for managing and organizing movies, making it easy to search and find titles, genres, and release dates. Radarr also supports metadata management, including movie posters and information, making it easy for users to keep their movie collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing movie collections, making it a valuable tool for movie enthusiasts who want to keep their collection organized and up-to-date. With Radarr, users can enjoy their movie collection from anywhere, making it a powerful tool for managing and sharing movie files.\n  \n  To create a new Proxmox VE Radarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/radarr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Radarr Interface: IP:7878**'},{category:"Media - Photo",title:"Readarr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Readarr/Readarr/develop/Logo/256.png" height="100"/></p>\n  \n  <h1 align="center" id="heading">Readarr LXC </h1>\n  \n  [Readarr](https://readarr.com/) is an eBook and audiobook management tool designed for Usenet and BitTorrent users. It allows users to manage and organize their eBook and audiobook collection with ease. Readarr integrates with popular Usenet and BitTorrent clients, such as Sonarr and Lidarr, to automate the downloading and organizing of eBook and audiobook files. The software provides a web-based interface for managing and organizing eBooks and audiobooks, making it easy to search and find titles, authors, and genres. Readarr also supports metadata management, including cover art and information, making it easy for users to keep their eBook and audiobook collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing eBook and audiobook collections, making it a valuable tool for book and audiobook enthusiasts who want to keep their collection organized and up-to-date. With Readarr, users can enjoy their eBook and audiobook collection from anywhere, making it a powerful tool for managing and sharing book and audiobook files.\n  \n  To create a new Proxmox VE Radarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/readarr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Readarr Interface: IP:8787**'},{category:"Media - Photo",title:"Sonarr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png" height="100"/></p>\n  \n  <h1 align="center" id="heading">Sonarr LXC </h1>\n  \n  [Sonarr](https://sonarr.tv/) is a personal video recorder (PVR) software designed for Usenet and BitTorrent users. It allows users to manage and organize their TV show collection with ease. Sonarr integrates with popular Usenet and BitTorrent clients, such as NZBget and Transmission, to automate the downloading and organizing of TV show files. The software provides a web-based interface for managing and organizing TV shows, making it easy to search and find titles, seasons, and episodes. Sonarr also supports metadata management, including TV show posters and information, making it easy for users to keep their TV show collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing TV show collections, making it a valuable tool for TV show enthusiasts who want to keep their collection organized and up-to-date. With Sonarr, users can enjoy their TV show collection from anywhere, making it a powerful tool for managing and sharing TV show files.\n  \n  To create a new Proxmox VE Sonarr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Sonarr, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/sonarr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Sonarr Interface: IP:8989**'},{category:"Media - Photo",title:"Unmanic LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Unmanic/unmanic/master/icon.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Unmanic LXC </h1>\n  \n  [Unmanic](https://docs.unmanic.app/) is a simple tool for optimising your file library. You can use it to convert your files into a single, uniform format, manage file movements based on timestamps, or execute custom commands against a file based on its file size.\n  \n  To create a new Proxmox VE Unmanic LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Unmanic, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/unmanic.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Unmanic Interface: IP:8888**'},{category:"Media - Photo",title:"Tdarr LXC",content:'<p align="center"><img src="https://home.tdarr.io/static/media/logo3-min.246d6df44c7f16ddebaf.png" height="100"/></p>\n  \n  <h1 align="center" id="heading">Tdarr LXC </h1>\n  \n  [Tdarr](https://tdarr.io/) is a media transcoding application designed to automate the transcode and remux management of a media library. It uses conditional-based processing to determine the required encoding and remux operations for each file in the library. The software integrates with popular media management tools, such as Sonarr and Radarr, to ensure that newly added media files are automatically processed and optimized for the user\'s desired playback device. Tdarr provides a web-based interface for monitoring and managing the transcoding process, and also supports real-time logging and reporting. The software is designed to be flexible and configurable, with a wide range of encoding and remux options available to users. Tdarr is an ideal solution for media enthusiasts who want to optimize their library for seamless playback on a variety of devices, while also streamlining the management and maintenance of their media library.\n  \n  To create a new Proxmox VE Tdarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/tdarr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Tdarr Interface: IP:8265**'},{category:"Media - Photo",title:"Whisparr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Whisparr/Whisparr/develop/Logo/256.png" height="100"/></p>\n  \n  <h1 align="center" id="heading">Whisparr LXC </h1>\n  \n  [Whisparr](https://github.com/Whisparr/Whisparr) is an adult movie collection manager for Usenet and BitTorrent users.\n  \n  To create a new Proxmox VE Whisparr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/whisparr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Whisparr Interface: IP:6969**'},{category:"Media - Photo",title:"Channels DVR Server LXC",content:'<p align="center"><img src="https://getchannels.com/a/images/channels-logo.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading">Channels DVR Server LXC </h1>\n  \n  [Channels DVR Server](https://getchannels.com/dvr-server/) runs on your computer or NAS device at home. There\'s no cloud to worry about. Your tv shows and movies will always be available.\n  \n  To create a new Proxmox VE Channels DVR Server LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/channels.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Channels DVR Server Interface: IP:8089**'},{category:"Ad Blocker - DNS",title:"Pi-hole LXC",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/pi_hole/icon.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Pi-hole LXC </h1>\n  \n  [Pi-hole](https://pi-hole.net/) is a free, open-source network-level advertisement and Internet tracker blocking application. It runs on a Raspberry Pi or other Linux-based systems and acts as a DNS sinkhole, blocking unwanted traffic before it reaches a user\'s device. Pi-hole can also function as a DHCP server, providing IP addresses and other network configuration information to devices on a network. The software is highly configurable and supports a wide range of customizations, such as allowing or blocking specific domains, setting up blocklists and whitelists, and customizing the appearance of the web-based interface. The main purpose of Pi-hole is to protect users\' privacy and security by blocking unwanted and potentially malicious content, such as ads, trackers, and malware. It is designed to be easy to set up and use, and can be configured through a web-based interface or through a terminal-based command-line interface.\n  \n  To create a new Proxmox VE Pi-hole LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/pihole.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  \u26a0\ufe0f **Reboot Pi-hole LXC after install**\n  \n  **Pi-hole Interface: IP/admin**\n  \n  \u2699\ufe0f **To set your password:**\n  \n  ~~~yaml\n  pihole -a -p\n  ~~~'},{category:"Ad Blocker - DNS",title:"Technitium DNS LXC",content:'<p align="center"><img src="https://avatars.githubusercontent.com/u/12230362?s=100&v=4" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Technitium DNS LXC </h1>\n\n  [Technitium DNS Server](https://technitium.com/dns/) is a free, open-source and privacy-focused DNS (Domain Name System) server software for Windows, Linux, and macOS. It is designed to provide a secure, fast, and reliable DNS resolution service to its users. The server can be configured through a web-based interface, and it supports a variety of advanced features, such as automatic IP updates, IPv6 support, caching of DNS queries, and the ability to block unwanted domains. It is also designed to be highly secure, with built-in measures to prevent common types of DNS attacks and data leaks. Technitium DNS Server is aimed at providing an alternative to traditional DNS servers, which often have privacy and security concerns associated with them, and it is ideal for users who are looking for a more secure and private DNS resolution service.\n  \n  To create a new Proxmox VE Technitium DNS LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Technitium DNS, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/technitiumdns.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **Technitium DNS Interface: IP:5380**'},{category:"Ad Blocker - DNS",title:"AdGuard Home LXC",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/adguard/icon.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> AdGuard Home LXC </h1>\n\n  [AdGuard Home](https://adguard.com/en/adguard-home/overview.html) is an open-source, self-hosted network-wide ad blocker. It blocks advertisements, trackers, phishing and malware websites, and provides protection against online threats. AdGuard Home is a DNS-based solution, which means it blocks ads and malicious content at the network level, before it even reaches your device. It runs on your home network and can be easily configured and managed through a web-based interface. It provides detailed statistics and logs, allowing you to see which websites are being blocked, and why. AdGuard Home is designed to be fast, lightweight, and easy to use, making it an ideal solution for home users who want to block ads, protect their privacy, and improve the speed and security of their online experience.\n  \n  To create a new Proxmox VE AdGuard Home LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Manually Update AdGuard Home, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/adguard.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n\n  **AdGuard Home Setup Interface: IP:3000  (After Setup use only IP)**\n  \n  <sub>(For the Home Assistant Integration, use port <code class="highlighter-rouge">80</code> not <code class="highlighter-rouge">3000</code>)</sub>'},{category:"Ad Blocker - DNS",title:"Blocky LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/0xERR0R/blocky/main/docs/blocky.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Blocky LXC </h1>\n  \n  [Blocky](https://0xerr0r.github.io/blocky/) is a software tool designed for blocking unwanted ads and trackers on local networks. It functions as a DNS proxy and runs on the Go programming language. Blocky intercepts requests to advertisements and other unwanted content and blocks them before they reach the end user. This results in a cleaner, faster, and more secure online experience for users connected to the local network. Blocky is open-source, easy to configure and can be run on a variety of devices, making it a versatile solution for small to medium-sized local networks.\n  \n  To create a new Proxmox VE Blocky LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/blocky.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  \n  \u2699\ufe0f **Blocky Config Path**\n  \n  ~~~yaml\n  /opt/blocky/config.yml\n  ~~~'},{category:"Document - Notes",title:"Paperless-ngx LXC",content:'<p align="center"><img src="https://github.com/paperless-ngx/paperless-ngx/blob/main/resources/logo/web/svg/square.svg?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Paperless-ngx LXC </h1>\n  \n  [Paperless-ngx](https://paperless-ngx.readthedocs.io/en/latest/#) is a software tool designed for digitizing and organizing paper documents. It provides a web-based interface for scanning, uploading, and organizing paper documents, making it easier to manage, search, and access important information. Paperless-ngx uses the OCR (Optical Character Recognition) technology to extract text from scanned images and makes it searchable, thus increasing the efficiency of document management.\n  \n  To create a new Proxmox VE Paperless-ngx LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Paperless-ngx or Show Login Credentials, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/paperless-ngx.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Paperless-ngx Interface: IP:8000**'},{category:"Document - Notes",title:"Trilium LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/zadam/trilium/master/images/app-icons/png/128x128.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Trilium LXC </h1>\n  \n  [Trilium](https://github.com/zadam/trilium#trilium-notes) is an open-source note-taking and personal knowledge management application. It allows users to organize and manage their notes, ideas, and information in a single place, using a hierarchical tree-like structure. Trilium offers a range of features, including rich text formatting, links, images, and attachments, making it easy to create and structure notes. The software is designed to be flexible and customizable, with a range of customization options and plugins available, including themes, export options, and more. Trilium is a self-hosted solution, and can be run on a local machine or a cloud-based server, providing users with full control over their notes and information.\n  \n  To create a new Proxmox VE Trilium LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Trilium, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/trilium.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **Trilium Interface: IP:8080**'},{category:"Document - Notes",title:"Wiki.js LXC",content:'<p align="center"><img src="https://static.requarks.io/logo/wikijs-butterfly.svg?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Wiki.js LXC </h1>\n  \n  [Wiki.js](https://js.wiki/) is a free, open-source, and modern wiki application built using Node.js. It is designed to be fast, easy to use, and flexible, with a range of features for collaboration, knowledge management, and content creation. Wiki.js supports Markdown syntax for editing pages, and includes features such as version control, page history, and access control, making it easy to manage content and collaborate with others. The software is fully customizable, with a range of themes and extensions available, and can be deployed on a local server or in the cloud, making it an ideal choice for small teams and organizations looking to create and manage a wiki. Wiki.js provides a modern, user-friendly interface, and supports a range of data sources, including local file systems, databases, and cloud storage services. \n  \n  To create a new Proxmox VE Wiki.js LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Wiki.js, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/wikijs.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **Wiki.js Interface: IP:3000**'},{category:"Document - Notes",title:"NocoDB LXC",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/nocodb.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> NocoDB LXC </h1>\n  \n  [NocoDB](https://www.nocodb.com/) is a document-oriented database management system. It uses the NoSQL (Not Only SQL) data model, which allows for more flexible and scalable data storage than traditional relational databases. NoCoDB stores data in JSON format, making it easier to manage and query complex data structures, and supports a range of data types, including strings, numbers, arrays, and objects. The software provides a web-based interface for managing and querying data, and includes features such as real-time data synchronization, auto-indexing, and full-text search. NoCoDB is designed to be scalable, and can be used for a range of applications, from small projects to large enterprise systems. The software is free and open-source, and is designed to be easy to use and integrate with other applications.\n  \n  To create a new Proxmox VE NocoDB LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update NocoDB, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nocodb.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 1vCPU \u26a1</h3>\n  \n  **NocoDB Interface: IP:8080/dashboard**'},{category:"Document - Notes",title:"Kavita LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Kareadita/Kavita/develop/Logo/kavita.svg" height="100"/></p>\n  \n  <h1 align="center" id="Kavita"> Kavita LXC </h1>\n  \n  [Kavita](https://www.kavitareader.com/) is a fast, feature rich, cross platform reading server. Built with a focus for manga, and the goal of being a full solution for all your reading needs.\n  \n  To create a new Proxmox VE Kavita LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Kavita, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/kavita.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Kavita Interface: IP:5000**'},{category:"Dashboards",title:"Heimdall Dashboard LXC",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/heimdall.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Heimdall Dashboard LXC (English-only) </h1>\n  \n  [Heimdall Dashboard](https://heimdall.site/) is a self-hosted, web-based dashboard for managing and monitoring the health of applications and servers. It allows you to keep track of the status of your systems from a single, centralized location, and receive notifications when things go wrong. With Heimdall Dashboard, you have full control over your data and can customize it to meet your specific needs. Self-hosting the dashboard gives you the flexibility to run it on your own infrastructure, making it a suitable solution for organizations that prioritize data security and privacy.\n  \n  To create a new Proxmox VE Heimdall Dashboard LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Heimdall Dashboard, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/heimdalldashboard.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **Heimdall Dashboard Interface: IP:7990**'},{category:"Dashboards",title:"Linkwarden LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/linkwarden/linkwarden/main/assets/logo.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Linkwarden LXC </h1>\n  \n  [Linkwarden](https://linkwarden.app/) is a fully self-hostable, open-source collaborative bookmark manager to collect, organize and archive webpages.\n  \n  To create a new Proxmox VE Linkwarden LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/linkwarden.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Linkwarden Interface: IP:3000**\n  \n  Show Database/Adminer Credentials: <code class="highlighter-rouge">cat linkwarden.creds</code>'},{category:"Dashboards",title:"Homepage LXC",content:'<p align="center"><img src="https://github.com/benphelps/homepage/raw/main/images/banner_light%402x.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Homepage LXC </h1>\n  \n  [Homepage](https://github.com/benphelps/homepage) is a self-hosted dashboard solution for centralizing and organizing data and information.\n  \n  To create a new Proxmox VE Homepage LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Homepage, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homepage.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 3GB Storage - 2vCPU \u26a1</h3>\n  \n  [Configuration](https://github.com/benphelps/homepage/wiki) (bookmarks.yaml, services.yaml, widgets.yaml) path: <code class="highlighter-rouge">/opt/homepage/config/</code>\n  \n  **Homepage Interface: IP:3000**'},{category:"Dashboards",title:"OliveTin",content:'<p align="center"><img src="https://raw.githubusercontent.com/OliveTin/OliveTin/main/webui/OliveTinLogo.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> OliveTin </h1>\n\n  [OliveTin](https://www.olivetin.app/) provides a secure and straightforward way to execute pre-determined shell commands through a web-based interface.\n  \n  To Install OliveTin, \u26a0\ufe0f run the command below in the LXC console.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/olivetin.sh)"\n  ~~~\n  \n  **OliveTin Interface: IP:1337**\n  \n  \u2699\ufe0f **Config Path**\n  \n  ~~~yaml\n  /etc/OliveTin/config.yaml\n  ~~~'},{category:"Dashboards",title:"Homarr LXC",content:'<p align="center"><img src="https://homarr.dev/img/logo.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Homarr LXC </h1>\n  \n  [Homarr](https://homarr.dev/) is a sleek, modern dashboard that puts all of your apps and services at your fingertips.\n  \n  To create a new Proxmox VE Homarr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Homarr, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homarr.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n\n  **Homarr Interface: IP:3000**'},{category:"Dashboards",title:"Homer LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/bastienwirtz/homer/main/public/assets/icons/logo.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Homer LXC </h1>\n  \n  [Homer](https://github.com/bastienwirtz/homer#---------homer) is a simple and lightweight static homepage generator that allows you to create and manage a home page for your server. It uses a YAML configuration file to define the layout and content of your homepage, making it easy to set up and customize. The generated homepage is static, meaning it does not require any server-side processing, making it fast and efficient to serve. Homer is designed to be a flexible and low-maintenance solution for organizing and accessing your services and information from a single, centralized location.\n  \n  To create a new Proxmox VE Homer LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Homer, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homer.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n\n  **Homer Interface: IP:8010**\n  \n  \u2699\ufe0f **Config Path**\n  \n  ~~~yaml\n  /opt/homer/assets/config.yml\n  ~~~'},{category:"Dashboards",title:"Dashy LXC",content:'<p align="center"><img src="https://github.com/Lissy93/dashy/raw/master/public/web-icons/dashy-logo.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Dashy LXC </h1>\n  \n  [Dashy](https://dashy.to/) is a solution that helps you organize your self-hosted services by centralizing access to them through a single interface.\n  \n  To create a new Proxmox VE Dashy LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Dashy, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/dashy.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 6GB Storage - 2vCPU \u26a1</h3>\n  \n  **Dashy Interface: IP:4000**\n  \n  Once you\'ve configured everything according to your preferences in interactive mode and saved the changes to the disk, go into update configuration and rebuild application.'},{category:"File - Code",title:"File Browser",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/filebrowser.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> File Browser </h1>\n\n  [File Browser](https://filebrowser.org/features) offers a user-friendly web interface for managing files within a designated directory. It allows you to perform various actions such as uploading, deleting, previewing, renaming, and editing files.\n  \n  To Install, or uninstall File Browser, \u26a0\ufe0f run the command below in the <b>LXC console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/filebrowser.sh)"\n  ~~~\n  \n  **File Browser Interface: IP:8080**\n  \n  \u2699\ufe0f **Initial Login (not required for No Authentication)**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n\n  **password** <code class="highlighter-rouge">changeme</code>\n  \n  \u2699\ufe0f **To Update File Browser**\n  \n  ~~~yaml\n  curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash\n  ~~~'},{category:"File - Code",title:"VS Code Server",content:'<p align="center"><img src="https://user-images.githubusercontent.com/674621/71187801-14e60a80-2280-11ea-94c9-e56576f76baf.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> VS Code Server </h1>\n\n  [VS Code Server](https://code.visualstudio.com/docs/remote/vscode-server) is a service you can run on a remote development machine, like your desktop PC or a virtual machine (VM). It allows you to securely connect to that remote machine from anywhere through a vscode.dev URL, without the requirement of SSH.\n  \n  To Install VS Code Server, \u26a0\ufe0f run the command below in the <b>LXC console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/code-server.sh)"\n  ~~~\n  \n  **VS Code Server Interface: IP:8680**'},{category:"File - Code",title:"Deluge LXC",content:'<p align="center"><img src="https://dev.deluge-torrent.org/chrome/common/deluge_logo.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Deluge LXC </h1>\n\n  [Deluge](https://www.deluge-torrent.org/) is a free, open-source, lightweight BitTorrent client. It supports various platforms including Windows, Linux, and macOS, and offers features such as peer exchange, DHT, and magnet links.\n  \n  To create a new Proxmox VE Deluge LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/deluge.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n\n  \u2699\ufe0f **Initial Login**\n\n  **password** <code class="highlighter-rouge">deluge</code>\n\n  **Deluge Interface: IP:8112**'},{category:"File - Code",title:"Transmission LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/transmission/transmission/main/web/assets/img/logo.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Transmission LXC </h1>\n\n  [Transmission](https://transmissionbt.com/) is a free, open-source BitTorrent client known for its fast download speeds and ease of use. It supports various platforms such as Windows, Linux, and macOS and has features like web interface, peer exchange, and encrypted transfers.\n  \n  To create a new Proxmox VE Transmission LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/transmission.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n\n  \u2699\ufe0f **Initial Login**\n\n  **user/password** <code class="highlighter-rouge">transmission</code>\n\n  **Transmission Interface: IP:9091/transmission**'},{category:"File - Code",title:"Autobrr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/autobrr/autobrr/master/.github/images/logo.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Autobrr LXC </h1>\n\n  [Autobrr](https://autobrr.com/) is a torrent downloading tool that automates the process of downloading torrents. It is designed to be modern and user-friendly, providing users with a convenient and efficient way to download torrent files. With Autobrr, you can schedule and manage your torrent downloads, and have the ability to automatically download torrents based on certain conditions, such as time of day or availability of seeds. This can save you time and effort, allowing you to focus on other tasks while your torrents are being downloaded in the background.\n  \n  To create a new Proxmox VE Autobrr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Autobrr, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/autobrr.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n\n  **Autobrr Interface: IP:7474**'},{category:"File - Code",title:"qBittorrent LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/qbittorrent/qBittorrent/master/src/icons/qbittorrent.ico" height="100"/></p>\n  \n  <h1 align="center" id="heading"> qBittorrent LXC </h1>\n\n  [qBittorrent](https://www.qbittorrent.org/) offers a user-friendly interface that allows users to search for and download torrent files easily. It also supports magnet links, which allow users to start downloading files without the need for a torrent file.\n  \n  To create a new Proxmox VE qBittorrent LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/qbittorrent.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>  \n  \n  **qBittorrent Interface: IP:8090**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">changeme</code>'},{category:"File - Code",title:"Real-Debrid Torrent Client LXC",content:'<p align="center"><img src="https://fcdn.real-debrid.com/0820/images/logo.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Real-Debrid Torrent Client LXC </h1>\n\n  [RDTClient](https://github.com/rogerfar/rdt-client)  is a web interface to manage your torrents on Real-Debrid, AllDebrid or Premiumize.\n  \n  To create a new Proxmox VE Real-Debrid Torrent Client LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/rdtclient.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 1vCPU \u26a1</h3>  \n  \n  **Real-Debrid Torrent Client Interface: IP:6500**'},{category:"File - Code",title:"Jackett LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Jackett/Jackett/master/src/Jackett.Common/Content/jacket_medium.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Jackett LXC </h1>\n\n  [Jackett](https://github.com/Jackett/Jackett) supports a wide range of trackers, including popular ones like The Pirate Bay, RARBG, and Torrentz2, as well as many private trackers. It can be integrated with several BitTorrent clients, including qBittorrent, Deluge, and uTorrent, among others.\n  \n  To create a new Proxmox VE Jackett LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/jackett.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings: 512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n\n  **Jackett Interface: IP:9117**'},{category:"File - Code",title:"Pingvin Share LXC",content:'<p align="center"><img src="https://github.com/stonith404/pingvin-share/blob/main/frontend/public/img/logo.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Pingvin Share LXC </h1>\n\n  [Pingvin Share](https://github.com/stonith404/pingvin-share) is self-hosted file sharing platform and an alternative for WeTransfer.\n  \n  To create a new Proxmox VE Pingvin Share LXC, run the command below in the <b>Proxmox VE Shell</b>.<br>\n  To Update Pingvin Share, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/pingvin.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>  \n  \n  **Pingvin Share Interface: IP:3000**'},{category:"File - Code",title:"SABnzbd LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/sabnzbd/sabnzbd/develop/icons/logo-arrow.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> SABnzbd LXC </h1>\n\n  [SABnzbd](https://sabnzbd.org/) is a free, open-source software program for downloading binary files from Usenet newsgroups. It is designed to be easy to use, and provides a number of features to simplify the downloading process, such as automatic error detection and repair, download scheduling, and integration with other applications. SABnzbd is a binary newsreader, which means it is specifically designed for downloading binary files, such as images, music, and video, from Usenet newsgroups. With its user-friendly interface and powerful features, SABnzbd makes it easy to manage your Usenet downloads and keep your download queue organized.\n  \n  To create a new Proxmox VE SABnzbd LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update SABnzbd, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/sabnzbd.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n\n  **SABnzbd Interface: IP:7777**'},{category:"File - Code",title:"Webmin System Administration",content:'<p align="center"><img src="https://github.com/webmin/webmin/blob/master/images/webmin-blue.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Webmin System Administration </h1>\n\n  If you prefer to manage all aspects of your Proxmox VE LXC from a graphical interface instead of the command line interface, Webmin might be right for you.\n  Benefits include automatic daily security updates, backup and restore, file manager with editor, web control panel, and preconfigured system monitoring with optional email alerts.\n  \n  To Install Webmin System Administration, \u26a0\ufe0f run the command below in the <b>LXC console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/webmin.sh)"\n  ~~~\n  \n  **Webmin Interface: (https)IP:10000**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">root</code>\n  \n  **password** <code class="highlighter-rouge">root</code>\n  \n  \u2699\ufe0f **To Update Webmin**\n  \n  <code class="highlighter-rouge">Update from the Webmin UI</code>\n  \n  \u2699\ufe0f **To Uninstall Webmin**\n  \n  ~~~yaml\n  bash /etc/webmin/uninstall.sh\n  ~~~'},{category:"File - Code",title:"Syncthing LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/syncthing/syncthing/6afaa9f20c8eb9c7af5abbe2f2d90fa2571aa7ad/assets/logo-only.svg?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Syncthing LXC </h1>\n  \n  [Syncthing](https://syncthing.net/) is an open-source file syncing tool that allows users to keep their files in sync across multiple devices by using peer-to-peer synchronization. It doesn\'t rely on any central server, so all data transfers are directly between devices.\n  \n  To create a new Proxmox VE Syncthing LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/syncthing.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Syncthing Interface: IP:8384**'},{category:"File - Code",title:"Daemon Sync Server LXC",content:'<p align="center"><img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fimg.informer.com%2Ficons_mac%2Fpng%2F128%2F350%2F350335.png&f=1&nofb=1" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Daemon Sync Server LXC </h1>\n  \n  Sync files from app to server, share photos & videos, back up your data and stay secure inside local network.\n  \n  To create a new Proxmox VE Daemon Sync Server LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/daemonsync.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 8GB Storage - 1vCPU \u26a1</h3>\n  \n  **Daemon Sync Server Interface: IP:8084**\n  \n  Search: <code class="highlighter-rouge">DAEMON Sync</code> in your favorite app store'},{category:"Miscellaneous",title:"OctoPrint LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/octoprint.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> OctoPrint LXC </h1>\n  \n  [OctoPrint](https://octoprint.org/) is a free and open-source web-based 3D printer control software that allows you to remotely control and monitor your 3D printer from a web interface. It was designed to be compatible with a wide range of 3D printers.\n  \n  To create a new Proxmox VE OctoPrint LXC, run the following in the <b>Proxmox VE Shell</b>.<br>\n  To Update OctoPrint, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/octoprint.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings: 1GB RAM - 4GB Storage - 1vCPU \u26a1</h3>\n  \n  **OctoPrint Interface - IP:5000**'},{category:"Miscellaneous",title:"Vaultwarden LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/dani-garcia/vaultwarden/main/resources/vaultwarden-icon-white.svg" width="100" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Vaultwarden LXC </h1>\n  \n  [Vaultwarden](https://www.vaultwarden.net/) is a self-hosted password manager which provides secure and encrypted password storage. It uses client-side encryption and provides access to passwords through a web interface and mobile apps.\n  \n  To create a new Proxmox VE Vaultwarden LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Vaultwarden, Web-Vault or Set the Admin Token, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/vaultwarden.sh)"\n  ~~~\n  \u26a0\ufe0f Vaultwarden needs to be behind a proxy (Nginx Proxy Manager) to obtain HTTPS and to allow clients to connect.\n  \n  The script builds from source, which takes time and resources. After the build, the script will automatically set resources to Normal Settings. \n  \n  <h3 align="center" id="heading">\u26a1 Build Settings:  4GB RAM - 6GB Storage - 4vCPU \u26a1</h3>\n  <h3 align="center" id="heading">\u26a1 Normal Settings:  512Mib RAM - 6GB Storage - 1vCPU \u26a1</h3>\n\n  As an alternative option, you can use Alpine Linux and the Vaultwarden package to create a Vaultwarden LXC container with significantly faster creation time and minimal system resource usage. <br>\n  \n  To create a new Proxmox VE Alpine-Vaultwarden LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Alpine-Vaultwarden, or Set the Admin Token, run the command below in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-vaultwarden.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  256Mib RAM - 300MiB Storage - 1vCPU \u26a1</h3>\n\n  **Vaultwarden Interface: IP:8000**\n  \n  **Vaultwarden Admin Interface: IP:8000/admin**'},{category:"Miscellaneous",title:"grocy LXC",content:'<p align="center"><img src="https://grocy.info/img/grocy_logo.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> grocy LXC </h1>\n  \n  [grocy](https://grocy.info/) is a web-based self-hosted groceries & household management solution for your home. It helps you keep track of your groceries and household items, manage your shopping list, and keep track of your pantry, recipes, meal plans, and more.\n  \n  To create a new Proxmox VE grocy LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update grocy, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/grocy.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **grocy Interface: IP**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">admin</code>'},{category:"Miscellaneous",title:"MagicMirror Server LXC",content:'<p align="center"><img src="https://github.com/MichMich/MagicMirror/raw/master/.github/header.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> MagicMirror Server LXC </h1>\n  \n  [MagicMirror\xb2](https://docs.magicmirror.builders/) is a smart mirror software that allows you to build your own personal smart mirror. It uses modular components that you can customize to display information such as the weather, news, calendar, to-do list, and more. The platform is open source, allowing for community contributions and customization.\n  \n  To create a new MagicMirror Server LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update MagicMirror, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/magicmirror.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings: 512MiB RAM - 3GB Storage - 1vCPU \u26a1</h3>\n  \n  **MagicMirror Interface: IP:8080**\n  \n  \u2699\ufe0f **[Configuration](https://docs.magicmirror.builders/configuration/introduction.html#configuring-your-magicmirror)**\n  ~~~yaml\n  /opt/magicmirror/config/config.js\n  ~~~'},{category:"Miscellaneous",title:"TasmoAdmin LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/tasmota.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> TasmoAdmin LXC </h1>\n  \n  [TasmoAdmin](https://github.com/TasmoAdmin/TasmoAdmin#readme) is an administrative platform for devices flashed with Tasmota.\n  \n  To create a new Proxmox VE TasmoAdmin LXC, run the following in the <b>Proxmox VE Shell</b>. <br>\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/tasmoadmin.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings: 512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **TasmoAdmin Interface - IP:9999**'},{category:"Miscellaneous",title:"RTSPtoWeb LXC",content:'<p align="center"><img src="https://brands.home-assistant.io/_/rtsp_to_webrtc/logo.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> RTSPtoWeb LXC </h1>\n  \n  [RTSPtoWeb](https://github.com/deepch/RTSPtoWeb) converts your RTSP streams to formats consumable in a web browser like MSE (Media Source Extensions), WebRTC, or HLS. It\'s fully native Golang without the use of FFmpeg or GStreamer\n  \n  To create a new Proxmox VE RTSPtoWeb LXC, run the following in the <b>Proxmox VE Shell</b>. <br>\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/rtsptoweb.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings: 2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **RSTPtoWEB Interface - IP:8083**'},{category:"Miscellaneous",title:"go2rtc LXC",content:'<p align="center"><img src="https://brands.home-assistant.io/_/rtsp_to_webrtc/logo.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> go2rtc LXC </h1>\n  \n  [go2rtc](https://github.com/AlexxIT/go2rtc) is the ultimate camera streaming application with support RTSP, WebRTC, HomeKit, FFmpeg, RTMP, etc.\n  \n  To create a new Proxmox VE go2rtc LXC, run the following in the <b>Proxmox VE Shell</b>. <br>\n  To Update go2rtc, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/go2rtc.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings: 2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **go2rtc Interface - IP:1984**'},{category:"Miscellaneous",title:"Whoogle LXC",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/whoogle.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Whoogle LXC </h1>\n  \n  Get Google search results, but without any ads, javascript, AMP links, cookies, or IP address tracking.\n  \n  To create a new Proxmox VE Whoogle LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Whoogle, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/whoogle.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n\n  **Whoogle Interface: IP:5000**'},{category:"Miscellaneous",title:"AgentDVR LXC",content:'<p align="center"><img src="https://ispycontent.azureedge.net/img/ispy2.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> AgentDVR LXC </h1>\n\n  [AgentDVR](https://www.ispyconnect.com/) a new video surveillance solution for the Internet Of Things.\n  \n  To create a new Proxmox VE AgentDVR LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/agentdvr.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **AgentDVR Interface: IP:8090**'},{category:"Miscellaneous",title:"Shinobi NVR LXC",content:'<p align="center"><img src="https://gitlab.com/uploads/-/system/project/avatar/6947723/mstile-150x150.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Shinobi NVR LXC </h1>\n\n  [Shinobi](https://shinobi.video/) is an open-source, self-hosted network video recording (NVR) software. It allows you to manage and monitor security cameras and record video footage. Shinobi can be run on various platforms including Linux, macOS, and Raspberry Pi, and offers features such as real-time streaming, motion detection, and email notifications.\n  \n  To create a new Proxmox VE Shinobi NVR LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Shinobi, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/shinobi.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Shinobi Interface: IP:8080**\n\n  **Shinobi Admin Interface: IP:8080/super**\n  \n  \u2699\ufe0f **Initial Admin Login**\n  \n  **username** <code class="highlighter-rouge">admin@shinobi.video</code>\n  \n  **password** <code class="highlighter-rouge">admin</code>'},{category:"Miscellaneous",title:"MotionEye NVR LXC",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/motioneye/icon.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> MotionEye NVR LXC </h1>\n\n  MotionEye is an open-source, self-hosted network video recording (NVR) software designed to manage and monitor IP cameras. It runs on various platforms such as Linux, Raspberry Pi, and Docker, and offers features such as real-time video streaming, motion detection, and customizable camera views.\n  \n  To create a new Proxmox VE MotionEye NVR LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update MotionEye, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/motioneye.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **MotionEye Interface: IP:8765**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">    </code>'},{category:"Miscellaneous",title:"Hyperion LXC",content:'<p align="center"><img src="https://github.com/hyperion-project/hyperion.ng/raw/master/doc/logo_dark.png?raw=true" height="100"/></p>\n\n<h1 align="center" id="heading"> Hyperion LXC </h1>\n\nHyperion is an opensource Ambient Lighting implementation. It supports many LED devices and video grabbers.\n\nTo create a new Proxmox VE Hyperion LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\nTo Update Hyperion, run the command below (or type update) in the <b>LXC Console</b>.\n\n~~~bash\nbash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/hyperion.sh)"\n~~~\n\n<h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n\n**Hyperion Interface: IP:8090**'},{category:"Miscellaneous",title:"All Templates",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/proxmox.svg" height="100"/></p>\n\n<h1 align="center" id="heading"> All Templates </h1>\n\nA script designed to allow for the creation of one of the many free LXC templates. Great for creating system LXCs.<br>\nThe script creates a *.creds file in the Proxmox root directory with the password of the newly created LXC.<br>\nPlease take note that if you plan to use this script for creating TurnKey LXCs, you\'ll need to modify the hostname after creation.\n\nTo create a new Proxmox VE Template LXC, run the command below in the <b>Proxmox VE Shell</b>.\n\n~~~bash\nbash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/all-templates.sh)"\n~~~\n\n<h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU- onboot 0 - DHCP - Unprivileged \u26a1</h3><br>\nResource and network settings are adjustable post LXC creation.'}]};function b(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function E(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function y(e,t,n){return t&&E(e.prototype,t),n&&E(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}var T=n(5586);function S(e,t){return S=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},S(e,t)}function v(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&S(e,t)}function A(e){return A=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},A(e)}function k(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function w(e){return w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},w(e)}function _(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function C(e,t){if(t&&("object"===w(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _(e)}function N(e){var t=k();return function(){var n,r=A(e);if(t){var a=A(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return C(this,n)}}function I(e,t,n){return I=k()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&S(a,n.prototype),a},I.apply(null,arguments)}function x(e){var t="function"===typeof Map?new Map:void 0;return x=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return I(e,arguments,A(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),S(r,e)},x(e)}function R(e){return e&&"object"===typeof e?"position"in e||"type"in e?L(e.position):"start"in e||"end"in e?L(e):"line"in e||"column"in e?O(e):"":""}function O(e){return P(e&&e.line)+":"+P(e&&e.column)}function L(e){return O(e&&e.start)+"-"+O(e&&e.end)}function P(e){return e&&"number"===typeof e?e:1}var D=function(e){v(n,e);var t=N(n);function n(e,r,a){var i;b(this,n);var o=[null,null],s={start:{line:null,column:null},end:{line:null,column:null}};if(i=t.call(this),"string"===typeof r&&(a=r,r=void 0),"string"===typeof a){var l=a.indexOf(":");-1===l?o[1]=a:(o[0]=a.slice(0,l),o[1]=a.slice(l+1))}return r&&("type"in r||"position"in r?r.position&&(s=r.position):"start"in r||"end"in r?s=r:("line"in r||"column"in r)&&(s.start=r)),i.name=R(r)||"1:1",i.message="object"===typeof e?e.message:e,i.stack="object"===typeof e?e.stack:"",i.reason=i.message,i.fatal,i.line=s.start.line,i.column=s.start.column,i.source=o[0],i.ruleId=o[1],i.position=s,i.actual,i.expected,i.file,i.url,i.note,i}return y(n)}(x(Error));D.prototype.file="",D.prototype.name="",D.prototype.reason="",D.prototype.message="",D.prototype.stack="",D.prototype.fatal=null,D.prototype.column=null,D.prototype.line=null,D.prototype.source=null,D.prototype.ruleId=null,D.prototype.position=null;var M={basename:function(e,t){if(void 0!==t&&"string"!==typeof t)throw new TypeError('"ext" argument must be a string');U(e);var n,r=0,a=-1,i=e.length;if(void 0===t||0===t.length||t.length>e.length){for(;i--;)if(47===e.charCodeAt(i)){if(n){r=i+1;break}}else a<0&&(n=!0,a=i+1);return a<0?"":e.slice(r,a)}if(t===e)return"";var o=-1,s=t.length-1;for(;i--;)if(47===e.charCodeAt(i)){if(n){r=i+1;break}}else o<0&&(n=!0,o=i+1),s>-1&&(e.charCodeAt(i)===t.charCodeAt(s--)?s<0&&(a=i):(s=-1,a=o));r===a?a=o:a<0&&(a=e.length);return e.slice(r,a)},dirname:function(e){if(U(e),0===e.length)return".";var t,n=-1,r=e.length;for(;--r;)if(47===e.charCodeAt(r)){if(t){n=r;break}}else t||(t=!0);return n<0?47===e.charCodeAt(0)?"/":".":1===n&&47===e.charCodeAt(0)?"//":e.slice(0,n)},extname:function(e){U(e);var t,n=e.length,r=-1,a=0,i=-1,o=0;for(;n--;){var s=e.charCodeAt(n);if(47!==s)r<0&&(t=!0,r=n+1),46===s?i<0?i=n:1!==o&&(o=1):i>-1&&(o=-1);else if(t){a=n+1;break}}if(i<0||r<0||0===o||1===o&&i===r-1&&i===a+1)return"";return e.slice(i,r)},join:function(){for(var e,t=-1,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];for(;++t<r.length;)U(r[t]),r[t]&&(e=void 0===e?r[t]:e+"/"+r[t]);return void 0===e?".":F(e)},sep:"/"};function F(e){U(e);var t=47===e.charCodeAt(0),n=function(e,t){var n,r,a="",i=0,o=-1,s=0,l=-1;for(;++l<=e.length;){if(l<e.length)n=e.charCodeAt(l);else{if(47===n)break;n=47}if(47===n){if(o===l-1||1===s);else if(o!==l-1&&2===s){if(a.length<2||2!==i||46!==a.charCodeAt(a.length-1)||46!==a.charCodeAt(a.length-2))if(a.length>2){if((r=a.lastIndexOf("/"))!==a.length-1){r<0?(a="",i=0):i=(a=a.slice(0,r)).length-1-a.lastIndexOf("/"),o=l,s=0;continue}}else if(a.length>0){a="",i=0,o=l,s=0;continue}t&&(a=a.length>0?a+"/..":"..",i=2)}else a.length>0?a+="/"+e.slice(o+1,l):a=e.slice(o+1,l),i=l-o-1;o=l,s=0}else 46===n&&s>-1?s++:s=-1}return a}(e,!t);return 0!==n.length||t||(n="."),n.length>0&&47===e.charCodeAt(e.length-1)&&(n+="/"),t?"/"+n:n}function U(e){if("string"!==typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}var B={cwd:function(){return"/"}};function G(e){return null!==e&&"object"===typeof e&&e.href&&e.origin}function H(e){if("string"===typeof e)e=new URL(e);else if(!G(e)){var t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if("file:"!==e.protocol){var n=new TypeError("The URL must be of scheme file");throw n.code="ERR_INVALID_URL_SCHEME",n}return function(e){if(""!==e.hostname){var t=new TypeError('File URL host must be "localhost" or empty on darwin');throw t.code="ERR_INVALID_FILE_URL_HOST",t}var n=e.pathname,r=-1;for(;++r<n.length;)if(37===n.charCodeAt(r)&&50===n.charCodeAt(r+1)){var a=n.charCodeAt(r+2);if(70===a||102===a){var i=new TypeError("File URL path must not include encoded / characters");throw i.code="ERR_INVALID_FILE_URL_PATH",i}}return decodeURIComponent(n)}(e)}var z=["history","path","basename","stem","extname","dirname"],$=function(){function e(t){var n;b(this,e),n=t?"string"===typeof t||T(t)?{value:t}:G(t)?{path:t}:t:{},this.data={},this.messages=[],this.history=[],this.cwd=B.cwd(),this.value,this.stored,this.result,this.map;for(var r,a=-1;++a<z.length;){var i=z[a];i in n&&void 0!==n[i]&&(this[i]="history"===i?p(n[i]):n[i])}for(r in n)z.includes(r)||(this[r]=n[r])}return y(e,[{key:"path",get:function(){return this.history[this.history.length-1]},set:function(e){G(e)&&(e=H(e)),j(e,"path"),this.path!==e&&this.history.push(e)}},{key:"dirname",get:function(){return"string"===typeof this.path?M.dirname(this.path):void 0},set:function(e){W(this.basename,"dirname"),this.path=M.join(e||"",this.basename)}},{key:"basename",get:function(){return"string"===typeof this.path?M.basename(this.path):void 0},set:function(e){j(e,"basename"),V(e,"basename"),this.path=M.join(this.dirname||"",e)}},{key:"extname",get:function(){return"string"===typeof this.path?M.extname(this.path):void 0},set:function(e){if(V(e,"extname"),W(this.dirname,"extname"),e){if(46!==e.charCodeAt(0))throw new Error("`extname` must start with `.`");if(e.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=M.join(this.dirname,this.stem+(e||""))}},{key:"stem",get:function(){return"string"===typeof this.path?M.basename(this.path,this.extname):void 0},set:function(e){j(e,"stem"),V(e,"stem"),this.path=M.join(this.dirname||"",e+(this.extname||""))}},{key:"toString",value:function(e){return(this.value||"").toString(e)}},{key:"message",value:function(e,t,n){var r=new D(e,t,n);return this.path&&(r.name=this.path+":"+r.name,r.file=this.path),r.fatal=!1,this.messages.push(r),r}},{key:"info",value:function(e,t,n){var r=this.message(e,t,n);return r.fatal=null,r}},{key:"fail",value:function(e,t,n){var r=this.message(e,t,n);throw r.fatal=!0,r}}]),e}();function V(e,t){if(e&&e.includes(M.sep))throw new Error("`"+t+"` cannot be a path: did not expect `"+M.sep+"`")}function j(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function W(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}function q(e){return m(e)||u(e)||d(e)||g()}function K(e){if(e)throw e}var X=n(1132);function Y(e){if("object"!==typeof e||null===e)return!1;var t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function Z(e,t){var n;return function(){for(var t=arguments.length,i=new Array(t),o=0;o<t;o++)i[o]=arguments[o];var s,l=e.length>i.length;l&&i.push(r);try{s=e.apply(this,i)}catch(u){var c=u;if(l&&n)throw c;return r(c)}l||(s instanceof Promise?s.then(a,r):s instanceof Error?r(s):a(s))};function r(e){if(!n){n=!0;for(var r=arguments.length,a=new Array(r>1?r-1:0),i=1;i<r;i++)a[i-1]=arguments[i];t.apply(void 0,[e].concat(a))}}function a(e){r(null,e)}}var Q=function e(){var t,n=function(){var e=[],t={run:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var a=-1,i=n.pop();if("function"!==typeof i)throw new TypeError("Expected function as last argument, not "+i);function o(t){var r=e[++a],s=-1;if(t)i(t);else{for(var l=arguments.length,c=new Array(l>1?l-1:0),u=1;u<l;u++)c[u-1]=arguments[u];for(;++s<n.length;)null!==c[s]&&void 0!==c[s]||(c[s]=n[s]);n=c,r?Z(r,o).apply(void 0,c):i.apply(void 0,[null].concat(c))}}o.apply(void 0,[null].concat(p(n)))},use:function(n){if("function"!==typeof n)throw new TypeError("Expected `middelware` to be a function, not "+n);return e.push(n),t}};return t}(),r=[],a={},i=-1;return o.data=function(e,n){if("string"===typeof e)return 2===arguments.length?(re("data",t),a[e]=n,o):J.call(a,e)&&a[e]||null;if(e)return re("data",t),a=e,o;return a},o.Parser=void 0,o.Compiler=void 0,o.freeze=function(){if(t)return o;for(;++i<r.length;){var e=q(r[i]),a=e[0],s=e.slice(1);if(!1!==s[0]){!0===s[0]&&(s[0]=void 0);var l=a.call.apply(a,[o].concat(p(s)));"function"===typeof l&&n.use(l)}}return t=!0,i=Number.POSITIVE_INFINITY,o},o.attachers=r,o.use=function(e){for(var n=arguments.length,i=new Array(n>1?n-1:0),s=1;s<n;s++)i[s-1]=arguments[s];var l;if(re("use",t),null===e||void 0===e);else if("function"===typeof e)m.apply(void 0,[e].concat(i));else{if("object"!==typeof e)throw new TypeError("Expected usable value, not `"+e+"`");Array.isArray(e)?d(e):u(e)}l&&(a.settings=Object.assign(a.settings||{},l));return o;function c(e){if("function"===typeof e)m(e);else{if("object"!==typeof e)throw new TypeError("Expected usable value, not `"+e+"`");if(Array.isArray(e)){var t=q(e),n=t[0],r=t.slice(1);m.apply(void 0,[n].concat(p(r)))}else u(e)}}function u(e){d(e.plugins),e.settings&&(l=Object.assign(l||{},e.settings))}function d(e){var t=-1;if(null===e||void 0===e);else{if(!Array.isArray(e))throw new TypeError("Expected a list of plugins, not `"+e+"`");for(;++t<e.length;){c(e[t])}}}function m(e,t){for(var n,a=-1;++a<r.length;)if(r[a][0]===e){n=r[a];break}n?(Y(n[1])&&Y(t)&&(t=X(!0,n[1],t)),n[1]=t):r.push(Array.prototype.slice.call(arguments))}},o.parse=function(e){o.freeze();var t=oe(e),n=o.Parser;if(te("parse",n),ee(n,"parse"))return new n(String(t),t).parse();return n(String(t),t)},o.stringify=function(e,t){o.freeze();var n=oe(t),r=o.Compiler;if(ne("stringify",r),ae(e),ee(r,"compile"))return new r(e,n).compile();return r(e,n)},o.run=function(e,t,r){ae(e),o.freeze(),r||"function"!==typeof t||(r=t,t=void 0);if(!r)return new Promise(a);function a(a,i){function o(t,n,o){n=n||e,t?i(t):a?a(n):r(null,n,o)}n.run(e,oe(t),o)}a(null,r)},o.runSync=function(e,t){var n,r;return o.run(e,t,a),ie("runSync","run",r),n;function a(e,t){K(e),n=t,r=!0}},o.process=function(e,t){if(o.freeze(),te("process",o.Parser),ne("process",o.Compiler),!t)return new Promise(n);function n(n,r){var a=oe(e);function i(e,a){e||!a?r(e):n?n(a):t(null,a)}o.run(o.parse(a),a,(function(e,t,n){if(!e&&t&&n){var r=o.stringify(t,n);void 0===r||null===r||("string"===typeof(a=r)||T(a)?n.value=r:n.result=r),i(e,n)}else i(e);var a}))}n(null,t)},o.processSync=function(e){var t;o.freeze(),te("processSync",o.Parser),ne("processSync",o.Compiler);var n=oe(e);return o.process(n,r),ie("processSync","process",t),n;function r(e){t=!0,K(e)}},o;function o(){for(var t=e(),n=-1;++n<r.length;)t.use.apply(t,p(r[n]));return t.data(X(!0,{},a)),t}}().freeze(),J={}.hasOwnProperty;function ee(e,t){return"function"===typeof e&&e.prototype&&(function(e){var t;for(t in e)if(J.call(e,t))return!0;return!1}(e.prototype)||t in e.prototype)}function te(e,t){if("function"!==typeof t)throw new TypeError("Cannot `"+e+"` without `Parser`")}function ne(e,t){if("function"!==typeof t)throw new TypeError("Cannot `"+e+"` without `Compiler`")}function re(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function ae(e){if(!Y(e)||"string"!==typeof e.type)throw new TypeError("Expected node, got `"+e+"`")}function ie(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function oe(e){return function(e){return Boolean(e&&"object"===typeof e&&"message"in e&&"messages"in e)}(e)?e:new $(e)}function se(e,t){var n=(t||{}).includeImageAlt;return le(e,void 0===n||n)}function le(e,t){return e&&"object"===typeof e&&(e.value||(t?e.alt:"")||"children"in e&&ce(e.children,t)||Array.isArray(e)&&ce(e,t))||""}function ce(e,t){for(var n=[],r=-1;++r<e.length;)n[r]=le(e[r],t);return n.join("")}function ue(e,t,n,r){var a,i=e.length,o=0;if(t=t<0?-t>i?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)(a=Array.from(r)).unshift(t,n),[].splice.apply(e,a);else for(n&&[].splice.apply(e,[t,n]);o<r.length;)(a=r.slice(o,o+1e4)).unshift(t,0),[].splice.apply(e,a),o+=1e4,t+=1e4}function de(e,t){return e.length>0?(ue(e,e.length,0,t),e):t}var pe={}.hasOwnProperty;function me(e){for(var t={},n=-1;++n<e.length;)ge(t,e[n]);return t}function ge(e,t){var n;for(n in t){var r=(pe.call(e,n)?e[n]:void 0)||(e[n]={}),a=t[n],i=void 0;for(i in a){pe.call(r,i)||(r[i]=[]);var o=a[i];he(r[i],Array.isArray(o)?o:o?[o]:[])}}}function he(e,t){for(var n=-1,r=[];++n<t.length;)("after"===t[n].add?e:r).push(t[n]);ue(e,0,0,r)}var fe=Ne(/[A-Za-z]/),be=Ne(/\d/),Ee=Ne(/[\dA-Fa-f]/),ye=Ne(/[\dA-Za-z]/),Te=Ne(/[!-/:-@[-`{-~]/),Se=Ne(/[#-'*+\--9=?A-Z^-~]/);function ve(e){return null!==e&&(e<32||127===e)}function Ae(e){return null!==e&&(e<0||32===e)}function ke(e){return null!==e&&e<-2}function we(e){return-2===e||-1===e||32===e}var _e=Ne(/\s/),Ce=Ne(/[!-/:-@[-`{-~\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/);function Ne(e){return function(t){return null!==t&&e.test(String.fromCharCode(t))}}function Ie(e,t,n,r){var a=r?r-1:Number.POSITIVE_INFINITY,i=0;return function(r){if(we(r))return e.enter(n),o(r);return t(r)};function o(r){return we(r)&&i++<a?(e.consume(r),o):(e.exit(n),t(r))}}var xe={tokenize:function(e){var t,n=e.attempt(this.parser.constructs.contentInitial,(function(t){if(null===t)return void e.consume(t);return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Ie(e,n,"linePrefix")}),(function(t){return e.enter("paragraph"),r(t)}));return n;function r(n){var r=e.enter("chunkText",{contentType:"text",previous:t});return t&&(t.next=r),t=r,a(n)}function a(t){return null===t?(e.exit("chunkText"),e.exit("paragraph"),void e.consume(t)):ke(t)?(e.consume(t),e.exit("chunkText"),r):(e.consume(t),a)}}};var Re={tokenize:function(e){var t,n,r,a=this,i=[],o=0;return s;function s(t){if(o<i.length){var n=i[o];return a.containerState=n[1],e.attempt(n[0].continuation,l,c)(t)}return c(t)}function l(e){if(o++,a.containerState._closeFlow){a.containerState._closeFlow=void 0,t&&E();for(var n,r=a.events.length,i=r;i--;)if("exit"===a.events[i][0]&&"chunkFlow"===a.events[i][1].type){n=a.events[i][1].end;break}b(o);for(var l=r;l<a.events.length;)a.events[l][1].end=Object.assign({},n),l++;return ue(a.events,i+1,0,a.events.slice(r)),a.events.length=l,c(e)}return s(e)}function c(n){if(o===i.length){if(!t)return p(n);if(t.currentConstruct&&t.currentConstruct.concrete)return g(n);a.interrupt=Boolean(t.currentConstruct&&!t._gfmTableDynamicInterruptHack)}return a.containerState={},e.check(Oe,u,d)(n)}function u(e){return t&&E(),b(o),p(e)}function d(e){return a.parser.lazy[a.now().line]=o!==i.length,r=a.now().offset,g(e)}function p(t){return a.containerState={},e.attempt(Oe,m,g)(t)}function m(e){return o++,i.push([a.currentConstruct,a.containerState]),p(e)}function g(r){return null===r?(t&&E(),b(0),void e.consume(r)):(t=t||a.parser.flow(a.now()),e.enter("chunkFlow",{contentType:"flow",previous:n,_tokenizer:t}),h(r))}function h(t){return null===t?(f(e.exit("chunkFlow"),!0),b(0),void e.consume(t)):ke(t)?(e.consume(t),f(e.exit("chunkFlow")),o=0,a.interrupt=void 0,s):(e.consume(t),h)}function f(e,i){var s=a.sliceStream(e);if(i&&s.push(null),e.previous=n,n&&(n.next=e),n=e,t.defineSkip(e.start),t.write(s),a.parser.lazy[e.start.line]){for(var l=t.events.length;l--;)if(t.events[l][1].start.offset<r&&(!t.events[l][1].end||t.events[l][1].end.offset>r))return;for(var c,u,d=a.events.length,p=d;p--;)if("exit"===a.events[p][0]&&"chunkFlow"===a.events[p][1].type){if(c){u=a.events[p][1].end;break}c=!0}for(b(o),l=d;l<a.events.length;)a.events[l][1].end=Object.assign({},u),l++;ue(a.events,p+1,0,a.events.slice(d)),a.events.length=l}}function b(t){for(var n=i.length;n-- >t;){var r=i[n];a.containerState=r[1],r[0].exit.call(a,e)}i.length=t}function E(){t.write([null]),n=void 0,t=void 0,a.containerState._closeFlow=void 0}}},Oe={tokenize:function(e,t,n){return Ie(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};var Le={tokenize:function(e,t,n){return Ie(e,(function(e){return null===e||ke(e)?t(e):n(e)}),"linePrefix")},partial:!0};function Pe(e){for(var t,n,r,a,i,o,s,l={},c=-1;++c<e.length;){for(;c in l;)c=l[c];if(t=e[c],c&&"chunkFlow"===t[1].type&&"listItemPrefix"===e[c-1][1].type&&((r=0)<(o=t[1]._tokenizer.events).length&&"lineEndingBlank"===o[r][1].type&&(r+=2),r<o.length&&"content"===o[r][1].type))for(;++r<o.length&&"content"!==o[r][1].type;)"chunkText"===o[r][1].type&&(o[r][1]._isInFirstContentOfListItem=!0,r++);if("enter"===t[0])t[1].contentType&&(Object.assign(l,De(e,c)),c=l[c],s=!0);else if(t[1]._container){for(r=c,n=void 0;r--&&("lineEnding"===(a=e[r])[1].type||"lineEndingBlank"===a[1].type);)"enter"===a[0]&&(n&&(e[n][1].type="lineEndingBlank"),a[1].type="lineEnding",n=r);n&&(t[1].end=Object.assign({},e[n][1].start),(i=e.slice(n,c)).unshift(t),ue(e,n,c-n+1,i))}}return!s}function De(e,t){for(var n,r,a=e[t][1],i=e[t][2],o=t-1,s=[],l=a._tokenizer||i.parser[a.contentType](a.start),c=l.events,u=[],d={},p=-1,m=a,g=0,h=0,f=[h];m;){for(;e[++o][1]!==m;);s.push(o),m._tokenizer||(n=i.sliceStream(m),m.next||n.push(null),r&&l.defineSkip(m.start),m._isInFirstContentOfListItem&&(l._gfmTasklistFirstContentOfListItem=!0),l.write(n),m._isInFirstContentOfListItem&&(l._gfmTasklistFirstContentOfListItem=void 0)),r=m,m=m.next}for(m=a;++p<c.length;)"exit"===c[p][0]&&"enter"===c[p-1][0]&&c[p][1].type===c[p-1][1].type&&c[p][1].start.line!==c[p][1].end.line&&(h=p+1,f.push(h),m._tokenizer=void 0,m.previous=void 0,m=m.next);for(l.events=[],m?(m._tokenizer=void 0,m.previous=void 0):f.pop(),p=f.length;p--;){var b=c.slice(f[p],f[p+1]),E=s.pop();u.unshift([E,E+b.length-1]),ue(e,E,2,b)}for(p=-1;++p<u.length;)d[g+u[p][0]]=g+u[p][1],g+=u[p][1]-u[p][0]-1;return d}var Me={tokenize:function(e,t){var n;return function(t){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),r(t)};function r(t){return null===t?a(t):ke(t)?e.check(Fe,i,a)(t):(e.consume(t),r)}function a(n){return e.exit("chunkContent"),e.exit("content"),t(n)}function i(t){return e.consume(t),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,r}},resolve:function(e){return Pe(e),e}},Fe={tokenize:function(e,t,n){var r=this;return function(t){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Ie(e,a,"linePrefix")};function a(a){if(null===a||ke(a))return n(a);var i=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}},partial:!0};var Ue={tokenize:function(e){var t=this,n=e.attempt(Le,(function(r){if(null===r)return void e.consume(r);return e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}),e.attempt(this.parser.constructs.flowInitial,r,Ie(e,e.attempt(this.parser.constructs.flow,r,e.attempt(Me,r)),"linePrefix")));return n;function r(r){if(null!==r)return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),t.currentConstruct=void 0,n;e.consume(r)}}};var Be={resolveAll:$e()},Ge=ze("string"),He=ze("text");function ze(e){return{tokenize:function(t){var n=this,r=this.parser.constructs[e],a=t.attempt(r,i,o);return i;function i(e){return l(e)?a(e):o(e)}function o(e){if(null!==e)return t.enter("data"),t.consume(e),s;t.consume(e)}function s(e){return l(e)?(t.exit("data"),a(e)):(t.consume(e),s)}function l(e){if(null===e)return!0;var t=r[e],a=-1;if(t)for(;++a<t.length;){var i=t[a];if(!i.previous||i.previous.call(n,n.previous))return!0}return!1}},resolveAll:$e("text"===e?Ve:void 0)}}function $e(e){return function(t,n){var r,a=-1;for(;++a<=t.length;)void 0===r?t[a]&&"data"===t[a][1].type&&(r=a,a++):t[a]&&"data"===t[a][1].type||(a!==r+2&&(t[r][1].end=t[a-1][1].end,t.splice(r+2,a-r-2),a=r+2),r=void 0);return e?e(t,n):t}}function Ve(e,t){for(var n=0;++n<=e.length;)if((n===e.length||"lineEnding"===e[n][1].type)&&"data"===e[n-1][1].type){for(var r=e[n-1][1],a=t.sliceStream(r),i=a.length,o=-1,s=0,l=void 0;i--;){var c=a[i];if("string"===typeof c){for(o=c.length;32===c.charCodeAt(o-1);)s++,o--;if(o)break;o=-1}else if(-2===c)l=!0,s++;else if(-1!==c){i++;break}}if(s){var u={type:n===e.length||l||s<2?"lineSuffix":"hardBreakTrailing",start:{line:r.end.line,column:r.end.column-s,offset:r.end.offset-s,_index:r.start._index+i,_bufferIndex:i?o:r.start._bufferIndex+o},end:Object.assign({},r.end)};r.end=Object.assign({},u.start),r.start.offset===r.end.offset?Object.assign(r,u):(e.splice(n,0,["enter",u,t],["exit",u,t]),n+=2)}n++}return e}function je(e,t,n){for(var r=[],a=-1;++a<e.length;){var i=e[a].resolveAll;i&&!r.includes(i)&&(t=i(t,n),r.push(i))}return t}function We(e,t,n){var r=Object.assign(n?Object.assign({},n):{line:1,column:1,offset:0},{_index:0,_bufferIndex:-1}),a={},i=[],o=[],s=[],l={consume:function(e){ke(e)?(r.line++,r.column=1,r.offset+=-3===e?2:1,y()):-1!==e&&(r.column++,r.offset++);r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++));c.previous=e,!0},enter:function(e,t){var n=t||{};return n.type=e,n.start=m(),c.events.push(["enter",n,c]),s.push(n),n},exit:function(e){var t=s.pop();return t.end=m(),c.events.push(["exit",t,c]),t},attempt:b((function(e,t){E(e,t.from)})),check:b(f),interrupt:b(f,{interrupt:!0})},c={previous:null,code:null,containerState:{},events:[],parser:e,sliceStream:d,sliceSerialize:function(e,t){return function(e,t){var n,r=-1,a=[];for(;++r<e.length;){var i=e[r],o=void 0;if("string"===typeof i)o=i;else switch(i){case-5:o="\r";break;case-4:o="\n";break;case-3:o="\r\n";break;case-2:o=t?" ":"\t";break;case-1:if(!t&&n)continue;o=" ";break;default:o=String.fromCharCode(i)}n=-2===i,a.push(o)}return a.join("")}(d(e),t)},now:m,defineSkip:function(e){a[e.line]=e.column,y()},write:function(e){if(o=de(o,e),g(),null!==o[o.length-1])return[];return E(t,0),c.events=je(i,c.events,c),c.events}},u=t.tokenize.call(c,l);return t.resolveAll&&i.push(t),c;function d(e){return function(e,t){var n,r=t.start._index,a=t.start._bufferIndex,i=t.end._index,o=t.end._bufferIndex;r===i?n=[e[r].slice(a,o)]:(n=e.slice(r,i),a>-1&&(n[0]=n[0].slice(a)),o>0&&n.push(e[i].slice(0,o)));return n}(o,e)}function m(){return Object.assign({},r)}function g(){for(var e;r._index<o.length;){var t=o[r._index];if("string"===typeof t)for(e=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===e&&r._bufferIndex<t.length;)h(t.charCodeAt(r._bufferIndex));else h(t)}}function h(e){void 0,e,u=u(e)}function f(e,t){t.restore()}function b(e,t){return function(n,a,i){var o,u,d,g;return Array.isArray(n)?h(n):"tokenize"in n?h([n]):function(e){return t;function t(t){var n=null!==t&&e[t],r=null!==t&&e.null;return h([].concat(p(Array.isArray(n)?n:n?[n]:[]),p(Array.isArray(r)?r:r?[r]:[])))(t)}}(n);function h(e){return o=e,u=0,0===e.length?i:f(e[u])}function f(e){return function(n){g=function(){var e=m(),t=c.previous,n=c.currentConstruct,a=c.events.length,i=Array.from(s);return{restore:o,from:a};function o(){r=e,c.previous=t,c.currentConstruct=n,c.events.length=a,s=i,y()}}(),d=e,e.partial||(c.currentConstruct=e);if(e.name&&c.parser.constructs.disable.null.includes(e.name))return E(n);return e.tokenize.call(t?Object.assign(Object.create(c),t):c,l,b,E)(n)}}function b(t){return!0,e(d,g),a}function E(e){return!0,g.restore(),++u<o.length?f(o[u]):i}}}function E(e,t){e.resolveAll&&!i.includes(e)&&i.push(e),e.resolve&&ue(c.events,t,c.events.length-t,e.resolve(c.events.slice(t),c)),e.resolveTo&&(c.events=e.resolveTo(c.events,c))}function y(){r.line in a&&r.column<2&&(r.column=a[r.line],r.offset+=a[r.line]-1)}}var qe={name:"thematicBreak",tokenize:function(e,t,n){var r,a=0;return function(t){return e.enter("thematicBreak"),r=t,i(t)};function i(s){return s===r?(e.enter("thematicBreakSequence"),o(s)):we(s)?Ie(e,i,"whitespace")(s):a<3||null!==s&&!ke(s)?n(s):(e.exit("thematicBreak"),t(s))}function o(t){return t===r?(e.consume(t),a++,o):(e.exit("thematicBreakSequence"),i(t))}}};var Ke={name:"list",tokenize:function(e,t,n){var r=this,a=r.events[r.events.length-1],i=a&&"linePrefix"===a[1].type?a[2].sliceSerialize(a[1],!0).length:0,o=0;return function(t){var a=r.containerState.type||(42===t||43===t||45===t?"listUnordered":"listOrdered");if("listUnordered"===a?!r.containerState.marker||t===r.containerState.marker:be(t)){if(r.containerState.type||(r.containerState.type=a,e.enter(a,{_container:!0})),"listUnordered"===a)return e.enter("listItemPrefix"),42===t||45===t?e.check(qe,n,l)(t):l(t);if(!r.interrupt||49===t)return e.enter("listItemPrefix"),e.enter("listItemValue"),s(t)}return n(t)};function s(t){return be(t)&&++o<10?(e.consume(t),s):(!r.interrupt||o<2)&&(r.containerState.marker?t===r.containerState.marker:41===t||46===t)?(e.exit("listItemValue"),l(t)):n(t)}function l(t){return e.enter("listItemMarker"),e.consume(t),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||t,e.check(Le,r.interrupt?n:c,e.attempt(Xe,d,u))}function c(e){return r.containerState.initialBlankLine=!0,i++,d(e)}function u(t){return we(t)?(e.enter("listItemPrefixWhitespace"),e.consume(t),e.exit("listItemPrefixWhitespace"),d):n(t)}function d(n){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(n)}},continuation:{tokenize:function(e,t,n){var r=this;return r.containerState._closeFlow=void 0,e.check(Le,a,i);function a(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ie(e,t,"listItemIndent",r.containerState.size+1)(n)}function i(n){return r.containerState.furtherBlankLines||!we(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Ye,t,o)(n))}function o(a){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ie(e,e.attempt(Ke,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}},exit:function(e){e.exit(this.containerState.type)}},Xe={tokenize:function(e,t,n){var r=this;return Ie(e,(function(e){var a=r.events[r.events.length-1];return!we(e)&&a&&"listItemPrefixWhitespace"===a[1].type?t(e):n(e)}),"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5)},partial:!0},Ye={tokenize:function(e,t,n){var r=this;return Ie(e,(function(e){var a=r.events[r.events.length-1];return a&&"listItemIndent"===a[1].type&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(e):n(e)}),"listItemIndent",r.containerState.size+1)},partial:!0};var Ze={name:"blockQuote",tokenize:function(e,t,n){var r=this;return function(t){if(62===t){var i=r.containerState;return i.open||(e.enter("blockQuote",{_container:!0}),i.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(t),e.exit("blockQuoteMarker"),a}return n(t)};function a(n){return we(n)?(e.enter("blockQuotePrefixWhitespace"),e.consume(n),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(n))}},continuation:{tokenize:function(e,t,n){return Ie(e,e.attempt(Ze,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}},exit:function(e){e.exit("blockQuote")}};function Qe(e,t,n,r,a,i,o,s,l){var c=l||Number.POSITIVE_INFINITY,u=0;return function(t){if(60===t)return e.enter(r),e.enter(a),e.enter(i),e.consume(t),e.exit(i),d;if(null===t||41===t||ve(t))return n(t);return e.enter(r),e.enter(o),e.enter(s),e.enter("chunkString",{contentType:"string"}),g(t)};function d(n){return 62===n?(e.enter(i),e.consume(n),e.exit(i),e.exit(a),e.exit(r),t):(e.enter(s),e.enter("chunkString",{contentType:"string"}),p(n))}function p(t){return 62===t?(e.exit("chunkString"),e.exit(s),d(t)):null===t||60===t||ke(t)?n(t):(e.consume(t),92===t?m:p)}function m(t){return 60===t||62===t||92===t?(e.consume(t),p):p(t)}function g(a){return 40===a?++u>c?n(a):(e.consume(a),g):41===a?u--?(e.consume(a),g):(e.exit("chunkString"),e.exit(s),e.exit(o),e.exit(r),t(a)):null===a||Ae(a)?u?n(a):(e.exit("chunkString"),e.exit(s),e.exit(o),e.exit(r),t(a)):ve(a)?n(a):(e.consume(a),92===a?h:g)}function h(t){return 40===t||41===t||92===t?(e.consume(t),g):g(t)}}function Je(e,t,n,r,a,i){var o,s=this,l=0;return function(t){return e.enter(r),e.enter(a),e.consume(t),e.exit(a),e.enter(i),c};function c(d){return null===d||91===d||93===d&&!o||94===d&&!l&&"_hiddenFootnoteSupport"in s.parser.constructs||l>999?n(d):93===d?(e.exit(i),e.enter(a),e.consume(d),e.exit(a),e.exit(r),t):ke(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),u(d))}function u(t){return null===t||91===t||93===t||ke(t)||l++>999?(e.exit("chunkString"),c(t)):(e.consume(t),o=o||!we(t),92===t?d:u)}function d(t){return 91===t||92===t||93===t?(e.consume(t),l++,u):u(t)}}function et(e,t,n,r,a,i){var o;return function(t){return e.enter(r),e.enter(a),e.consume(t),e.exit(a),o=40===t?41:t,s};function s(n){return n===o?(e.enter(a),e.consume(n),e.exit(a),e.exit(r),t):(e.enter(i),l(n))}function l(t){return t===o?(e.exit(i),s(o)):null===t?n(t):ke(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Ie(e,l,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(t))}function c(t){return t===o||null===t||ke(t)?(e.exit("chunkString"),l(t)):(e.consume(t),92===t?u:c)}function u(t){return t===o||92===t?(e.consume(t),c):c(t)}}function tt(e,t){var n;return function r(a){if(ke(a))return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),n=!0,r;if(we(a))return Ie(e,r,n?"linePrefix":"lineSuffix")(a);return t(a)}}function nt(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}var rt={name:"definition",tokenize:function(e,t,n){var r,a=this;return function(t){return e.enter("definition"),Je.call(a,e,i,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)};function i(t){return r=nt(a.sliceSerialize(a.events[a.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),tt(e,Qe(e,e.attempt(at,Ie(e,o,"whitespace"),Ie(e,o,"whitespace")),n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):n(t)}function o(i){return null===i||ke(i)?(e.exit("definition"),a.parser.defined.includes(r)||a.parser.defined.push(r),t(i)):n(i)}}},at={tokenize:function(e,t,n){return function(t){return Ae(t)?tt(e,r)(t):n(t)};function r(t){return 34===t||39===t||40===t?et(e,Ie(e,a,"whitespace"),n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t):n(t)}function a(e){return null===e||ke(e)?t(e):n(e)}},partial:!0};var it={name:"codeIndented",tokenize:function(e,t,n){var r=this;return function(t){return e.enter("codeIndented"),Ie(e,a,"linePrefix",5)(t)};function a(e){var t=r.events[r.events.length-1];return t&&"linePrefix"===t[1].type&&t[2].sliceSerialize(t[1],!0).length>=4?i(e):n(e)}function i(t){return null===t?s(t):ke(t)?e.attempt(ot,i,s)(t):(e.enter("codeFlowValue"),o(t))}function o(t){return null===t||ke(t)?(e.exit("codeFlowValue"),i(t)):(e.consume(t),o)}function s(n){return e.exit("codeIndented"),t(n)}}},ot={tokenize:function(e,t,n){var r=this;return a;function a(t){return r.parser.lazy[r.now().line]?n(t):ke(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),a):Ie(e,i,"linePrefix",5)(t)}function i(e){var i=r.events[r.events.length-1];return i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?t(e):ke(e)?a(e):n(e)}},partial:!0};var st={name:"headingAtx",tokenize:function(e,t,n){var r=this,a=0;return function(t){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),i(t)};function i(s){return 35===s&&a++<6?(e.consume(s),i):null===s||Ae(s)?(e.exit("atxHeadingSequence"),r.interrupt?t(s):o(s)):n(s)}function o(n){return 35===n?(e.enter("atxHeadingSequence"),s(n)):null===n||ke(n)?(e.exit("atxHeading"),t(n)):we(n)?Ie(e,o,"whitespace")(n):(e.enter("atxHeadingText"),l(n))}function s(t){return 35===t?(e.consume(t),s):(e.exit("atxHeadingSequence"),o(t))}function l(t){return null===t||35===t||Ae(t)?(e.exit("atxHeadingText"),o(t)):(e.consume(t),l)}},resolve:function(e,t){var n,r,a=e.length-2,i=3;"whitespace"===e[i][1].type&&(i+=2);a-2>i&&"whitespace"===e[a][1].type&&(a-=2);"atxHeadingSequence"===e[a][1].type&&(i===a-1||a-4>i&&"whitespace"===e[a-2][1].type)&&(a-=i+1===a?2:4);a>i&&(n={type:"atxHeadingText",start:e[i][1].start,end:e[a][1].end},r={type:"chunkText",start:e[i][1].start,end:e[a][1].end,contentType:"text"},ue(e,i,a-i+1,[["enter",n,t],["enter",r,t],["exit",r,t],["exit",n,t]]));return e}};var lt={name:"setextUnderline",tokenize:function(e,t,n){var r,a,i=this,o=i.events.length;for(;o--;)if("lineEnding"!==i.events[o][1].type&&"linePrefix"!==i.events[o][1].type&&"content"!==i.events[o][1].type){a="paragraph"===i.events[o][1].type;break}return function(t){if(!i.parser.lazy[i.now().line]&&(i.interrupt||a))return e.enter("setextHeadingLine"),e.enter("setextHeadingLineSequence"),r=t,s(t);return n(t)};function s(t){return t===r?(e.consume(t),s):(e.exit("setextHeadingLineSequence"),Ie(e,l,"lineSuffix")(t))}function l(r){return null===r||ke(r)?(e.exit("setextHeadingLine"),t(r)):n(r)}},resolveTo:function(e,t){var n,r,a,i=e.length;for(;i--;)if("enter"===e[i][0]){if("content"===e[i][1].type){n=i;break}"paragraph"===e[i][1].type&&(r=i)}else"content"===e[i][1].type&&e.splice(i,1),a||"definition"!==e[i][1].type||(a=i);var o={type:"setextHeading",start:Object.assign({},e[r][1].start),end:Object.assign({},e[e.length-1][1].end)};e[r][1].type="setextHeadingText",a?(e.splice(r,0,["enter",o,t]),e.splice(a+1,0,["exit",e[n][1],t]),e[n][1].end=Object.assign({},e[a][1].end)):e[n][1]=o;return e.push(["exit",o,t]),e}};var ct=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],ut=["pre","script","style","textarea"],dt={name:"htmlFlow",tokenize:function(e,t,n){var r,a,i,o,s,l=this;return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),c};function c(o){return 33===o?(e.consume(o),u):47===o?(e.consume(o),m):63===o?(e.consume(o),r=3,l.interrupt?t:P):fe(o)?(e.consume(o),i=String.fromCharCode(o),a=!0,g):n(o)}function u(a){return 45===a?(e.consume(a),r=2,d):91===a?(e.consume(a),r=5,i="CDATA[",o=0,p):fe(a)?(e.consume(a),r=4,l.interrupt?t:P):n(a)}function d(r){return 45===r?(e.consume(r),l.interrupt?t:P):n(r)}function p(r){return r===i.charCodeAt(o++)?(e.consume(r),o===i.length?l.interrupt?t:_:p):n(r)}function m(t){return fe(t)?(e.consume(t),i=String.fromCharCode(t),g):n(t)}function g(o){return null===o||47===o||62===o||Ae(o)?47!==o&&a&&ut.includes(i.toLowerCase())?(r=1,l.interrupt?t(o):_(o)):ct.includes(i.toLowerCase())?(r=6,47===o?(e.consume(o),h):l.interrupt?t(o):_(o)):(r=7,l.interrupt&&!l.parser.lazy[l.now().line]?n(o):a?b(o):f(o)):45===o||ye(o)?(e.consume(o),i+=String.fromCharCode(o),g):n(o)}function h(r){return 62===r?(e.consume(r),l.interrupt?t:_):n(r)}function f(t){return we(t)?(e.consume(t),f):k(t)}function b(t){return 47===t?(e.consume(t),k):58===t||95===t||fe(t)?(e.consume(t),E):we(t)?(e.consume(t),b):k(t)}function E(t){return 45===t||46===t||58===t||95===t||ye(t)?(e.consume(t),E):y(t)}function y(t){return 61===t?(e.consume(t),T):we(t)?(e.consume(t),y):b(t)}function T(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),s=t,S):we(t)?(e.consume(t),T):(s=null,v(t))}function S(t){return null===t||ke(t)?n(t):t===s?(e.consume(t),A):(e.consume(t),S)}function v(t){return null===t||34===t||39===t||60===t||61===t||62===t||96===t||Ae(t)?y(t):(e.consume(t),v)}function A(e){return 47===e||62===e||we(e)?b(e):n(e)}function k(t){return 62===t?(e.consume(t),w):n(t)}function w(t){return we(t)?(e.consume(t),w):null===t||ke(t)?_(t):n(t)}function _(t){return 45===t&&2===r?(e.consume(t),x):60===t&&1===r?(e.consume(t),R):62===t&&4===r?(e.consume(t),D):63===t&&3===r?(e.consume(t),P):93===t&&5===r?(e.consume(t),L):!ke(t)||6!==r&&7!==r?null===t||ke(t)?C(t):(e.consume(t),_):e.check(pt,D,C)(t)}function C(t){return e.exit("htmlFlowData"),N(t)}function N(t){return null===t?M(t):ke(t)?e.attempt({tokenize:I,partial:!0},N,M)(t):(e.enter("htmlFlowData"),_(t))}function I(e,t,n){return function(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),r};function r(e){return l.parser.lazy[l.now().line]?n(e):t(e)}}function x(t){return 45===t?(e.consume(t),P):_(t)}function R(t){return 47===t?(e.consume(t),i="",O):_(t)}function O(t){return 62===t&&ut.includes(i.toLowerCase())?(e.consume(t),D):fe(t)&&i.length<8?(e.consume(t),i+=String.fromCharCode(t),O):_(t)}function L(t){return 93===t?(e.consume(t),P):_(t)}function P(t){return 62===t?(e.consume(t),D):45===t&&2===r?(e.consume(t),P):_(t)}function D(t){return null===t||ke(t)?(e.exit("htmlFlowData"),M(t)):(e.consume(t),D)}function M(n){return e.exit("htmlFlow"),t(n)}},resolveTo:function(e){var t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2));return e},concrete:!0},pt={tokenize:function(e,t,n){return function(r){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),e.attempt(Le,t,n)}},partial:!0};var mt={name:"codeFenced",tokenize:function(e,t,n){var r,a=this,i={tokenize:function(e,t,n){var a=0;return Ie(e,i,"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4);function i(t){return e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),o(t)}function o(t){return t===r?(e.consume(t),a++,o):a<c?n(t):(e.exit("codeFencedFenceSequence"),Ie(e,s,"whitespace")(t))}function s(r){return null===r||ke(r)?(e.exit("codeFencedFence"),t(r)):n(r)}},partial:!0},o={tokenize:function(e,t,n){var r=this;return a;function a(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i}function i(e){return r.parser.lazy[r.now().line]?n(e):t(e)}},partial:!0},s=this.events[this.events.length-1],l=s&&"linePrefix"===s[1].type?s[2].sliceSerialize(s[1],!0).length:0,c=0;return function(t){return e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),r=t,u(t)};function u(t){return t===r?(e.consume(t),c++,u):(e.exit("codeFencedFenceSequence"),c<3?n(t):Ie(e,d,"whitespace")(t))}function d(t){return null===t||ke(t)?h(t):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),p(t))}function p(t){return null===t||Ae(t)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),Ie(e,m,"whitespace")(t)):96===t&&t===r?n(t):(e.consume(t),p)}function m(t){return null===t||ke(t)?h(t):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),g(t))}function g(t){return null===t||ke(t)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),h(t)):96===t&&t===r?n(t):(e.consume(t),g)}function h(n){return e.exit("codeFencedFence"),a.interrupt?t(n):f(n)}function f(t){return null===t?E(t):ke(t)?e.attempt(o,e.attempt(i,E,l?Ie(e,f,"linePrefix",l+1):f),E)(t):(e.enter("codeFlowValue"),b(t))}function b(t){return null===t||ke(t)?(e.exit("codeFlowValue"),f(t)):(e.consume(t),b)}function E(n){return e.exit("codeFenced"),t(n)}},concrete:!0};var gt=document.createElement("i");function ht(e){var t="&"+e+";";gt.innerHTML=t;var n=gt.textContent;return(59!==n.charCodeAt(n.length-1)||"semi"===e)&&(n!==t&&n)}var ft={name:"characterReference",tokenize:function(e,t,n){var r,a,i=this,o=0;return function(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),s};function s(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),l):(e.enter("characterReferenceValue"),r=31,a=ye,c(t))}function l(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),r=6,a=Ee,c):(e.enter("characterReferenceValue"),r=7,a=be,c(t))}function c(s){var l;return 59===s&&o?(l=e.exit("characterReferenceValue"),a!==ye||ht(i.sliceSerialize(l))?(e.enter("characterReferenceMarker"),e.consume(s),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):n(s)):a(s)&&o++<r?(e.consume(s),c):n(s)}}};var bt={name:"characterEscape",tokenize:function(e,t,n){return function(t){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(t),e.exit("escapeMarker"),r};function r(r){return Te(r)?(e.enter("characterEscapeValue"),e.consume(r),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(r)}}};var Et={name:"lineEnding",tokenize:function(e,t){return function(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),Ie(e,t,"linePrefix")}}};var yt={name:"labelEnd",tokenize:function(e,t,n){var r,a,i=this,o=i.events.length;for(;o--;)if(("labelImage"===i.events[o][1].type||"labelLink"===i.events[o][1].type)&&!i.events[o][1]._balanced){r=i.events[o][1];break}return function(t){if(!r)return n(t);return r._inactive?l(t):(a=i.parser.defined.includes(nt(i.sliceSerialize({start:r.end,end:i.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelEnd"),s)};function s(n){return 40===n?e.attempt(Tt,t,a?t:l)(n):91===n?e.attempt(St,t,a?e.attempt(vt,t,l):l)(n):a?t(n):l(n)}function l(e){return r._balanced=!0,n(e)}},resolveTo:function(e,t){var n,r,a,i,o=e.length,s=0;for(;o--;)if(n=e[o][1],r){if("link"===n.type||"labelLink"===n.type&&n._inactive)break;"enter"===e[o][0]&&"labelLink"===n.type&&(n._inactive=!0)}else if(a){if("enter"===e[o][0]&&("labelImage"===n.type||"labelLink"===n.type)&&!n._balanced&&(r=o,"labelLink"!==n.type)){s=2;break}}else"labelEnd"===n.type&&(a=o);var l={type:"labelLink"===e[r][1].type?"link":"image",start:Object.assign({},e[r][1].start),end:Object.assign({},e[e.length-1][1].end)},c={type:"label",start:Object.assign({},e[r][1].start),end:Object.assign({},e[a][1].end)},u={type:"labelText",start:Object.assign({},e[r+s+2][1].end),end:Object.assign({},e[a-2][1].start)};return i=de(i=[["enter",l,t],["enter",c,t]],e.slice(r+1,r+s+3)),i=de(i,[["enter",u,t]]),i=de(i,je(t.parser.constructs.insideSpan.null,e.slice(r+s+4,a-3),t)),i=de(i,[["exit",u,t],e[a-2],e[a-1],["exit",c,t]]),i=de(i,e.slice(a+1)),i=de(i,[["exit",l,t]]),ue(e,r,e.length,i),e},resolveAll:function(e){var t,n=-1;for(;++n<e.length;)"labelImage"!==(t=e[n][1]).type&&"labelLink"!==t.type&&"labelEnd"!==t.type||(e.splice(n+1,"labelImage"===t.type?4:2),t.type="data",n++);return e}},Tt={tokenize:function(e,t,n){return function(t){return e.enter("resource"),e.enter("resourceMarker"),e.consume(t),e.exit("resourceMarker"),tt(e,r)};function r(t){return 41===t?o(t):Qe(e,a,n,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(t)}function a(t){return Ae(t)?tt(e,i)(t):o(t)}function i(t){return 34===t||39===t||40===t?et(e,tt(e,o),n,"resourceTitle","resourceTitleMarker","resourceTitleString")(t):o(t)}function o(r){return 41===r?(e.enter("resourceMarker"),e.consume(r),e.exit("resourceMarker"),e.exit("resource"),t):n(r)}}},St={tokenize:function(e,t,n){var r=this;return function(t){return Je.call(r,e,a,n,"reference","referenceMarker","referenceString")(t)};function a(e){return r.parser.defined.includes(nt(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(e):n(e)}}},vt={tokenize:function(e,t,n){return function(t){return e.enter("reference"),e.enter("referenceMarker"),e.consume(t),e.exit("referenceMarker"),r};function r(r){return 93===r?(e.enter("referenceMarker"),e.consume(r),e.exit("referenceMarker"),e.exit("reference"),t):n(r)}}};var At={name:"labelStartImage",tokenize:function(e,t,n){var r=this;return function(t){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(t),e.exit("labelImageMarker"),a};function a(t){return 91===t?(e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelImage"),i):n(t)}function i(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?n(e):t(e)}},resolveAll:yt.resolveAll};function kt(e){return null===e||Ae(e)||_e(e)?1:Ce(e)?2:void 0}var wt={name:"attention",tokenize:function(e,t){var n,r=this.parser.constructs.attentionMarkers.null,a=this.previous,i=kt(a);return function(t){return e.enter("attentionSequence"),n=t,o(t)};function o(s){if(s===n)return e.consume(s),o;var l=e.exit("attentionSequence"),c=kt(s),u=!c||2===c&&i||r.includes(s),d=!i||2===i&&c||r.includes(a);return l._open=Boolean(42===n?u:u&&(i||!d)),l._close=Boolean(42===n?d:d&&(c||!u)),t(s)}},resolveAll:function(e,t){var n,r,a,i,o,s,l,c,u=-1;for(;++u<e.length;)if("enter"===e[u][0]&&"attentionSequence"===e[u][1].type&&e[u][1]._close)for(n=u;n--;)if("exit"===e[n][0]&&"attentionSequence"===e[n][1].type&&e[n][1]._open&&t.sliceSerialize(e[n][1]).charCodeAt(0)===t.sliceSerialize(e[u][1]).charCodeAt(0)){if((e[n][1]._close||e[u][1]._open)&&(e[u][1].end.offset-e[u][1].start.offset)%3&&!((e[n][1].end.offset-e[n][1].start.offset+e[u][1].end.offset-e[u][1].start.offset)%3))continue;s=e[n][1].end.offset-e[n][1].start.offset>1&&e[u][1].end.offset-e[u][1].start.offset>1?2:1;var d=Object.assign({},e[n][1].end),p=Object.assign({},e[u][1].start);_t(d,-s),_t(p,s),i={type:s>1?"strongSequence":"emphasisSequence",start:d,end:Object.assign({},e[n][1].end)},o={type:s>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[u][1].start),end:p},a={type:s>1?"strongText":"emphasisText",start:Object.assign({},e[n][1].end),end:Object.assign({},e[u][1].start)},r={type:s>1?"strong":"emphasis",start:Object.assign({},i.start),end:Object.assign({},o.end)},e[n][1].end=Object.assign({},i.start),e[u][1].start=Object.assign({},o.end),l=[],e[n][1].end.offset-e[n][1].start.offset&&(l=de(l,[["enter",e[n][1],t],["exit",e[n][1],t]])),l=de(l,[["enter",r,t],["enter",i,t],["exit",i,t],["enter",a,t]]),l=de(l,je(t.parser.constructs.insideSpan.null,e.slice(n+1,u),t)),l=de(l,[["exit",a,t],["enter",o,t],["exit",o,t],["exit",r,t]]),e[u][1].end.offset-e[u][1].start.offset?(c=2,l=de(l,[["enter",e[u][1],t],["exit",e[u][1],t]])):c=0,ue(e,n-1,u-n+3,l),u=n+l.length-c-2;break}u=-1;for(;++u<e.length;)"attentionSequence"===e[u][1].type&&(e[u][1].type="data");return e}};function _t(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}var Ct={name:"autolink",tokenize:function(e,t,n){var r=1;return function(t){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(t),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),a};function a(t){return fe(t)?(e.consume(t),i):Se(t)?l(t):n(t)}function i(e){return 43===e||45===e||46===e||ye(e)?o(e):l(e)}function o(t){return 58===t?(e.consume(t),s):(43===t||45===t||46===t||ye(t))&&r++<32?(e.consume(t),o):l(t)}function s(t){return 62===t?(e.exit("autolinkProtocol"),p(t)):null===t||32===t||60===t||ve(t)?n(t):(e.consume(t),s)}function l(t){return 64===t?(e.consume(t),r=0,c):Se(t)?(e.consume(t),l):n(t)}function c(e){return ye(e)?u(e):n(e)}function u(t){return 46===t?(e.consume(t),r=0,c):62===t?(e.exit("autolinkProtocol").type="autolinkEmail",p(t)):d(t)}function d(t){return(45===t||ye(t))&&r++<63?(e.consume(t),45===t?d:u):n(t)}function p(n){return e.enter("autolinkMarker"),e.consume(n),e.exit("autolinkMarker"),e.exit("autolink"),t}}};var Nt={name:"htmlText",tokenize:function(e,t,n){var r,a,i,o,s=this;return function(t){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(t),l};function l(t){return 33===t?(e.consume(t),c):47===t?(e.consume(t),v):63===t?(e.consume(t),T):fe(t)?(e.consume(t),w):n(t)}function c(t){return 45===t?(e.consume(t),u):91===t?(e.consume(t),a="CDATA[",i=0,h):fe(t)?(e.consume(t),y):n(t)}function u(t){return 45===t?(e.consume(t),d):n(t)}function d(t){return null===t||62===t?n(t):45===t?(e.consume(t),p):m(t)}function p(e){return null===e||62===e?n(e):m(e)}function m(t){return null===t?n(t):45===t?(e.consume(t),g):ke(t)?(o=m,L(t)):(e.consume(t),m)}function g(t){return 45===t?(e.consume(t),D):m(t)}function h(t){return t===a.charCodeAt(i++)?(e.consume(t),i===a.length?f:h):n(t)}function f(t){return null===t?n(t):93===t?(e.consume(t),b):ke(t)?(o=f,L(t)):(e.consume(t),f)}function b(t){return 93===t?(e.consume(t),E):f(t)}function E(t){return 62===t?D(t):93===t?(e.consume(t),E):f(t)}function y(t){return null===t||62===t?D(t):ke(t)?(o=y,L(t)):(e.consume(t),y)}function T(t){return null===t?n(t):63===t?(e.consume(t),S):ke(t)?(o=T,L(t)):(e.consume(t),T)}function S(e){return 62===e?D(e):T(e)}function v(t){return fe(t)?(e.consume(t),A):n(t)}function A(t){return 45===t||ye(t)?(e.consume(t),A):k(t)}function k(t){return ke(t)?(o=k,L(t)):we(t)?(e.consume(t),k):D(t)}function w(t){return 45===t||ye(t)?(e.consume(t),w):47===t||62===t||Ae(t)?_(t):n(t)}function _(t){return 47===t?(e.consume(t),D):58===t||95===t||fe(t)?(e.consume(t),C):ke(t)?(o=_,L(t)):we(t)?(e.consume(t),_):D(t)}function C(t){return 45===t||46===t||58===t||95===t||ye(t)?(e.consume(t),C):N(t)}function N(t){return 61===t?(e.consume(t),I):ke(t)?(o=N,L(t)):we(t)?(e.consume(t),N):_(t)}function I(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),r=t,x):ke(t)?(o=I,L(t)):we(t)?(e.consume(t),I):(e.consume(t),r=void 0,O)}function x(t){return t===r?(e.consume(t),R):null===t?n(t):ke(t)?(o=x,L(t)):(e.consume(t),x)}function R(e){return 62===e||47===e||Ae(e)?_(e):n(e)}function O(t){return null===t||34===t||39===t||60===t||61===t||96===t?n(t):62===t||Ae(t)?_(t):(e.consume(t),O)}function L(t){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Ie(e,P,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function P(t){return e.enter("htmlTextData"),o(t)}function D(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),t):n(r)}}};var It={name:"labelStartLink",tokenize:function(e,t,n){var r=this;return function(t){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelLink"),a};function a(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?n(e):t(e)}},resolveAll:yt.resolveAll};var xt={name:"hardBreakEscape",tokenize:function(e,t,n){return function(t){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(t),r};function r(r){return ke(r)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),t(r)):n(r)}}};var Rt,Ot,Lt,Pt,Dt,Mt={name:"codeText",tokenize:function(e,t,n){var r,a,i=0;return function(t){return e.enter("codeText"),e.enter("codeTextSequence"),o(t)};function o(t){return 96===t?(e.consume(t),i++,o):(e.exit("codeTextSequence"),s(t))}function s(t){return null===t?n(t):96===t?(a=e.enter("codeTextSequence"),r=0,c(t)):32===t?(e.enter("space"),e.consume(t),e.exit("space"),s):ke(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),s):(e.enter("codeTextData"),l(t))}function l(t){return null===t||32===t||96===t||ke(t)?(e.exit("codeTextData"),s(t)):(e.consume(t),l)}function c(n){return 96===n?(e.consume(n),r++,c):r===i?(e.exit("codeTextSequence"),e.exit("codeText"),t(n)):(a.type="codeTextData",l(n))}},resolve:function(e){var t,n,r=e.length-4,a=3;if(("lineEnding"===e[a][1].type||"space"===e[a][1].type)&&("lineEnding"===e[r][1].type||"space"===e[r][1].type))for(t=a;++t<r;)if("codeTextData"===e[t][1].type){e[a][1].type="codeTextPadding",e[r][1].type="codeTextPadding",a+=2,r-=2;break}t=a-1,r++;for(;++t<=r;)void 0===n?t!==r&&"lineEnding"!==e[t][1].type&&(n=t):t!==r&&"lineEnding"!==e[t][1].type||(e[n][1].type="codeTextData",t!==n+2&&(e[n][1].end=e[t-1][1].end,e.splice(n+2,t-n-2),r-=t-n-2,t=n+2),n=void 0);return e},previous:function(e){return 96!==e||"characterEscape"===this.events[this.events.length-1][1].type}};var Ft=(i(Rt={},42,Ke),i(Rt,43,Ke),i(Rt,45,Ke),i(Rt,48,Ke),i(Rt,49,Ke),i(Rt,50,Ke),i(Rt,51,Ke),i(Rt,52,Ke),i(Rt,53,Ke),i(Rt,54,Ke),i(Rt,55,Ke),i(Rt,56,Ke),i(Rt,57,Ke),i(Rt,62,Ze),Rt),Ut=i({},91,rt),Bt=(i(Ot={},-2,it),i(Ot,-1,it),i(Ot,32,it),Ot),Gt=(i(Lt={},35,st),i(Lt,42,qe),i(Lt,45,[lt,qe]),i(Lt,60,dt),i(Lt,61,lt),i(Lt,95,qe),i(Lt,96,mt),i(Lt,126,mt),Lt),Ht=(i(Pt={},38,ft),i(Pt,92,bt),Pt),zt=(i(Dt={},-5,Et),i(Dt,-4,Et),i(Dt,-3,Et),i(Dt,33,At),i(Dt,38,ft),i(Dt,42,wt),i(Dt,60,[Ct,Nt]),i(Dt,91,It),i(Dt,92,[xt,bt]),i(Dt,93,yt),i(Dt,95,wt),i(Dt,96,Mt),Dt),$t={null:[wt,Be]},Vt={null:[42,95]},jt={null:[]};var Wt=/[\0\t\n\r]/g;function qt(e,t){var n=Number.parseInt(e,t);return n<9||11===n||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||65535===(65535&n)||65534===(65535&n)||n>1114111?"\ufffd":String.fromCharCode(n)}var Kt=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Xt(e){return e.replace(Kt,Yt)}function Yt(e,t,n){if(t)return t;if(35===n.charCodeAt(0)){var r=n.charCodeAt(1),a=120===r||88===r;return qt(n.slice(a?2:1),a?16:10)}return ht(n)||e}var Zt={}.hasOwnProperty,Qt=function(t,n,r){return"string"!==typeof n&&(r=n,n=void 0),function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Jt({transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:l(ae),autolinkProtocol:N,autolinkEmail:N,atxHeading:l(ee),blockQuote:l(X),characterEscape:N,characterReference:N,codeFenced:l(Y),codeFencedFenceInfo:c,codeFencedFenceMeta:c,codeIndented:l(Y,c),codeText:l(Z,c),codeTextData:N,data:N,codeFlowValue:N,definition:l(Q),definitionDestinationString:c,definitionLabelString:c,definitionTitleString:c,emphasis:l(J),hardBreakEscape:l(te),hardBreakTrailing:l(te),htmlFlow:l(ne,c),htmlFlowData:N,htmlText:l(ne,c),htmlTextData:N,image:l(re),label:c,link:l(ae),listItem:l(oe),listItemValue:h,listOrdered:l(ie,g),listUnordered:l(ie),paragraph:l(le),reference:$,referenceString:c,resourceDestinationString:c,resourceTitleString:c,setextHeading:l(ee),strong:l(ce),thematicBreak:l(de)},exit:{atxHeading:d(),atxHeadingSequence:k,autolink:d(),autolinkEmail:K,autolinkProtocol:q,blockQuote:d(),characterEscapeValue:I,characterReferenceMarkerHexadecimal:j,characterReferenceMarkerNumeric:j,characterReferenceValue:W,codeFenced:d(y),codeFencedFence:E,codeFencedFenceInfo:f,codeFencedFenceMeta:b,codeFlowValue:I,codeIndented:d(T),codeText:d(D),codeTextData:I,data:I,definition:d(),definitionDestinationString:A,definitionLabelString:S,definitionTitleString:v,emphasis:d(),hardBreakEscape:d(O),hardBreakTrailing:d(O),htmlFlow:d(L),htmlFlowData:I,htmlText:d(P),htmlTextData:I,image:d(F),label:B,labelText:U,lineEnding:x,link:d(M),listItem:d(),listOrdered:d(),listUnordered:d(),paragraph:d(),referenceString:V,resourceDestinationString:G,resourceTitleString:H,resource:z,setextHeading:d(C),setextHeadingLineSequence:_,setextHeadingText:w,strong:d(),thematicBreak:d()}},e.mdastExtensions||[]),n={};return r;function r(e){for(var n={type:"root",children:[]},r=[],l=[],d={stack:[n],tokenStack:r,config:t,enter:u,exit:p,buffer:c,resume:m,setData:i,getData:o},g=-1;++g<e.length;){if("listOrdered"===e[g][1].type||"listUnordered"===e[g][1].type)if("enter"===e[g][0])l.push(g);else g=a(e,l.pop(),g)}for(g=-1;++g<e.length;){var h=t[e[g][0]];Zt.call(h,e[g][1].type)&&h[e[g][1].type].call(Object.assign({sliceSerialize:e[g][2].sliceSerialize},d),e[g][1])}if(r.length>0){var f=r[r.length-1];(f[1]||tn).call(d,void 0,f[0])}for(n.position={start:s(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:s(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},g=-1;++g<t.transforms.length;)n=t.transforms[g](n)||n;return n}function a(e,t,n){for(var r,a,i,o,s=t-1,l=-1,c=!1;++s<=n;){var u=e[s];if("listUnordered"===u[1].type||"listOrdered"===u[1].type||"blockQuote"===u[1].type?("enter"===u[0]?l++:l--,o=void 0):"lineEndingBlank"===u[1].type?"enter"===u[0]&&(!r||o||l||i||(i=s),o=void 0):"linePrefix"===u[1].type||"listItemValue"===u[1].type||"listItemMarker"===u[1].type||"listItemPrefix"===u[1].type||"listItemPrefixWhitespace"===u[1].type||(o=void 0),!l&&"enter"===u[0]&&"listItemPrefix"===u[1].type||-1===l&&"exit"===u[0]&&("listUnordered"===u[1].type||"listOrdered"===u[1].type)){if(r){var d=s;for(a=void 0;d--;){var p=e[d];if("lineEnding"===p[1].type||"lineEndingBlank"===p[1].type){if("exit"===p[0])continue;a&&(e[a][1].type="lineEndingBlank",c=!0),p[1].type="lineEnding",a=d}else if("linePrefix"!==p[1].type&&"blockQuotePrefix"!==p[1].type&&"blockQuotePrefixWhitespace"!==p[1].type&&"blockQuoteMarker"!==p[1].type&&"listItemIndent"!==p[1].type)break}i&&(!a||i<a)&&(r._spread=!0),r.end=Object.assign({},a?e[a][1].start:u[1].end),e.splice(a||s,0,["exit",r,u[2]]),s++,n++}"listItemPrefix"===u[1].type&&(r={type:"listItem",_spread:!1,start:Object.assign({},u[1].start)},e.splice(s,0,["enter",r,u[2]]),s++,n++,i=void 0,o=!0)}}return e[t][1]._spread=c,n}function i(e,t){n[e]=t}function o(e){return n[e]}function s(e){return{line:e.line,column:e.column,offset:e.offset}}function l(e,t){return n;function n(n){u.call(this,e(n),n),t&&t.call(this,n)}}function c(){this.stack.push({type:"fragment",children:[]})}function u(e,t,n){return this.stack[this.stack.length-1].children.push(e),this.stack.push(e),this.tokenStack.push([t,n]),e.position={start:s(t.start)},e}function d(e){return t;function t(t){e&&e.call(this,t),p.call(this,t)}}function p(e,t){var n=this.stack.pop(),r=this.tokenStack.pop();if(!r)throw new Error("Cannot close `"+e.type+"` ("+R({start:e.start,end:e.end})+"): it\u2019s not open");return r[0].type!==e.type&&(t?t.call(this,e,r[0]):(r[1]||tn).call(this,e,r[0])),n.position.end=s(e.end),n}function m(){return se(this.stack.pop())}function g(){i("expectingFirstListItemValue",!0)}function h(e){o("expectingFirstListItemValue")&&(this.stack[this.stack.length-2].start=Number.parseInt(this.sliceSerialize(e),10),i("expectingFirstListItemValue"))}function f(){var e=this.resume();this.stack[this.stack.length-1].lang=e}function b(){var e=this.resume();this.stack[this.stack.length-1].meta=e}function E(){o("flowCodeInside")||(this.buffer(),i("flowCodeInside",!0))}function y(){var e=this.resume();this.stack[this.stack.length-1].value=e.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),i("flowCodeInside")}function T(){var e=this.resume();this.stack[this.stack.length-1].value=e.replace(/(\r?\n|\r)$/g,"")}function S(e){var t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=nt(this.sliceSerialize(e)).toLowerCase()}function v(){var e=this.resume();this.stack[this.stack.length-1].title=e}function A(){var e=this.resume();this.stack[this.stack.length-1].url=e}function k(e){var t=this.stack[this.stack.length-1];if(!t.depth){var n=this.sliceSerialize(e).length;t.depth=n}}function w(){i("setextHeadingSlurpLineEnding",!0)}function _(e){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(e).charCodeAt(0)?1:2}function C(){i("setextHeadingSlurpLineEnding")}function N(e){var t=this.stack[this.stack.length-1],n=t.children[t.children.length-1];n&&"text"===n.type||((n=ue()).position={start:s(e.start)},t.children.push(n)),this.stack.push(n)}function I(e){var t=this.stack.pop();t.value+=this.sliceSerialize(e),t.position.end=s(e.end)}function x(e){var n=this.stack[this.stack.length-1];if(o("atHardBreak"))return n.children[n.children.length-1].position.end=s(e.end),void i("atHardBreak");!o("setextHeadingSlurpLineEnding")&&t.canContainEols.includes(n.type)&&(N.call(this,e),I.call(this,e))}function O(){i("atHardBreak",!0)}function L(){var e=this.resume();this.stack[this.stack.length-1].value=e}function P(){var e=this.resume();this.stack[this.stack.length-1].value=e}function D(){var e=this.resume();this.stack[this.stack.length-1].value=e}function M(){var e=this.stack[this.stack.length-1];o("inReference")?(e.type+="Reference",e.referenceType=o("referenceType")||"shortcut",delete e.url,delete e.title):(delete e.identifier,delete e.label),i("referenceType")}function F(){var e=this.stack[this.stack.length-1];o("inReference")?(e.type+="Reference",e.referenceType=o("referenceType")||"shortcut",delete e.url,delete e.title):(delete e.identifier,delete e.label),i("referenceType")}function U(e){var t=this.stack[this.stack.length-2],n=this.sliceSerialize(e);t.label=Xt(n),t.identifier=nt(n).toLowerCase()}function B(){var e=this.stack[this.stack.length-1],t=this.resume(),n=this.stack[this.stack.length-1];i("inReference",!0),"link"===n.type?n.children=e.children:n.alt=t}function G(){var e=this.resume();this.stack[this.stack.length-1].url=e}function H(){var e=this.resume();this.stack[this.stack.length-1].title=e}function z(){i("inReference")}function $(){i("referenceType","collapsed")}function V(e){var t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=nt(this.sliceSerialize(e)).toLowerCase(),i("referenceType","full")}function j(e){i("characterReferenceType",e.type)}function W(e){var t,n=this.sliceSerialize(e),r=o("characterReferenceType");r?(t=qt(n,"characterReferenceMarkerNumeric"===r?10:16),i("characterReferenceType")):t=ht(n);var a=this.stack.pop();a.value+=t,a.position.end=s(e.end)}function q(e){I.call(this,e),this.stack[this.stack.length-1].url=this.sliceSerialize(e)}function K(e){I.call(this,e),this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(e)}function X(){return{type:"blockquote",children:[]}}function Y(){return{type:"code",lang:null,meta:null,value:""}}function Z(){return{type:"inlineCode",value:""}}function Q(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function J(){return{type:"emphasis",children:[]}}function ee(){return{type:"heading",depth:void 0,children:[]}}function te(){return{type:"break"}}function ne(){return{type:"html",value:""}}function re(){return{type:"image",title:null,url:"",alt:null}}function ae(){return{type:"link",title:null,url:"",children:[]}}function ie(e){return{type:"list",ordered:"listOrdered"===e.type,start:null,spread:e._spread,children:[]}}function oe(e){return{type:"listItem",spread:e._spread,checked:null,children:[]}}function le(){return{type:"paragraph",children:[]}}function ce(){return{type:"strong",children:[]}}function ue(){return{type:"text",value:""}}function de(){return{type:"thematicBreak"}}}(r)(function(e){for(;!Pe(e););return e}(function(){var t={defined:[],lazy:{},constructs:me([e].concat((arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).extensions||[])),content:n(xe),document:n(Re),flow:n(Ue),string:n(Ge),text:n(He)};return t;function n(e){return function(n){return We(t,e,n)}}}(r).document().write(function(){var e,t=1,n="",r=!0;return function(a,i,o){var s,l,c,u,d,p=[];for(a=n+a.toString(i),c=0,n="",r&&(65279===a.charCodeAt(0)&&c++,r=void 0);c<a.length;){if(Wt.lastIndex=c,u=(s=Wt.exec(a))&&void 0!==s.index?s.index:a.length,d=a.charCodeAt(u),!s){n=a.slice(c);break}if(10===d&&c===u&&e)p.push(-3),e=void 0;else switch(e&&(p.push(-5),e=void 0),c<u&&(p.push(a.slice(c,u)),t+=u-c),d){case 0:p.push(65533),t++;break;case 9:for(l=4*Math.ceil(t/4),p.push(-2);t++<l;)p.push(-1);break;case 10:p.push(-4),t=1;break;default:e=!0,t=1}c=u+1}return o&&(e&&p.push(-5),n&&p.push(n),p.push(null)),p}}()(t,n,!0))))};function Jt(e,t){for(var n=-1;++n<t.length;){var r=t[n];Array.isArray(r)?Jt(e,r):en(e,r)}return e}function en(e,t){var n;for(n in t)if(Zt.call(t,n)){var r="canContainEols"===n||"transforms"===n,a=(Zt.call(e,n)?e[n]:void 0)||(e[n]=r?[]:{}),i=t[n];i&&(r?e[n]=[].concat(p(a),p(i)):Object.assign(a,i))}}function tn(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+R({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+R({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+R({start:t.start,end:t.end})+") is still open")}var nn=function(e){var t=this;Object.assign(this,{Parser:function(n){var r=t.data("settings");return Qt(n,Object.assign({},r,e,{extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]}))}})};function rn(e){for(var t=[],n=-1,r=0,a=0;++n<e.length;){var i=e.charCodeAt(n),o="";if(37===i&&ye(e.charCodeAt(n+1))&&ye(e.charCodeAt(n+2)))a=2;else if(i<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(i))||(o=String.fromCharCode(i));else if(i>55295&&i<57344){var s=e.charCodeAt(n+1);i<56320&&s>56319&&s<57344?(o=String.fromCharCode(i,s),a=1):o="\ufffd"}else o=String.fromCharCode(i);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+a+1,o=""),a&&(n+=a,a=0)}return t.join("")+e.slice(r)}var an=function(e){if(void 0===e||null===e)return ln;if("string"===typeof e)return function(e){return sn(t);function t(t){return t&&t.type===e}}(e);if("object"===typeof e)return Array.isArray(e)?on(e):function(e){return sn(t);function t(t){var n;for(n in e)if(t[n]!==e[n])return!1;return!0}}(e);if("function"===typeof e)return sn(e);throw new Error("Expected function, string, or object as test")};function on(e){for(var t=[],n=-1;++n<e.length;)t[n]=an(e[n]);return sn((function(){for(var e=-1,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];for(;++e<t.length;){var i;if((i=t[e]).call.apply(i,[this].concat(r)))return!0}return!1}))}function sn(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return Boolean(e.call.apply(e,[this].concat(n)))}}function ln(){return!0}var cn=function(e,t,n,r){"function"===typeof t&&"function"!==typeof n&&(r=n,n=t,t=null);var a=an(t),i=r?-1:1;!function e(o,s,l){var c,u="object"===typeof o&&null!==o?o:{};"string"===typeof u.type&&(c="string"===typeof u.tagName?u.tagName:"string"===typeof u.name?u.name:void 0,Object.defineProperty(d,"name",{value:"node ("+u.type+(c?"<"+c+">":"")+")"}));return d;function d(){var c,u,d,p=[];if((!t||a(o,s,l[l.length-1]||null))&&(p=function(e){if(Array.isArray(e))return e;if("number"===typeof e)return[true,e];return[e]}(n(o,l)),false===p[0]))return p;if(o.children&&"skip"!==p[0])for(u=(r?o.children.length:-1)+i,d=l.concat(o);u>-1&&u<o.children.length;){if(c=e(o.children[u],u,d)(),false===c[0])return c;u="number"===typeof c[1]?c[1]:u+i}return p}}(e,null,[])()};var un=function(e,t,n,r){"function"===typeof t&&"function"!==typeof n&&(r=n,n=t,t=null),cn(e,t,(function(e,t){var r=t[t.length-1];return n(e,r?r.children.indexOf(e):null,r)}),r)},dn=mn("start"),pn=mn("end");function mn(e){return function(t){var n=t&&t.position&&t.position[e]||{};return{line:n.line||null,column:n.column||null,offset:n.offset>-1?n.offset:null}}}var gn={}.hasOwnProperty;function hn(e){return String(e||"").toUpperCase()}function fn(e,t){var n,r=String(t.identifier).toUpperCase(),a=rn(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);-1===i?(e.footnoteOrder.push(r),e.footnoteCounts[r]=1,n=e.footnoteOrder.length):(e.footnoteCounts[r]++,n=i+1);var o=e.footnoteCounts[r],s={type:"element",tagName:"a",properties:{href:"#"+e.clobberPrefix+"fn-"+a,id:e.clobberPrefix+"fnref-"+a+(o>1?"-"+o:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(n)}]};e.patch(t,s);var l={type:"element",tagName:"sup",properties:{},children:[s]};return e.patch(t,l),e.applyData(t,l)}function bn(e,t){var n=t.referenceType,r="]";if("collapsed"===n?r+="[]":"full"===n&&(r+="["+(t.label||t.identifier)+"]"),"imageReference"===t.type)return{type:"text",value:"!["+t.alt+r};var a=e.all(t),i=a[0];i&&"text"===i.type?i.value="["+i.value:a.unshift({type:"text",value:"["});var o=a[a.length-1];return o&&"text"===o.type?o.value+=r:a.push({type:"text",value:r}),a}function En(e){var t=e.spread;return void 0===t||null===t?e.children.length>1:t}function yn(e){for(var t=String(e),n=/\r?\n|\r/g,r=n.exec(t),a=0,i=[];r;)i.push(Tn(t.slice(a,r.index),a>0,!0),r[0]),a=r.index+r[0].length,r=n.exec(t);return i.push(Tn(t.slice(a),a>0,!1)),i.join("")}function Tn(e,t,n){var r=0,a=e.length;if(t)for(var i=e.codePointAt(r);9===i||32===i;)r++,i=e.codePointAt(r);if(n)for(var o=e.codePointAt(a-1);9===o||32===o;)a--,o=e.codePointAt(a-1);return a>r?e.slice(r,a):""}var Sn={blockquote:function(e,t){var n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)},break:function(e,t){var n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:"\n"}]},code:function(e,t){var n=t.value?t.value+"\n":"",r=t.lang?t.lang.match(/^[^ \t]+(?=[ \t]|$)/):null,a={};r&&(a.className=["language-"+r]);var i={type:"element",tagName:"code",properties:a,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i={type:"element",tagName:"pre",properties:{},children:[i=e.applyData(t,i)]},e.patch(t,i),i},delete:function(e,t){var n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},emphasis:function(e,t){var n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},footnoteReference:fn,footnote:function(e,t){for(var n=e.footnoteById,r=1;r in n;)r++;var a=String(r);return n[a]={type:"footnoteDefinition",identifier:a,children:[{type:"paragraph",children:t.children}],position:t.position},fn(e,{type:"footnoteReference",identifier:a,position:t.position})},heading:function(e,t){var n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},html:function(e,t){if(e.dangerous){var n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}return null},imageReference:function(e,t){var n=e.definition(t.identifier);if(!n)return bn(e,t);var r={src:rn(n.url||""),alt:t.alt};null!==n.title&&void 0!==n.title&&(r.title=n.title);var a={type:"element",tagName:"img",properties:r,children:[]};return e.patch(t,a),e.applyData(t,a)},image:function(e,t){var n={src:rn(t.url)};null!==t.alt&&void 0!==t.alt&&(n.alt=t.alt),null!==t.title&&void 0!==t.title&&(n.title=t.title);var r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)},inlineCode:function(e,t){var n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);var r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)},linkReference:function(e,t){var n=e.definition(t.identifier);if(!n)return bn(e,t);var r={href:rn(n.url||"")};null!==n.title&&void 0!==n.title&&(r.title=n.title);var a={type:"element",tagName:"a",properties:r,children:e.all(t)};return e.patch(t,a),e.applyData(t,a)},link:function(e,t){var n={href:rn(t.url)};null!==t.title&&void 0!==t.title&&(n.title=t.title);var r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)},listItem:function(e,t,n){var r=e.all(t),a=n?function(e){var t=!1;if("list"===e.type){t=e.spread||!1;for(var n=e.children,r=-1;!t&&++r<n.length;)t=En(n[r])}return t}(n):En(t),i={},o=[];if("boolean"===typeof t.checked){var s,l=r[0];l&&"element"===l.type&&"p"===l.tagName?s=l:(s={type:"element",tagName:"p",properties:{},children:[]},r.unshift(s)),s.children.length>0&&s.children.unshift({type:"text",value:" "}),s.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}for(var c=-1;++c<r.length;){var u=r[c];(a||0!==c||"element"!==u.type||"p"!==u.tagName)&&o.push({type:"text",value:"\n"}),"element"!==u.type||"p"!==u.tagName||a?o.push(u):o.push.apply(o,p(u.children))}var d=r[r.length-1];d&&(a||"element"!==d.type||"p"!==d.tagName)&&o.push({type:"text",value:"\n"});var m={type:"element",tagName:"li",properties:i,children:o};return e.patch(t,m),e.applyData(t,m)},list:function(e,t){var n={},r=e.all(t),a=-1;for("number"===typeof t.start&&1!==t.start&&(n.start=t.start);++a<r.length;){var i=r[a];if("element"===i.type&&"li"===i.tagName&&i.properties&&Array.isArray(i.properties.className)&&i.properties.className.includes("task-list-item")){n.className=["contains-task-list"];break}}var o={type:"element",tagName:t.ordered?"ol":"ul",properties:n,children:e.wrap(r,!0)};return e.patch(t,o),e.applyData(t,o)},paragraph:function(e,t){var n={type:"element",tagName:"p",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},root:function(e,t){var n={type:"root",children:e.wrap(e.all(t))};return e.patch(t,n),e.applyData(t,n)},strong:function(e,t){var n={type:"element",tagName:"strong",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},table:function(e,t){var n=e.all(t),r=n.shift(),a=[];if(r){var i={type:"element",tagName:"thead",properties:{},children:e.wrap([r],!0)};e.patch(t.children[0],i),a.push(i)}if(n.length>0){var o={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},s=dn(t.children[1]),l=pn(t.children[t.children.length-1]);s.line&&l.line&&(o.position={start:s,end:l}),a.push(o)}var c={type:"element",tagName:"table",properties:{},children:e.wrap(a,!0)};return e.patch(t,c),e.applyData(t,c)},tableCell:function(e,t){var n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},tableRow:function(e,t,n){for(var r=n?n.children:void 0,a=0===(r?r.indexOf(t):1)?"th":"td",i=n&&"table"===n.type?n.align:void 0,o=i?i.length:t.children.length,s=-1,l=[];++s<o;){var c=t.children[s],u={},d=i?i[s]:void 0;d&&(u.align=d);var p={type:"element",tagName:a,properties:u,children:[]};c&&(p.children=e.all(c),e.patch(c,p),p=e.applyData(t,p)),l.push(p)}var m={type:"element",tagName:"tr",properties:{},children:e.wrap(l,!0)};return e.patch(t,m),e.applyData(t,m)},text:function(e,t){var n={type:"text",value:yn(String(t.value))};return e.patch(t,n),e.applyData(t,n)},thematicBreak:function(e,t){var n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)},toml:vn,yaml:vn,definition:vn,footnoteDefinition:vn};function vn(){return null}var An={}.hasOwnProperty;function kn(e,t){var n=t||{},r=n.allowDangerousHtml||!1,a={};return o.dangerous=r,o.clobberPrefix=void 0===n.clobberPrefix||null===n.clobberPrefix?"user-content-":n.clobberPrefix,o.footnoteLabel=n.footnoteLabel||"Footnotes",o.footnoteLabelTagName=n.footnoteLabelTagName||"h2",o.footnoteLabelProperties=n.footnoteLabelProperties||{className:["sr-only"]},o.footnoteBackLabel=n.footnoteBackLabel||"Back to content",o.unknownHandler=n.unknownHandler,o.passThrough=n.passThrough,o.handlers=s(s({},Sn),n.handlers),o.definition=function(e){var t=Object.create(null);if(!e||!e.type)throw new Error("mdast-util-definitions expected node");return un(e,"definition",(function(e){var n=hn(e.identifier);n&&!gn.call(t,n)&&(t[n]=e)})),function(e){var n=hn(e);return n&&gn.call(t,n)?t[n]:null}}(e),o.footnoteById=a,o.footnoteOrder=[],o.footnoteCounts={},o.patch=wn,o.applyData=_n,o.one=function(e,t){return Cn(o,e,t)},o.all=function(e){return Nn(o,e)},o.wrap=In,o.augment=i,un(e,"footnoteDefinition",(function(e){var t=String(e.identifier).toUpperCase();An.call(a,t)||(a[t]=e)})),o;function i(e,t){if(e&&"data"in e&&e.data){var n=e.data;n.hName&&("element"!==t.type&&(t={type:"element",tagName:"",properties:{},children:[]}),t.tagName=n.hName),"element"===t.type&&n.hProperties&&(t.properties=s(s({},t.properties),n.hProperties)),"children"in t&&t.children&&n.hChildren&&(t.children=n.hChildren)}if(e){var r="type"in e?e:{position:e};(a=r)&&a.position&&a.position.start&&a.position.start.line&&a.position.start.column&&a.position.end&&a.position.end.line&&a.position.end.column&&(t.position={start:dn(r),end:pn(r)})}var a;return t}function o(e,t,n,r){return Array.isArray(n)&&(r=n,n={}),i(e,{type:"element",tagName:t,properties:n||{},children:r||[]})}}function wn(e,t){var n;e.position&&(t.position={start:dn(n=e),end:pn(n)})}function _n(e,t){var n=t;if(e&&e.data){var r=e.data.hName,a=e.data.hChildren,i=e.data.hProperties;"string"===typeof r&&("element"===n.type?n.tagName=r:n={type:"element",tagName:r,properties:{},children:[]}),"element"===n.type&&i&&(n.properties=s(s({},n.properties),i)),"children"in n&&n.children&&null!==a&&void 0!==a&&(n.children=a)}return n}function Cn(e,t,n){var r=t&&t.type;if(!r)throw new Error("Expected node, got `"+t+"`");return An.call(e.handlers,r)?e.handlers[r](e,t,n):e.passThrough&&e.passThrough.includes(r)?"children"in t?s(s({},t),{},{children:Nn(e,t)}):t:e.unknownHandler?e.unknownHandler(e,t,n):function(e,t){var n=t.data||{},r=!("value"in t)||An.call(n,"hProperties")||An.call(n,"hChildren")?{type:"element",tagName:"div",properties:{},children:Nn(e,t)}:{type:"text",value:t.value};return e.patch(t,r),e.applyData(t,r)}(e,t)}function Nn(e,t){var n=[];if("children"in t)for(var r=t.children,a=-1;++a<r.length;){var i=Cn(e,r[a],t);if(i){if(a&&"break"===r[a-1].type&&(Array.isArray(i)||"text"!==i.type||(i.value=i.value.replace(/^\s+/,"")),!Array.isArray(i)&&"element"===i.type)){var o=i.children[0];o&&"text"===o.type&&(o.value=o.value.replace(/^\s+/,""))}Array.isArray(i)?n.push.apply(n,p(i)):n.push(i)}}return n}function In(e,t){var n=[],r=-1;for(t&&n.push({type:"text",value:"\n"});++r<e.length;)r&&n.push({type:"text",value:"\n"}),n.push(e[r]);return t&&e.length>0&&n.push({type:"text",value:"\n"}),n}function xn(e,t){var n=kn(e,t),r=n.one(e,null),a=function(e){for(var t=[],n=-1;++n<e.footnoteOrder.length;){var r=e.footnoteById[e.footnoteOrder[n]];if(r){for(var a=e.all(r),i=String(r.identifier).toUpperCase(),o=rn(i.toLowerCase()),l=0,c=[];++l<=e.footnoteCounts[i];){var u={type:"element",tagName:"a",properties:{href:"#"+e.clobberPrefix+"fnref-"+o+(l>1?"-"+l:""),dataFootnoteBackref:!0,className:["data-footnote-backref"],ariaLabel:e.footnoteBackLabel},children:[{type:"text",value:"\u21a9"}]};l>1&&u.children.push({type:"element",tagName:"sup",children:[{type:"text",value:String(l)}]}),c.length>0&&c.push({type:"text",value:" "}),c.push(u)}var d=a[a.length-1];if(d&&"element"===d.type&&"p"===d.tagName){var p,m=d.children[d.children.length-1];m&&"text"===m.type?m.value+=" ":d.children.push({type:"text",value:" "}),(p=d.children).push.apply(p,c)}else a.push.apply(a,c);var g={type:"element",tagName:"li",properties:{id:e.clobberPrefix+"fn-"+o},children:e.wrap(a,!0)};e.patch(r,g),t.push(g)}}if(0!==t.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:e.footnoteLabelTagName,properties:s(s({},JSON.parse(JSON.stringify(e.footnoteLabelProperties))),{},{id:"footnote-label"}),children:[{type:"text",value:e.footnoteLabel}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:e.wrap(t,!0)},{type:"text",value:"\n"}]}}(n);return a&&r.children.push({type:"text",value:"\n"},a),Array.isArray(r)?{type:"root",children:r}:r}var Rn=function(e,t){return e&&"run"in e?function(e,t){return function(n,r,a){e.run(xn(n,t),r,(function(e){a(e)}))}}(e,t):function(e){return function(t){return xn(t,e)}}(e||t)};var On=n(2007),Ln=y((function e(t,n,r){b(this,e),this.property=t,this.normal=n,r&&(this.space=r)}));function Pn(e,t){for(var n={},r={},a=-1;++a<e.length;)Object.assign(n,e[a].property),Object.assign(r,e[a].normal);return new Ln(n,r,t)}function Dn(e){return e.toLowerCase()}Ln.prototype.property={},Ln.prototype.normal={},Ln.prototype.space=null;var Mn=y((function e(t,n){b(this,e),this.property=t,this.attribute=n}));Mn.prototype.space=null,Mn.prototype.boolean=!1,Mn.prototype.booleanish=!1,Mn.prototype.overloadedBoolean=!1,Mn.prototype.number=!1,Mn.prototype.commaSeparated=!1,Mn.prototype.spaceSeparated=!1,Mn.prototype.commaOrSpaceSeparated=!1,Mn.prototype.mustUseProperty=!1,Mn.prototype.defined=!1;var Fn=0,Un=jn(),Bn=jn(),Gn=jn(),Hn=jn(),zn=jn(),$n=jn(),Vn=jn();function jn(){return Math.pow(2,++Fn)}var Wn=Object.keys(t),qn=function(e){v(r,e);var n=N(r);function r(e,a,i,o){var s;b(this,r);var l=-1;if(Kn(_(s=n.call(this,e,a)),"space",o),"number"===typeof i)for(;++l<Wn.length;){var c=Wn[l];Kn(_(s),Wn[l],(i&t[c])===t[c])}return s}return y(r)}(Mn);function Kn(e,t,n){n&&(e[t]=n)}qn.prototype.defined=!0;var Xn={}.hasOwnProperty;function Yn(e){var t,n={},r={};for(t in e.properties)if(Xn.call(e.properties,t)){var a=e.properties[t],i=new qn(t,e.transform(e.attributes||{},t),a,e.space);e.mustUseProperty&&e.mustUseProperty.includes(t)&&(i.mustUseProperty=!0),n[t]=i,r[Dn(t)]=t,r[Dn(i.attribute)]=t}return new Ln(n,r,e.space)}var Zn=Yn({space:"xlink",transform:function(e,t){return"xlink:"+t.slice(5).toLowerCase()},properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null}}),Qn=Yn({space:"xml",transform:function(e,t){return"xml:"+t.slice(3).toLowerCase()},properties:{xmlLang:null,xmlBase:null,xmlSpace:null}});function Jn(e,t){return t in e?e[t]:t}function er(e,t){return Jn(e,t.toLowerCase())}var tr=Yn({space:"xmlns",attributes:{xmlnsxlink:"xmlns:xlink"},transform:er,properties:{xmlns:null,xmlnsXLink:null}}),nr=Yn({transform:function(e,t){return"role"===t?t:"aria-"+t.slice(4).toLowerCase()},properties:{ariaActiveDescendant:null,ariaAtomic:Bn,ariaAutoComplete:null,ariaBusy:Bn,ariaChecked:Bn,ariaColCount:Hn,ariaColIndex:Hn,ariaColSpan:Hn,ariaControls:zn,ariaCurrent:null,ariaDescribedBy:zn,ariaDetails:null,ariaDisabled:Bn,ariaDropEffect:zn,ariaErrorMessage:null,ariaExpanded:Bn,ariaFlowTo:zn,ariaGrabbed:Bn,ariaHasPopup:null,ariaHidden:Bn,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:zn,ariaLevel:Hn,ariaLive:null,ariaModal:Bn,ariaMultiLine:Bn,ariaMultiSelectable:Bn,ariaOrientation:null,ariaOwns:zn,ariaPlaceholder:null,ariaPosInSet:Hn,ariaPressed:Bn,ariaReadOnly:Bn,ariaRelevant:null,ariaRequired:Bn,ariaRoleDescription:zn,ariaRowCount:Hn,ariaRowIndex:Hn,ariaRowSpan:Hn,ariaSelected:Bn,ariaSetSize:Hn,ariaSort:null,ariaValueMax:Hn,ariaValueMin:Hn,ariaValueNow:Hn,ariaValueText:null,role:null}}),rr=Yn({space:"html",attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},transform:er,mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:$n,acceptCharset:zn,accessKey:zn,action:null,allow:null,allowFullScreen:Un,allowPaymentRequest:Un,allowUserMedia:Un,alt:null,as:null,async:Un,autoCapitalize:null,autoComplete:zn,autoFocus:Un,autoPlay:Un,capture:Un,charSet:null,checked:Un,cite:null,className:zn,cols:Hn,colSpan:null,content:null,contentEditable:Bn,controls:Un,controlsList:zn,coords:Hn|$n,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Un,defer:Un,dir:null,dirName:null,disabled:Un,download:Gn,draggable:Bn,encType:null,enterKeyHint:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Un,formTarget:null,headers:zn,height:Hn,hidden:Un,high:Hn,href:null,hrefLang:null,htmlFor:zn,httpEquiv:zn,id:null,imageSizes:null,imageSrcSet:null,inputMode:null,integrity:null,is:null,isMap:Un,itemId:null,itemProp:zn,itemRef:zn,itemScope:Un,itemType:zn,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Un,low:Hn,manifest:null,max:null,maxLength:Hn,media:null,method:null,min:null,minLength:Hn,multiple:Un,muted:Un,name:null,nonce:null,noModule:Un,noValidate:Un,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforePrint:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Un,optimum:Hn,pattern:null,ping:zn,placeholder:null,playsInline:Un,poster:null,preload:null,readOnly:Un,referrerPolicy:null,rel:zn,required:Un,reversed:Un,rows:Hn,rowSpan:Hn,sandbox:zn,scope:null,scoped:Un,seamless:Un,selected:Un,shape:null,size:Hn,sizes:null,slot:null,span:Hn,spellCheck:Bn,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Hn,step:null,style:null,tabIndex:Hn,target:null,title:null,translate:null,type:null,typeMustMatch:Un,useMap:null,value:Bn,width:Hn,wrap:null,align:null,aLink:null,archive:zn,axis:null,background:null,bgColor:null,border:Hn,borderColor:null,bottomMargin:Hn,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Un,declare:Un,event:null,face:null,frame:null,frameBorder:null,hSpace:Hn,leftMargin:Hn,link:null,longDesc:null,lowSrc:null,marginHeight:Hn,marginWidth:Hn,noResize:Un,noHref:Un,noShade:Un,noWrap:Un,object:null,profile:null,prompt:null,rev:null,rightMargin:Hn,rules:null,scheme:null,scrolling:Bn,standby:null,summary:null,text:null,topMargin:Hn,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Hn,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:Un,disableRemotePlayback:Un,prefix:null,property:null,results:Hn,security:null,unselectable:null}}),ar=Yn({space:"svg",attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},transform:Jn,properties:{about:Vn,accentHeight:Hn,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Hn,amplitude:Hn,arabicForm:null,ascent:Hn,attributeName:null,attributeType:null,azimuth:Hn,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Hn,by:null,calcMode:null,capHeight:Hn,className:zn,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Hn,diffuseConstant:Hn,direction:null,display:null,dur:null,divisor:Hn,dominantBaseline:null,download:Un,dx:null,dy:null,edgeMode:null,editable:null,elevation:Hn,enableBackground:null,end:null,event:null,exponent:Hn,externalResourcesRequired:null,fill:null,fillOpacity:Hn,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:$n,g2:$n,glyphName:$n,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Hn,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Hn,horizOriginX:Hn,horizOriginY:Hn,id:null,ideographic:Hn,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Hn,k:Hn,k1:Hn,k2:Hn,k3:Hn,k4:Hn,kernelMatrix:Vn,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Hn,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Hn,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Hn,overlineThickness:Hn,paintOrder:null,panose1:null,path:null,pathLength:Hn,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:zn,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Hn,pointsAtY:Hn,pointsAtZ:Hn,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Vn,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Vn,rev:Vn,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Vn,requiredFeatures:Vn,requiredFonts:Vn,requiredFormats:Vn,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Hn,specularExponent:Hn,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Hn,strikethroughThickness:Hn,string:null,stroke:null,strokeDashArray:Vn,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Hn,strokeOpacity:Hn,strokeWidth:null,style:null,surfaceScale:Hn,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Vn,tabIndex:Hn,tableValues:null,target:null,targetX:Hn,targetY:Hn,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Vn,to:null,transform:null,u1:null,u2:null,underlinePosition:Hn,underlineThickness:Hn,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Hn,values:null,vAlphabetic:Hn,vMathematical:Hn,vectorEffect:null,vHanging:Hn,vIdeographic:Hn,version:null,vertAdvY:Hn,vertOriginX:Hn,vertOriginY:Hn,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Hn,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null}}),ir=Pn([Qn,Zn,tr,nr,rr],"html"),or=Pn([Qn,Zn,tr,nr,ar],"svg");function sr(e){if(e.allowedElements&&e.disallowedElements)throw new TypeError("Only one of `allowedElements` and `disallowedElements` should be defined");if(e.allowedElements||e.disallowedElements||e.allowElement)return function(t){un(t,"element",(function(t,n,r){var a,i=r;if(e.allowedElements?a=!e.allowedElements.includes(t.tagName):e.disallowedElements&&(a=e.disallowedElements.includes(t.tagName)),!a&&e.allowElement&&"number"===typeof n&&(a=!e.allowElement(t,n,i)),a&&"number"===typeof n){var o;if(e.unwrapDisallowed&&t.children)(o=i.children).splice.apply(o,[n,1].concat(p(t.children)));else i.children.splice(n,1);return n}}))}}var lr=n(8599);function cr(e){var t=e&&"object"===typeof e&&"text"===e.type?e.value||"":e;return"string"===typeof t&&""===t.replace(/[ \t\n\f\r]/g,"")}var ur=/^data[-\w.:]+$/i,dr=/-[a-z]/g,pr=/[A-Z]/g;function mr(e,t){var n=Dn(t),r=t,a=Mn;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&"data"===n.slice(0,4)&&ur.test(t)){if("-"===t.charAt(4)){var i=t.slice(5).replace(dr,hr);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{var o=t.slice(4);if(!dr.test(o)){var s=o.replace(pr,gr);"-"!==s.charAt(0)&&(s="-"+s),t="data"+s}}a=qn}return new a(r,t)}function gr(e){return"-"+e.toLowerCase()}function hr(e){return e.charAt(1).toUpperCase()}var fr={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"};function br(e){var t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function Er(e){return e.join(" ").trim()}function yr(e){for(var t,n,r=[],a=String(e||""),i=a.indexOf(","),o=0;!t;)-1===i&&(i=a.length,t=!0),!(n=a.slice(o,i).trim())&&t||r.push(n),o=i+1,i=a.indexOf(",",o);return r}function Tr(e,t){var n=t||{};return""===e[e.length-1]&&(e=e.concat("")),e.join((n.padRight?" ":"")+","+(!1===n.padLeft?"":" ")).trim()}var Sr=n(8171),vr=["http","https","mailto","tel"];function Ar(e){var t=(e||"").trim(),n=t.charAt(0);if("#"===n||"/"===n)return t;var r=t.indexOf(":");if(-1===r)return t;for(var a=-1;++a<vr.length;){var i=vr[a];if(r===i.length&&t.slice(0,i.length).toLowerCase()===i)return t}return-1!==(a=t.indexOf("?"))&&r>a||-1!==(a=t.indexOf("#"))&&r>a?t:"javascript:void(0)"}var kr={}.hasOwnProperty,wr=new Set(["table","thead","tbody","tfoot","tr"]);function _r(e,t){for(var n,r=[],a=-1;++a<t.children.length;)"element"===(n=t.children[a]).type?r.push(Cr(e,n,a,t)):"text"===n.type?"element"===t.type&&wr.has(t.tagName)&&cr(n)||r.push(n.value):"raw"!==n.type||e.options.skipHtml||r.push(n.value);return r}function Cr(e,t,n,a){var i,o=e.options,s=void 0===o.transformLinkUri?Ar:o.transformLinkUri,l=e.schema,c=t.tagName,u={},d=l;if("html"===l.space&&"svg"===c&&(d=or,e.schema=d),t.properties)for(i in t.properties)kr.call(t.properties,i)&&Ir(u,i,t.properties[i],e);"ol"!==c&&"ul"!==c||e.listDepth++;var p=_r(e,t);"ol"!==c&&"ul"!==c||e.listDepth--,e.schema=l;var m,g=t.position||{start:{line:null,column:null,offset:null},end:{line:null,column:null,offset:null}},h=o.components&&kr.call(o.components,c)?o.components[c]:c,f="string"===typeof h||h===r.Fragment;if(!lr.isValidElementType(h))throw new TypeError("Component for name `".concat(c,"` not defined or is not renderable"));if(u.key=[c,g.start.line,g.start.column,n].join("-"),"a"===c&&o.linkTarget&&(u.target="function"===typeof o.linkTarget?o.linkTarget(String(u.href||""),t.children,"string"===typeof u.title?u.title:null):o.linkTarget),"a"===c&&s&&(u.href=s(String(u.href||""),t.children,"string"===typeof u.title?u.title:null)),f||"code"!==c||"element"!==a.type||"pre"===a.tagName||(u.inline=!0),f||"h1"!==c&&"h2"!==c&&"h3"!==c&&"h4"!==c&&"h5"!==c&&"h6"!==c||(u.level=Number.parseInt(c.charAt(1),10)),"img"===c&&o.transformImageUri&&(u.src=o.transformImageUri(String(u.src||""),String(u.alt||""),"string"===typeof u.title?u.title:null)),!f&&"li"===c&&"element"===a.type){var b=function(e){var t=-1;for(;++t<e.children.length;){var n=e.children[t];if("element"===n.type&&"input"===n.tagName)return n}return null}(t);u.checked=b&&b.properties?Boolean(b.properties.checked):null,u.index=Nr(a,t),u.ordered="ol"===a.tagName}return f||"ol"!==c&&"ul"!==c||(u.ordered="ol"===c,u.depth=e.listDepth),"td"!==c&&"th"!==c||(u.align&&(u.style||(u.style={}),u.style.textAlign=u.align,delete u.align),f||(u.isHeader="th"===c)),f||"tr"!==c||"element"!==a.type||(u.isHeader=Boolean("thead"===a.tagName)),o.sourcePos&&(u["data-sourcepos"]=[(m=g).start.line,":",m.start.column,"-",m.end.line,":",m.end.column].map(String).join("")),!f&&o.rawSourcePos&&(u.sourcePosition=t.position),!f&&o.includeElementIndex&&(u.index=Nr(a,t),u.siblingCount=Nr(a)),f||(u.node=t),p.length>0?r.createElement(h,u,p):r.createElement(h,u)}function Nr(e,t){for(var n=-1,r=0;++n<e.children.length&&e.children[n]!==t;)"element"===e.children[n].type&&r++;return r}function Ir(e,t,n,r){var a=mr(r.schema,t),i=n;null!==i&&void 0!==i&&i===i&&(Array.isArray(i)&&(i=a.commaSeparated?Tr(i):Er(i)),"style"===a.property&&"string"===typeof i&&(i=function(e){var t={};try{Sr(e,n)}catch(r){}return t;function n(e,n){var r="-ms-"===e.slice(0,4)?"ms-".concat(e.slice(4)):e;t[r.replace(/-([a-z])/g,xr)]=n}}(i)),a.space&&a.property?e[kr.call(fr,a.property)?fr[a.property]:a.property]=i:a.attribute&&(e[a.attribute]=i))}function xr(e,t){return t.toUpperCase()}var Rr={}.hasOwnProperty,Or={plugins:{to:"remarkPlugins",id:"change-plugins-to-remarkplugins"},renderers:{to:"components",id:"change-renderers-to-components"},astPlugins:{id:"remove-buggy-html-in-markdown-parser"},allowDangerousHtml:{id:"remove-buggy-html-in-markdown-parser"},escapeHtml:{id:"remove-buggy-html-in-markdown-parser"},source:{to:"children",id:"change-source-to-children"},allowNode:{to:"allowElement",id:"replace-allownode-allowedtypes-and-disallowedtypes"},allowedTypes:{to:"allowedElements",id:"replace-allownode-allowedtypes-and-disallowedtypes"},disallowedTypes:{to:"disallowedElements",id:"replace-allownode-allowedtypes-and-disallowedtypes"},includeNodeIndex:{to:"includeElementIndex",id:"change-includenodeindex-to-includeelementindex"}};function Lr(e){for(var t in Or)if(Rr.call(Or,t)&&Rr.call(e,t)){var n=Or[t];console.warn("[react-markdown] Warning: please ".concat(n.to?"use `".concat(n.to,"` instead of"):"remove"," `").concat(t,"` (see <").concat("https://github.com/remarkjs/react-markdown/blob/main/changelog.md","#").concat(n.id,"> for more info)")),delete Or[t]}var a=Q().use(nn).use(e.remarkPlugins||[]).use(Rn,s(s({},e.remarkRehypeOptions),{},{allowDangerousHtml:!0})).use(e.rehypePlugins||[]).use(sr,e),i=new $;"string"===typeof e.children?i.value=e.children:void 0!==e.children&&null!==e.children&&console.warn("[react-markdown] Warning: please pass a string as `children` (not: `".concat(e.children,"`)"));var o=a.runSync(a.parse(i),i);if("root"!==o.type)throw new TypeError("Expected a `root` node");var l=r.createElement(r.Fragment,{},_r({options:e,schema:ir,listDepth:0},o));return e.className&&(l=r.createElement("div",{className:e.className},l)),l}function Pr(){return Pr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Pr.apply(this,arguments)}function Dr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Mr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Dr(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Dr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Lr.propTypes={children:On.string,className:On.string,allowElement:On.func,allowedElements:On.arrayOf(On.string),disallowedElements:On.arrayOf(On.string),unwrapDisallowed:On.bool,remarkPlugins:On.arrayOf(On.oneOfType([On.object,On.func,On.arrayOf(On.oneOfType([On.bool,On.string,On.object,On.func,On.arrayOf(On.any)]))])),rehypePlugins:On.arrayOf(On.oneOfType([On.object,On.func,On.arrayOf(On.oneOfType([On.bool,On.string,On.object,On.func,On.arrayOf(On.any)]))])),sourcePos:On.bool,rawSourcePos:On.bool,skipHtml:On.bool,includeElementIndex:On.bool,transformLinkUri:On.oneOfType([On.func,On.bool]),linkTarget:On.oneOfType([On.func,On.string]),transformImageUri:On.func,components:On.object};var Fr={};function Ur(e){if(0===e.length||1===e.length)return e;var t=e.join(".");return Fr[t]||(Fr[t]=function(e){var t=e.length;return 0===t||1===t?e:2===t?[e[0],e[1],"".concat(e[0],".").concat(e[1]),"".concat(e[1],".").concat(e[0])]:3===t?[e[0],e[1],e[2],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0])]:t>=4?[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]:void 0}(e)),Fr[t]}function Br(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=e.filter((function(e){return"token"!==e})),a=Ur(r);return a.reduce((function(e,t){return Mr(Mr({},e),n[t])}),t)}function Gr(e){return e.join(" ")}function Hr(e){var t=e.node,n=e.stylesheet,a=e.style,i=void 0===a?{}:a,o=e.useInlineStyles,s=e.key,l=t.properties,c=t.type,u=t.tagName,d=t.value;if("text"===c)return d;if(u){var p,m=function(e,t){var n=0;return function(r){return n+=1,r.map((function(r,a){return Hr({node:r,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(a)})}))}}(n,o);if(o){var g=Object.keys(n).reduce((function(e,t){return t.split(".").forEach((function(t){e.includes(t)||e.push(t)})),e}),[]),h=l.className&&l.className.includes("token")?["token"]:[],f=l.className&&h.concat(l.className.filter((function(e){return!g.includes(e)})));p=Mr(Mr({},l),{},{className:Gr(f)||void 0,style:Br(l.className,Object.assign({},l.style,i),n)})}else p=Mr(Mr({},l),{},{className:Gr(l.className)});var b=m(t.children);return r.createElement(u,Pr({key:s},p),b)}}var zr=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function $r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Vr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var jr=/\n/g;function Wr(e){var t=e.codeString,n=e.codeStyle,a=e.containerStyle,i=void 0===a?{float:"left",paddingRight:"10px"}:a,o=e.numberStyle,s=void 0===o?{}:o,l=e.startingLineNumber;return r.createElement("code",{style:Object.assign({},n,i)},function(e){var t=e.lines,n=e.startingLineNumber,a=e.style;return t.map((function(e,t){var i=t+n;return r.createElement("span",{key:"line-".concat(t),className:"react-syntax-highlighter-line-number",style:"function"===typeof a?a(i):a},"".concat(i,"\n"))}))}({lines:t.replace(/\n$/,"").split("\n"),style:s,startingLineNumber:l}))}function qr(e,t){return{type:"element",tagName:"span",properties:{key:"line-number--".concat(e),className:["comment","linenumber","react-syntax-highlighter-line-number"],style:t},children:[{type:"text",value:e}]}}function Kr(e,t,n){var r,a={display:"inline-block",minWidth:(r=n,"".concat(r.toString().length,".25em")),paddingRight:"1em",textAlign:"right",userSelect:"none"},i="function"===typeof e?e(t):e;return Vr(Vr({},a),i)}function Xr(e){var t=e.children,n=e.lineNumber,r=e.lineNumberStyle,a=e.largestLineNumber,i=e.showInlineLineNumbers,o=e.lineProps,s=void 0===o?{}:o,l=e.className,c=void 0===l?[]:l,u=e.showLineNumbers,d=e.wrapLongLines,p="function"===typeof s?s(n):s;if(p.className=c,n&&i){var m=Kr(r,n,a);t.unshift(qr(n,m))}return d&u&&(p.style=Vr(Vr({},p.style),{},{display:"flex"})),{type:"element",tagName:"span",properties:p,children:t}}function Yr(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=0;r<e.length;r++){var a=e[r];if("text"===a.type)n.push(Xr({children:[a],className:p(new Set(t))}));else if(a.children){var i=t.concat(a.properties.className);Yr(a.children,i).forEach((function(e){return n.push(e)}))}}return n}function Zr(e,t,n,r,a,i,o,s,l){var c,u=Yr(e.value),d=[],p=-1,m=0;function g(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return Xr({children:e,lineNumber:t,lineNumberStyle:s,largestLineNumber:o,showInlineLineNumbers:a,lineProps:n,className:i,showLineNumbers:r,wrapLongLines:l})}function h(e,t){if(r&&t&&a){var n=Kr(s,t,o);e.unshift(qr(t,n))}return e}function f(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return t||r.length>0?g(e,n,r):h(e,n)}for(var b=function(){var e=u[m],t=e.children[0].value;if(t.match(jr)){var n=t.split("\n");n.forEach((function(t,a){var o=r&&d.length+i,s={type:"text",value:"".concat(t,"\n")};if(0===a){var l=f(u.slice(p+1,m).concat(Xr({children:[s],className:e.properties.className})),o);d.push(l)}else if(a===n.length-1){var c=u[m+1]&&u[m+1].children&&u[m+1].children[0],g={type:"text",value:"".concat(t)};if(c){var h=Xr({children:[g],className:e.properties.className});u.splice(m+1,0,h)}else{var b=f([g],o,e.properties.className);d.push(b)}}else{var E=f([s],o,e.properties.className);d.push(E)}})),p=m}m++};m<u.length;)b();if(p!==u.length-1){var E=u.slice(p+1,u.length);if(E&&E.length){var y=f(E,r&&d.length+i);d.push(y)}}return t?d:(c=[]).concat.apply(c,d)}function Qr(e){var t=e.rows,n=e.stylesheet,r=e.useInlineStyles;return t.map((function(e,t){return Hr({node:e,stylesheet:n,useInlineStyles:r,key:"code-segement".concat(t)})}))}function Jr(e){return e&&"undefined"!==typeof e.highlightAuto}var ea,ta,na=n(9158),ra=(ea=n.n(na)(),ta={'code[class*="language-"]':{color:"black",background:"none",textShadow:"0 1px white",fontFamily:"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace",fontSize:"1em",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",wordWrap:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]':{color:"black",background:"#f5f2f0",textShadow:"0 1px white",fontFamily:"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace",fontSize:"1em",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",wordWrap:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:".5em 0",overflow:"auto"},'pre[class*="language-"]::-moz-selection':{textShadow:"none",background:"#b3d4fc"},'pre[class*="language-"] ::-moz-selection':{textShadow:"none",background:"#b3d4fc"},'code[class*="language-"]::-moz-selection':{textShadow:"none",background:"#b3d4fc"},'code[class*="language-"] ::-moz-selection':{textShadow:"none",background:"#b3d4fc"},'pre[class*="language-"]::selection':{textShadow:"none",background:"#b3d4fc"},'pre[class*="language-"] ::selection':{textShadow:"none",background:"#b3d4fc"},'code[class*="language-"]::selection':{textShadow:"none",background:"#b3d4fc"},'code[class*="language-"] ::selection':{textShadow:"none",background:"#b3d4fc"},':not(pre) > code[class*="language-"]':{background:"#f5f2f0",padding:".1em",borderRadius:".3em",whiteSpace:"normal"},comment:{color:"slategray"},prolog:{color:"slategray"},doctype:{color:"slategray"},cdata:{color:"slategray"},punctuation:{color:"#999"},namespace:{Opacity:".7"},property:{color:"#905"},tag:{color:"#905"},boolean:{color:"#905"},number:{color:"#905"},constant:{color:"#905"},symbol:{color:"#905"},deleted:{color:"#905"},selector:{color:"#690"},"attr-name":{color:"#690"},string:{color:"#690"},char:{color:"#690"},builtin:{color:"#690"},inserted:{color:"#690"},operator:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},entity:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)",cursor:"help"},url:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},".language-css .token.string":{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},".style .token.string":{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},atrule:{color:"#07a"},"attr-value":{color:"#07a"},keyword:{color:"#07a"},function:{color:"#DD4A68"},"class-name":{color:"#DD4A68"},regex:{color:"#e90"},important:{color:"#e90",fontWeight:"bold"},variable:{color:"#e90"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}},function(e){var t=e.language,n=e.children,a=e.style,i=void 0===a?ta:a,o=e.customStyle,s=void 0===o?{}:o,c=e.codeTagProps,u=void 0===c?{className:t?"language-".concat(t):void 0,style:Vr(Vr({},i['code[class*="language-"]']),i['code[class*="language-'.concat(t,'"]')])}:c,d=e.useInlineStyles,p=void 0===d||d,m=e.showLineNumbers,g=void 0!==m&&m,h=e.showInlineLineNumbers,f=void 0===h||h,b=e.startingLineNumber,E=void 0===b?1:b,y=e.lineNumberContainerStyle,T=e.lineNumberStyle,S=void 0===T?{}:T,v=e.wrapLines,A=e.wrapLongLines,k=void 0!==A&&A,w=e.lineProps,_=void 0===w?{}:w,C=e.renderer,N=e.PreTag,I=void 0===N?"pre":N,x=e.CodeTag,R=void 0===x?"code":x,O=e.code,L=void 0===O?(Array.isArray(n)?n[0]:n)||"":O,P=e.astGenerator,D=l(e,zr);P=P||ea;var M=g?r.createElement(Wr,{containerStyle:y,codeStyle:u.style||{},numberStyle:S,startingLineNumber:E,codeString:L}):null,F=i.hljs||i['pre[class*="language-"]']||{backgroundColor:"#fff"},U=Jr(P)?"hljs":"prismjs",B=p?Object.assign({},D,{style:Object.assign({},F,s)}):Object.assign({},D,{className:D.className?"".concat(U," ").concat(D.className):U,style:Object.assign({},s)});if(u.style=Vr(Vr({},u.style),{},k?{whiteSpace:"pre-wrap"}:{whiteSpace:"pre"}),!P)return r.createElement(I,B,M,r.createElement(R,u,L));(void 0===v&&C||k)&&(v=!0),C=C||Qr;var G=[{type:"text",value:L}],H=function(e){var t=e.astGenerator,n=e.language,r=e.code,a=e.defaultCodeValue;if(Jr(t)){var i=function(e,t){return-1!==e.listLanguages().indexOf(t)}(t,n);return"text"===n?{value:a,language:"text"}:i?t.highlight(n,r):t.highlightAuto(r)}try{return n&&"text"!==n?{value:t.highlight(r,n)}:{value:a}}catch(o){return{value:a}}}({astGenerator:P,language:t,code:L,defaultCodeValue:G});null===H.language&&(H.value=G);var z=Zr(H,v,_,g,f,E,H.value.length+E,S,k);return r.createElement(I,B,r.createElement(R,u,!f&&M,C({rows:z,stylesheet:i,useInlineStyles:p})))});ra.supportedLanguages=["abap","abnf","actionscript","ada","agda","al","antlr4","apacheconf","apex","apl","applescript","aql","arduino","arff","asciidoc","asm6502","asmatmel","aspnet","autohotkey","autoit","avisynth","avro-idl","bash","basic","batch","bbcode","bicep","birb","bison","bnf","brainfuck","brightscript","bro","bsl","c","cfscript","chaiscript","cil","clike","clojure","cmake","cobol","coffeescript","concurnas","coq","cpp","crystal","csharp","cshtml","csp","css-extras","css","csv","cypher","d","dart","dataweave","dax","dhall","diff","django","dns-zone-file","docker","dot","ebnf","editorconfig","eiffel","ejs","elixir","elm","erb","erlang","etlua","excel-formula","factor","false","firestore-security-rules","flow","fortran","fsharp","ftl","gap","gcode","gdscript","gedcom","gherkin","git","glsl","gml","gn","go-module","go","graphql","groovy","haml","handlebars","haskell","haxe","hcl","hlsl","hoon","hpkp","hsts","http","ichigojam","icon","icu-message-format","idris","iecst","ignore","inform7","ini","io","j","java","javadoc","javadoclike","javascript","javastacktrace","jexl","jolie","jq","js-extras","js-templates","jsdoc","json","json5","jsonp","jsstacktrace","jsx","julia","keepalived","keyman","kotlin","kumir","kusto","latex","latte","less","lilypond","liquid","lisp","livescript","llvm","log","lolcode","lua","magma","makefile","markdown","markup-templating","markup","matlab","maxscript","mel","mermaid","mizar","mongodb","monkey","moonscript","n1ql","n4js","nand2tetris-hdl","naniscript","nasm","neon","nevod","nginx","nim","nix","nsis","objectivec","ocaml","opencl","openqasm","oz","parigp","parser","pascal","pascaligo","pcaxis","peoplecode","perl","php-extras","php","phpdoc","plsql","powerquery","powershell","processing","prolog","promql","properties","protobuf","psl","pug","puppet","pure","purebasic","purescript","python","q","qml","qore","qsharp","r","racket","reason","regex","rego","renpy","rest","rip","roboconf","robotframework","ruby","rust","sas","sass","scala","scheme","scss","shell-session","smali","smalltalk","smarty","sml","solidity","solution-file","soy","sparql","splunk-spl","sqf","sql","squirrel","stan","stylus","swift","systemd","t4-cs","t4-templating","t4-vb","tap","tcl","textile","toml","tremor","tsx","tt2","turtle","twig","typescript","typoscript","unrealscript","uorazor","uri","v","vala","vbnet","velocity","verilog","vhdl","vim","visual-basic","warpscript","wasm","web-idl","wiki","wolfram","wren","xeora","xml-doc","xojo","xquery","yaml","yang","zig"];for(var aa=ra,ia={'code[class*="language-"]':{color:"#e3eaf2",background:"none",fontFamily:'Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace',textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",wordWrap:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]':{color:"#e3eaf2",background:"#111b27",fontFamily:'Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace',textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",wordWrap:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:"0.5em 0",overflow:"auto"},'pre[class*="language-"]::-moz-selection':{background:"#3c526d"},'pre[class*="language-"] ::-moz-selection':{background:"#3c526d"},'code[class*="language-"]::-moz-selection':{background:"#3c526d"},'code[class*="language-"] ::-moz-selection':{background:"#3c526d"},'pre[class*="language-"]::selection':{background:"#3c526d"},'pre[class*="language-"] ::selection':{background:"#3c526d"},'code[class*="language-"]::selection':{background:"#3c526d"},'code[class*="language-"] ::selection':{background:"#3c526d"},':not(pre) > code[class*="language-"]':{background:"#111b27",padding:"0.1em 0.3em",borderRadius:"0.3em",whiteSpace:"normal"},comment:{color:"#8da1b9"},prolog:{color:"#8da1b9"},doctype:{color:"#8da1b9"},cdata:{color:"#8da1b9"},punctuation:{color:"#e3eaf2"},"delimiter.important":{color:"#66cccc",fontWeight:"inherit"},"selector.parent":{color:"#66cccc"},tag:{color:"#66cccc"},"tag.punctuation":{color:"#66cccc"},"attr-name":{color:"#e6d37a"},boolean:{color:"#e6d37a"},"boolean.important":{color:"#e6d37a"},number:{color:"#e6d37a"},constant:{color:"#e6d37a"},"selector.attribute":{color:"#e6d37a"},"class-name":{color:"#6cb8e6"},key:{color:"#6cb8e6"},parameter:{color:"#6cb8e6"},property:{color:"#6cb8e6"},"property-access":{color:"#6cb8e6"},variable:{color:"#6cb8e6"},"attr-value":{color:"#91d076"},inserted:{color:"#91d076"},color:{color:"#91d076"},"selector.value":{color:"#91d076"},string:{color:"#91d076"},"string.url-link":{color:"#91d076"},builtin:{color:"#f4adf4"},"keyword-array":{color:"#f4adf4"},package:{color:"#f4adf4"},regex:{color:"#f4adf4"},function:{color:"#c699e3"},"selector.class":{color:"#c699e3"},"selector.id":{color:"#c699e3"},"atrule.rule":{color:"#e9ae7e"},combinator:{color:"#e9ae7e"},keyword:{color:"#e9ae7e"},operator:{color:"#e9ae7e"},"pseudo-class":{color:"#e9ae7e"},"pseudo-element":{color:"#e9ae7e"},selector:{color:"#e9ae7e"},unit:{color:"#e9ae7e"},deleted:{color:"#cd6660"},important:{color:"#cd6660",fontWeight:"bold"},"keyword-this":{color:"#6cb8e6",fontWeight:"bold"},this:{color:"#6cb8e6",fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},entity:{cursor:"help"},".language-markdown .token.title":{color:"#6cb8e6",fontWeight:"bold"},".language-markdown .token.title .token.punctuation":{color:"#6cb8e6",fontWeight:"bold"},".language-markdown .token.blockquote.punctuation":{color:"#f4adf4"},".language-markdown .token.code":{color:"#66cccc"},".language-markdown .token.hr.punctuation":{color:"#6cb8e6"},".language-markdown .token.url .token.content":{color:"#91d076"},".language-markdown .token.url-link":{color:"#e6d37a"},".language-markdown .token.list.punctuation":{color:"#f4adf4"},".language-markdown .token.table-header":{color:"#e3eaf2"},".language-json .token.operator":{color:"#e3eaf2"},".language-scss .token.variable":{color:"#66cccc"},"token.tab:not(:empty):before":{color:"#8da1b9"},"token.cr:before":{color:"#8da1b9"},"token.lf:before":{color:"#8da1b9"},"token.space:before":{color:"#8da1b9"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a":{color:"#111b27",background:"#6cb8e6"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button":{color:"#111b27",background:"#6cb8e6"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover":{color:"#111b27",background:"#6cb8e6da",textDecoration:"none"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus":{color:"#111b27",background:"#6cb8e6da",textDecoration:"none"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover":{color:"#111b27",background:"#6cb8e6da",textDecoration:"none"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus":{color:"#111b27",background:"#6cb8e6da",textDecoration:"none"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span":{color:"#111b27",background:"#8da1b9"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover":{color:"#111b27",background:"#8da1b9"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus":{color:"#111b27",background:"#8da1b9"},".line-highlight.line-highlight":{background:"linear-gradient(to right, #3c526d5f 70%, #3c526d55)"},".line-highlight.line-highlight:before":{backgroundColor:"#8da1b9",color:"#111b27",boxShadow:"0 1px #3c526d"},".line-highlight.line-highlight[data-end]:after":{backgroundColor:"#8da1b9",color:"#111b27",boxShadow:"0 1px #3c526d"},"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before":{backgroundColor:"#8da1b918"},".line-numbers.line-numbers .line-numbers-rows":{borderRight:"1px solid #0b121b",background:"#0b121b7a"},".line-numbers .line-numbers-rows > span:before":{color:"#8da1b9da"},".rainbow-braces .token.token.punctuation.brace-level-1":{color:"#e6d37a"},".rainbow-braces .token.token.punctuation.brace-level-5":{color:"#e6d37a"},".rainbow-braces .token.token.punctuation.brace-level-9":{color:"#e6d37a"},".rainbow-braces .token.token.punctuation.brace-level-2":{color:"#f4adf4"},".rainbow-braces .token.token.punctuation.brace-level-6":{color:"#f4adf4"},".rainbow-braces .token.token.punctuation.brace-level-10":{color:"#f4adf4"},".rainbow-braces .token.token.punctuation.brace-level-3":{color:"#6cb8e6"},".rainbow-braces .token.token.punctuation.brace-level-7":{color:"#6cb8e6"},".rainbow-braces .token.token.punctuation.brace-level-11":{color:"#6cb8e6"},".rainbow-braces .token.token.punctuation.brace-level-4":{color:"#c699e3"},".rainbow-braces .token.token.punctuation.brace-level-8":{color:"#c699e3"},".rainbow-braces .token.token.punctuation.brace-level-12":{color:"#c699e3"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)":{backgroundColor:"#cd66601f"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)":{backgroundColor:"#cd66601f"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)":{backgroundColor:"#91d0761f"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)":{backgroundColor:"#91d0761f"},".command-line .command-line-prompt":{borderRight:"1px solid #0b121b"},".command-line .command-line-prompt > span:before":{color:"#8da1b9da"}},oa={tokenize:function(e,t,n){return function(t){return e.consume(t),r};function r(t){return 87===t||119===t?(e.consume(t),a):n(t)}function a(t){return 87===t||119===t?(e.consume(t),i):n(t)}function i(t){return 46===t?(e.consume(t),o):n(t)}function o(e){return null===e||ke(e)?n(e):t(e)}},partial:!0},sa={tokenize:function(e,t,n){var r,a;return i;function i(t){return 38===t?e.check(ua,s,o)(t):46===t||95===t?e.check(ca,s,o)(t):null===t||ve(t)||_e(t)||45!==t&&Ce(t)?s(t):(e.consume(t),i)}function o(t){return 46===t?(a=r,r=void 0,e.consume(t),i):(95===t&&(r=!0),e.consume(t),i)}function s(e){return a||r?n(e):t(e)}},partial:!0},la={tokenize:function(e,t){var n=0;return r;function r(o){return 38===o?e.check(ua,t,a)(o):(40===o&&n++,41===o?e.check(ca,i,a)(o):Ea(o)?t(o):ba(o)?e.check(ca,t,a)(o):(e.consume(o),r))}function a(t){return e.consume(t),r}function i(e){return--n<0?t(e):a(e)}},partial:!0},ca={tokenize:function(e,t,n){return function(t){return e.consume(t),r};function r(a){return ba(a)?(e.consume(a),r):Ea(a)?t(a):n(a)}},partial:!0},ua={tokenize:function(e,t,n){return function(t){return e.consume(t),r};function r(t){return fe(t)?(e.consume(t),r):59===t?(e.consume(t),a):n(t)}function a(e){return Ea(e)?t(e):n(e)}},partial:!0},da={tokenize:function(e,t,n){var r=this;return function(t){if(87!==t&&119!==t||!Ta(r.previous)||Aa(r.events))return n(t);return e.enter("literalAutolink"),e.enter("literalAutolinkWww"),e.check(oa,e.attempt(sa,e.attempt(la,a),n),n)(t)};function a(n){return e.exit("literalAutolinkWww"),e.exit("literalAutolink"),t(n)}},previous:Ta},pa={tokenize:function(e,t,n){var r=this;return function(t){if(72!==t&&104!==t||!Sa(r.previous)||Aa(r.events))return n(t);return e.enter("literalAutolink"),e.enter("literalAutolinkHttp"),e.consume(t),a};function a(t){return 84===t||116===t?(e.consume(t),i):n(t)}function i(t){return 84===t||116===t?(e.consume(t),o):n(t)}function o(t){return 80===t||112===t?(e.consume(t),s):n(t)}function s(t){return 83===t||115===t?(e.consume(t),l):l(t)}function l(t){return 58===t?(e.consume(t),c):n(t)}function c(t){return 47===t?(e.consume(t),u):n(t)}function u(t){return 47===t?(e.consume(t),d):n(t)}function d(t){return null===t||ve(t)||_e(t)||Ce(t)?n(t):e.attempt(sa,e.attempt(la,p),n)(t)}function p(n){return e.exit("literalAutolinkHttp"),e.exit("literalAutolink"),t(n)}},previous:Sa},ma={tokenize:function(e,t,n){var r,a,i=this;return function(t){if(!ya(t)||!va(i.previous)||Aa(i.events))return n(t);return e.enter("literalAutolink"),e.enter("literalAutolinkEmail"),o(t)};function o(t){return ya(t)?(e.consume(t),o):64===t?(e.consume(t),s):n(t)}function s(t){return 46===t?e.check(ca,d,l)(t):45===t||95===t?e.check(ca,n,c)(t):ye(t)?(!a&&be(t)&&(a=!0),e.consume(t),s):d(t)}function l(t){return e.consume(t),r=!0,a=void 0,s}function c(t){return e.consume(t),u}function u(t){return 46===t?e.check(ca,n,l)(t):s(t)}function d(i){return r&&!a?(e.exit("literalAutolinkEmail"),e.exit("literalAutolink"),t(i)):n(i)}},previous:va},ga={},ha={text:ga},fa=48;fa<123;)ga[fa]=ma,58===++fa?fa=65:91===fa&&(fa=97);function ba(e){return 33===e||34===e||39===e||41===e||42===e||44===e||46===e||58===e||59===e||60===e||63===e||95===e||126===e}function Ea(e){return null===e||60===e||Ae(e)}function ya(e){return 43===e||45===e||46===e||95===e||ye(e)}function Ta(e){return null===e||40===e||42===e||95===e||126===e||Ae(e)}function Sa(e){return null===e||!fe(e)}function va(e){return 47!==e&&Sa(e)}function Aa(e){for(var t=e.length,n=!1;t--;){var r=e[t][1];if(("labelLink"===r.type||"labelImage"===r.type)&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}ga[43]=ma,ga[45]=ma,ga[46]=ma,ga[95]=ma,ga[72]=[ma,pa],ga[104]=[ma,pa],ga[87]=[ma,da],ga[119]=[ma,da];var ka={tokenize:function(e,t,n){var r=this;return Ie(e,(function(e){var a=r.events[r.events.length-1];return a&&"gfmFootnoteDefinitionIndent"===a[1].type&&4===a[2].sliceSerialize(a[1],!0).length?t(e):n(e)}),"gfmFootnoteDefinitionIndent",5)},partial:!0};function wa(){var e;return{document:i({},91,{tokenize:Ia,continuation:{tokenize:xa},exit:Ra}),text:(e={},i(e,91,{tokenize:Na}),i(e,93,{add:"after",tokenize:_a,resolveTo:Ca}),e)}}function _a(e,t,n){for(var r,a=this,i=a.events.length,o=a.parser.gfmFootnotes||(a.parser.gfmFootnotes=[]);i--;){var s=a.events[i][1];if("labelImage"===s.type){r=s;break}if("gfmFootnoteCall"===s.type||"labelLink"===s.type||"label"===s.type||"image"===s.type||"link"===s.type)break}return function(i){if(!r||!r._balanced)return n(i);var s=nt(a.sliceSerialize({start:r.end,end:a.now()}));if(94!==s.charCodeAt(0)||!o.includes(s.slice(1)))return n(i);return e.enter("gfmFootnoteCallLabelMarker"),e.consume(i),e.exit("gfmFootnoteCallLabelMarker"),t(i)}}function Ca(e,t){for(var n=e.length;n--;)if("labelImage"===e[n][1].type&&"enter"===e[n][0]){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";var r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},a={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};a.end.column++,a.end.offset++,a.end._bufferIndex++;var i={type:"gfmFootnoteCallString",start:Object.assign({},a.end),end:Object.assign({},e[e.length-1][1].start)},o={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},s=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",a,t],["exit",a,t],["enter",i,t],["enter",o,t],["exit",o,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice.apply(e,[n,e.length-n+1].concat(s)),e}function Na(e,t,n){var r,a=this,i=a.parser.gfmFootnotes||(a.parser.gfmFootnotes=[]),o=0;return function(t){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(t),e.exit("gfmFootnoteCallLabelMarker"),s};function s(t){return 94!==t?n(t):(e.enter("gfmFootnoteCallMarker"),e.consume(t),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",l)}function l(s){var u;return null===s||91===s||o++>999?n(s):93===s?r?(e.exit("chunkString"),u=e.exit("gfmFootnoteCallString"),i.includes(nt(a.sliceSerialize(u)))?function(n){return e.enter("gfmFootnoteCallLabelMarker"),e.consume(n),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t}(s):n(s)):n(s):(e.consume(s),Ae(s)||(r=!0),92===s?c:l)}function c(t){return 91===t||92===t||93===t?(e.consume(t),o++,l):l(t)}}function Ia(e,t,n){var r,a,i=this,o=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]),s=0;return function(t){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionLabelMarker"),l};function l(t){return 94===t?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),c):n(t)}function c(t){var o;return null===t||91===t||s>999?n(t):93===t?a?(o=e.exit("gfmFootnoteDefinitionLabelString"),r=nt(i.sliceSerialize(o)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),p):n(t):ke(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),s++,c):(e.enter("chunkString").contentType="string",u(t))}function u(t){return null===t||ke(t)||91===t||93===t||s>999?(e.exit("chunkString"),c(t)):(Ae(t)||(a=!0),s++,e.consume(t),92===t?d:u)}function d(t){return 91===t||92===t||93===t?(e.consume(t),s++,u):u(t)}function p(t){return 58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),Ie(e,m,"gfmFootnoteDefinitionWhitespace")):n(t)}function m(e){return o.includes(r)||o.push(r),t(e)}}function xa(e,t,n){return e.check(Le,t,e.attempt(ka,t,n))}function Ra(e){e.exit("gfmFootnoteDefinition")}function Oa(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.singleTilde,n={tokenize:a,resolveAll:r};return null!==t&&void 0!==t||(t=!0),{text:i({},126,n),insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){for(var n=-1;++n<e.length;)if("enter"===e[n][0]&&"strikethroughSequenceTemporary"===e[n][1].type&&e[n][1]._close)for(var r=n;r--;)if("exit"===e[r][0]&&"strikethroughSequenceTemporary"===e[r][1].type&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type="strikethroughSequence",e[r][1].type="strikethroughSequence";var a={type:"strikethrough",start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},i={type:"strikethroughText",start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[["enter",a,t],["enter",e[r][1],t],["exit",e[r][1],t],["enter",i,t]];ue(o,o.length,0,je(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),ue(o,o.length,0,[["exit",i,t],["enter",e[n][1],t],["exit",e[n][1],t],["exit",a,t]]),ue(e,r-1,n-r+3,o),n=r+o.length-2;break}for(n=-1;++n<e.length;)"strikethroughSequenceTemporary"===e[n][1].type&&(e[n][1].type="data");return e}function a(e,n,r){var a=this.previous,i=this.events,o=0;return function(t){if(126===a&&"characterEscape"!==i[i.length-1][1].type)return r(t);return e.enter("strikethroughSequenceTemporary"),s(t)};function s(i){var l=kt(a);if(126===i)return o>1?r(i):(e.consume(i),o++,s);if(o<2&&!t)return r(i);var c=e.exit("strikethroughSequenceTemporary"),u=kt(i);return c._open=!u||2===u&&Boolean(l),c._close=!l||2===l&&Boolean(u),n(i)}}}var La={flow:{null:{tokenize:function(e,t,n){var r,a,i=this,o=[],s=0;return function(t){if(e.enter("table")._align=o,e.enter("tableHead"),e.enter("tableRow"),124===t)return l(t);return s++,e.enter("temporaryTableCellContent"),d(t)};function l(t){return e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),r=!0,c}function c(t){return null===t||ke(t)?function(t){if(null===t)return n(t);e.exit("tableRow"),e.exit("tableHead");var r=i.interrupt;return i.interrupt=!0,e.attempt({tokenize:N,partial:!0},(function(t){return i.interrupt=r,e.enter("tableDelimiterRow"),m(t)}),(function(e){return i.interrupt=r,n(e)}))(t)}(t):we(t)?(e.enter("whitespace"),e.consume(t),u):(r&&(r=void 0,s++),124===t?l(t):(e.enter("temporaryTableCellContent"),d(t)))}function u(t){return we(t)?(e.consume(t),u):(e.exit("whitespace"),c(t))}function d(t){return null===t||124===t||Ae(t)?(e.exit("temporaryTableCellContent"),c(t)):(e.consume(t),92===t?p:d)}function p(t){return 92===t||124===t?(e.consume(t),d):d(t)}function m(t){return null===t||ke(t)?E(t):we(t)?(e.enter("whitespace"),e.consume(t),g):45===t?(e.enter("tableDelimiterFiller"),e.consume(t),a=!0,o.push("none"),h):58===t?(e.enter("tableDelimiterAlignment"),e.consume(t),e.exit("tableDelimiterAlignment"),o.push("left"),f):124===t?(e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),m):n(t)}function g(t){return we(t)?(e.consume(t),g):(e.exit("whitespace"),m(t))}function h(t){return 45===t?(e.consume(t),h):(e.exit("tableDelimiterFiller"),58===t?(e.enter("tableDelimiterAlignment"),e.consume(t),e.exit("tableDelimiterAlignment"),o[o.length-1]="left"===o[o.length-1]?"center":"right",b):m(t))}function f(t){return 45===t?(e.enter("tableDelimiterFiller"),e.consume(t),a=!0,h):n(t)}function b(t){return null===t||ke(t)?E(t):we(t)?(e.enter("whitespace"),e.consume(t),g):124===t?(e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),m):n(t)}function E(t){return e.exit("tableDelimiterRow"),a&&s===o.length?null===t?y(t):e.check(Pa,y,e.attempt({tokenize:N,partial:!0},Ie(e,T,"linePrefix",4),y))(t):n(t)}function y(n){return e.exit("table"),t(n)}function T(t){return e.enter("tableBody"),S(t)}function S(t){return e.enter("tableRow"),124===t?v(t):(e.enter("temporaryTableCellContent"),w(t))}function v(t){return e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),A}function A(t){return null===t||ke(t)?function(t){if(e.exit("tableRow"),null===t)return C(t);return e.check(Pa,C,e.attempt({tokenize:N,partial:!0},Ie(e,S,"linePrefix",4),C))(t)}(t):we(t)?(e.enter("whitespace"),e.consume(t),k):124===t?v(t):(e.enter("temporaryTableCellContent"),w(t))}function k(t){return we(t)?(e.consume(t),k):(e.exit("whitespace"),A(t))}function w(t){return null===t||124===t||Ae(t)?(e.exit("temporaryTableCellContent"),A(t)):(e.consume(t),92===t?_:w)}function _(t){return 92===t||124===t?(e.consume(t),w):w(t)}function C(t){return e.exit("tableBody"),y(t)}function N(e,t,n){return function(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Ie(e,r,"linePrefix")};function r(r){if(i.parser.lazy[i.now().line]||null===r||ke(r))return n(r);var a=i.events[i.events.length-1];return!i.parser.constructs.disable.null.includes("codeIndented")&&a&&"linePrefix"===a[1].type&&a[2].sliceSerialize(a[1],!0).length>=4?n(r):(i._gfmTableDynamicInterruptHack=!0,e.check(i.parser.constructs.flow,(function(e){return i._gfmTableDynamicInterruptHack=!1,n(e)}),(function(e){return i._gfmTableDynamicInterruptHack=!1,t(e)}))(r))}}},resolve:function(e,t){var n,r,a,i,o,s,l,c=-1;for(;++c<e.length;){var u=e[c][1];if(a&&("temporaryTableCellContent"===u.type&&(i=i||c,o=c),("tableCellDivider"===u.type||"tableRow"===u.type)&&o)){var d={type:"tableContent",start:e[i][1].start,end:e[o][1].end},p={type:"chunkText",start:d.start,end:d.end,contentType:"text"};e.splice(i,o-i+1,["enter",d,t],["enter",p,t],["exit",p,t],["exit",d,t]),c-=o-i-3,i=void 0,o=void 0}if("exit"===e[c][0]&&void 0!==s&&s+(l?0:1)<c&&("tableCellDivider"===u.type||"tableRow"===u.type&&(s+3<c||"whitespace"!==e[s][1].type))){var m={type:r?"tableDelimiter":n?"tableHeader":"tableData",start:e[s][1].start,end:e[c][1].end};e.splice(c+("tableCellDivider"===u.type?1:0),0,["exit",m,t]),e.splice(s,0,["enter",m,t]),s=(c+=2)+1,l=!0}"tableRow"===u.type&&(a="enter"===e[c][0])&&(s=c+1,l=!1),"tableDelimiterRow"===u.type&&(r="enter"===e[c][0])&&(s=c+1,l=!1),"tableHead"===u.type&&(n="enter"===e[c][0])}return e}}}},Pa={tokenize:function(e,t,n){var r=0;return function(t){return e.enter("check"),e.consume(t),a};function a(i){return-1===i||32===i?(e.consume(i),4===++r?t:a):null===i||Ae(i)?t(i):n(i)}},partial:!0};var Da={tokenize:function(e,t,n){var r=this;return function(t){if(null!==r.previous||!r._gfmTasklistFirstContentOfListItem)return n(t);return e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(t),e.exit("taskListCheckMarker"),a};function a(t){return Ae(t)?(e.enter("taskListCheckValueUnchecked"),e.consume(t),e.exit("taskListCheckValueUnchecked"),i):88===t||120===t?(e.enter("taskListCheckValueChecked"),e.consume(t),e.exit("taskListCheckValueChecked"),i):n(t)}function i(r){return 93===r?(e.enter("taskListCheckMarker"),e.consume(r),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),e.check({tokenize:Fa},t,n)):n(r)}}},Ma={text:i({},91,Da)};function Fa(e,t,n){var r=this;return Ie(e,(function(e){var a=r.events[r.events.length-1];return(a&&"whitespace"===a[1].type||ke(e))&&null!==e?t(e):n(e)}),"whitespace")}function Ua(e){return me([ha,wa(),Oa(e),La,Ma])}function Ba(e,t){var n=String(e);if("string"!==typeof t)throw new TypeError("Expected character");for(var r=0,a=n.indexOf(t);-1!==a;)r++,a=n.indexOf(t,a+t.length);return r}var Ga={}.hasOwnProperty,Ha=function(e,t,n,r){var a,i;"string"===typeof t||t instanceof RegExp?(i=[[t,n]],a=r):(i=t,a=n),a||(a={});for(var o=an(a.ignore||[]),s=function(e){var t=[];if("object"!==typeof e)throw new TypeError("Expected array or object as schema");if(Array.isArray(e))for(var n=-1;++n<e.length;)t.push([za(e[n][0]),$a(e[n][1])]);else{var r;for(r in e)Ga.call(e,r)&&t.push([za(r),$a(e[r])])}return t}(i),l=-1;++l<s.length;)cn(e,"text",c);return e;function c(e,t){for(var n,r=-1;++r<t.length;){var a=t[r];if(o(a,n?n.children.indexOf(a):void 0,n))return;n=a}if(n)return function(e,t){var n,r=t[t.length-1],a=s[l][0],i=s[l][1],o=0,c=r.children.indexOf(e),u=!1,d=[];a.lastIndex=0;var m=a.exec(e.value);for(;m;){n=m.index;var g={index:m.index,input:m.input,stack:[].concat(p(t),[e])},h=i.apply(void 0,p(m).concat([g]));if("string"===typeof h&&(h=h.length>0?{type:"text",value:h}:void 0),!1!==h){var f;if(o!==n&&d.push({type:"text",value:e.value.slice(o,n)}),Array.isArray(h))(f=d).push.apply(f,p(h));else h&&d.push(h);o=n+m[0].length,u=!0}if(!a.global)break;m=a.exec(e.value)}if(u){var b;o<e.value.length&&d.push({type:"text",value:e.value.slice(o)}),(b=r.children).splice.apply(b,[c,1].concat(p(d)))}else d=[e];return c+d.length}(e,t)}};function za(e){return"string"===typeof e?new RegExp(function(e){if("string"!==typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}(e),"g"):e}function $a(e){return"function"===typeof e?e:function(){return e}}var Va="phrasing",ja=["autolink","link","image","label"],Wa={transforms:[function(e){Ha(e,[[/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi,Xa],[/([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/g,Ya]],{ignore:["link","linkReference"]})}],enter:{literalAutolink:function(e){this.enter({type:"link",title:null,url:"",children:[]},e)},literalAutolinkEmail:Ka,literalAutolinkHttp:Ka,literalAutolinkWww:Ka},exit:{literalAutolink:function(e){this.exit(e)},literalAutolinkEmail:function(e){this.config.exit.autolinkEmail.call(this,e)},literalAutolinkHttp:function(e){this.config.exit.autolinkProtocol.call(this,e)},literalAutolinkWww:function(e){this.config.exit.data.call(this,e),this.stack[this.stack.length-1].url="http://"+this.sliceSerialize(e)}}},qa={unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:Va,notInConstruct:ja},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:Va,notInConstruct:ja},{character:":",before:"[ps]",after:"\\/",inConstruct:Va,notInConstruct:ja}]};function Ka(e){this.config.enter.autolinkProtocol.call(this,e)}function Xa(e,t,n,r,a){var i="";if(!Za(a))return!1;if(/^w/i.test(t)&&(n=t+n,t="",i="http://"),!function(e){var t=e.split(".");if(t.length<2||t[t.length-1]&&(/_/.test(t[t.length-1])||!/[a-zA-Z\d]/.test(t[t.length-1]))||t[t.length-2]&&(/_/.test(t[t.length-2])||!/[a-zA-Z\d]/.test(t[t.length-2])))return!1;return!0}(n))return!1;var o=function(e){var t,n,r,a,i=/[!"&'),.:;<>?\]}]+$/.exec(e);if(i)for(e=e.slice(0,i.index),t=(a=i[0]).indexOf(")"),n=Ba(e,"("),r=Ba(e,")");-1!==t&&n>r;)e+=a.slice(0,t+1),t=(a=a.slice(t+1)).indexOf(")"),r++;return[e,a]}(n+r);if(!o[0])return!1;var s={type:"link",title:null,url:i+t+o[0],children:[{type:"text",value:t+o[0]}]};return o[1]?[s,{type:"text",value:o[1]}]:s}function Ya(e,t,n,r){return!(!Za(r,!0)||/[_-\d]$/.test(n))&&{type:"link",title:null,url:"mailto:"+t+"@"+n,children:[{type:"text",value:t+"@"+n}]}}function Za(e,t){var n=e.input.charCodeAt(e.index-1);return(0===e.index||_e(n)||Ce(n))&&(!t||47!==n)}function Qa(e){return e.label||!e.identifier?e.label||"":Xt(e.identifier)}function Ja(e){var t=e||{},n=t.now||{},r=t.lineShift||0,a=n.line||1,i=n.column||1;return{move:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.split(/\r?\n|\r/g),n=t[t.length-1];return a+=t.length-1,i=1===t.length?i+n.length:1+n.length+r,e},current:function(){return{now:{line:a,column:i},lineShift:r}},shift:function(e){r+=e}}}function ei(e,t,n){var r=t.indexStack,a=e.children||[],i=Ja(n),o=[],l=-1;for(r.push(-1);++l<a.length;){var c=a[l];r[r.length-1]=l,o.push(i.move(t.handle(c,e,t,s({before:"\n",after:"\n"},i.current())))),"list"!==c.type&&(t.bulletLastUsed=void 0),l<a.length-1&&o.push(i.move(u(c,a[l+1])))}return r.pop(),o.join("");function u(n,r){for(var a=t.join.length;a--;){var i=t.join[a](n,r,e,t);if(!0===i||1===i)break;if("number"===typeof i)return"\n".repeat(1+i);if(!1===i)return"\n\n\x3c!----\x3e\n\n"}return"\n\n"}}var ti=/\r?\n|\r/g;function ni(e,t){for(var n,r=[],a=0,i=0;n=ti.exec(e);)o(e.slice(a,n.index)),r.push(n[0]),a=n.index+n[0].length,i++;return o(e.slice(a)),r.join("");function o(e){r.push(t(e,i,!e))}}function ri(e){if(!e._compiled){var t=(e.atBreak?"[\\r\\n][\\t ]*":"")+(e.before?"(?:"+e.before+")":"");e._compiled=new RegExp((t?"("+t+")":"")+(/[|\\{}()[\]^$+*?.-]/.test(e.character)?"\\":"")+e.character+(e.after?"(?:"+e.after+")":""),"g")}return e._compiled}function ai(e,t){return ii(e,t.inConstruct,!0)&&!ii(e,t.notInConstruct,!1)}function ii(e,t,n){if(!t)return n;"string"===typeof t&&(t=[t]);for(var r=-1;++r<t.length;)if(e.includes(t[r]))return!0;return!1}function oi(e,t,n){for(var r=(n.before||"")+(t||"")+(n.after||""),a=[],i=[],o={},s=-1;++s<e.unsafe.length;){var l=e.unsafe[s];if(ai(e.stack,l))for(var c=ri(l),u=void 0;u=c.exec(r);){var d="before"in l||Boolean(l.atBreak),p="after"in l,m=u.index+(d?u[1].length:0);a.includes(m)?(o[m].before&&!d&&(o[m].before=!1),o[m].after&&!p&&(o[m].after=!1)):(a.push(m),o[m]={before:d,after:p})}}a.sort(si);var g=n.before?n.before.length:0,h=r.length-(n.after?n.after.length:0);for(s=-1;++s<a.length;){var f=a[s];f<g||f>=h||(f+1<h&&a[s+1]===f+1&&o[f].after&&!o[f+1].before&&!o[f+1].after||a[s-1]===f-1&&o[f].before&&!o[f-1].before&&!o[f-1].after||(g!==f&&i.push(li(r.slice(g,f),"\\")),g=f,!/[!-/:-@[-`{-~]/.test(r.charAt(f))||n.encode&&n.encode.includes(r.charAt(f))?(i.push("&#x"+r.charCodeAt(f).toString(16).toUpperCase()+";"),g++):i.push("\\")))}return i.push(li(r.slice(g,h),n.after)),i.join("")}function si(e,t){return e-t}function li(e,t){for(var n,r=/\\(?=[!-/:-@[-`{-~])/g,a=[],i=[],o=e+t,s=-1,l=0;n=r.exec(o);)a.push(n.index);for(;++s<a.length;)l!==a[s]&&i.push(e.slice(l,a[s])),i.push("\\"),l=a[s];return i.push(e.slice(l)),i.join("")}function ci(){return e.peek=function(){return"["},{unsafe:[{character:"[",inConstruct:["phrasing","label","reference"]}],handlers:{footnoteDefinition:function(e,t,n,r){var a=Ja(r),i=a.move("[^"),o=n.enter("footnoteDefinition"),l=n.enter("label");return i+=a.move(oi(n,Qa(e),s(s({},a.current()),{},{before:i,after:"]"}))),l(),i+=a.move("]:"+(e.children&&e.children.length>0?" ":"")),a.shift(4),i+=a.move(ni(ei(e,n,a.current()),(function(e,t,n){if(t)return(n?"":"    ")+e;return e}))),o(),i},footnoteReference:e}};function e(e,t,n,r){var a=Ja(r),i=a.move("[^"),o=n.enter("footnoteReference"),l=n.enter("reference");return i+=a.move(oi(n,Qa(e),s(s({},a.current()),{},{before:i,after:"]"}))),l(),o(),i+=a.move("]")}}function ui(e,t,n){var r=t.indexStack,a=e.children||[],i=[],o=-1,l=n.before;r.push(-1);for(var c=Ja(n);++o<a.length;){var u=a[o],d=void 0;if(r[r.length-1]=o,o+1<a.length){var p=t.handle.handlers[a[o+1].type];p&&p.peek&&(p=p.peek),d=p?p(a[o+1],e,t,s({before:"",after:""},c.current())).charAt(0):""}else d=n.after;i.length>0&&("\r"===l||"\n"===l)&&"html"===u.type&&(i[i.length-1]=i[i.length-1].replace(/(\r?\n|\r)$/," "),l=" ",(c=Ja(n)).move(i.join(""))),i.push(c.move(t.handle(u,e,t,s(s({},c.current()),{},{before:l,after:d})))),l=i[i.length-1].slice(-1)}return r.pop(),i.join("")}var di={canContainEols:["delete"],enter:{strikethrough:function(e){this.enter({type:"delete",children:[]},e)}},exit:{strikethrough:function(e){this.exit(e)}}},pi={unsafe:[{character:"~",inConstruct:"phrasing"}],handlers:{delete:mi}};function mi(e,t,n,r){var a=Ja(r),i=n.enter("emphasis"),o=a.move("~~");return o+=ui(e,n,s(s({},a.current()),{},{before:o,after:"~"})),o+=a.move("~~"),i(),o}function gi(e,t,n){for(var r=e.value||"",a="`",i=-1;new RegExp("(^|[^`])"+a+"([^`]|$)").test(r);)a+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i<n.unsafe.length;){var o=n.unsafe[i],s=ri(o),l=void 0;if(o.atBreak)for(;l=s.exec(r);){var c=l.index;10===r.charCodeAt(c)&&13===r.charCodeAt(c-1)&&c--,r=r.slice(0,c)+" "+r.slice(l.index+1)}}return a+r+a}function hi(e){return null===e||void 0===e?"":String(e)}function fi(e){return e.length}function bi(e){var t="string"===typeof e?e.codePointAt(0):0;return 67===t||99===t?99:76===t||108===t?108:82===t||114===t?114:0}mi.peek=function(){return"~"},gi.peek=function(){return"`"};var Ei={enter:{table:function(e){var t=e._align;this.enter({type:"table",align:t.map((function(e){return"none"===e?null:e})),children:[]},e),this.setData("inTable",!0)},tableData:Ti,tableHeader:Ti,tableRow:function(e){this.enter({type:"tableRow",children:[]},e)}},exit:{codeText:function(e){var t=this.resume();this.getData("inTable")&&(t=t.replace(/\\([\\|])/g,Si));this.stack[this.stack.length-1].value=t,this.exit(e)},table:function(e){this.exit(e),this.setData("inTable")},tableData:yi,tableHeader:yi,tableRow:yi}};function yi(e){this.exit(e)}function Ti(e){this.enter({type:"tableCell",children:[]},e)}function Si(e,t){return"|"===t?t:e}function vi(e){var t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,a=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:"\n",inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[\t :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{table:function(e,t,n,r){return l(function(e,t,n){var r=e.children,a=-1,i=[],o=t.enter("table");for(;++a<r.length;)i[a]=c(r[a],t,n);return o(),i}(e,n,r),e.align)},tableRow:function(e,t,n,r){var a=l([c(e,n,r)]);return a.slice(0,a.indexOf("\n"))},tableCell:o,inlineCode:function(e,t,n){var r=gi(e,0,n);n.stack.includes("tableCell")&&(r=r.replace(/\|/g,"\\$&"));return r}}};function o(e,t,n,r){var a=n.enter("tableCell"),o=n.enter("phrasing"),l=ui(e,n,s(s({},r),{},{before:i,after:i}));return o(),a(),l}function l(e,t){return function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(t.align||[]).concat(),r=t.stringLength||fi,a=[],i=[],o=[],s=[],l=0,c=-1;++c<e.length;){var u=[],d=[],p=-1;for(e[c].length>l&&(l=e[c].length);++p<e[c].length;){var m=hi(e[c][p]);if(!1!==t.alignDelimiters){var g=r(m);d[p]=g,(void 0===s[p]||g>s[p])&&(s[p]=g)}u.push(m)}i[c]=u,o[c]=d}var h=-1;if("object"===typeof n&&"length"in n)for(;++h<l;)a[h]=bi(n[h]);else for(var f=bi(n);++h<l;)a[h]=f;h=-1;for(var b=[],E=[];++h<l;){var y=a[h],T="",S="";99===y?(T=":",S=":"):108===y?T=":":114===y&&(S=":");var v=!1===t.alignDelimiters?1:Math.max(1,s[h]-T.length-S.length),A=T+"-".repeat(v)+S;!1!==t.alignDelimiters&&((v=T.length+v+S.length)>s[h]&&(s[h]=v),E[h]=v),b[h]=A}i.splice(1,0,b),o.splice(1,0,E),c=-1;for(var k=[];++c<i.length;){var w=i[c],_=o[c];h=-1;for(var C=[];++h<l;){var N=w[h]||"",I="",x="";if(!1!==t.alignDelimiters){var R=s[h]-(_[h]||0),O=a[h];114===O?I=" ".repeat(R):99===O?R%2?(I=" ".repeat(R/2+.5),x=" ".repeat(R/2-.5)):x=I=" ".repeat(R/2):x=" ".repeat(R)}!1===t.delimiterStart||h||C.push("|"),!1===t.padding||!1===t.alignDelimiters&&""===N||!1===t.delimiterStart&&!h||C.push(" "),!1!==t.alignDelimiters&&C.push(I),C.push(N),!1!==t.alignDelimiters&&C.push(x),!1!==t.padding&&C.push(" "),!1===t.delimiterEnd&&h===l-1||C.push("|")}k.push(!1===t.delimiterEnd?C.join("").replace(/ +$/,""):C.join(""))}return k.join("\n")}(e,{align:t,alignDelimiters:r,padding:n,stringLength:a})}function c(e,t,n){for(var r=e.children,a=-1,i=[],s=t.enter("tableRow");++a<r.length;)i[a]=o(r[a],0,t,n);return s(),i}}function Ai(e,t,n,r){var a=function(e){var t=e.options.listItemIndent||"tab";if(1===t||"1"===t)return"one";if("tab"!==t&&"one"!==t&&"mixed"!==t)throw new Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}(n),i=n.bulletCurrent||function(e){var t=e.options.bullet||"*";if("*"!==t&&"+"!==t&&"-"!==t)throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}(n);t&&"list"===t.type&&t.ordered&&(i=("number"===typeof t.start&&t.start>-1?t.start:1)+(!1===n.options.incrementListMarker?0:t.children.indexOf(e))+i);var o=i.length+1;("tab"===a||"mixed"===a&&(t&&"list"===t.type&&t.spread||e.spread))&&(o=4*Math.ceil(o/4));var s=Ja(r);s.move(i+" ".repeat(o-i.length)),s.shift(o);var l=n.enter("listItem"),c=ni(ei(e,n,s.current()),(function(e,t,n){if(t)return(n?"":" ".repeat(o))+e;return(n?i:i+" ".repeat(o-i.length))+e}));return l(),c}var ki={exit:{taskListCheckValueChecked:_i,taskListCheckValueUnchecked:_i,paragraph:function(e){var t,n=this.stack[this.stack.length-2],r=this.stack[this.stack.length-1],a=n.children,i=r.children[0],o=-1;if(n&&"listItem"===n.type&&"boolean"===typeof n.checked&&i&&"text"===i.type){for(;++o<a.length;){var s=a[o];if("paragraph"===s.type){t=s;break}}t===r&&(i.value=i.value.slice(1),0===i.value.length?r.children.shift():r.position&&i.position&&"number"===typeof i.position.start.offset&&(i.position.start.column++,i.position.start.offset++,r.position.start=Object.assign({},i.position.start)))}this.exit(e)}}},wi={unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:function(e,t,n,r){var a=e.children[0],i="boolean"===typeof e.checked&&a&&"paragraph"===a.type,o="["+(e.checked?"x":" ")+"] ",l=Ja(r);i&&l.move(o);var c=Ai(e,t,n,s(s({},r),l.current()));i&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,(function(e){return e+o})));return c}}};function _i(e){this.stack[this.stack.length-2].checked="taskListCheckValueChecked"===e.type}function Ci(){return[Wa,{enter:{gfmFootnoteDefinition:function(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)},gfmFootnoteDefinitionLabelString:function(){this.buffer()},gfmFootnoteCall:function(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)},gfmFootnoteCallString:function(){this.buffer()}},exit:{gfmFootnoteDefinition:function(e){this.exit(e)},gfmFootnoteDefinitionLabelString:function(e){var t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=nt(this.sliceSerialize(e)).toLowerCase()},gfmFootnoteCall:function(e){this.exit(e)},gfmFootnoteCallString:function(e){var t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=nt(this.sliceSerialize(e)).toLowerCase()}}},di,Ei,ki]}function Ni(e){return{extensions:[qa,ci(),pi,vi(e),wi]}}function Ii(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.data();function n(e,n){(t[e]?t[e]:t[e]=[]).push(n)}n("micromarkExtensions",Ua(e)),n("fromMarkdownExtensions",Ci()),n("toMarkdownExtensions",Ni(e))}var xi=n(8992),Ri=/[#.]/g,Oi=function(e){for(var t,n,r,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"div",i=e||"",o={},s=0;s<i.length;)Ri.lastIndex=s,r=Ri.exec(i),(t=i.slice(s,r?r.index:i.length))&&(n?"#"===n?o.id=t:Array.isArray(o.className)?o.className.push(t):o.className=[t]:a=t,s+=t.length),r&&(n=r[0],s++);return{type:"element",tagName:a,properties:o,children:[]}},Li=new Set(["menu","submit","reset","button"]),Pi={}.hasOwnProperty;function Di(e,t,n){var r=n&&function(e){var t={},n=-1;for(;++n<e.length;)t[e[n].toLowerCase()]=e[n];return t}(n);return function(n,a){for(var i,o,s=-1,l=arguments.length,c=new Array(l>2?l-2:0),u=2;u<l;u++)c[u-2]=arguments[u];if(void 0===n||null===n)i={type:"root",children:[]},c.unshift(a);else if((i=Oi(n,t)).tagName=i.tagName.toLowerCase(),r&&Pi.call(r,i.tagName)&&(i.tagName=r[i.tagName]),Mi(a,i.tagName))for(o in a)Pi.call(a,o)&&Fi(e,i.properties,o,a[o]);else c.unshift(a);for(;++s<c.length;)Ui(i.children,c[s]);return"element"===i.type&&"template"===i.tagName&&(i.content={type:"root",children:i.children},i.children=[]),i}}function Mi(e,t){return null!==e&&void 0!==e&&"object"===typeof e&&!Array.isArray(e)&&("input"===t||!e.type||"string"!==typeof e.type||(!("children"in e)||!Array.isArray(e.children))&&("button"===t?Li.has(e.type.toLowerCase()):!("value"in e)))}function Fi(e,t,n,r){var a,i=mr(e,n),o=-1;if(void 0!==r&&null!==r){if("number"===typeof r){if(Number.isNaN(r))return;a=r}else a="boolean"===typeof r?r:"string"===typeof r?i.spaceSeparated?br(r):i.commaSeparated?yr(r):i.commaOrSpaceSeparated?br(yr(r).join(" ")):Bi(i,i.property,r):Array.isArray(r)?r.concat():"style"===i.property?function(e){var t,n=[];for(t in e)Pi.call(e,t)&&n.push([t,e[t]].join(": "));return n.join("; ")}(r):String(r);if(Array.isArray(a)){for(var s=[];++o<a.length;)s[o]=Bi(i,i.property,a[o]);a=s}"className"===i.property&&Array.isArray(t.className)&&(a=t.className.concat(a)),t[i.property]=a}}function Ui(e,t){var n=-1;if(void 0===t||null===t);else if("string"===typeof t||"number"===typeof t)e.push({type:"text",value:String(t)});else if(Array.isArray(t))for(;++n<t.length;)Ui(e,t[n]);else{if("object"!==typeof t||!("type"in t))throw new Error("Expected node, nodes, or string, got `"+t+"`");"root"===t.type?Ui(e,t.children):e.push(t)}}function Bi(e,t,n){if("string"===typeof n){if(e.number&&n&&!Number.isNaN(Number(n)))return Number(n);if((e.boolean||e.overloadedBoolean)&&(""===n||Dn(n)===Dn(t)))return!0}return n}var Gi=Di(or,"g",["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","solidColor","textArea","textPath"]),Hi=Di(ir,"div");var zi={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},$i={}.hasOwnProperty,Vi={"#document":Wi,"#document-fragment":Wi,"#text":function(e,t){return{type:"text",value:t.value}},"#comment":function(e,t){return{type:"comment",value:t.data}},"#documentType":function(){return{type:"doctype"}}};function ji(e,t){var n,r=e.schema,a=$i.call(Vi,t.nodeName)?Vi[t.nodeName]:qi;"tagName"in t&&(e.schema=t.namespaceURI===zi.svg?or:ir),"childNodes"in t&&(n=function(e,t){var n=-1,r=[];for(;++n<t.length;)r[n]=ji(e,t[n]);return r}(e,t.childNodes));var i=a(e,t,n);if("sourceCodeLocation"in t&&t.sourceCodeLocation&&e.file){var o=function(e,t,n){var r=Ki(n);if("element"===t.type){var a=t.children[t.children.length-1];if(r&&!n.endTag&&a&&a.position&&a.position.end&&(r.end=Object.assign({},a.position.end)),e.verbose){var i,o={};for(i in n.attrs)$i.call(n.attrs,i)&&(o[mr(e.schema,i).property]=Ki(n.attrs[i]));t.data={position:{opening:Ki(n.startTag),closing:n.endTag?Ki(n.endTag):null,properties:o}}}}return r}(e,i,t.sourceCodeLocation);o&&(e.location=!0,i.position=o)}return e.schema=r,i}function Wi(e,t,n){var r={type:"root",children:n,data:{quirksMode:"quirks"===t.mode||"limited-quirks"===t.mode}};if(e.file&&e.location){var a=String(e.file),i=function(e){for(var t=String(e),n=[],r=/\r?\n|\r/g;r.test(t);)n.push(r.lastIndex);return n.push(t.length+1),{toPoint:function(e){var t=-1;if(e>-1&&e<n[n.length-1])for(;++t<n.length;)if(n[t]>e)return{line:t+1,column:e-(n[t-1]||0)+1,offset:e};return{line:void 0,column:void 0,offset:void 0}},toOffset:function(e){var t,r=e&&e.line,a=e&&e.column;return"number"!==typeof r||"number"!==typeof a||Number.isNaN(r)||Number.isNaN(a)||!(r-1 in n)||(t=(n[r-2]||0)+a-1||0),t>-1&&t<n[n.length-1]?t:-1}}}(a);r.position={start:i.toPoint(0),end:i.toPoint(a.length)}}return r}function qi(e,t,n){for(var r="svg"===e.schema.space?Gi:Hi,a=-1,i={};++a<t.attrs.length;){var o=t.attrs[a];i[(o.prefix?o.prefix+":":"")+o.name]=o.value}var s=r(t.tagName,i,n);if("template"===s.tagName&&"content"in t){var l=t.sourceCodeLocation,c=l&&l.startTag&&Ki(l.startTag),u=l&&l.endTag&&Ki(l.endTag),d=ji(e,t.content);c&&u&&e.file&&(d.position={start:c.end,end:u.start}),s.content=d}return s}function Ki(e){var t=Xi({line:e.startLine,column:e.startCol,offset:e.startOffset}),n=Xi({line:e.endLine,column:e.endCol,offset:e.endOffset});return t||n?{start:t,end:n}:null}function Xi(e){return e.line&&e.column?e:null}function Yi(e){return"messages"in e}var Zi=n(6426),Qi=zi,Ji=fr,eo={}.hasOwnProperty,to=an("root"),no=an("element"),ro=an("text");function ao(e,t,n){if("function"!==typeof e)throw new TypeError("h is not a function");var r,a,i=function(e){var t=e("div",{});return Boolean(t&&("_owner"in t||"_store"in t)&&(void 0===t.key||null===t.key))}(e),o=function(e){var t=e("div",{});return Boolean(t&&t.context&&t.context._isVue)}(e),s=function(e){return"VirtualNode"===e("div",{}).type}(e);if("string"===typeof n||"boolean"===typeof n?(r=n,n={}):(n||(n={}),r=n.prefix),to(t))a=1===t.children.length&&no(t.children[0])?t.children[0]:{type:"element",tagName:"div",properties:{},children:t.children};else{if(!no(t))throw new Error("Expected root or element, not `"+(t&&t.type||t)+"`");a=t}return io(e,a,{schema:"svg"===n.space?or:ir,prefix:void 0===r||null===r?i||o||s?"h-":null:"string"===typeof r?r:r?"h-":null,key:0,react:i,vue:o,vdom:s,hyperscript:so(e)})}function io(e,t,n){var r,a=n.schema,i=a,o=t.tagName,s={},l=[],c=-1;for(r in"html"===a.space&&"svg"===o.toLowerCase()&&(i=or,n.schema=i),t.properties)t.properties&&eo.call(t.properties,r)&&oo(s,r,t.properties[r],n,o);if(n.vdom&&("html"===i.space?o=o.toUpperCase():i.space&&(s.namespace=Qi[i.space])),n.prefix&&(n.key++,s.key=n.prefix+n.key),t.children)for(;++c<t.children.length;){var u=t.children[c];no(u)?l.push(io(e,u,n)):ro(u)&&l.push(u.value)}return n.schema=a,l.length>0?e.call(t,o,s,l):e.call(t,o,s)}function oo(e,t,n,r,a){var o,s=mr(r.schema,t);void 0===n||null===n||"number"===typeof n&&Number.isNaN(n)||!1===n&&(r.vue||r.vdom||r.hyperscript)||!n&&s.boolean&&(r.vue||r.vdom||r.hyperscript)||(Array.isArray(n)&&(n=s.commaSeparated?Tr(n):Er(n)),s.boolean&&r.hyperscript&&(n=""),"style"===s.property&&"string"===typeof n&&(r.react||r.vue||r.vdom)&&(n=function(e,t){var n={};try{Zi(e,(function(e,t){"-ms-"===e.slice(0,4)&&(e="ms-"+e.slice(4)),n[e.replace(/-([a-z])/g,(function(e,t){return t.toUpperCase()}))]=t}))}catch(r){throw r.message=t+"[style]"+r.message.slice("undefined".length),r}return n}(n,a)),r.vue?"style"!==s.property&&(o="attrs"):s.mustUseProperty||(r.vdom?"style"!==s.property&&(o="attributes"):r.hyperscript&&(o="attrs")),o?e[o]=Object.assign(e[o]||{},i({},s.attribute,n)):s.space&&r.react?e[Ji[s.property]||s.property]=n:e[s.attribute]=n)}function so(e){return"context"in e&&"cleanup"in e}var lo={}.hasOwnProperty;function co(e,t){var n=t||{};function r(t){var n=r.invalid,a=r.handlers;if(t&&lo.call(t,e)&&(n=lo.call(a,t[e])?a[t[e]]:r.unknown),n)return n.apply(this,arguments)}return r.handlers=n.handlers||{},r.invalid=n.invalid,r.unknown=n.unknown,r}var uo={}.hasOwnProperty,po=co("type",{handlers:{root:function(e,t){var n={nodeName:"#document",mode:(e.data||{}).quirksMode?"quirks":"no-quirks",childNodes:[]};return n.childNodes=mo(e.children,n,t),go(e,n)},element:function(e,t){var n=t.space;return ao((function(n,r){var a,i,o,s,l,c=[];for(o in r)uo.call(r,o)&&!1!==r[o]&&((a=mr(t,o)).boolean&&!r[o]||(i={name:o,value:!0===r[o]?"":String(r[o])},a.space&&"html"!==a.space&&"svg"!==a.space&&((s=o.indexOf(":"))<0?i.prefix="":(i.name=o.slice(s+1),i.prefix=o.slice(0,s)),i.namespace=zi[a.space]),c.push(i)));"html"===t.space&&"svg"===e.tagName&&(t=or);(l=go(e,{nodeName:n,tagName:n,attrs:c,namespaceURI:zi[t.space],childNodes:[],parentNode:void 0})).childNodes=mo(e.children,l,t),"template"===n&&(l.content=function(e,t){var n={nodeName:"#document-fragment",childNodes:[]};return n.childNodes=mo(e.children,n,t),go(e,n)}(e.content,t));return l}),Object.assign({},e,{children:[]}),{space:n})},text:function(e){return go(e,{nodeName:"#text",value:e.value,parentNode:void 0})},comment:function(e){return go(e,{nodeName:"#comment",data:e.value,parentNode:void 0})},doctype:function(e){return go(e,{nodeName:"#documentType",name:"html",publicId:"",systemId:"",parentNode:void 0})}}});function mo(e,t,n){var r,a=-1,i=[];if(e)for(;++a<e.length;)(r=po(e[a],n)).parentNode=t,i.push(r);return i}function go(e,t){var n=e.position;return n&&n.start&&n.end&&(t.sourceCodeLocation={startLine:n.start.line,startCol:n.start.column,startOffset:n.start.offset,endLine:n.end.line,endCol:n.end.column,endOffset:n.end.offset}),t}var ho=["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","isindex","keygen","link","menuitem","meta","nextid","param","source","track","wbr"],fo="END_TAG_TOKEN",bo={sourceCodeLocationInfo:!0,scriptingEnabled:!1},Eo=function e(t,n,r){var a,i,o,l,c,u,d=-1,p=new xi(bo),m=co("type",{handlers:{root:function(e){h(e.children)},element:function(e){E(),p._processToken(yo(e),zi.html),h(e.children),ho.includes(e.tagName)||(E(),p._processToken(function(e){var t=Object.assign(vo(e));return t.startTag=Object.assign({},t),{type:fo,tagName:e.tagName,attrs:[],location:t}}(e)))},text:function(e){E(),p._processToken({type:"CHARACTER_TOKEN",chars:e.value,location:vo(e)})},comment:f,doctype:function(e){E(),p._processToken({type:"DOCTYPE_TOKEN",name:"html",forceQuirks:!1,publicId:"",systemId:"",location:vo(e)})},raw:function(e){var t=dn(e),n=t.line||1,r=t.column||1,a=t.offset||0;if(!o)throw new Error("Expected `preprocessor`");if(!i)throw new Error("Expected `tokenizer`");if(!l)throw new Error("Expected `posTracker`");if(!c)throw new Error("Expected `locationTracker`");o.html=void 0,o.pos=-1,o.lastGapPos=-1,o.lastCharPos=-1,o.gapStack=[],o.skipNextNewLine=!1,o.lastChunkWritten=!1,o.endOfChunkHit=!1,l.isEol=!1,l.lineStartPos=1-r,l.droppedBufferSize=a,l.offset=0,l.col=1,l.line=n,c.currentAttrLocation=void 0,c.ctLoc=vo(e),i.write(e.value),p._runParsingLoop(null),("NAMED_CHARACTER_REFERENCE_STATE"===i.state||"NUMERIC_CHARACTER_REFERENCE_END_STATE"===i.state)&&(o.lastChunkWritten=!0,i[i.state](i._consume()))}},unknown:So});if(u=n,Boolean(u&&!("message"in u&&"messages"in u))&&(r=n,n=void 0),r&&r.passThrough)for(;++d<r.passThrough.length;)m.handlers[r.passThrough[d]]=b;var g=function(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Yi(r)?(n=r,t={}):(n=r.file,t=r),ji({schema:"svg"===t.space?or:ir,file:n,verbose:t.verbose,location:!1},e)}(function(e){var t="root"===e.type?e.children[0]:e;return Boolean(t&&("doctype"===t.type||"element"===t.type&&"html"===t.tagName))}(t)?function(){var e=p.treeAdapter.createDocument();if(p._bootstrap(e,void 0),!(i=p.tokenizer))throw new Error("Expected `tokenizer`");return o=i.preprocessor,c=i.__mixins[0],l=c.posTracker,m(t),E(),e}():function(){var e={nodeName:"template",tagName:"template",attrs:[],namespaceURI:zi.html,childNodes:[]},n={nodeName:"documentmock",tagName:"documentmock",attrs:[],namespaceURI:zi.html,childNodes:[]},r={nodeName:"#document-fragment",childNodes:[]};if(p._bootstrap(n,e),p._pushTmplInsertionMode("IN_TEMPLATE_MODE"),p._initTokenizerForFragmentParsing(),p._insertFakeRootElement(),p._resetInsertionMode(),p._findFormInFragmentContext(),!(i=p.tokenizer))throw new Error("Expected `tokenizer`");return o=i.preprocessor,c=i.__mixins[0],l=c.posTracker,m(t),E(),p._adoptNodes(n.childNodes[0],r),r}(),n);return a&&un(g,"comment",(function(e,t,n){var r=e;if(r.value.stitch&&null!==n&&null!==t)return n.children[t]=r.value.stitch,t})),"root"!==t.type&&"root"===g.type&&1===g.children.length?g.children[0]:g;function h(e){var t=-1;if(e)for(;++t<e.length;)m(e[t])}function f(e){E(),p._processToken({type:"COMMENT_TOKEN",data:e.value,location:vo(e)})}function b(t){a=!0,f({type:"comment",value:{stitch:"children"in t?s(s({},t),{},{children:e({type:"root",children:t.children},n,r).children}):s({},t)}})}function E(){if(!i)throw new Error("Expected `tokenizer`");if(!l)throw new Error("Expected `posTracker`");var e=i.currentCharacterToken;e&&(e.location.endLine=l.line,e.location.endCol=l.col+1,e.location.endOffset=l.offset+1,p._processToken(e)),i.tokenQueue=[],i.state="DATA_STATE",i.returnState="",i.charRefCode=-1,i.tempBuff=[],i.lastStartTagName="",i.consumedAfterSnapshot=-1,i.active=!1,i.currentCharacterToken=void 0,i.currentToken=void 0,i.currentAttr=void 0}};function yo(e){var t=Object.assign(vo(e));return t.startTag=Object.assign({},t),{type:"START_TAG_TOKEN",tagName:e.tagName,selfClosing:!1,attrs:To(e),location:t}}function To(e){return function(e,t){return po(e,"svg"===t?or:ir)}({tagName:e.tagName,type:"element",properties:e.properties,children:[]}).attrs}function So(e){throw new Error("Cannot compile `"+e.type+"` node")}function vo(e){var t=dn(e),n=pn(e);return{startLine:t.line,startCol:t.column,startOffset:t.offset,endLine:n.line,endCol:n.column,endOffset:n.offset}}function Ao(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t,n){return Eo(t,n,e)}}var ko=n(184),wo=function(e){return(0,ko.jsxs)("svg",s(s({height:512,style:{enableBackground:"new 0 0 512 512"},viewBox:"0 0 512 512",width:512,xmlSpace:"preserve",xmlns:"http://www.w3.org/2000/svg",role:"img"},e),{},{children:[(0,ko.jsx)("path",{d:"m184.7 413.1 2.1-1.8 156.5-136c5.3-4.6 8.6-11.5 8.6-19.2 0-7.7-3.4-14.6-8.6-19.2L187.1 101l-2.6-2.3C182 97 179 96 175.8 96c-8.7 0-15.8 7.4-15.8 16.6v286.8c0 9.2 7.1 16.6 15.8 16.6 3.3 0 6.4-1.1 8.9-2.9z"}),(0,ko.jsx)("path",{style:{fill:"#fff",strokeWidth:.498539},d:"M171.101 414.868c-4.514-1.611-8.561-5.771-10.18-10.464-.834-2.42-1.217-288.516-.393-293.894.907-5.921 3.926-10.216 8.895-12.657 3.95-1.94 9.155-1.937 12.793.007 3.343 1.785 161.905 139.906 164.376 143.184 3.021 4.01 4.472 8.2 4.757 13.742.186 3.605.037 5.49-.609 7.727-1.173 4.064-3.454 8.202-5.94 10.774-1.146 1.186-37.704 33.115-81.239 70.955-55.39 48.142-79.907 69.15-81.66 69.97-3.43 1.606-7.454 1.85-10.8.656z"})]}))},_o=function(e){return(0,ko.jsxs)("svg",s(s({height:512,style:{enableBackground:"new 0 0 512 512"},viewBox:"0 0 512 512",width:512,xmlSpace:"preserve",xmlns:"http://www.w3.org/2000/svg",role:"img"},e),{},{children:[(0,ko.jsx)("path",{d:"m98.9 184.7 1.8 2.1 136 156.5c4.6 5.3 11.5 8.6 19.2 8.6 7.7 0 14.6-3.4 19.2-8.6L411 187.1l2.3-2.6c1.7-2.5 2.7-5.5 2.7-8.7 0-8.7-7.4-15.8-16.6-15.8H112.6c-9.2 0-16.6 7.1-16.6 15.8 0 3.3 1.1 6.4 2.9 8.9z"}),(0,ko.jsx)("path",{style:{fill:"#fff",strokeWidth:.498539},d:"M248.273 350.336c-4.083-1.397-7.187-3.22-9.662-5.673-1.064-1.054-32.92-37.549-70.793-81.098-48.133-55.35-69.23-79.958-70.096-81.76-1.803-3.758-1.753-8.546.131-12.382 2.335-4.755 6.517-7.824 12.058-8.848 4.16-.769 288.018-.769 292.178 0 5.54 1.024 9.723 4.093 12.058 8.848 1.847 3.762 1.927 9.146.186 12.495-1.265 2.433-139.44 161.51-142.47 164.02-6.161 5.108-16.1 6.96-23.59 4.398z"})]}))},Co=["node","inline","className","children"];function No(e){var t=e.valueToCopy;return(0,ko.jsx)("button",{onClick:function(){return e=t,void navigator.clipboard.writeText(e);var e},children:"Copy"})}var Io=function(){var e,t=h((0,r.useState)(""),2),n=t[0],a=t[1],i=h((0,r.useState)("all"),2),o=i[0],c=i[1],u=h((0,r.useState)([]),2),d=u[0],m=u[1],g=h((0,r.useState)([]),2),b=g[0],E=g[1],y=(0,r.useCallback)((function(e){var t=d.includes(e)?d.filter((function(t){return t!==e})):[].concat(p(d),[e]);m(t)}),[d]),T=(0,r.useCallback)((function(e){var t=b.includes(e)?b.filter((function(t){return t!==e})):[].concat(p(b),[e]);E(t)}),[b]),S=n.length||"all"!==o?function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"all";if("all"===n&&t.length)return e;var r={};if(r.items="all"!==n?e.items.filter((function(e){return e.type===n})):e.items,t.length)return r;var a={};return a.items=t.length?r.items.filter((function(e){return e.title.toLowerCase().includes(t.toLowerCase())||e.content.toLowerCase().includes(t.toLowerCase())})):r.items,a}(f,n,o):f;return(0,ko.jsxs)("div",{className:"App",children:[(0,ko.jsxs)("div",{className:"inputFilter",children:[(0,ko.jsxs)("span",{align:"center",children:[(0,ko.jsx)("input",{type:"text",onChange:function(e){!function(e,t,n){var r,a=this}(a(e.target.value),300)},value:n})," Search"]}),(0,ko.jsxs)("span",{align:"center",children:[" \udb40\udc5d \udb40\udc5d \udb40\udc5d \udb40\udc5d \udb40\udc5d \udb40\udc5d \udb40\udc5d \udb40\udc5d \udb40\udc5d \udb40\udc5d \udb40\udc5d",(0,ko.jsx)("a",{href:"https://github.com/tteck/Proxmox/blob/main/LICENSE",children:(0,ko.jsx)("img",{alt:"License MIT",src:"https://img.shields.io/badge/license-MIT-blue"})})," ",(0,ko.jsx)("a",{href:"https://github.com/tteck/Proxmox/discussions",children:(0,ko.jsx)("img",{src:"https://img.shields.io/badge/%F0%9F%92%AC-Discussions-teal",alt:"Discussions"})})," ",(0,ko.jsx)("a",{href:"https://github.com/tteck/Proxmox/blob/main/CHANGELOG.md",children:(0,ko.jsx)("img",{src:"https://img.shields.io/badge/\ud83d\udd36-Changelog-maroon",alt:"Changelog"})})," ",(0,ko.jsx)("a",{href:"https://github.com/tteck/Proxmox/blob/main/USER_SUBMITTED_GUIDES.md",children:(0,ko.jsx)("img",{src:"https://img.shields.io/badge/\ud83e\udded-Guides-navy",alt:"Guides"})})," ",(0,ko.jsx)("a",{href:"https://ko-fi.com/D1D7EP4GF",children:(0,ko.jsx)("img",{src:"https://img.shields.io/badge/%E2%98%95-Buy%20me%20a%20coffee-brown",alt:"Buy me a coffee"})})]})]}),0===S.items.length&&(0,ko.jsxs)("div",{children:["No items match your criteria ",(0,ko.jsx)("button",{onClick:function(){a(""),c("all")},children:"Clear Filters"})]}),(0,ko.jsxs)("div",{children:[(0,ko.jsx)("span",{onClick:function(){E(f.categories.map((function(e){return e.title})))},children:"  \udb40\udc20 \udb40\udc20 \udb40\udc20\u2795 \udb40\udc20 \udb40\udc20"}),"  \udb40\udc20 ",(0,ko.jsx)("span",{onClick:function(){m([]),E([])},children:" \udb40\udc20 \udb40\udc20 \udb40\udc20\u2796 \udb40\udc20 \udb40\udc20"})]}),null===(e=S.items)||void 0===e?void 0:e.map((function(e,t){return(0,ko.jsxs)("div",{className:"App-items",children:[(0===t||S.items[0===t?0:t-1].category!==e.category)&&(0,ko.jsxs)("div",{onClick:function(){return T(e.category)},className:"itemCategory",children:[e.category,n&&e.title.toLowerCase().includes(n.toLowerCase())||d.includes(e.title)||b.includes(e.category)?(0,ko.jsx)(_o,{className:"navArrow",alt:"Expanded"}):(0,ko.jsx)(wo,{className:"navArrow",alt:"Collapsed"})," "]}),(n&&e.title.toLowerCase().includes(n.toLowerCase())||d.includes(e.title)||b.includes(e.category))&&(0,ko.jsx)("span",{onClick:function(){return y(e.title)},className:"itemTitle",children:e.title}),(n&&e.title.toLowerCase().includes(n.toLowerCase())||d.includes(e.title))&&(0,ko.jsx)("div",{className:"item",children:(0,ko.jsx)(Lr,{children:e.content,remarkPlugins:[Ii],rehypePlugins:[Ao],components:{code:function(e){e.node;var t=e.inline,n=e.className,r=e.children,a=l(e,Co),i=/language-(\w+)/.exec(n||"");return!t&&i?(0,ko.jsxs)(ko.Fragment,{children:[(0,ko.jsx)(No,{valueToCopy:String(r)}),(0,ko.jsx)(aa,s({children:String(r).replace(/\n$/,""),style:ia,language:i[1],PreTag:"div"},a))]}):(0,ko.jsx)("code",s(s({className:n},a),{},{children:r}))}}})})]},e.title)}))]})};a.createRoot(document.getElementById("root")).render((0,ko.jsx)(r.StrictMode,{children:(0,ko.jsx)(Io,{})}))}()}();
-//# sourceMappingURL=main.43ec3d95.js.map
\ No newline at end of file
+/*! For license information please see main.12b83e58.js.LICENSE.txt */
+!function(){var e={1132:function(e){"use strict";var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=Object.defineProperty,a=Object.getOwnPropertyDescriptor,i=function(e){return"function"===typeof Array.isArray?Array.isArray(e):"[object Array]"===n.call(e)},o=function(e){if(!e||"[object Object]"!==n.call(e))return!1;var r,a=t.call(e,"constructor"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!a&&!i)return!1;for(r in e);return"undefined"===typeof r||t.call(e,r)},s=function(e,t){r&&"__proto__"===t.name?r(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,n){if("__proto__"===n){if(!t.call(e,n))return;if(a)return a(e,n).value}return e[n]};e.exports=function e(){var t,n,r,a,c,u,d=arguments[0],p=1,m=arguments.length,g=!1;for("boolean"===typeof d&&(g=d,d=arguments[1]||{},p=2),(null==d||"object"!==typeof d&&"function"!==typeof d)&&(d={});p<m;++p)if(null!=(t=arguments[p]))for(n in t)r=l(d,n),d!==(a=l(t,n))&&(g&&a&&(o(a)||(c=i(a)))?(c?(c=!1,u=r&&i(r)?r:[]):u=r&&o(r)?r:{},s(d,{name:n,newValue:e(g,u,a)})):"undefined"!==typeof a&&s(d,{name:n,newValue:a}));return d}},2597:function(e){"use strict";e.exports=function(e,n){var r,a,i,o=e||"",s=n||"div",l={},c=0;for(;c<o.length;)t.lastIndex=c,i=t.exec(o),(r=o.slice(c,i?i.index:o.length))&&(a?"#"===a?l.id=r:l.className?l.className.push(r):l.className=[r]:s=r,c+=r.length),i&&(a=i[0],c++);return{type:"element",tagName:s,properties:l,children:[]}};var t=/[#.]/g},1174:function(e,t,n){"use strict";var r=n(3074),a=n(3877),i=n(2597),o=n(2533).Q,s=n(4791).Q;e.exports=function(e,t,n){var a=n?function(e){var t,n=e.length,r=-1,a={};for(;++r<n;)a[(t=e[r]).toLowerCase()]=t;return a}(n):null;return function(e,n){var r,o=i(e,t),s=Array.prototype.slice.call(arguments,2),d=o.tagName.toLowerCase();o.tagName=a&&l.call(a,d)?a[d]:d,n&&c(n,o)&&(s.unshift(n),n=null);if(n)for(r in n)p(o.properties,r,n[r]);u(o.children,s),"template"===o.tagName&&(o.content={type:"root",children:o.children},o.children=[]);return o};function p(t,n,a){var i,l,c;null!==a&&void 0!==a&&a===a&&(l=(i=r(e,n)).property,"string"===typeof(c=a)&&(i.spaceSeparated?c=o(c):i.commaSeparated?c=s(c):i.commaOrSpaceSeparated&&(c=o(s(c).join(" ")))),"style"===l&&"string"!==typeof a&&(c=function(e){var t,n=[];for(t in e)n.push([t,e[t]].join(": "));return n.join("; ")}(c)),"className"===l&&t.className&&(c=t.className.concat(c)),t[l]=function(e,t,n){var r,a,i;if("object"!==typeof n||!("length"in n))return d(e,t,n);a=n.length,r=-1,i=[];for(;++r<a;)i[r]=d(e,t,n[r]);return i}(i,l,c))}};var l={}.hasOwnProperty;function c(e,t){return"string"===typeof e||"length"in e||function(e,t){var n=t.type;if("input"===e||!n||"string"!==typeof n)return!1;if("object"===typeof t.children&&"length"in t.children)return!0;if(n=n.toLowerCase(),"button"===e)return"menu"!==n&&"submit"!==n&&"reset"!==n&&"button"!==n;return"value"in t}(t.tagName,e)}function u(e,t){var n,r;if("string"!==typeof t&&"number"!==typeof t)if("object"===typeof t&&"length"in t)for(n=-1,r=t.length;++n<r;)u(e,t[n]);else{if("object"!==typeof t||!("type"in t))throw new Error("Expected node, nodes, or string, got `"+t+"`");e.push(t)}else e.push({type:"text",value:String(t)})}function d(e,t,n){var r=n;return e.number||e.positiveNumber?isNaN(r)||""===r||(r=Number(r)):(e.boolean||e.overloadedBoolean)&&("string"!==typeof r||""!==r&&a(n)!==a(t)||(r=!0)),r}},8671:function(e,t,n){"use strict";var r=n(737),a=n(1174)(r,"div");a.displayName="html",e.exports=a},6913:function(e,t,n){"use strict";e.exports=n(8671)},4791:function(e,t){"use strict";t.Q=function(e){var t,n=[],r=String(e||""),a=r.indexOf(","),i=0,o=!1;for(;!o;)-1===a&&(a=r.length,o=!0),!(t=r.slice(i,a).trim())&&o||n.push(t),i=a+1,a=r.indexOf(",",i);return n}},3074:function(e,t,n){"use strict";var r=n(3877),a=n(3991),i=n(3416),o="data";e.exports=function(e,t){var n=r(t),p=t,m=i;if(n in e.normal)return e.property[e.normal[n]];n.length>4&&n.slice(0,4)===o&&s.test(t)&&("-"===t.charAt(4)?p=function(e){var t=e.slice(5).replace(l,d);return o+t.charAt(0).toUpperCase()+t.slice(1)}(t):t=function(e){var t=e.slice(4);if(l.test(t))return e;"-"!==(t=t.replace(c,u)).charAt(0)&&(t="-"+t);return o+t}(t),m=a);return new m(p,t)};var s=/^data[-\w.:]+$/i,l=/-[a-z]/g,c=/[A-Z]/g;function u(e){return"-"+e.toLowerCase()}function d(e){return e.charAt(1).toUpperCase()}},737:function(e,t,n){"use strict";var r=n(579),a=n(2519),i=n(6244),o=n(8446),s=n(7155),l=n(8973);e.exports=r([i,a,o,s,l])},7155:function(e,t,n){"use strict";var r=n(4530),a=n(5463),i=r.booleanish,o=r.number,s=r.spaceSeparated;e.exports=a({transform:function(e,t){return"role"===t?t:"aria-"+t.slice(4).toLowerCase()},properties:{ariaActiveDescendant:null,ariaAtomic:i,ariaAutoComplete:null,ariaBusy:i,ariaChecked:i,ariaColCount:o,ariaColIndex:o,ariaColSpan:o,ariaControls:s,ariaCurrent:null,ariaDescribedBy:s,ariaDetails:null,ariaDisabled:i,ariaDropEffect:s,ariaErrorMessage:null,ariaExpanded:i,ariaFlowTo:s,ariaGrabbed:i,ariaHasPopup:null,ariaHidden:i,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:s,ariaLevel:o,ariaLive:null,ariaModal:i,ariaMultiLine:i,ariaMultiSelectable:i,ariaOrientation:null,ariaOwns:s,ariaPlaceholder:null,ariaPosInSet:o,ariaPressed:i,ariaReadOnly:i,ariaRelevant:null,ariaRequired:i,ariaRoleDescription:s,ariaRowCount:o,ariaRowIndex:o,ariaRowSpan:o,ariaSelected:i,ariaSetSize:o,ariaSort:null,ariaValueMax:o,ariaValueMin:o,ariaValueNow:o,ariaValueText:null,role:null}})},8973:function(e,t,n){"use strict";var r=n(4530),a=n(5463),i=n(6101),o=r.boolean,s=r.overloadedBoolean,l=r.booleanish,c=r.number,u=r.spaceSeparated,d=r.commaSeparated;e.exports=a({space:"html",attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},transform:i,mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:d,acceptCharset:u,accessKey:u,action:null,allow:null,allowFullScreen:o,allowPaymentRequest:o,allowUserMedia:o,alt:null,as:null,async:o,autoCapitalize:null,autoComplete:u,autoFocus:o,autoPlay:o,capture:o,charSet:null,checked:o,cite:null,className:u,cols:c,colSpan:null,content:null,contentEditable:l,controls:o,controlsList:u,coords:c|d,crossOrigin:null,data:null,dateTime:null,decoding:null,default:o,defer:o,dir:null,dirName:null,disabled:o,download:s,draggable:l,encType:null,enterKeyHint:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:o,formTarget:null,headers:u,height:c,hidden:o,high:c,href:null,hrefLang:null,htmlFor:u,httpEquiv:u,id:null,imageSizes:null,imageSrcSet:d,inputMode:null,integrity:null,is:null,isMap:o,itemId:null,itemProp:u,itemRef:u,itemScope:o,itemType:u,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:o,low:c,manifest:null,max:null,maxLength:c,media:null,method:null,min:null,minLength:c,multiple:o,muted:o,name:null,nonce:null,noModule:o,noValidate:o,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforePrint:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextMenu:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:o,optimum:c,pattern:null,ping:u,placeholder:null,playsInline:o,poster:null,preload:null,readOnly:o,referrerPolicy:null,rel:u,required:o,reversed:o,rows:c,rowSpan:c,sandbox:u,scope:null,scoped:o,seamless:o,selected:o,shape:null,size:c,sizes:null,slot:null,span:c,spellCheck:l,src:null,srcDoc:null,srcLang:null,srcSet:d,start:c,step:null,style:null,tabIndex:c,target:null,title:null,translate:null,type:null,typeMustMatch:o,useMap:null,value:l,width:c,wrap:null,align:null,aLink:null,archive:u,axis:null,background:null,bgColor:null,border:c,borderColor:null,bottomMargin:c,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:o,declare:o,event:null,face:null,frame:null,frameBorder:null,hSpace:c,leftMargin:c,link:null,longDesc:null,lowSrc:null,marginHeight:c,marginWidth:c,noResize:o,noHref:o,noShade:o,noWrap:o,object:null,profile:null,prompt:null,rev:null,rightMargin:c,rules:null,scheme:null,scrolling:l,standby:null,summary:null,text:null,topMargin:c,valueType:null,version:null,vAlign:null,vLink:null,vSpace:c,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:o,disableRemotePlayback:o,prefix:null,property:null,results:c,security:null,unselectable:null}})},6101:function(e,t,n){"use strict";var r=n(846);e.exports=function(e,t){return r(e,t.toLowerCase())}},846:function(e){"use strict";e.exports=function(e,t){return t in e?e[t]:t}},5463:function(e,t,n){"use strict";var r=n(3877),a=n(4243),i=n(3991);e.exports=function(e){var t,n,o=e.space,s=e.mustUseProperty||[],l=e.attributes||{},c=e.properties,u=e.transform,d={},p={};for(t in c)n=new i(t,u(l,t),c[t],o),-1!==s.indexOf(t)&&(n.mustUseProperty=!0),d[t]=n,p[r(t)]=t,p[r(n.attribute)]=t;return new a(d,p,o)}},3991:function(e,t,n){"use strict";var r=n(3416),a=n(4530);e.exports=s,s.prototype=new r,s.prototype.defined=!0;var i=["boolean","booleanish","overloadedBoolean","number","commaSeparated","spaceSeparated","commaOrSpaceSeparated"],o=i.length;function s(e,t,n,s){var c,u=-1;for(l(this,"space",s),r.call(this,e,t);++u<o;)l(this,c=i[u],(n&a[c])===a[c])}function l(e,t,n){n&&(e[t]=n)}},3416:function(e){"use strict";e.exports=n;var t=n.prototype;function n(e,t){this.property=e,this.attribute=t}t.space=null,t.attribute=null,t.property=null,t.boolean=!1,t.booleanish=!1,t.overloadedBoolean=!1,t.number=!1,t.commaSeparated=!1,t.spaceSeparated=!1,t.commaOrSpaceSeparated=!1,t.mustUseProperty=!1,t.defined=!1},579:function(e,t,n){"use strict";var r=n(5887),a=n(4243);e.exports=function(e){var t,n,i=e.length,o=[],s=[],l=-1;for(;++l<i;)t=e[l],o.push(t.property),s.push(t.normal),n=t.space;return new a(r.apply(null,o),r.apply(null,s),n)}},4243:function(e){"use strict";e.exports=n;var t=n.prototype;function n(e,t,n){this.property=e,this.normal=t,n&&(this.space=n)}t.space=null,t.normal={},t.property={}},4530:function(e,t){"use strict";var n=0;function r(){return Math.pow(2,++n)}t.boolean=r(),t.booleanish=r(),t.overloadedBoolean=r(),t.number=r(),t.spaceSeparated=r(),t.commaSeparated=r(),t.commaOrSpaceSeparated=r()},2519:function(e,t,n){"use strict";var r=n(5463);e.exports=r({space:"xlink",transform:function(e,t){return"xlink:"+t.slice(5).toLowerCase()},properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null}})},6244:function(e,t,n){"use strict";var r=n(5463);e.exports=r({space:"xml",transform:function(e,t){return"xml:"+t.slice(3).toLowerCase()},properties:{xmlLang:null,xmlBase:null,xmlSpace:null}})},8446:function(e,t,n){"use strict";var r=n(5463),a=n(6101);e.exports=r({space:"xmlns",attributes:{xmlnsxlink:"xmlns:xlink"},transform:a,properties:{xmlns:null,xmlnsXLink:null}})},3877:function(e){"use strict";e.exports=function(e){return e.toLowerCase()}},2533:function(e,t){"use strict";t.Q=function(e){var t=String(e||"").trim();return""===t?[]:t.split(n)};var n=/[ \t\n\r\f]+/g},1065:function(e){var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,r=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,s=/^[;\s]*/,l=/^\s+|\s+$/g,c="";function u(e){return e?e.replace(l,c):c}e.exports=function(e,l){if("string"!==typeof e)throw new TypeError("First argument must be a string");if(!e)return[];l=l||{};var d=1,p=1;function m(e){var t=e.match(n);t&&(d+=t.length);var r=e.lastIndexOf("\n");p=~r?e.length-r:p+e.length}function g(){var e={line:d,column:p};return function(t){return t.position=new h(e),y(),t}}function h(e){this.start=e,this.end={line:d,column:p},this.source=l.source}h.prototype.content=e;var f=[];function b(t){var n=new Error(l.source+":"+d+":"+p+": "+t);if(n.reason=t,n.filename=l.source,n.line=d,n.column=p,n.source=e,!l.silent)throw n;f.push(n)}function E(t){var n=t.exec(e);if(n){var r=n[0];return m(r),e=e.slice(r.length),n}}function y(){E(r)}function T(e){var t;for(e=e||[];t=S();)!1!==t&&e.push(t);return e}function S(){var t=g();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var n=2;c!=e.charAt(n)&&("*"!=e.charAt(n)||"/"!=e.charAt(n+1));)++n;if(n+=2,c===e.charAt(n-1))return b("End of comment missing");var r=e.slice(2,n-2);return p+=2,m(r),e=e.slice(n),p+=2,t({type:"comment",comment:r})}}function v(){var e=g(),n=E(a);if(n){if(S(),!E(i))return b("property missing ':'");var r=E(o),l=e({type:"declaration",property:u(n[0].replace(t,c)),value:r?u(r[0].replace(t,c)):c});return E(s),l}}return y(),function(){var e,t=[];for(T(t);e=v();)!1!==e&&(t.push(e),T(t));return t}()}},6517:function(e){"use strict";e.exports=function(e){var t="string"===typeof e?e.charCodeAt(0):e;return t>=97&&t<=122||t>=65&&t<=90}},4929:function(e,t,n){"use strict";var r=n(6517),a=n(7194);e.exports=function(e){return r(e)||a(e)}},5586:function(e){e.exports=function(e){return null!=e&&null!=e.constructor&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},7194:function(e){"use strict";e.exports=function(e){var t="string"===typeof e?e.charCodeAt(0):e;return t>=48&&t<=57}},5504:function(e){"use strict";e.exports=function(e){var t="string"===typeof e?e.charCodeAt(0):e;return t>=97&&t<=102||t>=65&&t<=70||t>=48&&t<=57}},6891:function(e){"use strict";var t;e.exports=function(e){var n,r="&"+e+";";if((t=t||document.createElement("i")).innerHTML=r,59===(n=t.textContent).charCodeAt(n.length-1)&&"semi"!==e)return!1;return n!==r&&n}},5434:function(e,t,n){"use strict";var r=n(7452),a=n(3580),i=n(7194),o=n(5504),s=n(4929),l=n(6891);e.exports=function(e,t){var n,i,o={};t||(t={});for(i in p)n=t[i],o[i]=null===n||void 0===n?p[i]:n;(o.position.indent||o.position.start)&&(o.indent=o.position.indent||[],o.position=o.position.start);return function(e,t){var n,i,o,p,S,v,A,k,w,_,C,N,I,x,R,O,L,P,D,M=t.additional,F=t.nonTerminated,U=t.text,B=t.reference,G=t.warning,H=t.textContext,z=t.referenceContext,$=t.warningContext,V=t.position,j=t.indent||[],W=e.length,q=0,K=-1,X=V.column||1,Y=V.line||1,Z="",Q=[];"string"===typeof M&&(M=M.charCodeAt(0));O=J(),k=G?ee:d,q--,W++;for(;++q<W;)if(10===S&&(X=j[K]||1),38===(S=e.charCodeAt(q))){if(9===(A=e.charCodeAt(q+1))||10===A||12===A||32===A||38===A||60===A||A!==A||M&&A===M){Z+=u(S),X++;continue}for(N=I=q+1,D=I,35===A?(D=++N,88===(A=e.charCodeAt(D))||120===A?(x=g,D=++N):x=h):x=m,n="",C="",p="",R=b[x],D--;++D<W&&R(A=e.charCodeAt(D));)p+=u(A),x===m&&c.call(r,p)&&(n=p,C=r[p]);(o=59===e.charCodeAt(D))&&(D++,(i=x===m&&l(p))&&(n=p,C=i)),P=1+D-I,(o||F)&&(p?x===m?(o&&!C?k(5,1):(n!==p&&(P=1+(D=N+n.length)-N,o=!1),o||(w=n?1:3,t.attribute?61===(A=e.charCodeAt(D))?(k(w,P),C=null):s(A)?C=null:k(w,P):k(w,P))),v=C):(o||k(2,P),y(v=parseInt(p,f[x]))?(k(7,P),v=u(65533)):v in a?(k(6,P),v=a[v]):(_="",T(v)&&k(6,P),v>65535&&(_+=u((v-=65536)>>>10|55296),v=56320|1023&v),v=_+u(v))):x!==m&&k(4,P)),v?(te(),O=J(),q=D-1,X+=D-I+1,Q.push(v),(L=J()).offset++,B&&B.call(z,v,{start:O,end:L},e.slice(I-1,D)),O=L):(p=e.slice(I-1,D),Z+=p,X+=p.length,q=D-1)}else 10===S&&(Y++,K++,X=0),S===S?(Z+=u(S),X++):te();return Q.join("");function J(){return{line:Y,column:X,offset:q+(V.offset||0)}}function ee(e,t){var n=J();n.column+=t,n.offset+=t,G.call($,E[e],n,e)}function te(){Z&&(Q.push(Z),U&&U.call(H,Z,{start:O,end:J()}),Z="")}}(e,o)};var c={}.hasOwnProperty,u=String.fromCharCode,d=Function.prototype,p={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:!1,nonTerminated:!0},m="named",g="hexadecimal",h="decimal",f={hexadecimal:16,decimal:10},b={};b.named=s,b[h]=i,b[g]=o;var E={};function y(e){return e>=55296&&e<=57343||e>1114111}function T(e){return e>=1&&e<=8||11===e||e>=13&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||65535===(65535&e)||65534===(65535&e)}E[1]="Named character references must be terminated by a semicolon",E[2]="Numeric character references must be terminated by a semicolon",E[3]="Named character references cannot be empty",E[4]="Numeric character references cannot be empty",E[5]="Named character references must be known",E[6]="Numeric character references cannot be disallowed",E[7]="Numeric character references cannot be outside the permissible Unicode range"},4802:function(e,t,n){"use strict";var r=n(9539).DOCUMENT_MODE,a="html",i=["+//silmaril//dtd html pro v0r11 19970101//","-//as//dtd html 3.0 aswedit + extensions//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//o'reilly and associates//dtd html extended relaxed 1.0//","-//sq//dtd html 2.0 hotmetal + extensions//","-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//","-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//","-//spyglass//dtd html 2.0 extended//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//"],o=i.concat(["-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"]),s=["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"],l=["-//w3c//dtd xhtml 1.0 frameset//","-//w3c//dtd xhtml 1.0 transitional//"],c=l.concat(["-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"]);function u(e){var t=-1!==e.indexOf('"')?"'":'"';return t+e+t}function d(e,t){for(var n=0;n<t.length;n++)if(0===e.indexOf(t[n]))return!0;return!1}t.isConforming=function(e){return e.name===a&&null===e.publicId&&(null===e.systemId||"about:legacy-compat"===e.systemId)},t.getDocumentMode=function(e){if(e.name!==a)return r.QUIRKS;var t=e.systemId;if(t&&"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"===t.toLowerCase())return r.QUIRKS;var n=e.publicId;if(null!==n){if(n=n.toLowerCase(),s.indexOf(n)>-1)return r.QUIRKS;var u=null===t?o:i;if(d(n,u))return r.QUIRKS;if(d(n,u=null===t?l:c))return r.LIMITED_QUIRKS}return r.NO_QUIRKS},t.serializeContent=function(e,t,n){var r="!DOCTYPE ";return e&&(r+=e),t?r+=" PUBLIC "+u(t):n&&(r+=" SYSTEM"),null!==n&&(r+=" "+u(n)),r}},4551:function(e){"use strict";e.exports={controlCharacterInInputStream:"control-character-in-input-stream",noncharacterInInputStream:"noncharacter-in-input-stream",surrogateInInputStream:"surrogate-in-input-stream",nonVoidHtmlElementStartTagWithTrailingSolidus:"non-void-html-element-start-tag-with-trailing-solidus",endTagWithAttributes:"end-tag-with-attributes",endTagWithTrailingSolidus:"end-tag-with-trailing-solidus",unexpectedSolidusInTag:"unexpected-solidus-in-tag",unexpectedNullCharacter:"unexpected-null-character",unexpectedQuestionMarkInsteadOfTagName:"unexpected-question-mark-instead-of-tag-name",invalidFirstCharacterOfTagName:"invalid-first-character-of-tag-name",unexpectedEqualsSignBeforeAttributeName:"unexpected-equals-sign-before-attribute-name",missingEndTagName:"missing-end-tag-name",unexpectedCharacterInAttributeName:"unexpected-character-in-attribute-name",unknownNamedCharacterReference:"unknown-named-character-reference",missingSemicolonAfterCharacterReference:"missing-semicolon-after-character-reference",unexpectedCharacterAfterDoctypeSystemIdentifier:"unexpected-character-after-doctype-system-identifier",unexpectedCharacterInUnquotedAttributeValue:"unexpected-character-in-unquoted-attribute-value",eofBeforeTagName:"eof-before-tag-name",eofInTag:"eof-in-tag",missingAttributeValue:"missing-attribute-value",missingWhitespaceBetweenAttributes:"missing-whitespace-between-attributes",missingWhitespaceAfterDoctypePublicKeyword:"missing-whitespace-after-doctype-public-keyword",missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers:"missing-whitespace-between-doctype-public-and-system-identifiers",missingWhitespaceAfterDoctypeSystemKeyword:"missing-whitespace-after-doctype-system-keyword",missingQuoteBeforeDoctypePublicIdentifier:"missing-quote-before-doctype-public-identifier",missingQuoteBeforeDoctypeSystemIdentifier:"missing-quote-before-doctype-system-identifier",missingDoctypePublicIdentifier:"missing-doctype-public-identifier",missingDoctypeSystemIdentifier:"missing-doctype-system-identifier",abruptDoctypePublicIdentifier:"abrupt-doctype-public-identifier",abruptDoctypeSystemIdentifier:"abrupt-doctype-system-identifier",cdataInHtmlContent:"cdata-in-html-content",incorrectlyOpenedComment:"incorrectly-opened-comment",eofInScriptHtmlCommentLikeText:"eof-in-script-html-comment-like-text",eofInDoctype:"eof-in-doctype",nestedComment:"nested-comment",abruptClosingOfEmptyComment:"abrupt-closing-of-empty-comment",eofInComment:"eof-in-comment",incorrectlyClosedComment:"incorrectly-closed-comment",eofInCdata:"eof-in-cdata",absenceOfDigitsInNumericCharacterReference:"absence-of-digits-in-numeric-character-reference",nullCharacterReference:"null-character-reference",surrogateCharacterReference:"surrogate-character-reference",characterReferenceOutsideUnicodeRange:"character-reference-outside-unicode-range",controlCharacterReference:"control-character-reference",noncharacterCharacterReference:"noncharacter-character-reference",missingWhitespaceBeforeDoctypeName:"missing-whitespace-before-doctype-name",missingDoctypeName:"missing-doctype-name",invalidCharacterSequenceAfterDoctypeName:"invalid-character-sequence-after-doctype-name",duplicateAttribute:"duplicate-attribute",nonConformingDoctype:"non-conforming-doctype",missingDoctype:"missing-doctype",misplacedDoctype:"misplaced-doctype",endTagWithoutMatchingOpenElement:"end-tag-without-matching-open-element",closingOfElementWithOpenChildElements:"closing-of-element-with-open-child-elements",disallowedContentInNoscriptInHead:"disallowed-content-in-noscript-in-head",openElementsLeftAfterEof:"open-elements-left-after-eof",abandonedHeadElementChild:"abandoned-head-element-child",misplacedStartTagForHeadElement:"misplaced-start-tag-for-head-element",nestedNoscriptInHead:"nested-noscript-in-head",eofInElementThatCanContainOnlyText:"eof-in-element-that-can-contain-only-text"}},5478:function(e,t,n){"use strict";var r,a=n(8416).default,i=n(3085),o=n(9539),s=o.TAG_NAMES,l=o.NAMESPACES,c=o.ATTRS,u="text/html",d="application/xhtml+xml",p={attributename:"attributeName",attributetype:"attributeType",basefrequency:"baseFrequency",baseprofile:"baseProfile",calcmode:"calcMode",clippathunits:"clipPathUnits",diffuseconstant:"diffuseConstant",edgemode:"edgeMode",filterunits:"filterUnits",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",limitingconeangle:"limitingConeAngle",markerheight:"markerHeight",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textlength:"textLength",viewbox:"viewBox",viewtarget:"viewTarget",xchannelselector:"xChannelSelector",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan"},m={"xlink:actuate":{prefix:"xlink",name:"actuate",namespace:l.XLINK},"xlink:arcrole":{prefix:"xlink",name:"arcrole",namespace:l.XLINK},"xlink:href":{prefix:"xlink",name:"href",namespace:l.XLINK},"xlink:role":{prefix:"xlink",name:"role",namespace:l.XLINK},"xlink:show":{prefix:"xlink",name:"show",namespace:l.XLINK},"xlink:title":{prefix:"xlink",name:"title",namespace:l.XLINK},"xlink:type":{prefix:"xlink",name:"type",namespace:l.XLINK},"xml:base":{prefix:"xml",name:"base",namespace:l.XML},"xml:lang":{prefix:"xml",name:"lang",namespace:l.XML},"xml:space":{prefix:"xml",name:"space",namespace:l.XML},xmlns:{prefix:"",name:"xmlns",namespace:l.XMLNS},"xmlns:xlink":{prefix:"xmlns",name:"xlink",namespace:l.XMLNS}},g=t.SVG_TAG_NAMES_ADJUSTMENT_MAP={altglyph:"altGlyph",altglyphdef:"altGlyphDef",altglyphitem:"altGlyphItem",animatecolor:"animateColor",animatemotion:"animateMotion",animatetransform:"animateTransform",clippath:"clipPath",feblend:"feBlend",fecolormatrix:"feColorMatrix",fecomponenttransfer:"feComponentTransfer",fecomposite:"feComposite",feconvolvematrix:"feConvolveMatrix",fediffuselighting:"feDiffuseLighting",fedisplacementmap:"feDisplacementMap",fedistantlight:"feDistantLight",feflood:"feFlood",fefunca:"feFuncA",fefuncb:"feFuncB",fefuncg:"feFuncG",fefuncr:"feFuncR",fegaussianblur:"feGaussianBlur",feimage:"feImage",femerge:"feMerge",femergenode:"feMergeNode",femorphology:"feMorphology",feoffset:"feOffset",fepointlight:"fePointLight",fespecularlighting:"feSpecularLighting",fespotlight:"feSpotLight",fetile:"feTile",feturbulence:"feTurbulence",foreignobject:"foreignObject",glyphref:"glyphRef",lineargradient:"linearGradient",radialgradient:"radialGradient",textpath:"textPath"},h=(a(r={},s.B,!0),a(r,s.BIG,!0),a(r,s.BLOCKQUOTE,!0),a(r,s.BODY,!0),a(r,s.BR,!0),a(r,s.CENTER,!0),a(r,s.CODE,!0),a(r,s.DD,!0),a(r,s.DIV,!0),a(r,s.DL,!0),a(r,s.DT,!0),a(r,s.EM,!0),a(r,s.EMBED,!0),a(r,s.H1,!0),a(r,s.H2,!0),a(r,s.H3,!0),a(r,s.H4,!0),a(r,s.H5,!0),a(r,s.H6,!0),a(r,s.HEAD,!0),a(r,s.HR,!0),a(r,s.I,!0),a(r,s.IMG,!0),a(r,s.LI,!0),a(r,s.LISTING,!0),a(r,s.MENU,!0),a(r,s.META,!0),a(r,s.NOBR,!0),a(r,s.OL,!0),a(r,s.P,!0),a(r,s.PRE,!0),a(r,s.RUBY,!0),a(r,s.S,!0),a(r,s.SMALL,!0),a(r,s.SPAN,!0),a(r,s.STRONG,!0),a(r,s.STRIKE,!0),a(r,s.SUB,!0),a(r,s.SUP,!0),a(r,s.TABLE,!0),a(r,s.TT,!0),a(r,s.U,!0),a(r,s.UL,!0),a(r,s.VAR,!0),r);t.causesExit=function(e){var t=e.tagName;return!!(t===s.FONT&&(null!==i.getTokenAttr(e,c.COLOR)||null!==i.getTokenAttr(e,c.SIZE)||null!==i.getTokenAttr(e,c.FACE)))||h[t]},t.adjustTokenMathMLAttrs=function(e){for(var t=0;t<e.attrs.length;t++)if("definitionurl"===e.attrs[t].name){e.attrs[t].name="definitionURL";break}},t.adjustTokenSVGAttrs=function(e){for(var t=0;t<e.attrs.length;t++){var n=p[e.attrs[t].name];n&&(e.attrs[t].name=n)}},t.adjustTokenXMLAttrs=function(e){for(var t=0;t<e.attrs.length;t++){var n=m[e.attrs[t].name];n&&(e.attrs[t].prefix=n.prefix,e.attrs[t].name=n.name,e.attrs[t].namespace=n.namespace)}},t.adjustTokenSVGTagName=function(e){var t=g[e.tagName];t&&(e.tagName=t)},t.isIntegrationPoint=function(e,t,n,r){return!(r&&r!==l.HTML||!function(e,t,n){if(t===l.MATHML&&e===s.ANNOTATION_XML)for(var r=0;r<n.length;r++)if(n[r].name===c.ENCODING){var a=n[r].value.toLowerCase();return a===u||a===d}return t===l.SVG&&(e===s.FOREIGN_OBJECT||e===s.DESC||e===s.TITLE)}(e,t,n))||!(r&&r!==l.MATHML||!function(e,t){return t===l.MATHML&&(e===s.MI||e===s.MO||e===s.MN||e===s.MS||e===s.MTEXT)}(e,t))}},9539:function(e,t,n){"use strict";var r,a,i,o,s=n(8416).default,l=t.NAMESPACES={HTML:"http://www.w3.org/1999/xhtml",MATHML:"http://www.w3.org/1998/Math/MathML",SVG:"http://www.w3.org/2000/svg",XLINK:"http://www.w3.org/1999/xlink",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"};t.ATTRS={TYPE:"type",ACTION:"action",ENCODING:"encoding",PROMPT:"prompt",NAME:"name",COLOR:"color",FACE:"face",SIZE:"size"},t.DOCUMENT_MODE={NO_QUIRKS:"no-quirks",QUIRKS:"quirks",LIMITED_QUIRKS:"limited-quirks"};var c=t.TAG_NAMES={A:"a",ADDRESS:"address",ANNOTATION_XML:"annotation-xml",APPLET:"applet",AREA:"area",ARTICLE:"article",ASIDE:"aside",B:"b",BASE:"base",BASEFONT:"basefont",BGSOUND:"bgsound",BIG:"big",BLOCKQUOTE:"blockquote",BODY:"body",BR:"br",BUTTON:"button",CAPTION:"caption",CENTER:"center",CODE:"code",COL:"col",COLGROUP:"colgroup",DD:"dd",DESC:"desc",DETAILS:"details",DIALOG:"dialog",DIR:"dir",DIV:"div",DL:"dl",DT:"dt",EM:"em",EMBED:"embed",FIELDSET:"fieldset",FIGCAPTION:"figcaption",FIGURE:"figure",FONT:"font",FOOTER:"footer",FOREIGN_OBJECT:"foreignObject",FORM:"form",FRAME:"frame",FRAMESET:"frameset",H1:"h1",H2:"h2",H3:"h3",H4:"h4",H5:"h5",H6:"h6",HEAD:"head",HEADER:"header",HGROUP:"hgroup",HR:"hr",HTML:"html",I:"i",IMG:"img",IMAGE:"image",INPUT:"input",IFRAME:"iframe",KEYGEN:"keygen",LABEL:"label",LI:"li",LINK:"link",LISTING:"listing",MAIN:"main",MALIGNMARK:"malignmark",MARQUEE:"marquee",MATH:"math",MENU:"menu",META:"meta",MGLYPH:"mglyph",MI:"mi",MO:"mo",MN:"mn",MS:"ms",MTEXT:"mtext",NAV:"nav",NOBR:"nobr",NOFRAMES:"noframes",NOEMBED:"noembed",NOSCRIPT:"noscript",OBJECT:"object",OL:"ol",OPTGROUP:"optgroup",OPTION:"option",P:"p",PARAM:"param",PLAINTEXT:"plaintext",PRE:"pre",RB:"rb",RP:"rp",RT:"rt",RTC:"rtc",RUBY:"ruby",S:"s",SCRIPT:"script",SECTION:"section",SELECT:"select",SOURCE:"source",SMALL:"small",SPAN:"span",STRIKE:"strike",STRONG:"strong",STYLE:"style",SUB:"sub",SUMMARY:"summary",SUP:"sup",TABLE:"table",TBODY:"tbody",TEMPLATE:"template",TEXTAREA:"textarea",TFOOT:"tfoot",TD:"td",TH:"th",THEAD:"thead",TITLE:"title",TR:"tr",TRACK:"track",TT:"tt",U:"u",UL:"ul",SVG:"svg",VAR:"var",WBR:"wbr",XMP:"xmp"};t.SPECIAL_ELEMENTS=(s(o={},l.HTML,(s(r={},c.ADDRESS,!0),s(r,c.APPLET,!0),s(r,c.AREA,!0),s(r,c.ARTICLE,!0),s(r,c.ASIDE,!0),s(r,c.BASE,!0),s(r,c.BASEFONT,!0),s(r,c.BGSOUND,!0),s(r,c.BLOCKQUOTE,!0),s(r,c.BODY,!0),s(r,c.BR,!0),s(r,c.BUTTON,!0),s(r,c.CAPTION,!0),s(r,c.CENTER,!0),s(r,c.COL,!0),s(r,c.COLGROUP,!0),s(r,c.DD,!0),s(r,c.DETAILS,!0),s(r,c.DIR,!0),s(r,c.DIV,!0),s(r,c.DL,!0),s(r,c.DT,!0),s(r,c.EMBED,!0),s(r,c.FIELDSET,!0),s(r,c.FIGCAPTION,!0),s(r,c.FIGURE,!0),s(r,c.FOOTER,!0),s(r,c.FORM,!0),s(r,c.FRAME,!0),s(r,c.FRAMESET,!0),s(r,c.H1,!0),s(r,c.H2,!0),s(r,c.H3,!0),s(r,c.H4,!0),s(r,c.H5,!0),s(r,c.H6,!0),s(r,c.HEAD,!0),s(r,c.HEADER,!0),s(r,c.HGROUP,!0),s(r,c.HR,!0),s(r,c.HTML,!0),s(r,c.IFRAME,!0),s(r,c.IMG,!0),s(r,c.INPUT,!0),s(r,c.LI,!0),s(r,c.LINK,!0),s(r,c.LISTING,!0),s(r,c.MAIN,!0),s(r,c.MARQUEE,!0),s(r,c.MENU,!0),s(r,c.META,!0),s(r,c.NAV,!0),s(r,c.NOEMBED,!0),s(r,c.NOFRAMES,!0),s(r,c.NOSCRIPT,!0),s(r,c.OBJECT,!0),s(r,c.OL,!0),s(r,c.P,!0),s(r,c.PARAM,!0),s(r,c.PLAINTEXT,!0),s(r,c.PRE,!0),s(r,c.SCRIPT,!0),s(r,c.SECTION,!0),s(r,c.SELECT,!0),s(r,c.SOURCE,!0),s(r,c.STYLE,!0),s(r,c.SUMMARY,!0),s(r,c.TABLE,!0),s(r,c.TBODY,!0),s(r,c.TD,!0),s(r,c.TEMPLATE,!0),s(r,c.TEXTAREA,!0),s(r,c.TFOOT,!0),s(r,c.TH,!0),s(r,c.THEAD,!0),s(r,c.TITLE,!0),s(r,c.TR,!0),s(r,c.TRACK,!0),s(r,c.UL,!0),s(r,c.WBR,!0),s(r,c.XMP,!0),r)),s(o,l.MATHML,(s(a={},c.MI,!0),s(a,c.MO,!0),s(a,c.MN,!0),s(a,c.MS,!0),s(a,c.MTEXT,!0),s(a,c.ANNOTATION_XML,!0),a)),s(o,l.SVG,(s(i={},c.TITLE,!0),s(i,c.FOREIGN_OBJECT,!0),s(i,c.DESC,!0),i)),o)},4529:function(e,t){"use strict";var n=[65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];t.REPLACEMENT_CHARACTER="\ufffd",t.CODE_POINTS={EOF:-1,NULL:0,TABULATION:9,CARRIAGE_RETURN:13,LINE_FEED:10,FORM_FEED:12,SPACE:32,EXCLAMATION_MARK:33,QUOTATION_MARK:34,NUMBER_SIGN:35,AMPERSAND:38,APOSTROPHE:39,HYPHEN_MINUS:45,SOLIDUS:47,DIGIT_0:48,DIGIT_9:57,SEMICOLON:59,LESS_THAN_SIGN:60,EQUALS_SIGN:61,GREATER_THAN_SIGN:62,QUESTION_MARK:63,LATIN_CAPITAL_A:65,LATIN_CAPITAL_F:70,LATIN_CAPITAL_X:88,LATIN_CAPITAL_Z:90,RIGHT_SQUARE_BRACKET:93,GRAVE_ACCENT:96,LATIN_SMALL_A:97,LATIN_SMALL_F:102,LATIN_SMALL_X:120,LATIN_SMALL_Z:122,REPLACEMENT_CHARACTER:65533},t.CODE_POINT_SEQUENCES={DASH_DASH_STRING:[45,45],DOCTYPE_STRING:[68,79,67,84,89,80,69],CDATA_START_STRING:[91,67,68,65,84,65,91],SCRIPT_STRING:[115,99,114,105,112,116],PUBLIC_STRING:[80,85,66,76,73,67],SYSTEM_STRING:[83,89,83,84,69,77]},t.isSurrogate=function(e){return e>=55296&&e<=57343},t.isSurrogatePair=function(e){return e>=56320&&e<=57343},t.getSurrogatePairCodePoint=function(e,t){return 1024*(e-55296)+9216+t},t.isControlCodePoint=function(e){return 32!==e&&10!==e&&13!==e&&9!==e&&12!==e&&e>=1&&e<=31||e>=127&&e<=159},t.isUndefinedCodePoint=function(e){return e>=64976&&e<=65007||n.indexOf(e)>-1}},6915:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(1655).default,o=n(6389).default,s=function(e){i(n,e);var t=o(n);function n(e,a){var i;return r(this,n),(i=t.call(this,e)).posTracker=null,i.onParseError=a.onParseError,i}return a(n,[{key:"_setErrorLocation",value:function(e){e.startLine=e.endLine=this.posTracker.line,e.startCol=e.endCol=this.posTracker.col,e.startOffset=e.endOffset=this.posTracker.offset}},{key:"_reportError",value:function(e){var t={code:e,startLine:-1,startCol:-1,startOffset:-1,endLine:-1,endCol:-1,endOffset:-1};this._setErrorLocation(t),this.onParseError(t)}},{key:"_getOverriddenMethods",value:function(e){return{_err:function(t){e._reportError(t)}}}}]),n}(n(1458));e.exports=s},9839:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(1655).default,o=n(6389).default,s=n(6915),l=n(5611),c=n(2640),u=n(1458),d=function(e){i(n,e);var t=o(n);function n(e,a){var i;return r(this,n),(i=t.call(this,e,a)).opts=a,i.ctLoc=null,i.locBeforeToken=!1,i}return a(n,[{key:"_setErrorLocation",value:function(e){this.ctLoc&&(e.startLine=this.ctLoc.startLine,e.startCol=this.ctLoc.startCol,e.startOffset=this.ctLoc.startOffset,e.endLine=this.locBeforeToken?this.ctLoc.startLine:this.ctLoc.endLine,e.endCol=this.locBeforeToken?this.ctLoc.startCol:this.ctLoc.endCol,e.endOffset=this.locBeforeToken?this.ctLoc.startOffset:this.ctLoc.endOffset)}},{key:"_getOverriddenMethods",value:function(e,t){return{_bootstrap:function(n,r){t._bootstrap.call(this,n,r),u.install(this.tokenizer,l,e.opts),u.install(this.tokenizer,c)},_processInputToken:function(n){e.ctLoc=n.location,t._processInputToken.call(this,n)},_err:function(t,n){e.locBeforeToken=n&&n.beforeToken,e._reportError(t)}}}}]),n}(s);e.exports=d},2459:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(1588).default,o=n(3808).default,s=n(1655).default,l=n(6389).default,c=n(6915),u=n(64),d=n(1458),p=function(e){s(n,e);var t=l(n);function n(e,a){var i;return r(this,n),(i=t.call(this,e,a)).posTracker=d.install(e,u),i.lastErrOffset=-1,i}return a(n,[{key:"_reportError",value:function(e){this.lastErrOffset!==this.posTracker.offset&&(this.lastErrOffset=this.posTracker.offset,i(o(n.prototype),"_reportError",this).call(this,e))}}]),n}(c);e.exports=p},5611:function(e,t,n){"use strict";var r=n(9728).default,a=n(6690).default,i=n(1655).default,o=n(6389).default,s=n(6915),l=n(2459),c=n(1458),u=function(e){i(n,e);var t=o(n);function n(e,r){var i;a(this,n),i=t.call(this,e,r);var o=c.install(e.preprocessor,l,r);return i.posTracker=o.posTracker,i}return r(n)}(s);e.exports=u},4936:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(1655).default,o=n(6389).default,s=function(e){i(n,e);var t=o(n);function n(e,a){var i;return r(this,n),(i=t.call(this,e)).onItemPop=a.onItemPop,i}return a(n,[{key:"_getOverriddenMethods",value:function(e,t){return{pop:function(){e.onItemPop(this.current),t.pop.call(this)},popAllUpToHtmlElement:function(){for(var n=this.stackTop;n>0;n--)e.onItemPop(this.items[n]);t.popAllUpToHtmlElement.call(this)},remove:function(n){e.onItemPop(this.current),t.remove.call(this,n)}}}}]),n}(n(1458));e.exports=s},9037:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(1655).default,o=n(6389).default,s=n(1458),l=n(3085),c=n(2640),u=n(4936),d=n(9539).TAG_NAMES,p=function(e){i(n,e);var t=o(n);function n(e){var a;return r(this,n),(a=t.call(this,e)).parser=e,a.treeAdapter=a.parser.treeAdapter,a.posTracker=null,a.lastStartTagToken=null,a.lastFosterParentingLocation=null,a.currentToken=null,a}return a(n,[{key:"_setStartLocation",value:function(e){var t=null;this.lastStartTagToken&&((t=Object.assign({},this.lastStartTagToken.location)).startTag=this.lastStartTagToken.location),this.treeAdapter.setNodeSourceCodeLocation(e,t)}},{key:"_setEndLocation",value:function(e,t){if(this.treeAdapter.getNodeSourceCodeLocation(e)&&t.location){var n=t.location,r=this.treeAdapter.getTagName(e),a={};t.type===l.END_TAG_TOKEN&&r===t.tagName?(a.endTag=Object.assign({},n),a.endLine=n.endLine,a.endCol=n.endCol,a.endOffset=n.endOffset):(a.endLine=n.startLine,a.endCol=n.startCol,a.endOffset=n.startOffset),this.treeAdapter.updateNodeSourceCodeLocation(e,a)}}},{key:"_getOverriddenMethods",value:function(e,t){return{_bootstrap:function(n,r){t._bootstrap.call(this,n,r),e.lastStartTagToken=null,e.lastFosterParentingLocation=null,e.currentToken=null;var a=s.install(this.tokenizer,c);e.posTracker=a.posTracker,s.install(this.openElements,u,{onItemPop:function(t){e._setEndLocation(t,e.currentToken)}})},_runParsingLoop:function(n){t._runParsingLoop.call(this,n);for(var r=this.openElements.stackTop;r>=0;r--)e._setEndLocation(this.openElements.items[r],e.currentToken)},_processTokenInForeignContent:function(n){e.currentToken=n,t._processTokenInForeignContent.call(this,n)},_processToken:function(n){if(e.currentToken=n,t._processToken.call(this,n),n.type===l.END_TAG_TOKEN&&(n.tagName===d.HTML||n.tagName===d.BODY&&this.openElements.hasInScope(d.BODY)))for(var r=this.openElements.stackTop;r>=0;r--){var a=this.openElements.items[r];if(this.treeAdapter.getTagName(a)===n.tagName){e._setEndLocation(a,n);break}}},_setDocumentType:function(e){t._setDocumentType.call(this,e);for(var n=this.treeAdapter.getChildNodes(this.document),r=n.length,a=0;a<r;a++){var i=n[a];if(this.treeAdapter.isDocumentTypeNode(i)){this.treeAdapter.setNodeSourceCodeLocation(i,e.location);break}}},_attachElementToTree:function(n){e._setStartLocation(n),e.lastStartTagToken=null,t._attachElementToTree.call(this,n)},_appendElement:function(n,r){e.lastStartTagToken=n,t._appendElement.call(this,n,r)},_insertElement:function(n,r){e.lastStartTagToken=n,t._insertElement.call(this,n,r)},_insertTemplate:function(n){e.lastStartTagToken=n,t._insertTemplate.call(this,n);var r=this.treeAdapter.getTemplateContent(this.openElements.current);this.treeAdapter.setNodeSourceCodeLocation(r,null)},_insertFakeRootElement:function(){t._insertFakeRootElement.call(this),this.treeAdapter.setNodeSourceCodeLocation(this.openElements.current,null)},_appendCommentNode:function(e,n){t._appendCommentNode.call(this,e,n);var r=this.treeAdapter.getChildNodes(n),a=r[r.length-1];this.treeAdapter.setNodeSourceCodeLocation(a,e.location)},_findFosterParentingLocation:function(){return e.lastFosterParentingLocation=t._findFosterParentingLocation.call(this),e.lastFosterParentingLocation},_insertCharacters:function(n){t._insertCharacters.call(this,n);var r=this._shouldFosterParentOnInsertion(),a=r&&e.lastFosterParentingLocation.parent||this.openElements.currentTmplContent||this.openElements.current,i=this.treeAdapter.getChildNodes(a),o=r&&e.lastFosterParentingLocation.beforeElement?i.indexOf(e.lastFosterParentingLocation.beforeElement)-1:i.length-1,s=i[o];if(this.treeAdapter.getNodeSourceCodeLocation(s)){var l=n.location,c=l.endLine,u=l.endCol,d=l.endOffset;this.treeAdapter.updateNodeSourceCodeLocation(s,{endLine:c,endCol:u,endOffset:d})}else this.treeAdapter.setNodeSourceCodeLocation(s,n.location)}}}}]),n}(s);e.exports=p},2640:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(1655).default,o=n(6389).default,s=n(1458),l=n(3085),c=n(64),u=function(e){i(n,e);var t=o(n);function n(e){var a;return r(this,n),(a=t.call(this,e)).tokenizer=e,a.posTracker=s.install(e.preprocessor,c),a.currentAttrLocation=null,a.ctLoc=null,a}return a(n,[{key:"_getCurrentLocation",value:function(){return{startLine:this.posTracker.line,startCol:this.posTracker.col,startOffset:this.posTracker.offset,endLine:-1,endCol:-1,endOffset:-1}}},{key:"_attachCurrentAttrLocationInfo",value:function(){this.currentAttrLocation.endLine=this.posTracker.line,this.currentAttrLocation.endCol=this.posTracker.col,this.currentAttrLocation.endOffset=this.posTracker.offset;var e=this.tokenizer.currentToken,t=this.tokenizer.currentAttr;e.location.attrs||(e.location.attrs=Object.create(null)),e.location.attrs[t.name]=this.currentAttrLocation}},{key:"_getOverriddenMethods",value:function(e,t){var n={_createStartTagToken:function(){t._createStartTagToken.call(this),this.currentToken.location=e.ctLoc},_createEndTagToken:function(){t._createEndTagToken.call(this),this.currentToken.location=e.ctLoc},_createCommentToken:function(){t._createCommentToken.call(this),this.currentToken.location=e.ctLoc},_createDoctypeToken:function(n){t._createDoctypeToken.call(this,n),this.currentToken.location=e.ctLoc},_createCharacterToken:function(n,r){t._createCharacterToken.call(this,n,r),this.currentCharacterToken.location=e.ctLoc},_createEOFToken:function(){t._createEOFToken.call(this),this.currentToken.location=e._getCurrentLocation()},_createAttr:function(n){t._createAttr.call(this,n),e.currentAttrLocation=e._getCurrentLocation()},_leaveAttrName:function(n){t._leaveAttrName.call(this,n),e._attachCurrentAttrLocationInfo()},_leaveAttrValue:function(n){t._leaveAttrValue.call(this,n),e._attachCurrentAttrLocationInfo()},_emitCurrentToken:function(){var n=this.currentToken.location;this.currentCharacterToken&&(this.currentCharacterToken.location.endLine=n.startLine,this.currentCharacterToken.location.endCol=n.startCol,this.currentCharacterToken.location.endOffset=n.startOffset),this.currentToken.type===l.EOF_TOKEN?(n.endLine=n.startLine,n.endCol=n.startCol,n.endOffset=n.startOffset):(n.endLine=e.posTracker.line,n.endCol=e.posTracker.col+1,n.endOffset=e.posTracker.offset+1),t._emitCurrentToken.call(this)},_emitCurrentCharacterToken:function(){var n=this.currentCharacterToken&&this.currentCharacterToken.location;n&&-1===n.endOffset&&(n.endLine=e.posTracker.line,n.endCol=e.posTracker.col,n.endOffset=e.posTracker.offset),t._emitCurrentCharacterToken.call(this)}};return Object.keys(l.MODE).forEach((function(r){var a=l.MODE[r];n[a]=function(n){e.ctLoc=e._getCurrentLocation(),t[a].call(this,n)}})),n}}]),n}(s);e.exports=u},64:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(1655).default,o=n(6389).default,s=function(e){i(n,e);var t=o(n);function n(e){var a;return r(this,n),(a=t.call(this,e)).preprocessor=e,a.isEol=!1,a.lineStartPos=0,a.droppedBufferSize=0,a.offset=0,a.col=0,a.line=1,a}return a(n,[{key:"_getOverriddenMethods",value:function(e,t){return{advance:function(){var n=this.pos+1,r=this.html[n];return e.isEol&&(e.isEol=!1,e.line++,e.lineStartPos=n),("\n"===r||"\r"===r&&"\n"!==this.html[n+1])&&(e.isEol=!0),e.col=n-e.lineStartPos+1,e.offset=e.droppedBufferSize+n,t.advance.call(this)},retreat:function(){t.retreat.call(this),e.isEol=!1,e.col=this.pos-e.lineStartPos+1},dropParsedChunk:function(){var n=this.pos;t.dropParsedChunk.call(this);var r=n-this.pos;e.lineStartPos-=r,e.droppedBufferSize+=r,e.offset=e.droppedBufferSize+this.pos}}}}]),n}(n(1458));e.exports=s},2708:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=function(){function e(t){r(this,e),this.length=0,this.entries=[],this.treeAdapter=t,this.bookmark=null}return a(e,[{key:"_getNoahArkConditionCandidates",value:function(t){var n=[];if(this.length>=3)for(var r=this.treeAdapter.getAttrList(t).length,a=this.treeAdapter.getTagName(t),i=this.treeAdapter.getNamespaceURI(t),o=this.length-1;o>=0;o--){var s=this.entries[o];if(s.type===e.MARKER_ENTRY)break;var l=s.element,c=this.treeAdapter.getAttrList(l);this.treeAdapter.getTagName(l)===a&&this.treeAdapter.getNamespaceURI(l)===i&&c.length===r&&n.push({idx:o,attrs:c})}return n.length<3?[]:n}},{key:"_ensureNoahArkCondition",value:function(e){var t=this._getNoahArkConditionCandidates(e),n=t.length;if(n){for(var r=this.treeAdapter.getAttrList(e),a=r.length,i=Object.create(null),o=0;o<a;o++){var s=r[o];i[s.name]=s.value}for(var l=0;l<a;l++)for(var c=0;c<n;c++){var u=t[c].attrs[l];if(i[u.name]!==u.value&&(t.splice(c,1),n--),t.length<3)return}for(var d=n-1;d>=2;d--)this.entries.splice(t[d].idx,1),this.length--}}},{key:"insertMarker",value:function(){this.entries.push({type:e.MARKER_ENTRY}),this.length++}},{key:"pushElement",value:function(t,n){this._ensureNoahArkCondition(t),this.entries.push({type:e.ELEMENT_ENTRY,element:t,token:n}),this.length++}},{key:"insertElementAfterBookmark",value:function(t,n){for(var r=this.length-1;r>=0&&this.entries[r]!==this.bookmark;r--);this.entries.splice(r+1,0,{type:e.ELEMENT_ENTRY,element:t,token:n}),this.length++}},{key:"removeEntry",value:function(e){for(var t=this.length-1;t>=0;t--)if(this.entries[t]===e){this.entries.splice(t,1),this.length--;break}}},{key:"clearToLastMarker",value:function(){for(;this.length;){var t=this.entries.pop();if(this.length--,t.type===e.MARKER_ENTRY)break}}},{key:"getElementEntryInScopeWithTagName",value:function(t){for(var n=this.length-1;n>=0;n--){var r=this.entries[n];if(r.type===e.MARKER_ENTRY)return null;if(this.treeAdapter.getTagName(r.element)===t)return r}return null}},{key:"getElementEntry",value:function(t){for(var n=this.length-1;n>=0;n--){var r=this.entries[n];if(r.type===e.ELEMENT_ENTRY&&r.element===t)return r}return null}}]),e}();i.MARKER_ENTRY="MARKER_ENTRY",i.ELEMENT_ENTRY="ELEMENT_ENTRY",e.exports=i},8992:function(e,t,n){"use strict";var r,a,i,o,s,l,c,u,d,p,m,g,h,f,b,E,y,T,S,v,A,k,w,_,C,N,I=n(6690).default,x=n(9728).default,R=n(8416).default,O=n(3085),L=n(4808),P=n(2708),D=n(9037),M=n(9839),F=n(1458),U=n(3860),B=n(3874),G=n(4802),H=n(5478),z=n(4551),$=n(4529),V=n(9539),j=V.TAG_NAMES,W=V.NAMESPACES,q=V.ATTRS,K={scriptingEnabled:!0,sourceCodeLocationInfo:!1,onParseError:null,treeAdapter:U},X="hidden",Y="INITIAL_MODE",Z="BEFORE_HTML_MODE",Q="BEFORE_HEAD_MODE",J="IN_HEAD_MODE",ee="IN_HEAD_NO_SCRIPT_MODE",te="AFTER_HEAD_MODE",ne="IN_BODY_MODE",re="TEXT_MODE",ae="IN_TABLE_MODE",ie="IN_TABLE_TEXT_MODE",oe="IN_CAPTION_MODE",se="IN_COLUMN_GROUP_MODE",le="IN_TABLE_BODY_MODE",ce="IN_ROW_MODE",ue="IN_CELL_MODE",de="IN_SELECT_MODE",pe="IN_SELECT_IN_TABLE_MODE",me="IN_TEMPLATE_MODE",ge="AFTER_BODY_MODE",he="IN_FRAMESET_MODE",fe="AFTER_FRAMESET_MODE",be="AFTER_AFTER_BODY_MODE",Ee="AFTER_AFTER_FRAMESET_MODE",ye=(R(r={},j.TR,ce),R(r,j.TBODY,le),R(r,j.THEAD,le),R(r,j.TFOOT,le),R(r,j.CAPTION,oe),R(r,j.COLGROUP,se),R(r,j.TABLE,ae),R(r,j.BODY,ne),R(r,j.FRAMESET,he),r),Te=(R(a={},j.CAPTION,ae),R(a,j.COLGROUP,ae),R(a,j.TBODY,ae),R(a,j.TFOOT,ae),R(a,j.THEAD,ae),R(a,j.COL,se),R(a,j.TR,le),R(a,j.TD,ce),R(a,j.TH,ce),a),Se=(R(N={},Y,(R(i={},O.CHARACTER_TOKEN,Me),R(i,O.NULL_CHARACTER_TOKEN,Me),R(i,O.WHITESPACE_CHARACTER_TOKEN,xe),R(i,O.COMMENT_TOKEN,Oe),R(i,O.DOCTYPE_TOKEN,(function(e,t){e._setDocumentType(t);var n=t.forceQuirks?V.DOCUMENT_MODE.QUIRKS:G.getDocumentMode(t);G.isConforming(t)||e._err(z.nonConformingDoctype);e.treeAdapter.setDocumentMode(e.document,n),e.insertionMode=Z})),R(i,O.START_TAG_TOKEN,Me),R(i,O.END_TAG_TOKEN,Me),R(i,O.EOF_TOKEN,Me),i)),R(N,Z,(R(o={},O.CHARACTER_TOKEN,Fe),R(o,O.NULL_CHARACTER_TOKEN,Fe),R(o,O.WHITESPACE_CHARACTER_TOKEN,xe),R(o,O.COMMENT_TOKEN,Oe),R(o,O.DOCTYPE_TOKEN,xe),R(o,O.START_TAG_TOKEN,(function(e,t){t.tagName===j.HTML?(e._insertElement(t,W.HTML),e.insertionMode=Q):Fe(e,t)})),R(o,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n!==j.HTML&&n!==j.HEAD&&n!==j.BODY&&n!==j.BR||Fe(e,t)})),R(o,O.EOF_TOKEN,Fe),o)),R(N,Q,(R(s={},O.CHARACTER_TOKEN,Ue),R(s,O.NULL_CHARACTER_TOKEN,Ue),R(s,O.WHITESPACE_CHARACTER_TOKEN,xe),R(s,O.COMMENT_TOKEN,Oe),R(s,O.DOCTYPE_TOKEN,Re),R(s,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.HEAD?(e._insertElement(t,W.HTML),e.headElement=e.openElements.current,e.insertionMode=J):Ue(e,t)})),R(s,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.HEAD||n===j.BODY||n===j.HTML||n===j.BR?Ue(e,t):e._err(z.endTagWithoutMatchingOpenElement)})),R(s,O.EOF_TOKEN,Ue),s)),R(N,J,(R(l={},O.CHARACTER_TOKEN,He),R(l,O.NULL_CHARACTER_TOKEN,He),R(l,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(l,O.COMMENT_TOKEN,Oe),R(l,O.DOCTYPE_TOKEN,Re),R(l,O.START_TAG_TOKEN,Be),R(l,O.END_TAG_TOKEN,Ge),R(l,O.EOF_TOKEN,He),l)),R(N,ee,(R(c={},O.CHARACTER_TOKEN,ze),R(c,O.NULL_CHARACTER_TOKEN,ze),R(c,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(c,O.COMMENT_TOKEN,Oe),R(c,O.DOCTYPE_TOKEN,Re),R(c,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.BASEFONT||n===j.BGSOUND||n===j.HEAD||n===j.LINK||n===j.META||n===j.NOFRAMES||n===j.STYLE?Be(e,t):n===j.NOSCRIPT?e._err(z.nestedNoscriptInHead):ze(e,t)})),R(c,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.NOSCRIPT?(e.openElements.pop(),e.insertionMode=J):n===j.BR?ze(e,t):e._err(z.endTagWithoutMatchingOpenElement)})),R(c,O.EOF_TOKEN,ze),c)),R(N,te,(R(u={},O.CHARACTER_TOKEN,$e),R(u,O.NULL_CHARACTER_TOKEN,$e),R(u,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(u,O.COMMENT_TOKEN,Oe),R(u,O.DOCTYPE_TOKEN,Re),R(u,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.BODY?(e._insertElement(t,W.HTML),e.framesetOk=!1,e.insertionMode=ne):n===j.FRAMESET?(e._insertElement(t,W.HTML),e.insertionMode=he):n===j.BASE||n===j.BASEFONT||n===j.BGSOUND||n===j.LINK||n===j.META||n===j.NOFRAMES||n===j.SCRIPT||n===j.STYLE||n===j.TEMPLATE||n===j.TITLE?(e._err(z.abandonedHeadElementChild),e.openElements.push(e.headElement),Be(e,t),e.openElements.remove(e.headElement)):n===j.HEAD?e._err(z.misplacedStartTagForHeadElement):$e(e,t)})),R(u,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.BODY||n===j.HTML||n===j.BR?$e(e,t):n===j.TEMPLATE?Ge(e,t):e._err(z.endTagWithoutMatchingOpenElement)})),R(u,O.EOF_TOKEN,$e),u)),R(N,ne,(R(d={},O.CHARACTER_TOKEN,je),R(d,O.NULL_CHARACTER_TOKEN,xe),R(d,O.WHITESPACE_CHARACTER_TOKEN,Ve),R(d,O.COMMENT_TOKEN,Oe),R(d,O.DOCTYPE_TOKEN,xe),R(d,O.START_TAG_TOKEN,nt),R(d,O.END_TAG_TOKEN,ot),R(d,O.EOF_TOKEN,st),d)),R(N,re,(R(p={},O.CHARACTER_TOKEN,Pe),R(p,O.NULL_CHARACTER_TOKEN,Pe),R(p,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(p,O.COMMENT_TOKEN,xe),R(p,O.DOCTYPE_TOKEN,xe),R(p,O.START_TAG_TOKEN,xe),R(p,O.END_TAG_TOKEN,(function(e,t){t.tagName===j.SCRIPT&&(e.pendingScript=e.openElements.current);e.openElements.pop(),e.insertionMode=e.originalInsertionMode})),R(p,O.EOF_TOKEN,(function(e,t){e._err(z.eofInElementThatCanContainOnlyText),e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e._processToken(t)})),p)),R(N,ae,(R(m={},O.CHARACTER_TOKEN,lt),R(m,O.NULL_CHARACTER_TOKEN,lt),R(m,O.WHITESPACE_CHARACTER_TOKEN,lt),R(m,O.COMMENT_TOKEN,Oe),R(m,O.DOCTYPE_TOKEN,xe),R(m,O.START_TAG_TOKEN,ct),R(m,O.END_TAG_TOKEN,ut),R(m,O.EOF_TOKEN,st),m)),R(N,ie,(R(g={},O.CHARACTER_TOKEN,(function(e,t){e.pendingCharacterTokens.push(t),e.hasNonWhitespacePendingCharacterToken=!0})),R(g,O.NULL_CHARACTER_TOKEN,xe),R(g,O.WHITESPACE_CHARACTER_TOKEN,(function(e,t){e.pendingCharacterTokens.push(t)})),R(g,O.COMMENT_TOKEN,pt),R(g,O.DOCTYPE_TOKEN,pt),R(g,O.START_TAG_TOKEN,pt),R(g,O.END_TAG_TOKEN,pt),R(g,O.EOF_TOKEN,pt),g)),R(N,oe,(R(h={},O.CHARACTER_TOKEN,je),R(h,O.NULL_CHARACTER_TOKEN,xe),R(h,O.WHITESPACE_CHARACTER_TOKEN,Ve),R(h,O.COMMENT_TOKEN,Oe),R(h,O.DOCTYPE_TOKEN,xe),R(h,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.CAPTION||n===j.COL||n===j.COLGROUP||n===j.TBODY||n===j.TD||n===j.TFOOT||n===j.TH||n===j.THEAD||n===j.TR?e.openElements.hasInTableScope(j.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(j.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=ae,e._processToken(t)):nt(e,t)})),R(h,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.CAPTION||n===j.TABLE?e.openElements.hasInTableScope(j.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(j.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=ae,n===j.TABLE&&e._processToken(t)):n!==j.BODY&&n!==j.COL&&n!==j.COLGROUP&&n!==j.HTML&&n!==j.TBODY&&n!==j.TD&&n!==j.TFOOT&&n!==j.TH&&n!==j.THEAD&&n!==j.TR&&ot(e,t)})),R(h,O.EOF_TOKEN,st),h)),R(N,se,(R(f={},O.CHARACTER_TOKEN,mt),R(f,O.NULL_CHARACTER_TOKEN,mt),R(f,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(f,O.COMMENT_TOKEN,Oe),R(f,O.DOCTYPE_TOKEN,xe),R(f,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.COL?(e._appendElement(t,W.HTML),t.ackSelfClosing=!0):n===j.TEMPLATE?Be(e,t):mt(e,t)})),R(f,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.COLGROUP?e.openElements.currentTagName===j.COLGROUP&&(e.openElements.pop(),e.insertionMode=ae):n===j.TEMPLATE?Ge(e,t):n!==j.COL&&mt(e,t)})),R(f,O.EOF_TOKEN,st),f)),R(N,le,(R(b={},O.CHARACTER_TOKEN,lt),R(b,O.NULL_CHARACTER_TOKEN,lt),R(b,O.WHITESPACE_CHARACTER_TOKEN,lt),R(b,O.COMMENT_TOKEN,Oe),R(b,O.DOCTYPE_TOKEN,xe),R(b,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.TR?(e.openElements.clearBackToTableBodyContext(),e._insertElement(t,W.HTML),e.insertionMode=ce):n===j.TH||n===j.TD?(e.openElements.clearBackToTableBodyContext(),e._insertFakeElement(j.TR),e.insertionMode=ce,e._processToken(t)):n===j.CAPTION||n===j.COL||n===j.COLGROUP||n===j.TBODY||n===j.TFOOT||n===j.THEAD?e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=ae,e._processToken(t)):ct(e,t)})),R(b,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.TBODY||n===j.TFOOT||n===j.THEAD?e.openElements.hasInTableScope(n)&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=ae):n===j.TABLE?e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=ae,e._processToken(t)):(n!==j.BODY&&n!==j.CAPTION&&n!==j.COL&&n!==j.COLGROUP||n!==j.HTML&&n!==j.TD&&n!==j.TH&&n!==j.TR)&&ut(e,t)})),R(b,O.EOF_TOKEN,st),b)),R(N,ce,(R(E={},O.CHARACTER_TOKEN,lt),R(E,O.NULL_CHARACTER_TOKEN,lt),R(E,O.WHITESPACE_CHARACTER_TOKEN,lt),R(E,O.COMMENT_TOKEN,Oe),R(E,O.DOCTYPE_TOKEN,xe),R(E,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.TH||n===j.TD?(e.openElements.clearBackToTableRowContext(),e._insertElement(t,W.HTML),e.insertionMode=ue,e.activeFormattingElements.insertMarker()):n===j.CAPTION||n===j.COL||n===j.COLGROUP||n===j.TBODY||n===j.TFOOT||n===j.THEAD||n===j.TR?e.openElements.hasInTableScope(j.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=le,e._processToken(t)):ct(e,t)})),R(E,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.TR?e.openElements.hasInTableScope(j.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=le):n===j.TABLE?e.openElements.hasInTableScope(j.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=le,e._processToken(t)):n===j.TBODY||n===j.TFOOT||n===j.THEAD?(e.openElements.hasInTableScope(n)||e.openElements.hasInTableScope(j.TR))&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=le,e._processToken(t)):(n!==j.BODY&&n!==j.CAPTION&&n!==j.COL&&n!==j.COLGROUP||n!==j.HTML&&n!==j.TD&&n!==j.TH)&&ut(e,t)})),R(E,O.EOF_TOKEN,st),E)),R(N,ue,(R(y={},O.CHARACTER_TOKEN,je),R(y,O.NULL_CHARACTER_TOKEN,xe),R(y,O.WHITESPACE_CHARACTER_TOKEN,Ve),R(y,O.COMMENT_TOKEN,Oe),R(y,O.DOCTYPE_TOKEN,xe),R(y,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.CAPTION||n===j.COL||n===j.COLGROUP||n===j.TBODY||n===j.TD||n===j.TFOOT||n===j.TH||n===j.THEAD||n===j.TR?(e.openElements.hasInTableScope(j.TD)||e.openElements.hasInTableScope(j.TH))&&(e._closeTableCell(),e._processToken(t)):nt(e,t)})),R(y,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.TD||n===j.TH?e.openElements.hasInTableScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=ce):n===j.TABLE||n===j.TBODY||n===j.TFOOT||n===j.THEAD||n===j.TR?e.openElements.hasInTableScope(n)&&(e._closeTableCell(),e._processToken(t)):n!==j.BODY&&n!==j.CAPTION&&n!==j.COL&&n!==j.COLGROUP&&n!==j.HTML&&ot(e,t)})),R(y,O.EOF_TOKEN,st),y)),R(N,de,(R(T={},O.CHARACTER_TOKEN,Pe),R(T,O.NULL_CHARACTER_TOKEN,xe),R(T,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(T,O.COMMENT_TOKEN,Oe),R(T,O.DOCTYPE_TOKEN,xe),R(T,O.START_TAG_TOKEN,gt),R(T,O.END_TAG_TOKEN,ht),R(T,O.EOF_TOKEN,st),T)),R(N,pe,(R(S={},O.CHARACTER_TOKEN,Pe),R(S,O.NULL_CHARACTER_TOKEN,xe),R(S,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(S,O.COMMENT_TOKEN,Oe),R(S,O.DOCTYPE_TOKEN,xe),R(S,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.CAPTION||n===j.TABLE||n===j.TBODY||n===j.TFOOT||n===j.THEAD||n===j.TR||n===j.TD||n===j.TH?(e.openElements.popUntilTagNamePopped(j.SELECT),e._resetInsertionMode(),e._processToken(t)):gt(e,t)})),R(S,O.END_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.CAPTION||n===j.TABLE||n===j.TBODY||n===j.TFOOT||n===j.THEAD||n===j.TR||n===j.TD||n===j.TH?e.openElements.hasInTableScope(n)&&(e.openElements.popUntilTagNamePopped(j.SELECT),e._resetInsertionMode(),e._processToken(t)):ht(e,t)})),R(S,O.EOF_TOKEN,st),S)),R(N,me,(R(v={},O.CHARACTER_TOKEN,je),R(v,O.NULL_CHARACTER_TOKEN,xe),R(v,O.WHITESPACE_CHARACTER_TOKEN,Ve),R(v,O.COMMENT_TOKEN,Oe),R(v,O.DOCTYPE_TOKEN,xe),R(v,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;if(n===j.BASE||n===j.BASEFONT||n===j.BGSOUND||n===j.LINK||n===j.META||n===j.NOFRAMES||n===j.SCRIPT||n===j.STYLE||n===j.TEMPLATE||n===j.TITLE)Be(e,t);else{var r=Te[n]||ne;e._popTmplInsertionMode(),e._pushTmplInsertionMode(r),e.insertionMode=r,e._processToken(t)}})),R(v,O.END_TAG_TOKEN,(function(e,t){t.tagName===j.TEMPLATE&&Ge(e,t)})),R(v,O.EOF_TOKEN,ft),v)),R(N,ge,(R(A={},O.CHARACTER_TOKEN,bt),R(A,O.NULL_CHARACTER_TOKEN,bt),R(A,O.WHITESPACE_CHARACTER_TOKEN,Ve),R(A,O.COMMENT_TOKEN,(function(e,t){e._appendCommentNode(t,e.openElements.items[0])})),R(A,O.DOCTYPE_TOKEN,xe),R(A,O.START_TAG_TOKEN,(function(e,t){t.tagName===j.HTML?nt(e,t):bt(e,t)})),R(A,O.END_TAG_TOKEN,(function(e,t){t.tagName===j.HTML?e.fragmentContext||(e.insertionMode=be):bt(e,t)})),R(A,O.EOF_TOKEN,De),A)),R(N,he,(R(k={},O.CHARACTER_TOKEN,xe),R(k,O.NULL_CHARACTER_TOKEN,xe),R(k,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(k,O.COMMENT_TOKEN,Oe),R(k,O.DOCTYPE_TOKEN,xe),R(k,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.FRAMESET?e._insertElement(t,W.HTML):n===j.FRAME?(e._appendElement(t,W.HTML),t.ackSelfClosing=!0):n===j.NOFRAMES&&Be(e,t)})),R(k,O.END_TAG_TOKEN,(function(e,t){t.tagName!==j.FRAMESET||e.openElements.isRootHtmlElementCurrent()||(e.openElements.pop(),e.fragmentContext||e.openElements.currentTagName===j.FRAMESET||(e.insertionMode=fe))})),R(k,O.EOF_TOKEN,De),k)),R(N,fe,(R(w={},O.CHARACTER_TOKEN,xe),R(w,O.NULL_CHARACTER_TOKEN,xe),R(w,O.WHITESPACE_CHARACTER_TOKEN,Pe),R(w,O.COMMENT_TOKEN,Oe),R(w,O.DOCTYPE_TOKEN,xe),R(w,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.NOFRAMES&&Be(e,t)})),R(w,O.END_TAG_TOKEN,(function(e,t){t.tagName===j.HTML&&(e.insertionMode=Ee)})),R(w,O.EOF_TOKEN,De),w)),R(N,be,(R(_={},O.CHARACTER_TOKEN,Et),R(_,O.NULL_CHARACTER_TOKEN,Et),R(_,O.WHITESPACE_CHARACTER_TOKEN,Ve),R(_,O.COMMENT_TOKEN,Le),R(_,O.DOCTYPE_TOKEN,xe),R(_,O.START_TAG_TOKEN,(function(e,t){t.tagName===j.HTML?nt(e,t):Et(e,t)})),R(_,O.END_TAG_TOKEN,Et),R(_,O.EOF_TOKEN,De),_)),R(N,Ee,(R(C={},O.CHARACTER_TOKEN,xe),R(C,O.NULL_CHARACTER_TOKEN,xe),R(C,O.WHITESPACE_CHARACTER_TOKEN,Ve),R(C,O.COMMENT_TOKEN,Le),R(C,O.DOCTYPE_TOKEN,xe),R(C,O.START_TAG_TOKEN,(function(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.NOFRAMES&&Be(e,t)})),R(C,O.END_TAG_TOKEN,xe),R(C,O.EOF_TOKEN,De),C)),N),ve=function(){function e(t){I(this,e),this.options=B(K,t),this.treeAdapter=this.options.treeAdapter,this.pendingScript=null,this.options.sourceCodeLocationInfo&&F.install(this,D),this.options.onParseError&&F.install(this,M,{onParseError:this.options.onParseError})}return x(e,[{key:"parse",value:function(e){var t=this.treeAdapter.createDocument();return this._bootstrap(t,null),this.tokenizer.write(e,!0),this._runParsingLoop(null),t}},{key:"parseFragment",value:function(e,t){t||(t=this.treeAdapter.createElement(j.TEMPLATE,W.HTML,[]));var n=this.treeAdapter.createElement("documentmock",W.HTML,[]);this._bootstrap(n,t),this.treeAdapter.getTagName(t)===j.TEMPLATE&&this._pushTmplInsertionMode(me),this._initTokenizerForFragmentParsing(),this._insertFakeRootElement(),this._resetInsertionMode(),this._findFormInFragmentContext(),this.tokenizer.write(e,!0),this._runParsingLoop(null);var r=this.treeAdapter.getFirstChild(n),a=this.treeAdapter.createDocumentFragment();return this._adoptNodes(r,a),a}},{key:"_bootstrap",value:function(e,t){this.tokenizer=new O(this.options),this.stopped=!1,this.insertionMode=Y,this.originalInsertionMode="",this.document=e,this.fragmentContext=t,this.headElement=null,this.formElement=null,this.openElements=new L(this.document,this.treeAdapter),this.activeFormattingElements=new P(this.treeAdapter),this.tmplInsertionModeStack=[],this.tmplInsertionModeStackTop=-1,this.currentTmplInsertionMode=null,this.pendingCharacterTokens=[],this.hasNonWhitespacePendingCharacterToken=!1,this.framesetOk=!0,this.skipNextNewLine=!1,this.fosterParentingEnabled=!1}},{key:"_err",value:function(){}},{key:"_runParsingLoop",value:function(e){for(;!this.stopped;){this._setupTokenizerCDATAMode();var t=this.tokenizer.getNextToken();if(t.type===O.HIBERNATION_TOKEN)break;if(this.skipNextNewLine&&(this.skipNextNewLine=!1,t.type===O.WHITESPACE_CHARACTER_TOKEN&&"\n"===t.chars[0])){if(1===t.chars.length)continue;t.chars=t.chars.substr(1)}if(this._processInputToken(t),e&&this.pendingScript)break}}},{key:"runParsingLoopForCurrentChunk",value:function(e,t){if(this._runParsingLoop(t),t&&this.pendingScript){var n=this.pendingScript;return this.pendingScript=null,void t(n)}e&&e()}},{key:"_setupTokenizerCDATAMode",value:function(){var e=this._getAdjustedCurrentElement();this.tokenizer.allowCDATA=e&&e!==this.document&&this.treeAdapter.getNamespaceURI(e)!==W.HTML&&!this._isIntegrationPoint(e)}},{key:"_switchToTextParsing",value:function(e,t){this._insertElement(e,W.HTML),this.tokenizer.state=t,this.originalInsertionMode=this.insertionMode,this.insertionMode=re}},{key:"switchToPlaintextParsing",value:function(){this.insertionMode=re,this.originalInsertionMode=ne,this.tokenizer.state=O.MODE.PLAINTEXT}},{key:"_getAdjustedCurrentElement",value:function(){return 0===this.openElements.stackTop&&this.fragmentContext?this.fragmentContext:this.openElements.current}},{key:"_findFormInFragmentContext",value:function(){var e=this.fragmentContext;do{if(this.treeAdapter.getTagName(e)===j.FORM){this.formElement=e;break}e=this.treeAdapter.getParentNode(e)}while(e)}},{key:"_initTokenizerForFragmentParsing",value:function(){if(this.treeAdapter.getNamespaceURI(this.fragmentContext)===W.HTML){var e=this.treeAdapter.getTagName(this.fragmentContext);e===j.TITLE||e===j.TEXTAREA?this.tokenizer.state=O.MODE.RCDATA:e===j.STYLE||e===j.XMP||e===j.IFRAME||e===j.NOEMBED||e===j.NOFRAMES||e===j.NOSCRIPT?this.tokenizer.state=O.MODE.RAWTEXT:e===j.SCRIPT?this.tokenizer.state=O.MODE.SCRIPT_DATA:e===j.PLAINTEXT&&(this.tokenizer.state=O.MODE.PLAINTEXT)}}},{key:"_setDocumentType",value:function(e){var t=e.name||"",n=e.publicId||"",r=e.systemId||"";this.treeAdapter.setDocumentType(this.document,t,n,r)}},{key:"_attachElementToTree",value:function(e){if(this._shouldFosterParentOnInsertion())this._fosterParentElement(e);else{var t=this.openElements.currentTmplContent||this.openElements.current;this.treeAdapter.appendChild(t,e)}}},{key:"_appendElement",value:function(e,t){var n=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(n)}},{key:"_insertElement",value:function(e,t){var n=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(n),this.openElements.push(n)}},{key:"_insertFakeElement",value:function(e){var t=this.treeAdapter.createElement(e,W.HTML,[]);this._attachElementToTree(t),this.openElements.push(t)}},{key:"_insertTemplate",value:function(e){var t=this.treeAdapter.createElement(e.tagName,W.HTML,e.attrs),n=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(t,n),this._attachElementToTree(t),this.openElements.push(t)}},{key:"_insertFakeRootElement",value:function(){var e=this.treeAdapter.createElement(j.HTML,W.HTML,[]);this.treeAdapter.appendChild(this.openElements.current,e),this.openElements.push(e)}},{key:"_appendCommentNode",value:function(e,t){var n=this.treeAdapter.createCommentNode(e.data);this.treeAdapter.appendChild(t,n)}},{key:"_insertCharacters",value:function(e){if(this._shouldFosterParentOnInsertion())this._fosterParentText(e.chars);else{var t=this.openElements.currentTmplContent||this.openElements.current;this.treeAdapter.insertText(t,e.chars)}}},{key:"_adoptNodes",value:function(e,t){for(var n=this.treeAdapter.getFirstChild(e);n;n=this.treeAdapter.getFirstChild(e))this.treeAdapter.detachNode(n),this.treeAdapter.appendChild(t,n)}},{key:"_shouldProcessTokenInForeignContent",value:function(e){var t=this._getAdjustedCurrentElement();if(!t||t===this.document)return!1;var n=this.treeAdapter.getNamespaceURI(t);if(n===W.HTML)return!1;if(this.treeAdapter.getTagName(t)===j.ANNOTATION_XML&&n===W.MATHML&&e.type===O.START_TAG_TOKEN&&e.tagName===j.SVG)return!1;var r=e.type===O.CHARACTER_TOKEN||e.type===O.NULL_CHARACTER_TOKEN||e.type===O.WHITESPACE_CHARACTER_TOKEN;return(!(e.type===O.START_TAG_TOKEN&&e.tagName!==j.MGLYPH&&e.tagName!==j.MALIGNMARK)&&!r||!this._isIntegrationPoint(t,W.MATHML))&&((e.type!==O.START_TAG_TOKEN&&!r||!this._isIntegrationPoint(t,W.HTML))&&e.type!==O.EOF_TOKEN)}},{key:"_processToken",value:function(e){Se[this.insertionMode][e.type](this,e)}},{key:"_processTokenInBodyMode",value:function(e){Se.IN_BODY_MODE[e.type](this,e)}},{key:"_processTokenInForeignContent",value:function(e){e.type===O.CHARACTER_TOKEN?function(e,t){e._insertCharacters(t),e.framesetOk=!1}(this,e):e.type===O.NULL_CHARACTER_TOKEN?function(e,t){t.chars=$.REPLACEMENT_CHARACTER,e._insertCharacters(t)}(this,e):e.type===O.WHITESPACE_CHARACTER_TOKEN?Pe(this,e):e.type===O.COMMENT_TOKEN?Oe(this,e):e.type===O.START_TAG_TOKEN?function(e,t){if(H.causesExit(t)&&!e.fragmentContext){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==W.HTML&&!e._isIntegrationPoint(e.openElements.current);)e.openElements.pop();e._processToken(t)}else{var n=e._getAdjustedCurrentElement(),r=e.treeAdapter.getNamespaceURI(n);r===W.MATHML?H.adjustTokenMathMLAttrs(t):r===W.SVG&&(H.adjustTokenSVGTagName(t),H.adjustTokenSVGAttrs(t)),H.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,r):e._insertElement(t,r),t.ackSelfClosing=!0}}(this,e):e.type===O.END_TAG_TOKEN&&function(e,t){for(var n=e.openElements.stackTop;n>0;n--){var r=e.openElements.items[n];if(e.treeAdapter.getNamespaceURI(r)===W.HTML){e._processToken(t);break}if(e.treeAdapter.getTagName(r).toLowerCase()===t.tagName){e.openElements.popUntilElementPopped(r);break}}}(this,e)}},{key:"_processInputToken",value:function(e){this._shouldProcessTokenInForeignContent(e)?this._processTokenInForeignContent(e):this._processToken(e),e.type===O.START_TAG_TOKEN&&e.selfClosing&&!e.ackSelfClosing&&this._err(z.nonVoidHtmlElementStartTagWithTrailingSolidus)}},{key:"_isIntegrationPoint",value:function(e,t){var n=this.treeAdapter.getTagName(e),r=this.treeAdapter.getNamespaceURI(e),a=this.treeAdapter.getAttrList(e);return H.isIntegrationPoint(n,r,a,t)}},{key:"_reconstructActiveFormattingElements",value:function(){var e=this.activeFormattingElements.length;if(e){var t=e,n=null;do{if(t--,(n=this.activeFormattingElements.entries[t]).type===P.MARKER_ENTRY||this.openElements.contains(n.element)){t++;break}}while(t>0);for(var r=t;r<e;r++)n=this.activeFormattingElements.entries[r],this._insertElement(n.token,this.treeAdapter.getNamespaceURI(n.element)),n.element=this.openElements.current}}},{key:"_closeTableCell",value:function(){this.openElements.generateImpliedEndTags(),this.openElements.popUntilTableCellPopped(),this.activeFormattingElements.clearToLastMarker(),this.insertionMode=ce}},{key:"_closePElement",value:function(){this.openElements.generateImpliedEndTagsWithExclusion(j.P),this.openElements.popUntilTagNamePopped(j.P)}},{key:"_resetInsertionMode",value:function(){for(var e=this.openElements.stackTop,t=!1;e>=0;e--){var n=this.openElements.items[e];0===e&&(t=!0,this.fragmentContext&&(n=this.fragmentContext));var r=this.treeAdapter.getTagName(n),a=ye[r];if(a){this.insertionMode=a;break}if(!(t||r!==j.TD&&r!==j.TH)){this.insertionMode=ue;break}if(!t&&r===j.HEAD){this.insertionMode=J;break}if(r===j.SELECT){this._resetInsertionModeForSelect(e);break}if(r===j.TEMPLATE){this.insertionMode=this.currentTmplInsertionMode;break}if(r===j.HTML){this.insertionMode=this.headElement?te:Q;break}if(t){this.insertionMode=ne;break}}}},{key:"_resetInsertionModeForSelect",value:function(e){if(e>0)for(var t=e-1;t>0;t--){var n=this.openElements.items[t],r=this.treeAdapter.getTagName(n);if(r===j.TEMPLATE)break;if(r===j.TABLE)return void(this.insertionMode=pe)}this.insertionMode=de}},{key:"_pushTmplInsertionMode",value:function(e){this.tmplInsertionModeStack.push(e),this.tmplInsertionModeStackTop++,this.currentTmplInsertionMode=e}},{key:"_popTmplInsertionMode",value:function(){this.tmplInsertionModeStack.pop(),this.tmplInsertionModeStackTop--,this.currentTmplInsertionMode=this.tmplInsertionModeStack[this.tmplInsertionModeStackTop]}},{key:"_isElementCausesFosterParenting",value:function(e){var t=this.treeAdapter.getTagName(e);return t===j.TABLE||t===j.TBODY||t===j.TFOOT||t===j.THEAD||t===j.TR}},{key:"_shouldFosterParentOnInsertion",value:function(){return this.fosterParentingEnabled&&this._isElementCausesFosterParenting(this.openElements.current)}},{key:"_findFosterParentingLocation",value:function(){for(var e={parent:null,beforeElement:null},t=this.openElements.stackTop;t>=0;t--){var n=this.openElements.items[t],r=this.treeAdapter.getTagName(n),a=this.treeAdapter.getNamespaceURI(n);if(r===j.TEMPLATE&&a===W.HTML){e.parent=this.treeAdapter.getTemplateContent(n);break}if(r===j.TABLE){e.parent=this.treeAdapter.getParentNode(n),e.parent?e.beforeElement=n:e.parent=this.openElements.items[t-1];break}}return e.parent||(e.parent=this.openElements.items[0]),e}},{key:"_fosterParentElement",value:function(e){var t=this._findFosterParentingLocation();t.beforeElement?this.treeAdapter.insertBefore(t.parent,e,t.beforeElement):this.treeAdapter.appendChild(t.parent,e)}},{key:"_fosterParentText",value:function(e){var t=this._findFosterParentingLocation();t.beforeElement?this.treeAdapter.insertTextBefore(t.parent,e,t.beforeElement):this.treeAdapter.insertText(t.parent,e)}},{key:"_isSpecialElement",value:function(e){var t=this.treeAdapter.getTagName(e),n=this.treeAdapter.getNamespaceURI(e);return V.SPECIAL_ELEMENTS[n][t]}}]),e}();function Ae(e,t){var n=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);return n?e.openElements.contains(n.element)?e.openElements.hasInScope(t.tagName)||(n=null):(e.activeFormattingElements.removeEntry(n),n=null):it(e,t),n}function ke(e,t){for(var n=null,r=e.openElements.stackTop;r>=0;r--){var a=e.openElements.items[r];if(a===t.element)break;e._isSpecialElement(a)&&(n=a)}return n||(e.openElements.popUntilElementPopped(t.element),e.activeFormattingElements.removeEntry(t)),n}function we(e,t,n){for(var r=t,a=e.openElements.getCommonAncestor(t),i=0,o=a;o!==n;i++,o=a){a=e.openElements.getCommonAncestor(o);var s=e.activeFormattingElements.getElementEntry(o),l=s&&i>=3;!s||l?(l&&e.activeFormattingElements.removeEntry(s),e.openElements.remove(o)):(o=_e(e,s),r===t&&(e.activeFormattingElements.bookmark=s),e.treeAdapter.detachNode(r),e.treeAdapter.appendChild(o,r),r=o)}return r}function _e(e,t){var n=e.treeAdapter.getNamespaceURI(t.element),r=e.treeAdapter.createElement(t.token.tagName,n,t.token.attrs);return e.openElements.replace(t.element,r),t.element=r,r}function Ce(e,t,n){if(e._isElementCausesFosterParenting(t))e._fosterParentElement(n);else{var r=e.treeAdapter.getTagName(t),a=e.treeAdapter.getNamespaceURI(t);r===j.TEMPLATE&&a===W.HTML&&(t=e.treeAdapter.getTemplateContent(t)),e.treeAdapter.appendChild(t,n)}}function Ne(e,t,n){var r=e.treeAdapter.getNamespaceURI(n.element),a=n.token,i=e.treeAdapter.createElement(a.tagName,r,a.attrs);e._adoptNodes(t,i),e.treeAdapter.appendChild(t,i),e.activeFormattingElements.insertElementAfterBookmark(i,n.token),e.activeFormattingElements.removeEntry(n),e.openElements.remove(n.element),e.openElements.insertAfter(t,i)}function Ie(e,t){for(var n,r=0;r<8&&(n=Ae(e,t));r++){var a=ke(e,n);if(!a)break;e.activeFormattingElements.bookmark=n;var i=we(e,a,n.element),o=e.openElements.getCommonAncestor(n.element);e.treeAdapter.detachNode(i),Ce(e,o,i),Ne(e,a,n)}}function xe(){}function Re(e){e._err(z.misplacedDoctype)}function Oe(e,t){e._appendCommentNode(t,e.openElements.currentTmplContent||e.openElements.current)}function Le(e,t){e._appendCommentNode(t,e.document)}function Pe(e,t){e._insertCharacters(t)}function De(e){e.stopped=!0}function Me(e,t){e._err(z.missingDoctype,{beforeToken:!0}),e.treeAdapter.setDocumentMode(e.document,V.DOCUMENT_MODE.QUIRKS),e.insertionMode=Z,e._processToken(t)}function Fe(e,t){e._insertFakeRootElement(),e.insertionMode=Q,e._processToken(t)}function Ue(e,t){e._insertFakeElement(j.HEAD),e.headElement=e.openElements.current,e.insertionMode=J,e._processToken(t)}function Be(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.BASE||n===j.BASEFONT||n===j.BGSOUND||n===j.LINK||n===j.META?(e._appendElement(t,W.HTML),t.ackSelfClosing=!0):n===j.TITLE?e._switchToTextParsing(t,O.MODE.RCDATA):n===j.NOSCRIPT?e.options.scriptingEnabled?e._switchToTextParsing(t,O.MODE.RAWTEXT):(e._insertElement(t,W.HTML),e.insertionMode=ee):n===j.NOFRAMES||n===j.STYLE?e._switchToTextParsing(t,O.MODE.RAWTEXT):n===j.SCRIPT?e._switchToTextParsing(t,O.MODE.SCRIPT_DATA):n===j.TEMPLATE?(e._insertTemplate(t,W.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=me,e._pushTmplInsertionMode(me)):n===j.HEAD?e._err(z.misplacedStartTagForHeadElement):He(e,t)}function Ge(e,t){var n=t.tagName;n===j.HEAD?(e.openElements.pop(),e.insertionMode=te):n===j.BODY||n===j.BR||n===j.HTML?He(e,t):n===j.TEMPLATE&&e.openElements.tmplCount>0?(e.openElements.generateImpliedEndTagsThoroughly(),e.openElements.currentTagName!==j.TEMPLATE&&e._err(z.closingOfElementWithOpenChildElements),e.openElements.popUntilTagNamePopped(j.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e._popTmplInsertionMode(),e._resetInsertionMode()):e._err(z.endTagWithoutMatchingOpenElement)}function He(e,t){e.openElements.pop(),e.insertionMode=te,e._processToken(t)}function ze(e,t){var n=t.type===O.EOF_TOKEN?z.openElementsLeftAfterEof:z.disallowedContentInNoscriptInHead;e._err(n),e.openElements.pop(),e.insertionMode=J,e._processToken(t)}function $e(e,t){e._insertFakeElement(j.BODY),e.insertionMode=ne,e._processToken(t)}function Ve(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t)}function je(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t),e.framesetOk=!1}function We(e,t){e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._insertElement(t,W.HTML)}function qe(e,t){e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._insertElement(t,W.HTML),e.skipNextNewLine=!0,e.framesetOk=!1}function Ke(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,W.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function Xe(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,W.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1}function Ye(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,W.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function Ze(e,t){e._appendElement(t,W.HTML),t.ackSelfClosing=!0}function Qe(e,t){e._switchToTextParsing(t,O.MODE.RAWTEXT)}function Je(e,t){e.openElements.currentTagName===j.OPTION&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(t,W.HTML)}function et(e,t){e.openElements.hasInScope(j.RUBY)&&e.openElements.generateImpliedEndTags(),e._insertElement(t,W.HTML)}function tt(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,W.HTML)}function nt(e,t){var n=t.tagName;switch(n.length){case 1:n===j.I||n===j.S||n===j.B||n===j.U?Ke(e,t):n===j.P?We(e,t):n===j.A?function(e,t){var n=e.activeFormattingElements.getElementEntryInScopeWithTagName(j.A);n&&(Ie(e,t),e.openElements.remove(n.element),e.activeFormattingElements.removeEntry(n)),e._reconstructActiveFormattingElements(),e._insertElement(t,W.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}(e,t):tt(e,t);break;case 2:n===j.DL||n===j.OL||n===j.UL?We(e,t):n===j.H1||n===j.H2||n===j.H3||n===j.H4||n===j.H5||n===j.H6?function(e,t){e.openElements.hasInButtonScope(j.P)&&e._closePElement();var n=e.openElements.currentTagName;n!==j.H1&&n!==j.H2&&n!==j.H3&&n!==j.H4&&n!==j.H5&&n!==j.H6||e.openElements.pop(),e._insertElement(t,W.HTML)}(e,t):n===j.LI||n===j.DD||n===j.DT?function(e,t){e.framesetOk=!1;for(var n=t.tagName,r=e.openElements.stackTop;r>=0;r--){var a=e.openElements.items[r],i=e.treeAdapter.getTagName(a),o=null;if(n===j.LI&&i===j.LI?o=j.LI:n!==j.DD&&n!==j.DT||i!==j.DD&&i!==j.DT||(o=i),o){e.openElements.generateImpliedEndTagsWithExclusion(o),e.openElements.popUntilTagNamePopped(o);break}if(i!==j.ADDRESS&&i!==j.DIV&&i!==j.P&&e._isSpecialElement(a))break}e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._insertElement(t,W.HTML)}(e,t):n===j.EM||n===j.TT?Ke(e,t):n===j.BR?Ye(e,t):n===j.HR?function(e,t){e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._appendElement(t,W.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}(e,t):n===j.RB?et(e,t):n===j.RT||n===j.RP?function(e,t){e.openElements.hasInScope(j.RUBY)&&e.openElements.generateImpliedEndTagsWithExclusion(j.RTC),e._insertElement(t,W.HTML)}(e,t):n!==j.TH&&n!==j.TD&&n!==j.TR&&tt(e,t);break;case 3:n===j.DIV||n===j.DIR||n===j.NAV?We(e,t):n===j.PRE?qe(e,t):n===j.BIG?Ke(e,t):n===j.IMG||n===j.WBR?Ye(e,t):n===j.XMP?function(e,t){e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._reconstructActiveFormattingElements(),e.framesetOk=!1,e._switchToTextParsing(t,O.MODE.RAWTEXT)}(e,t):n===j.SVG?function(e,t){e._reconstructActiveFormattingElements(),H.adjustTokenSVGAttrs(t),H.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,W.SVG):e._insertElement(t,W.SVG),t.ackSelfClosing=!0}(e,t):n===j.RTC?et(e,t):n!==j.COL&&tt(e,t);break;case 4:n===j.HTML?function(e,t){0===e.openElements.tmplCount&&e.treeAdapter.adoptAttributes(e.openElements.items[0],t.attrs)}(e,t):n===j.BASE||n===j.LINK||n===j.META?Be(e,t):n===j.BODY?function(e,t){var n=e.openElements.tryPeekProperlyNestedBodyElement();n&&0===e.openElements.tmplCount&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(n,t.attrs))}(e,t):n===j.MAIN||n===j.MENU?We(e,t):n===j.FORM?function(e,t){var n=e.openElements.tmplCount>0;e.formElement&&!n||(e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._insertElement(t,W.HTML),n||(e.formElement=e.openElements.current))}(e,t):n===j.CODE||n===j.FONT?Ke(e,t):n===j.NOBR?function(e,t){e._reconstructActiveFormattingElements(),e.openElements.hasInScope(j.NOBR)&&(Ie(e,t),e._reconstructActiveFormattingElements()),e._insertElement(t,W.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}(e,t):n===j.AREA?Ye(e,t):n===j.MATH?function(e,t){e._reconstructActiveFormattingElements(),H.adjustTokenMathMLAttrs(t),H.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,W.MATHML):e._insertElement(t,W.MATHML),t.ackSelfClosing=!0}(e,t):n===j.MENU?function(e,t){e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._insertElement(t,W.HTML)}(e,t):n!==j.HEAD&&tt(e,t);break;case 5:n===j.STYLE||n===j.TITLE?Be(e,t):n===j.ASIDE?We(e,t):n===j.SMALL?Ke(e,t):n===j.TABLE?function(e,t){e.treeAdapter.getDocumentMode(e.document)!==V.DOCUMENT_MODE.QUIRKS&&e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._insertElement(t,W.HTML),e.framesetOk=!1,e.insertionMode=ae}(e,t):n===j.EMBED?Ye(e,t):n===j.INPUT?function(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,W.HTML);var n=O.getTokenAttr(t,q.TYPE);n&&n.toLowerCase()===X||(e.framesetOk=!1),t.ackSelfClosing=!0}(e,t):n===j.PARAM||n===j.TRACK?Ze(e,t):n===j.IMAGE?function(e,t){t.tagName=j.IMG,Ye(e,t)}(e,t):n!==j.FRAME&&n!==j.TBODY&&n!==j.TFOOT&&n!==j.THEAD&&tt(e,t);break;case 6:n===j.SCRIPT?Be(e,t):n===j.CENTER||n===j.FIGURE||n===j.FOOTER||n===j.HEADER||n===j.HGROUP||n===j.DIALOG?We(e,t):n===j.BUTTON?function(e,t){e.openElements.hasInScope(j.BUTTON)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(j.BUTTON)),e._reconstructActiveFormattingElements(),e._insertElement(t,W.HTML),e.framesetOk=!1}(e,t):n===j.STRIKE||n===j.STRONG?Ke(e,t):n===j.APPLET||n===j.OBJECT?Xe(e,t):n===j.KEYGEN?Ye(e,t):n===j.SOURCE?Ze(e,t):n===j.IFRAME?function(e,t){e.framesetOk=!1,e._switchToTextParsing(t,O.MODE.RAWTEXT)}(e,t):n===j.SELECT?function(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,W.HTML),e.framesetOk=!1,e.insertionMode===ae||e.insertionMode===oe||e.insertionMode===le||e.insertionMode===ce||e.insertionMode===ue?e.insertionMode=pe:e.insertionMode=de}(e,t):n===j.OPTION?Je(e,t):tt(e,t);break;case 7:n===j.BGSOUND?Be(e,t):n===j.DETAILS||n===j.ADDRESS||n===j.ARTICLE||n===j.SECTION||n===j.SUMMARY?We(e,t):n===j.LISTING?qe(e,t):n===j.MARQUEE?Xe(e,t):n===j.NOEMBED?Qe(e,t):n!==j.CAPTION&&tt(e,t);break;case 8:n===j.BASEFONT?Be(e,t):n===j.FRAMESET?function(e,t){var n=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&n&&(e.treeAdapter.detachNode(n),e.openElements.popAllUpToHtmlElement(),e._insertElement(t,W.HTML),e.insertionMode=he)}(e,t):n===j.FIELDSET?We(e,t):n===j.TEXTAREA?function(e,t){e._insertElement(t,W.HTML),e.skipNextNewLine=!0,e.tokenizer.state=O.MODE.RCDATA,e.originalInsertionMode=e.insertionMode,e.framesetOk=!1,e.insertionMode=re}(e,t):n===j.TEMPLATE?Be(e,t):n===j.NOSCRIPT?e.options.scriptingEnabled?Qe(e,t):tt(e,t):n===j.OPTGROUP?Je(e,t):n!==j.COLGROUP&&tt(e,t);break;case 9:n===j.PLAINTEXT?function(e,t){e.openElements.hasInButtonScope(j.P)&&e._closePElement(),e._insertElement(t,W.HTML),e.tokenizer.state=O.MODE.PLAINTEXT}(e,t):tt(e,t);break;case 10:n===j.BLOCKQUOTE||n===j.FIGCAPTION?We(e,t):tt(e,t);break;default:tt(e,t)}}function rt(e,t){var n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n))}function at(e,t){var n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker())}function it(e,t){for(var n=t.tagName,r=e.openElements.stackTop;r>0;r--){var a=e.openElements.items[r];if(e.treeAdapter.getTagName(a)===n){e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilElementPopped(a);break}if(e._isSpecialElement(a))break}}function ot(e,t){var n=t.tagName;switch(n.length){case 1:n===j.A||n===j.B||n===j.I||n===j.S||n===j.U?Ie(e,t):n===j.P?function(e){e.openElements.hasInButtonScope(j.P)||e._insertFakeElement(j.P),e._closePElement()}(e):it(e,t);break;case 2:n===j.DL||n===j.UL||n===j.OL?rt(e,t):n===j.LI?function(e){e.openElements.hasInListItemScope(j.LI)&&(e.openElements.generateImpliedEndTagsWithExclusion(j.LI),e.openElements.popUntilTagNamePopped(j.LI))}(e):n===j.DD||n===j.DT?function(e,t){var n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilTagNamePopped(n))}(e,t):n===j.H1||n===j.H2||n===j.H3||n===j.H4||n===j.H5||n===j.H6?function(e){e.openElements.hasNumberedHeaderInScope()&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilNumberedHeaderPopped())}(e):n===j.BR?function(e){e._reconstructActiveFormattingElements(),e._insertFakeElement(j.BR),e.openElements.pop(),e.framesetOk=!1}(e):n===j.EM||n===j.TT?Ie(e,t):it(e,t);break;case 3:n===j.BIG?Ie(e,t):n===j.DIR||n===j.DIV||n===j.NAV||n===j.PRE?rt(e,t):it(e,t);break;case 4:n===j.BODY?function(e){e.openElements.hasInScope(j.BODY)&&(e.insertionMode=ge)}(e):n===j.HTML?function(e,t){e.openElements.hasInScope(j.BODY)&&(e.insertionMode=ge,e._processToken(t))}(e,t):n===j.FORM?function(e){var t=e.openElements.tmplCount>0,n=e.formElement;t||(e.formElement=null),(n||t)&&e.openElements.hasInScope(j.FORM)&&(e.openElements.generateImpliedEndTags(),t?e.openElements.popUntilTagNamePopped(j.FORM):e.openElements.remove(n))}(e):n===j.CODE||n===j.FONT||n===j.NOBR?Ie(e,t):n===j.MAIN||n===j.MENU?rt(e,t):it(e,t);break;case 5:n===j.ASIDE?rt(e,t):n===j.SMALL?Ie(e,t):it(e,t);break;case 6:n===j.CENTER||n===j.FIGURE||n===j.FOOTER||n===j.HEADER||n===j.HGROUP||n===j.DIALOG?rt(e,t):n===j.APPLET||n===j.OBJECT?at(e,t):n===j.STRIKE||n===j.STRONG?Ie(e,t):it(e,t);break;case 7:n===j.ADDRESS||n===j.ARTICLE||n===j.DETAILS||n===j.SECTION||n===j.SUMMARY||n===j.LISTING?rt(e,t):n===j.MARQUEE?at(e,t):it(e,t);break;case 8:n===j.FIELDSET?rt(e,t):n===j.TEMPLATE?Ge(e,t):it(e,t);break;case 10:n===j.BLOCKQUOTE||n===j.FIGCAPTION?rt(e,t):it(e,t);break;default:it(e,t)}}function st(e,t){e.tmplInsertionModeStackTop>-1?ft(e,t):e.stopped=!0}function lt(e,t){var n=e.openElements.currentTagName;n===j.TABLE||n===j.TBODY||n===j.TFOOT||n===j.THEAD||n===j.TR?(e.pendingCharacterTokens=[],e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=ie,e._processToken(t)):dt(e,t)}function ct(e,t){var n=t.tagName;switch(n.length){case 2:n===j.TD||n===j.TH||n===j.TR?function(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(j.TBODY),e.insertionMode=le,e._processToken(t)}(e,t):dt(e,t);break;case 3:n===j.COL?function(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(j.COLGROUP),e.insertionMode=se,e._processToken(t)}(e,t):dt(e,t);break;case 4:n===j.FORM?function(e,t){e.formElement||0!==e.openElements.tmplCount||(e._insertElement(t,W.HTML),e.formElement=e.openElements.current,e.openElements.pop())}(e,t):dt(e,t);break;case 5:n===j.TABLE?function(e,t){e.openElements.hasInTableScope(j.TABLE)&&(e.openElements.popUntilTagNamePopped(j.TABLE),e._resetInsertionMode(),e._processToken(t))}(e,t):n===j.STYLE?Be(e,t):n===j.TBODY||n===j.TFOOT||n===j.THEAD?function(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,W.HTML),e.insertionMode=le}(e,t):n===j.INPUT?function(e,t){var n=O.getTokenAttr(t,q.TYPE);n&&n.toLowerCase()===X?e._appendElement(t,W.HTML):dt(e,t),t.ackSelfClosing=!0}(e,t):dt(e,t);break;case 6:n===j.SCRIPT?Be(e,t):dt(e,t);break;case 7:n===j.CAPTION?function(e,t){e.openElements.clearBackToTableContext(),e.activeFormattingElements.insertMarker(),e._insertElement(t,W.HTML),e.insertionMode=oe}(e,t):dt(e,t);break;case 8:n===j.COLGROUP?function(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,W.HTML),e.insertionMode=se}(e,t):n===j.TEMPLATE?Be(e,t):dt(e,t);break;default:dt(e,t)}}function ut(e,t){var n=t.tagName;n===j.TABLE?e.openElements.hasInTableScope(j.TABLE)&&(e.openElements.popUntilTagNamePopped(j.TABLE),e._resetInsertionMode()):n===j.TEMPLATE?Ge(e,t):n!==j.BODY&&n!==j.CAPTION&&n!==j.COL&&n!==j.COLGROUP&&n!==j.HTML&&n!==j.TBODY&&n!==j.TD&&n!==j.TFOOT&&n!==j.TH&&n!==j.THEAD&&n!==j.TR&&dt(e,t)}function dt(e,t){var n=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,e._processTokenInBodyMode(t),e.fosterParentingEnabled=n}function pt(e,t){var n=0;if(e.hasNonWhitespacePendingCharacterToken)for(;n<e.pendingCharacterTokens.length;n++)dt(e,e.pendingCharacterTokens[n]);else for(;n<e.pendingCharacterTokens.length;n++)e._insertCharacters(e.pendingCharacterTokens[n]);e.insertionMode=e.originalInsertionMode,e._processToken(t)}function mt(e,t){e.openElements.currentTagName===j.COLGROUP&&(e.openElements.pop(),e.insertionMode=ae,e._processToken(t))}function gt(e,t){var n=t.tagName;n===j.HTML?nt(e,t):n===j.OPTION?(e.openElements.currentTagName===j.OPTION&&e.openElements.pop(),e._insertElement(t,W.HTML)):n===j.OPTGROUP?(e.openElements.currentTagName===j.OPTION&&e.openElements.pop(),e.openElements.currentTagName===j.OPTGROUP&&e.openElements.pop(),e._insertElement(t,W.HTML)):n===j.INPUT||n===j.KEYGEN||n===j.TEXTAREA||n===j.SELECT?e.openElements.hasInSelectScope(j.SELECT)&&(e.openElements.popUntilTagNamePopped(j.SELECT),e._resetInsertionMode(),n!==j.SELECT&&e._processToken(t)):n!==j.SCRIPT&&n!==j.TEMPLATE||Be(e,t)}function ht(e,t){var n=t.tagName;if(n===j.OPTGROUP){var r=e.openElements.items[e.openElements.stackTop-1],a=r&&e.treeAdapter.getTagName(r);e.openElements.currentTagName===j.OPTION&&a===j.OPTGROUP&&e.openElements.pop(),e.openElements.currentTagName===j.OPTGROUP&&e.openElements.pop()}else n===j.OPTION?e.openElements.currentTagName===j.OPTION&&e.openElements.pop():n===j.SELECT&&e.openElements.hasInSelectScope(j.SELECT)?(e.openElements.popUntilTagNamePopped(j.SELECT),e._resetInsertionMode()):n===j.TEMPLATE&&Ge(e,t)}function ft(e,t){e.openElements.tmplCount>0?(e.openElements.popUntilTagNamePopped(j.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e._popTmplInsertionMode(),e._resetInsertionMode(),e._processToken(t)):e.stopped=!0}function bt(e,t){e.insertionMode=ne,e._processToken(t)}function Et(e,t){e.insertionMode=ne,e._processToken(t)}e.exports=ve},4808:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(9539),o=i.TAG_NAMES,s=i.NAMESPACES;function l(e){switch(e.length){case 1:return e===o.P;case 2:return e===o.RB||e===o.RP||e===o.RT||e===o.DD||e===o.DT||e===o.LI;case 3:return e===o.RTC;case 6:return e===o.OPTION;case 8:return e===o.OPTGROUP}return!1}function c(e){switch(e.length){case 1:return e===o.P;case 2:return e===o.RB||e===o.RP||e===o.RT||e===o.DD||e===o.DT||e===o.LI||e===o.TD||e===o.TH||e===o.TR;case 3:return e===o.RTC;case 5:return e===o.TBODY||e===o.TFOOT||e===o.THEAD;case 6:return e===o.OPTION;case 7:return e===o.CAPTION;case 8:return e===o.OPTGROUP||e===o.COLGROUP}return!1}function u(e,t){switch(e.length){case 2:if(e===o.TD||e===o.TH)return t===s.HTML;if(e===o.MI||e===o.MO||e===o.MN||e===o.MS)return t===s.MATHML;break;case 4:if(e===o.HTML)return t===s.HTML;if(e===o.DESC)return t===s.SVG;break;case 5:if(e===o.TABLE)return t===s.HTML;if(e===o.MTEXT)return t===s.MATHML;if(e===o.TITLE)return t===s.SVG;break;case 6:return(e===o.APPLET||e===o.OBJECT)&&t===s.HTML;case 7:return(e===o.CAPTION||e===o.MARQUEE)&&t===s.HTML;case 8:return e===o.TEMPLATE&&t===s.HTML;case 13:return e===o.FOREIGN_OBJECT&&t===s.SVG;case 14:return e===o.ANNOTATION_XML&&t===s.MATHML}return!1}var d=function(){function e(t,n){r(this,e),this.stackTop=-1,this.items=[],this.current=t,this.currentTagName=null,this.currentTmplContent=null,this.tmplCount=0,this.treeAdapter=n}return a(e,[{key:"_indexOf",value:function(e){for(var t=-1,n=this.stackTop;n>=0;n--)if(this.items[n]===e){t=n;break}return t}},{key:"_isInTemplate",value:function(){return this.currentTagName===o.TEMPLATE&&this.treeAdapter.getNamespaceURI(this.current)===s.HTML}},{key:"_updateCurrentElement",value:function(){this.current=this.items[this.stackTop],this.currentTagName=this.current&&this.treeAdapter.getTagName(this.current),this.currentTmplContent=this._isInTemplate()?this.treeAdapter.getTemplateContent(this.current):null}},{key:"push",value:function(e){this.items[++this.stackTop]=e,this._updateCurrentElement(),this._isInTemplate()&&this.tmplCount++}},{key:"pop",value:function(){this.stackTop--,this.tmplCount>0&&this._isInTemplate()&&this.tmplCount--,this._updateCurrentElement()}},{key:"replace",value:function(e,t){var n=this._indexOf(e);this.items[n]=t,n===this.stackTop&&this._updateCurrentElement()}},{key:"insertAfter",value:function(e,t){var n=this._indexOf(e)+1;this.items.splice(n,0,t),n===++this.stackTop&&this._updateCurrentElement()}},{key:"popUntilTagNamePopped",value:function(e){for(;this.stackTop>-1;){var t=this.currentTagName,n=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),t===e&&n===s.HTML)break}}},{key:"popUntilElementPopped",value:function(e){for(;this.stackTop>-1;){var t=this.current;if(this.pop(),t===e)break}}},{key:"popUntilNumberedHeaderPopped",value:function(){for(;this.stackTop>-1;){var e=this.currentTagName,t=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),e===o.H1||e===o.H2||e===o.H3||e===o.H4||e===o.H5||e===o.H6&&t===s.HTML)break}}},{key:"popUntilTableCellPopped",value:function(){for(;this.stackTop>-1;){var e=this.currentTagName,t=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),e===o.TD||e===o.TH&&t===s.HTML)break}}},{key:"popAllUpToHtmlElement",value:function(){this.stackTop=0,this._updateCurrentElement()}},{key:"clearBackToTableContext",value:function(){for(;this.currentTagName!==o.TABLE&&this.currentTagName!==o.TEMPLATE&&this.currentTagName!==o.HTML||this.treeAdapter.getNamespaceURI(this.current)!==s.HTML;)this.pop()}},{key:"clearBackToTableBodyContext",value:function(){for(;this.currentTagName!==o.TBODY&&this.currentTagName!==o.TFOOT&&this.currentTagName!==o.THEAD&&this.currentTagName!==o.TEMPLATE&&this.currentTagName!==o.HTML||this.treeAdapter.getNamespaceURI(this.current)!==s.HTML;)this.pop()}},{key:"clearBackToTableRowContext",value:function(){for(;this.currentTagName!==o.TR&&this.currentTagName!==o.TEMPLATE&&this.currentTagName!==o.HTML||this.treeAdapter.getNamespaceURI(this.current)!==s.HTML;)this.pop()}},{key:"remove",value:function(e){for(var t=this.stackTop;t>=0;t--)if(this.items[t]===e){this.items.splice(t,1),this.stackTop--,this._updateCurrentElement();break}}},{key:"tryPeekProperlyNestedBodyElement",value:function(){var e=this.items[1];return e&&this.treeAdapter.getTagName(e)===o.BODY?e:null}},{key:"contains",value:function(e){return this._indexOf(e)>-1}},{key:"getCommonAncestor",value:function(e){var t=this._indexOf(e);return--t>=0?this.items[t]:null}},{key:"isRootHtmlElementCurrent",value:function(){return 0===this.stackTop&&this.currentTagName===o.HTML}},{key:"hasInScope",value:function(e){for(var t=this.stackTop;t>=0;t--){var n=this.treeAdapter.getTagName(this.items[t]),r=this.treeAdapter.getNamespaceURI(this.items[t]);if(n===e&&r===s.HTML)return!0;if(u(n,r))return!1}return!0}},{key:"hasNumberedHeaderInScope",value:function(){for(var e=this.stackTop;e>=0;e--){var t=this.treeAdapter.getTagName(this.items[e]),n=this.treeAdapter.getNamespaceURI(this.items[e]);if((t===o.H1||t===o.H2||t===o.H3||t===o.H4||t===o.H5||t===o.H6)&&n===s.HTML)return!0;if(u(t,n))return!1}return!0}},{key:"hasInListItemScope",value:function(e){for(var t=this.stackTop;t>=0;t--){var n=this.treeAdapter.getTagName(this.items[t]),r=this.treeAdapter.getNamespaceURI(this.items[t]);if(n===e&&r===s.HTML)return!0;if((n===o.UL||n===o.OL)&&r===s.HTML||u(n,r))return!1}return!0}},{key:"hasInButtonScope",value:function(e){for(var t=this.stackTop;t>=0;t--){var n=this.treeAdapter.getTagName(this.items[t]),r=this.treeAdapter.getNamespaceURI(this.items[t]);if(n===e&&r===s.HTML)return!0;if(n===o.BUTTON&&r===s.HTML||u(n,r))return!1}return!0}},{key:"hasInTableScope",value:function(e){for(var t=this.stackTop;t>=0;t--){var n=this.treeAdapter.getTagName(this.items[t]);if(this.treeAdapter.getNamespaceURI(this.items[t])===s.HTML){if(n===e)return!0;if(n===o.TABLE||n===o.TEMPLATE||n===o.HTML)return!1}}return!0}},{key:"hasTableBodyContextInTableScope",value:function(){for(var e=this.stackTop;e>=0;e--){var t=this.treeAdapter.getTagName(this.items[e]);if(this.treeAdapter.getNamespaceURI(this.items[e])===s.HTML){if(t===o.TBODY||t===o.THEAD||t===o.TFOOT)return!0;if(t===o.TABLE||t===o.HTML)return!1}}return!0}},{key:"hasInSelectScope",value:function(e){for(var t=this.stackTop;t>=0;t--){var n=this.treeAdapter.getTagName(this.items[t]);if(this.treeAdapter.getNamespaceURI(this.items[t])===s.HTML){if(n===e)return!0;if(n!==o.OPTION&&n!==o.OPTGROUP)return!1}}return!0}},{key:"generateImpliedEndTags",value:function(){for(;l(this.currentTagName);)this.pop()}},{key:"generateImpliedEndTagsThoroughly",value:function(){for(;c(this.currentTagName);)this.pop()}},{key:"generateImpliedEndTagsWithExclusion",value:function(e){for(;l(this.currentTagName)&&this.currentTagName!==e;)this.pop()}}]),e}();e.exports=d},3085:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(147),o=n(4529),s=n(9908),l=n(4551),c=o.CODE_POINTS,u=o.CODE_POINT_SEQUENCES,d={128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376},p="DATA_STATE",m="RCDATA_STATE",g="RAWTEXT_STATE",h="SCRIPT_DATA_STATE",f="PLAINTEXT_STATE",b="TAG_OPEN_STATE",E="END_TAG_OPEN_STATE",y="TAG_NAME_STATE",T="RCDATA_LESS_THAN_SIGN_STATE",S="RCDATA_END_TAG_OPEN_STATE",v="RCDATA_END_TAG_NAME_STATE",A="RAWTEXT_LESS_THAN_SIGN_STATE",k="RAWTEXT_END_TAG_OPEN_STATE",w="RAWTEXT_END_TAG_NAME_STATE",_="SCRIPT_DATA_LESS_THAN_SIGN_STATE",C="SCRIPT_DATA_END_TAG_OPEN_STATE",N="SCRIPT_DATA_END_TAG_NAME_STATE",I="SCRIPT_DATA_ESCAPE_START_STATE",x="SCRIPT_DATA_ESCAPE_START_DASH_STATE",R="SCRIPT_DATA_ESCAPED_STATE",O="SCRIPT_DATA_ESCAPED_DASH_STATE",L="SCRIPT_DATA_ESCAPED_DASH_DASH_STATE",P="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE",D="SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE",M="SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE",F="SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE",U="SCRIPT_DATA_DOUBLE_ESCAPED_STATE",B="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE",G="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE",H="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE",z="SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE",$="BEFORE_ATTRIBUTE_NAME_STATE",V="ATTRIBUTE_NAME_STATE",j="AFTER_ATTRIBUTE_NAME_STATE",W="BEFORE_ATTRIBUTE_VALUE_STATE",q="ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE",K="ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE",X="ATTRIBUTE_VALUE_UNQUOTED_STATE",Y="AFTER_ATTRIBUTE_VALUE_QUOTED_STATE",Z="SELF_CLOSING_START_TAG_STATE",Q="BOGUS_COMMENT_STATE",J="MARKUP_DECLARATION_OPEN_STATE",ee="COMMENT_START_STATE",te="COMMENT_START_DASH_STATE",ne="COMMENT_STATE",re="COMMENT_LESS_THAN_SIGN_STATE",ae="COMMENT_LESS_THAN_SIGN_BANG_STATE",ie="COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE",oe="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE",se="COMMENT_END_DASH_STATE",le="COMMENT_END_STATE",ce="COMMENT_END_BANG_STATE",ue="DOCTYPE_STATE",de="BEFORE_DOCTYPE_NAME_STATE",pe="DOCTYPE_NAME_STATE",me="AFTER_DOCTYPE_NAME_STATE",ge="AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE",he="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE",fe="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE",be="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE",Ee="AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE",ye="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE",Te="AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE",Se="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE",ve="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE",Ae="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE",ke="AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE",we="BOGUS_DOCTYPE_STATE",_e="CDATA_SECTION_STATE",Ce="CDATA_SECTION_BRACKET_STATE",Ne="CDATA_SECTION_END_STATE",Ie="CHARACTER_REFERENCE_STATE",xe="NAMED_CHARACTER_REFERENCE_STATE",Re="AMBIGUOS_AMPERSAND_STATE",Oe="NUMERIC_CHARACTER_REFERENCE_STATE",Le="HEXADEMICAL_CHARACTER_REFERENCE_START_STATE",Pe="DECIMAL_CHARACTER_REFERENCE_START_STATE",De="HEXADEMICAL_CHARACTER_REFERENCE_STATE",Me="DECIMAL_CHARACTER_REFERENCE_STATE",Fe="NUMERIC_CHARACTER_REFERENCE_END_STATE";function Ue(e){return e===c.SPACE||e===c.LINE_FEED||e===c.TABULATION||e===c.FORM_FEED}function Be(e){return e>=c.DIGIT_0&&e<=c.DIGIT_9}function Ge(e){return e>=c.LATIN_CAPITAL_A&&e<=c.LATIN_CAPITAL_Z}function He(e){return e>=c.LATIN_SMALL_A&&e<=c.LATIN_SMALL_Z}function ze(e){return He(e)||Ge(e)}function $e(e){return ze(e)||Be(e)}function Ve(e){return e>=c.LATIN_CAPITAL_A&&e<=c.LATIN_CAPITAL_F}function je(e){return e>=c.LATIN_SMALL_A&&e<=c.LATIN_SMALL_F}function We(e){return e+32}function qe(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(e>>>10&1023|55296)+String.fromCharCode(56320|1023&e))}function Ke(e){return String.fromCharCode(We(e))}function Xe(e,t){for(var n=s[++e],r=++e,a=r+n-1;r<=a;){var i=r+a>>>1,o=s[i];if(o<t)r=i+1;else{if(!(o>t))return s[i+n];a=i-1}}return-1}var Ye=function(){function e(){r(this,e),this.preprocessor=new i,this.tokenQueue=[],this.allowCDATA=!1,this.state=p,this.returnState="",this.charRefCode=-1,this.tempBuff=[],this.lastStartTagName="",this.consumedAfterSnapshot=-1,this.active=!1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr=null}return a(e,[{key:"_err",value:function(){}},{key:"_errOnNextCodePoint",value:function(e){this._consume(),this._err(e),this._unconsume()}},{key:"getNextToken",value:function(){for(;!this.tokenQueue.length&&this.active;){this.consumedAfterSnapshot=0;var e=this._consume();this._ensureHibernation()||this[this.state](e)}return this.tokenQueue.shift()}},{key:"write",value:function(e,t){this.active=!0,this.preprocessor.write(e,t)}},{key:"insertHtmlAtCurrentPos",value:function(e){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(e)}},{key:"_ensureHibernation",value:function(){if(this.preprocessor.endOfChunkHit){for(;this.consumedAfterSnapshot>0;this.consumedAfterSnapshot--)this.preprocessor.retreat();return this.active=!1,this.tokenQueue.push({type:e.HIBERNATION_TOKEN}),!0}return!1}},{key:"_consume",value:function(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}},{key:"_unconsume",value:function(){this.consumedAfterSnapshot--,this.preprocessor.retreat()}},{key:"_reconsumeInState",value:function(e){this.state=e,this._unconsume()}},{key:"_consumeSequenceIfMatch",value:function(e,t,n){for(var r=0,a=!0,i=e.length,o=0,s=t,l=void 0;o<i;o++){if(o>0&&(s=this._consume(),r++),s===c.EOF){a=!1;break}if(s!==(l=e[o])&&(n||s!==We(l))){a=!1;break}}if(!a)for(;r--;)this._unconsume();return a}},{key:"_isTempBufferEqualToScriptString",value:function(){if(this.tempBuff.length!==u.SCRIPT_STRING.length)return!1;for(var e=0;e<this.tempBuff.length;e++)if(this.tempBuff[e]!==u.SCRIPT_STRING[e])return!1;return!0}},{key:"_createStartTagToken",value:function(){this.currentToken={type:e.START_TAG_TOKEN,tagName:"",selfClosing:!1,ackSelfClosing:!1,attrs:[]}}},{key:"_createEndTagToken",value:function(){this.currentToken={type:e.END_TAG_TOKEN,tagName:"",selfClosing:!1,attrs:[]}}},{key:"_createCommentToken",value:function(){this.currentToken={type:e.COMMENT_TOKEN,data:""}}},{key:"_createDoctypeToken",value:function(t){this.currentToken={type:e.DOCTYPE_TOKEN,name:t,forceQuirks:!1,publicId:null,systemId:null}}},{key:"_createCharacterToken",value:function(e,t){this.currentCharacterToken={type:e,chars:t}}},{key:"_createEOFToken",value:function(){this.currentToken={type:e.EOF_TOKEN}}},{key:"_createAttr",value:function(e){this.currentAttr={name:e,value:""}}},{key:"_leaveAttrName",value:function(t){null===e.getTokenAttr(this.currentToken,this.currentAttr.name)?this.currentToken.attrs.push(this.currentAttr):this._err(l.duplicateAttribute),this.state=t}},{key:"_leaveAttrValue",value:function(e){this.state=e}},{key:"_emitCurrentToken",value:function(){this._emitCurrentCharacterToken();var t=this.currentToken;this.currentToken=null,t.type===e.START_TAG_TOKEN?this.lastStartTagName=t.tagName:t.type===e.END_TAG_TOKEN&&(t.attrs.length>0&&this._err(l.endTagWithAttributes),t.selfClosing&&this._err(l.endTagWithTrailingSolidus)),this.tokenQueue.push(t)}},{key:"_emitCurrentCharacterToken",value:function(){this.currentCharacterToken&&(this.tokenQueue.push(this.currentCharacterToken),this.currentCharacterToken=null)}},{key:"_emitEOFToken",value:function(){this._createEOFToken(),this._emitCurrentToken()}},{key:"_appendCharToCurrentCharacterToken",value:function(e,t){this.currentCharacterToken&&this.currentCharacterToken.type!==e&&this._emitCurrentCharacterToken(),this.currentCharacterToken?this.currentCharacterToken.chars+=t:this._createCharacterToken(e,t)}},{key:"_emitCodePoint",value:function(t){var n=e.CHARACTER_TOKEN;Ue(t)?n=e.WHITESPACE_CHARACTER_TOKEN:t===c.NULL&&(n=e.NULL_CHARACTER_TOKEN),this._appendCharToCurrentCharacterToken(n,qe(t))}},{key:"_emitSeveralCodePoints",value:function(e){for(var t=0;t<e.length;t++)this._emitCodePoint(e[t])}},{key:"_emitChars",value:function(t){this._appendCharToCurrentCharacterToken(e.CHARACTER_TOKEN,t)}},{key:"_matchNamedCharacterReference",value:function(e){var t=null,n=1,r=Xe(0,e);for(this.tempBuff.push(e);r>-1;){var a=s[r],i=a<7;i&&1&a&&(t=2&a?[s[++r],s[++r]]:[s[++r]],n=0);var o=this._consume();if(this.tempBuff.push(o),n++,o===c.EOF)break;r=i?4&a?Xe(r,o):-1:o===a?++r:-1}for(;n--;)this.tempBuff.pop(),this._unconsume();return t}},{key:"_isCharacterReferenceInAttribute",value:function(){return this.returnState===q||this.returnState===K||this.returnState===X}},{key:"_isCharacterReferenceAttributeQuirk",value:function(e){if(!e&&this._isCharacterReferenceInAttribute()){var t=this._consume();return this._unconsume(),t===c.EQUALS_SIGN||$e(t)}return!1}},{key:"_flushCodePointsConsumedAsCharacterReference",value:function(){if(this._isCharacterReferenceInAttribute())for(var e=0;e<this.tempBuff.length;e++)this.currentAttr.value+=qe(this.tempBuff[e]);else this._emitSeveralCodePoints(this.tempBuff);this.tempBuff=[]}},{key:p,value:function(e){this.preprocessor.dropParsedChunk(),e===c.LESS_THAN_SIGN?this.state=b:e===c.AMPERSAND?(this.returnState=p,this.state=Ie):e===c.NULL?(this._err(l.unexpectedNullCharacter),this._emitCodePoint(e)):e===c.EOF?this._emitEOFToken():this._emitCodePoint(e)}},{key:m,value:function(e){this.preprocessor.dropParsedChunk(),e===c.AMPERSAND?(this.returnState=m,this.state=Ie):e===c.LESS_THAN_SIGN?this.state=T:e===c.NULL?(this._err(l.unexpectedNullCharacter),this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?this._emitEOFToken():this._emitCodePoint(e)}},{key:g,value:function(e){this.preprocessor.dropParsedChunk(),e===c.LESS_THAN_SIGN?this.state=A:e===c.NULL?(this._err(l.unexpectedNullCharacter),this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?this._emitEOFToken():this._emitCodePoint(e)}},{key:h,value:function(e){this.preprocessor.dropParsedChunk(),e===c.LESS_THAN_SIGN?this.state=_:e===c.NULL?(this._err(l.unexpectedNullCharacter),this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?this._emitEOFToken():this._emitCodePoint(e)}},{key:f,value:function(e){this.preprocessor.dropParsedChunk(),e===c.NULL?(this._err(l.unexpectedNullCharacter),this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?this._emitEOFToken():this._emitCodePoint(e)}},{key:b,value:function(e){e===c.EXCLAMATION_MARK?this.state=J:e===c.SOLIDUS?this.state=E:ze(e)?(this._createStartTagToken(),this._reconsumeInState(y)):e===c.QUESTION_MARK?(this._err(l.unexpectedQuestionMarkInsteadOfTagName),this._createCommentToken(),this._reconsumeInState(Q)):e===c.EOF?(this._err(l.eofBeforeTagName),this._emitChars("<"),this._emitEOFToken()):(this._err(l.invalidFirstCharacterOfTagName),this._emitChars("<"),this._reconsumeInState(p))}},{key:E,value:function(e){ze(e)?(this._createEndTagToken(),this._reconsumeInState(y)):e===c.GREATER_THAN_SIGN?(this._err(l.missingEndTagName),this.state=p):e===c.EOF?(this._err(l.eofBeforeTagName),this._emitChars("</"),this._emitEOFToken()):(this._err(l.invalidFirstCharacterOfTagName),this._createCommentToken(),this._reconsumeInState(Q))}},{key:y,value:function(e){Ue(e)?this.state=$:e===c.SOLIDUS?this.state=Z:e===c.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):Ge(e)?this.currentToken.tagName+=Ke(e):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentToken.tagName+=o.REPLACEMENT_CHARACTER):e===c.EOF?(this._err(l.eofInTag),this._emitEOFToken()):this.currentToken.tagName+=qe(e)}},{key:T,value:function(e){e===c.SOLIDUS?(this.tempBuff=[],this.state=S):(this._emitChars("<"),this._reconsumeInState(m))}},{key:S,value:function(e){ze(e)?(this._createEndTagToken(),this._reconsumeInState(v)):(this._emitChars("</"),this._reconsumeInState(m))}},{key:v,value:function(e){if(Ge(e))this.currentToken.tagName+=Ke(e),this.tempBuff.push(e);else if(He(e))this.currentToken.tagName+=qe(e),this.tempBuff.push(e);else{if(this.lastStartTagName===this.currentToken.tagName){if(Ue(e))return void(this.state=$);if(e===c.SOLIDUS)return void(this.state=Z);if(e===c.GREATER_THAN_SIGN)return this.state=p,void this._emitCurrentToken()}this._emitChars("</"),this._emitSeveralCodePoints(this.tempBuff),this._reconsumeInState(m)}}},{key:A,value:function(e){e===c.SOLIDUS?(this.tempBuff=[],this.state=k):(this._emitChars("<"),this._reconsumeInState(g))}},{key:k,value:function(e){ze(e)?(this._createEndTagToken(),this._reconsumeInState(w)):(this._emitChars("</"),this._reconsumeInState(g))}},{key:w,value:function(e){if(Ge(e))this.currentToken.tagName+=Ke(e),this.tempBuff.push(e);else if(He(e))this.currentToken.tagName+=qe(e),this.tempBuff.push(e);else{if(this.lastStartTagName===this.currentToken.tagName){if(Ue(e))return void(this.state=$);if(e===c.SOLIDUS)return void(this.state=Z);if(e===c.GREATER_THAN_SIGN)return this._emitCurrentToken(),void(this.state=p)}this._emitChars("</"),this._emitSeveralCodePoints(this.tempBuff),this._reconsumeInState(g)}}},{key:_,value:function(e){e===c.SOLIDUS?(this.tempBuff=[],this.state=C):e===c.EXCLAMATION_MARK?(this.state=I,this._emitChars("<!")):(this._emitChars("<"),this._reconsumeInState(h))}},{key:C,value:function(e){ze(e)?(this._createEndTagToken(),this._reconsumeInState(N)):(this._emitChars("</"),this._reconsumeInState(h))}},{key:N,value:function(e){if(Ge(e))this.currentToken.tagName+=Ke(e),this.tempBuff.push(e);else if(He(e))this.currentToken.tagName+=qe(e),this.tempBuff.push(e);else{if(this.lastStartTagName===this.currentToken.tagName){if(Ue(e))return void(this.state=$);if(e===c.SOLIDUS)return void(this.state=Z);if(e===c.GREATER_THAN_SIGN)return this._emitCurrentToken(),void(this.state=p)}this._emitChars("</"),this._emitSeveralCodePoints(this.tempBuff),this._reconsumeInState(h)}}},{key:I,value:function(e){e===c.HYPHEN_MINUS?(this.state=x,this._emitChars("-")):this._reconsumeInState(h)}},{key:x,value:function(e){e===c.HYPHEN_MINUS?(this.state=L,this._emitChars("-")):this._reconsumeInState(h)}},{key:R,value:function(e){e===c.HYPHEN_MINUS?(this.state=O,this._emitChars("-")):e===c.LESS_THAN_SIGN?this.state=P:e===c.NULL?(this._err(l.unexpectedNullCharacter),this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?(this._err(l.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):this._emitCodePoint(e)}},{key:O,value:function(e){e===c.HYPHEN_MINUS?(this.state=L,this._emitChars("-")):e===c.LESS_THAN_SIGN?this.state=P:e===c.NULL?(this._err(l.unexpectedNullCharacter),this.state=R,this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?(this._err(l.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):(this.state=R,this._emitCodePoint(e))}},{key:L,value:function(e){e===c.HYPHEN_MINUS?this._emitChars("-"):e===c.LESS_THAN_SIGN?this.state=P:e===c.GREATER_THAN_SIGN?(this.state=h,this._emitChars(">")):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.state=R,this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?(this._err(l.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):(this.state=R,this._emitCodePoint(e))}},{key:P,value:function(e){e===c.SOLIDUS?(this.tempBuff=[],this.state=D):ze(e)?(this.tempBuff=[],this._emitChars("<"),this._reconsumeInState(F)):(this._emitChars("<"),this._reconsumeInState(R))}},{key:D,value:function(e){ze(e)?(this._createEndTagToken(),this._reconsumeInState(M)):(this._emitChars("</"),this._reconsumeInState(R))}},{key:M,value:function(e){if(Ge(e))this.currentToken.tagName+=Ke(e),this.tempBuff.push(e);else if(He(e))this.currentToken.tagName+=qe(e),this.tempBuff.push(e);else{if(this.lastStartTagName===this.currentToken.tagName){if(Ue(e))return void(this.state=$);if(e===c.SOLIDUS)return void(this.state=Z);if(e===c.GREATER_THAN_SIGN)return this._emitCurrentToken(),void(this.state=p)}this._emitChars("</"),this._emitSeveralCodePoints(this.tempBuff),this._reconsumeInState(R)}}},{key:F,value:function(e){Ue(e)||e===c.SOLIDUS||e===c.GREATER_THAN_SIGN?(this.state=this._isTempBufferEqualToScriptString()?U:R,this._emitCodePoint(e)):Ge(e)?(this.tempBuff.push(We(e)),this._emitCodePoint(e)):He(e)?(this.tempBuff.push(e),this._emitCodePoint(e)):this._reconsumeInState(R)}},{key:U,value:function(e){e===c.HYPHEN_MINUS?(this.state=B,this._emitChars("-")):e===c.LESS_THAN_SIGN?(this.state=H,this._emitChars("<")):e===c.NULL?(this._err(l.unexpectedNullCharacter),this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?(this._err(l.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):this._emitCodePoint(e)}},{key:B,value:function(e){e===c.HYPHEN_MINUS?(this.state=G,this._emitChars("-")):e===c.LESS_THAN_SIGN?(this.state=H,this._emitChars("<")):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.state=U,this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?(this._err(l.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):(this.state=U,this._emitCodePoint(e))}},{key:G,value:function(e){e===c.HYPHEN_MINUS?this._emitChars("-"):e===c.LESS_THAN_SIGN?(this.state=H,this._emitChars("<")):e===c.GREATER_THAN_SIGN?(this.state=h,this._emitChars(">")):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.state=U,this._emitChars(o.REPLACEMENT_CHARACTER)):e===c.EOF?(this._err(l.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):(this.state=U,this._emitCodePoint(e))}},{key:H,value:function(e){e===c.SOLIDUS?(this.tempBuff=[],this.state=z,this._emitChars("/")):this._reconsumeInState(U)}},{key:z,value:function(e){Ue(e)||e===c.SOLIDUS||e===c.GREATER_THAN_SIGN?(this.state=this._isTempBufferEqualToScriptString()?R:U,this._emitCodePoint(e)):Ge(e)?(this.tempBuff.push(We(e)),this._emitCodePoint(e)):He(e)?(this.tempBuff.push(e),this._emitCodePoint(e)):this._reconsumeInState(U)}},{key:$,value:function(e){Ue(e)||(e===c.SOLIDUS||e===c.GREATER_THAN_SIGN||e===c.EOF?this._reconsumeInState(j):e===c.EQUALS_SIGN?(this._err(l.unexpectedEqualsSignBeforeAttributeName),this._createAttr("="),this.state=V):(this._createAttr(""),this._reconsumeInState(V)))}},{key:V,value:function(e){Ue(e)||e===c.SOLIDUS||e===c.GREATER_THAN_SIGN||e===c.EOF?(this._leaveAttrName(j),this._unconsume()):e===c.EQUALS_SIGN?this._leaveAttrName(W):Ge(e)?this.currentAttr.name+=Ke(e):e===c.QUOTATION_MARK||e===c.APOSTROPHE||e===c.LESS_THAN_SIGN?(this._err(l.unexpectedCharacterInAttributeName),this.currentAttr.name+=qe(e)):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentAttr.name+=o.REPLACEMENT_CHARACTER):this.currentAttr.name+=qe(e)}},{key:j,value:function(e){Ue(e)||(e===c.SOLIDUS?this.state=Z:e===c.EQUALS_SIGN?this.state=W:e===c.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInTag),this._emitEOFToken()):(this._createAttr(""),this._reconsumeInState(V)))}},{key:W,value:function(e){Ue(e)||(e===c.QUOTATION_MARK?this.state=q:e===c.APOSTROPHE?this.state=K:e===c.GREATER_THAN_SIGN?(this._err(l.missingAttributeValue),this.state=p,this._emitCurrentToken()):this._reconsumeInState(X))}},{key:q,value:function(e){e===c.QUOTATION_MARK?this.state=Y:e===c.AMPERSAND?(this.returnState=q,this.state=Ie):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentAttr.value+=o.REPLACEMENT_CHARACTER):e===c.EOF?(this._err(l.eofInTag),this._emitEOFToken()):this.currentAttr.value+=qe(e)}},{key:K,value:function(e){e===c.APOSTROPHE?this.state=Y:e===c.AMPERSAND?(this.returnState=K,this.state=Ie):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentAttr.value+=o.REPLACEMENT_CHARACTER):e===c.EOF?(this._err(l.eofInTag),this._emitEOFToken()):this.currentAttr.value+=qe(e)}},{key:X,value:function(e){Ue(e)?this._leaveAttrValue($):e===c.AMPERSAND?(this.returnState=X,this.state=Ie):e===c.GREATER_THAN_SIGN?(this._leaveAttrValue(p),this._emitCurrentToken()):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentAttr.value+=o.REPLACEMENT_CHARACTER):e===c.QUOTATION_MARK||e===c.APOSTROPHE||e===c.LESS_THAN_SIGN||e===c.EQUALS_SIGN||e===c.GRAVE_ACCENT?(this._err(l.unexpectedCharacterInUnquotedAttributeValue),this.currentAttr.value+=qe(e)):e===c.EOF?(this._err(l.eofInTag),this._emitEOFToken()):this.currentAttr.value+=qe(e)}},{key:Y,value:function(e){Ue(e)?this._leaveAttrValue($):e===c.SOLIDUS?this._leaveAttrValue(Z):e===c.GREATER_THAN_SIGN?(this._leaveAttrValue(p),this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInTag),this._emitEOFToken()):(this._err(l.missingWhitespaceBetweenAttributes),this._reconsumeInState($))}},{key:Z,value:function(e){e===c.GREATER_THAN_SIGN?(this.currentToken.selfClosing=!0,this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInTag),this._emitEOFToken()):(this._err(l.unexpectedSolidusInTag),this._reconsumeInState($))}},{key:Q,value:function(e){e===c.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===c.EOF?(this._emitCurrentToken(),this._emitEOFToken()):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentToken.data+=o.REPLACEMENT_CHARACTER):this.currentToken.data+=qe(e)}},{key:J,value:function(e){this._consumeSequenceIfMatch(u.DASH_DASH_STRING,e,!0)?(this._createCommentToken(),this.state=ee):this._consumeSequenceIfMatch(u.DOCTYPE_STRING,e,!1)?this.state=ue:this._consumeSequenceIfMatch(u.CDATA_START_STRING,e,!0)?this.allowCDATA?this.state=_e:(this._err(l.cdataInHtmlContent),this._createCommentToken(),this.currentToken.data="[CDATA[",this.state=Q):this._ensureHibernation()||(this._err(l.incorrectlyOpenedComment),this._createCommentToken(),this._reconsumeInState(Q))}},{key:ee,value:function(e){e===c.HYPHEN_MINUS?this.state=te:e===c.GREATER_THAN_SIGN?(this._err(l.abruptClosingOfEmptyComment),this.state=p,this._emitCurrentToken()):this._reconsumeInState(ne)}},{key:te,value:function(e){e===c.HYPHEN_MINUS?this.state=le:e===c.GREATER_THAN_SIGN?(this._err(l.abruptClosingOfEmptyComment),this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="-",this._reconsumeInState(ne))}},{key:ne,value:function(e){e===c.HYPHEN_MINUS?this.state=se:e===c.LESS_THAN_SIGN?(this.currentToken.data+="<",this.state=re):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentToken.data+=o.REPLACEMENT_CHARACTER):e===c.EOF?(this._err(l.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.data+=qe(e)}},{key:re,value:function(e){e===c.EXCLAMATION_MARK?(this.currentToken.data+="!",this.state=ae):e===c.LESS_THAN_SIGN?this.currentToken.data+="!":this._reconsumeInState(ne)}},{key:ae,value:function(e){e===c.HYPHEN_MINUS?this.state=ie:this._reconsumeInState(ne)}},{key:ie,value:function(e){e===c.HYPHEN_MINUS?this.state=oe:this._reconsumeInState(se)}},{key:oe,value:function(e){e!==c.GREATER_THAN_SIGN&&e!==c.EOF&&this._err(l.nestedComment),this._reconsumeInState(le)}},{key:se,value:function(e){e===c.HYPHEN_MINUS?this.state=le:e===c.EOF?(this._err(l.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="-",this._reconsumeInState(ne))}},{key:le,value:function(e){e===c.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===c.EXCLAMATION_MARK?this.state=ce:e===c.HYPHEN_MINUS?this.currentToken.data+="-":e===c.EOF?(this._err(l.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="--",this._reconsumeInState(ne))}},{key:ce,value:function(e){e===c.HYPHEN_MINUS?(this.currentToken.data+="--!",this.state=se):e===c.GREATER_THAN_SIGN?(this._err(l.incorrectlyClosedComment),this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="--!",this._reconsumeInState(ne))}},{key:ue,value:function(e){Ue(e)?this.state=de:e===c.GREATER_THAN_SIGN?this._reconsumeInState(de):e===c.EOF?(this._err(l.eofInDoctype),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(l.missingWhitespaceBeforeDoctypeName),this._reconsumeInState(de))}},{key:de,value:function(e){Ue(e)||(Ge(e)?(this._createDoctypeToken(Ke(e)),this.state=pe):e===c.NULL?(this._err(l.unexpectedNullCharacter),this._createDoctypeToken(o.REPLACEMENT_CHARACTER),this.state=pe):e===c.GREATER_THAN_SIGN?(this._err(l.missingDoctypeName),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===c.EOF?(this._err(l.eofInDoctype),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._createDoctypeToken(qe(e)),this.state=pe))}},{key:pe,value:function(e){Ue(e)?this.state=me:e===c.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):Ge(e)?this.currentToken.name+=Ke(e):e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentToken.name+=o.REPLACEMENT_CHARACTER):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.name+=qe(e)}},{key:me,value:function(e){Ue(e)||(e===c.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this._consumeSequenceIfMatch(u.PUBLIC_STRING,e,!1)?this.state=ge:this._consumeSequenceIfMatch(u.SYSTEM_STRING,e,!1)?this.state=Te:this._ensureHibernation()||(this._err(l.invalidCharacterSequenceAfterDoctypeName),this.currentToken.forceQuirks=!0,this._reconsumeInState(we)))}},{key:ge,value:function(e){Ue(e)?this.state=he:e===c.QUOTATION_MARK?(this._err(l.missingWhitespaceAfterDoctypePublicKeyword),this.currentToken.publicId="",this.state=fe):e===c.APOSTROPHE?(this._err(l.missingWhitespaceAfterDoctypePublicKeyword),this.currentToken.publicId="",this.state=be):e===c.GREATER_THAN_SIGN?(this._err(l.missingDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(l.missingQuoteBeforeDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(we))}},{key:he,value:function(e){Ue(e)||(e===c.QUOTATION_MARK?(this.currentToken.publicId="",this.state=fe):e===c.APOSTROPHE?(this.currentToken.publicId="",this.state=be):e===c.GREATER_THAN_SIGN?(this._err(l.missingDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(l.missingQuoteBeforeDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(we)))}},{key:fe,value:function(e){e===c.QUOTATION_MARK?this.state=Ee:e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentToken.publicId+=o.REPLACEMENT_CHARACTER):e===c.GREATER_THAN_SIGN?(this._err(l.abruptDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.publicId+=qe(e)}},{key:be,value:function(e){e===c.APOSTROPHE?this.state=Ee:e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentToken.publicId+=o.REPLACEMENT_CHARACTER):e===c.GREATER_THAN_SIGN?(this._err(l.abruptDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.publicId+=qe(e)}},{key:Ee,value:function(e){Ue(e)?this.state=ye:e===c.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===c.QUOTATION_MARK?(this._err(l.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),this.currentToken.systemId="",this.state=ve):e===c.APOSTROPHE?(this._err(l.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),this.currentToken.systemId="",this.state=Ae):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(l.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(we))}},{key:ye,value:function(e){Ue(e)||(e===c.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=p):e===c.QUOTATION_MARK?(this.currentToken.systemId="",this.state=ve):e===c.APOSTROPHE?(this.currentToken.systemId="",this.state=Ae):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(l.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(we)))}},{key:Te,value:function(e){Ue(e)?this.state=Se:e===c.QUOTATION_MARK?(this._err(l.missingWhitespaceAfterDoctypeSystemKeyword),this.currentToken.systemId="",this.state=ve):e===c.APOSTROPHE?(this._err(l.missingWhitespaceAfterDoctypeSystemKeyword),this.currentToken.systemId="",this.state=Ae):e===c.GREATER_THAN_SIGN?(this._err(l.missingDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(l.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(we))}},{key:Se,value:function(e){Ue(e)||(e===c.QUOTATION_MARK?(this.currentToken.systemId="",this.state=ve):e===c.APOSTROPHE?(this.currentToken.systemId="",this.state=Ae):e===c.GREATER_THAN_SIGN?(this._err(l.missingDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this.state=p,this._emitCurrentToken()):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(l.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(we)))}},{key:ve,value:function(e){e===c.QUOTATION_MARK?this.state=ke:e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentToken.systemId+=o.REPLACEMENT_CHARACTER):e===c.GREATER_THAN_SIGN?(this._err(l.abruptDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.systemId+=qe(e)}},{key:Ae,value:function(e){e===c.APOSTROPHE?this.state=ke:e===c.NULL?(this._err(l.unexpectedNullCharacter),this.currentToken.systemId+=o.REPLACEMENT_CHARACTER):e===c.GREATER_THAN_SIGN?(this._err(l.abruptDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.systemId+=qe(e)}},{key:ke,value:function(e){Ue(e)||(e===c.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=p):e===c.EOF?(this._err(l.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(l.unexpectedCharacterAfterDoctypeSystemIdentifier),this._reconsumeInState(we)))}},{key:we,value:function(e){e===c.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=p):e===c.NULL?this._err(l.unexpectedNullCharacter):e===c.EOF&&(this._emitCurrentToken(),this._emitEOFToken())}},{key:_e,value:function(e){e===c.RIGHT_SQUARE_BRACKET?this.state=Ce:e===c.EOF?(this._err(l.eofInCdata),this._emitEOFToken()):this._emitCodePoint(e)}},{key:Ce,value:function(e){e===c.RIGHT_SQUARE_BRACKET?this.state=Ne:(this._emitChars("]"),this._reconsumeInState(_e))}},{key:Ne,value:function(e){e===c.GREATER_THAN_SIGN?this.state=p:e===c.RIGHT_SQUARE_BRACKET?this._emitChars("]"):(this._emitChars("]]"),this._reconsumeInState(_e))}},{key:Ie,value:function(e){this.tempBuff=[c.AMPERSAND],e===c.NUMBER_SIGN?(this.tempBuff.push(e),this.state=Oe):$e(e)?this._reconsumeInState(xe):(this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState))}},{key:xe,value:function(e){var t=this._matchNamedCharacterReference(e);if(this._ensureHibernation())this.tempBuff=[c.AMPERSAND];else if(t){var n=this.tempBuff[this.tempBuff.length-1]===c.SEMICOLON;this._isCharacterReferenceAttributeQuirk(n)||(n||this._errOnNextCodePoint(l.missingSemicolonAfterCharacterReference),this.tempBuff=t),this._flushCodePointsConsumedAsCharacterReference(),this.state=this.returnState}else this._flushCodePointsConsumedAsCharacterReference(),this.state=Re}},{key:Re,value:function(e){$e(e)?this._isCharacterReferenceInAttribute()?this.currentAttr.value+=qe(e):this._emitCodePoint(e):(e===c.SEMICOLON&&this._err(l.unknownNamedCharacterReference),this._reconsumeInState(this.returnState))}},{key:Oe,value:function(e){this.charRefCode=0,e===c.LATIN_SMALL_X||e===c.LATIN_CAPITAL_X?(this.tempBuff.push(e),this.state=Le):this._reconsumeInState(Pe)}},{key:Le,value:function(e){!function(e){return Be(e)||Ve(e)||je(e)}(e)?(this._err(l.absenceOfDigitsInNumericCharacterReference),this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState)):this._reconsumeInState(De)}},{key:Pe,value:function(e){Be(e)?this._reconsumeInState(Me):(this._err(l.absenceOfDigitsInNumericCharacterReference),this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState))}},{key:De,value:function(e){Ve(e)?this.charRefCode=16*this.charRefCode+e-55:je(e)?this.charRefCode=16*this.charRefCode+e-87:Be(e)?this.charRefCode=16*this.charRefCode+e-48:e===c.SEMICOLON?this.state=Fe:(this._err(l.missingSemicolonAfterCharacterReference),this._reconsumeInState(Fe))}},{key:Me,value:function(e){Be(e)?this.charRefCode=10*this.charRefCode+e-48:e===c.SEMICOLON?this.state=Fe:(this._err(l.missingSemicolonAfterCharacterReference),this._reconsumeInState(Fe))}},{key:Fe,value:function(){if(this.charRefCode===c.NULL)this._err(l.nullCharacterReference),this.charRefCode=c.REPLACEMENT_CHARACTER;else if(this.charRefCode>1114111)this._err(l.characterReferenceOutsideUnicodeRange),this.charRefCode=c.REPLACEMENT_CHARACTER;else if(o.isSurrogate(this.charRefCode))this._err(l.surrogateCharacterReference),this.charRefCode=c.REPLACEMENT_CHARACTER;else if(o.isUndefinedCodePoint(this.charRefCode))this._err(l.noncharacterCharacterReference);else if(o.isControlCodePoint(this.charRefCode)||this.charRefCode===c.CARRIAGE_RETURN){this._err(l.controlCharacterReference);var e=d[this.charRefCode];e&&(this.charRefCode=e)}this.tempBuff=[this.charRefCode],this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState)}}]),e}();Ye.CHARACTER_TOKEN="CHARACTER_TOKEN",Ye.NULL_CHARACTER_TOKEN="NULL_CHARACTER_TOKEN",Ye.WHITESPACE_CHARACTER_TOKEN="WHITESPACE_CHARACTER_TOKEN",Ye.START_TAG_TOKEN="START_TAG_TOKEN",Ye.END_TAG_TOKEN="END_TAG_TOKEN",Ye.COMMENT_TOKEN="COMMENT_TOKEN",Ye.DOCTYPE_TOKEN="DOCTYPE_TOKEN",Ye.EOF_TOKEN="EOF_TOKEN",Ye.HIBERNATION_TOKEN="HIBERNATION_TOKEN",Ye.MODE={DATA:p,RCDATA:m,RAWTEXT:g,SCRIPT_DATA:h,PLAINTEXT:f},Ye.getTokenAttr=function(e,t){for(var n=e.attrs.length-1;n>=0;n--)if(e.attrs[n].name===t)return e.attrs[n].value;return null},e.exports=Ye},9908:function(e){"use strict";e.exports=new Uint16Array([4,52,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,106,303,412,810,1432,1701,1796,1987,2114,2360,2420,2484,3170,3251,4140,4393,4575,4610,5106,5512,5728,6117,6274,6315,6345,6427,6516,7002,7910,8733,9323,9870,10170,10631,10893,11318,11386,11467,12773,13092,14474,14922,15448,15542,16419,17666,18166,18611,19004,19095,19298,19397,4,16,69,77,97,98,99,102,103,108,109,110,111,112,114,115,116,117,140,150,158,169,176,194,199,210,216,222,226,242,256,266,283,294,108,105,103,5,198,1,59,148,1,198,80,5,38,1,59,156,1,38,99,117,116,101,5,193,1,59,167,1,193,114,101,118,101,59,1,258,4,2,105,121,182,191,114,99,5,194,1,59,189,1,194,59,1,1040,114,59,3,55349,56580,114,97,118,101,5,192,1,59,208,1,192,112,104,97,59,1,913,97,99,114,59,1,256,100,59,1,10835,4,2,103,112,232,237,111,110,59,1,260,102,59,3,55349,56632,112,108,121,70,117,110,99,116,105,111,110,59,1,8289,105,110,103,5,197,1,59,264,1,197,4,2,99,115,272,277,114,59,3,55349,56476,105,103,110,59,1,8788,105,108,100,101,5,195,1,59,292,1,195,109,108,5,196,1,59,301,1,196,4,8,97,99,101,102,111,114,115,117,321,350,354,383,388,394,400,405,4,2,99,114,327,336,107,115,108,97,115,104,59,1,8726,4,2,118,119,342,345,59,1,10983,101,100,59,1,8966,121,59,1,1041,4,3,99,114,116,362,369,379,97,117,115,101,59,1,8757,110,111,117,108,108,105,115,59,1,8492,97,59,1,914,114,59,3,55349,56581,112,102,59,3,55349,56633,101,118,101,59,1,728,99,114,59,1,8492,109,112,101,113,59,1,8782,4,14,72,79,97,99,100,101,102,104,105,108,111,114,115,117,442,447,456,504,542,547,569,573,577,616,678,784,790,796,99,121,59,1,1063,80,89,5,169,1,59,454,1,169,4,3,99,112,121,464,470,497,117,116,101,59,1,262,4,2,59,105,476,478,1,8914,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59,1,8517,108,101,121,115,59,1,8493,4,4,97,101,105,111,514,520,530,535,114,111,110,59,1,268,100,105,108,5,199,1,59,528,1,199,114,99,59,1,264,110,105,110,116,59,1,8752,111,116,59,1,266,4,2,100,110,553,560,105,108,108,97,59,1,184,116,101,114,68,111,116,59,1,183,114,59,1,8493,105,59,1,935,114,99,108,101,4,4,68,77,80,84,591,596,603,609,111,116,59,1,8857,105,110,117,115,59,1,8854,108,117,115,59,1,8853,105,109,101,115,59,1,8855,111,4,2,99,115,623,646,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8754,101,67,117,114,108,121,4,2,68,81,658,671,111,117,98,108,101,81,117,111,116,101,59,1,8221,117,111,116,101,59,1,8217,4,4,108,110,112,117,688,701,736,753,111,110,4,2,59,101,696,698,1,8759,59,1,10868,4,3,103,105,116,709,717,722,114,117,101,110,116,59,1,8801,110,116,59,1,8751,111,117,114,73,110,116,101,103,114,97,108,59,1,8750,4,2,102,114,742,745,59,1,8450,111,100,117,99,116,59,1,8720,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8755,111,115,115,59,1,10799,99,114,59,3,55349,56478,112,4,2,59,67,803,805,1,8915,97,112,59,1,8781,4,11,68,74,83,90,97,99,101,102,105,111,115,834,850,855,860,865,888,903,916,921,1011,1415,4,2,59,111,840,842,1,8517,116,114,97,104,100,59,1,10513,99,121,59,1,1026,99,121,59,1,1029,99,121,59,1,1039,4,3,103,114,115,873,879,883,103,101,114,59,1,8225,114,59,1,8609,104,118,59,1,10980,4,2,97,121,894,900,114,111,110,59,1,270,59,1,1044,108,4,2,59,116,910,912,1,8711,97,59,1,916,114,59,3,55349,56583,4,2,97,102,927,998,4,2,99,109,933,992,114,105,116,105,99,97,108,4,4,65,68,71,84,950,957,978,985,99,117,116,101,59,1,180,111,4,2,116,117,964,967,59,1,729,98,108,101,65,99,117,116,101,59,1,733,114,97,118,101,59,1,96,105,108,100,101,59,1,732,111,110,100,59,1,8900,102,101,114,101,110,116,105,97,108,68,59,1,8518,4,4,112,116,117,119,1021,1026,1048,1249,102,59,3,55349,56635,4,3,59,68,69,1034,1036,1041,1,168,111,116,59,1,8412,113,117,97,108,59,1,8784,98,108,101,4,6,67,68,76,82,85,86,1065,1082,1101,1189,1211,1236,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8751,111,4,2,116,119,1089,1092,59,1,168,110,65,114,114,111,119,59,1,8659,4,2,101,111,1107,1141,102,116,4,3,65,82,84,1117,1124,1136,114,114,111,119,59,1,8656,105,103,104,116,65,114,114,111,119,59,1,8660,101,101,59,1,10980,110,103,4,2,76,82,1149,1177,101,102,116,4,2,65,82,1158,1165,114,114,111,119,59,1,10232,105,103,104,116,65,114,114,111,119,59,1,10234,105,103,104,116,65,114,114,111,119,59,1,10233,105,103,104,116,4,2,65,84,1199,1206,114,114,111,119,59,1,8658,101,101,59,1,8872,112,4,2,65,68,1218,1225,114,114,111,119,59,1,8657,111,119,110,65,114,114,111,119,59,1,8661,101,114,116,105,99,97,108,66,97,114,59,1,8741,110,4,6,65,66,76,82,84,97,1264,1292,1299,1352,1391,1408,114,114,111,119,4,3,59,66,85,1276,1278,1283,1,8595,97,114,59,1,10515,112,65,114,114,111,119,59,1,8693,114,101,118,101,59,1,785,101,102,116,4,3,82,84,86,1310,1323,1334,105,103,104,116,86,101,99,116,111,114,59,1,10576,101,101,86,101,99,116,111,114,59,1,10590,101,99,116,111,114,4,2,59,66,1345,1347,1,8637,97,114,59,1,10582,105,103,104,116,4,2,84,86,1362,1373,101,101,86,101,99,116,111,114,59,1,10591,101,99,116,111,114,4,2,59,66,1384,1386,1,8641,97,114,59,1,10583,101,101,4,2,59,65,1399,1401,1,8868,114,114,111,119,59,1,8615,114,114,111,119,59,1,8659,4,2,99,116,1421,1426,114,59,3,55349,56479,114,111,107,59,1,272,4,16,78,84,97,99,100,102,103,108,109,111,112,113,115,116,117,120,1466,1470,1478,1489,1515,1520,1525,1536,1544,1593,1609,1617,1650,1664,1668,1677,71,59,1,330,72,5,208,1,59,1476,1,208,99,117,116,101,5,201,1,59,1487,1,201,4,3,97,105,121,1497,1503,1512,114,111,110,59,1,282,114,99,5,202,1,59,1510,1,202,59,1,1069,111,116,59,1,278,114,59,3,55349,56584,114,97,118,101,5,200,1,59,1534,1,200,101,109,101,110,116,59,1,8712,4,2,97,112,1550,1555,99,114,59,1,274,116,121,4,2,83,86,1563,1576,109,97,108,108,83,113,117,97,114,101,59,1,9723,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9643,4,2,103,112,1599,1604,111,110,59,1,280,102,59,3,55349,56636,115,105,108,111,110,59,1,917,117,4,2,97,105,1624,1640,108,4,2,59,84,1631,1633,1,10869,105,108,100,101,59,1,8770,108,105,98,114,105,117,109,59,1,8652,4,2,99,105,1656,1660,114,59,1,8496,109,59,1,10867,97,59,1,919,109,108,5,203,1,59,1675,1,203,4,2,105,112,1683,1689,115,116,115,59,1,8707,111,110,101,110,116,105,97,108,69,59,1,8519,4,5,99,102,105,111,115,1713,1717,1722,1762,1791,121,59,1,1060,114,59,3,55349,56585,108,108,101,100,4,2,83,86,1732,1745,109,97,108,108,83,113,117,97,114,101,59,1,9724,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9642,4,3,112,114,117,1770,1775,1781,102,59,3,55349,56637,65,108,108,59,1,8704,114,105,101,114,116,114,102,59,1,8497,99,114,59,1,8497,4,12,74,84,97,98,99,100,102,103,111,114,115,116,1822,1827,1834,1848,1855,1877,1882,1887,1890,1896,1978,1984,99,121,59,1,1027,5,62,1,59,1832,1,62,109,109,97,4,2,59,100,1843,1845,1,915,59,1,988,114,101,118,101,59,1,286,4,3,101,105,121,1863,1869,1874,100,105,108,59,1,290,114,99,59,1,284,59,1,1043,111,116,59,1,288,114,59,3,55349,56586,59,1,8921,112,102,59,3,55349,56638,101,97,116,101,114,4,6,69,70,71,76,83,84,1915,1933,1944,1953,1959,1971,113,117,97,108,4,2,59,76,1925,1927,1,8805,101,115,115,59,1,8923,117,108,108,69,113,117,97,108,59,1,8807,114,101,97,116,101,114,59,1,10914,101,115,115,59,1,8823,108,97,110,116,69,113,117,97,108,59,1,10878,105,108,100,101,59,1,8819,99,114,59,3,55349,56482,59,1,8811,4,8,65,97,99,102,105,111,115,117,2005,2012,2026,2032,2036,2049,2073,2089,82,68,99,121,59,1,1066,4,2,99,116,2018,2023,101,107,59,1,711,59,1,94,105,114,99,59,1,292,114,59,1,8460,108,98,101,114,116,83,112,97,99,101,59,1,8459,4,2,112,114,2055,2059,102,59,1,8461,105,122,111,110,116,97,108,76,105,110,101,59,1,9472,4,2,99,116,2079,2083,114,59,1,8459,114,111,107,59,1,294,109,112,4,2,68,69,2097,2107,111,119,110,72,117,109,112,59,1,8782,113,117,97,108,59,1,8783,4,14,69,74,79,97,99,100,102,103,109,110,111,115,116,117,2144,2149,2155,2160,2171,2189,2194,2198,2209,2245,2307,2329,2334,2341,99,121,59,1,1045,108,105,103,59,1,306,99,121,59,1,1025,99,117,116,101,5,205,1,59,2169,1,205,4,2,105,121,2177,2186,114,99,5,206,1,59,2184,1,206,59,1,1048,111,116,59,1,304,114,59,1,8465,114,97,118,101,5,204,1,59,2207,1,204,4,3,59,97,112,2217,2219,2238,1,8465,4,2,99,103,2225,2229,114,59,1,298,105,110,97,114,121,73,59,1,8520,108,105,101,115,59,1,8658,4,2,116,118,2251,2281,4,2,59,101,2257,2259,1,8748,4,2,103,114,2265,2271,114,97,108,59,1,8747,115,101,99,116,105,111,110,59,1,8898,105,115,105,98,108,101,4,2,67,84,2293,2300,111,109,109,97,59,1,8291,105,109,101,115,59,1,8290,4,3,103,112,116,2315,2320,2325,111,110,59,1,302,102,59,3,55349,56640,97,59,1,921,99,114,59,1,8464,105,108,100,101,59,1,296,4,2,107,109,2347,2352,99,121,59,1,1030,108,5,207,1,59,2358,1,207,4,5,99,102,111,115,117,2372,2386,2391,2397,2414,4,2,105,121,2378,2383,114,99,59,1,308,59,1,1049,114,59,3,55349,56589,112,102,59,3,55349,56641,4,2,99,101,2403,2408,114,59,3,55349,56485,114,99,121,59,1,1032,107,99,121,59,1,1028,4,7,72,74,97,99,102,111,115,2436,2441,2446,2452,2467,2472,2478,99,121,59,1,1061,99,121,59,1,1036,112,112,97,59,1,922,4,2,101,121,2458,2464,100,105,108,59,1,310,59,1,1050,114,59,3,55349,56590,112,102,59,3,55349,56642,99,114,59,3,55349,56486,4,11,74,84,97,99,101,102,108,109,111,115,116,2508,2513,2520,2562,2585,2981,2986,3004,3011,3146,3167,99,121,59,1,1033,5,60,1,59,2518,1,60,4,5,99,109,110,112,114,2532,2538,2544,2548,2558,117,116,101,59,1,313,98,100,97,59,1,923,103,59,1,10218,108,97,99,101,116,114,102,59,1,8466,114,59,1,8606,4,3,97,101,121,2570,2576,2582,114,111,110,59,1,317,100,105,108,59,1,315,59,1,1051,4,2,102,115,2591,2907,116,4,10,65,67,68,70,82,84,85,86,97,114,2614,2663,2672,2728,2735,2760,2820,2870,2888,2895,4,2,110,114,2620,2633,103,108,101,66,114,97,99,107,101,116,59,1,10216,114,111,119,4,3,59,66,82,2644,2646,2651,1,8592,97,114,59,1,8676,105,103,104,116,65,114,114,111,119,59,1,8646,101,105,108,105,110,103,59,1,8968,111,4,2,117,119,2679,2692,98,108,101,66,114,97,99,107,101,116,59,1,10214,110,4,2,84,86,2699,2710,101,101,86,101,99,116,111,114,59,1,10593,101,99,116,111,114,4,2,59,66,2721,2723,1,8643,97,114,59,1,10585,108,111,111,114,59,1,8970,105,103,104,116,4,2,65,86,2745,2752,114,114,111,119,59,1,8596,101,99,116,111,114,59,1,10574,4,2,101,114,2766,2792,101,4,3,59,65,86,2775,2777,2784,1,8867,114,114,111,119,59,1,8612,101,99,116,111,114,59,1,10586,105,97,110,103,108,101,4,3,59,66,69,2806,2808,2813,1,8882,97,114,59,1,10703,113,117,97,108,59,1,8884,112,4,3,68,84,86,2829,2841,2852,111,119,110,86,101,99,116,111,114,59,1,10577,101,101,86,101,99,116,111,114,59,1,10592,101,99,116,111,114,4,2,59,66,2863,2865,1,8639,97,114,59,1,10584,101,99,116,111,114,4,2,59,66,2881,2883,1,8636,97,114,59,1,10578,114,114,111,119,59,1,8656,105,103,104,116,97,114,114,111,119,59,1,8660,115,4,6,69,70,71,76,83,84,2922,2936,2947,2956,2962,2974,113,117,97,108,71,114,101,97,116,101,114,59,1,8922,117,108,108,69,113,117,97,108,59,1,8806,114,101,97,116,101,114,59,1,8822,101,115,115,59,1,10913,108,97,110,116,69,113,117,97,108,59,1,10877,105,108,100,101,59,1,8818,114,59,3,55349,56591,4,2,59,101,2992,2994,1,8920,102,116,97,114,114,111,119,59,1,8666,105,100,111,116,59,1,319,4,3,110,112,119,3019,3110,3115,103,4,4,76,82,108,114,3030,3058,3070,3098,101,102,116,4,2,65,82,3039,3046,114,114,111,119,59,1,10229,105,103,104,116,65,114,114,111,119,59,1,10231,105,103,104,116,65,114,114,111,119,59,1,10230,101,102,116,4,2,97,114,3079,3086,114,114,111,119,59,1,10232,105,103,104,116,97,114,114,111,119,59,1,10234,105,103,104,116,97,114,114,111,119,59,1,10233,102,59,3,55349,56643,101,114,4,2,76,82,3123,3134,101,102,116,65,114,114,111,119,59,1,8601,105,103,104,116,65,114,114,111,119,59,1,8600,4,3,99,104,116,3154,3158,3161,114,59,1,8466,59,1,8624,114,111,107,59,1,321,59,1,8810,4,8,97,99,101,102,105,111,115,117,3188,3192,3196,3222,3227,3237,3243,3248,112,59,1,10501,121,59,1,1052,4,2,100,108,3202,3213,105,117,109,83,112,97,99,101,59,1,8287,108,105,110,116,114,102,59,1,8499,114,59,3,55349,56592,110,117,115,80,108,117,115,59,1,8723,112,102,59,3,55349,56644,99,114,59,1,8499,59,1,924,4,9,74,97,99,101,102,111,115,116,117,3271,3276,3283,3306,3422,3427,4120,4126,4137,99,121,59,1,1034,99,117,116,101,59,1,323,4,3,97,101,121,3291,3297,3303,114,111,110,59,1,327,100,105,108,59,1,325,59,1,1053,4,3,103,115,119,3314,3380,3415,97,116,105,118,101,4,3,77,84,86,3327,3340,3365,101,100,105,117,109,83,112,97,99,101,59,1,8203,104,105,4,2,99,110,3348,3357,107,83,112,97,99,101,59,1,8203,83,112,97,99,101,59,1,8203,101,114,121,84,104,105,110,83,112,97,99,101,59,1,8203,116,101,100,4,2,71,76,3389,3405,114,101,97,116,101,114,71,114,101,97,116,101,114,59,1,8811,101,115,115,76,101,115,115,59,1,8810,76,105,110,101,59,1,10,114,59,3,55349,56593,4,4,66,110,112,116,3437,3444,3460,3464,114,101,97,107,59,1,8288,66,114,101,97,107,105,110,103,83,112,97,99,101,59,1,160,102,59,1,8469,4,13,59,67,68,69,71,72,76,78,80,82,83,84,86,3492,3494,3517,3536,3578,3657,3685,3784,3823,3860,3915,4066,4107,1,10988,4,2,111,117,3500,3510,110,103,114,117,101,110,116,59,1,8802,112,67,97,112,59,1,8813,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59,1,8742,4,3,108,113,120,3544,3552,3571,101,109,101,110,116,59,1,8713,117,97,108,4,2,59,84,3561,3563,1,8800,105,108,100,101,59,3,8770,824,105,115,116,115,59,1,8708,114,101,97,116,101,114,4,7,59,69,70,71,76,83,84,3600,3602,3609,3621,3631,3637,3650,1,8815,113,117,97,108,59,1,8817,117,108,108,69,113,117,97,108,59,3,8807,824,114,101,97,116,101,114,59,3,8811,824,101,115,115,59,1,8825,108,97,110,116,69,113,117,97,108,59,3,10878,824,105,108,100,101,59,1,8821,117,109,112,4,2,68,69,3666,3677,111,119,110,72,117,109,112,59,3,8782,824,113,117,97,108,59,3,8783,824,101,4,2,102,115,3692,3724,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3709,3711,3717,1,8938,97,114,59,3,10703,824,113,117,97,108,59,1,8940,115,4,6,59,69,71,76,83,84,3739,3741,3748,3757,3764,3777,1,8814,113,117,97,108,59,1,8816,114,101,97,116,101,114,59,1,8824,101,115,115,59,3,8810,824,108,97,110,116,69,113,117,97,108,59,3,10877,824,105,108,100,101,59,1,8820,101,115,116,101,100,4,2,71,76,3795,3812,114,101,97,116,101,114,71,114,101,97,116,101,114,59,3,10914,824,101,115,115,76,101,115,115,59,3,10913,824,114,101,99,101,100,101,115,4,3,59,69,83,3838,3840,3848,1,8832,113,117,97,108,59,3,10927,824,108,97,110,116,69,113,117,97,108,59,1,8928,4,2,101,105,3866,3881,118,101,114,115,101,69,108,101,109,101,110,116,59,1,8716,103,104,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3900,3902,3908,1,8939,97,114,59,3,10704,824,113,117,97,108,59,1,8941,4,2,113,117,3921,3973,117,97,114,101,83,117,4,2,98,112,3933,3952,115,101,116,4,2,59,69,3942,3945,3,8847,824,113,117,97,108,59,1,8930,101,114,115,101,116,4,2,59,69,3963,3966,3,8848,824,113,117,97,108,59,1,8931,4,3,98,99,112,3981,4e3,4045,115,101,116,4,2,59,69,3990,3993,3,8834,8402,113,117,97,108,59,1,8840,99,101,101,100,115,4,4,59,69,83,84,4015,4017,4025,4037,1,8833,113,117,97,108,59,3,10928,824,108,97,110,116,69,113,117,97,108,59,1,8929,105,108,100,101,59,3,8831,824,101,114,115,101,116,4,2,59,69,4056,4059,3,8835,8402,113,117,97,108,59,1,8841,105,108,100,101,4,4,59,69,70,84,4080,4082,4089,4100,1,8769,113,117,97,108,59,1,8772,117,108,108,69,113,117,97,108,59,1,8775,105,108,100,101,59,1,8777,101,114,116,105,99,97,108,66,97,114,59,1,8740,99,114,59,3,55349,56489,105,108,100,101,5,209,1,59,4135,1,209,59,1,925,4,14,69,97,99,100,102,103,109,111,112,114,115,116,117,118,4170,4176,4187,4205,4212,4217,4228,4253,4259,4292,4295,4316,4337,4346,108,105,103,59,1,338,99,117,116,101,5,211,1,59,4185,1,211,4,2,105,121,4193,4202,114,99,5,212,1,59,4200,1,212,59,1,1054,98,108,97,99,59,1,336,114,59,3,55349,56594,114,97,118,101,5,210,1,59,4226,1,210,4,3,97,101,105,4236,4241,4246,99,114,59,1,332,103,97,59,1,937,99,114,111,110,59,1,927,112,102,59,3,55349,56646,101,110,67,117,114,108,121,4,2,68,81,4272,4285,111,117,98,108,101,81,117,111,116,101,59,1,8220,117,111,116,101,59,1,8216,59,1,10836,4,2,99,108,4301,4306,114,59,3,55349,56490,97,115,104,5,216,1,59,4314,1,216,105,4,2,108,109,4323,4332,100,101,5,213,1,59,4330,1,213,101,115,59,1,10807,109,108,5,214,1,59,4344,1,214,101,114,4,2,66,80,4354,4380,4,2,97,114,4360,4364,114,59,1,8254,97,99,4,2,101,107,4372,4375,59,1,9182,101,116,59,1,9140,97,114,101,110,116,104,101,115,105,115,59,1,9180,4,9,97,99,102,104,105,108,111,114,115,4413,4422,4426,4431,4435,4438,4448,4471,4561,114,116,105,97,108,68,59,1,8706,121,59,1,1055,114,59,3,55349,56595,105,59,1,934,59,1,928,117,115,77,105,110,117,115,59,1,177,4,2,105,112,4454,4467,110,99,97,114,101,112,108,97,110,101,59,1,8460,102,59,1,8473,4,4,59,101,105,111,4481,4483,4526,4531,1,10939,99,101,100,101,115,4,4,59,69,83,84,4498,4500,4507,4519,1,8826,113,117,97,108,59,1,10927,108,97,110,116,69,113,117,97,108,59,1,8828,105,108,100,101,59,1,8830,109,101,59,1,8243,4,2,100,112,4537,4543,117,99,116,59,1,8719,111,114,116,105,111,110,4,2,59,97,4555,4557,1,8759,108,59,1,8733,4,2,99,105,4567,4572,114,59,3,55349,56491,59,1,936,4,4,85,102,111,115,4585,4594,4599,4604,79,84,5,34,1,59,4592,1,34,114,59,3,55349,56596,112,102,59,1,8474,99,114,59,3,55349,56492,4,12,66,69,97,99,101,102,104,105,111,114,115,117,4636,4642,4650,4681,4704,4763,4767,4771,5047,5069,5081,5094,97,114,114,59,1,10512,71,5,174,1,59,4648,1,174,4,3,99,110,114,4658,4664,4668,117,116,101,59,1,340,103,59,1,10219,114,4,2,59,116,4675,4677,1,8608,108,59,1,10518,4,3,97,101,121,4689,4695,4701,114,111,110,59,1,344,100,105,108,59,1,342,59,1,1056,4,2,59,118,4710,4712,1,8476,101,114,115,101,4,2,69,85,4722,4748,4,2,108,113,4728,4736,101,109,101,110,116,59,1,8715,117,105,108,105,98,114,105,117,109,59,1,8651,112,69,113,117,105,108,105,98,114,105,117,109,59,1,10607,114,59,1,8476,111,59,1,929,103,104,116,4,8,65,67,68,70,84,85,86,97,4792,4840,4849,4905,4912,4972,5022,5040,4,2,110,114,4798,4811,103,108,101,66,114,97,99,107,101,116,59,1,10217,114,111,119,4,3,59,66,76,4822,4824,4829,1,8594,97,114,59,1,8677,101,102,116,65,114,114,111,119,59,1,8644,101,105,108,105,110,103,59,1,8969,111,4,2,117,119,4856,4869,98,108,101,66,114,97,99,107,101,116,59,1,10215,110,4,2,84,86,4876,4887,101,101,86,101,99,116,111,114,59,1,10589,101,99,116,111,114,4,2,59,66,4898,4900,1,8642,97,114,59,1,10581,108,111,111,114,59,1,8971,4,2,101,114,4918,4944,101,4,3,59,65,86,4927,4929,4936,1,8866,114,114,111,119,59,1,8614,101,99,116,111,114,59,1,10587,105,97,110,103,108,101,4,3,59,66,69,4958,4960,4965,1,8883,97,114,59,1,10704,113,117,97,108,59,1,8885,112,4,3,68,84,86,4981,4993,5004,111,119,110,86,101,99,116,111,114,59,1,10575,101,101,86,101,99,116,111,114,59,1,10588,101,99,116,111,114,4,2,59,66,5015,5017,1,8638,97,114,59,1,10580,101,99,116,111,114,4,2,59,66,5033,5035,1,8640,97,114,59,1,10579,114,114,111,119,59,1,8658,4,2,112,117,5053,5057,102,59,1,8477,110,100,73,109,112,108,105,101,115,59,1,10608,105,103,104,116,97,114,114,111,119,59,1,8667,4,2,99,104,5087,5091,114,59,1,8475,59,1,8625,108,101,68,101,108,97,121,101,100,59,1,10740,4,13,72,79,97,99,102,104,105,109,111,113,115,116,117,5134,5150,5157,5164,5198,5203,5259,5265,5277,5283,5374,5380,5385,4,2,67,99,5140,5146,72,99,121,59,1,1065,121,59,1,1064,70,84,99,121,59,1,1068,99,117,116,101,59,1,346,4,5,59,97,101,105,121,5176,5178,5184,5190,5195,1,10940,114,111,110,59,1,352,100,105,108,59,1,350,114,99,59,1,348,59,1,1057,114,59,3,55349,56598,111,114,116,4,4,68,76,82,85,5216,5227,5238,5250,111,119,110,65,114,114,111,119,59,1,8595,101,102,116,65,114,114,111,119,59,1,8592,105,103,104,116,65,114,114,111,119,59,1,8594,112,65,114,114,111,119,59,1,8593,103,109,97,59,1,931,97,108,108,67,105,114,99,108,101,59,1,8728,112,102,59,3,55349,56650,4,2,114,117,5289,5293,116,59,1,8730,97,114,101,4,4,59,73,83,85,5306,5308,5322,5367,1,9633,110,116,101,114,115,101,99,116,105,111,110,59,1,8851,117,4,2,98,112,5329,5347,115,101,116,4,2,59,69,5338,5340,1,8847,113,117,97,108,59,1,8849,101,114,115,101,116,4,2,59,69,5358,5360,1,8848,113,117,97,108,59,1,8850,110,105,111,110,59,1,8852,99,114,59,3,55349,56494,97,114,59,1,8902,4,4,98,99,109,112,5395,5420,5475,5478,4,2,59,115,5401,5403,1,8912,101,116,4,2,59,69,5411,5413,1,8912,113,117,97,108,59,1,8838,4,2,99,104,5426,5468,101,101,100,115,4,4,59,69,83,84,5440,5442,5449,5461,1,8827,113,117,97,108,59,1,10928,108,97,110,116,69,113,117,97,108,59,1,8829,105,108,100,101,59,1,8831,84,104,97,116,59,1,8715,59,1,8721,4,3,59,101,115,5486,5488,5507,1,8913,114,115,101,116,4,2,59,69,5498,5500,1,8835,113,117,97,108,59,1,8839,101,116,59,1,8913,4,11,72,82,83,97,99,102,104,105,111,114,115,5536,5546,5552,5567,5579,5602,5607,5655,5695,5701,5711,79,82,78,5,222,1,59,5544,1,222,65,68,69,59,1,8482,4,2,72,99,5558,5563,99,121,59,1,1035,121,59,1,1062,4,2,98,117,5573,5576,59,1,9,59,1,932,4,3,97,101,121,5587,5593,5599,114,111,110,59,1,356,100,105,108,59,1,354,59,1,1058,114,59,3,55349,56599,4,2,101,105,5613,5631,4,2,114,116,5619,5627,101,102,111,114,101,59,1,8756,97,59,1,920,4,2,99,110,5637,5647,107,83,112,97,99,101,59,3,8287,8202,83,112,97,99,101,59,1,8201,108,100,101,4,4,59,69,70,84,5668,5670,5677,5688,1,8764,113,117,97,108,59,1,8771,117,108,108,69,113,117,97,108,59,1,8773,105,108,100,101,59,1,8776,112,102,59,3,55349,56651,105,112,108,101,68,111,116,59,1,8411,4,2,99,116,5717,5722,114,59,3,55349,56495,114,111,107,59,1,358,4,14,97,98,99,100,102,103,109,110,111,112,114,115,116,117,5758,5789,5805,5823,5830,5835,5846,5852,5921,5937,6089,6095,6101,6108,4,2,99,114,5764,5774,117,116,101,5,218,1,59,5772,1,218,114,4,2,59,111,5781,5783,1,8607,99,105,114,59,1,10569,114,4,2,99,101,5796,5800,121,59,1,1038,118,101,59,1,364,4,2,105,121,5811,5820,114,99,5,219,1,59,5818,1,219,59,1,1059,98,108,97,99,59,1,368,114,59,3,55349,56600,114,97,118,101,5,217,1,59,5844,1,217,97,99,114,59,1,362,4,2,100,105,5858,5905,101,114,4,2,66,80,5866,5892,4,2,97,114,5872,5876,114,59,1,95,97,99,4,2,101,107,5884,5887,59,1,9183,101,116,59,1,9141,97,114,101,110,116,104,101,115,105,115,59,1,9181,111,110,4,2,59,80,5913,5915,1,8899,108,117,115,59,1,8846,4,2,103,112,5927,5932,111,110,59,1,370,102,59,3,55349,56652,4,8,65,68,69,84,97,100,112,115,5955,5985,5996,6009,6026,6033,6044,6075,114,114,111,119,4,3,59,66,68,5967,5969,5974,1,8593,97,114,59,1,10514,111,119,110,65,114,114,111,119,59,1,8645,111,119,110,65,114,114,111,119,59,1,8597,113,117,105,108,105,98,114,105,117,109,59,1,10606,101,101,4,2,59,65,6017,6019,1,8869,114,114,111,119,59,1,8613,114,114,111,119,59,1,8657,111,119,110,97,114,114,111,119,59,1,8661,101,114,4,2,76,82,6052,6063,101,102,116,65,114,114,111,119,59,1,8598,105,103,104,116,65,114,114,111,119,59,1,8599,105,4,2,59,108,6082,6084,1,978,111,110,59,1,933,105,110,103,59,1,366,99,114,59,3,55349,56496,105,108,100,101,59,1,360,109,108,5,220,1,59,6115,1,220,4,9,68,98,99,100,101,102,111,115,118,6137,6143,6148,6152,6166,6250,6255,6261,6267,97,115,104,59,1,8875,97,114,59,1,10987,121,59,1,1042,97,115,104,4,2,59,108,6161,6163,1,8873,59,1,10982,4,2,101,114,6172,6175,59,1,8897,4,3,98,116,121,6183,6188,6238,97,114,59,1,8214,4,2,59,105,6194,6196,1,8214,99,97,108,4,4,66,76,83,84,6209,6214,6220,6231,97,114,59,1,8739,105,110,101,59,1,124,101,112,97,114,97,116,111,114,59,1,10072,105,108,100,101,59,1,8768,84,104,105,110,83,112,97,99,101,59,1,8202,114,59,3,55349,56601,112,102,59,3,55349,56653,99,114,59,3,55349,56497,100,97,115,104,59,1,8874,4,5,99,101,102,111,115,6286,6292,6298,6303,6309,105,114,99,59,1,372,100,103,101,59,1,8896,114,59,3,55349,56602,112,102,59,3,55349,56654,99,114,59,3,55349,56498,4,4,102,105,111,115,6325,6330,6333,6339,114,59,3,55349,56603,59,1,926,112,102,59,3,55349,56655,99,114,59,3,55349,56499,4,9,65,73,85,97,99,102,111,115,117,6365,6370,6375,6380,6391,6405,6410,6416,6422,99,121,59,1,1071,99,121,59,1,1031,99,121,59,1,1070,99,117,116,101,5,221,1,59,6389,1,221,4,2,105,121,6397,6402,114,99,59,1,374,59,1,1067,114,59,3,55349,56604,112,102,59,3,55349,56656,99,114,59,3,55349,56500,109,108,59,1,376,4,8,72,97,99,100,101,102,111,115,6445,6450,6457,6472,6477,6501,6505,6510,99,121,59,1,1046,99,117,116,101,59,1,377,4,2,97,121,6463,6469,114,111,110,59,1,381,59,1,1047,111,116,59,1,379,4,2,114,116,6483,6497,111,87,105,100,116,104,83,112,97,99,101,59,1,8203,97,59,1,918,114,59,1,8488,112,102,59,1,8484,99,114,59,3,55349,56501,4,16,97,98,99,101,102,103,108,109,110,111,112,114,115,116,117,119,6550,6561,6568,6612,6622,6634,6645,6672,6699,6854,6870,6923,6933,6963,6974,6983,99,117,116,101,5,225,1,59,6559,1,225,114,101,118,101,59,1,259,4,6,59,69,100,105,117,121,6582,6584,6588,6591,6600,6609,1,8766,59,3,8766,819,59,1,8767,114,99,5,226,1,59,6598,1,226,116,101,5,180,1,59,6607,1,180,59,1,1072,108,105,103,5,230,1,59,6620,1,230,4,2,59,114,6628,6630,1,8289,59,3,55349,56606,114,97,118,101,5,224,1,59,6643,1,224,4,2,101,112,6651,6667,4,2,102,112,6657,6663,115,121,109,59,1,8501,104,59,1,8501,104,97,59,1,945,4,2,97,112,6678,6692,4,2,99,108,6684,6688,114,59,1,257,103,59,1,10815,5,38,1,59,6697,1,38,4,2,100,103,6705,6737,4,5,59,97,100,115,118,6717,6719,6724,6727,6734,1,8743,110,100,59,1,10837,59,1,10844,108,111,112,101,59,1,10840,59,1,10842,4,7,59,101,108,109,114,115,122,6753,6755,6758,6762,6814,6835,6848,1,8736,59,1,10660,101,59,1,8736,115,100,4,2,59,97,6770,6772,1,8737,4,8,97,98,99,100,101,102,103,104,6790,6793,6796,6799,6802,6805,6808,6811,59,1,10664,59,1,10665,59,1,10666,59,1,10667,59,1,10668,59,1,10669,59,1,10670,59,1,10671,116,4,2,59,118,6821,6823,1,8735,98,4,2,59,100,6830,6832,1,8894,59,1,10653,4,2,112,116,6841,6845,104,59,1,8738,59,1,197,97,114,114,59,1,9084,4,2,103,112,6860,6865,111,110,59,1,261,102,59,3,55349,56658,4,7,59,69,97,101,105,111,112,6886,6888,6891,6897,6900,6904,6908,1,8776,59,1,10864,99,105,114,59,1,10863,59,1,8778,100,59,1,8779,115,59,1,39,114,111,120,4,2,59,101,6917,6919,1,8776,113,59,1,8778,105,110,103,5,229,1,59,6931,1,229,4,3,99,116,121,6941,6946,6949,114,59,3,55349,56502,59,1,42,109,112,4,2,59,101,6957,6959,1,8776,113,59,1,8781,105,108,100,101,5,227,1,59,6972,1,227,109,108,5,228,1,59,6981,1,228,4,2,99,105,6989,6997,111,110,105,110,116,59,1,8755,110,116,59,1,10769,4,16,78,97,98,99,100,101,102,105,107,108,110,111,112,114,115,117,7036,7041,7119,7135,7149,7155,7219,7224,7347,7354,7463,7489,7786,7793,7814,7866,111,116,59,1,10989,4,2,99,114,7047,7094,107,4,4,99,101,112,115,7058,7064,7073,7080,111,110,103,59,1,8780,112,115,105,108,111,110,59,1,1014,114,105,109,101,59,1,8245,105,109,4,2,59,101,7088,7090,1,8765,113,59,1,8909,4,2,118,119,7100,7105,101,101,59,1,8893,101,100,4,2,59,103,7113,7115,1,8965,101,59,1,8965,114,107,4,2,59,116,7127,7129,1,9141,98,114,107,59,1,9142,4,2,111,121,7141,7146,110,103,59,1,8780,59,1,1073,113,117,111,59,1,8222,4,5,99,109,112,114,116,7167,7181,7188,7193,7199,97,117,115,4,2,59,101,7176,7178,1,8757,59,1,8757,112,116,121,118,59,1,10672,115,105,59,1,1014,110,111,117,59,1,8492,4,3,97,104,119,7207,7210,7213,59,1,946,59,1,8502,101,101,110,59,1,8812,114,59,3,55349,56607,103,4,7,99,111,115,116,117,118,119,7241,7262,7288,7305,7328,7335,7340,4,3,97,105,117,7249,7253,7258,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,4,3,100,112,116,7270,7275,7281,111,116,59,1,10752,108,117,115,59,1,10753,105,109,101,115,59,1,10754,4,2,113,116,7294,7300,99,117,112,59,1,10758,97,114,59,1,9733,114,105,97,110,103,108,101,4,2,100,117,7318,7324,111,119,110,59,1,9661,112,59,1,9651,112,108,117,115,59,1,10756,101,101,59,1,8897,101,100,103,101,59,1,8896,97,114,111,119,59,1,10509,4,3,97,107,111,7362,7436,7458,4,2,99,110,7368,7432,107,4,3,108,115,116,7377,7386,7394,111,122,101,110,103,101,59,1,10731,113,117,97,114,101,59,1,9642,114,105,97,110,103,108,101,4,4,59,100,108,114,7411,7413,7419,7425,1,9652,111,119,110,59,1,9662,101,102,116,59,1,9666,105,103,104,116,59,1,9656,107,59,1,9251,4,2,49,51,7442,7454,4,2,50,52,7448,7451,59,1,9618,59,1,9617,52,59,1,9619,99,107,59,1,9608,4,2,101,111,7469,7485,4,2,59,113,7475,7478,3,61,8421,117,105,118,59,3,8801,8421,116,59,1,8976,4,4,112,116,119,120,7499,7504,7517,7523,102,59,3,55349,56659,4,2,59,116,7510,7512,1,8869,111,109,59,1,8869,116,105,101,59,1,8904,4,12,68,72,85,86,98,100,104,109,112,116,117,118,7549,7571,7597,7619,7655,7660,7682,7708,7715,7721,7728,7750,4,4,76,82,108,114,7559,7562,7565,7568,59,1,9559,59,1,9556,59,1,9558,59,1,9555,4,5,59,68,85,100,117,7583,7585,7588,7591,7594,1,9552,59,1,9574,59,1,9577,59,1,9572,59,1,9575,4,4,76,82,108,114,7607,7610,7613,7616,59,1,9565,59,1,9562,59,1,9564,59,1,9561,4,7,59,72,76,82,104,108,114,7635,7637,7640,7643,7646,7649,7652,1,9553,59,1,9580,59,1,9571,59,1,9568,59,1,9579,59,1,9570,59,1,9567,111,120,59,1,10697,4,4,76,82,108,114,7670,7673,7676,7679,59,1,9557,59,1,9554,59,1,9488,59,1,9484,4,5,59,68,85,100,117,7694,7696,7699,7702,7705,1,9472,59,1,9573,59,1,9576,59,1,9516,59,1,9524,105,110,117,115,59,1,8863,108,117,115,59,1,8862,105,109,101,115,59,1,8864,4,4,76,82,108,114,7738,7741,7744,7747,59,1,9563,59,1,9560,59,1,9496,59,1,9492,4,7,59,72,76,82,104,108,114,7766,7768,7771,7774,7777,7780,7783,1,9474,59,1,9578,59,1,9569,59,1,9566,59,1,9532,59,1,9508,59,1,9500,114,105,109,101,59,1,8245,4,2,101,118,7799,7804,118,101,59,1,728,98,97,114,5,166,1,59,7812,1,166,4,4,99,101,105,111,7824,7829,7834,7846,114,59,3,55349,56503,109,105,59,1,8271,109,4,2,59,101,7841,7843,1,8765,59,1,8909,108,4,3,59,98,104,7855,7857,7860,1,92,59,1,10693,115,117,98,59,1,10184,4,2,108,109,7872,7885,108,4,2,59,101,7879,7881,1,8226,116,59,1,8226,112,4,3,59,69,101,7894,7896,7899,1,8782,59,1,10926,4,2,59,113,7905,7907,1,8783,59,1,8783,4,15,97,99,100,101,102,104,105,108,111,114,115,116,117,119,121,7942,8021,8075,8080,8121,8126,8157,8279,8295,8430,8446,8485,8491,8707,8726,4,3,99,112,114,7950,7956,8007,117,116,101,59,1,263,4,6,59,97,98,99,100,115,7970,7972,7977,7984,7998,8003,1,8745,110,100,59,1,10820,114,99,117,112,59,1,10825,4,2,97,117,7990,7994,112,59,1,10827,112,59,1,10823,111,116,59,1,10816,59,3,8745,65024,4,2,101,111,8013,8017,116,59,1,8257,110,59,1,711,4,4,97,101,105,117,8031,8046,8056,8061,4,2,112,114,8037,8041,115,59,1,10829,111,110,59,1,269,100,105,108,5,231,1,59,8054,1,231,114,99,59,1,265,112,115,4,2,59,115,8069,8071,1,10828,109,59,1,10832,111,116,59,1,267,4,3,100,109,110,8088,8097,8104,105,108,5,184,1,59,8095,1,184,112,116,121,118,59,1,10674,116,5,162,2,59,101,8112,8114,1,162,114,100,111,116,59,1,183,114,59,3,55349,56608,4,3,99,101,105,8134,8138,8154,121,59,1,1095,99,107,4,2,59,109,8146,8148,1,10003,97,114,107,59,1,10003,59,1,967,114,4,7,59,69,99,101,102,109,115,8174,8176,8179,8258,8261,8268,8273,1,9675,59,1,10691,4,3,59,101,108,8187,8189,8193,1,710,113,59,1,8791,101,4,2,97,100,8200,8223,114,114,111,119,4,2,108,114,8210,8216,101,102,116,59,1,8634,105,103,104,116,59,1,8635,4,5,82,83,97,99,100,8235,8238,8241,8246,8252,59,1,174,59,1,9416,115,116,59,1,8859,105,114,99,59,1,8858,97,115,104,59,1,8861,59,1,8791,110,105,110,116,59,1,10768,105,100,59,1,10991,99,105,114,59,1,10690,117,98,115,4,2,59,117,8288,8290,1,9827,105,116,59,1,9827,4,4,108,109,110,112,8305,8326,8376,8400,111,110,4,2,59,101,8313,8315,1,58,4,2,59,113,8321,8323,1,8788,59,1,8788,4,2,109,112,8332,8344,97,4,2,59,116,8339,8341,1,44,59,1,64,4,3,59,102,108,8352,8354,8358,1,8705,110,59,1,8728,101,4,2,109,120,8365,8371,101,110,116,59,1,8705,101,115,59,1,8450,4,2,103,105,8382,8395,4,2,59,100,8388,8390,1,8773,111,116,59,1,10861,110,116,59,1,8750,4,3,102,114,121,8408,8412,8417,59,3,55349,56660,111,100,59,1,8720,5,169,2,59,115,8424,8426,1,169,114,59,1,8471,4,2,97,111,8436,8441,114,114,59,1,8629,115,115,59,1,10007,4,2,99,117,8452,8457,114,59,3,55349,56504,4,2,98,112,8463,8474,4,2,59,101,8469,8471,1,10959,59,1,10961,4,2,59,101,8480,8482,1,10960,59,1,10962,100,111,116,59,1,8943,4,7,100,101,108,112,114,118,119,8507,8522,8536,8550,8600,8697,8702,97,114,114,4,2,108,114,8516,8519,59,1,10552,59,1,10549,4,2,112,115,8528,8532,114,59,1,8926,99,59,1,8927,97,114,114,4,2,59,112,8545,8547,1,8630,59,1,10557,4,6,59,98,99,100,111,115,8564,8566,8573,8587,8592,8596,1,8746,114,99,97,112,59,1,10824,4,2,97,117,8579,8583,112,59,1,10822,112,59,1,10826,111,116,59,1,8845,114,59,1,10821,59,3,8746,65024,4,4,97,108,114,118,8610,8623,8663,8672,114,114,4,2,59,109,8618,8620,1,8631,59,1,10556,121,4,3,101,118,119,8632,8651,8656,113,4,2,112,115,8639,8645,114,101,99,59,1,8926,117,99,99,59,1,8927,101,101,59,1,8910,101,100,103,101,59,1,8911,101,110,5,164,1,59,8670,1,164,101,97,114,114,111,119,4,2,108,114,8684,8690,101,102,116,59,1,8630,105,103,104,116,59,1,8631,101,101,59,1,8910,101,100,59,1,8911,4,2,99,105,8713,8721,111,110,105,110,116,59,1,8754,110,116,59,1,8753,108,99,116,121,59,1,9005,4,19,65,72,97,98,99,100,101,102,104,105,106,108,111,114,115,116,117,119,122,8773,8778,8783,8821,8839,8854,8887,8914,8930,8944,9036,9041,9058,9197,9227,9258,9281,9297,9305,114,114,59,1,8659,97,114,59,1,10597,4,4,103,108,114,115,8793,8799,8805,8809,103,101,114,59,1,8224,101,116,104,59,1,8504,114,59,1,8595,104,4,2,59,118,8816,8818,1,8208,59,1,8867,4,2,107,108,8827,8834,97,114,111,119,59,1,10511,97,99,59,1,733,4,2,97,121,8845,8851,114,111,110,59,1,271,59,1,1076,4,3,59,97,111,8862,8864,8880,1,8518,4,2,103,114,8870,8876,103,101,114,59,1,8225,114,59,1,8650,116,115,101,113,59,1,10871,4,3,103,108,109,8895,8902,8907,5,176,1,59,8900,1,176,116,97,59,1,948,112,116,121,118,59,1,10673,4,2,105,114,8920,8926,115,104,116,59,1,10623,59,3,55349,56609,97,114,4,2,108,114,8938,8941,59,1,8643,59,1,8642,4,5,97,101,103,115,118,8956,8986,8989,8996,9001,109,4,3,59,111,115,8965,8967,8983,1,8900,110,100,4,2,59,115,8975,8977,1,8900,117,105,116,59,1,9830,59,1,9830,59,1,168,97,109,109,97,59,1,989,105,110,59,1,8946,4,3,59,105,111,9009,9011,9031,1,247,100,101,5,247,2,59,111,9020,9022,1,247,110,116,105,109,101,115,59,1,8903,110,120,59,1,8903,99,121,59,1,1106,99,4,2,111,114,9048,9053,114,110,59,1,8990,111,112,59,1,8973,4,5,108,112,116,117,119,9070,9076,9081,9130,9144,108,97,114,59,1,36,102,59,3,55349,56661,4,5,59,101,109,112,115,9093,9095,9109,9116,9122,1,729,113,4,2,59,100,9102,9104,1,8784,111,116,59,1,8785,105,110,117,115,59,1,8760,108,117,115,59,1,8724,113,117,97,114,101,59,1,8865,98,108,101,98,97,114,119,101,100,103,101,59,1,8966,110,4,3,97,100,104,9153,9160,9172,114,114,111,119,59,1,8595,111,119,110,97,114,114,111,119,115,59,1,8650,97,114,112,111,111,110,4,2,108,114,9184,9190,101,102,116,59,1,8643,105,103,104,116,59,1,8642,4,2,98,99,9203,9211,107,97,114,111,119,59,1,10512,4,2,111,114,9217,9222,114,110,59,1,8991,111,112,59,1,8972,4,3,99,111,116,9235,9248,9252,4,2,114,121,9241,9245,59,3,55349,56505,59,1,1109,108,59,1,10742,114,111,107,59,1,273,4,2,100,114,9264,9269,111,116,59,1,8945,105,4,2,59,102,9276,9278,1,9663,59,1,9662,4,2,97,104,9287,9292,114,114,59,1,8693,97,114,59,1,10607,97,110,103,108,101,59,1,10662,4,2,99,105,9311,9315,121,59,1,1119,103,114,97,114,114,59,1,10239,4,18,68,97,99,100,101,102,103,108,109,110,111,112,113,114,115,116,117,120,9361,9376,9398,9439,9444,9447,9462,9495,9531,9585,9598,9614,9659,9755,9771,9792,9808,9826,4,2,68,111,9367,9372,111,116,59,1,10871,116,59,1,8785,4,2,99,115,9382,9392,117,116,101,5,233,1,59,9390,1,233,116,101,114,59,1,10862,4,4,97,105,111,121,9408,9414,9430,9436,114,111,110,59,1,283,114,4,2,59,99,9421,9423,1,8790,5,234,1,59,9428,1,234,108,111,110,59,1,8789,59,1,1101,111,116,59,1,279,59,1,8519,4,2,68,114,9453,9458,111,116,59,1,8786,59,3,55349,56610,4,3,59,114,115,9470,9472,9482,1,10906,97,118,101,5,232,1,59,9480,1,232,4,2,59,100,9488,9490,1,10902,111,116,59,1,10904,4,4,59,105,108,115,9505,9507,9515,9518,1,10905,110,116,101,114,115,59,1,9191,59,1,8467,4,2,59,100,9524,9526,1,10901,111,116,59,1,10903,4,3,97,112,115,9539,9544,9564,99,114,59,1,275,116,121,4,3,59,115,118,9554,9556,9561,1,8709,101,116,59,1,8709,59,1,8709,112,4,2,49,59,9571,9583,4,2,51,52,9577,9580,59,1,8196,59,1,8197,1,8195,4,2,103,115,9591,9594,59,1,331,112,59,1,8194,4,2,103,112,9604,9609,111,110,59,1,281,102,59,3,55349,56662,4,3,97,108,115,9622,9635,9640,114,4,2,59,115,9629,9631,1,8917,108,59,1,10723,117,115,59,1,10865,105,4,3,59,108,118,9649,9651,9656,1,949,111,110,59,1,949,59,1,1013,4,4,99,115,117,118,9669,9686,9716,9747,4,2,105,111,9675,9680,114,99,59,1,8790,108,111,110,59,1,8789,4,2,105,108,9692,9696,109,59,1,8770,97,110,116,4,2,103,108,9705,9710,116,114,59,1,10902,101,115,115,59,1,10901,4,3,97,101,105,9724,9729,9734,108,115,59,1,61,115,116,59,1,8799,118,4,2,59,68,9741,9743,1,8801,68,59,1,10872,112,97,114,115,108,59,1,10725,4,2,68,97,9761,9766,111,116,59,1,8787,114,114,59,1,10609,4,3,99,100,105,9779,9783,9788,114,59,1,8495,111,116,59,1,8784,109,59,1,8770,4,2,97,104,9798,9801,59,1,951,5,240,1,59,9806,1,240,4,2,109,114,9814,9822,108,5,235,1,59,9820,1,235,111,59,1,8364,4,3,99,105,112,9834,9838,9843,108,59,1,33,115,116,59,1,8707,4,2,101,111,9849,9859,99,116,97,116,105,111,110,59,1,8496,110,101,110,116,105,97,108,101,59,1,8519,4,12,97,99,101,102,105,106,108,110,111,112,114,115,9896,9910,9914,9921,9954,9960,9967,9989,9994,10027,10036,10164,108,108,105,110,103,100,111,116,115,101,113,59,1,8786,121,59,1,1092,109,97,108,101,59,1,9792,4,3,105,108,114,9929,9935,9950,108,105,103,59,1,64259,4,2,105,108,9941,9945,103,59,1,64256,105,103,59,1,64260,59,3,55349,56611,108,105,103,59,1,64257,108,105,103,59,3,102,106,4,3,97,108,116,9975,9979,9984,116,59,1,9837,105,103,59,1,64258,110,115,59,1,9649,111,102,59,1,402,4,2,112,114,1e4,10005,102,59,3,55349,56663,4,2,97,107,10011,10016,108,108,59,1,8704,4,2,59,118,10022,10024,1,8916,59,1,10969,97,114,116,105,110,116,59,1,10765,4,2,97,111,10042,10159,4,2,99,115,10048,10155,4,6,49,50,51,52,53,55,10062,10102,10114,10135,10139,10151,4,6,50,51,52,53,54,56,10076,10083,10086,10093,10096,10099,5,189,1,59,10081,1,189,59,1,8531,5,188,1,59,10091,1,188,59,1,8533,59,1,8537,59,1,8539,4,2,51,53,10108,10111,59,1,8532,59,1,8534,4,3,52,53,56,10122,10129,10132,5,190,1,59,10127,1,190,59,1,8535,59,1,8540,53,59,1,8536,4,2,54,56,10145,10148,59,1,8538,59,1,8541,56,59,1,8542,108,59,1,8260,119,110,59,1,8994,99,114,59,3,55349,56507,4,17,69,97,98,99,100,101,102,103,105,106,108,110,111,114,115,116,118,10206,10217,10247,10254,10268,10273,10358,10363,10374,10380,10385,10406,10458,10464,10470,10497,10610,4,2,59,108,10212,10214,1,8807,59,1,10892,4,3,99,109,112,10225,10231,10244,117,116,101,59,1,501,109,97,4,2,59,100,10239,10241,1,947,59,1,989,59,1,10886,114,101,118,101,59,1,287,4,2,105,121,10260,10265,114,99,59,1,285,59,1,1075,111,116,59,1,289,4,4,59,108,113,115,10283,10285,10288,10308,1,8805,59,1,8923,4,3,59,113,115,10296,10298,10301,1,8805,59,1,8807,108,97,110,116,59,1,10878,4,4,59,99,100,108,10318,10320,10324,10345,1,10878,99,59,1,10921,111,116,4,2,59,111,10332,10334,1,10880,4,2,59,108,10340,10342,1,10882,59,1,10884,4,2,59,101,10351,10354,3,8923,65024,115,59,1,10900,114,59,3,55349,56612,4,2,59,103,10369,10371,1,8811,59,1,8921,109,101,108,59,1,8503,99,121,59,1,1107,4,4,59,69,97,106,10395,10397,10400,10403,1,8823,59,1,10898,59,1,10917,59,1,10916,4,4,69,97,101,115,10416,10419,10434,10453,59,1,8809,112,4,2,59,112,10426,10428,1,10890,114,111,120,59,1,10890,4,2,59,113,10440,10442,1,10888,4,2,59,113,10448,10450,1,10888,59,1,8809,105,109,59,1,8935,112,102,59,3,55349,56664,97,118,101,59,1,96,4,2,99,105,10476,10480,114,59,1,8458,109,4,3,59,101,108,10489,10491,10494,1,8819,59,1,10894,59,1,10896,5,62,6,59,99,100,108,113,114,10512,10514,10527,10532,10538,10545,1,62,4,2,99,105,10520,10523,59,1,10919,114,59,1,10874,111,116,59,1,8919,80,97,114,59,1,10645,117,101,115,116,59,1,10876,4,5,97,100,101,108,115,10557,10574,10579,10599,10605,4,2,112,114,10563,10570,112,114,111,120,59,1,10886,114,59,1,10616,111,116,59,1,8919,113,4,2,108,113,10586,10592,101,115,115,59,1,8923,108,101,115,115,59,1,10892,101,115,115,59,1,8823,105,109,59,1,8819,4,2,101,110,10616,10626,114,116,110,101,113,113,59,3,8809,65024,69,59,3,8809,65024,4,10,65,97,98,99,101,102,107,111,115,121,10653,10658,10713,10718,10724,10760,10765,10786,10850,10875,114,114,59,1,8660,4,4,105,108,109,114,10668,10674,10678,10684,114,115,112,59,1,8202,102,59,1,189,105,108,116,59,1,8459,4,2,100,114,10690,10695,99,121,59,1,1098,4,3,59,99,119,10703,10705,10710,1,8596,105,114,59,1,10568,59,1,8621,97,114,59,1,8463,105,114,99,59,1,293,4,3,97,108,114,10732,10748,10754,114,116,115,4,2,59,117,10741,10743,1,9829,105,116,59,1,9829,108,105,112,59,1,8230,99,111,110,59,1,8889,114,59,3,55349,56613,115,4,2,101,119,10772,10779,97,114,111,119,59,1,10533,97,114,111,119,59,1,10534,4,5,97,109,111,112,114,10798,10803,10809,10839,10844,114,114,59,1,8703,116,104,116,59,1,8763,107,4,2,108,114,10816,10827,101,102,116,97,114,114,111,119,59,1,8617,105,103,104,116,97,114,114,111,119,59,1,8618,102,59,3,55349,56665,98,97,114,59,1,8213,4,3,99,108,116,10858,10863,10869,114,59,3,55349,56509,97,115,104,59,1,8463,114,111,107,59,1,295,4,2,98,112,10881,10887,117,108,108,59,1,8259,104,101,110,59,1,8208,4,15,97,99,101,102,103,105,106,109,110,111,112,113,115,116,117,10925,10936,10958,10977,10990,11001,11039,11045,11101,11192,11220,11226,11237,11285,11299,99,117,116,101,5,237,1,59,10934,1,237,4,3,59,105,121,10944,10946,10955,1,8291,114,99,5,238,1,59,10953,1,238,59,1,1080,4,2,99,120,10964,10968,121,59,1,1077,99,108,5,161,1,59,10975,1,161,4,2,102,114,10983,10986,59,1,8660,59,3,55349,56614,114,97,118,101,5,236,1,59,10999,1,236,4,4,59,105,110,111,11011,11013,11028,11034,1,8520,4,2,105,110,11019,11024,110,116,59,1,10764,116,59,1,8749,102,105,110,59,1,10716,116,97,59,1,8489,108,105,103,59,1,307,4,3,97,111,112,11053,11092,11096,4,3,99,103,116,11061,11065,11088,114,59,1,299,4,3,101,108,112,11073,11076,11082,59,1,8465,105,110,101,59,1,8464,97,114,116,59,1,8465,104,59,1,305,102,59,1,8887,101,100,59,1,437,4,5,59,99,102,111,116,11113,11115,11121,11136,11142,1,8712,97,114,101,59,1,8453,105,110,4,2,59,116,11129,11131,1,8734,105,101,59,1,10717,100,111,116,59,1,305,4,5,59,99,101,108,112,11154,11156,11161,11179,11186,1,8747,97,108,59,1,8890,4,2,103,114,11167,11173,101,114,115,59,1,8484,99,97,108,59,1,8890,97,114,104,107,59,1,10775,114,111,100,59,1,10812,4,4,99,103,112,116,11202,11206,11211,11216,121,59,1,1105,111,110,59,1,303,102,59,3,55349,56666,97,59,1,953,114,111,100,59,1,10812,117,101,115,116,5,191,1,59,11235,1,191,4,2,99,105,11243,11248,114,59,3,55349,56510,110,4,5,59,69,100,115,118,11261,11263,11266,11271,11282,1,8712,59,1,8953,111,116,59,1,8949,4,2,59,118,11277,11279,1,8948,59,1,8947,59,1,8712,4,2,59,105,11291,11293,1,8290,108,100,101,59,1,297,4,2,107,109,11305,11310,99,121,59,1,1110,108,5,239,1,59,11316,1,239,4,6,99,102,109,111,115,117,11332,11346,11351,11357,11363,11380,4,2,105,121,11338,11343,114,99,59,1,309,59,1,1081,114,59,3,55349,56615,97,116,104,59,1,567,112,102,59,3,55349,56667,4,2,99,101,11369,11374,114,59,3,55349,56511,114,99,121,59,1,1112,107,99,121,59,1,1108,4,8,97,99,102,103,104,106,111,115,11404,11418,11433,11438,11445,11450,11455,11461,112,112,97,4,2,59,118,11413,11415,1,954,59,1,1008,4,2,101,121,11424,11430,100,105,108,59,1,311,59,1,1082,114,59,3,55349,56616,114,101,101,110,59,1,312,99,121,59,1,1093,99,121,59,1,1116,112,102,59,3,55349,56668,99,114,59,3,55349,56512,4,23,65,66,69,72,97,98,99,100,101,102,103,104,106,108,109,110,111,112,114,115,116,117,118,11515,11538,11544,11555,11560,11721,11780,11818,11868,12136,12160,12171,12203,12208,12246,12275,12327,12509,12523,12569,12641,12732,12752,4,3,97,114,116,11523,11528,11532,114,114,59,1,8666,114,59,1,8656,97,105,108,59,1,10523,97,114,114,59,1,10510,4,2,59,103,11550,11552,1,8806,59,1,10891,97,114,59,1,10594,4,9,99,101,103,109,110,112,113,114,116,11580,11586,11594,11600,11606,11624,11627,11636,11694,117,116,101,59,1,314,109,112,116,121,118,59,1,10676,114,97,110,59,1,8466,98,100,97,59,1,955,103,4,3,59,100,108,11615,11617,11620,1,10216,59,1,10641,101,59,1,10216,59,1,10885,117,111,5,171,1,59,11634,1,171,114,4,8,59,98,102,104,108,112,115,116,11655,11657,11669,11673,11677,11681,11685,11690,1,8592,4,2,59,102,11663,11665,1,8676,115,59,1,10527,115,59,1,10525,107,59,1,8617,112,59,1,8619,108,59,1,10553,105,109,59,1,10611,108,59,1,8610,4,3,59,97,101,11702,11704,11709,1,10923,105,108,59,1,10521,4,2,59,115,11715,11717,1,10925,59,3,10925,65024,4,3,97,98,114,11729,11734,11739,114,114,59,1,10508,114,107,59,1,10098,4,2,97,107,11745,11758,99,4,2,101,107,11752,11755,59,1,123,59,1,91,4,2,101,115,11764,11767,59,1,10635,108,4,2,100,117,11774,11777,59,1,10639,59,1,10637,4,4,97,101,117,121,11790,11796,11811,11815,114,111,110,59,1,318,4,2,100,105,11802,11807,105,108,59,1,316,108,59,1,8968,98,59,1,123,59,1,1083,4,4,99,113,114,115,11828,11832,11845,11864,97,59,1,10550,117,111,4,2,59,114,11840,11842,1,8220,59,1,8222,4,2,100,117,11851,11857,104,97,114,59,1,10599,115,104,97,114,59,1,10571,104,59,1,8626,4,5,59,102,103,113,115,11880,11882,12008,12011,12031,1,8804,116,4,5,97,104,108,114,116,11895,11913,11935,11947,11996,114,114,111,119,4,2,59,116,11905,11907,1,8592,97,105,108,59,1,8610,97,114,112,111,111,110,4,2,100,117,11925,11931,111,119,110,59,1,8637,112,59,1,8636,101,102,116,97,114,114,111,119,115,59,1,8647,105,103,104,116,4,3,97,104,115,11959,11974,11984,114,114,111,119,4,2,59,115,11969,11971,1,8596,59,1,8646,97,114,112,111,111,110,115,59,1,8651,113,117,105,103,97,114,114,111,119,59,1,8621,104,114,101,101,116,105,109,101,115,59,1,8907,59,1,8922,4,3,59,113,115,12019,12021,12024,1,8804,59,1,8806,108,97,110,116,59,1,10877,4,5,59,99,100,103,115,12043,12045,12049,12070,12083,1,10877,99,59,1,10920,111,116,4,2,59,111,12057,12059,1,10879,4,2,59,114,12065,12067,1,10881,59,1,10883,4,2,59,101,12076,12079,3,8922,65024,115,59,1,10899,4,5,97,100,101,103,115,12095,12103,12108,12126,12131,112,112,114,111,120,59,1,10885,111,116,59,1,8918,113,4,2,103,113,12115,12120,116,114,59,1,8922,103,116,114,59,1,10891,116,114,59,1,8822,105,109,59,1,8818,4,3,105,108,114,12144,12150,12156,115,104,116,59,1,10620,111,111,114,59,1,8970,59,3,55349,56617,4,2,59,69,12166,12168,1,8822,59,1,10897,4,2,97,98,12177,12198,114,4,2,100,117,12184,12187,59,1,8637,4,2,59,108,12193,12195,1,8636,59,1,10602,108,107,59,1,9604,99,121,59,1,1113,4,5,59,97,99,104,116,12220,12222,12227,12235,12241,1,8810,114,114,59,1,8647,111,114,110,101,114,59,1,8990,97,114,100,59,1,10603,114,105,59,1,9722,4,2,105,111,12252,12258,100,111,116,59,1,320,117,115,116,4,2,59,97,12267,12269,1,9136,99,104,101,59,1,9136,4,4,69,97,101,115,12285,12288,12303,12322,59,1,8808,112,4,2,59,112,12295,12297,1,10889,114,111,120,59,1,10889,4,2,59,113,12309,12311,1,10887,4,2,59,113,12317,12319,1,10887,59,1,8808,105,109,59,1,8934,4,8,97,98,110,111,112,116,119,122,12345,12359,12364,12421,12446,12467,12474,12490,4,2,110,114,12351,12355,103,59,1,10220,114,59,1,8701,114,107,59,1,10214,103,4,3,108,109,114,12373,12401,12409,101,102,116,4,2,97,114,12382,12389,114,114,111,119,59,1,10229,105,103,104,116,97,114,114,111,119,59,1,10231,97,112,115,116,111,59,1,10236,105,103,104,116,97,114,114,111,119,59,1,10230,112,97,114,114,111,119,4,2,108,114,12433,12439,101,102,116,59,1,8619,105,103,104,116,59,1,8620,4,3,97,102,108,12454,12458,12462,114,59,1,10629,59,3,55349,56669,117,115,59,1,10797,105,109,101,115,59,1,10804,4,2,97,98,12480,12485,115,116,59,1,8727,97,114,59,1,95,4,3,59,101,102,12498,12500,12506,1,9674,110,103,101,59,1,9674,59,1,10731,97,114,4,2,59,108,12517,12519,1,40,116,59,1,10643,4,5,97,99,104,109,116,12535,12540,12548,12561,12564,114,114,59,1,8646,111,114,110,101,114,59,1,8991,97,114,4,2,59,100,12556,12558,1,8651,59,1,10605,59,1,8206,114,105,59,1,8895,4,6,97,99,104,105,113,116,12583,12589,12594,12597,12614,12635,113,117,111,59,1,8249,114,59,3,55349,56513,59,1,8624,109,4,3,59,101,103,12606,12608,12611,1,8818,59,1,10893,59,1,10895,4,2,98,117,12620,12623,59,1,91,111,4,2,59,114,12630,12632,1,8216,59,1,8218,114,111,107,59,1,322,5,60,8,59,99,100,104,105,108,113,114,12660,12662,12675,12680,12686,12692,12698,12705,1,60,4,2,99,105,12668,12671,59,1,10918,114,59,1,10873,111,116,59,1,8918,114,101,101,59,1,8907,109,101,115,59,1,8905,97,114,114,59,1,10614,117,101,115,116,59,1,10875,4,2,80,105,12711,12716,97,114,59,1,10646,4,3,59,101,102,12724,12726,12729,1,9667,59,1,8884,59,1,9666,114,4,2,100,117,12739,12746,115,104,97,114,59,1,10570,104,97,114,59,1,10598,4,2,101,110,12758,12768,114,116,110,101,113,113,59,3,8808,65024,69,59,3,8808,65024,4,14,68,97,99,100,101,102,104,105,108,110,111,112,115,117,12803,12809,12893,12908,12914,12928,12933,12937,13011,13025,13032,13049,13052,13069,68,111,116,59,1,8762,4,4,99,108,112,114,12819,12827,12849,12887,114,5,175,1,59,12825,1,175,4,2,101,116,12833,12836,59,1,9794,4,2,59,101,12842,12844,1,10016,115,101,59,1,10016,4,2,59,115,12855,12857,1,8614,116,111,4,4,59,100,108,117,12869,12871,12877,12883,1,8614,111,119,110,59,1,8615,101,102,116,59,1,8612,112,59,1,8613,107,101,114,59,1,9646,4,2,111,121,12899,12905,109,109,97,59,1,10793,59,1,1084,97,115,104,59,1,8212,97,115,117,114,101,100,97,110,103,108,101,59,1,8737,114,59,3,55349,56618,111,59,1,8487,4,3,99,100,110,12945,12954,12985,114,111,5,181,1,59,12952,1,181,4,4,59,97,99,100,12964,12966,12971,12976,1,8739,115,116,59,1,42,105,114,59,1,10992,111,116,5,183,1,59,12983,1,183,117,115,4,3,59,98,100,12995,12997,13e3,1,8722,59,1,8863,4,2,59,117,13006,13008,1,8760,59,1,10794,4,2,99,100,13017,13021,112,59,1,10971,114,59,1,8230,112,108,117,115,59,1,8723,4,2,100,112,13038,13044,101,108,115,59,1,8871,102,59,3,55349,56670,59,1,8723,4,2,99,116,13058,13063,114,59,3,55349,56514,112,111,115,59,1,8766,4,3,59,108,109,13077,13079,13087,1,956,116,105,109,97,112,59,1,8888,97,112,59,1,8888,4,24,71,76,82,86,97,98,99,100,101,102,103,104,105,106,108,109,111,112,114,115,116,117,118,119,13142,13165,13217,13229,13247,13330,13359,13414,13420,13508,13513,13579,13602,13626,13631,13762,13767,13855,13936,13995,14214,14285,14312,14432,4,2,103,116,13148,13152,59,3,8921,824,4,2,59,118,13158,13161,3,8811,8402,59,3,8811,824,4,3,101,108,116,13173,13200,13204,102,116,4,2,97,114,13181,13188,114,114,111,119,59,1,8653,105,103,104,116,97,114,114,111,119,59,1,8654,59,3,8920,824,4,2,59,118,13210,13213,3,8810,8402,59,3,8810,824,105,103,104,116,97,114,114,111,119,59,1,8655,4,2,68,100,13235,13241,97,115,104,59,1,8879,97,115,104,59,1,8878,4,5,98,99,110,112,116,13259,13264,13270,13275,13308,108,97,59,1,8711,117,116,101,59,1,324,103,59,3,8736,8402,4,5,59,69,105,111,112,13287,13289,13293,13298,13302,1,8777,59,3,10864,824,100,59,3,8779,824,115,59,1,329,114,111,120,59,1,8777,117,114,4,2,59,97,13316,13318,1,9838,108,4,2,59,115,13325,13327,1,9838,59,1,8469,4,2,115,117,13336,13344,112,5,160,1,59,13342,1,160,109,112,4,2,59,101,13352,13355,3,8782,824,59,3,8783,824,4,5,97,101,111,117,121,13371,13385,13391,13407,13411,4,2,112,114,13377,13380,59,1,10819,111,110,59,1,328,100,105,108,59,1,326,110,103,4,2,59,100,13399,13401,1,8775,111,116,59,3,10861,824,112,59,1,10818,59,1,1085,97,115,104,59,1,8211,4,7,59,65,97,100,113,115,120,13436,13438,13443,13466,13472,13478,13494,1,8800,114,114,59,1,8663,114,4,2,104,114,13450,13454,107,59,1,10532,4,2,59,111,13460,13462,1,8599,119,59,1,8599,111,116,59,3,8784,824,117,105,118,59,1,8802,4,2,101,105,13484,13489,97,114,59,1,10536,109,59,3,8770,824,105,115,116,4,2,59,115,13503,13505,1,8708,59,1,8708,114,59,3,55349,56619,4,4,69,101,115,116,13523,13527,13563,13568,59,3,8807,824,4,3,59,113,115,13535,13537,13559,1,8817,4,3,59,113,115,13545,13547,13551,1,8817,59,3,8807,824,108,97,110,116,59,3,10878,824,59,3,10878,824,105,109,59,1,8821,4,2,59,114,13574,13576,1,8815,59,1,8815,4,3,65,97,112,13587,13592,13597,114,114,59,1,8654,114,114,59,1,8622,97,114,59,1,10994,4,3,59,115,118,13610,13612,13623,1,8715,4,2,59,100,13618,13620,1,8956,59,1,8954,59,1,8715,99,121,59,1,1114,4,7,65,69,97,100,101,115,116,13647,13652,13656,13661,13665,13737,13742,114,114,59,1,8653,59,3,8806,824,114,114,59,1,8602,114,59,1,8229,4,4,59,102,113,115,13675,13677,13703,13725,1,8816,116,4,2,97,114,13684,13691,114,114,111,119,59,1,8602,105,103,104,116,97,114,114,111,119,59,1,8622,4,3,59,113,115,13711,13713,13717,1,8816,59,3,8806,824,108,97,110,116,59,3,10877,824,4,2,59,115,13731,13734,3,10877,824,59,1,8814,105,109,59,1,8820,4,2,59,114,13748,13750,1,8814,105,4,2,59,101,13757,13759,1,8938,59,1,8940,105,100,59,1,8740,4,2,112,116,13773,13778,102,59,3,55349,56671,5,172,3,59,105,110,13787,13789,13829,1,172,110,4,4,59,69,100,118,13800,13802,13806,13812,1,8713,59,3,8953,824,111,116,59,3,8949,824,4,3,97,98,99,13820,13823,13826,59,1,8713,59,1,8951,59,1,8950,105,4,2,59,118,13836,13838,1,8716,4,3,97,98,99,13846,13849,13852,59,1,8716,59,1,8958,59,1,8957,4,3,97,111,114,13863,13892,13899,114,4,4,59,97,115,116,13874,13876,13883,13888,1,8742,108,108,101,108,59,1,8742,108,59,3,11005,8421,59,3,8706,824,108,105,110,116,59,1,10772,4,3,59,99,101,13907,13909,13914,1,8832,117,101,59,1,8928,4,2,59,99,13920,13923,3,10927,824,4,2,59,101,13929,13931,1,8832,113,59,3,10927,824,4,4,65,97,105,116,13946,13951,13971,13982,114,114,59,1,8655,114,114,4,3,59,99,119,13961,13963,13967,1,8603,59,3,10547,824,59,3,8605,824,103,104,116,97,114,114,111,119,59,1,8603,114,105,4,2,59,101,13990,13992,1,8939,59,1,8941,4,7,99,104,105,109,112,113,117,14011,14036,14060,14080,14085,14090,14106,4,4,59,99,101,114,14021,14023,14028,14032,1,8833,117,101,59,1,8929,59,3,10928,824,59,3,55349,56515,111,114,116,4,2,109,112,14045,14050,105,100,59,1,8740,97,114,97,108,108,101,108,59,1,8742,109,4,2,59,101,14067,14069,1,8769,4,2,59,113,14075,14077,1,8772,59,1,8772,105,100,59,1,8740,97,114,59,1,8742,115,117,4,2,98,112,14098,14102,101,59,1,8930,101,59,1,8931,4,3,98,99,112,14114,14157,14171,4,4,59,69,101,115,14124,14126,14130,14133,1,8836,59,3,10949,824,59,1,8840,101,116,4,2,59,101,14141,14144,3,8834,8402,113,4,2,59,113,14151,14153,1,8840,59,3,10949,824,99,4,2,59,101,14164,14166,1,8833,113,59,3,10928,824,4,4,59,69,101,115,14181,14183,14187,14190,1,8837,59,3,10950,824,59,1,8841,101,116,4,2,59,101,14198,14201,3,8835,8402,113,4,2,59,113,14208,14210,1,8841,59,3,10950,824,4,4,103,105,108,114,14224,14228,14238,14242,108,59,1,8825,108,100,101,5,241,1,59,14236,1,241,103,59,1,8824,105,97,110,103,108,101,4,2,108,114,14254,14269,101,102,116,4,2,59,101,14263,14265,1,8938,113,59,1,8940,105,103,104,116,4,2,59,101,14279,14281,1,8939,113,59,1,8941,4,2,59,109,14291,14293,1,957,4,3,59,101,115,14301,14303,14308,1,35,114,111,59,1,8470,112,59,1,8199,4,9,68,72,97,100,103,105,108,114,115,14332,14338,14344,14349,14355,14369,14376,14408,14426,97,115,104,59,1,8877,97,114,114,59,1,10500,112,59,3,8781,8402,97,115,104,59,1,8876,4,2,101,116,14361,14365,59,3,8805,8402,59,3,62,8402,110,102,105,110,59,1,10718,4,3,65,101,116,14384,14389,14393,114,114,59,1,10498,59,3,8804,8402,4,2,59,114,14399,14402,3,60,8402,105,101,59,3,8884,8402,4,2,65,116,14414,14419,114,114,59,1,10499,114,105,101,59,3,8885,8402,105,109,59,3,8764,8402,4,3,65,97,110,14440,14445,14468,114,114,59,1,8662,114,4,2,104,114,14452,14456,107,59,1,10531,4,2,59,111,14462,14464,1,8598,119,59,1,8598,101,97,114,59,1,10535,4,18,83,97,99,100,101,102,103,104,105,108,109,111,112,114,115,116,117,118,14512,14515,14535,14560,14597,14603,14618,14643,14657,14662,14701,14741,14747,14769,14851,14877,14907,14916,59,1,9416,4,2,99,115,14521,14531,117,116,101,5,243,1,59,14529,1,243,116,59,1,8859,4,2,105,121,14541,14557,114,4,2,59,99,14548,14550,1,8858,5,244,1,59,14555,1,244,59,1,1086,4,5,97,98,105,111,115,14572,14577,14583,14587,14591,115,104,59,1,8861,108,97,99,59,1,337,118,59,1,10808,116,59,1,8857,111,108,100,59,1,10684,108,105,103,59,1,339,4,2,99,114,14609,14614,105,114,59,1,10687,59,3,55349,56620,4,3,111,114,116,14626,14630,14640,110,59,1,731,97,118,101,5,242,1,59,14638,1,242,59,1,10689,4,2,98,109,14649,14654,97,114,59,1,10677,59,1,937,110,116,59,1,8750,4,4,97,99,105,116,14672,14677,14693,14698,114,114,59,1,8634,4,2,105,114,14683,14687,114,59,1,10686,111,115,115,59,1,10683,110,101,59,1,8254,59,1,10688,4,3,97,101,105,14709,14714,14719,99,114,59,1,333,103,97,59,1,969,4,3,99,100,110,14727,14733,14736,114,111,110,59,1,959,59,1,10678,117,115,59,1,8854,112,102,59,3,55349,56672,4,3,97,101,108,14755,14759,14764,114,59,1,10679,114,112,59,1,10681,117,115,59,1,8853,4,7,59,97,100,105,111,115,118,14785,14787,14792,14831,14837,14841,14848,1,8744,114,114,59,1,8635,4,4,59,101,102,109,14802,14804,14817,14824,1,10845,114,4,2,59,111,14811,14813,1,8500,102,59,1,8500,5,170,1,59,14822,1,170,5,186,1,59,14829,1,186,103,111,102,59,1,8886,114,59,1,10838,108,111,112,101,59,1,10839,59,1,10843,4,3,99,108,111,14859,14863,14873,114,59,1,8500,97,115,104,5,248,1,59,14871,1,248,108,59,1,8856,105,4,2,108,109,14884,14893,100,101,5,245,1,59,14891,1,245,101,115,4,2,59,97,14901,14903,1,8855,115,59,1,10806,109,108,5,246,1,59,14914,1,246,98,97,114,59,1,9021,4,12,97,99,101,102,104,105,108,109,111,114,115,117,14948,14992,14996,15033,15038,15068,15090,15189,15192,15222,15427,15441,114,4,4,59,97,115,116,14959,14961,14976,14989,1,8741,5,182,2,59,108,14968,14970,1,182,108,101,108,59,1,8741,4,2,105,108,14982,14986,109,59,1,10995,59,1,11005,59,1,8706,121,59,1,1087,114,4,5,99,105,109,112,116,15009,15014,15019,15024,15027,110,116,59,1,37,111,100,59,1,46,105,108,59,1,8240,59,1,8869,101,110,107,59,1,8241,114,59,3,55349,56621,4,3,105,109,111,15046,15057,15063,4,2,59,118,15052,15054,1,966,59,1,981,109,97,116,59,1,8499,110,101,59,1,9742,4,3,59,116,118,15076,15078,15087,1,960,99,104,102,111,114,107,59,1,8916,59,1,982,4,2,97,117,15096,15119,110,4,2,99,107,15103,15115,107,4,2,59,104,15110,15112,1,8463,59,1,8462,118,59,1,8463,115,4,9,59,97,98,99,100,101,109,115,116,15140,15142,15148,15151,15156,15168,15171,15179,15184,1,43,99,105,114,59,1,10787,59,1,8862,105,114,59,1,10786,4,2,111,117,15162,15165,59,1,8724,59,1,10789,59,1,10866,110,5,177,1,59,15177,1,177,105,109,59,1,10790,119,111,59,1,10791,59,1,177,4,3,105,112,117,15200,15208,15213,110,116,105,110,116,59,1,10773,102,59,3,55349,56673,110,100,5,163,1,59,15220,1,163,4,10,59,69,97,99,101,105,110,111,115,117,15244,15246,15249,15253,15258,15334,15347,15367,15416,15421,1,8826,59,1,10931,112,59,1,10935,117,101,59,1,8828,4,2,59,99,15264,15266,1,10927,4,6,59,97,99,101,110,115,15280,15282,15290,15299,15303,15329,1,8826,112,112,114,111,120,59,1,10935,117,114,108,121,101,113,59,1,8828,113,59,1,10927,4,3,97,101,115,15311,15319,15324,112,112,114,111,120,59,1,10937,113,113,59,1,10933,105,109,59,1,8936,105,109,59,1,8830,109,101,4,2,59,115,15342,15344,1,8242,59,1,8473,4,3,69,97,115,15355,15358,15362,59,1,10933,112,59,1,10937,105,109,59,1,8936,4,3,100,102,112,15375,15378,15404,59,1,8719,4,3,97,108,115,15386,15392,15398,108,97,114,59,1,9006,105,110,101,59,1,8978,117,114,102,59,1,8979,4,2,59,116,15410,15412,1,8733,111,59,1,8733,105,109,59,1,8830,114,101,108,59,1,8880,4,2,99,105,15433,15438,114,59,3,55349,56517,59,1,968,110,99,115,112,59,1,8200,4,6,102,105,111,112,115,117,15462,15467,15472,15478,15485,15491,114,59,3,55349,56622,110,116,59,1,10764,112,102,59,3,55349,56674,114,105,109,101,59,1,8279,99,114,59,3,55349,56518,4,3,97,101,111,15499,15520,15534,116,4,2,101,105,15506,15515,114,110,105,111,110,115,59,1,8461,110,116,59,1,10774,115,116,4,2,59,101,15528,15530,1,63,113,59,1,8799,116,5,34,1,59,15540,1,34,4,21,65,66,72,97,98,99,100,101,102,104,105,108,109,110,111,112,114,115,116,117,120,15586,15609,15615,15620,15796,15855,15893,15931,15977,16001,16039,16183,16204,16222,16228,16285,16312,16318,16363,16408,16416,4,3,97,114,116,15594,15599,15603,114,114,59,1,8667,114,59,1,8658,97,105,108,59,1,10524,97,114,114,59,1,10511,97,114,59,1,10596,4,7,99,100,101,110,113,114,116,15636,15651,15656,15664,15687,15696,15770,4,2,101,117,15642,15646,59,3,8765,817,116,101,59,1,341,105,99,59,1,8730,109,112,116,121,118,59,1,10675,103,4,4,59,100,101,108,15675,15677,15680,15683,1,10217,59,1,10642,59,1,10661,101,59,1,10217,117,111,5,187,1,59,15694,1,187,114,4,11,59,97,98,99,102,104,108,112,115,116,119,15721,15723,15727,15739,15742,15746,15750,15754,15758,15763,15767,1,8594,112,59,1,10613,4,2,59,102,15733,15735,1,8677,115,59,1,10528,59,1,10547,115,59,1,10526,107,59,1,8618,112,59,1,8620,108,59,1,10565,105,109,59,1,10612,108,59,1,8611,59,1,8605,4,2,97,105,15776,15781,105,108,59,1,10522,111,4,2,59,110,15788,15790,1,8758,97,108,115,59,1,8474,4,3,97,98,114,15804,15809,15814,114,114,59,1,10509,114,107,59,1,10099,4,2,97,107,15820,15833,99,4,2,101,107,15827,15830,59,1,125,59,1,93,4,2,101,115,15839,15842,59,1,10636,108,4,2,100,117,15849,15852,59,1,10638,59,1,10640,4,4,97,101,117,121,15865,15871,15886,15890,114,111,110,59,1,345,4,2,100,105,15877,15882,105,108,59,1,343,108,59,1,8969,98,59,1,125,59,1,1088,4,4,99,108,113,115,15903,15907,15914,15927,97,59,1,10551,100,104,97,114,59,1,10601,117,111,4,2,59,114,15922,15924,1,8221,59,1,8221,104,59,1,8627,4,3,97,99,103,15939,15966,15970,108,4,4,59,105,112,115,15950,15952,15957,15963,1,8476,110,101,59,1,8475,97,114,116,59,1,8476,59,1,8477,116,59,1,9645,5,174,1,59,15975,1,174,4,3,105,108,114,15985,15991,15997,115,104,116,59,1,10621,111,111,114,59,1,8971,59,3,55349,56623,4,2,97,111,16007,16028,114,4,2,100,117,16014,16017,59,1,8641,4,2,59,108,16023,16025,1,8640,59,1,10604,4,2,59,118,16034,16036,1,961,59,1,1009,4,3,103,110,115,16047,16167,16171,104,116,4,6,97,104,108,114,115,116,16063,16081,16103,16130,16143,16155,114,114,111,119,4,2,59,116,16073,16075,1,8594,97,105,108,59,1,8611,97,114,112,111,111,110,4,2,100,117,16093,16099,111,119,110,59,1,8641,112,59,1,8640,101,102,116,4,2,97,104,16112,16120,114,114,111,119,115,59,1,8644,97,114,112,111,111,110,115,59,1,8652,105,103,104,116,97,114,114,111,119,115,59,1,8649,113,117,105,103,97,114,114,111,119,59,1,8605,104,114,101,101,116,105,109,101,115,59,1,8908,103,59,1,730,105,110,103,100,111,116,115,101,113,59,1,8787,4,3,97,104,109,16191,16196,16201,114,114,59,1,8644,97,114,59,1,8652,59,1,8207,111,117,115,116,4,2,59,97,16214,16216,1,9137,99,104,101,59,1,9137,109,105,100,59,1,10990,4,4,97,98,112,116,16238,16252,16257,16278,4,2,110,114,16244,16248,103,59,1,10221,114,59,1,8702,114,107,59,1,10215,4,3,97,102,108,16265,16269,16273,114,59,1,10630,59,3,55349,56675,117,115,59,1,10798,105,109,101,115,59,1,10805,4,2,97,112,16291,16304,114,4,2,59,103,16298,16300,1,41,116,59,1,10644,111,108,105,110,116,59,1,10770,97,114,114,59,1,8649,4,4,97,99,104,113,16328,16334,16339,16342,113,117,111,59,1,8250,114,59,3,55349,56519,59,1,8625,4,2,98,117,16348,16351,59,1,93,111,4,2,59,114,16358,16360,1,8217,59,1,8217,4,3,104,105,114,16371,16377,16383,114,101,101,59,1,8908,109,101,115,59,1,8906,105,4,4,59,101,102,108,16394,16396,16399,16402,1,9657,59,1,8885,59,1,9656,116,114,105,59,1,10702,108,117,104,97,114,59,1,10600,59,1,8478,4,19,97,98,99,100,101,102,104,105,108,109,111,112,113,114,115,116,117,119,122,16459,16466,16472,16572,16590,16672,16687,16746,16844,16850,16924,16963,16988,17115,17121,17154,17206,17614,17656,99,117,116,101,59,1,347,113,117,111,59,1,8218,4,10,59,69,97,99,101,105,110,112,115,121,16494,16496,16499,16513,16518,16531,16536,16556,16564,16569,1,8827,59,1,10932,4,2,112,114,16505,16508,59,1,10936,111,110,59,1,353,117,101,59,1,8829,4,2,59,100,16524,16526,1,10928,105,108,59,1,351,114,99,59,1,349,4,3,69,97,115,16544,16547,16551,59,1,10934,112,59,1,10938,105,109,59,1,8937,111,108,105,110,116,59,1,10771,105,109,59,1,8831,59,1,1089,111,116,4,3,59,98,101,16582,16584,16587,1,8901,59,1,8865,59,1,10854,4,7,65,97,99,109,115,116,120,16606,16611,16634,16642,16646,16652,16668,114,114,59,1,8664,114,4,2,104,114,16618,16622,107,59,1,10533,4,2,59,111,16628,16630,1,8600,119,59,1,8600,116,5,167,1,59,16640,1,167,105,59,1,59,119,97,114,59,1,10537,109,4,2,105,110,16659,16665,110,117,115,59,1,8726,59,1,8726,116,59,1,10038,114,4,2,59,111,16679,16682,3,55349,56624,119,110,59,1,8994,4,4,97,99,111,121,16697,16702,16716,16739,114,112,59,1,9839,4,2,104,121,16708,16713,99,121,59,1,1097,59,1,1096,114,116,4,2,109,112,16724,16729,105,100,59,1,8739,97,114,97,108,108,101,108,59,1,8741,5,173,1,59,16744,1,173,4,2,103,109,16752,16770,109,97,4,3,59,102,118,16762,16764,16767,1,963,59,1,962,59,1,962,4,8,59,100,101,103,108,110,112,114,16788,16790,16795,16806,16817,16828,16832,16838,1,8764,111,116,59,1,10858,4,2,59,113,16801,16803,1,8771,59,1,8771,4,2,59,69,16812,16814,1,10910,59,1,10912,4,2,59,69,16823,16825,1,10909,59,1,10911,101,59,1,8774,108,117,115,59,1,10788,97,114,114,59,1,10610,97,114,114,59,1,8592,4,4,97,101,105,116,16860,16883,16891,16904,4,2,108,115,16866,16878,108,115,101,116,109,105,110,117,115,59,1,8726,104,112,59,1,10803,112,97,114,115,108,59,1,10724,4,2,100,108,16897,16900,59,1,8739,101,59,1,8995,4,2,59,101,16910,16912,1,10922,4,2,59,115,16918,16920,1,10924,59,3,10924,65024,4,3,102,108,112,16932,16938,16958,116,99,121,59,1,1100,4,2,59,98,16944,16946,1,47,4,2,59,97,16952,16954,1,10692,114,59,1,9023,102,59,3,55349,56676,97,4,2,100,114,16970,16985,101,115,4,2,59,117,16978,16980,1,9824,105,116,59,1,9824,59,1,8741,4,3,99,115,117,16996,17028,17089,4,2,97,117,17002,17015,112,4,2,59,115,17009,17011,1,8851,59,3,8851,65024,112,4,2,59,115,17022,17024,1,8852,59,3,8852,65024,117,4,2,98,112,17035,17062,4,3,59,101,115,17043,17045,17048,1,8847,59,1,8849,101,116,4,2,59,101,17056,17058,1,8847,113,59,1,8849,4,3,59,101,115,17070,17072,17075,1,8848,59,1,8850,101,116,4,2,59,101,17083,17085,1,8848,113,59,1,8850,4,3,59,97,102,17097,17099,17112,1,9633,114,4,2,101,102,17106,17109,59,1,9633,59,1,9642,59,1,9642,97,114,114,59,1,8594,4,4,99,101,109,116,17131,17136,17142,17148,114,59,3,55349,56520,116,109,110,59,1,8726,105,108,101,59,1,8995,97,114,102,59,1,8902,4,2,97,114,17160,17172,114,4,2,59,102,17167,17169,1,9734,59,1,9733,4,2,97,110,17178,17202,105,103,104,116,4,2,101,112,17188,17197,112,115,105,108,111,110,59,1,1013,104,105,59,1,981,115,59,1,175,4,5,98,99,109,110,112,17218,17351,17420,17423,17427,4,9,59,69,100,101,109,110,112,114,115,17238,17240,17243,17248,17261,17267,17279,17285,17291,1,8834,59,1,10949,111,116,59,1,10941,4,2,59,100,17254,17256,1,8838,111,116,59,1,10947,117,108,116,59,1,10945,4,2,69,101,17273,17276,59,1,10955,59,1,8842,108,117,115,59,1,10943,97,114,114,59,1,10617,4,3,101,105,117,17299,17335,17339,116,4,3,59,101,110,17308,17310,17322,1,8834,113,4,2,59,113,17317,17319,1,8838,59,1,10949,101,113,4,2,59,113,17330,17332,1,8842,59,1,10955,109,59,1,10951,4,2,98,112,17345,17348,59,1,10965,59,1,10963,99,4,6,59,97,99,101,110,115,17366,17368,17376,17385,17389,17415,1,8827,112,112,114,111,120,59,1,10936,117,114,108,121,101,113,59,1,8829,113,59,1,10928,4,3,97,101,115,17397,17405,17410,112,112,114,111,120,59,1,10938,113,113,59,1,10934,105,109,59,1,8937,105,109,59,1,8831,59,1,8721,103,59,1,9834,4,13,49,50,51,59,69,100,101,104,108,109,110,112,115,17455,17462,17469,17476,17478,17481,17496,17509,17524,17530,17536,17548,17554,5,185,1,59,17460,1,185,5,178,1,59,17467,1,178,5,179,1,59,17474,1,179,1,8835,59,1,10950,4,2,111,115,17487,17491,116,59,1,10942,117,98,59,1,10968,4,2,59,100,17502,17504,1,8839,111,116,59,1,10948,115,4,2,111,117,17516,17520,108,59,1,10185,98,59,1,10967,97,114,114,59,1,10619,117,108,116,59,1,10946,4,2,69,101,17542,17545,59,1,10956,59,1,8843,108,117,115,59,1,10944,4,3,101,105,117,17562,17598,17602,116,4,3,59,101,110,17571,17573,17585,1,8835,113,4,2,59,113,17580,17582,1,8839,59,1,10950,101,113,4,2,59,113,17593,17595,1,8843,59,1,10956,109,59,1,10952,4,2,98,112,17608,17611,59,1,10964,59,1,10966,4,3,65,97,110,17622,17627,17650,114,114,59,1,8665,114,4,2,104,114,17634,17638,107,59,1,10534,4,2,59,111,17644,17646,1,8601,119,59,1,8601,119,97,114,59,1,10538,108,105,103,5,223,1,59,17664,1,223,4,13,97,98,99,100,101,102,104,105,111,112,114,115,119,17694,17709,17714,17737,17742,17749,17754,17860,17905,17957,17964,18090,18122,4,2,114,117,17700,17706,103,101,116,59,1,8982,59,1,964,114,107,59,1,9140,4,3,97,101,121,17722,17728,17734,114,111,110,59,1,357,100,105,108,59,1,355,59,1,1090,111,116,59,1,8411,108,114,101,99,59,1,8981,114,59,3,55349,56625,4,4,101,105,107,111,17764,17805,17836,17851,4,2,114,116,17770,17786,101,4,2,52,102,17777,17780,59,1,8756,111,114,101,59,1,8756,97,4,3,59,115,118,17795,17797,17802,1,952,121,109,59,1,977,59,1,977,4,2,99,110,17811,17831,107,4,2,97,115,17818,17826,112,112,114,111,120,59,1,8776,105,109,59,1,8764,115,112,59,1,8201,4,2,97,115,17842,17846,112,59,1,8776,105,109,59,1,8764,114,110,5,254,1,59,17858,1,254,4,3,108,109,110,17868,17873,17901,100,101,59,1,732,101,115,5,215,3,59,98,100,17884,17886,17898,1,215,4,2,59,97,17892,17894,1,8864,114,59,1,10801,59,1,10800,116,59,1,8749,4,3,101,112,115,17913,17917,17953,97,59,1,10536,4,4,59,98,99,102,17927,17929,17934,17939,1,8868,111,116,59,1,9014,105,114,59,1,10993,4,2,59,111,17945,17948,3,55349,56677,114,107,59,1,10970,97,59,1,10537,114,105,109,101,59,1,8244,4,3,97,105,112,17972,17977,18082,100,101,59,1,8482,4,7,97,100,101,109,112,115,116,17993,18051,18056,18059,18066,18072,18076,110,103,108,101,4,5,59,100,108,113,114,18009,18011,18017,18032,18035,1,9653,111,119,110,59,1,9663,101,102,116,4,2,59,101,18026,18028,1,9667,113,59,1,8884,59,1,8796,105,103,104,116,4,2,59,101,18045,18047,1,9657,113,59,1,8885,111,116,59,1,9708,59,1,8796,105,110,117,115,59,1,10810,108,117,115,59,1,10809,98,59,1,10701,105,109,101,59,1,10811,101,122,105,117,109,59,1,9186,4,3,99,104,116,18098,18111,18116,4,2,114,121,18104,18108,59,3,55349,56521,59,1,1094,99,121,59,1,1115,114,111,107,59,1,359,4,2,105,111,18128,18133,120,116,59,1,8812,104,101,97,100,4,2,108,114,18143,18154,101,102,116,97,114,114,111,119,59,1,8606,105,103,104,116,97,114,114,111,119,59,1,8608,4,18,65,72,97,98,99,100,102,103,104,108,109,111,112,114,115,116,117,119,18204,18209,18214,18234,18250,18268,18292,18308,18319,18343,18379,18397,18413,18504,18547,18553,18584,18603,114,114,59,1,8657,97,114,59,1,10595,4,2,99,114,18220,18230,117,116,101,5,250,1,59,18228,1,250,114,59,1,8593,114,4,2,99,101,18241,18245,121,59,1,1118,118,101,59,1,365,4,2,105,121,18256,18265,114,99,5,251,1,59,18263,1,251,59,1,1091,4,3,97,98,104,18276,18281,18287,114,114,59,1,8645,108,97,99,59,1,369,97,114,59,1,10606,4,2,105,114,18298,18304,115,104,116,59,1,10622,59,3,55349,56626,114,97,118,101,5,249,1,59,18317,1,249,4,2,97,98,18325,18338,114,4,2,108,114,18332,18335,59,1,8639,59,1,8638,108,107,59,1,9600,4,2,99,116,18349,18374,4,2,111,114,18355,18369,114,110,4,2,59,101,18363,18365,1,8988,114,59,1,8988,111,112,59,1,8975,114,105,59,1,9720,4,2,97,108,18385,18390,99,114,59,1,363,5,168,1,59,18395,1,168,4,2,103,112,18403,18408,111,110,59,1,371,102,59,3,55349,56678,4,6,97,100,104,108,115,117,18427,18434,18445,18470,18475,18494,114,114,111,119,59,1,8593,111,119,110,97,114,114,111,119,59,1,8597,97,114,112,111,111,110,4,2,108,114,18457,18463,101,102,116,59,1,8639,105,103,104,116,59,1,8638,117,115,59,1,8846,105,4,3,59,104,108,18484,18486,18489,1,965,59,1,978,111,110,59,1,965,112,97,114,114,111,119,115,59,1,8648,4,3,99,105,116,18512,18537,18542,4,2,111,114,18518,18532,114,110,4,2,59,101,18526,18528,1,8989,114,59,1,8989,111,112,59,1,8974,110,103,59,1,367,114,105,59,1,9721,99,114,59,3,55349,56522,4,3,100,105,114,18561,18566,18572,111,116,59,1,8944,108,100,101,59,1,361,105,4,2,59,102,18579,18581,1,9653,59,1,9652,4,2,97,109,18590,18595,114,114,59,1,8648,108,5,252,1,59,18601,1,252,97,110,103,108,101,59,1,10663,4,15,65,66,68,97,99,100,101,102,108,110,111,112,114,115,122,18643,18648,18661,18667,18847,18851,18857,18904,18909,18915,18931,18937,18943,18949,18996,114,114,59,1,8661,97,114,4,2,59,118,18656,18658,1,10984,59,1,10985,97,115,104,59,1,8872,4,2,110,114,18673,18679,103,114,116,59,1,10652,4,7,101,107,110,112,114,115,116,18695,18704,18711,18720,18742,18754,18810,112,115,105,108,111,110,59,1,1013,97,112,112,97,59,1,1008,111,116,104,105,110,103,59,1,8709,4,3,104,105,114,18728,18732,18735,105,59,1,981,59,1,982,111,112,116,111,59,1,8733,4,2,59,104,18748,18750,1,8597,111,59,1,1009,4,2,105,117,18760,18766,103,109,97,59,1,962,4,2,98,112,18772,18791,115,101,116,110,101,113,4,2,59,113,18784,18787,3,8842,65024,59,3,10955,65024,115,101,116,110,101,113,4,2,59,113,18803,18806,3,8843,65024,59,3,10956,65024,4,2,104,114,18816,18822,101,116,97,59,1,977,105,97,110,103,108,101,4,2,108,114,18834,18840,101,102,116,59,1,8882,105,103,104,116,59,1,8883,121,59,1,1074,97,115,104,59,1,8866,4,3,101,108,114,18865,18884,18890,4,3,59,98,101,18873,18875,18880,1,8744,97,114,59,1,8891,113,59,1,8794,108,105,112,59,1,8942,4,2,98,116,18896,18901,97,114,59,1,124,59,1,124,114,59,3,55349,56627,116,114,105,59,1,8882,115,117,4,2,98,112,18923,18927,59,3,8834,8402,59,3,8835,8402,112,102,59,3,55349,56679,114,111,112,59,1,8733,116,114,105,59,1,8883,4,2,99,117,18955,18960,114,59,3,55349,56523,4,2,98,112,18966,18981,110,4,2,69,101,18973,18977,59,3,10955,65024,59,3,8842,65024,110,4,2,69,101,18988,18992,59,3,10956,65024,59,3,8843,65024,105,103,122,97,103,59,1,10650,4,7,99,101,102,111,112,114,115,19020,19026,19061,19066,19072,19075,19089,105,114,99,59,1,373,4,2,100,105,19032,19055,4,2,98,103,19038,19043,97,114,59,1,10847,101,4,2,59,113,19050,19052,1,8743,59,1,8793,101,114,112,59,1,8472,114,59,3,55349,56628,112,102,59,3,55349,56680,59,1,8472,4,2,59,101,19081,19083,1,8768,97,116,104,59,1,8768,99,114,59,3,55349,56524,4,14,99,100,102,104,105,108,109,110,111,114,115,117,118,119,19125,19146,19152,19157,19173,19176,19192,19197,19202,19236,19252,19269,19286,19291,4,3,97,105,117,19133,19137,19142,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,116,114,105,59,1,9661,114,59,3,55349,56629,4,2,65,97,19163,19168,114,114,59,1,10234,114,114,59,1,10231,59,1,958,4,2,65,97,19182,19187,114,114,59,1,10232,114,114,59,1,10229,97,112,59,1,10236,105,115,59,1,8955,4,3,100,112,116,19210,19215,19230,111,116,59,1,10752,4,2,102,108,19221,19225,59,3,55349,56681,117,115,59,1,10753,105,109,101,59,1,10754,4,2,65,97,19242,19247,114,114,59,1,10233,114,114,59,1,10230,4,2,99,113,19258,19263,114,59,3,55349,56525,99,117,112,59,1,10758,4,2,112,116,19275,19281,108,117,115,59,1,10756,114,105,59,1,9651,101,101,59,1,8897,101,100,103,101,59,1,8896,4,8,97,99,101,102,105,111,115,117,19316,19335,19349,19357,19362,19367,19373,19379,99,4,2,117,121,19323,19332,116,101,5,253,1,59,19330,1,253,59,1,1103,4,2,105,121,19341,19346,114,99,59,1,375,59,1,1099,110,5,165,1,59,19355,1,165,114,59,3,55349,56630,99,121,59,1,1111,112,102,59,3,55349,56682,99,114,59,3,55349,56526,4,2,99,109,19385,19389,121,59,1,1102,108,5,255,1,59,19395,1,255,4,10,97,99,100,101,102,104,105,111,115,119,19419,19426,19441,19446,19462,19467,19472,19480,19486,19492,99,117,116,101,59,1,378,4,2,97,121,19432,19438,114,111,110,59,1,382,59,1,1079,111,116,59,1,380,4,2,101,116,19452,19458,116,114,102,59,1,8488,97,59,1,950,114,59,3,55349,56631,99,121,59,1,1078,103,114,97,114,114,59,1,8669,112,102,59,3,55349,56683,99,114,59,3,55349,56527,4,2,106,110,19498,19501,59,1,8205,106,59,1,8204])},147:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=n(4529),o=n(4551),s=i.CODE_POINTS,l=function(){function e(){r(this,e),this.html=null,this.pos=-1,this.lastGapPos=-1,this.lastCharPos=-1,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=65536}return a(e,[{key:"_err",value:function(){}},{key:"_addGap",value:function(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos}},{key:"_processSurrogate",value:function(e){if(this.pos!==this.lastCharPos){var t=this.html.charCodeAt(this.pos+1);if(i.isSurrogatePair(t))return this.pos++,this._addGap(),i.getSurrogatePairCodePoint(e,t)}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,s.EOF;return this._err(o.surrogateInInputStream),e}},{key:"dropParsedChunk",value:function(){this.pos>this.bufferWaterline&&(this.lastCharPos-=this.pos,this.html=this.html.substring(this.pos),this.pos=0,this.lastGapPos=-1,this.gapStack=[])}},{key:"write",value:function(e,t){this.html?this.html+=e:this.html=e,this.lastCharPos=this.html.length-1,this.endOfChunkHit=!1,this.lastChunkWritten=t}},{key:"insertHtmlAtCurrentPos",value:function(e){this.html=this.html.substring(0,this.pos+1)+e+this.html.substring(this.pos+1,this.html.length),this.lastCharPos=this.html.length-1,this.endOfChunkHit=!1}},{key:"advance",value:function(){if(this.pos++,this.pos>this.lastCharPos)return this.endOfChunkHit=!this.lastChunkWritten,s.EOF;var e=this.html.charCodeAt(this.pos);return this.skipNextNewLine&&e===s.LINE_FEED?(this.skipNextNewLine=!1,this._addGap(),this.advance()):e===s.CARRIAGE_RETURN?(this.skipNextNewLine=!0,s.LINE_FEED):(this.skipNextNewLine=!1,i.isSurrogate(e)&&(e=this._processSurrogate(e)),e>31&&e<127||e===s.LINE_FEED||e===s.CARRIAGE_RETURN||e>159&&e<64976||this._checkForProblematicCharacters(e),e)}},{key:"_checkForProblematicCharacters",value:function(e){i.isControlCodePoint(e)?this._err(o.controlCharacterInInputStream):i.isUndefinedCodePoint(e)&&this._err(o.noncharacterInInputStream)}},{key:"retreat",value:function(){this.pos===this.lastGapPos&&(this.lastGapPos=this.gapStack.pop(),this.pos--),this.pos--}}]),e}();e.exports=l},3860:function(e,t,n){"use strict";var r=n(9539).DOCUMENT_MODE;t.createDocument=function(){return{nodeName:"#document",mode:r.NO_QUIRKS,childNodes:[]}},t.createDocumentFragment=function(){return{nodeName:"#document-fragment",childNodes:[]}},t.createElement=function(e,t,n){return{nodeName:e,tagName:e,attrs:n,namespaceURI:t,childNodes:[],parentNode:null}},t.createCommentNode=function(e){return{nodeName:"#comment",data:e,parentNode:null}};var a=function(e){return{nodeName:"#text",value:e,parentNode:null}},i=t.appendChild=function(e,t){e.childNodes.push(t),t.parentNode=e},o=t.insertBefore=function(e,t,n){var r=e.childNodes.indexOf(n);e.childNodes.splice(r,0,t),t.parentNode=e};t.setTemplateContent=function(e,t){e.content=t},t.getTemplateContent=function(e){return e.content},t.setDocumentType=function(e,t,n,r){for(var a=null,o=0;o<e.childNodes.length;o++)if("#documentType"===e.childNodes[o].nodeName){a=e.childNodes[o];break}a?(a.name=t,a.publicId=n,a.systemId=r):i(e,{nodeName:"#documentType",name:t,publicId:n,systemId:r})},t.setDocumentMode=function(e,t){e.mode=t},t.getDocumentMode=function(e){return e.mode},t.detachNode=function(e){if(e.parentNode){var t=e.parentNode.childNodes.indexOf(e);e.parentNode.childNodes.splice(t,1),e.parentNode=null}},t.insertText=function(e,t){if(e.childNodes.length){var n=e.childNodes[e.childNodes.length-1];if("#text"===n.nodeName)return void(n.value+=t)}i(e,a(t))},t.insertTextBefore=function(e,t,n){var r=e.childNodes[e.childNodes.indexOf(n)-1];r&&"#text"===r.nodeName?r.value+=t:o(e,a(t),n)},t.adoptAttributes=function(e,t){for(var n=[],r=0;r<e.attrs.length;r++)n.push(e.attrs[r].name);for(var a=0;a<t.length;a++)-1===n.indexOf(t[a].name)&&e.attrs.push(t[a])},t.getFirstChild=function(e){return e.childNodes[0]},t.getChildNodes=function(e){return e.childNodes},t.getParentNode=function(e){return e.parentNode},t.getAttrList=function(e){return e.attrs},t.getTagName=function(e){return e.tagName},t.getNamespaceURI=function(e){return e.namespaceURI},t.getTextNodeContent=function(e){return e.value},t.getCommentNodeContent=function(e){return e.data},t.getDocumentTypeNodeName=function(e){return e.name},t.getDocumentTypeNodePublicId=function(e){return e.publicId},t.getDocumentTypeNodeSystemId=function(e){return e.systemId},t.isTextNode=function(e){return"#text"===e.nodeName},t.isCommentNode=function(e){return"#comment"===e.nodeName},t.isDocumentTypeNode=function(e){return"#documentType"===e.nodeName},t.isElementNode=function(e){return!!e.tagName},t.setNodeSourceCodeLocation=function(e,t){e.sourceCodeLocation=t},t.getNodeSourceCodeLocation=function(e){return e.sourceCodeLocation},t.updateNodeSourceCodeLocation=function(e,t){e.sourceCodeLocation=Object.assign(e.sourceCodeLocation,t)}},3874:function(e){"use strict";e.exports=function(e,t){return[e,t=t||Object.create(null)].reduce((function(e,t){return Object.keys(t).forEach((function(n){e[n]=t[n]})),e}),Object.create(null))}},1458:function(e,t,n){"use strict";var r=n(6690).default,a=n(9728).default,i=function(){function e(t){r(this,e);for(var n={},a=this._getOverriddenMethods(this,n),i=0,o=Object.keys(a);i<o.length;i++){var s=o[i];"function"===typeof a[s]&&(n[s]=t[s],t[s]=a[s])}}return a(e,[{key:"_getOverriddenMethods",value:function(){throw new Error("Not implemented")}}]),e}();i.install=function(e,t,n){e.__mixins||(e.__mixins=[]);for(var r=0;r<e.__mixins.length;r++)if(e.__mixins[r].constructor===t)return e.__mixins[r];var a=new t(e,n);return e.__mixins.push(a),a},e.exports=i},888:function(e,t,n){"use strict";var r=n(9047);function a(){}function i(){}i.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,i,o){if(o!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:a};return n.PropTypes=n,n}},2007:function(e,t,n){e.exports=n(888)()},9047:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4463:function(e,t,n){"use strict";var r=n(2791),a=n(5296);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var o=new Set,s={};function l(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)o.add(t[e])}var u=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),d=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,m={},g={};function h(e,t,n,r,a,i,o){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var f={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){f[e]=new h(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];f[t]=new h(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){f[e]=new h(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){f[e]=new h(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){f[e]=new h(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){f[e]=new h(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){f[e]=new h(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){f[e]=new h(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){f[e]=new h(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function E(e){return e[1].toUpperCase()}function y(e,t,n,r){var a=f.hasOwnProperty(t)?f[t]:null;(null!==a?0!==a.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null===t||"undefined"===typeof t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!d.call(g,e)||!d.call(m,e)&&(p.test(e)?g[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,E);f[t]=new h(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,E);f[t]=new h(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,E);f[t]=new h(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){f[e]=new h(e,1,!1,e.toLowerCase(),null,!1,!1)})),f.xlinkHref=new h("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){f[e]=new h(e,1,!1,e.toLowerCase(),null,!0,!0)}));var T=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=Symbol.for("react.element"),v=Symbol.for("react.portal"),A=Symbol.for("react.fragment"),k=Symbol.for("react.strict_mode"),w=Symbol.for("react.profiler"),_=Symbol.for("react.provider"),C=Symbol.for("react.context"),N=Symbol.for("react.forward_ref"),I=Symbol.for("react.suspense"),x=Symbol.for("react.suspense_list"),R=Symbol.for("react.memo"),O=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var L=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var P=Symbol.iterator;function D(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=P&&e[P]||e["@@iterator"])?e:null}var M,F=Object.assign;function U(e){if(void 0===M)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);M=t&&t[1]||""}return"\n"+M+e}var B=!1;function G(e,t){if(!e||B)return"";B=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"===typeof c.stack){for(var a=c.stack.split("\n"),i=r.stack.split("\n"),o=a.length-1,s=i.length-1;1<=o&&0<=s&&a[o]!==i[s];)s--;for(;1<=o&&0<=s;o--,s--)if(a[o]!==i[s]){if(1!==o||1!==s)do{if(o--,0>--s||a[o]!==i[s]){var l="\n"+a[o].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}}while(1<=o&&0<=s);break}}}finally{B=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?U(e):""}function H(e){switch(e.tag){case 5:return U(e.type);case 16:return U("Lazy");case 13:return U("Suspense");case 19:return U("SuspenseList");case 0:case 2:case 15:return e=G(e.type,!1);case 11:return e=G(e.type.render,!1);case 1:return e=G(e.type,!0);default:return""}}function z(e){if(null==e)return null;if("function"===typeof e)return e.displayName||e.name||null;if("string"===typeof e)return e;switch(e){case A:return"Fragment";case v:return"Portal";case w:return"Profiler";case k:return"StrictMode";case I:return"Suspense";case x:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case C:return(e.displayName||"Context")+".Consumer";case _:return(e._context.displayName||"Context")+".Provider";case N:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case R:return null!==(t=e.displayName||null)?t:z(e.type)||"Memo";case O:t=e._payload,e=e._init;try{return z(e(t))}catch(n){}}return null}function $(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return z(t);case 8:return t===k?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"===typeof t)return t.displayName||t.name||null;if("string"===typeof t)return t}return null}function V(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function j(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function W(e){e._valueTracker||(e._valueTracker=function(e){var t=j(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&"undefined"!==typeof n&&"function"===typeof n.get&&"function"===typeof n.set){var a=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,i.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function q(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=j(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function K(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function X(e,t){var n=t.checked;return F({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Y(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=V(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Z(e,t){null!=(t=t.checked)&&y(e,"checked",t,!1)}function Q(e,t){Z(e,t);var n=V(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,V(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&K(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+V(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return F({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ae(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(te(n)){if(1<n.length)throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:V(n)}}function ie(e,t){var n=V(t.value),r=V(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function oe(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function se(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function le(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?se(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ce,ue,de=(ue=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ce=ce||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ce.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ue(e,t)}))}:ue);function pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var me={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ge=["Webkit","ms","Moz","O"];function he(e,t,n){return null==t||"boolean"===typeof t||""===t?"":n||"number"!==typeof t||0===t||me.hasOwnProperty(e)&&me[e]?(""+t).trim():t+"px"}function fe(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=he(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(me).forEach((function(e){ge.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),me[t]=me[e]}))}));var be=F({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ee(e,t){if(t){if(be[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!==typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!==typeof t.style)throw Error(i(62))}}function ye(e,t){if(-1===e.indexOf("-"))return"string"===typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Te=null;function Se(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var ve=null,Ae=null,ke=null;function we(e){if(e=ya(e)){if("function"!==typeof ve)throw Error(i(280));var t=e.stateNode;t&&(t=Sa(t),ve(e.stateNode,e.type,t))}}function _e(e){Ae?ke?ke.push(e):ke=[e]:Ae=e}function Ce(){if(Ae){var e=Ae,t=ke;if(ke=Ae=null,we(e),t)for(e=0;e<t.length;e++)we(t[e])}}function Ne(e,t){return e(t)}function Ie(){}var xe=!1;function Re(e,t,n){if(xe)return e(t,n);xe=!0;try{return Ne(e,t,n)}finally{xe=!1,(null!==Ae||null!==ke)&&(Ie(),Ce())}}function Oe(e,t){var n=e.stateNode;if(null===n)return null;var r=Sa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!==typeof n)throw Error(i(231,t,typeof n));return n}var Le=!1;if(u)try{var Pe={};Object.defineProperty(Pe,"passive",{get:function(){Le=!0}}),window.addEventListener("test",Pe,Pe),window.removeEventListener("test",Pe,Pe)}catch(ue){Le=!1}function De(e,t,n,r,a,i,o,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var Me=!1,Fe=null,Ue=!1,Be=null,Ge={onError:function(e){Me=!0,Fe=e}};function He(e,t,n,r,a,i,o,s,l){Me=!1,Fe=null,De.apply(Ge,arguments)}function ze(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!==(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function $e(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ve(e){if(ze(e)!==e)throw Error(i(188))}function je(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=ze(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Ve(a),e;if(o===r)return Ve(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var s=!1,l=a.child;l;){if(l===n){s=!0,n=a,r=o;break}if(l===r){s=!0,r=a,n=o;break}l=l.sibling}if(!s){for(l=o.child;l;){if(l===n){s=!0,n=o,r=a;break}if(l===r){s=!0,r=o,n=a;break}l=l.sibling}if(!s)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e))?We(e):null}function We(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=We(e);if(null!==t)return t;e=e.sibling}return null}var qe=a.unstable_scheduleCallback,Ke=a.unstable_cancelCallback,Xe=a.unstable_shouldYield,Ye=a.unstable_requestPaint,Ze=a.unstable_now,Qe=a.unstable_getCurrentPriorityLevel,Je=a.unstable_ImmediatePriority,et=a.unstable_UserBlockingPriority,tt=a.unstable_NormalPriority,nt=a.unstable_LowPriority,rt=a.unstable_IdlePriority,at=null,it=null;var ot=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(st(e)/lt|0)|0},st=Math.log,lt=Math.LN2;var ct=64,ut=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,a=e.suspendedLanes,i=e.pingedLanes,o=268435455&n;if(0!==o){var s=o&~a;0!==s?r=dt(s):0!==(i&=o)&&(r=dt(i))}else 0!==(o=n&~a)?r=dt(o):0!==i&&(r=dt(i));if(0===r)return 0;if(0!==t&&t!==r&&0===(t&a)&&((a=r&-r)>=(i=t&-t)||16===a&&0!==(4194240&i)))return t;if(0!==(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-ot(t)),r|=e[n],t&=~a;return r}function mt(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function gt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function ht(){var e=ct;return 0===(4194240&(ct<<=1))&&(ct=64),e}function ft(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-ot(t)]=n}function Et(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-ot(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}var yt=0;function Tt(e){return 1<(e&=-e)?4<e?0!==(268435455&e)?16:536870912:4:1}var St,vt,At,kt,wt,_t=!1,Ct=[],Nt=null,It=null,xt=null,Rt=new Map,Ot=new Map,Lt=[],Pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Dt(e,t){switch(e){case"focusin":case"focusout":Nt=null;break;case"dragenter":case"dragleave":It=null;break;case"mouseover":case"mouseout":xt=null;break;case"pointerover":case"pointerout":Rt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Ot.delete(t.pointerId)}}function Mt(e,t,n,r,a,i){return null===e||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:i,targetContainers:[a]},null!==t&&(null!==(t=ya(t))&&vt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function Ft(e){var t=Ea(e.target);if(null!==t){var n=ze(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=$e(n)))return e.blockedOn=t,void wt(e.priority,(function(){At(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Ut(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=ya(n))&&vt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);Te=r,n.target.dispatchEvent(r),Te=null,t.shift()}return!0}function Bt(e,t,n){Ut(e)&&n.delete(t)}function Gt(){_t=!1,null!==Nt&&Ut(Nt)&&(Nt=null),null!==It&&Ut(It)&&(It=null),null!==xt&&Ut(xt)&&(xt=null),Rt.forEach(Bt),Ot.forEach(Bt)}function Ht(e,t){e.blockedOn===t&&(e.blockedOn=null,_t||(_t=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,Gt)))}function zt(e){function t(t){return Ht(t,e)}if(0<Ct.length){Ht(Ct[0],e);for(var n=1;n<Ct.length;n++){var r=Ct[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Nt&&Ht(Nt,e),null!==It&&Ht(It,e),null!==xt&&Ht(xt,e),Rt.forEach(t),Ot.forEach(t),n=0;n<Lt.length;n++)(r=Lt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Lt.length&&null===(n=Lt[0]).blockedOn;)Ft(n),null===n.blockedOn&&Lt.shift()}var $t=T.ReactCurrentBatchConfig,Vt=!0;function jt(e,t,n,r){var a=yt,i=$t.transition;$t.transition=null;try{yt=1,qt(e,t,n,r)}finally{yt=a,$t.transition=i}}function Wt(e,t,n,r){var a=yt,i=$t.transition;$t.transition=null;try{yt=4,qt(e,t,n,r)}finally{yt=a,$t.transition=i}}function qt(e,t,n,r){if(Vt){var a=Xt(e,t,n,r);if(null===a)Vr(e,t,r,Kt,n),Dt(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return Nt=Mt(Nt,e,t,n,r,a),!0;case"dragenter":return It=Mt(It,e,t,n,r,a),!0;case"mouseover":return xt=Mt(xt,e,t,n,r,a),!0;case"pointerover":var i=a.pointerId;return Rt.set(i,Mt(Rt.get(i)||null,e,t,n,r,a)),!0;case"gotpointercapture":return i=a.pointerId,Ot.set(i,Mt(Ot.get(i)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(Dt(e,r),4&t&&-1<Pt.indexOf(e)){for(;null!==a;){var i=ya(a);if(null!==i&&St(i),null===(i=Xt(e,t,n,r))&&Vr(e,t,r,Kt,n),i===a)break;a=i}null!==a&&r.stopPropagation()}else Vr(e,t,r,null,n)}}var Kt=null;function Xt(e,t,n,r){if(Kt=null,null!==(e=Ea(e=Se(r))))if(null===(t=ze(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=$e(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Kt=e,null}function Yt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Qe()){case Je:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Zt=null,Qt=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=Qt,r=n.length,a="value"in Zt?Zt.value:Zt.textContent,i=a.length;for(e=0;e<r&&n[e]===a[e];e++);var o=r-e;for(t=1;t<=o&&n[r-t]===a[i-t];t++);return Jt=a.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function an(e){function t(t,n,r,a,i){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=i,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(a):a[o]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return F(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var on,sn,ln,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},un=an(cn),dn=F({},cn,{view:0,detail:0}),pn=an(dn),mn=F({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:wn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==ln&&(ln&&"mousemove"===e.type?(on=e.screenX-ln.screenX,sn=e.screenY-ln.screenY):sn=on=0,ln=e),on)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),gn=an(mn),hn=an(F({},mn,{dataTransfer:0})),fn=an(F({},dn,{relatedTarget:0})),bn=an(F({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),En=F({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),yn=an(En),Tn=an(F({},cn,{data:0})),Sn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},vn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},An={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function kn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=An[e])&&!!t[e]}function wn(){return kn}var _n=F({},dn,{key:function(e){if(e.key){var t=Sn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?vn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:wn,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Cn=an(_n),Nn=an(F({},mn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),In=an(F({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:wn})),xn=an(F({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Rn=F({},mn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),On=an(Rn),Ln=[9,13,27,32],Pn=u&&"CompositionEvent"in window,Dn=null;u&&"documentMode"in document&&(Dn=document.documentMode);var Mn=u&&"TextEvent"in window&&!Dn,Fn=u&&(!Pn||Dn&&8<Dn&&11>=Dn),Un=String.fromCharCode(32),Bn=!1;function Gn(e,t){switch(e){case"keyup":return-1!==Ln.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Hn(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var zn=!1;var $n={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Vn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!$n[e.type]:"textarea"===t}function jn(e,t,n,r){_e(r),0<(t=Wr(t,"onChange")).length&&(n=new un("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Wn=null,qn=null;function Kn(e){Ur(e,0)}function Xn(e){if(q(Ta(e)))return e}function Yn(e,t){if("change"===e)return t}var Zn=!1;if(u){var Qn;if(u){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"===typeof er.oninput}Qn=Jn}else Qn=!1;Zn=Qn&&(!document.documentMode||9<document.documentMode)}function tr(){Wn&&(Wn.detachEvent("onpropertychange",nr),qn=Wn=null)}function nr(e){if("value"===e.propertyName&&Xn(qn)){var t=[];jn(t,qn,e,Se(e)),Re(Kn,t)}}function rr(e,t,n){"focusin"===e?(tr(),qn=n,(Wn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function ar(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(qn)}function ir(e,t){if("click"===e)return Xn(t)}function or(e,t){if("input"===e||"change"===e)return Xn(t)}var sr="function"===typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e===1/t)||e!==e&&t!==t};function lr(e,t){if(sr(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!d.call(t,a)||!sr(e[a],t[a]))return!1}return!0}function cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ur(e,t){var n,r=cr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=cr(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=K();t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=K((e=t.contentWindow).document)}return t}function mr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function gr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&mr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var a=n.textContent.length,i=Math.min(r.start,a);r=void 0===r.end?i:Math.min(r.end,a),!e.extend&&i>r&&(a=r,r=i,i=a),a=ur(n,i);var o=ur(n,r);a&&o&&(1!==e.rangeCount||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&((t=t.createRange()).setStart(a.node,a.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"===typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var hr=u&&"documentMode"in document&&11>=document.documentMode,fr=null,br=null,Er=null,yr=!1;function Tr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;yr||null==fr||fr!==K(r)||("selectionStart"in(r=fr)&&mr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},Er&&lr(Er,r)||(Er=r,0<(r=Wr(br,"onSelect")).length&&(t=new un("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=fr)))}function Sr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var vr={animationend:Sr("Animation","AnimationEnd"),animationiteration:Sr("Animation","AnimationIteration"),animationstart:Sr("Animation","AnimationStart"),transitionend:Sr("Transition","TransitionEnd")},Ar={},kr={};function wr(e){if(Ar[e])return Ar[e];if(!vr[e])return e;var t,n=vr[e];for(t in n)if(n.hasOwnProperty(t)&&t in kr)return Ar[e]=n[t];return e}u&&(kr=document.createElement("div").style,"AnimationEvent"in window||(delete vr.animationend.animation,delete vr.animationiteration.animation,delete vr.animationstart.animation),"TransitionEvent"in window||delete vr.transitionend.transition);var _r=wr("animationend"),Cr=wr("animationiteration"),Nr=wr("animationstart"),Ir=wr("transitionend"),xr=new Map,Rr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Or(e,t){xr.set(e,t),l(t,[e])}for(var Lr=0;Lr<Rr.length;Lr++){var Pr=Rr[Lr];Or(Pr.toLowerCase(),"on"+(Pr[0].toUpperCase()+Pr.slice(1)))}Or(_r,"onAnimationEnd"),Or(Cr,"onAnimationIteration"),Or(Nr,"onAnimationStart"),Or("dblclick","onDoubleClick"),Or("focusin","onFocus"),Or("focusout","onBlur"),Or(Ir,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Dr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Mr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Dr));function Fr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,s,l,c){if(He.apply(this,arguments),Me){if(!Me)throw Error(i(198));var u=Fe;Me=!1,Fe=null,Ue||(Ue=!0,Be=u)}}(r,t,void 0,e),e.currentTarget=null}function Ur(e,t){t=0!==(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var i=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==i&&a.isPropagationStopped())break e;Fr(a,s,c),i=l}else for(o=0;o<r.length;o++){if(l=(s=r[o]).instance,c=s.currentTarget,s=s.listener,l!==i&&a.isPropagationStopped())break e;Fr(a,s,c),i=l}}}if(Ue)throw e=Be,Ue=!1,Be=null,e}function Br(e,t){var n=t[ha];void 0===n&&(n=t[ha]=new Set);var r=e+"__bubble";n.has(r)||($r(t,e,2,!1),n.add(r))}function Gr(e,t,n){var r=0;t&&(r|=4),$r(n,e,r,t)}var Hr="_reactListening"+Math.random().toString(36).slice(2);function zr(e){if(!e[Hr]){e[Hr]=!0,o.forEach((function(t){"selectionchange"!==t&&(Mr.has(t)||Gr(t,!1,e),Gr(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[Hr]||(t[Hr]=!0,Gr("selectionchange",!1,t))}}function $r(e,t,n,r){switch(Yt(t)){case 1:var a=jt;break;case 4:a=Wt;break;default:a=qt}n=a.bind(null,t,n,e),a=void 0,!Le||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Vr(e,t,n,r,a){var i=r;if(0===(1&t)&&0===(2&t)&&null!==r)e:for(;;){if(null===r)return;var o=r.tag;if(3===o||4===o){var s=r.stateNode.containerInfo;if(s===a||8===s.nodeType&&s.parentNode===a)break;if(4===o)for(o=r.return;null!==o;){var l=o.tag;if((3===l||4===l)&&((l=o.stateNode.containerInfo)===a||8===l.nodeType&&l.parentNode===a))return;o=o.return}for(;null!==s;){if(null===(o=Ea(s)))return;if(5===(l=o.tag)||6===l){r=i=o;continue e}s=s.parentNode}}r=r.return}Re((function(){var r=i,a=Se(n),o=[];e:{var s=xr.get(e);if(void 0!==s){var l=un,c=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":l=Cn;break;case"focusin":c="focus",l=fn;break;case"focusout":c="blur",l=fn;break;case"beforeblur":case"afterblur":l=fn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":l=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=hn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=In;break;case _r:case Cr:case Nr:l=bn;break;case Ir:l=xn;break;case"scroll":l=pn;break;case"wheel":l=On;break;case"copy":case"cut":case"paste":l=yn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=Nn}var u=0!==(4&t),d=!u&&"scroll"===e,p=u?null!==s?s+"Capture":null:s;u=[];for(var m,g=r;null!==g;){var h=(m=g).stateNode;if(5===m.tag&&null!==h&&(m=h,null!==p&&(null!=(h=Oe(g,p))&&u.push(jr(g,h,m)))),d)break;g=g.return}0<u.length&&(s=new l(s,c,null,n,a),o.push({event:s,listeners:u}))}}if(0===(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===Te||!(c=n.relatedTarget||n.fromElement)||!Ea(c)&&!c[ga])&&(l||s)&&(s=a.window===a?a:(s=a.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(c=(c=n.relatedTarget||n.toElement)?Ea(c):null)&&(c!==(d=ze(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=r),l!==c)){if(u=gn,h="onMouseLeave",p="onMouseEnter",g="mouse","pointerout"!==e&&"pointerover"!==e||(u=Nn,h="onPointerLeave",p="onPointerEnter",g="pointer"),d=null==l?s:Ta(l),m=null==c?s:Ta(c),(s=new u(h,g+"leave",l,n,a)).target=d,s.relatedTarget=m,h=null,Ea(a)===r&&((u=new u(p,g+"enter",c,n,a)).target=m,u.relatedTarget=d,h=u),d=h,l&&c)e:{for(p=c,g=0,m=u=l;m;m=qr(m))g++;for(m=0,h=p;h;h=qr(h))m++;for(;0<g-m;)u=qr(u),g--;for(;0<m-g;)p=qr(p),m--;for(;g--;){if(u===p||null!==p&&u===p.alternate)break e;u=qr(u),p=qr(p)}u=null}else u=null;null!==l&&Kr(o,s,l,u,!1),null!==c&&null!==d&&Kr(o,d,c,u,!0)}if("select"===(l=(s=r?Ta(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var f=Yn;else if(Vn(s))if(Zn)f=or;else{f=ar;var b=rr}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(f=ir);switch(f&&(f=f(e,r))?jn(o,f,n,a):(b&&b(e,s,r),"focusout"===e&&(b=s._wrapperState)&&b.controlled&&"number"===s.type&&ee(s,"number",s.value)),b=r?Ta(r):window,e){case"focusin":(Vn(b)||"true"===b.contentEditable)&&(fr=b,br=r,Er=null);break;case"focusout":Er=br=fr=null;break;case"mousedown":yr=!0;break;case"contextmenu":case"mouseup":case"dragend":yr=!1,Tr(o,n,a);break;case"selectionchange":if(hr)break;case"keydown":case"keyup":Tr(o,n,a)}var E;if(Pn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else zn?Gn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Fn&&"ko"!==n.locale&&(zn||"onCompositionStart"!==y?"onCompositionEnd"===y&&zn&&(E=en()):(Qt="value"in(Zt=a)?Zt.value:Zt.textContent,zn=!0)),0<(b=Wr(r,y)).length&&(y=new Tn(y,e,null,n,a),o.push({event:y,listeners:b}),E?y.data=E:null!==(E=Hn(n))&&(y.data=E))),(E=Mn?function(e,t){switch(e){case"compositionend":return Hn(t);case"keypress":return 32!==t.which?null:(Bn=!0,Un);case"textInput":return(e=t.data)===Un&&Bn?null:e;default:return null}}(e,n):function(e,t){if(zn)return"compositionend"===e||!Pn&&Gn(e,t)?(e=en(),Jt=Qt=Zt=null,zn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Fn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Wr(r,"onBeforeInput")).length&&(a=new Tn("onBeforeInput","beforeinput",null,n,a),o.push({event:a,listeners:r}),a.data=E))}Ur(o,t)}))}function jr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Wr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,i=a.stateNode;5===a.tag&&null!==i&&(a=i,null!=(i=Oe(e,n))&&r.unshift(jr(e,i,a)),null!=(i=Oe(e,t))&&r.push(jr(e,i,a))),e=e.return}return r}function qr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Kr(e,t,n,r,a){for(var i=t._reactName,o=[];null!==n&&n!==r;){var s=n,l=s.alternate,c=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==c&&(s=c,a?null!=(l=Oe(n,i))&&o.unshift(jr(n,l,s)):a||null!=(l=Oe(n,i))&&o.push(jr(n,l,s))),n=n.return}0!==o.length&&e.push({event:t,listeners:o})}var Xr=/\r\n?/g,Yr=/\u0000|\uFFFD/g;function Zr(e){return("string"===typeof e?e:""+e).replace(Xr,"\n").replace(Yr,"")}function Qr(e,t,n){if(t=Zr(t),Zr(e)!==t&&n)throw Error(i(425))}function Jr(){}var ea=null,ta=null;function na(e,t){return"textarea"===e||"noscript"===e||"string"===typeof t.children||"number"===typeof t.children||"object"===typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ra="function"===typeof setTimeout?setTimeout:void 0,aa="function"===typeof clearTimeout?clearTimeout:void 0,ia="function"===typeof Promise?Promise:void 0,oa="function"===typeof queueMicrotask?queueMicrotask:"undefined"!==typeof ia?function(e){return ia.resolve(null).then(e).catch(sa)}:ra;function sa(e){setTimeout((function(){throw e}))}function la(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&8===a.nodeType)if("/$"===(n=a.data)){if(0===r)return e.removeChild(a),void zt(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=a}while(n);zt(t)}function ca(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function ua(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var da=Math.random().toString(36).slice(2),pa="__reactFiber$"+da,ma="__reactProps$"+da,ga="__reactContainer$"+da,ha="__reactEvents$"+da,fa="__reactListeners$"+da,ba="__reactHandles$"+da;function Ea(e){var t=e[pa];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ga]||n[pa]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ua(e);null!==e;){if(n=e[pa])return n;e=ua(e)}return t}n=(e=n).parentNode}return null}function ya(e){return!(e=e[pa]||e[ga])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function Ta(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function Sa(e){return e[ma]||null}var va=[],Aa=-1;function ka(e){return{current:e}}function wa(e){0>Aa||(e.current=va[Aa],va[Aa]=null,Aa--)}function _a(e,t){Aa++,va[Aa]=e.current,e.current=t}var Ca={},Na=ka(Ca),Ia=ka(!1),xa=Ca;function Ra(e,t){var n=e.type.contextTypes;if(!n)return Ca;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,i={};for(a in n)i[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Oa(e){return null!==(e=e.childContextTypes)&&void 0!==e}function La(){wa(Ia),wa(Na)}function Pa(e,t,n){if(Na.current!==Ca)throw Error(i(168));_a(Na,t),_a(Ia,n)}function Da(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!==typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in t))throw Error(i(108,$(e)||"Unknown",a));return F({},n,r)}function Ma(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ca,xa=Na.current,_a(Na,e),_a(Ia,Ia.current),!0}function Fa(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=Da(e,t,xa),r.__reactInternalMemoizedMergedChildContext=e,wa(Ia),wa(Na),_a(Na,e)):wa(Ia),_a(Ia,n)}var Ua=null,Ba=!1,Ga=!1;function Ha(e){null===Ua?Ua=[e]:Ua.push(e)}function za(){if(!Ga&&null!==Ua){Ga=!0;var e=0,t=yt;try{var n=Ua;for(yt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Ua=null,Ba=!1}catch(a){throw null!==Ua&&(Ua=Ua.slice(e+1)),qe(Je,za),a}finally{yt=t,Ga=!1}}return null}var $a=[],Va=0,ja=null,Wa=0,qa=[],Ka=0,Xa=null,Ya=1,Za="";function Qa(e,t){$a[Va++]=Wa,$a[Va++]=ja,ja=e,Wa=t}function Ja(e,t,n){qa[Ka++]=Ya,qa[Ka++]=Za,qa[Ka++]=Xa,Xa=e;var r=Ya;e=Za;var a=32-ot(r)-1;r&=~(1<<a),n+=1;var i=32-ot(t)+a;if(30<i){var o=a-a%5;i=(r&(1<<o)-1).toString(32),r>>=o,a-=o,Ya=1<<32-ot(t)+a|n<<a|r,Za=i+e}else Ya=1<<i|n<<a|r,Za=e}function ei(e){null!==e.return&&(Qa(e,1),Ja(e,1,0))}function ti(e){for(;e===ja;)ja=$a[--Va],$a[Va]=null,Wa=$a[--Va],$a[Va]=null;for(;e===Xa;)Xa=qa[--Ka],qa[Ka]=null,Za=qa[--Ka],qa[Ka]=null,Ya=qa[--Ka],qa[Ka]=null}var ni=null,ri=null,ai=!1,ii=null;function oi(e,t){var n=Rc(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function si(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,ni=e,ri=ca(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,ni=e,ri=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Xa?{id:Ya,overflow:Za}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Rc(18,null,null,0)).stateNode=t,n.return=e,e.child=n,ni=e,ri=null,!0);default:return!1}}function li(e){return 0!==(1&e.mode)&&0===(128&e.flags)}function ci(e){if(ai){var t=ri;if(t){var n=t;if(!si(e,t)){if(li(e))throw Error(i(418));t=ca(n.nextSibling);var r=ni;t&&si(e,t)?oi(r,n):(e.flags=-4097&e.flags|2,ai=!1,ni=e)}}else{if(li(e))throw Error(i(418));e.flags=-4097&e.flags|2,ai=!1,ni=e}}}function ui(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;ni=e}function di(e){if(e!==ni)return!1;if(!ai)return ui(e),ai=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!na(e.type,e.memoizedProps)),t&&(t=ri)){if(li(e))throw pi(),Error(i(418));for(;t;)oi(e,t),t=ca(t.nextSibling)}if(ui(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){ri=ca(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}ri=null}}else ri=ni?ca(e.stateNode.nextSibling):null;return!0}function pi(){for(var e=ri;e;)e=ca(e.nextSibling)}function mi(){ri=ni=null,ai=!1}function gi(e){null===ii?ii=[e]:ii.push(e)}var hi=T.ReactCurrentBatchConfig;function fi(e,t){if(e&&e.defaultProps){for(var n in t=F({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var bi=ka(null),Ei=null,yi=null,Ti=null;function Si(){Ti=yi=Ei=null}function vi(e){var t=bi.current;wa(bi),e._currentValue=t}function Ai(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function ki(e,t){Ei=e,Ti=yi=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!==(e.lanes&t)&&(Ts=!0),e.firstContext=null)}function wi(e){var t=e._currentValue;if(Ti!==e)if(e={context:e,memoizedValue:t,next:null},null===yi){if(null===Ei)throw Error(i(308));yi=e,Ei.dependencies={lanes:0,firstContext:e}}else yi=yi.next=e;return t}var _i=null;function Ci(e){null===_i?_i=[e]:_i.push(e)}function Ni(e,t,n,r){var a=t.interleaved;return null===a?(n.next=n,Ci(t)):(n.next=a.next,a.next=n),t.interleaved=n,Ii(e,r)}function Ii(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var xi=!1;function Ri(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Oi(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Li(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Pi(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!==(2&Nl)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,Ii(e,n)}return null===(a=r.interleaved)?(t.next=t,Ci(r)):(t.next=a.next,a.next=t),r.interleaved=t,Ii(e,n)}function Di(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!==(4194240&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,Et(e,n)}}function Mi(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,i=null;if(null!==(n=n.firstBaseUpdate)){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===i?a=i=o:i=i.next=o,n=n.next}while(null!==n);null===i?a=i=t:i=i.next=t}else a=i=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:i,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Fi(e,t,n,r){var a=e.updateQueue;xi=!1;var i=a.firstBaseUpdate,o=a.lastBaseUpdate,s=a.shared.pending;if(null!==s){a.shared.pending=null;var l=s,c=l.next;l.next=null,null===o?i=c:o.next=c,o=l;var u=e.alternate;null!==u&&((s=(u=u.updateQueue).lastBaseUpdate)!==o&&(null===s?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(null!==i){var d=a.baseState;for(o=0,u=c=l=null,s=i;;){var p=s.lane,m=s.eventTime;if((r&p)===p){null!==u&&(u=u.next={eventTime:m,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var g=e,h=s;switch(p=t,m=n,h.tag){case 1:if("function"===typeof(g=h.payload)){d=g.call(m,d,p);break e}d=g;break e;case 3:g.flags=-65537&g.flags|128;case 0:if(null===(p="function"===typeof(g=h.payload)?g.call(m,d,p):g)||void 0===p)break e;d=F({},d,p);break e;case 2:xi=!0}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(p=a.effects)?a.effects=[s]:p.push(s))}else m={eventTime:m,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===u?(c=u=m,l=d):u=u.next=m,o|=p;if(null===(s=s.next)){if(null===(s=a.shared.pending))break;s=(p=s).next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}if(null===u&&(l=d),a.baseState=l,a.firstBaseUpdate=c,a.lastBaseUpdate=u,null!==(t=a.shared.interleaved)){a=t;do{o|=a.lane,a=a.next}while(a!==t)}else null===i&&(a.shared.lanes=0);Ml|=o,e.lanes=o,e.memoizedState=d}}function Ui(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!==typeof a)throw Error(i(191,a));a.call(r)}}}var Bi=(new r.Component).refs;function Gi(e,t,n,r){n=null===(n=n(r,t=e.memoizedState))||void 0===n?t:F({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var Hi={isMounted:function(e){return!!(e=e._reactInternals)&&ze(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ec(),a=tc(e),i=Li(r,a);i.payload=t,void 0!==n&&null!==n&&(i.callback=n),null!==(t=Pi(e,i,a))&&(nc(t,e,a,r),Di(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ec(),a=tc(e),i=Li(r,a);i.tag=1,i.payload=t,void 0!==n&&null!==n&&(i.callback=n),null!==(t=Pi(e,i,a))&&(nc(t,e,a,r),Di(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ec(),r=tc(e),a=Li(n,r);a.tag=2,void 0!==t&&null!==t&&(a.callback=t),null!==(t=Pi(e,a,r))&&(nc(t,e,r,n),Di(t,e,r))}};function zi(e,t,n,r,a,i,o){return"function"===typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,i,o):!t.prototype||!t.prototype.isPureReactComponent||(!lr(n,r)||!lr(a,i))}function $i(e,t,n){var r=!1,a=Ca,i=t.contextType;return"object"===typeof i&&null!==i?i=wi(i):(a=Oa(t)?xa:Na.current,i=(r=null!==(r=t.contextTypes)&&void 0!==r)?Ra(e,a):Ca),t=new t(n,i),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Hi,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=i),t}function Vi(e,t,n,r){e=t.state,"function"===typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"===typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Hi.enqueueReplaceState(t,t.state,null)}function ji(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=Bi,Ri(e);var i=t.contextType;"object"===typeof i&&null!==i?a.context=wi(i):(i=Oa(t)?xa:Na.current,a.context=Ra(e,i)),a.state=e.memoizedState,"function"===typeof(i=t.getDerivedStateFromProps)&&(Gi(e,t,i,n),a.state=e.memoizedState),"function"===typeof t.getDerivedStateFromProps||"function"===typeof a.getSnapshotBeforeUpdate||"function"!==typeof a.UNSAFE_componentWillMount&&"function"!==typeof a.componentWillMount||(t=a.state,"function"===typeof a.componentWillMount&&a.componentWillMount(),"function"===typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&Hi.enqueueReplaceState(a,a.state,null),Fi(e,n,a,r),a.state=e.memoizedState),"function"===typeof a.componentDidMount&&(e.flags|=4194308)}function Wi(e,t,n){if(null!==(e=n.ref)&&"function"!==typeof e&&"object"!==typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=r,o=""+e;return null!==t&&null!==t.ref&&"function"===typeof t.ref&&t.ref._stringRef===o?t.ref:(t=function(e){var t=a.refs;t===Bi&&(t=a.refs={}),null===e?delete t[o]:t[o]=e},t._stringRef=o,t)}if("string"!==typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function qi(e,t){throw e=Object.prototype.toString.call(t),Error(i(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Ki(e){return(0,e._init)(e._payload)}function Xi(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Lc(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function s(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Fc(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function c(e,t,n,r){var i=n.type;return i===A?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===i||"object"===typeof i&&null!==i&&i.$$typeof===O&&Ki(i)===t.type)?((r=a(t,n.props)).ref=Wi(e,t,n),r.return=e,r):((r=Pc(n.type,n.key,n.props,null,e.mode,r)).ref=Wi(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Uc(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,i){return null===t||7!==t.tag?((t=Dc(n,e.mode,r,i)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"===typeof t&&""!==t||"number"===typeof t)return(t=Fc(""+t,e.mode,n)).return=e,t;if("object"===typeof t&&null!==t){switch(t.$$typeof){case S:return(n=Pc(t.type,t.key,t.props,null,e.mode,n)).ref=Wi(e,null,t),n.return=e,n;case v:return(t=Uc(t,e.mode,n)).return=e,t;case O:return p(e,(0,t._init)(t._payload),n)}if(te(t)||D(t))return(t=Dc(t,e.mode,n,null)).return=e,t;qi(e,t)}return null}function m(e,t,n,r){var a=null!==t?t.key:null;if("string"===typeof n&&""!==n||"number"===typeof n)return null!==a?null:l(e,t,""+n,r);if("object"===typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===a?c(e,t,n,r):null;case v:return n.key===a?u(e,t,n,r):null;case O:return m(e,t,(a=n._init)(n._payload),r)}if(te(n)||D(n))return null!==a?null:d(e,t,n,r,null);qi(e,n)}return null}function g(e,t,n,r,a){if("string"===typeof r&&""!==r||"number"===typeof r)return l(t,e=e.get(n)||null,""+r,a);if("object"===typeof r&&null!==r){switch(r.$$typeof){case S:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case v:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case O:return g(e,t,n,(0,r._init)(r._payload),a)}if(te(r)||D(r))return d(t,e=e.get(n)||null,r,a,null);qi(t,r)}return null}function h(a,i,s,l){for(var c=null,u=null,d=i,h=i=0,f=null;null!==d&&h<s.length;h++){d.index>h?(f=d,d=null):f=d.sibling;var b=m(a,d,s[h],l);if(null===b){null===d&&(d=f);break}e&&d&&null===b.alternate&&t(a,d),i=o(b,i,h),null===u?c=b:u.sibling=b,u=b,d=f}if(h===s.length)return n(a,d),ai&&Qa(a,h),c;if(null===d){for(;h<s.length;h++)null!==(d=p(a,s[h],l))&&(i=o(d,i,h),null===u?c=d:u.sibling=d,u=d);return ai&&Qa(a,h),c}for(d=r(a,d);h<s.length;h++)null!==(f=g(d,a,h,s[h],l))&&(e&&null!==f.alternate&&d.delete(null===f.key?h:f.key),i=o(f,i,h),null===u?c=f:u.sibling=f,u=f);return e&&d.forEach((function(e){return t(a,e)})),ai&&Qa(a,h),c}function f(a,s,l,c){var u=D(l);if("function"!==typeof u)throw Error(i(150));if(null==(l=u.call(l)))throw Error(i(151));for(var d=u=null,h=s,f=s=0,b=null,E=l.next();null!==h&&!E.done;f++,E=l.next()){h.index>f?(b=h,h=null):b=h.sibling;var y=m(a,h,E.value,c);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(a,h),s=o(y,s,f),null===d?u=y:d.sibling=y,d=y,h=b}if(E.done)return n(a,h),ai&&Qa(a,f),u;if(null===h){for(;!E.done;f++,E=l.next())null!==(E=p(a,E.value,c))&&(s=o(E,s,f),null===d?u=E:d.sibling=E,d=E);return ai&&Qa(a,f),u}for(h=r(a,h);!E.done;f++,E=l.next())null!==(E=g(h,a,f,E.value,c))&&(e&&null!==E.alternate&&h.delete(null===E.key?f:E.key),s=o(E,s,f),null===d?u=E:d.sibling=E,d=E);return e&&h.forEach((function(e){return t(a,e)})),ai&&Qa(a,f),u}return function e(r,i,o,l){if("object"===typeof o&&null!==o&&o.type===A&&null===o.key&&(o=o.props.children),"object"===typeof o&&null!==o){switch(o.$$typeof){case S:e:{for(var c=o.key,u=i;null!==u;){if(u.key===c){if((c=o.type)===A){if(7===u.tag){n(r,u.sibling),(i=a(u,o.props.children)).return=r,r=i;break e}}else if(u.elementType===c||"object"===typeof c&&null!==c&&c.$$typeof===O&&Ki(c)===u.type){n(r,u.sibling),(i=a(u,o.props)).ref=Wi(r,u,o),i.return=r,r=i;break e}n(r,u);break}t(r,u),u=u.sibling}o.type===A?((i=Dc(o.props.children,r.mode,l,o.key)).return=r,r=i):((l=Pc(o.type,o.key,o.props,null,r.mode,l)).ref=Wi(r,i,o),l.return=r,r=l)}return s(r);case v:e:{for(u=o.key;null!==i;){if(i.key===u){if(4===i.tag&&i.stateNode.containerInfo===o.containerInfo&&i.stateNode.implementation===o.implementation){n(r,i.sibling),(i=a(i,o.children||[])).return=r,r=i;break e}n(r,i);break}t(r,i),i=i.sibling}(i=Uc(o,r.mode,l)).return=r,r=i}return s(r);case O:return e(r,i,(u=o._init)(o._payload),l)}if(te(o))return h(r,i,o,l);if(D(o))return f(r,i,o,l);qi(r,o)}return"string"===typeof o&&""!==o||"number"===typeof o?(o=""+o,null!==i&&6===i.tag?(n(r,i.sibling),(i=a(i,o)).return=r,r=i):(n(r,i),(i=Fc(o,r.mode,l)).return=r,r=i),s(r)):n(r,i)}}var Yi=Xi(!0),Zi=Xi(!1),Qi={},Ji=ka(Qi),eo=ka(Qi),to=ka(Qi);function no(e){if(e===Qi)throw Error(i(174));return e}function ro(e,t){switch(_a(to,t),_a(eo,e),_a(Ji,Qi),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:le(null,"");break;default:t=le(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}wa(Ji),_a(Ji,t)}function ao(){wa(Ji),wa(eo),wa(to)}function io(e){no(to.current);var t=no(Ji.current),n=le(t,e.type);t!==n&&(_a(eo,e),_a(Ji,n))}function oo(e){eo.current===e&&(wa(Ji),wa(eo))}var so=ka(0);function lo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!==(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var co=[];function uo(){for(var e=0;e<co.length;e++)co[e]._workInProgressVersionPrimary=null;co.length=0}var po=T.ReactCurrentDispatcher,mo=T.ReactCurrentBatchConfig,go=0,ho=null,fo=null,bo=null,Eo=!1,yo=!1,To=0,So=0;function vo(){throw Error(i(321))}function Ao(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sr(e[n],t[n]))return!1;return!0}function ko(e,t,n,r,a,o){if(go=o,ho=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,po.current=null===e||null===e.memoizedState?ss:ls,e=n(r,a),yo){o=0;do{if(yo=!1,To=0,25<=o)throw Error(i(301));o+=1,bo=fo=null,t.updateQueue=null,po.current=cs,e=n(r,a)}while(yo)}if(po.current=os,t=null!==fo&&null!==fo.next,go=0,bo=fo=ho=null,Eo=!1,t)throw Error(i(300));return e}function wo(){var e=0!==To;return To=0,e}function _o(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===bo?ho.memoizedState=bo=e:bo=bo.next=e,bo}function Co(){if(null===fo){var e=ho.alternate;e=null!==e?e.memoizedState:null}else e=fo.next;var t=null===bo?ho.memoizedState:bo.next;if(null!==t)bo=t,fo=e;else{if(null===e)throw Error(i(310));e={memoizedState:(fo=e).memoizedState,baseState:fo.baseState,baseQueue:fo.baseQueue,queue:fo.queue,next:null},null===bo?ho.memoizedState=bo=e:bo=bo.next=e}return bo}function No(e,t){return"function"===typeof t?t(e):t}function Io(e){var t=Co(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=fo,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var s=a.next;a.next=o.next,o.next=s}r.baseQueue=a=o,n.pending=null}if(null!==a){o=a.next,r=r.baseState;var l=s=null,c=null,u=o;do{var d=u.lane;if((go&d)===d)null!==c&&(c=c.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var p={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};null===c?(l=c=p,s=r):c=c.next=p,ho.lanes|=d,Ml|=d}u=u.next}while(null!==u&&u!==o);null===c?s=r:c.next=l,sr(r,t.memoizedState)||(Ts=!0),t.memoizedState=r,t.baseState=s,t.baseQueue=c,n.lastRenderedState=r}if(null!==(e=n.interleaved)){a=e;do{o=a.lane,ho.lanes|=o,Ml|=o,a=a.next}while(a!==e)}else null===a&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function xo(e){var t=Co(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var s=a=a.next;do{o=e(o,s.action),s=s.next}while(s!==a);sr(o,t.memoizedState)||(Ts=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Ro(){}function Oo(e,t){var n=ho,r=Co(),a=t(),o=!sr(r.memoizedState,a);if(o&&(r.memoizedState=a,Ts=!0),r=r.queue,Vo(Do.bind(null,n,r,e),[e]),r.getSnapshot!==t||o||null!==bo&&1&bo.memoizedState.tag){if(n.flags|=2048,Bo(9,Po.bind(null,n,r,a,t),void 0,null),null===Il)throw Error(i(349));0!==(30&go)||Lo(n,t,a)}return a}function Lo(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=ho.updateQueue)?(t={lastEffect:null,stores:null},ho.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Po(e,t,n,r){t.value=n,t.getSnapshot=r,Mo(t)&&Fo(e)}function Do(e,t,n){return n((function(){Mo(t)&&Fo(e)}))}function Mo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sr(e,n)}catch(r){return!0}}function Fo(e){var t=Ii(e,1);null!==t&&nc(t,e,1,-1)}function Uo(e){var t=_o();return"function"===typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:No,lastRenderedState:e},t.queue=e,e=e.dispatch=ns.bind(null,ho,e),[t.memoizedState,e]}function Bo(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=ho.updateQueue)?(t={lastEffect:null,stores:null},ho.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Go(){return Co().memoizedState}function Ho(e,t,n,r){var a=_o();ho.flags|=e,a.memoizedState=Bo(1|t,n,void 0,void 0===r?null:r)}function zo(e,t,n,r){var a=Co();r=void 0===r?null:r;var i=void 0;if(null!==fo){var o=fo.memoizedState;if(i=o.destroy,null!==r&&Ao(r,o.deps))return void(a.memoizedState=Bo(t,n,i,r))}ho.flags|=e,a.memoizedState=Bo(1|t,n,i,r)}function $o(e,t){return Ho(8390656,8,e,t)}function Vo(e,t){return zo(2048,8,e,t)}function jo(e,t){return zo(4,2,e,t)}function Wo(e,t){return zo(4,4,e,t)}function qo(e,t){return"function"===typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Ko(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,zo(4,4,qo.bind(null,t,e),n)}function Xo(){}function Yo(e,t){var n=Co();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Ao(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Zo(e,t){var n=Co();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Ao(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Qo(e,t,n){return 0===(21&go)?(e.baseState&&(e.baseState=!1,Ts=!0),e.memoizedState=n):(sr(n,t)||(n=ht(),ho.lanes|=n,Ml|=n,e.baseState=!0),t)}function Jo(e,t){var n=yt;yt=0!==n&&4>n?n:4,e(!0);var r=mo.transition;mo.transition={};try{e(!1),t()}finally{yt=n,mo.transition=r}}function es(){return Co().memoizedState}function ts(e,t,n){var r=tc(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},rs(e))as(t,n);else if(null!==(n=Ni(e,t,n,r))){nc(n,e,r,ec()),is(n,t,r)}}function ns(e,t,n){var r=tc(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(rs(e))as(t,a);else{var i=e.alternate;if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var o=t.lastRenderedState,s=i(o,n);if(a.hasEagerState=!0,a.eagerState=s,sr(s,o)){var l=t.interleaved;return null===l?(a.next=a,Ci(t)):(a.next=l.next,l.next=a),void(t.interleaved=a)}}catch(c){}null!==(n=Ni(e,t,a,r))&&(nc(n,e,r,a=ec()),is(n,t,r))}}function rs(e){var t=e.alternate;return e===ho||null!==t&&t===ho}function as(e,t){yo=Eo=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function is(e,t,n){if(0!==(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,Et(e,n)}}var os={readContext:wi,useCallback:vo,useContext:vo,useEffect:vo,useImperativeHandle:vo,useInsertionEffect:vo,useLayoutEffect:vo,useMemo:vo,useReducer:vo,useRef:vo,useState:vo,useDebugValue:vo,useDeferredValue:vo,useTransition:vo,useMutableSource:vo,useSyncExternalStore:vo,useId:vo,unstable_isNewReconciler:!1},ss={readContext:wi,useCallback:function(e,t){return _o().memoizedState=[e,void 0===t?null:t],e},useContext:wi,useEffect:$o,useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,Ho(4194308,4,qo.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ho(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ho(4,2,e,t)},useMemo:function(e,t){var n=_o();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=_o();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=ts.bind(null,ho,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},_o().memoizedState=e},useState:Uo,useDebugValue:Xo,useDeferredValue:function(e){return _o().memoizedState=e},useTransition:function(){var e=Uo(!1),t=e[0];return e=Jo.bind(null,e[1]),_o().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ho,a=_o();if(ai){if(void 0===n)throw Error(i(407));n=n()}else{if(n=t(),null===Il)throw Error(i(349));0!==(30&go)||Lo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,$o(Do.bind(null,r,o,e),[e]),r.flags|=2048,Bo(9,Po.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=_o(),t=Il.identifierPrefix;if(ai){var n=Za;t=":"+t+"R"+(n=(Ya&~(1<<32-ot(Ya)-1)).toString(32)+n),0<(n=To++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=So++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},ls={readContext:wi,useCallback:Yo,useContext:wi,useEffect:Vo,useImperativeHandle:Ko,useInsertionEffect:jo,useLayoutEffect:Wo,useMemo:Zo,useReducer:Io,useRef:Go,useState:function(){return Io(No)},useDebugValue:Xo,useDeferredValue:function(e){return Qo(Co(),fo.memoizedState,e)},useTransition:function(){return[Io(No)[0],Co().memoizedState]},useMutableSource:Ro,useSyncExternalStore:Oo,useId:es,unstable_isNewReconciler:!1},cs={readContext:wi,useCallback:Yo,useContext:wi,useEffect:Vo,useImperativeHandle:Ko,useInsertionEffect:jo,useLayoutEffect:Wo,useMemo:Zo,useReducer:xo,useRef:Go,useState:function(){return xo(No)},useDebugValue:Xo,useDeferredValue:function(e){var t=Co();return null===fo?t.memoizedState=e:Qo(t,fo.memoizedState,e)},useTransition:function(){return[xo(No)[0],Co().memoizedState]},useMutableSource:Ro,useSyncExternalStore:Oo,useId:es,unstable_isNewReconciler:!1};function us(e,t){try{var n="",r=t;do{n+=H(r),r=r.return}while(r);var a=n}catch(i){a="\nError generating stack: "+i.message+"\n"+i.stack}return{value:e,source:t,stack:a,digest:null}}function ds(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function ps(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var ms="function"===typeof WeakMap?WeakMap:Map;function gs(e,t,n){(n=Li(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Vl||(Vl=!0,jl=r),ps(0,t)},n}function hs(e,t,n){(n=Li(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"===typeof r){var a=t.value;n.payload=function(){return r(a)},n.callback=function(){ps(0,t)}}var i=e.stateNode;return null!==i&&"function"===typeof i.componentDidCatch&&(n.callback=function(){ps(0,t),"function"!==typeof r&&(null===Wl?Wl=new Set([this]):Wl.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function fs(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new ms;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(a.add(n),e=wc.bind(null,e,t,n),t.then(e,e))}function bs(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function Es(e,t,n,r,a){return 0===(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Li(-1,1)).tag=2,Pi(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=a,e)}var ys=T.ReactCurrentOwner,Ts=!1;function Ss(e,t,n,r){t.child=null===e?Zi(t,null,n,r):Yi(t,e.child,n,r)}function vs(e,t,n,r,a){n=n.render;var i=t.ref;return ki(t,a),r=ko(e,t,n,r,i,a),n=wo(),null===e||Ts?(ai&&n&&ei(t),t.flags|=1,Ss(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Vs(e,t,a))}function As(e,t,n,r,a){if(null===e){var i=n.type;return"function"!==typeof i||Oc(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Pc(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,ks(e,t,i,r,a))}if(i=e.child,0===(e.lanes&a)){var o=i.memoizedProps;if((n=null!==(n=n.compare)?n:lr)(o,r)&&e.ref===t.ref)return Vs(e,t,a)}return t.flags|=1,(e=Lc(i,r)).ref=t.ref,e.return=t,t.child=e}function ks(e,t,n,r,a){if(null!==e){var i=e.memoizedProps;if(lr(i,r)&&e.ref===t.ref){if(Ts=!1,t.pendingProps=r=i,0===(e.lanes&a))return t.lanes=e.lanes,Vs(e,t,a);0!==(131072&e.flags)&&(Ts=!0)}}return Cs(e,t,n,r,a)}function ws(e,t,n){var r=t.pendingProps,a=r.children,i=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0===(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},_a(Ll,Ol),Ol|=n;else{if(0===(1073741824&n))return e=null!==i?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,_a(Ll,Ol),Ol|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==i?i.baseLanes:n,_a(Ll,Ol),Ol|=r}else null!==i?(r=i.baseLanes|n,t.memoizedState=null):r=n,_a(Ll,Ol),Ol|=r;return Ss(e,t,a,n),t.child}function _s(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Cs(e,t,n,r,a){var i=Oa(n)?xa:Na.current;return i=Ra(t,i),ki(t,a),n=ko(e,t,n,r,i,a),r=wo(),null===e||Ts?(ai&&r&&ei(t),t.flags|=1,Ss(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Vs(e,t,a))}function Ns(e,t,n,r,a){if(Oa(n)){var i=!0;Ma(t)}else i=!1;if(ki(t,a),null===t.stateNode)$s(e,t),$i(t,n,r),ji(t,n,r,a),r=!0;else if(null===e){var o=t.stateNode,s=t.memoizedProps;o.props=s;var l=o.context,c=n.contextType;"object"===typeof c&&null!==c?c=wi(c):c=Ra(t,c=Oa(n)?xa:Na.current);var u=n.getDerivedStateFromProps,d="function"===typeof u||"function"===typeof o.getSnapshotBeforeUpdate;d||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(s!==r||l!==c)&&Vi(t,o,r,c),xi=!1;var p=t.memoizedState;o.state=p,Fi(t,r,o,a),l=t.memoizedState,s!==r||p!==l||Ia.current||xi?("function"===typeof u&&(Gi(t,n,u,r),l=t.memoizedState),(s=xi||zi(t,n,s,r,p,l,c))?(d||"function"!==typeof o.UNSAFE_componentWillMount&&"function"!==typeof o.componentWillMount||("function"===typeof o.componentWillMount&&o.componentWillMount(),"function"===typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"===typeof o.componentDidMount&&(t.flags|=4194308)):("function"===typeof o.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),o.props=r,o.state=l,o.context=c,r=s):("function"===typeof o.componentDidMount&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,Oi(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:fi(t.type,s),o.props=c,d=t.pendingProps,p=o.context,"object"===typeof(l=n.contextType)&&null!==l?l=wi(l):l=Ra(t,l=Oa(n)?xa:Na.current);var m=n.getDerivedStateFromProps;(u="function"===typeof m||"function"===typeof o.getSnapshotBeforeUpdate)||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(s!==d||p!==l)&&Vi(t,o,r,l),xi=!1,p=t.memoizedState,o.state=p,Fi(t,r,o,a);var g=t.memoizedState;s!==d||p!==g||Ia.current||xi?("function"===typeof m&&(Gi(t,n,m,r),g=t.memoizedState),(c=xi||zi(t,n,c,r,p,g,l)||!1)?(u||"function"!==typeof o.UNSAFE_componentWillUpdate&&"function"!==typeof o.componentWillUpdate||("function"===typeof o.componentWillUpdate&&o.componentWillUpdate(r,g,l),"function"===typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,g,l)),"function"===typeof o.componentDidUpdate&&(t.flags|=4),"function"===typeof o.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!==typeof o.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=g),o.props=r,o.state=g,o.context=l,r=c):("function"!==typeof o.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Is(e,t,n,r,i,a)}function Is(e,t,n,r,a,i){_s(e,t);var o=0!==(128&t.flags);if(!r&&!o)return a&&Fa(t,n,!1),Vs(e,t,i);r=t.stateNode,ys.current=t;var s=o&&"function"!==typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&o?(t.child=Yi(t,e.child,null,i),t.child=Yi(t,null,s,i)):Ss(e,t,s,i),t.memoizedState=r.state,a&&Fa(t,n,!0),t.child}function xs(e){var t=e.stateNode;t.pendingContext?Pa(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Pa(0,t.context,!1),ro(e,t.containerInfo)}function Rs(e,t,n,r,a){return mi(),gi(a),t.flags|=256,Ss(e,t,n,r),t.child}var Os,Ls,Ps,Ds={dehydrated:null,treeContext:null,retryLane:0};function Ms(e){return{baseLanes:e,cachePool:null,transitions:null}}function Fs(e,t,n){var r,a=t.pendingProps,o=so.current,s=!1,l=0!==(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&0!==(2&o)),r?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(o|=1),_a(so,1&o),null===e)return ci(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0===(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(l=a.children,e=a.fallback,s?(a=t.mode,s=t.child,l={mode:"hidden",children:l},0===(1&a)&&null!==s?(s.childLanes=0,s.pendingProps=l):s=Mc(l,a,0,null),e=Dc(e,a,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Ms(n),t.memoizedState=Ds,e):Us(t,l));if(null!==(o=e.memoizedState)&&null!==(r=o.dehydrated))return function(e,t,n,r,a,o,s){if(n)return 256&t.flags?(t.flags&=-257,Bs(e,t,s,r=ds(Error(i(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(o=r.fallback,a=t.mode,r=Mc({mode:"visible",children:r.children},a,0,null),(o=Dc(o,a,s,null)).flags|=2,r.return=t,o.return=t,r.sibling=o,t.child=r,0!==(1&t.mode)&&Yi(t,e.child,null,s),t.child.memoizedState=Ms(s),t.memoizedState=Ds,o);if(0===(1&t.mode))return Bs(e,t,s,null);if("$!"===a.data){if(r=a.nextSibling&&a.nextSibling.dataset)var l=r.dgst;return r=l,Bs(e,t,s,r=ds(o=Error(i(419)),r,void 0))}if(l=0!==(s&e.childLanes),Ts||l){if(null!==(r=Il)){switch(s&-s){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}0!==(a=0!==(a&(r.suspendedLanes|s))?0:a)&&a!==o.retryLane&&(o.retryLane=a,Ii(e,a),nc(r,e,a,-1))}return hc(),Bs(e,t,s,r=ds(Error(i(421))))}return"$?"===a.data?(t.flags|=128,t.child=e.child,t=Cc.bind(null,e),a._reactRetry=t,null):(e=o.treeContext,ri=ca(a.nextSibling),ni=t,ai=!0,ii=null,null!==e&&(qa[Ka++]=Ya,qa[Ka++]=Za,qa[Ka++]=Xa,Ya=e.id,Za=e.overflow,Xa=t),(t=Us(t,r.children)).flags|=4096,t)}(e,t,l,a,r,o,n);if(s){s=a.fallback,l=t.mode,r=(o=e.child).sibling;var c={mode:"hidden",children:a.children};return 0===(1&l)&&t.child!==o?((a=t.child).childLanes=0,a.pendingProps=c,t.deletions=null):(a=Lc(o,c)).subtreeFlags=14680064&o.subtreeFlags,null!==r?s=Lc(r,s):(s=Dc(s,l,n,null)).flags|=2,s.return=t,a.return=t,a.sibling=s,t.child=a,a=s,s=t.child,l=null===(l=e.child.memoizedState)?Ms(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~n,t.memoizedState=Ds,a}return e=(s=e.child).sibling,a=Lc(s,{mode:"visible",children:a.children}),0===(1&t.mode)&&(a.lanes=n),a.return=t,a.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=a,t.memoizedState=null,a}function Us(e,t){return(t=Mc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Bs(e,t,n,r){return null!==r&&gi(r),Yi(t,e.child,null,n),(e=Us(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Gs(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Ai(e.return,t,n)}function Hs(e,t,n,r,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a)}function zs(e,t,n){var r=t.pendingProps,a=r.revealOrder,i=r.tail;if(Ss(e,t,r.children,n),0!==(2&(r=so.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!==(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Gs(e,n,t);else if(19===e.tag)Gs(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(_a(so,r),0===(1&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===lo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),Hs(t,!1,a,n,i);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===lo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}Hs(t,!0,n,null,i);break;case"together":Hs(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function $s(e,t){0===(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Vs(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ml|=t.lanes,0===(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Lc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Lc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function js(e,t){if(!ai)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ws(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=14680064&a.subtreeFlags,r|=14680064&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function qs(e,t,n){var r=t.pendingProps;switch(ti(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ws(t),null;case 1:case 17:return Oa(t.type)&&La(),Ws(t),null;case 3:return r=t.stateNode,ao(),wa(Ia),wa(Na),uo(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(di(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0===(256&t.flags)||(t.flags|=1024,null!==ii&&(oc(ii),ii=null))),Ws(t),null;case 5:oo(t);var a=no(to.current);if(n=t.type,null!==e&&null!=t.stateNode)Ls(e,t,n,r),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(i(166));return Ws(t),null}if(e=no(Ji.current),di(t)){r=t.stateNode,n=t.type;var o=t.memoizedProps;switch(r[pa]=t,r[ma]=o,e=0!==(1&t.mode),n){case"dialog":Br("cancel",r),Br("close",r);break;case"iframe":case"object":case"embed":Br("load",r);break;case"video":case"audio":for(a=0;a<Dr.length;a++)Br(Dr[a],r);break;case"source":Br("error",r);break;case"img":case"image":case"link":Br("error",r),Br("load",r);break;case"details":Br("toggle",r);break;case"input":Y(r,o),Br("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!o.multiple},Br("invalid",r);break;case"textarea":ae(r,o),Br("invalid",r)}for(var l in Ee(n,o),a=null,o)if(o.hasOwnProperty(l)){var c=o[l];"children"===l?"string"===typeof c?r.textContent!==c&&(!0!==o.suppressHydrationWarning&&Qr(r.textContent,c,e),a=["children",c]):"number"===typeof c&&r.textContent!==""+c&&(!0!==o.suppressHydrationWarning&&Qr(r.textContent,c,e),a=["children",""+c]):s.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&Br("scroll",r)}switch(n){case"input":W(r),J(r,o,!0);break;case"textarea":W(r),oe(r);break;case"select":case"option":break;default:"function"===typeof o.onClick&&(r.onclick=Jr)}r=a,t.updateQueue=r,null!==r&&(t.flags|=4)}else{l=9===a.nodeType?a:a.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=se(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"===typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[pa]=t,e[ma]=r,Os(e,t),t.stateNode=e;e:{switch(l=ye(n,r),n){case"dialog":Br("cancel",e),Br("close",e),a=r;break;case"iframe":case"object":case"embed":Br("load",e),a=r;break;case"video":case"audio":for(a=0;a<Dr.length;a++)Br(Dr[a],e);a=r;break;case"source":Br("error",e),a=r;break;case"img":case"image":case"link":Br("error",e),Br("load",e),a=r;break;case"details":Br("toggle",e),a=r;break;case"input":Y(e,r),a=X(e,r),Br("invalid",e);break;case"option":default:a=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=F({},r,{value:void 0}),Br("invalid",e);break;case"textarea":ae(e,r),a=re(e,r),Br("invalid",e)}for(o in Ee(n,a),c=a)if(c.hasOwnProperty(o)){var u=c[o];"style"===o?fe(e,u):"dangerouslySetInnerHTML"===o?null!=(u=u?u.__html:void 0)&&de(e,u):"children"===o?"string"===typeof u?("textarea"!==n||""!==u)&&pe(e,u):"number"===typeof u&&pe(e,""+u):"suppressContentEditableWarning"!==o&&"suppressHydrationWarning"!==o&&"autoFocus"!==o&&(s.hasOwnProperty(o)?null!=u&&"onScroll"===o&&Br("scroll",e):null!=u&&y(e,o,u,l))}switch(n){case"input":W(e),J(e,r,!1);break;case"textarea":W(e),oe(e);break;case"option":null!=r.value&&e.setAttribute("value",""+V(r.value));break;case"select":e.multiple=!!r.multiple,null!=(o=r.value)?ne(e,!!r.multiple,o,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"===typeof a.onClick&&(e.onclick=Jr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Ws(t),null;case 6:if(e&&null!=t.stateNode)Ps(0,t,e.memoizedProps,r);else{if("string"!==typeof r&&null===t.stateNode)throw Error(i(166));if(n=no(to.current),no(Ji.current),di(t)){if(r=t.stateNode,n=t.memoizedProps,r[pa]=t,(o=r.nodeValue!==n)&&null!==(e=ni))switch(e.tag){case 3:Qr(r.nodeValue,n,0!==(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Qr(r.nodeValue,n,0!==(1&e.mode))}o&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[pa]=t,t.stateNode=r}return Ws(t),null;case 13:if(wa(so),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(ai&&null!==ri&&0!==(1&t.mode)&&0===(128&t.flags))pi(),mi(),t.flags|=98560,o=!1;else if(o=di(t),null!==r&&null!==r.dehydrated){if(null===e){if(!o)throw Error(i(318));if(!(o=null!==(o=t.memoizedState)?o.dehydrated:null))throw Error(i(317));o[pa]=t}else mi(),0===(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Ws(t),o=!1}else null!==ii&&(oc(ii),ii=null),o=!0;if(!o)return 65536&t.flags?t:null}return 0!==(128&t.flags)?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,0!==(1&t.mode)&&(null===e||0!==(1&so.current)?0===Pl&&(Pl=3):hc())),null!==t.updateQueue&&(t.flags|=4),Ws(t),null);case 4:return ao(),null===e&&zr(t.stateNode.containerInfo),Ws(t),null;case 10:return vi(t.type._context),Ws(t),null;case 19:if(wa(so),null===(o=t.memoizedState))return Ws(t),null;if(r=0!==(128&t.flags),null===(l=o.rendering))if(r)js(o,!1);else{if(0!==Pl||null!==e&&0!==(128&e.flags))for(e=t.child;null!==e;){if(null!==(l=lo(e))){for(t.flags|=128,js(o,!1),null!==(r=l.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(o=n).flags&=14680066,null===(l=o.alternate)?(o.childLanes=0,o.lanes=e,o.child=null,o.subtreeFlags=0,o.memoizedProps=null,o.memoizedState=null,o.updateQueue=null,o.dependencies=null,o.stateNode=null):(o.childLanes=l.childLanes,o.lanes=l.lanes,o.child=l.child,o.subtreeFlags=0,o.deletions=null,o.memoizedProps=l.memoizedProps,o.memoizedState=l.memoizedState,o.updateQueue=l.updateQueue,o.type=l.type,e=l.dependencies,o.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return _a(so,1&so.current|2),t.child}e=e.sibling}null!==o.tail&&Ze()>zl&&(t.flags|=128,r=!0,js(o,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=lo(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),js(o,!0),null===o.tail&&"hidden"===o.tailMode&&!l.alternate&&!ai)return Ws(t),null}else 2*Ze()-o.renderingStartTime>zl&&1073741824!==n&&(t.flags|=128,r=!0,js(o,!1),t.lanes=4194304);o.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=o.last)?n.sibling=l:t.child=l,o.last=l)}return null!==o.tail?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=Ze(),t.sibling=null,n=so.current,_a(so,r?1&n|2:1&n),t):(Ws(t),null);case 22:case 23:return dc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!==(1&t.mode)?0!==(1073741824&Ol)&&(Ws(t),6&t.subtreeFlags&&(t.flags|=8192)):Ws(t),null;case 24:case 25:return null}throw Error(i(156,t.tag))}function Ks(e,t){switch(ti(t),t.tag){case 1:return Oa(t.type)&&La(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return ao(),wa(Ia),wa(Na),uo(),0!==(65536&(e=t.flags))&&0===(128&e)?(t.flags=-65537&e|128,t):null;case 5:return oo(t),null;case 13:if(wa(so),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(i(340));mi()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return wa(so),null;case 4:return ao(),null;case 10:return vi(t.type._context),null;case 22:case 23:return dc(),null;default:return null}}Os=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ls=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,no(Ji.current);var i,o=null;switch(n){case"input":a=X(e,a),r=X(e,r),o=[];break;case"select":a=F({},a,{value:void 0}),r=F({},r,{value:void 0}),o=[];break;case"textarea":a=re(e,a),r=re(e,r),o=[];break;default:"function"!==typeof a.onClick&&"function"===typeof r.onClick&&(e.onclick=Jr)}for(u in Ee(n,r),n=null,a)if(!r.hasOwnProperty(u)&&a.hasOwnProperty(u)&&null!=a[u])if("style"===u){var l=a[u];for(i in l)l.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(s.hasOwnProperty(u)?o||(o=[]):(o=o||[]).push(u,null));for(u in r){var c=r[u];if(l=null!=a?a[u]:void 0,r.hasOwnProperty(u)&&c!==l&&(null!=c||null!=l))if("style"===u)if(l){for(i in l)!l.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&l[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(o||(o=[]),o.push(u,n)),n=c;else"dangerouslySetInnerHTML"===u?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(o=o||[]).push(u,c)):"children"===u?"string"!==typeof c&&"number"!==typeof c||(o=o||[]).push(u,""+c):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(s.hasOwnProperty(u)?(null!=c&&"onScroll"===u&&Br("scroll",e),o||l===c||(o=[])):(o=o||[]).push(u,c))}n&&(o=o||[]).push("style",n);var u=o;(t.updateQueue=u)&&(t.flags|=4)}},Ps=function(e,t,n,r){n!==r&&(t.flags|=4)};var Xs=!1,Ys=!1,Zs="function"===typeof WeakSet?WeakSet:Set,Qs=null;function Js(e,t){var n=e.ref;if(null!==n)if("function"===typeof n)try{n(null)}catch(r){kc(e,t,r)}else n.current=null}function el(e,t,n){try{n()}catch(r){kc(e,t,r)}}var tl=!1;function nl(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var a=r=r.next;do{if((a.tag&e)===e){var i=a.destroy;a.destroy=void 0,void 0!==i&&el(t,n,i)}a=a.next}while(a!==r)}}function rl(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function al(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"===typeof t?t(e):t.current=e}}function il(e){var t=e.alternate;null!==t&&(e.alternate=null,il(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[pa],delete t[ma],delete t[ha],delete t[fa],delete t[ba])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ol(e){return 5===e.tag||3===e.tag||4===e.tag}function sl(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||ol(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function ll(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!==(n=n._reactRootContainer)&&void 0!==n||null!==t.onclick||(t.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(ll(e,t,n),e=e.sibling;null!==e;)ll(e,t,n),e=e.sibling}function cl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling}var ul=null,dl=!1;function pl(e,t,n){for(n=n.child;null!==n;)ml(e,t,n),n=n.sibling}function ml(e,t,n){if(it&&"function"===typeof it.onCommitFiberUnmount)try{it.onCommitFiberUnmount(at,n)}catch(s){}switch(n.tag){case 5:Ys||Js(n,t);case 6:var r=ul,a=dl;ul=null,pl(e,t,n),dl=a,null!==(ul=r)&&(dl?(e=ul,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):ul.removeChild(n.stateNode));break;case 18:null!==ul&&(dl?(e=ul,n=n.stateNode,8===e.nodeType?la(e.parentNode,n):1===e.nodeType&&la(e,n),zt(e)):la(ul,n.stateNode));break;case 4:r=ul,a=dl,ul=n.stateNode.containerInfo,dl=!0,pl(e,t,n),ul=r,dl=a;break;case 0:case 11:case 14:case 15:if(!Ys&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){a=r=r.next;do{var i=a,o=i.destroy;i=i.tag,void 0!==o&&(0!==(2&i)||0!==(4&i))&&el(n,t,o),a=a.next}while(a!==r)}pl(e,t,n);break;case 1:if(!Ys&&(Js(n,t),"function"===typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){kc(n,t,s)}pl(e,t,n);break;case 21:pl(e,t,n);break;case 22:1&n.mode?(Ys=(r=Ys)||null!==n.memoizedState,pl(e,t,n),Ys=r):pl(e,t,n);break;default:pl(e,t,n)}}function gl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Zs),t.forEach((function(t){var r=Nc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function hl(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];try{var o=e,s=t,l=s;e:for(;null!==l;){switch(l.tag){case 5:ul=l.stateNode,dl=!1;break e;case 3:case 4:ul=l.stateNode.containerInfo,dl=!0;break e}l=l.return}if(null===ul)throw Error(i(160));ml(o,s,a),ul=null,dl=!1;var c=a.alternate;null!==c&&(c.return=null),a.return=null}catch(u){kc(a,t,u)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)fl(t,e),t=t.sibling}function fl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(hl(t,e),bl(e),4&r){try{nl(3,e,e.return),rl(3,e)}catch(f){kc(e,e.return,f)}try{nl(5,e,e.return)}catch(f){kc(e,e.return,f)}}break;case 1:hl(t,e),bl(e),512&r&&null!==n&&Js(n,n.return);break;case 5:if(hl(t,e),bl(e),512&r&&null!==n&&Js(n,n.return),32&e.flags){var a=e.stateNode;try{pe(a,"")}catch(f){kc(e,e.return,f)}}if(4&r&&null!=(a=e.stateNode)){var o=e.memoizedProps,s=null!==n?n.memoizedProps:o,l=e.type,c=e.updateQueue;if(e.updateQueue=null,null!==c)try{"input"===l&&"radio"===o.type&&null!=o.name&&Z(a,o),ye(l,s);var u=ye(l,o);for(s=0;s<c.length;s+=2){var d=c[s],p=c[s+1];"style"===d?fe(a,p):"dangerouslySetInnerHTML"===d?de(a,p):"children"===d?pe(a,p):y(a,d,p,u)}switch(l){case"input":Q(a,o);break;case"textarea":ie(a,o);break;case"select":var m=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!o.multiple;var g=o.value;null!=g?ne(a,!!o.multiple,g,!1):m!==!!o.multiple&&(null!=o.defaultValue?ne(a,!!o.multiple,o.defaultValue,!0):ne(a,!!o.multiple,o.multiple?[]:"",!1))}a[ma]=o}catch(f){kc(e,e.return,f)}}break;case 6:if(hl(t,e),bl(e),4&r){if(null===e.stateNode)throw Error(i(162));a=e.stateNode,o=e.memoizedProps;try{a.nodeValue=o}catch(f){kc(e,e.return,f)}}break;case 3:if(hl(t,e),bl(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{zt(t.containerInfo)}catch(f){kc(e,e.return,f)}break;case 4:default:hl(t,e),bl(e);break;case 13:hl(t,e),bl(e),8192&(a=e.child).flags&&(o=null!==a.memoizedState,a.stateNode.isHidden=o,!o||null!==a.alternate&&null!==a.alternate.memoizedState||(Hl=Ze())),4&r&&gl(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Ys=(u=Ys)||d,hl(t,e),Ys=u):hl(t,e),bl(e),8192&r){if(u=null!==e.memoizedState,(e.stateNode.isHidden=u)&&!d&&0!==(1&e.mode))for(Qs=e,d=e.child;null!==d;){for(p=Qs=d;null!==Qs;){switch(g=(m=Qs).child,m.tag){case 0:case 11:case 14:case 15:nl(4,m,m.return);break;case 1:Js(m,m.return);var h=m.stateNode;if("function"===typeof h.componentWillUnmount){r=m,n=m.return;try{t=r,h.props=t.memoizedProps,h.state=t.memoizedState,h.componentWillUnmount()}catch(f){kc(r,n,f)}}break;case 5:Js(m,m.return);break;case 22:if(null!==m.memoizedState){Sl(p);continue}}null!==g?(g.return=m,Qs=g):Sl(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{a=p.stateNode,u?"function"===typeof(o=a.style).setProperty?o.setProperty("display","none","important"):o.display="none":(l=p.stateNode,s=void 0!==(c=p.memoizedProps.style)&&null!==c&&c.hasOwnProperty("display")?c.display:null,l.style.display=he("display",s))}catch(f){kc(e,e.return,f)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=u?"":p.memoizedProps}catch(f){kc(e,e.return,f)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;d===p&&(d=null),p=p.return}d===p&&(d=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:hl(t,e),bl(e),4&r&&gl(e);case 21:}}function bl(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(ol(n)){var r=n;break e}n=n.return}throw Error(i(160))}switch(r.tag){case 5:var a=r.stateNode;32&r.flags&&(pe(a,""),r.flags&=-33),cl(e,sl(e),a);break;case 3:case 4:var o=r.stateNode.containerInfo;ll(e,sl(e),o);break;default:throw Error(i(161))}}catch(s){kc(e,e.return,s)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function El(e,t,n){Qs=e,yl(e,t,n)}function yl(e,t,n){for(var r=0!==(1&e.mode);null!==Qs;){var a=Qs,i=a.child;if(22===a.tag&&r){var o=null!==a.memoizedState||Xs;if(!o){var s=a.alternate,l=null!==s&&null!==s.memoizedState||Ys;s=Xs;var c=Ys;if(Xs=o,(Ys=l)&&!c)for(Qs=a;null!==Qs;)l=(o=Qs).child,22===o.tag&&null!==o.memoizedState?vl(a):null!==l?(l.return=o,Qs=l):vl(a);for(;null!==i;)Qs=i,yl(i,t,n),i=i.sibling;Qs=a,Xs=s,Ys=c}Tl(e)}else 0!==(8772&a.subtreeFlags)&&null!==i?(i.return=a,Qs=i):Tl(e)}}function Tl(e){for(;null!==Qs;){var t=Qs;if(0!==(8772&t.flags)){var n=t.alternate;try{if(0!==(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Ys||rl(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Ys)if(null===n)r.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:fi(t.type,n.memoizedProps);r.componentDidUpdate(a,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var o=t.updateQueue;null!==o&&Ui(t,o,r);break;case 3:var s=t.updateQueue;if(null!==s){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Ui(t,s,n)}break;case 5:var l=t.stateNode;if(null===n&&4&t.flags){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var u=t.alternate;if(null!==u){var d=u.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&zt(p)}}}break;default:throw Error(i(163))}Ys||512&t.flags&&al(t)}catch(m){kc(t,t.return,m)}}if(t===e){Qs=null;break}if(null!==(n=t.sibling)){n.return=t.return,Qs=n;break}Qs=t.return}}function Sl(e){for(;null!==Qs;){var t=Qs;if(t===e){Qs=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Qs=n;break}Qs=t.return}}function vl(e){for(;null!==Qs;){var t=Qs;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{rl(4,t)}catch(l){kc(t,n,l)}break;case 1:var r=t.stateNode;if("function"===typeof r.componentDidMount){var a=t.return;try{r.componentDidMount()}catch(l){kc(t,a,l)}}var i=t.return;try{al(t)}catch(l){kc(t,i,l)}break;case 5:var o=t.return;try{al(t)}catch(l){kc(t,o,l)}}}catch(l){kc(t,t.return,l)}if(t===e){Qs=null;break}var s=t.sibling;if(null!==s){s.return=t.return,Qs=s;break}Qs=t.return}}var Al,kl=Math.ceil,wl=T.ReactCurrentDispatcher,_l=T.ReactCurrentOwner,Cl=T.ReactCurrentBatchConfig,Nl=0,Il=null,xl=null,Rl=0,Ol=0,Ll=ka(0),Pl=0,Dl=null,Ml=0,Fl=0,Ul=0,Bl=null,Gl=null,Hl=0,zl=1/0,$l=null,Vl=!1,jl=null,Wl=null,ql=!1,Kl=null,Xl=0,Yl=0,Zl=null,Ql=-1,Jl=0;function ec(){return 0!==(6&Nl)?Ze():-1!==Ql?Ql:Ql=Ze()}function tc(e){return 0===(1&e.mode)?1:0!==(2&Nl)&&0!==Rl?Rl&-Rl:null!==hi.transition?(0===Jl&&(Jl=ht()),Jl):0!==(e=yt)?e:e=void 0===(e=window.event)?16:Yt(e.type)}function nc(e,t,n,r){if(50<Yl)throw Yl=0,Zl=null,Error(i(185));bt(e,n,r),0!==(2&Nl)&&e===Il||(e===Il&&(0===(2&Nl)&&(Fl|=n),4===Pl&&sc(e,Rl)),rc(e,r),1===n&&0===Nl&&0===(1&t.mode)&&(zl=Ze()+500,Ba&&za()))}function rc(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,i=e.pendingLanes;0<i;){var o=31-ot(i),s=1<<o,l=a[o];-1===l?0!==(s&n)&&0===(s&r)||(a[o]=mt(s,t)):l<=t&&(e.expiredLanes|=s),i&=~s}}(e,t);var r=pt(e,e===Il?Rl:0);if(0===r)null!==n&&Ke(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Ke(n),1===t)0===e.tag?function(e){Ba=!0,Ha(e)}(lc.bind(null,e)):Ha(lc.bind(null,e)),oa((function(){0===(6&Nl)&&za()})),n=null;else{switch(Tt(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=Ic(n,ac.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function ac(e,t){if(Ql=-1,Jl=0,0!==(6&Nl))throw Error(i(327));var n=e.callbackNode;if(vc()&&e.callbackNode!==n)return null;var r=pt(e,e===Il?Rl:0);if(0===r)return null;if(0!==(30&r)||0!==(r&e.expiredLanes)||t)t=fc(e,r);else{t=r;var a=Nl;Nl|=2;var o=gc();for(Il===e&&Rl===t||($l=null,zl=Ze()+500,pc(e,t));;)try{Ec();break}catch(l){mc(e,l)}Si(),wl.current=o,Nl=a,null!==xl?t=0:(Il=null,Rl=0,t=Pl)}if(0!==t){if(2===t&&(0!==(a=gt(e))&&(r=a,t=ic(e,a))),1===t)throw n=Dl,pc(e,0),sc(e,r),rc(e,Ze()),n;if(6===t)sc(e,r);else{if(a=e.current.alternate,0===(30&r)&&!function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var a=n[r],i=a.getSnapshot;a=a.value;try{if(!sr(i(),a))return!1}catch(s){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(a)&&(2===(t=fc(e,r))&&(0!==(o=gt(e))&&(r=o,t=ic(e,o))),1===t))throw n=Dl,pc(e,0),sc(e,r),rc(e,Ze()),n;switch(e.finishedWork=a,e.finishedLanes=r,t){case 0:case 1:throw Error(i(345));case 2:case 5:Sc(e,Gl,$l);break;case 3:if(sc(e,r),(130023424&r)===r&&10<(t=Hl+500-Ze())){if(0!==pt(e,0))break;if(((a=e.suspendedLanes)&r)!==r){ec(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=ra(Sc.bind(null,e,Gl,$l),t);break}Sc(e,Gl,$l);break;case 4:if(sc(e,r),(4194240&r)===r)break;for(t=e.eventTimes,a=-1;0<r;){var s=31-ot(r);o=1<<s,(s=t[s])>a&&(a=s),r&=~o}if(r=a,10<(r=(120>(r=Ze()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*kl(r/1960))-r)){e.timeoutHandle=ra(Sc.bind(null,e,Gl,$l),r);break}Sc(e,Gl,$l);break;default:throw Error(i(329))}}}return rc(e,Ze()),e.callbackNode===n?ac.bind(null,e):null}function ic(e,t){var n=Bl;return e.current.memoizedState.isDehydrated&&(pc(e,t).flags|=256),2!==(e=fc(e,t))&&(t=Gl,Gl=n,null!==t&&oc(t)),e}function oc(e){null===Gl?Gl=e:Gl.push.apply(Gl,e)}function sc(e,t){for(t&=~Ul,t&=~Fl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-ot(t),r=1<<n;e[n]=-1,t&=~r}}function lc(e){if(0!==(6&Nl))throw Error(i(327));vc();var t=pt(e,0);if(0===(1&t))return rc(e,Ze()),null;var n=fc(e,t);if(0!==e.tag&&2===n){var r=gt(e);0!==r&&(t=r,n=ic(e,r))}if(1===n)throw n=Dl,pc(e,0),sc(e,t),rc(e,Ze()),n;if(6===n)throw Error(i(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Sc(e,Gl,$l),rc(e,Ze()),null}function cc(e,t){var n=Nl;Nl|=1;try{return e(t)}finally{0===(Nl=n)&&(zl=Ze()+500,Ba&&za())}}function uc(e){null!==Kl&&0===Kl.tag&&0===(6&Nl)&&vc();var t=Nl;Nl|=1;var n=Cl.transition,r=yt;try{if(Cl.transition=null,yt=1,e)return e()}finally{yt=r,Cl.transition=n,0===(6&(Nl=t))&&za()}}function dc(){Ol=Ll.current,wa(Ll)}function pc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,aa(n)),null!==xl)for(n=xl.return;null!==n;){var r=n;switch(ti(r),r.tag){case 1:null!==(r=r.type.childContextTypes)&&void 0!==r&&La();break;case 3:ao(),wa(Ia),wa(Na),uo();break;case 5:oo(r);break;case 4:ao();break;case 13:case 19:wa(so);break;case 10:vi(r.type._context);break;case 22:case 23:dc()}n=n.return}if(Il=e,xl=e=Lc(e.current,null),Rl=Ol=t,Pl=0,Dl=null,Ul=Fl=Ml=0,Gl=Bl=null,null!==_i){for(t=0;t<_i.length;t++)if(null!==(r=(n=_i[t]).interleaved)){n.interleaved=null;var a=r.next,i=n.pending;if(null!==i){var o=i.next;i.next=a,r.next=o}n.pending=r}_i=null}return e}function mc(e,t){for(;;){var n=xl;try{if(Si(),po.current=os,Eo){for(var r=ho.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}Eo=!1}if(go=0,bo=fo=ho=null,yo=!1,To=0,_l.current=null,null===n||null===n.return){Pl=1,Dl=t,xl=null;break}e:{var o=e,s=n.return,l=n,c=t;if(t=Rl,l.flags|=32768,null!==c&&"object"===typeof c&&"function"===typeof c.then){var u=c,d=l,p=d.tag;if(0===(1&d.mode)&&(0===p||11===p||15===p)){var m=d.alternate;m?(d.updateQueue=m.updateQueue,d.memoizedState=m.memoizedState,d.lanes=m.lanes):(d.updateQueue=null,d.memoizedState=null)}var g=bs(s);if(null!==g){g.flags&=-257,Es(g,s,l,0,t),1&g.mode&&fs(o,u,t),c=u;var h=(t=g).updateQueue;if(null===h){var f=new Set;f.add(c),t.updateQueue=f}else h.add(c);break e}if(0===(1&t)){fs(o,u,t),hc();break e}c=Error(i(426))}else if(ai&&1&l.mode){var b=bs(s);if(null!==b){0===(65536&b.flags)&&(b.flags|=256),Es(b,s,l,0,t),gi(us(c,l));break e}}o=c=us(c,l),4!==Pl&&(Pl=2),null===Bl?Bl=[o]:Bl.push(o),o=s;do{switch(o.tag){case 3:o.flags|=65536,t&=-t,o.lanes|=t,Mi(o,gs(0,c,t));break e;case 1:l=c;var E=o.type,y=o.stateNode;if(0===(128&o.flags)&&("function"===typeof E.getDerivedStateFromError||null!==y&&"function"===typeof y.componentDidCatch&&(null===Wl||!Wl.has(y)))){o.flags|=65536,t&=-t,o.lanes|=t,Mi(o,hs(o,l,t));break e}}o=o.return}while(null!==o)}Tc(n)}catch(T){t=T,xl===n&&null!==n&&(xl=n=n.return);continue}break}}function gc(){var e=wl.current;return wl.current=os,null===e?os:e}function hc(){0!==Pl&&3!==Pl&&2!==Pl||(Pl=4),null===Il||0===(268435455&Ml)&&0===(268435455&Fl)||sc(Il,Rl)}function fc(e,t){var n=Nl;Nl|=2;var r=gc();for(Il===e&&Rl===t||($l=null,pc(e,t));;)try{bc();break}catch(a){mc(e,a)}if(Si(),Nl=n,wl.current=r,null!==xl)throw Error(i(261));return Il=null,Rl=0,Pl}function bc(){for(;null!==xl;)yc(xl)}function Ec(){for(;null!==xl&&!Xe();)yc(xl)}function yc(e){var t=Al(e.alternate,e,Ol);e.memoizedProps=e.pendingProps,null===t?Tc(e):xl=t,_l.current=null}function Tc(e){var t=e;do{var n=t.alternate;if(e=t.return,0===(32768&t.flags)){if(null!==(n=qs(n,t,Ol)))return void(xl=n)}else{if(null!==(n=Ks(n,t)))return n.flags&=32767,void(xl=n);if(null===e)return Pl=6,void(xl=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(xl=t);xl=t=e}while(null!==t);0===Pl&&(Pl=5)}function Sc(e,t,n){var r=yt,a=Cl.transition;try{Cl.transition=null,yt=1,function(e,t,n,r){do{vc()}while(null!==Kl);if(0!==(6&Nl))throw Error(i(327));n=e.finishedWork;var a=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null,e.callbackPriority=0;var o=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var a=31-ot(n),i=1<<a;t[a]=0,r[a]=-1,e[a]=-1,n&=~i}}(e,o),e===Il&&(xl=Il=null,Rl=0),0===(2064&n.subtreeFlags)&&0===(2064&n.flags)||ql||(ql=!0,Ic(tt,(function(){return vc(),null}))),o=0!==(15990&n.flags),0!==(15990&n.subtreeFlags)||o){o=Cl.transition,Cl.transition=null;var s=yt;yt=1;var l=Nl;Nl|=4,_l.current=null,function(e,t){if(ea=Vt,mr(e=pr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch(S){n=null;break e}var s=0,l=-1,c=-1,u=0,d=0,p=e,m=null;t:for(;;){for(var g;p!==n||0!==a&&3!==p.nodeType||(l=s+a),p!==o||0!==r&&3!==p.nodeType||(c=s+r),3===p.nodeType&&(s+=p.nodeValue.length),null!==(g=p.firstChild);)m=p,p=g;for(;;){if(p===e)break t;if(m===n&&++u===a&&(l=s),m===o&&++d===r&&(c=s),null!==(g=p.nextSibling))break;m=(p=m).parentNode}p=g}n=-1===l||-1===c?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(ta={focusedElem:e,selectionRange:n},Vt=!1,Qs=t;null!==Qs;)if(e=(t=Qs).child,0!==(1028&t.subtreeFlags)&&null!==e)e.return=t,Qs=e;else for(;null!==Qs;){t=Qs;try{var h=t.alternate;if(0!==(1024&t.flags))switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==h){var f=h.memoizedProps,b=h.memoizedState,E=t.stateNode,y=E.getSnapshotBeforeUpdate(t.elementType===t.type?f:fi(t.type,f),b);E.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var T=t.stateNode.containerInfo;1===T.nodeType?T.textContent="":9===T.nodeType&&T.documentElement&&T.removeChild(T.documentElement);break;default:throw Error(i(163))}}catch(S){kc(t,t.return,S)}if(null!==(e=t.sibling)){e.return=t.return,Qs=e;break}Qs=t.return}h=tl,tl=!1}(e,n),fl(n,e),gr(ta),Vt=!!ea,ta=ea=null,e.current=n,El(n,e,a),Ye(),Nl=l,yt=s,Cl.transition=o}else e.current=n;if(ql&&(ql=!1,Kl=e,Xl=a),0===(o=e.pendingLanes)&&(Wl=null),function(e){if(it&&"function"===typeof it.onCommitFiberRoot)try{it.onCommitFiberRoot(at,e,void 0,128===(128&e.current.flags))}catch(t){}}(n.stateNode),rc(e,Ze()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)r((a=t[n]).value,{componentStack:a.stack,digest:a.digest});if(Vl)throw Vl=!1,e=jl,jl=null,e;0!==(1&Xl)&&0!==e.tag&&vc(),0!==(1&(o=e.pendingLanes))?e===Zl?Yl++:(Yl=0,Zl=e):Yl=0,za()}(e,t,n,r)}finally{Cl.transition=a,yt=r}return null}function vc(){if(null!==Kl){var e=Tt(Xl),t=Cl.transition,n=yt;try{if(Cl.transition=null,yt=16>e?16:e,null===Kl)var r=!1;else{if(e=Kl,Kl=null,Xl=0,0!==(6&Nl))throw Error(i(331));var a=Nl;for(Nl|=4,Qs=e.current;null!==Qs;){var o=Qs,s=o.child;if(0!==(16&Qs.flags)){var l=o.deletions;if(null!==l){for(var c=0;c<l.length;c++){var u=l[c];for(Qs=u;null!==Qs;){var d=Qs;switch(d.tag){case 0:case 11:case 15:nl(8,d,o)}var p=d.child;if(null!==p)p.return=d,Qs=p;else for(;null!==Qs;){var m=(d=Qs).sibling,g=d.return;if(il(d),d===u){Qs=null;break}if(null!==m){m.return=g,Qs=m;break}Qs=g}}}var h=o.alternate;if(null!==h){var f=h.child;if(null!==f){h.child=null;do{var b=f.sibling;f.sibling=null,f=b}while(null!==f)}}Qs=o}}if(0!==(2064&o.subtreeFlags)&&null!==s)s.return=o,Qs=s;else e:for(;null!==Qs;){if(0!==(2048&(o=Qs).flags))switch(o.tag){case 0:case 11:case 15:nl(9,o,o.return)}var E=o.sibling;if(null!==E){E.return=o.return,Qs=E;break e}Qs=o.return}}var y=e.current;for(Qs=y;null!==Qs;){var T=(s=Qs).child;if(0!==(2064&s.subtreeFlags)&&null!==T)T.return=s,Qs=T;else e:for(s=y;null!==Qs;){if(0!==(2048&(l=Qs).flags))try{switch(l.tag){case 0:case 11:case 15:rl(9,l)}}catch(v){kc(l,l.return,v)}if(l===s){Qs=null;break e}var S=l.sibling;if(null!==S){S.return=l.return,Qs=S;break e}Qs=l.return}}if(Nl=a,za(),it&&"function"===typeof it.onPostCommitFiberRoot)try{it.onPostCommitFiberRoot(at,e)}catch(v){}r=!0}return r}finally{yt=n,Cl.transition=t}}return!1}function Ac(e,t,n){e=Pi(e,t=gs(0,t=us(n,t),1),1),t=ec(),null!==e&&(bt(e,1,t),rc(e,t))}function kc(e,t,n){if(3===e.tag)Ac(e,e,n);else for(;null!==t;){if(3===t.tag){Ac(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"===typeof t.type.getDerivedStateFromError||"function"===typeof r.componentDidCatch&&(null===Wl||!Wl.has(r))){t=Pi(t,e=hs(t,e=us(n,e),1),1),e=ec(),null!==t&&(bt(t,1,e),rc(t,e));break}}t=t.return}}function wc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ec(),e.pingedLanes|=e.suspendedLanes&n,Il===e&&(Rl&n)===n&&(4===Pl||3===Pl&&(130023424&Rl)===Rl&&500>Ze()-Hl?pc(e,0):Ul|=n),rc(e,t)}function _c(e,t){0===t&&(0===(1&e.mode)?t=1:(t=ut,0===(130023424&(ut<<=1))&&(ut=4194304)));var n=ec();null!==(e=Ii(e,t))&&(bt(e,t,n),rc(e,n))}function Cc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),_c(e,n)}function Nc(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(i(314))}null!==r&&r.delete(t),_c(e,n)}function Ic(e,t){return qe(e,t)}function xc(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Rc(e,t,n,r){return new xc(e,t,n,r)}function Oc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Lc(e,t){var n=e.alternate;return null===n?((n=Rc(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Pc(e,t,n,r,a,o){var s=2;if(r=e,"function"===typeof e)Oc(e)&&(s=1);else if("string"===typeof e)s=5;else e:switch(e){case A:return Dc(n.children,a,o,t);case k:s=8,a|=8;break;case w:return(e=Rc(12,n,t,2|a)).elementType=w,e.lanes=o,e;case I:return(e=Rc(13,n,t,a)).elementType=I,e.lanes=o,e;case x:return(e=Rc(19,n,t,a)).elementType=x,e.lanes=o,e;case L:return Mc(n,a,o,t);default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case _:s=10;break e;case C:s=9;break e;case N:s=11;break e;case R:s=14;break e;case O:s=16,r=null;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Rc(s,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Dc(e,t,n,r){return(e=Rc(7,e,r,t)).lanes=n,e}function Mc(e,t,n,r){return(e=Rc(22,e,r,t)).elementType=L,e.lanes=n,e.stateNode={isHidden:!1},e}function Fc(e,t,n){return(e=Rc(6,e,null,t)).lanes=n,e}function Uc(e,t,n){return(t=Rc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Bc(e,t,n,r,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ft(0),this.expirationTimes=ft(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ft(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function Gc(e,t,n,r,a,i,o,s,l){return e=new Bc(e,t,n,s,l),1===t?(t=1,!0===i&&(t|=8)):t=0,i=Rc(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ri(i),e}function Hc(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:v,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function zc(e){if(!e)return Ca;e:{if(ze(e=e._reactInternals)!==e||1!==e.tag)throw Error(i(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Oa(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(i(171))}if(1===e.tag){var n=e.type;if(Oa(n))return Da(e,n,t)}return t}function $c(e,t,n,r,a,i,o,s,l){return(e=Gc(n,r,!0,e,0,i,0,s,l)).context=zc(null),n=e.current,(i=Li(r=ec(),a=tc(n))).callback=void 0!==t&&null!==t?t:null,Pi(n,i,a),e.current.lanes=a,bt(e,a,r),rc(e,r),e}function Vc(e,t,n,r){var a=t.current,i=ec(),o=tc(a);return n=zc(n),null===t.context?t.context=n:t.pendingContext=n,(t=Li(i,o)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Pi(a,t,o))&&(nc(e,a,o,i),Di(e,a,o)),o}function jc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Wc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function qc(e,t){Wc(e,t),(e=e.alternate)&&Wc(e,t)}Al=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||Ia.current)Ts=!0;else{if(0===(e.lanes&n)&&0===(128&t.flags))return Ts=!1,function(e,t,n){switch(t.tag){case 3:xs(t),mi();break;case 5:io(t);break;case 1:Oa(t.type)&&Ma(t);break;case 4:ro(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,a=t.memoizedProps.value;_a(bi,r._currentValue),r._currentValue=a;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(_a(so,1&so.current),t.flags|=128,null):0!==(n&t.child.childLanes)?Fs(e,t,n):(_a(so,1&so.current),null!==(e=Vs(e,t,n))?e.sibling:null);_a(so,1&so.current);break;case 19:if(r=0!==(n&t.childLanes),0!==(128&e.flags)){if(r)return zs(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),_a(so,so.current),r)break;return null;case 22:case 23:return t.lanes=0,ws(e,t,n)}return Vs(e,t,n)}(e,t,n);Ts=0!==(131072&e.flags)}else Ts=!1,ai&&0!==(1048576&t.flags)&&Ja(t,Wa,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;$s(e,t),e=t.pendingProps;var a=Ra(t,Na.current);ki(t,n),a=ko(null,t,r,e,a,n);var o=wo();return t.flags|=1,"object"===typeof a&&null!==a&&"function"===typeof a.render&&void 0===a.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Oa(r)?(o=!0,Ma(t)):o=!1,t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,Ri(t),a.updater=Hi,t.stateNode=a,a._reactInternals=t,ji(t,r,e,n),t=Is(null,t,r,!0,o,n)):(t.tag=0,ai&&o&&ei(t),Ss(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch($s(e,t),e=t.pendingProps,r=(a=r._init)(r._payload),t.type=r,a=t.tag=function(e){if("function"===typeof e)return Oc(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===N)return 11;if(e===R)return 14}return 2}(r),e=fi(r,e),a){case 0:t=Cs(null,t,r,e,n);break e;case 1:t=Ns(null,t,r,e,n);break e;case 11:t=vs(null,t,r,e,n);break e;case 14:t=As(null,t,r,fi(r.type,e),n);break e}throw Error(i(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,Cs(e,t,r,a=t.elementType===r?a:fi(r,a),n);case 1:return r=t.type,a=t.pendingProps,Ns(e,t,r,a=t.elementType===r?a:fi(r,a),n);case 3:e:{if(xs(t),null===e)throw Error(i(387));r=t.pendingProps,a=(o=t.memoizedState).element,Oi(e,t),Fi(t,r,null,n);var s=t.memoizedState;if(r=s.element,o.isDehydrated){if(o={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=o,t.memoizedState=o,256&t.flags){t=Rs(e,t,r,n,a=us(Error(i(423)),t));break e}if(r!==a){t=Rs(e,t,r,n,a=us(Error(i(424)),t));break e}for(ri=ca(t.stateNode.containerInfo.firstChild),ni=t,ai=!0,ii=null,n=Zi(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(mi(),r===a){t=Vs(e,t,n);break e}Ss(e,t,r,n)}t=t.child}return t;case 5:return io(t),null===e&&ci(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,s=a.children,na(r,a)?s=null:null!==o&&na(r,o)&&(t.flags|=32),_s(e,t),Ss(e,t,s,n),t.child;case 6:return null===e&&ci(t),null;case 13:return Fs(e,t,n);case 4:return ro(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Yi(t,null,r,n):Ss(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,vs(e,t,r,a=t.elementType===r?a:fi(r,a),n);case 7:return Ss(e,t,t.pendingProps,n),t.child;case 8:case 12:return Ss(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,o=t.memoizedProps,s=a.value,_a(bi,r._currentValue),r._currentValue=s,null!==o)if(sr(o.value,s)){if(o.children===a.children&&!Ia.current){t=Vs(e,t,n);break e}}else for(null!==(o=t.child)&&(o.return=t);null!==o;){var l=o.dependencies;if(null!==l){s=o.child;for(var c=l.firstContext;null!==c;){if(c.context===r){if(1===o.tag){(c=Li(-1,n&-n)).tag=2;var u=o.updateQueue;if(null!==u){var d=(u=u.shared).pending;null===d?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}o.lanes|=n,null!==(c=o.alternate)&&(c.lanes|=n),Ai(o.return,n,t),l.lanes|=n;break}c=c.next}}else if(10===o.tag)s=o.type===t.type?null:o.child;else if(18===o.tag){if(null===(s=o.return))throw Error(i(341));s.lanes|=n,null!==(l=s.alternate)&&(l.lanes|=n),Ai(s,n,t),s=o.sibling}else s=o.child;if(null!==s)s.return=o;else for(s=o;null!==s;){if(s===t){s=null;break}if(null!==(o=s.sibling)){o.return=s.return,s=o;break}s=s.return}o=s}Ss(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,ki(t,n),r=r(a=wi(a)),t.flags|=1,Ss(e,t,r,n),t.child;case 14:return a=fi(r=t.type,t.pendingProps),As(e,t,r,a=fi(r.type,a),n);case 15:return ks(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:fi(r,a),$s(e,t),t.tag=1,Oa(r)?(e=!0,Ma(t)):e=!1,ki(t,n),$i(t,r,a),ji(t,r,a,n),Is(null,t,r,!0,e,n);case 19:return zs(e,t,n);case 22:return ws(e,t,n)}throw Error(i(156,t.tag))};var Kc="function"===typeof reportError?reportError:function(e){console.error(e)};function Xc(e){this._internalRoot=e}function Yc(e){this._internalRoot=e}function Zc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Qc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Jc(){}function eu(e,t,n,r,a){var i=n._reactRootContainer;if(i){var o=i;if("function"===typeof a){var s=a;a=function(){var e=jc(o);s.call(e)}}Vc(t,o,e,a)}else o=function(e,t,n,r,a){if(a){if("function"===typeof r){var i=r;r=function(){var e=jc(o);i.call(e)}}var o=$c(t,r,e,0,null,!1,0,"",Jc);return e._reactRootContainer=o,e[ga]=o.current,zr(8===e.nodeType?e.parentNode:e),uc(),o}for(;a=e.lastChild;)e.removeChild(a);if("function"===typeof r){var s=r;r=function(){var e=jc(l);s.call(e)}}var l=Gc(e,0,!1,null,0,!1,0,"",Jc);return e._reactRootContainer=l,e[ga]=l.current,zr(8===e.nodeType?e.parentNode:e),uc((function(){Vc(t,l,n,r)})),l}(n,t,e,a,r);return jc(o)}Yc.prototype.render=Xc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(i(409));Vc(e,t,null,null)},Yc.prototype.unmount=Xc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;uc((function(){Vc(null,e,null,null)})),t[ga]=null}},Yc.prototype.unstable_scheduleHydration=function(e){if(e){var t=kt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Lt.length&&0!==t&&t<Lt[n].priority;n++);Lt.splice(n,0,e),0===n&&Ft(e)}},St=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(Et(t,1|n),rc(t,Ze()),0===(6&Nl)&&(zl=Ze()+500,za()))}break;case 13:uc((function(){var t=Ii(e,1);if(null!==t){var n=ec();nc(t,e,1,n)}})),qc(e,1)}},vt=function(e){if(13===e.tag){var t=Ii(e,134217728);if(null!==t)nc(t,e,134217728,ec());qc(e,134217728)}},At=function(e){if(13===e.tag){var t=tc(e),n=Ii(e,t);if(null!==n)nc(n,e,t,ec());qc(e,t)}},kt=function(){return yt},wt=function(e,t){var n=yt;try{return yt=e,t()}finally{yt=n}},ve=function(e,t,n){switch(t){case"input":if(Q(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=Sa(r);if(!a)throw Error(i(90));q(r),Q(r,a)}}}break;case"textarea":ie(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Ne=cc,Ie=uc;var tu={usingClientEntryPoint:!1,Events:[ya,Ta,Sa,_e,Ce,cc]},nu={findFiberByHostInstance:Ea,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},ru={bundleType:nu.bundleType,version:nu.version,rendererPackageName:nu.rendererPackageName,rendererConfig:nu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:T.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=je(e))?null:e.stateNode},findFiberByHostInstance:nu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var au=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!au.isDisabled&&au.supportsFiber)try{at=au.inject(ru),it=au}catch(ue){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tu,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Zc(t))throw Error(i(200));return Hc(e,t,null,n)},t.createRoot=function(e,t){if(!Zc(e))throw Error(i(299));var n=!1,r="",a=Kc;return null!==t&&void 0!==t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(a=t.onRecoverableError)),t=Gc(e,1,!1,null,0,n,0,r,a),e[ga]=t.current,zr(8===e.nodeType?e.parentNode:e),new Xc(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"===typeof e.render)throw Error(i(188));throw e=Object.keys(e).join(","),Error(i(268,e))}return e=null===(e=je(t))?null:e.stateNode},t.flushSync=function(e){return uc(e)},t.hydrate=function(e,t,n){if(!Qc(t))throw Error(i(200));return eu(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Zc(e))throw Error(i(405));var r=null!=n&&n.hydratedSources||null,a=!1,o="",s=Kc;if(null!==n&&void 0!==n&&(!0===n.unstable_strictMode&&(a=!0),void 0!==n.identifierPrefix&&(o=n.identifierPrefix),void 0!==n.onRecoverableError&&(s=n.onRecoverableError)),t=$c(t,null,e,1,null!=n?n:null,a,0,o,s),e[ga]=t.current,zr(e),r)for(e=0;e<r.length;e++)a=(a=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Yc(t)},t.render=function(e,t,n){if(!Qc(t))throw Error(i(200));return eu(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Qc(e))throw Error(i(40));return!!e._reactRootContainer&&(uc((function(){eu(null,null,e,!1,(function(){e._reactRootContainer=null,e[ga]=null}))})),!0)},t.unstable_batchedUpdates=cc,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Qc(n))throw Error(i(200));if(null==e||void 0===e._reactInternals)throw Error(i(38));return eu(e,t,n,!1,r)},t.version="18.2.0-next-9e3b772b8-20220608"},1250:function(e,t,n){"use strict";var r=n(4164);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},4164:function(e,t,n){"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4463)},7574:function(e,t){"use strict";var n,r=Symbol.for("react.element"),a=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),c=Symbol.for("react.context"),u=Symbol.for("react.server_context"),d=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),m=Symbol.for("react.suspense_list"),g=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),f=Symbol.for("react.offscreen");function b(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case i:case s:case o:case p:case m:return e;default:switch(e=e&&e.$$typeof){case u:case c:case d:case h:case g:case l:return e;default:return t}}case a:return t}}}n=Symbol.for("react.module.reference"),t.ContextConsumer=c,t.ContextProvider=l,t.Element=r,t.ForwardRef=d,t.Fragment=i,t.Lazy=h,t.Memo=g,t.Portal=a,t.Profiler=s,t.StrictMode=o,t.Suspense=p,t.SuspenseList=m,t.isAsyncMode=function(){return!1},t.isConcurrentMode=function(){return!1},t.isContextConsumer=function(e){return b(e)===c},t.isContextProvider=function(e){return b(e)===l},t.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return b(e)===d},t.isFragment=function(e){return b(e)===i},t.isLazy=function(e){return b(e)===h},t.isMemo=function(e){return b(e)===g},t.isPortal=function(e){return b(e)===a},t.isProfiler=function(e){return b(e)===s},t.isStrictMode=function(e){return b(e)===o},t.isSuspense=function(e){return b(e)===p},t.isSuspenseList=function(e){return b(e)===m},t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===i||e===s||e===o||e===p||e===m||e===f||"object"===typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===g||e.$$typeof===l||e.$$typeof===c||e.$$typeof===d||e.$$typeof===n||void 0!==e.getModuleId)},t.typeOf=b},8599:function(e,t,n){"use strict";e.exports=n(7574)},8171:function(e,t,n){var r=n(1065);function a(e,t){var n,a=null;if(!e||"string"!==typeof e)return a;for(var i,o,s=r(e),l="function"===typeof t,c=0,u=s.length;c<u;c++)i=(n=s[c]).property,o=n.value,l?t(i,o,n):o&&(a||(a={}),a[i]=o);return a}e.exports=a,e.exports.default=a},6374:function(e,t,n){"use strict";var r=n(2791),a=Symbol.for("react.element"),i=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,s=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,i={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)o.call(t,r)&&!l.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===i[r]&&(i[r]=t[r]);return{$$typeof:a,type:e,key:c,ref:u,props:i,_owner:s.current}}t.Fragment=i,t.jsx=c,t.jsxs=c},9117:function(e,t){"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),m=Symbol.iterator;var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,f={};function b(e,t,n){this.props=e,this.context=t,this.refs=f,this.updater=n||g}function E(){}function y(e,t,n){this.props=e,this.context=t,this.refs=f,this.updater=n||g}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},E.prototype=b.prototype;var T=y.prototype=new E;T.constructor=y,h(T,b.prototype),T.isPureReactComponent=!0;var S=Array.isArray,v=Object.prototype.hasOwnProperty,A={current:null},k={key:!0,ref:!0,__self:!0,__source:!0};function w(e,t,r){var a,i={},o=null,s=null;if(null!=t)for(a in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(o=""+t.key),t)v.call(t,a)&&!k.hasOwnProperty(a)&&(i[a]=t[a]);var l=arguments.length-2;if(1===l)i.children=r;else if(1<l){for(var c=Array(l),u=0;u<l;u++)c[u]=arguments[u+2];i.children=c}if(e&&e.defaultProps)for(a in l=e.defaultProps)void 0===i[a]&&(i[a]=l[a]);return{$$typeof:n,type:e,key:o,ref:s,props:i,_owner:A.current}}function _(e){return"object"===typeof e&&null!==e&&e.$$typeof===n}var C=/\/+/g;function N(e,t){return"object"===typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function I(e,t,a,i,o){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case n:case r:l=!0}}if(l)return o=o(l=e),e=""===i?"."+N(l,0):i,S(o)?(a="",null!=e&&(a=e.replace(C,"$&/")+"/"),I(o,t,a,"",(function(e){return e}))):null!=o&&(_(o)&&(o=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(o,a+(!o.key||l&&l.key===o.key?"":(""+o.key).replace(C,"$&/")+"/")+e)),t.push(o)),1;if(l=0,i=""===i?".":i+":",S(e))for(var c=0;c<e.length;c++){var u=i+N(s=e[c],c);l+=I(s,t,a,u,o)}else if(u=function(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=m&&e[m]||e["@@iterator"])?e:null}(e),"function"===typeof u)for(e=u.call(e),c=0;!(s=e.next()).done;)l+=I(s=s.value,t,a,u=i+N(s,c++),o);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function x(e,t,n){if(null==e)return e;var r=[],a=0;return I(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function R(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var O={current:null},L={transition:null},P={ReactCurrentDispatcher:O,ReactCurrentBatchConfig:L,ReactCurrentOwner:A};t.Children={map:x,forEach:function(e,t,n){x(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return x(e,(function(){t++})),t},toArray:function(e){return x(e,(function(e){return e}))||[]},only:function(e){if(!_(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=a,t.Profiler=o,t.PureComponent=y,t.StrictMode=i,t.Suspense=u,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=P,t.cloneElement=function(e,t,r){if(null===e||void 0===e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var a=h({},e.props),i=e.key,o=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(o=t.ref,s=A.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)v.call(t,c)&&!k.hasOwnProperty(c)&&(a[c]=void 0===t[c]&&void 0!==l?l[c]:t[c])}var c=arguments.length-2;if(1===c)a.children=r;else if(1<c){l=Array(c);for(var u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}return{$$typeof:n,type:e.type,key:i,ref:o,props:a,_owner:s}},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=w,t.createFactory=function(e){var t=w.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=_,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:R}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=L.transition;L.transition={};try{e()}finally{L.transition=t}},t.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")},t.useCallback=function(e,t){return O.current.useCallback(e,t)},t.useContext=function(e){return O.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return O.current.useDeferredValue(e)},t.useEffect=function(e,t){return O.current.useEffect(e,t)},t.useId=function(){return O.current.useId()},t.useImperativeHandle=function(e,t,n){return O.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return O.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return O.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return O.current.useMemo(e,t)},t.useReducer=function(e,t,n){return O.current.useReducer(e,t,n)},t.useRef=function(e){return O.current.useRef(e)},t.useState=function(e){return O.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return O.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return O.current.useTransition()},t.version="18.2.0"},2791:function(e,t,n){"use strict";e.exports=n(9117)},184:function(e,t,n){"use strict";e.exports=n(6374)},8959:function(e,t,n){"use strict";var r="object"===typeof globalThis?globalThis:"object"===typeof self?self:"object"===typeof window?window:"object"===typeof n.g?n.g:{},a=function(){var e="Prism"in r,t=e?r.Prism:void 0;return function(){e?r.Prism=t:delete r.Prism;e=void 0,t=void 0}}();r.Prism={manual:!0,disableWorkerMessageHandler:!0};var i=n(6913),o=n(5434),s=n(3264),l=n(2357),c=n(9625),u=n(3052),d=n(7556);a();var p={}.hasOwnProperty;function m(){}m.prototype=s;var g=new m;function h(e){if("function"!==typeof e||!e.displayName)throw new Error("Expected `function` for `grammar`, got `"+e+"`");void 0===g.languages[e.displayName]&&e(g)}e.exports=g,g.highlight=function(e,t){var n,r=s.highlight;if("string"!==typeof e)throw new Error("Expected `string` for `value`, got `"+e+"`");if("Object"===g.util.type(t))n=t,t=null;else{if("string"!==typeof t)throw new Error("Expected `string` for `name`, got `"+t+"`");if(!p.call(g.languages,t))throw new Error("Unknown language: `"+t+"` is not registered");n=g.languages[t]}return r.call(this,e,n,t)},g.register=h,g.alias=function(e,t){var n,r,a,i,o=g.languages,s=e;t&&((s={})[e]=t);for(n in s)for(r=s[n],a=(r="string"===typeof r?[r]:r).length,i=-1;++i<a;)o[r[i]]=o[n]},g.registered=function(e){if("string"!==typeof e)throw new Error("Expected `string` for `language`, got `"+e+"`");return p.call(g.languages,e)},g.listLanguages=function(){var e,t=g.languages,n=[];for(e in t)p.call(t,e)&&"object"===typeof t[e]&&n.push(e);return n},h(l),h(c),h(u),h(d),g.util.encode=function(e){return e},g.Token.stringify=function(e,t,n){var r;if("string"===typeof e)return{type:"text",value:e};if("Array"===g.util.type(e))return function(e,t){var n,r=[],a=e.length,i=-1;for(;++i<a;)""!==(n=e[i])&&null!==n&&void 0!==n&&r.push(n);i=-1,a=r.length;for(;++i<a;)n=r[i],r[i]=g.Token.stringify(n,t,r);return r}(e,t);r={type:e.type,content:g.Token.stringify(e.content,t,n),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:n},e.alias&&(r.classes=r.classes.concat(e.alias));return g.hooks.run("wrap",r),i(r.tag+"."+r.classes.join("."),function(e){var t;for(t in e)e[t]=o(e[t]);return e}(r.attributes),r.content)}},9158:function(e,t,n){"use strict";var r=n(8959);e.exports=r,r.register(n(9743)),r.register(n(6887)),r.register(n(8081)),r.register(n(2677)),r.register(n(2239)),r.register(n(3306)),r.register(n(5001)),r.register(n(6748)),r.register(n(4556)),r.register(n(5775)),r.register(n(118)),r.register(n(9134)),r.register(n(4144)),r.register(n(7209)),r.register(n(4865)),r.register(n(2083)),r.register(n(6054)),r.register(n(476)),r.register(n(9894)),r.register(n(4291)),r.register(n(3981)),r.register(n(9730)),r.register(n(7033)),r.register(n(7867)),r.register(n(9607)),r.register(n(150)),r.register(n(3098)),r.register(n(4786)),r.register(n(6938)),r.register(n(9784)),r.register(n(2689)),r.register(n(6514)),r.register(n(25)),r.register(n(7501)),r.register(n(272)),r.register(n(943)),r.register(n(9785)),r.register(n(9529)),r.register(n(1915)),r.register(n(3549)),r.register(n(4732)),r.register(n(6522)),r.register(n(3723)),r.register(n(423)),r.register(n(8593)),r.register(n(7916)),r.register(n(3281)),r.register(n(9333)),r.register(n(3524)),r.register(n(9689)),r.register(n(691)),r.register(n(4704)),r.register(n(3818)),r.register(n(583)),r.register(n(5462)),r.register(n(1717)),r.register(n(6655)),r.register(n(9442)),r.register(n(6412)),r.register(n(8818)),r.register(n(3386)),r.register(n(7837)),r.register(n(9845)),r.register(n(6268)),r.register(n(4326)),r.register(n(8331)),r.register(n(3596)),r.register(n(3972)),r.register(n(4665)),r.register(n(865)),r.register(n(6168)),r.register(n(3207)),r.register(n(6175)),r.register(n(4988)),r.register(n(2727)),r.register(n(4037)),r.register(n(9770)),r.register(n(1987)),r.register(n(1505)),r.register(n(8403)),r.register(n(9124)),r.register(n(8495)),r.register(n(1019)),r.register(n(3666)),r.register(n(5120)),r.register(n(214)),r.register(n(1903)),r.register(n(288)),r.register(n(78)),r.register(n(8558)),r.register(n(8430)),r.register(n(7986)),r.register(n(7865)),r.register(n(4490)),r.register(n(9233)),r.register(n(6647)),r.register(n(8237)),r.register(n(9814)),r.register(n(8661)),r.register(n(5727)),r.register(n(7761)),r.register(n(6722)),r.register(n(1469)),r.register(n(8340)),r.register(n(8925)),r.register(n(3298)),r.register(n(3390)),r.register(n(7145)),r.register(n(4600)),r.register(n(3409)),r.register(n(4197)),r.register(n(3269)),r.register(n(5543)),r.register(n(8428)),r.register(n(9285)),r.register(n(1570)),r.register(n(9298)),r.register(n(32)),r.register(n(6044)),r.register(n(1408)),r.register(n(750)),r.register(n(2327)),r.register(n(837)),r.register(n(7778)),r.register(n(2117)),r.register(n(3228)),r.register(n(765)),r.register(n(1905)),r.register(n(6776)),r.register(n(8714)),r.register(n(8471)),r.register(n(2286)),r.register(n(6513)),r.register(n(5999)),r.register(n(9405)),r.register(n(9135)),r.register(n(382)),r.register(n(1146)),r.register(n(3807)),r.register(n(3062)),r.register(n(5467)),r.register(n(2112)),r.register(n(1343)),r.register(n(6759)),r.register(n(9987)),r.register(n(7589)),r.register(n(7932)),r.register(n(595)),r.register(n(93)),r.register(n(4234)),r.register(n(1102)),r.register(n(2172)),r.register(n(1337)),r.register(n(5638)),r.register(n(54)),r.register(n(1741)),r.register(n(2089)),r.register(n(5739)),r.register(n(8347)),r.register(n(9899)),r.register(n(2420)),r.register(n(2019)),r.register(n(2618)),r.register(n(8659)),r.register(n(6e3)),r.register(n(7190)),r.register(n(1465)),r.register(n(9263)),r.register(n(4974)),r.register(n(6296)),r.register(n(6778)),r.register(n(6792)),r.register(n(6478)),r.register(n(6806)),r.register(n(347)),r.register(n(7976)),r.register(n(7484)),r.register(n(3205)),r.register(n(1797)),r.register(n(7241)),r.register(n(7304)),r.register(n(7613)),r.register(n(7363)),r.register(n(7953)),r.register(n(4986)),r.register(n(4970)),r.register(n(5725)),r.register(n(7415)),r.register(n(9164)),r.register(n(4973)),r.register(n(1344)),r.register(n(9862)),r.register(n(354)),r.register(n(883)),r.register(n(3983)),r.register(n(2935)),r.register(n(5888)),r.register(n(9596)),r.register(n(6395)),r.register(n(7679)),r.register(n(2406)),r.register(n(2014)),r.register(n(548)),r.register(n(6023)),r.register(n(4005)),r.register(n(9982)),r.register(n(4184)),r.register(n(8228)),r.register(n(7937)),r.register(n(5728)),r.register(n(1528)),r.register(n(6326)),r.register(n(771)),r.register(n(4840)),r.register(n(1357)),r.register(n(7719)),r.register(n(2284)),r.register(n(1254)),r.register(n(6442)),r.register(n(2034)),r.register(n(9676)),r.register(n(9895)),r.register(n(3775)),r.register(n(5767)),r.register(n(9093)),r.register(n(8768)),r.register(n(8517)),r.register(n(7942)),r.register(n(4457)),r.register(n(7740)),r.register(n(4038)),r.register(n(4585)),r.register(n(692)),r.register(n(3171)),r.register(n(2257)),r.register(n(5559)),r.register(n(9547)),r.register(n(9338)),r.register(n(5515)),r.register(n(4207)),r.register(n(7492)),r.register(n(6453)),r.register(n(6686)),r.register(n(7369)),r.register(n(7191)),r.register(n(3089)),r.register(n(4411)),r.register(n(9669)),r.register(n(4773)),r.register(n(3210)),r.register(n(2613)),r.register(n(4317)),r.register(n(1927)),r.register(n(6845)),r.register(n(4941)),r.register(n(9803)),r.register(n(1107)),r.register(n(1413)),r.register(n(3555)),r.register(n(7117)),r.register(n(3244)),r.register(n(3673)),r.register(n(8953)),r.register(n(6747)),r.register(n(4211)),r.register(n(8832)),r.register(n(8186)),r.register(n(3679)),r.register(n(1752)),r.register(n(243)),r.register(n(5133)),r.register(n(2195)),r.register(n(3672))},9743:function(e){"use strict";function t(e){e.languages.abap={comment:/^\*.*/m,string:/(`|')(?:\\.|(?!\1)[^\\\r\n])*\1/,"string-template":{pattern:/([|}])(?:\\.|[^\\|{\r\n])*(?=[|{])/,lookbehind:!0,alias:"string"},"eol-comment":{pattern:/(^|\s)".*/m,lookbehind:!0,alias:"comment"},keyword:{pattern:/(\s|\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\/MM\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\/DD\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\/MM\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\/DD\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\b/i,lookbehind:!0},number:/\b\d+\b/,operator:{pattern:/(\s)(?:\*\*?|<[=>]?|>=?|\?=|[-+\/=])(?=\s)/,lookbehind:!0},"string-operator":{pattern:/(\s)&&?(?=\s)/,lookbehind:!0,alias:"keyword"},"token-operator":[{pattern:/(\w)(?:->?|=>|[~|{}])(?=\w)/,lookbehind:!0,alias:"punctuation"},{pattern:/[|{}]/,alias:"punctuation"}],punctuation:/[,.:()]/}}e.exports=t,t.displayName="abap",t.aliases=[]},6887:function(e){"use strict";function t(e){!function(e){var t="(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)";e.languages.abnf={comment:/;.*/,string:{pattern:/(?:%[is])?"[^"\n\r]*"/,greedy:!0,inside:{punctuation:/^%[is]/}},range:{pattern:/%(?:b[01]+-[01]+|d\d+-\d+|x[A-F\d]+-[A-F\d]+)/i,alias:"number"},terminal:{pattern:/%(?:b[01]+(?:\.[01]+)*|d\d+(?:\.\d+)*|x[A-F\d]+(?:\.[A-F\d]+)*)/i,alias:"number"},repetition:{pattern:/(^|[^\w-])(?:\d*\*\d*|\d+)/,lookbehind:!0,alias:"operator"},definition:{pattern:/(^[ \t]*)(?:[a-z][\w-]*|<[^<>\r\n]*>)(?=\s*=)/m,lookbehind:!0,alias:"keyword",inside:{punctuation:/<|>/}},"core-rule":{pattern:RegExp("(?:(^|[^<\\w-])"+t+"|<"+t+">)(?![\\w-])","i"),lookbehind:!0,alias:["rule","constant"],inside:{punctuation:/<|>/}},rule:{pattern:/(^|[^<\w-])[a-z][\w-]*|<[^<>\r\n]*>/i,lookbehind:!0,inside:{punctuation:/<|>/}},operator:/=\/?|\//,punctuation:/[()\[\]]/}}(e)}e.exports=t,t.displayName="abnf",t.aliases=[]},8081:function(e){"use strict";function t(e){e.languages.actionscript=e.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),e.languages.actionscript["class-name"].alias="function",delete e.languages.actionscript.parameter,delete e.languages.actionscript["literal-property"],e.languages.markup&&e.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:e.languages.markup}})}e.exports=t,t.displayName="actionscript",t.aliases=[]},2677:function(e){"use strict";function t(e){e.languages.ada={comment:/--.*/,string:/"(?:""|[^"\r\f\n])*"/,number:[{pattern:/\b\d(?:_?\d)*#[\dA-F](?:_?[\dA-F])*(?:\.[\dA-F](?:_?[\dA-F])*)?#(?:E[+-]?\d(?:_?\d)*)?/i},{pattern:/\b\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:E[+-]?\d(?:_?\d)*)?\b/i}],"attr-name":/\b'\w+/,keyword:/\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|new|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|return|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\b/i,boolean:/\b(?:false|true)\b/i,operator:/<[=>]?|>=?|=>?|:=|\/=?|\*\*?|[&+-]/,punctuation:/\.\.?|[,;():]/,char:/'.'/,variable:/\b[a-z](?:\w)*\b/i}}e.exports=t,t.displayName="ada",t.aliases=[]},2239:function(e){"use strict";function t(e){!function(e){e.languages.agda={comment:/\{-[\s\S]*?(?:-\}|$)|--.*/,string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},punctuation:/[(){}\u2983\u2984.;@]/,"class-name":{pattern:/((?:data|record) +)\S+/,lookbehind:!0},function:{pattern:/(^[ \t]*)(?!\s)[^:\r\n]+(?=:)/m,lookbehind:!0},operator:{pattern:/(^\s*|\s)(?:[=|:\u2200\u2192\u03bb\\?_]|->)(?=\s)/,lookbehind:!0},keyword:/\b(?:Set|abstract|constructor|data|eta-equality|field|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\b/}}(e)}e.exports=t,t.displayName="agda",t.aliases=[]},3306:function(e){"use strict";function t(e){e.languages.al={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,greedy:!0},function:{pattern:/(\b(?:event|procedure|trigger)\s+|(?:^|[^.])\.\s*)[a-z_]\w*(?=\s*\()/i,lookbehind:!0},keyword:[/\b(?:array|asserterror|begin|break|case|do|downto|else|end|event|exit|for|foreach|function|if|implements|in|indataset|interface|internal|local|of|procedure|program|protected|repeat|runonclient|securityfiltering|suppressdispose|temporary|then|to|trigger|until|var|while|with|withevents)\b/i,/\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\b/i],number:/\b(?:0x[\da-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)(?:F|LL?|U(?:LL?)?)?\b/i,boolean:/\b(?:false|true)\b/i,variable:/\b(?:Curr(?:FieldNo|Page|Report)|x?Rec|RequestOptionsPage)\b/,"class-name":/\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\b/i,operator:/\.\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\b(?:and|div|mod|not|or|xor)\b/i,punctuation:/[()\[\]{}:.;,]/}}e.exports=t,t.displayName="al",t.aliases=[]},5001:function(e){"use strict";function t(e){e.languages.antlr4={comment:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,string:{pattern:/'(?:\\.|[^\\'\r\n])*'/,greedy:!0},"character-class":{pattern:/\[(?:\\.|[^\\\]\r\n])*\]/,greedy:!0,alias:"regex",inside:{range:{pattern:/([^[]|(?:^|[^\\])(?:\\\\)*\\\[)-(?!\])/,lookbehind:!0,alias:"punctuation"},escape:/\\(?:u(?:[a-fA-F\d]{4}|\{[a-fA-F\d]+\})|[pP]\{[=\w-]+\}|[^\r\nupP])/,punctuation:/[\[\]]/}},action:{pattern:/\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\}/,greedy:!0,inside:{content:{pattern:/(\{)[\s\S]+(?=\})/,lookbehind:!0},punctuation:/[{}]/}},command:{pattern:/(->\s*(?!\s))(?:\s*(?:,\s*)?\b[a-z]\w*(?:\s*\([^()\r\n]*\))?)+(?=\s*;)/i,lookbehind:!0,inside:{function:/\b\w+(?=\s*(?:[,(]|$))/,punctuation:/[,()]/}},annotation:{pattern:/@\w+(?:::\w+)*/,alias:"keyword"},label:{pattern:/#[ \t]*\w+/,alias:"punctuation"},keyword:/\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\b/,definition:[{pattern:/\b[a-z]\w*(?=\s*:)/,alias:["rule","class-name"]},{pattern:/\b[A-Z]\w*(?=\s*:)/,alias:["token","constant"]}],constant:/\b[A-Z][A-Z_]*\b/,operator:/\.\.|->|[|~]|[*+?]\??/,punctuation:/[;:()=]/},e.languages.g4=e.languages.antlr4}e.exports=t,t.displayName="antlr4",t.aliases=["g4"]},6748:function(e){"use strict";function t(e){e.languages.apacheconf={comment:/#.*/,"directive-inline":{pattern:/(^[\t ]*)\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|Type|UserFile|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|Limit(?:InternalRecursion|Request(?:Body|Fields|FieldSize|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|SRPUnknownUserSeed|SRPVerifierFile|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UserName|UseStapling|VerifyClient|VerifyDepth)|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/im,lookbehind:!0,alias:"property"},"directive-block":{pattern:/<\/?\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\b.*>/i,inside:{"directive-block":{pattern:/^<\/?\w+/,inside:{punctuation:/^<\/?/},alias:"tag"},"directive-block-parameter":{pattern:/.*[^>]/,inside:{punctuation:/:/,string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}}},alias:"attr-value"},punctuation:/>/},alias:"tag"},"directive-flags":{pattern:/\[(?:[\w=],?)+\]/,alias:"keyword"},string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}},variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/,regex:/\^?.*\$|\^.*\$?/}}e.exports=t,t.displayName="apacheconf",t.aliases=[]},4556:function(e,t,n){"use strict";var r=n(7740);function a(e){e.register(r),function(e){var t=/\b(?:(?:after|before)(?=\s+[a-z])|abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|get(?=\s*[{};])|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|(?:inherited|with|without)\s+sharing)\b/i,n=/\b(?:(?=[a-z_]\w*\s*[<\[])|(?!<keyword>))[A-Z_]\w*(?:\s*\.\s*[A-Z_]\w*)*\b(?:\s*(?:\[\s*\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source.replace(/<keyword>/g,(function(){return t.source}));function r(e){return RegExp(e.replace(/<CLASS-NAME>/g,(function(){return n})),"i")}var a={keyword:t,punctuation:/[()\[\]{};,:.<>]/};e.languages.apex={comment:e.languages.clike.comment,string:e.languages.clike.string,sql:{pattern:/((?:[=,({:]|\breturn)\s*)\[[^\[\]]*\]/i,lookbehind:!0,greedy:!0,alias:"language-sql",inside:e.languages.sql},annotation:{pattern:/@\w+\b/,alias:"punctuation"},"class-name":[{pattern:r(/(\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\s+\w+\s+on)\s+)<CLASS-NAME>/.source),lookbehind:!0,inside:a},{pattern:r(/(\(\s*)<CLASS-NAME>(?=\s*\)\s*[\w(])/.source),lookbehind:!0,inside:a},{pattern:r(/<CLASS-NAME>(?=\s*\w+\s*[;=,(){:])/.source),inside:a}],trigger:{pattern:/(\btrigger\s+)\w+\b/i,lookbehind:!0,alias:"class-name"},keyword:t,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/i,number:/(?:\B\.\d+|\b\d+(?:\.\d+|L)?)\b/i,operator:/[!=](?:==?)?|\?\.?|&&|\|\||--|\+\+|[-+*/^&|]=?|:|<<?=?|>{1,3}=?/,punctuation:/[()\[\]{};,.]/}}(e)}e.exports=a,a.displayName="apex",a.aliases=[]},5775:function(e){"use strict";function t(e){e.languages.apl={comment:/(?:\u235d|#[! ]).*$/m,string:{pattern:/'(?:[^'\r\n]|'')*'/,greedy:!0},number:/\xaf?(?:\d*\.?\b\d+(?:e[+\xaf]?\d+)?|\xaf|\u221e)(?:j\xaf?(?:(?:\d+(?:\.\d+)?|\.\d+)(?:e[+\xaf]?\d+)?|\xaf|\u221e))?/i,statement:/:[A-Z][a-z][A-Za-z]*\b/,"system-function":{pattern:/\u2395[A-Z]+/i,alias:"function"},constant:/[\u236c\u233e#\u2395\u235e]/,function:/[-+\xd7\xf7\u2308\u230a\u2223|\u2373\u2378?*\u235f\u25cb!\u2339<\u2264=>\u2265\u2260\u2261\u2262\u220a\u2377\u222a\u2229~\u2228\u2227\u2371\u2372\u2374,\u236a\u233d\u2296\u2349\u2191\u2193\u2282\u2283\u2286\u2287\u2337\u234b\u2352\u22a4\u22a5\u2355\u234e\u22a3\u22a2\u2341\u2342\u2248\u236f\u2197\xa4\u2192]/,"monadic-operator":{pattern:/[\\\/\u233f\u2340\xa8\u2368\u2336&\u2225]/,alias:"operator"},"dyadic-operator":{pattern:/[.\u2363\u2360\u2364\u2218\u2338@\u233a\u2365]/,alias:"operator"},assignment:{pattern:/\u2190/,alias:"keyword"},punctuation:/[\[;\]()\u25c7\u22c4]/,dfn:{pattern:/[{}\u237a\u2375\u2376\u2379\u2207\u236b:]/,alias:"builtin"}}}e.exports=t,t.displayName="apl",t.aliases=[]},118:function(e){"use strict";function t(e){e.languages.applescript={comment:[/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,/--.+/,/#.+/],string:/"(?:\\.|[^"\\\r\n])*"/,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?\b/i,operator:[/[&=\u2260\u2264\u2265*+\-\/\xf7^]|[<>]=?/,/\b(?:(?:begin|end|start)s? with|(?:contains?|(?:does not|doesn't) contain)|(?:is|isn't|is not) (?:contained by|in)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:comes|(?:does not|doesn't) come) (?:after|before)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equal to|equals|is not|isn't)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|as|div|mod|not|or))\b/],keyword:/\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b/,"class-name":/\b(?:POSIX file|RGB color|alias|application|boolean|centimeters|centimetres|class|constant|cubic centimeters|cubic centimetres|cubic feet|cubic inches|cubic meters|cubic metres|cubic yards|date|degrees Celsius|degrees Fahrenheit|degrees Kelvin|feet|file|gallons|grams|inches|integer|kilograms|kilometers|kilometres|list|liters|litres|meters|metres|miles|number|ounces|pounds|quarts|real|record|reference|script|square feet|square kilometers|square kilometres|square meters|square metres|square miles|square yards|text|yards)\b/,punctuation:/[{}():,\xac\xab\xbb\u300a\u300b]/}}e.exports=t,t.displayName="applescript",t.aliases=[]},9134:function(e){"use strict";function t(e){e.languages.aql={comment:/\/\/.*|\/\*[\s\S]*?\*\//,property:{pattern:/([{,]\s*)(?:(?!\d)\w+|(["'\xb4`])(?:(?!\2)[^\\\r\n]|\\.)*\2)(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\.)*\1/,greedy:!0},identifier:{pattern:/([\xb4`])(?:(?!\1)[^\\\r\n]|\\.)*\1/,greedy:!0},variable:/@@?\w+/,keyword:[{pattern:/(\bWITH\s+)COUNT(?=\s+INTO\b)/i,lookbehind:!0},/\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_PATHS|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WINDOW|WITH)\b/i,{pattern:/(^|[^\w.[])(?:KEEP|PRUNE|SEARCH|TO)\b/i,lookbehind:!0},{pattern:/(^|[^\w.[])(?:CURRENT|NEW|OLD)\b/,lookbehind:!0},{pattern:/\bOPTIONS(?=\s*\{)/i}],function:/\b(?!\d)\w+(?=\s*\()/,boolean:/\b(?:false|true)\b/i,range:{pattern:/\.\./,alias:"operator"},number:[/\b0b[01]+/i,/\b0x[0-9a-f]+/i,/(?:\B\.\d+|\b(?:0|[1-9]\d*)(?:\.\d+)?)(?:e[+-]?\d+)?/i],operator:/\*{2,}|[=!]~|[!=<>]=?|&&|\|\||[-+*/%]/,punctuation:/::|[?.:,;()[\]{}]/}}e.exports=t,t.displayName="aql",t.aliases=[]},4144:function(e,t,n){"use strict";var r=n(8593);function a(e){e.register(r),e.languages.arduino=e.languages.extend("cpp",{keyword:/\b(?:String|array|bool|boolean|break|byte|case|catch|continue|default|do|double|else|finally|for|function|goto|if|in|instanceof|int|integer|long|loop|new|null|return|setup|string|switch|throw|try|void|while|word)\b/,constant:/\b(?:ANALOG_MESSAGE|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FIRMATA_STRING|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL2V56|LED_BUILTIN|LOW|OUTPUT|REPORT_ANALOG|REPORT_DIGITAL|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET)\b/,builtin:/\b(?:Audio|BSSID|Bridge|Client|Console|EEPROM|Esplora|EsploraTFT|Ethernet|EthernetClient|EthernetServer|EthernetUDP|File|FileIO|FileSystem|Firmata|GPRS|GSM|GSMBand|GSMClient|GSMModem|GSMPIN|GSMScanner|GSMServer|GSMVoiceCall|GSM_SMS|HttpClient|IPAddress|IRread|Keyboard|KeyboardController|LiquidCrystal|LiquidCrystal_I2C|Mailbox|Mouse|MouseController|PImage|Process|RSSI|RobotControl|RobotMotor|SD|SPI|SSID|Scheduler|Serial|Server|Servo|SoftwareSerial|Stepper|Stream|TFT|Task|USBHost|WiFi|WiFiClient|WiFiServer|WiFiUDP|Wire|YunClient|YunServer|abs|addParameter|analogRead|analogReadResolution|analogReference|analogWrite|analogWriteResolution|answerCall|attach|attachGPRS|attachInterrupt|attached|autoscroll|available|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|bitClear|bitRead|bitSet|bitWrite|blink|blinkVersion|buffer|changePIN|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compassRead|config|connect|connected|constrain|cos|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|delay|delayMicroseconds|detach|detachInterrupt|digitalRead|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endTransmission|endWrite|exists|exitValue|fill|find|findUntil|flush|gatewayIP|get|getAsynchronously|getBand|getButton|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|home|image|interrupts|isActionDone|isDirectory|isListening|isPIN|isPressed|isValid|keyPressed|keyReleased|keyboardRead|knobRead|leftToRight|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|lowByte|macAddress|maintain|map|max|messageAvailable|micros|millis|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|noListenOnLocalhost|noStroke|noTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|pinMode|playFile|playMelody|point|pointTo|position|pow|prepare|press|print|printFirmwareVersion|printVersion|println|process|processInput|pulseIn|put|random|randomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|run|runAsynchronously|runShellCommand|runShellCommandAsynchronously|running|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|serialEvent|setBand|setBitOrder|setClockDivider|setCursor|setDNS|setDataMode|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|shiftIn|shiftOut|shutdown|sin|size|sqrt|startLoop|step|stop|stroke|subnetMask|switchPIN|tan|tempoWrite|text|tone|transfer|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRGB|writeRed|yield)\b/}),e.languages.ino=e.languages.arduino}e.exports=a,a.displayName="arduino",a.aliases=["ino"]},7209:function(e){"use strict";function t(e){e.languages.arff={comment:/%.*/,string:{pattern:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/@(?:attribute|data|end|relation)\b/i,number:/\b\d+(?:\.\d+)?\b/,punctuation:/[{},]/}}e.exports=t,t.displayName="arff",t.aliases=[]},4865:function(e){"use strict";function t(e){!function(e){var t={pattern:/(^[ \t]*)\[(?!\[)(?:(["'$`])(?:(?!\2)[^\\]|\\.)*\2|\[(?:[^\[\]\\]|\\.)*\]|[^\[\]\\"'$`]|\\.)*\]/m,lookbehind:!0,inside:{quoted:{pattern:/([$`])(?:(?!\1)[^\\]|\\.)*\1/,inside:{punctuation:/^[$`]|[$`]$/}},interpreted:{pattern:/'(?:[^'\\]|\\.)*'/,inside:{punctuation:/^'|'$/}},string:/"(?:[^"\\]|\\.)*"/,variable:/\w+(?==)/,punctuation:/^\[|\]$|,/,operator:/=/,"attr-value":/(?!^\s+$).+/}},n=e.languages.asciidoc={"comment-block":{pattern:/^(\/{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1/m,alias:"comment"},table:{pattern:/^\|={3,}(?:(?:\r?\n|\r(?!\n)).*)*?(?:\r?\n|\r)\|={3,}$/m,inside:{specifiers:{pattern:/(?:(?:(?:\d+(?:\.\d+)?|\.\d+)[+*](?:[<^>](?:\.[<^>])?|\.[<^>])?|[<^>](?:\.[<^>])?|\.[<^>])[a-z]*|[a-z]+)(?=\|)/,alias:"attr-value"},punctuation:{pattern:/(^|[^\\])[|!]=*/,lookbehind:!0}}},"passthrough-block":{pattern:/^(\+{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^\++|\++$/}},"literal-block":{pattern:/^(-{4,}|\.{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\.+)|(?:-+|\.+)$/}},"other-block":{pattern:/^(--|\*{4,}|_{4,}|={4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\*+|_+|=+)|(?:-+|\*+|_+|=+)$/}},"list-punctuation":{pattern:/(^[ \t]*)(?:-|\*{1,5}|\.{1,5}|(?:[a-z]|\d+)\.|[xvi]+\))(?= )/im,lookbehind:!0,alias:"punctuation"},"list-label":{pattern:/(^[ \t]*)[a-z\d].+(?::{2,4}|;;)(?=\s)/im,lookbehind:!0,alias:"symbol"},"indented-block":{pattern:/((\r?\n|\r)\2)([ \t]+)\S.*(?:(?:\r?\n|\r)\3.+)*(?=\2{2}|$)/,lookbehind:!0},comment:/^\/\/.*/m,title:{pattern:/^.+(?:\r?\n|\r)(?:={3,}|-{3,}|~{3,}|\^{3,}|\+{3,})$|^={1,5} .+|^\.(?![\s.]).*/m,alias:"important",inside:{punctuation:/^(?:\.|=+)|(?:=+|-+|~+|\^+|\++)$/}},"attribute-entry":{pattern:/^:[^:\r\n]+:(?: .*?(?: \+(?:\r?\n|\r).*?)*)?$/m,alias:"tag"},attributes:t,hr:{pattern:/^'{3,}$/m,alias:"punctuation"},"page-break":{pattern:/^<{3,}$/m,alias:"punctuation"},admonition:{pattern:/^(?:CAUTION|IMPORTANT|NOTE|TIP|WARNING):/m,alias:"keyword"},callout:[{pattern:/(^[ \t]*)<?\d*>/m,lookbehind:!0,alias:"symbol"},{pattern:/<\d+>/,alias:"symbol"}],macro:{pattern:/\b[a-z\d][a-z\d-]*::?(?:[^\s\[\]]*\[(?:[^\]\\"']|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:{function:/^[a-z\d-]+(?=:)/,punctuation:/^::?/,attributes:{pattern:/(?:\[(?:[^\]\\"']|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:t.inside}}},inline:{pattern:/(^|[^\\])(?:(?:\B\[(?:[^\]\\"']|(["'])(?:(?!\2)[^\\]|\\.)*\2|\\.)*\])?(?:\b_(?!\s)(?: _|[^_\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: _|[^_\\\r\n]|\\.)+)*_\b|\B``(?!\s).+?(?:(?:\r?\n|\r).+?)*''\B|\B`(?!\s)(?:[^`'\s]|\s+\S)+['`]\B|\B(['*+#])(?!\s)(?: \3|(?!\3)[^\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: \3|(?!\3)[^\\\r\n]|\\.)+)*\3\B)|(?:\[(?:[^\]\\"']|(["'])(?:(?!\4)[^\\]|\\.)*\4|\\.)*\])?(?:(__|\*\*|\+\+\+?|##|\$\$|[~^]).+?(?:(?:\r?\n|\r).+?)*\5|\{[^}\r\n]+\}|\[\[\[?.+?(?:(?:\r?\n|\r).+?)*\]?\]\]|<<.+?(?:(?:\r?\n|\r).+?)*>>|\(\(\(?.+?(?:(?:\r?\n|\r).+?)*\)?\)\)))/m,lookbehind:!0,inside:{attributes:t,url:{pattern:/^(?:\[\[\[?.+?\]?\]\]|<<.+?>>)$/,inside:{punctuation:/^(?:\[\[\[?|<<)|(?:\]\]\]?|>>)$/}},"attribute-ref":{pattern:/^\{.+\}$/,inside:{variable:{pattern:/(^\{)[a-z\d,+_-]+/,lookbehind:!0},operator:/^[=?!#%@$]|!(?=[:}])/,punctuation:/^\{|\}$|::?/}},italic:{pattern:/^(['_])[\s\S]+\1$/,inside:{punctuation:/^(?:''?|__?)|(?:''?|__?)$/}},bold:{pattern:/^\*[\s\S]+\*$/,inside:{punctuation:/^\*\*?|\*\*?$/}},punctuation:/^(?:``?|\+{1,3}|##?|\$\$|[~^]|\(\(\(?)|(?:''?|\+{1,3}|##?|\$\$|[~^`]|\)?\)\))$/}},replacement:{pattern:/\((?:C|R|TM)\)/,alias:"builtin"},entity:/&#?[\da-z]{1,8};/i,"line-continuation":{pattern:/(^| )\+$/m,lookbehind:!0,alias:"punctuation"}};function r(e){for(var t={},r=0,a=(e=e.split(" ")).length;r<a;r++)t[e[r]]=n[e[r]];return t}t.inside.interpreted.inside.rest=r("macro inline replacement entity"),n["passthrough-block"].inside.rest=r("macro"),n["literal-block"].inside.rest=r("callout"),n.table.inside.rest=r("comment-block passthrough-block literal-block other-block list-punctuation indented-block comment title attribute-entry attributes hr page-break admonition list-label callout macro inline replacement entity line-continuation"),n["other-block"].inside.rest=r("table list-punctuation indented-block comment attribute-entry attributes hr page-break admonition list-label macro inline replacement entity line-continuation"),n.title.inside.rest=r("macro inline replacement entity"),e.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.value.replace(/&amp;/,"&"))})),e.languages.adoc=e.languages.asciidoc}(e)}e.exports=t,t.displayName="asciidoc",t.aliases=["adoc"]},2083:function(e){"use strict";function t(e){e.languages.asm6502={comment:/;.*/,directive:{pattern:/\.\w+(?= )/,alias:"property"},string:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,"op-code":{pattern:/\b(?:ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA|adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya)\b/,alias:"keyword"},"hex-number":{pattern:/#?\$[\da-f]{1,4}\b/i,alias:"number"},"binary-number":{pattern:/#?%[01]+\b/,alias:"number"},"decimal-number":{pattern:/#?\b\d+\b/,alias:"number"},register:{pattern:/\b[xya]\b/i,alias:"variable"},punctuation:/[(),:]/}}e.exports=t,t.displayName="asm6502",t.aliases=[]},6054:function(e){"use strict";function t(e){e.languages.asmatmel={comment:{pattern:/;.*/,greedy:!0},string:{pattern:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},constant:/\b(?:PORT[A-Z]|DDR[A-Z]|(?:DD|P)[A-Z](?:\d|[0-2]\d|3[01]))\b/,directive:{pattern:/\.\w+(?= )/,alias:"property"},"r-register":{pattern:/\br(?:\d|[12]\d|3[01])\b/,alias:"variable"},"op-code":{pattern:/\b(?:ADC|ADD|ADIW|AND|ANDI|ASR|BCLR|BLD|BRBC|BRBS|BRCC|BRCS|BREAK|BREQ|BRGE|BRHC|BRHS|BRID|BRIE|BRLO|BRLT|BRMI|BRNE|BRPL|BRSH|BRTC|BRTS|BRVC|BRVS|BSET|BST|CALL|CBI|CBR|CLC|CLH|CLI|CLN|CLR|CLS|CLT|CLV|CLZ|COM|CP|CPC|CPI|CPSE|DEC|DES|EICALL|EIJMP|ELPM|EOR|FMUL|FMULS|FMULSU|ICALL|IJMP|IN|INC|JMP|LAC|LAS|LAT|LD|LD[A-Za-z0-9]|LPM|LSL|LSR|MOV|MOVW|MUL|MULS|MULSU|NEG|NOP|OR|ORI|OUT|POP|PUSH|RCALL|RET|RETI|RJMP|ROL|ROR|SBC|SBCI|SBI|SBIC|SBIS|SBIW|SBR|SBRC|SBRS|SEC|SEH|SEI|SEN|SER|SES|SET|SEV|SEZ|SLEEP|SPM|ST|ST[A-Z0-9]|SUB|SUBI|SWAP|TST|WDR|XCH|adc|add|adiw|and|andi|asr|bclr|bld|brbc|brbs|brcc|brcs|break|breq|brge|brhc|brhs|brid|brie|brlo|brlt|brmi|brne|brpl|brsh|brtc|brts|brvc|brvs|bset|bst|call|cbi|cbr|clc|clh|cli|cln|clr|cls|clt|clv|clz|com|cp|cpc|cpi|cpse|dec|des|eicall|eijmp|elpm|eor|fmul|fmuls|fmulsu|icall|ijmp|in|inc|jmp|lac|las|lat|ld|ld[a-z0-9]|lpm|lsl|lsr|mov|movw|mul|muls|mulsu|neg|nop|or|ori|out|pop|push|rcall|ret|reti|rjmp|rol|ror|sbc|sbci|sbi|sbic|sbis|sbiw|sbr|sbrc|sbrs|sec|seh|sei|sen|ser|ses|set|sev|sez|sleep|spm|st|st[a-zA-Z0-9]|sub|subi|swap|tst|wdr|xch)\b/,alias:"keyword"},"hex-number":{pattern:/#?\$[\da-f]{2,4}\b/i,alias:"number"},"binary-number":{pattern:/#?%[01]+\b/,alias:"number"},"decimal-number":{pattern:/#?\b\d+\b/,alias:"number"},register:{pattern:/\b[acznvshtixy]\b/i,alias:"variable"},operator:/>>=?|<<=?|&&?|\|\|?|[-+*/%&|^!=<>?]=?/,punctuation:/[(),:]/}}e.exports=t,t.displayName="asmatmel",t.aliases=[]},476:function(e,t,n){"use strict";var r=n(3281);function a(e){e.register(r),e.languages.aspnet=e.languages.extend("markup",{"page-directive":{pattern:/<%\s*@.*%>/,alias:"tag",inside:{"page-directive":{pattern:/<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,alias:"tag"},rest:e.languages.markup.tag.inside}},directive:{pattern:/<%.*%>/,alias:"tag",inside:{directive:{pattern:/<%\s*?[$=%#:]{0,2}|%>/,alias:"tag"},rest:e.languages.csharp}}}),e.languages.aspnet.tag.pattern=/<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/,e.languages.insertBefore("inside","punctuation",{directive:e.languages.aspnet.directive},e.languages.aspnet.tag.inside["attr-value"]),e.languages.insertBefore("aspnet","comment",{"asp-comment":{pattern:/<%--[\s\S]*?--%>/,alias:["asp","comment"]}}),e.languages.insertBefore("aspnet",e.languages.javascript?"script":"tag",{"asp-script":{pattern:/(<script(?=.*runat=['"]?server\b)[^>]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,alias:["asp","script"],inside:e.languages.csharp||{}}})}e.exports=a,a.displayName="aspnet",a.aliases=[]},9894:function(e){"use strict";function t(e){e.languages.autohotkey={comment:[{pattern:/(^|\s);.*/,lookbehind:!0},{pattern:/(^[\t ]*)\/\*(?:[\r\n](?![ \t]*\*\/)|[^\r\n])*(?:[\r\n][ \t]*\*\/)?/m,lookbehind:!0,greedy:!0}],tag:{pattern:/^([ \t]*)[^\s,`":]+(?=:[ \t]*$)/m,lookbehind:!0},string:/"(?:[^"\n\r]|"")*"/,variable:/%\w+%/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/\?|\/\/?=?|:=|\|[=|]?|&[=&]?|\+[=+]?|-[=-]?|\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\b(?:AND|NOT|OR)\b/,boolean:/\b(?:false|true)\b/,selector:/\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\b/i,constant:/\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guicontrol|a_guicontrolevent|a_guievent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel|programfiles)\b/i,builtin:/\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|isfunc|islabel|IsObject|ln|log|ltrim|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|numget|numput|onmessage|regexmatch|regexreplace|registercallback|round|rtrim|sb_seticon|sb_setparts|sb_settext|sin|sqrt|strlen|strreplace|strsplit|substr|tan|tv_add|tv_delete|tv_get|tv_getchild|tv_getcount|tv_getnext|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__Call|__Get|__New|__Set)\b/i,symbol:/\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\b/i,important:/#\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|DerefChar|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|If|IfTimeout|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InputLevel|InstallKeybdHook|InstallMouseHook|KeyHistory|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|MenuMaskKey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|Warn|WinActivateForce)\b/i,keyword:/\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Catch|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|Finally|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|Region|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Throw|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|Try|TryAgain|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\b/i,function:/[^(); \t,\n+*\-=?>:\\\/<&%\[\]]+(?=\()/,punctuation:/[{}[\]():,]/}}e.exports=t,t.displayName="autohotkey",t.aliases=[]},4291:function(e){"use strict";function t(e){e.languages.autoit={comment:[/;.*/,{pattern:/(^[\t ]*)#(?:comments-start|cs)[\s\S]*?^[ \t]*#(?:ce|comments-end)/m,lookbehind:!0}],url:{pattern:/(^[\t ]*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m,lookbehind:!0},string:{pattern:/(["'])(?:\1\1|(?!\1)[^\r\n])*\1/,greedy:!0,inside:{variable:/([%$@])\w+\1/}},directive:{pattern:/(^[\t ]*)#[\w-]+/m,lookbehind:!0,alias:"keyword"},function:/\b\w+(?=\()/,variable:/[$@]\w+/,keyword:/\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,boolean:/\b(?:False|True)\b/i,operator:/<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Not|Or)\b/i,punctuation:/[\[\]().,:]/}}e.exports=t,t.displayName="autoit",t.aliases=[]},3981:function(e){"use strict";function t(e){!function(e){function t(e,t,n){return RegExp(function(e,t){return e.replace(/<<(\d+)>>/g,(function(e,n){return t[+n]}))}(e,t),n||"")}var n=/bool|clip|float|int|string|val/.source,r=[[/is(?:bool|clip|float|int|string)|defined|(?:(?:internal)?function|var)?exists?/.source,/apply|assert|default|eval|import|nop|select|undefined/.source,/opt_(?:allowfloataudio|avipadscanlines|dwchannelmask|enable_(?:b64a|planartopackedrgb|v210|y3_10_10|y3_10_16)|usewaveextensible|vdubplanarhack)|set(?:cachemode|maxcpu|memorymax|planarlegacyalignment|workingdir)/.source,/hex(?:value)?|value/.source,/abs|ceil|continued(?:denominator|numerator)?|exp|floor|fmod|frac|log(?:10)?|max|min|muldiv|pi|pow|rand|round|sign|spline|sqrt/.source,/a?sinh?|a?cosh?|a?tan[2h]?/.source,/(?:bit(?:and|not|x?or|[lr]?shift[aslu]?|sh[lr]|sa[lr]|[lr]rotatel?|ro[rl]|te?st|set(?:count)?|cl(?:ea)?r|ch(?:an)?ge?))/.source,/average(?:[bgr]|chroma[uv]|luma)|(?:[rgb]|chroma[uv]|luma|rgb|[yuv](?=difference(?:fromprevious|tonext)))difference(?:fromprevious|tonext)?|[yuvrgb]plane(?:median|min|max|minmaxdifference)/.source,/getprocessinfo|logmsg|script(?:dir(?:utf8)?|file(?:utf8)?|name(?:utf8)?)|setlogparams/.source,/chr|(?:fill|find|left|mid|replace|rev|right)str|format|[lu]case|ord|str(?:cmpi?|fromutf8|len|toutf8)|time|trim(?:all|left|right)/.source,/isversionorgreater|version(?:number|string)/.source,/buildpixeltype|colorspacenametopixeltype/.source,/addautoloaddir|on(?:cpu|cuda)|prefetch|setfiltermtmode/.source].join("|"),[/has(?:audio|video)/.source,/height|width/.source,/frame(?:count|rate)|framerate(?:denominator|numerator)/.source,/getparity|is(?:field|frame)based/.source,/bitspercomponent|componentsize|hasalpha|is(?:planar(?:rgba?)?|interleaved|rgb(?:24|32|48|64)?|y(?:8|u(?:va?|y2))?|yv(?:12|16|24|411)|420|422|444|packedrgb)|numcomponents|pixeltype/.source,/audio(?:bits|channels|duration|length(?:[fs]|hi|lo)?|rate)|isaudio(?:float|int)/.source].join("|"),[/avi(?:file)?source|directshowsource|image(?:reader|source|sourceanim)|opendmlsource|segmented(?:avisource|directshowsource)|wavsource/.source,/coloryuv|convertbacktoyuy2|convertto(?:RGB(?:24|32|48|64)|(?:planar)?RGBA?|Y8?|YV(?:12|16|24|411)|YUVA?(?:411|420|422|444)|YUY2)|fixluminance|gr[ae]yscale|invert|levels|limiter|mergea?rgb|merge(?:chroma|luma)|rgbadjust|show(?:alpha|blue|green|red)|swapuv|tweak|[uv]toy8?|ytouv/.source,/(?:colorkey|reset)mask|layer|mask(?:hs)?|merge|overlay|subtract/.source,/addborders|(?:bicubic|bilinear|blackman|gauss|lanczos4|lanczos|point|sinc|spline(?:16|36|64))resize|crop(?:bottom)?|flip(?:horizontal|vertical)|(?:horizontal|vertical)?reduceby2|letterbox|skewrows|turn(?:180|left|right)/.source,/blur|fixbrokenchromaupsampling|generalconvolution|(?:spatial|temporal)soften|sharpen/.source,/trim|(?:un)?alignedsplice|(?:assume|assumescaled|change|convert)FPS|(?:delete|duplicate)frame|dissolve|fade(?:in|io|out)[02]?|freezeframe|interleave|loop|reverse|select(?:even|odd|(?:range)?every)/.source,/assume[bt]ff|assume(?:field|frame)based|bob|complementparity|doubleweave|peculiarblend|pulldown|separate(?:columns|fields|rows)|swapfields|weave(?:columns|rows)?/.source,/amplify(?:db)?|assumesamplerate|audiodub(?:ex)?|audiotrim|convertaudioto(?:(?:8|16|24|32)bit|float)|converttomono|delayaudio|ensurevbrmp3sync|get(?:left|right)?channel|kill(?:audio|video)|mergechannels|mixaudio|monotostereo|normalize|resampleaudio|ssrc|supereq|timestretch/.source,/animate|applyrange|conditional(?:filter|reader|select)|frameevaluate|scriptclip|tcp(?:server|source)|writefile(?:end|if|start)?/.source,/imagewriter/.source,/blackness|blankclip|colorbars(?:hd)?|compare|dumpfiltergraph|echo|histogram|info|messageclip|preroll|setgraphanalysis|show(?:framenumber|smpte|time)|showfiveversions|stack(?:horizontal|vertical)|subtitle|tone|version/.source].join("|")].join("|");e.languages.avisynth={comment:[{pattern:/(^|[^\\])\[\*(?:[^\[*]|\[(?!\*)|\*(?!\])|\[\*(?:[^\[*]|\[(?!\*)|\*(?!\]))*\*\])*\*\]/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0,greedy:!0}],argument:{pattern:t(/\b(?:<<0>>)\s+("?)\w+\1/.source,[n],"i"),inside:{keyword:/^\w+/}},"argument-label":{pattern:/([,(][\s\\]*)\w+\s*=(?!=)/,lookbehind:!0,inside:{"argument-name":{pattern:/^\w+/,alias:"punctuation"},punctuation:/=$/}},string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0,inside:{constant:{pattern:/\b(?:DEFAULT_MT_MODE|(?:MAINSCRIPT|PROGRAM|SCRIPT)DIR|(?:MACHINE|USER)_(?:CLASSIC|PLUS)_PLUGINS)\b/}}}],variable:/\b(?:last)\b/i,boolean:/\b(?:false|no|true|yes)\b/i,keyword:/\b(?:catch|else|for|function|global|if|return|try|while|__END__)\b/i,constant:/\bMT_(?:MULTI_INSTANCE|NICE_FILTER|SERIALIZED|SPECIAL_MT)\b/,"builtin-function":{pattern:t(/\b(?:<<0>>)\b/.source,[r],"i"),alias:"function"},"type-cast":{pattern:t(/\b(?:<<0>>)(?=\s*\()/.source,[n],"i"),alias:"keyword"},function:{pattern:/\b[a-z_]\w*(?=\s*\()|(\.)[a-z_]\w*\b/i,lookbehind:!0},"line-continuation":{pattern:/(^[ \t]*)\\|\\(?=[ \t]*$)/m,lookbehind:!0,alias:"punctuation"},number:/\B\$(?:[\da-f]{6}|[\da-f]{8})\b|(?:(?:\b|\B-)\d+(?:\.\d*)?\b|\B\.\d+\b)/i,operator:/\+\+?|[!=<>]=?|&&|\|\||[?:*/%-]/,punctuation:/[{}\[\]();,.]/},e.languages.avs=e.languages.avisynth}(e)}e.exports=t,t.displayName="avisynth",t.aliases=["avs"]},9730:function(e){"use strict";function t(e){e.languages["avro-idl"]={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/(^|[^\\])"(?:[^\r\n"\\]|\\.)*"/,lookbehind:!0,greedy:!0},annotation:{pattern:/@(?:[$\w.-]|`[^\r\n`]+`)+/,greedy:!0,alias:"function"},"function-identifier":{pattern:/`[^\r\n`]+`(?=\s*\()/,greedy:!0,alias:"function"},identifier:{pattern:/`[^\r\n`]+`/,greedy:!0},"class-name":{pattern:/(\b(?:enum|error|protocol|record|throws)\b\s+)[$\w]+/,lookbehind:!0,greedy:!0},keyword:/\b(?:array|boolean|bytes|date|decimal|double|enum|error|false|fixed|float|idl|import|int|local_timestamp_ms|long|map|null|oneway|protocol|record|schema|string|throws|time_ms|timestamp_ms|true|union|uuid|void)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:[{pattern:/(^|[^\w.])-?(?:(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|0x(?:[a-f0-9]+(?:\.[a-f0-9]*)?|\.[a-f0-9]+)(?:p[+-]?\d+)?)[dfl]?(?![\w.])/i,lookbehind:!0},/-?\b(?:Infinity|NaN)\b/],operator:/=/,punctuation:/[()\[\]{}<>.:,;-]/},e.languages.avdl=e.languages["avro-idl"]}e.exports=t,t.displayName="avroIdl",t.aliases=[]},7033:function(e){"use strict";function t(e){!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=r.variable[1].inside,o=0;o<a.length;o++)i[a[o]]=e.languages.bash[a[o]];e.languages.shell=e.languages.bash}(e)}e.exports=t,t.displayName="bash",t.aliases=["shell"]},7867:function(e){"use strict";function t(e){e.languages.basic={comment:{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^\w +\-.])*"/,greedy:!0},number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SELECT CASE|SHARED|SHELL|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\$|\b)/i,function:/\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\$|\b)/i,operator:/<[=>]?|>=?|[+\-*\/^=&]|\b(?:AND|EQV|IMP|NOT|OR|XOR)\b/i,punctuation:/[,;:()]/}}e.exports=t,t.displayName="basic",t.aliases=[]},9607:function(e){"use strict";function t(e){!function(e){var t=/%%?[~:\w]+%?|!\S+!/,n={pattern:/\/[a-z?]+(?=[ :]|$):?|-[a-z]\b|--[a-z-]+\b/im,alias:"attr-name",inside:{punctuation:/:/}},r=/"(?:[\\"]"|[^"])*"(?!")/,a=/(?:\b|-)\d+\b/;e.languages.batch={comment:[/^::.*/m,{pattern:/((?:^|[&(])[ \t]*)rem\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0}],label:{pattern:/^:.*/m,alias:"property"},command:[{pattern:/((?:^|[&(])[ \t]*)for(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* \S+ in \([^)]+\) do/im,lookbehind:!0,inside:{keyword:/\b(?:do|in)\b|^for\b/i,string:r,parameter:n,variable:t,number:a,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*)if(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:not )?(?:cmdextversion \d+|defined \w+|errorlevel \d+|exist \S+|(?:"[^"]*"|(?!")(?:(?!==)\S)+)?(?:==| (?:equ|geq|gtr|leq|lss|neq) )(?:"[^"]*"|[^\s"]\S*))/im,lookbehind:!0,inside:{keyword:/\b(?:cmdextversion|defined|errorlevel|exist|not)\b|^if\b/i,string:r,parameter:n,variable:t,number:a,operator:/\^|==|\b(?:equ|geq|gtr|leq|lss|neq)\b/i}},{pattern:/((?:^|[&()])[ \t]*)else\b/im,lookbehind:!0,inside:{keyword:/^else\b/i}},{pattern:/((?:^|[&(])[ \t]*)set(?: \/[a-z](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0,inside:{keyword:/^set\b/i,string:r,parameter:n,variable:[t,/\w+(?=(?:[*\/%+\-&^|]|<<|>>)?=)/],number:a,operator:/[*\/%+\-&^|]=?|<<=?|>>=?|[!~_=]/,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*@?)\w+\b(?:"(?:[\\"]"|[^"])*"(?!")|[^"^&)\r\n]|\^(?:\r\n|[\s\S]))*/m,lookbehind:!0,inside:{keyword:/^\w+\b/,string:r,parameter:n,label:{pattern:/(^\s*):\S+/m,lookbehind:!0,alias:"property"},variable:t,number:a,operator:/\^/}}],operator:/[&@]/,punctuation:/[()']/}}(e)}e.exports=t,t.displayName="batch",t.aliases=[]},150:function(e){"use strict";function t(e){e.languages.bbcode={tag:{pattern:/\[\/?[^\s=\]]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))?(?:\s+[^\s=\]]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))*\s*\]/,inside:{tag:{pattern:/^\[\/?[^\s=\]]+/,inside:{punctuation:/^\[\/?/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+)/,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\]/,"attr-name":/[^\s=\]]+/}}},e.languages.shortcode=e.languages.bbcode}e.exports=t,t.displayName="bbcode",t.aliases=["shortcode"]},3098:function(e){"use strict";function t(e){e.languages.bicep={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],property:[{pattern:/([\r\n][ \t]*)[a-z_]\w*(?=[ \t]*:)/i,lookbehind:!0},{pattern:/([\r\n][ \t]*)'(?:\\.|\$(?!\{)|[^'\\\r\n$])*'(?=[ \t]*:)/,lookbehind:!0,greedy:!0}],string:[{pattern:/'''[^'][\s\S]*?'''/,greedy:!0},{pattern:/(^|[^\\'])'(?:\\.|\$(?!\{)|[^'\\\r\n$])*'/,lookbehind:!0,greedy:!0}],"interpolated-string":{pattern:/(^|[^\\'])'(?:\\.|\$(?:(?!\{)|\{[^{}\r\n]*\})|[^'\\\r\n$])*'/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/\$\{[^{}\r\n]*\}/,inside:{expression:{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0},punctuation:/^\$\{|\}$/}},string:/[\s\S]+/}},datatype:{pattern:/(\b(?:output|param)\b[ \t]+\w+[ \t]+)\w+\b/,lookbehind:!0,alias:"class-name"},boolean:/\b(?:false|true)\b/,keyword:/\b(?:existing|for|if|in|module|null|output|param|resource|targetScope|var)\b/,decorator:/@\w+\b/,function:/\b[a-z_]\w*(?=[ \t]*\()/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/,punctuation:/[{}[\];(),.:]/},e.languages.bicep["interpolated-string"].inside.interpolation.inside.expression.inside=e.languages.bicep}e.exports=t,t.displayName="bicep",t.aliases=[]},4786:function(e){"use strict";function t(e){e.languages.birb=e.languages.extend("clike",{string:{pattern:/r?("|')(?:\\.|(?!\1)[^\\])*\1/,greedy:!0},"class-name":[/\b[A-Z](?:[\d_]*[a-zA-Z]\w*)?\b/,/\b(?:[A-Z]\w*|(?!(?:var|void)\b)[a-z]\w*)(?=\s+\w+\s*[;,=()])/],keyword:/\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|new|next|noSeeb|return|static|switch|throw|var|void|while)\b/,operator:/\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?|:/,variable:/\b[a-z_]\w*\b/}),e.languages.insertBefore("birb","function",{metadata:{pattern:/<\w+>/,greedy:!0,alias:"symbol"}})}e.exports=t,t.displayName="birb",t.aliases=[]},6938:function(e,t,n){"use strict";var r=n(272);function a(e){e.register(r),e.languages.bison=e.languages.extend("c",{}),e.languages.insertBefore("bison","comment",{bison:{pattern:/^(?:[^%]|%(?!%))*%%[\s\S]*?%%/,inside:{c:{pattern:/%\{[\s\S]*?%\}|\{(?:\{[^}]*\}|[^{}])*\}/,inside:{delimiter:{pattern:/^%?\{|%?\}$/,alias:"punctuation"},"bison-variable":{pattern:/[$@](?:<[^\s>]+>)?[\w$]+/,alias:"variable",inside:{punctuation:/<|>/}},rest:e.languages.c}},comment:e.languages.c.comment,string:e.languages.c.string,property:/\S+(?=:)/,keyword:/%\w+/,number:{pattern:/(^|[^@])\b(?:0x[\da-f]+|\d+)/i,lookbehind:!0},punctuation:/%[%?]|[|:;\[\]<>]/}}})}e.exports=a,a.displayName="bison",a.aliases=[]},9784:function(e){"use strict";function t(e){e.languages.bnf={string:{pattern:/"[^\r\n"]*"|'[^\r\n']*'/},definition:{pattern:/<[^<>\r\n\t]+>(?=\s*::=)/,alias:["rule","keyword"],inside:{punctuation:/^<|>$/}},rule:{pattern:/<[^<>\r\n\t]+>/,inside:{punctuation:/^<|>$/}},operator:/::=|[|()[\]{}*+?]|\.{3}/},e.languages.rbnf=e.languages.bnf}e.exports=t,t.displayName="bnf",t.aliases=["rbnf"]},2689:function(e){"use strict";function t(e){e.languages.brainfuck={pointer:{pattern:/<|>/,alias:"keyword"},increment:{pattern:/\+/,alias:"inserted"},decrement:{pattern:/-/,alias:"deleted"},branching:{pattern:/\[|\]/,alias:"important"},operator:/[.,]/,comment:/\S+/}}e.exports=t,t.displayName="brainfuck",t.aliases=[]},6514:function(e){"use strict";function t(e){e.languages.brightscript={comment:/(?:\brem|').*/i,"directive-statement":{pattern:/(^[\t ]*)#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if).*/im,lookbehind:!0,alias:"property",inside:{"error-message":{pattern:/(^#error).+/,lookbehind:!0},directive:{pattern:/^#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if)/,alias:"keyword"},expression:{pattern:/[\s\S]+/,inside:null}}},property:{pattern:/([\r\n{,][\t ]*)(?:(?!\d)\w+|"(?:[^"\r\n]|"")*"(?!"))(?=[ \t]*:)/,lookbehind:!0,greedy:!0},string:{pattern:/"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},"class-name":{pattern:/(\bAs[\t ]+)\w+/i,lookbehind:!0},keyword:/\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\b/i,boolean:/\b(?:false|true)\b/i,function:/\b(?!\d)\w+(?=[\t ]*\()/,number:/(?:\b\d+(?:\.\d+)?(?:[ed][+-]\d+)?|&h[a-f\d]+)\b[%&!#]?/i,operator:/--|\+\+|>>=?|<<=?|<>|[-+*/\\<>]=?|[:^=?]|\b(?:and|mod|not|or)\b/i,punctuation:/[.,;()[\]{}]/,constant:/\b(?:LINE_NUM)\b/i},e.languages.brightscript["directive-statement"].inside.expression.inside=e.languages.brightscript}e.exports=t,t.displayName="brightscript",t.aliases=[]},25:function(e){"use strict";function t(e){e.languages.bro={comment:{pattern:/(^|[^\\$])#.*/,lookbehind:!0,inside:{italic:/\b(?:FIXME|TODO|XXX)\b/}},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},boolean:/\b[TF]\b/,function:{pattern:/(\b(?:event|function|hook)[ \t]+)\w+(?:::\w+)?/,lookbehind:!0},builtin:/(?:@(?:load(?:-(?:plugin|sigs))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:add_func|create_expire|default|delete_func|encrypt|error_handler|expire_func|group|log|mergeable|optional|persistent|priority|raw_output|read_expire|redef|rotate_interval|rotate_size|synchronized|type_column|write_expire))/,constant:{pattern:/(\bconst[ \t]+)\w+/i,lookbehind:!0},keyword:/\b(?:add|addr|alarm|any|bool|break|const|continue|count|delete|double|else|enum|event|export|file|for|function|global|hook|if|in|int|interval|local|module|next|of|opaque|pattern|port|print|record|return|schedule|set|string|subnet|table|time|timeout|using|vector|when)\b/,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&|\|\|?|\?|\*|\/|~|\^|%/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,punctuation:/[{}[\];(),.:]/}}e.exports=t,t.displayName="bro",t.aliases=[]},7501:function(e){"use strict";function t(e){e.languages.bsl={comment:/\/\/.*/,string:[{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},{pattern:/'(?:[^'\r\n\\]|\\.)*'/}],keyword:[{pattern:/(^|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:\u043f\u043e\u043a\u0430|\u0434\u043b\u044f|\u043d\u043e\u0432\u044b\u0439|\u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c|\u043f\u043e\u043f\u044b\u0442\u043a\u0430|\u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435|\u0432\u044b\u0437\u0432\u0430\u0442\u044c\u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435|\u0438\u043d\u0430\u0447\u0435|\u043a\u043e\u043d\u0435\u0446\u043f\u043e\u043f\u044b\u0442\u043a\u0438|\u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e|\u0444\u0443\u043d\u043a\u0446\u0438\u044f|\u043f\u0435\u0440\u0435\u043c|\u0432\u043e\u0437\u0432\u0440\u0430\u0442|\u043a\u043e\u043d\u0435\u0446\u0444\u0443\u043d\u043a\u0446\u0438\u0438|\u0435\u0441\u043b\u0438|\u0438\u043d\u0430\u0447\u0435\u0435\u0441\u043b\u0438|\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430|\u043a\u043e\u043d\u0435\u0446\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b|\u0442\u043e\u0433\u0434\u0430|\u0437\u043d\u0430\u0447|\u044d\u043a\u0441\u043f\u043e\u0440\u0442|\u043a\u043e\u043d\u0435\u0446\u0435\u0441\u043b\u0438|\u0438\u0437|\u043a\u0430\u0436\u0434\u043e\u0433\u043e|\u0438\u0441\u0442\u0438\u043d\u0430|\u043b\u043e\u0436\u044c|\u043f\u043e|\u0446\u0438\u043a\u043b|\u043a\u043e\u043d\u0435\u0446\u0446\u0438\u043a\u043b\u0430|\u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c)(?![\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,lookbehind:!0},{pattern:/\b(?:break|do|each|else|elseif|enddo|endfunction|endif|endprocedure|endtry|except|execute|export|false|for|function|if|in|new|null|procedure|raise|return|then|to|true|try|undefined|val|var|while)\b/i}],number:{pattern:/(^(?=\d)|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:\d+(?:\.\d*)?|\.\d+)(?:E[+-]?\d+)?/i,lookbehind:!0},operator:[/[<>+\-*/]=?|[%=]/,{pattern:/(^|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:\u0438|\u0438\u043b\u0438|\u043d\u0435)(?![\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,lookbehind:!0},{pattern:/\b(?:and|not|or)\b/i}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/,directive:[{pattern:/^([ \t]*)&.*/m,lookbehind:!0,greedy:!0,alias:"important"},{pattern:/^([ \t]*)#.*/gm,lookbehind:!0,greedy:!0,alias:"important"}]},e.languages.oscript=e.languages.bsl}e.exports=t,t.displayName="bsl",t.aliases=[]},272:function(e){"use strict";function t(e){e.languages.c=e.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),e.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),e.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},e.languages.c.string],char:e.languages.c.char,comment:e.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:e.languages.c}}}}),e.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete e.languages.c.boolean}e.exports=t,t.displayName="c",t.aliases=[]},943:function(e){"use strict";function t(e){e.languages.cfscript=e.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,inside:{annotation:{pattern:/(?:^|[^.])@[\w\.]+/,alias:"punctuation"}}},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],keyword:/\b(?:abstract|break|catch|component|continue|default|do|else|extends|final|finally|for|function|if|in|include|package|private|property|public|remote|required|rethrow|return|static|switch|throw|try|var|while|xml)\b(?!\s*=)/,operator:[/\+\+|--|&&|\|\||::|=>|[!=]==|<=?|>=?|[-+*/%&|^!=<>]=?|\?(?:\.|:)?|[?:]/,/\b(?:and|contains|eq|equal|eqv|gt|gte|imp|is|lt|lte|mod|not|or|xor)\b/],scope:{pattern:/\b(?:application|arguments|cgi|client|cookie|local|session|super|this|variables)\b/,alias:"global"},type:{pattern:/\b(?:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|void|xml)\b/,alias:"builtin"}}),e.languages.insertBefore("cfscript","keyword",{"function-variable":{pattern:/[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"}}),delete e.languages.cfscript["class-name"],e.languages.cfc=e.languages.cfscript}e.exports=t,t.displayName="cfscript",t.aliases=[]},9785:function(e,t,n){"use strict";var r=n(8593);function a(e){e.register(r),e.languages.chaiscript=e.languages.extend("clike",{string:{pattern:/(^|[^\\])'(?:[^'\\]|\\[\s\S])*'/,lookbehind:!0,greedy:!0},"class-name":[{pattern:/(\bclass\s+)\w+/,lookbehind:!0},{pattern:/(\b(?:attr|def)\s+)\w+(?=\s*::)/,lookbehind:!0}],keyword:/\b(?:attr|auto|break|case|catch|class|continue|def|default|else|finally|for|fun|global|if|return|switch|this|try|var|while)\b/,number:[e.languages.cpp.number,/\b(?:Infinity|NaN)\b/],operator:/>>=?|<<=?|\|\||&&|:[:=]?|--|\+\+|[=!<>+\-*/%|&^]=?|[?~]|`[^`\r\n]{1,4}`/}),e.languages.insertBefore("chaiscript","operator",{"parameter-type":{pattern:/([,(]\s*)\w+(?=\s+\w)/,lookbehind:!0,alias:"class-name"}}),e.languages.insertBefore("chaiscript","string",{"string-interpolation":{pattern:/(^|[^\\])"(?:[^"$\\]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\}/,lookbehind:!0,inside:{"interpolation-expression":{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.chaiscript},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"}}},string:/[\s\S]+/}}})}e.exports=a,a.displayName="chaiscript",a.aliases=[]},9529:function(e){"use strict";function t(e){e.languages.cil={comment:/\/\/.*/,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},directive:{pattern:/(^|\W)\.[a-z]+(?=\s)/,lookbehind:!0,alias:"class-name"},variable:/\[[\w\.]+\]/,keyword:/\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|u?int(?:8|16|32|64)?|iant|idispatch|implements|import|initonly|instance|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\b/,function:/\b(?:(?:constrained|no|readonly|tail|unaligned|volatile)\.)?(?:conv\.(?:[iu][1248]?|ovf\.[iu][1248]?(?:\.un)?|r\.un|r4|r8)|ldc\.(?:i4(?:\.\d+|\.[mM]1|\.s)?|i8|r4|r8)|ldelem(?:\.[iu][1248]?|\.r[48]|\.ref|a)?|ldind\.(?:[iu][1248]?|r[48]|ref)|stelem\.?(?:i[1248]?|r[48]|ref)?|stind\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\.[0-3s]|a(?:\.s)?)?|ldloc(?:\.\d+|\.s)?|sub(?:\.ovf(?:\.un)?)?|mul(?:\.ovf(?:\.un)?)?|add(?:\.ovf(?:\.un)?)?|stloc(?:\.[0-3s])?|refany(?:type|val)|blt(?:\.un)?(?:\.s)?|ble(?:\.un)?(?:\.s)?|bgt(?:\.un)?(?:\.s)?|bge(?:\.un)?(?:\.s)?|unbox(?:\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\.s)?|bne\.un(?:\.s)?|ldloca(?:\.s)?|brzero(?:\.s)?|brtrue(?:\.s)?|brnull(?:\.s)?|brinst(?:\.s)?|starg(?:\.s)?|leave(?:\.s)?|shr(?:\.un)?|rem(?:\.un)?|div(?:\.un)?|clt(?:\.un)?|alignment|castclass|ldvirtftn|beq(?:\.s)?|ckfinite|ldsflda|ldtoken|localloc|mkrefany|rethrow|cgt\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\b/,boolean:/\b(?:false|true)\b/,number:/\b-?(?:0x[0-9a-f]+|\d+)(?:\.[0-9a-f]+)?\b/i,punctuation:/[{}[\];(),:=]|IL_[0-9A-Za-z]+/}}e.exports=t,t.displayName="cil",t.aliases=[]},3052:function(e){"use strict";function t(e){e.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}}e.exports=t,t.displayName="clike",t.aliases=[]},1915:function(e){"use strict";function t(e){e.languages.clojure={comment:{pattern:/;.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},char:/\\\w+/,symbol:{pattern:/(^|[\s()\[\]{},])::?[\w*+!?'<>=/.-]+/,lookbehind:!0},keyword:{pattern:/(\()(?:-|->|->>|\.|\.\.|\*|\/|\+|<|<=|=|==|>|>=|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|cond|conj|cons|constantly|construct-proxy|contains\?|count|create-ns|create-struct|cycle|dec|declare|def|def-|definline|definterface|defmacro|defmethod|defmulti|defn|defn-|defonce|defproject|defprotocol|defrecord|defstruct|deftype|deref|difference|disj|dissoc|distinct|do|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\?|ensure|eval|every\?|false\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|fn|fnseq|for|frest|gensym|get|get-proxy-class|hash-map|hash-set|identical\?|identity|if|if-let|if-not|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\?|last|lazy-cat|lazy-cons|left|lefts|let|line-seq|list|list\*|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|monitor-enter|name|namespace|neg\?|new|newline|next|nil\?|node|not|not-any\?|not-every\?|not=|ns|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|quote|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|recur|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\?|set|set!|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\?|split-at|split-with|str|string\?|struct|struct-map|subs|subvec|symbol|symbol\?|sync|take|take-nth|take-while|test|throw|time|to-array|to-array-2d|tree-seq|true\?|try|union|up|update-proxy|val|vals|var|var-get|var-set|var\?|vector|vector-zip|vector\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\?|zipmap|zipper)(?=[\s)]|$)/,lookbehind:!0},boolean:/\b(?:false|nil|true)\b/,number:{pattern:/(^|[^\w$@])(?:\d+(?:[/.]\d+)?(?:e[+-]?\d+)?|0x[a-f0-9]+|[1-9]\d?r[a-z0-9]+)[lmn]?(?![\w$@])/i,lookbehind:!0},function:{pattern:/((?:^|[^'])\()[\w*+!?'<>=/.-]+(?=[\s)]|$)/,lookbehind:!0},operator:/[#@^`~]/,punctuation:/[{}\[\](),]/}}e.exports=t,t.displayName="clojure",t.aliases=[]},3549:function(e){"use strict";function t(e){e.languages.cmake={comment:/#.*/,string:{pattern:/"(?:[^\\"]|\\.)*"/,greedy:!0,inside:{interpolation:{pattern:/\$\{(?:[^{}$]|\$\{[^{}$]*\})*\}/,inside:{punctuation:/\$\{|\}/,variable:/\w+/}}}},variable:/\b(?:CMAKE_\w+|\w+_(?:(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT|VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?)|(?:ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_(?:BINARY_DIR|DESCRIPTION|HOMEPAGE_URL|NAME|SOURCE_DIR|VERSION|VERSION_(?:MAJOR|MINOR|PATCH|TWEAK))|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE|XCODE_VERSION))\b/,property:/\b(?:cxx_\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\w+|\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|GLOBAL_KEYWORD|GLOBAL_PROJECT_TYPES|GLOBAL_ROOTNAMESPACE|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\b/,keyword:/\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\s*\()\b/,boolean:/\b(?:FALSE|OFF|ON|TRUE)\b/,namespace:/\b(?:INTERFACE|PRIVATE|PROPERTIES|PUBLIC|SHARED|STATIC|TARGET_OBJECTS)\b/,operator:/\b(?:AND|DEFINED|EQUAL|GREATER|LESS|MATCHES|NOT|OR|STREQUAL|STRGREATER|STRLESS|VERSION_EQUAL|VERSION_GREATER|VERSION_LESS)\b/,inserted:{pattern:/\b\w+::\w+\b/,alias:"class-name"},number:/\b\d+(?:\.\d+)*\b/,function:/\b[a-z_]\w*(?=\s*\()\b/i,punctuation:/[()>}]|\$[<{]/}}e.exports=t,t.displayName="cmake",t.aliases=[]},4732:function(e){"use strict";function t(e){e.languages.cobol={comment:{pattern:/\*>.*|(^[ \t]*)\*.*/m,lookbehind:!0,greedy:!0},string:{pattern:/[xzgn]?(?:"(?:[^\r\n"]|"")*"(?!")|'(?:[^\r\n']|'')*'(?!'))/i,greedy:!0},level:{pattern:/(^[ \t]*)\d+\b/m,lookbehind:!0,greedy:!0,alias:"number"},"class-name":{pattern:/(\bpic(?:ture)?\s+)(?:(?:[-\w$/,:*+<>]|\.(?!\s|$))(?:\(\d+\))?)+/i,lookbehind:!0,inside:{number:{pattern:/(\()\d+/,lookbehind:!0},punctuation:/[()]/}},keyword:{pattern:/(^|[^\w-])(?:ABORT|ACCEPT|ACCESS|ADD|ADDRESS|ADVANCING|AFTER|ALIGNED|ALL|ALPHABET|ALPHABETIC|ALPHABETIC-LOWER|ALPHABETIC-UPPER|ALPHANUMERIC|ALPHANUMERIC-EDITED|ALSO|ALTER|ALTERNATE|ANY|ARE|AREA|AREAS|AS|ASCENDING|ASCII|ASSIGN|ASSOCIATED-DATA|ASSOCIATED-DATA-LENGTH|AT|ATTRIBUTE|AUTHOR|AUTO|AUTO-SKIP|BACKGROUND-COLOR|BACKGROUND-COLOUR|BASIS|BEEP|BEFORE|BEGINNING|BELL|BINARY|BIT|BLANK|BLINK|BLOCK|BOTTOM|BOUNDS|BY|BYFUNCTION|BYTITLE|CALL|CANCEL|CAPABLE|CCSVERSION|CD|CF|CH|CHAINING|CHANGED|CHANNEL|CHARACTER|CHARACTERS|CLASS|CLASS-ID|CLOCK-UNITS|CLOSE|CLOSE-DISPOSITION|COBOL|CODE|CODE-SET|COL|COLLATING|COLUMN|COM-REG|COMMA|COMMITMENT|COMMON|COMMUNICATION|COMP|COMP-1|COMP-2|COMP-3|COMP-4|COMP-5|COMPUTATIONAL|COMPUTATIONAL-1|COMPUTATIONAL-2|COMPUTATIONAL-3|COMPUTATIONAL-4|COMPUTATIONAL-5|COMPUTE|CONFIGURATION|CONTAINS|CONTENT|CONTINUE|CONTROL|CONTROL-POINT|CONTROLS|CONVENTION|CONVERTING|COPY|CORR|CORRESPONDING|COUNT|CRUNCH|CURRENCY|CURSOR|DATA|DATA-BASE|DATE|DATE-COMPILED|DATE-WRITTEN|DAY|DAY-OF-WEEK|DBCS|DE|DEBUG-CONTENTS|DEBUG-ITEM|DEBUG-LINE|DEBUG-NAME|DEBUG-SUB-1|DEBUG-SUB-2|DEBUG-SUB-3|DEBUGGING|DECIMAL-POINT|DECLARATIVES|DEFAULT|DEFAULT-DISPLAY|DEFINITION|DELETE|DELIMITED|DELIMITER|DEPENDING|DESCENDING|DESTINATION|DETAIL|DFHRESP|DFHVALUE|DISABLE|DISK|DISPLAY|DISPLAY-1|DIVIDE|DIVISION|DONTCARE|DOUBLE|DOWN|DUPLICATES|DYNAMIC|EBCDIC|EGCS|EGI|ELSE|EMI|EMPTY-CHECK|ENABLE|END|END-ACCEPT|END-ADD|END-CALL|END-COMPUTE|END-DELETE|END-DIVIDE|END-EVALUATE|END-IF|END-MULTIPLY|END-OF-PAGE|END-PERFORM|END-READ|END-RECEIVE|END-RETURN|END-REWRITE|END-SEARCH|END-START|END-STRING|END-SUBTRACT|END-UNSTRING|END-WRITE|ENDING|ENTER|ENTRY|ENTRY-PROCEDURE|ENVIRONMENT|EOL|EOP|EOS|ERASE|ERROR|ESCAPE|ESI|EVALUATE|EVENT|EVERY|EXCEPTION|EXCLUSIVE|EXHIBIT|EXIT|EXPORT|EXTEND|EXTENDED|EXTERNAL|FD|FILE|FILE-CONTROL|FILLER|FINAL|FIRST|FOOTING|FOR|FOREGROUND-COLOR|FOREGROUND-COLOUR|FROM|FULL|FUNCTION|FUNCTION-POINTER|FUNCTIONNAME|GENERATE|GIVING|GLOBAL|GO|GOBACK|GRID|GROUP|HEADING|HIGH-VALUE|HIGH-VALUES|HIGHLIGHT|I-O|I-O-CONTROL|ID|IDENTIFICATION|IF|IMPLICIT|IMPORT|IN|INDEX|INDEXED|INDICATE|INITIAL|INITIALIZE|INITIATE|INPUT|INPUT-OUTPUT|INSPECT|INSTALLATION|INTEGER|INTO|INVALID|INVOKE|IS|JUST|JUSTIFIED|KANJI|KEPT|KEY|KEYBOARD|LABEL|LANGUAGE|LAST|LB|LD|LEADING|LEFT|LEFTLINE|LENGTH|LENGTH-CHECK|LIBACCESS|LIBPARAMETER|LIBRARY|LIMIT|LIMITS|LINAGE|LINAGE-COUNTER|LINE|LINE-COUNTER|LINES|LINKAGE|LIST|LOCAL|LOCAL-STORAGE|LOCK|LONG-DATE|LONG-TIME|LOW-VALUE|LOW-VALUES|LOWER|LOWLIGHT|MEMORY|MERGE|MESSAGE|MMDDYYYY|MODE|MODULES|MORE-LABELS|MOVE|MULTIPLE|MULTIPLY|NAMED|NATIONAL|NATIONAL-EDITED|NATIVE|NEGATIVE|NETWORK|NEXT|NO|NO-ECHO|NULL|NULLS|NUMBER|NUMERIC|NUMERIC-DATE|NUMERIC-EDITED|NUMERIC-TIME|OBJECT-COMPUTER|OCCURS|ODT|OF|OFF|OMITTED|ON|OPEN|OPTIONAL|ORDER|ORDERLY|ORGANIZATION|OTHER|OUTPUT|OVERFLOW|OVERLINE|OWN|PACKED-DECIMAL|PADDING|PAGE|PAGE-COUNTER|PASSWORD|PERFORM|PF|PH|PIC|PICTURE|PLUS|POINTER|PORT|POSITION|POSITIVE|PRINTER|PRINTING|PRIVATE|PROCEDURE|PROCEDURE-POINTER|PROCEDURES|PROCEED|PROCESS|PROGRAM|PROGRAM-ID|PROGRAM-LIBRARY|PROMPT|PURGE|QUEUE|QUOTE|QUOTES|RANDOM|RD|READ|READER|REAL|RECEIVE|RECEIVED|RECORD|RECORDING|RECORDS|RECURSIVE|REDEFINES|REEL|REF|REFERENCE|REFERENCES|RELATIVE|RELEASE|REMAINDER|REMARKS|REMOTE|REMOVAL|REMOVE|RENAMES|REPLACE|REPLACING|REPORT|REPORTING|REPORTS|REQUIRED|RERUN|RESERVE|RESET|RETURN|RETURN-CODE|RETURNING|REVERSE-VIDEO|REVERSED|REWIND|REWRITE|RF|RH|RIGHT|ROUNDED|RUN|SAME|SAVE|SCREEN|SD|SEARCH|SECTION|SECURE|SECURITY|SEGMENT|SEGMENT-LIMIT|SELECT|SEND|SENTENCE|SEPARATE|SEQUENCE|SEQUENTIAL|SET|SHARED|SHAREDBYALL|SHAREDBYRUNUNIT|SHARING|SHIFT-IN|SHIFT-OUT|SHORT-DATE|SIGN|SIZE|SORT|SORT-CONTROL|SORT-CORE-SIZE|SORT-FILE-SIZE|SORT-MERGE|SORT-MESSAGE|SORT-MODE-SIZE|SORT-RETURN|SOURCE|SOURCE-COMPUTER|SPACE|SPACES|SPECIAL-NAMES|STANDARD|STANDARD-1|STANDARD-2|START|STATUS|STOP|STRING|SUB-QUEUE-1|SUB-QUEUE-2|SUB-QUEUE-3|SUBTRACT|SUM|SUPPRESS|SYMBOL|SYMBOLIC|SYNC|SYNCHRONIZED|TABLE|TALLY|TALLYING|TAPE|TASK|TERMINAL|TERMINATE|TEST|TEXT|THEN|THREAD|THREAD-LOCAL|THROUGH|THRU|TIME|TIMER|TIMES|TITLE|TO|TODAYS-DATE|TODAYS-NAME|TOP|TRAILING|TRUNCATED|TYPE|TYPEDEF|UNDERLINE|UNIT|UNSTRING|UNTIL|UP|UPON|USAGE|USE|USING|VALUE|VALUES|VARYING|VIRTUAL|WAIT|WHEN|WHEN-COMPILED|WITH|WORDS|WORKING-STORAGE|WRITE|YEAR|YYYYDDD|YYYYMMDD|ZERO-FILL|ZEROES|ZEROS)(?![\w-])/i,lookbehind:!0},boolean:{pattern:/(^|[^\w-])(?:false|true)(?![\w-])/i,lookbehind:!0},number:{pattern:/(^|[^\w-])(?:[+-]?(?:(?:\d+(?:[.,]\d+)?|[.,]\d+)(?:e[+-]?\d+)?|zero))(?![\w-])/i,lookbehind:!0},operator:[/<>|[<>]=?|[=+*/&]/,{pattern:/(^|[^\w-])(?:-|and|equal|greater|less|not|or|than)(?![\w-])/i,lookbehind:!0}],punctuation:/[.:,()]/}}e.exports=t,t.displayName="cobol",t.aliases=[]},6522:function(e){"use strict";function t(e){!function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(e)}e.exports=t,t.displayName="coffeescript",t.aliases=["coffee"]},3723:function(e){"use strict";function t(e){e.languages.concurnas={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\/\/.*)/,lookbehind:!0,greedy:!0},langext:{pattern:/\b\w+\s*\|\|[\s\S]+?\|\|/,greedy:!0,inside:{"class-name":/^\w+/,string:{pattern:/(^\s*\|\|)[\s\S]+(?=\|\|$)/,lookbehind:!0},punctuation:/\|\|/}},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/,lookbehind:!0},keyword:/\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\b/,boolean:/\b(?:false|true)\b/,number:/\b0b[01][01_]*L?\b|\b0x(?:[\da-f_]*\.)?[\da-f_p+-]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfls]?/i,punctuation:/[{}[\];(),.:]/,operator:/<==|>==|=>|->|<-|<>|&==|&<>|\?:?|\.\?|\+\+|--|[-+*/=<>]=?|[!^~]|\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\b=?/,annotation:{pattern:/@(?:\w+:)?(?:\w+|\[[^\]]+\])?/,alias:"builtin"}},e.languages.insertBefore("concurnas","langext",{"regex-literal":{pattern:/\br("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:e.languages.concurnas},regex:/[\s\S]+/}},"string-literal":{pattern:/(?:\B|\bs)("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:e.languages.concurnas},string:/[\s\S]+/}}}),e.languages.conc=e.languages.concurnas}e.exports=t,t.displayName="concurnas",t.aliases=["conc"]},423:function(e){"use strict";function t(e){!function(e){for(var t=/\(\*(?:[^(*]|\((?!\*)|\*(?!\))|<self>)*\*\)/.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,"[]"),e.languages.coq={comment:RegExp(t),string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},attribute:[{pattern:RegExp(/#\[(?:[^\[\]("]|"(?:[^"]|"")*"(?!")|\((?!\*)|<comment>)*\]/.source.replace(/<comment>/g,(function(){return t}))),greedy:!0,alias:"attr-name",inside:{comment:RegExp(t),string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},operator:/=/,punctuation:/^#\[|\]$|[,()]/}},{pattern:/\b(?:Cumulative|Global|Local|Monomorphic|NonCumulative|Polymorphic|Private|Program)\b/,alias:"attr-name"}],keyword:/\b(?:Abort|About|Add|Admit|Admitted|All|Arguments|As|Assumptions|Axiom|Axioms|Back|BackTo|Backtrace|BinOp|BinOpSpec|BinRel|Bind|Blacklist|Canonical|Case|Cd|Check|Class|Classes|Close|CoFixpoint|CoInductive|Coercion|Coercions|Collection|Combined|Compute|Conjecture|Conjectures|Constant|Constants|Constraint|Constructors|Context|Corollary|Create|CstOp|Custom|Cut|Debug|Declare|Defined|Definition|Delimit|Dependencies|Dependent|Derive|Diffs|Drop|Elimination|End|Entry|Equality|Eval|Example|Existential|Existentials|Existing|Export|Extern|Extraction|Fact|Fail|Field|File|Firstorder|Fixpoint|Flags|Focus|From|Funclass|Function|Functional|GC|Generalizable|Goal|Grab|Grammar|Graph|Guarded|Haskell|Heap|Hide|Hint|HintDb|Hints|Hypotheses|Hypothesis|IF|Identity|Immediate|Implicit|Implicits|Import|Include|Induction|Inductive|Infix|Info|Initial|InjTyp|Inline|Inspect|Instance|Instances|Intro|Intros|Inversion|Inversion_clear|JSON|Language|Left|Lemma|Let|Lia|Libraries|Library|Load|LoadPath|Locate|Ltac|Ltac2|ML|Match|Method|Minimality|Module|Modules|Morphism|Next|NoInline|Notation|Number|OCaml|Obligation|Obligations|Opaque|Open|Optimize|Parameter|Parameters|Parametric|Path|Paths|Prenex|Preterm|Primitive|Print|Profile|Projections|Proof|Prop|PropBinOp|PropOp|PropUOp|Property|Proposition|Pwd|Qed|Quit|Rec|Record|Recursive|Redirect|Reduction|Register|Relation|Remark|Remove|Require|Reserved|Reset|Resolve|Restart|Rewrite|Right|Ring|Rings|SProp|Saturate|Save|Scheme|Scope|Scopes|Search|SearchHead|SearchPattern|SearchRewrite|Section|Separate|Set|Setoid|Show|Signatures|Solve|Solver|Sort|Sortclass|Sorted|Spec|Step|Strategies|Strategy|String|Structure|SubClass|Subgraph|SuchThat|Tactic|Term|TestCompile|Theorem|Time|Timeout|To|Transparent|Type|Typeclasses|Types|Typing|UnOp|UnOpSpec|Undelimit|Undo|Unfocus|Unfocused|Unfold|Universe|Universes|Unshelve|Variable|Variables|Variant|Verbose|View|Visibility|Zify|_|apply|as|at|by|cofix|else|end|exists|exists2|fix|for|forall|fun|if|in|let|match|measure|move|removed|return|struct|then|using|wf|where|with)\b/,number:/\b(?:0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]+)?(?:p[+-]?\d[\d_]*)?|\d[\d_]*(?:\.[\d_]+)?(?:e[+-]?\d[\d_]*)?)\b/i,punct:{pattern:/@\{|\{\||\[=|:>/,alias:"punctuation"},operator:/\/\\|\\\/|\.{2,3}|:{1,2}=|\*\*|[-=]>|<(?:->?|[+:=>]|<:)|>(?:=|->)|\|[-|]?|[-!%&*+/<=>?@^~']/,punctuation:/\.\(|`\(|@\{|`\{|\{\||\[=|:>|[:.,;(){}\[\]]/}}(e)}e.exports=t,t.displayName="coq",t.aliases=[]},8593:function(e,t,n){"use strict";var r=n(272);function a(e){e.register(r),function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(e)}e.exports=a,a.displayName="cpp",a.aliases=[]},7916:function(e,t,n){"use strict";var r=n(6326);function a(e){e.register(r),function(e){e.languages.crystal=e.languages.extend("ruby",{keyword:[/\b(?:__DIR__|__END_LINE__|__FILE__|__LINE__|abstract|alias|annotation|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|ifdef|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|ptr|require|rescue|return|select|self|sizeof|struct|super|then|type|typeof|undef|uninitialized|union|unless|until|when|while|with|yield)\b/,{pattern:/(\.\s*)(?:is_a|responds_to)\?/,lookbehind:!0}],number:/\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\da-fA-F_]*[\da-fA-F]|(?:\d(?:[\d_]*\d)?)(?:\.[\d_]*\d)?(?:[eE][+-]?[\d_]*\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\b/,operator:[/->/,e.languages.ruby.operator],punctuation:/[(){}[\].,;\\]/}),e.languages.insertBefore("crystal","string-literal",{attribute:{pattern:/@\[.*?\]/,inside:{delimiter:{pattern:/^@\[|\]$/,alias:"punctuation"},attribute:{pattern:/^(\s*)\w+/,lookbehind:!0,alias:"class-name"},args:{pattern:/\S(?:[\s\S]*\S)?/,inside:e.languages.crystal}}},expansion:{pattern:/\{(?:\{.*?\}|%.*?%)\}/,inside:{content:{pattern:/^(\{.)[\s\S]+(?=.\}$)/,lookbehind:!0,inside:e.languages.crystal},delimiter:{pattern:/^\{[\{%]|[\}%]\}$/,alias:"operator"}}},char:{pattern:/'(?:[^\\\r\n]{1,2}|\\(?:.|u(?:[A-Fa-f0-9]{1,4}|\{[A-Fa-f0-9]{1,6}\})))'/,greedy:!0}})}(e)}e.exports=a,a.displayName="crystal",a.aliases=[]},3281:function(e){"use strict";function t(e){!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,(function(e,n){return"(?:"+t[+n]+")"}))}function n(e,n,r){return RegExp(t(e,n),r||"")}function r(e,t){for(var n=0;n<t;n++)e=e.replace(/<<self>>/g,(function(){return"(?:"+e+")"}));return e.replace(/<<self>>/g,"[^\\s\\S]")}var a="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",i="class enum interface record struct",o="add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",s="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var c=l(i),u=RegExp(l(a+" "+i+" "+o+" "+s)),d=l(i+" "+o+" "+s),p=l(a+" "+i+" "+s),m=r(/<(?:[^<>;=+\-*/%&|^]|<<self>>)*>/.source,2),g=r(/\((?:[^()]|<<self>>)*\)/.source,2),h=/@?\b[A-Za-z_]\w*\b/.source,f=t(/<<0>>(?:\s*<<1>>)?/.source,[h,m]),b=t(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[d,f]),E=/\[\s*(?:,\s*)*\]/.source,y=t(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[b,E]),T=t(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[m,g,E]),S=t(/\(<<0>>+(?:,<<0>>+)+\)/.source,[T]),v=t(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[S,b,E]),A={keyword:u,punctuation:/[<>()?,.:[\]]/},k=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,w=/"(?:\\.|[^\\"\r\n])*"/.source,_=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;e.languages.csharp=e.languages.extend("clike",{string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[_]),lookbehind:!0,greedy:!0},{pattern:n(/(^|[^@$\\])<<0>>/.source,[w]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:n(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[b]),lookbehind:!0,inside:A},{pattern:n(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[h,v]),lookbehind:!0,inside:A},{pattern:n(/(\busing\s+)<<0>>(?=\s*=)/.source,[h]),lookbehind:!0},{pattern:n(/(\b<<0>>\s+)<<1>>/.source,[c,f]),lookbehind:!0,inside:A},{pattern:n(/(\bcatch\s*\(\s*)<<0>>/.source,[b]),lookbehind:!0,inside:A},{pattern:n(/(\bwhere\s+)<<0>>/.source,[h]),lookbehind:!0},{pattern:n(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[y]),lookbehind:!0,inside:A},{pattern:n(/\b<<0>>(?=\s+(?!<<1>>|with\s*\{)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[v,p,h]),inside:A}],keyword:u,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:n(/([(,]\s*)<<0>>(?=\s*:)/.source,[h]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:n(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[h]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:n(/(\b(?:default|sizeof|typeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[g]),lookbehind:!0,alias:"class-name",inside:A},"return-type":{pattern:n(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[v,b]),inside:A,alias:"class-name"},"constructor-invocation":{pattern:n(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[v]),lookbehind:!0,inside:A,alias:"class-name"},"generic-method":{pattern:n(/<<0>>\s*<<1>>(?=\s*\()/.source,[h,m]),inside:{function:n(/^<<0>>/.source,[h]),generic:{pattern:RegExp(m),alias:"class-name",inside:A}}},"type-list":{pattern:n(/\b((?:<<0>>\s+<<1>>|record\s+<<1>>\s*<<5>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>|<<1>>\s*<<5>>|<<6>>)(?:\s*,\s*(?:<<3>>|<<4>>|<<6>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[c,f,h,v,u.source,g,/\bnew\s*\(\s*\)/.source]),lookbehind:!0,inside:{"record-arguments":{pattern:n(/(^(?!new\s*\()<<0>>\s*)<<1>>/.source,[f,g]),lookbehind:!0,greedy:!0,inside:e.languages.csharp},keyword:u,"class-name":{pattern:RegExp(v),greedy:!0,inside:A},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var C=w+"|"+k,N=t(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[C]),I=r(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[N]),2),x=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,R=t(/<<0>>(?:\s*\(<<1>>*\))?/.source,[b,I]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:n(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[x,R]),lookbehind:!0,greedy:!0,inside:{target:{pattern:n(/^<<0>>(?=\s*:)/.source,[x]),alias:"keyword"},"attribute-arguments":{pattern:n(/\(<<0>>*\)/.source,[I]),inside:e.languages.csharp},"class-name":{pattern:RegExp(b),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var O=/:[^}\r\n]+/.source,L=r(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[N]),2),P=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[L,O]),D=r(t(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<<self>>*\)/.source,[C]),2),M=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[D,O]);function F(t,r){return{interpolation:{pattern:n(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[t]),lookbehind:!0,inside:{"format-string":{pattern:n(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[r,O]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:n(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[P]),lookbehind:!0,greedy:!0,inside:F(P,L)},{pattern:n(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[M]),lookbehind:!0,greedy:!0,inside:F(M,D)}],char:{pattern:RegExp(k),greedy:!0}}),e.languages.dotnet=e.languages.cs=e.languages.csharp}(e)}e.exports=t,t.displayName="csharp",t.aliases=["dotnet","cs"]},9333:function(e,t,n){"use strict";var r=n(3281);function a(e){e.register(r),function(e){var t=/\/(?![/*])|\/\/.*[\r\n]|\/\*[^*]*(?:\*(?!\/)[^*]*)*\*\//.source,n=/@(?!")|"(?:[^\r\n\\"]|\\.)*"|@"(?:[^\\"]|""|\\[\s\S])*"(?!")/.source+"|"+/'(?:(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'|(?=[^\\](?!')))/.source;function r(e,r){for(var a=0;a<r;a++)e=e.replace(/<self>/g,(function(){return"(?:"+e+")"}));return e.replace(/<self>/g,"[^\\s\\S]").replace(/<str>/g,"(?:"+n+")").replace(/<comment>/g,"(?:"+t+")")}var a=r(/\((?:[^()'"@/]|<str>|<comment>|<self>)*\)/.source,2),i=r(/\[(?:[^\[\]'"@/]|<str>|<comment>|<self>)*\]/.source,2),o=r(/\{(?:[^{}'"@/]|<str>|<comment>|<self>)*\}/.source,2),s=r(/<(?:[^<>'"@/]|<str>|<comment>|<self>)*>/.source,2),l=/(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?/.source,c=/(?!\d)[^\s>\/=$<%]+/.source+l+/\s*\/?>/.source,u=/\B@?/.source+"(?:"+/<([a-zA-Z][\w:]*)/.source+l+/\s*>/.source+"(?:"+/[^<]/.source+"|"+/<\/?(?!\1\b)/.source+c+"|"+r(/<\1/.source+l+/\s*>/.source+"(?:"+/[^<]/.source+"|"+/<\/?(?!\1\b)/.source+c+"|<self>)*"+/<\/\1\s*>/.source,2)+")*"+/<\/\1\s*>/.source+"|"+/</.source+c+")";e.languages.cshtml=e.languages.extend("markup",{});var d={pattern:/\S[\s\S]*/,alias:"language-csharp",inside:e.languages.insertBefore("csharp","string",{html:{pattern:RegExp(u),greedy:!0,inside:e.languages.cshtml}},{csharp:e.languages.extend("csharp",{})})};e.languages.insertBefore("cshtml","prolog",{"razor-comment":{pattern:/@\*[\s\S]*?\*@/,greedy:!0,alias:"comment"},block:{pattern:RegExp(/(^|[^@])@/.source+"(?:"+[o,/(?:code|functions)\s*/.source+o,/(?:for|foreach|lock|switch|using|while)\s*/.source+a+/\s*/.source+o,/do\s*/.source+o+/\s*while\s*/.source+a+/(?:\s*;)?/.source,/try\s*/.source+o+/\s*catch\s*/.source+a+/\s*/.source+o+/\s*finally\s*/.source+o,/if\s*/.source+a+/\s*/.source+o+"(?:"+/\s*else/.source+"(?:"+/\s+if\s*/.source+a+")?"+/\s*/.source+o+")*"].join("|")+")"),lookbehind:!0,greedy:!0,inside:{keyword:/^@\w*/,csharp:d}},directive:{pattern:/^([ \t]*)@(?:addTagHelper|attribute|implements|inherits|inject|layout|model|namespace|page|preservewhitespace|removeTagHelper|section|tagHelperPrefix|using)(?=\s).*/m,lookbehind:!0,greedy:!0,inside:{keyword:/^@\w+/,csharp:d}},value:{pattern:RegExp(/(^|[^@])@/.source+/(?:await\b\s*)?/.source+"(?:"+/\w+\b/.source+"|"+a+")(?:"+/[?!]?\.\w+\b/.source+"|"+a+"|"+i+"|"+s+a+")*"),lookbehind:!0,greedy:!0,alias:"variable",inside:{keyword:/^@/,csharp:d}},"delegate-operator":{pattern:/(^|[^@])@(?=<)/,lookbehind:!0,alias:"operator"}}),e.languages.razor=e.languages.cshtml}(e)}e.exports=a,a.displayName="cshtml",a.aliases=["razor"]},3524:function(e){"use strict";function t(e){!function(e){function t(e){return RegExp(/([ \t])/.source+"(?:"+e+")"+/(?=[\s;]|$)/.source,"i")}e.languages.csp={directive:{pattern:/(^|[\s;])(?:base-uri|block-all-mixed-content|(?:child|connect|default|font|frame|img|manifest|media|object|prefetch|script|style|worker)-src|disown-opener|form-action|frame-(?:ancestors|options)|input-protection(?:-(?:clip|selectors))?|navigate-to|plugin-types|policy-uri|referrer|reflected-xss|report-(?:to|uri)|require-sri-for|sandbox|(?:script|style)-src-(?:attr|elem)|upgrade-insecure-requests)(?=[\s;]|$)/i,lookbehind:!0,alias:"property"},scheme:{pattern:t(/[a-z][a-z0-9.+-]*:/.source),lookbehind:!0},none:{pattern:t(/'none'/.source),lookbehind:!0,alias:"keyword"},nonce:{pattern:t(/'nonce-[-+/\w=]+'/.source),lookbehind:!0,alias:"number"},hash:{pattern:t(/'sha(?:256|384|512)-[-+/\w=]+'/.source),lookbehind:!0,alias:"number"},host:{pattern:t(/[a-z][a-z0-9.+-]*:\/\/[^\s;,']*/.source+"|"+/\*[^\s;,']*/.source+"|"+/[a-z0-9-]+(?:\.[a-z0-9-]+)+(?::[\d*]+)?(?:\/[^\s;,']*)?/.source),lookbehind:!0,alias:"url",inside:{important:/\*/}},keyword:[{pattern:t(/'unsafe-[a-z-]+'/.source),lookbehind:!0,alias:"unsafe"},{pattern:t(/'[a-z-]+'/.source),lookbehind:!0,alias:"safe"}],punctuation:/;/}}(e)}e.exports=t,t.displayName="csp",t.aliases=[]},9689:function(e){"use strict";function t(e){!function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(e)}e.exports=t,t.displayName="cssExtras",t.aliases=[]},9625:function(e){"use strict";function t(e){!function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(e)}e.exports=t,t.displayName="css",t.aliases=[]},691:function(e){"use strict";function t(e){e.languages.csv={value:/[^\r\n,"]+|"(?:[^"]|"")*"(?!")/,punctuation:/,/}}e.exports=t,t.displayName="csv",t.aliases=[]},4704:function(e){"use strict";function t(e){e.languages.cypher={comment:/\/\/.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/,greedy:!0},"class-name":{pattern:/(:\s*)(?:\w+|`(?:[^`\\\r\n])*`)(?=\s*[{):])/,lookbehind:!0,greedy:!0},relationship:{pattern:/(-\[\s*(?:\w+\s*|`(?:[^`\\\r\n])*`\s*)?:\s*|\|\s*:\s*)(?:\w+|`(?:[^`\\\r\n])*`)/,lookbehind:!0,greedy:!0,alias:"property"},identifier:{pattern:/`(?:[^`\\\r\n])*`/,greedy:!0},variable:/\$\w+/,keyword:/\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\b/i,function:/\b\w+\b(?=\s*\()/,boolean:/\b(?:false|null|true)\b/i,number:/\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\b/,operator:/:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\.\.\.?/,punctuation:/[()[\]{},;.]/}}e.exports=t,t.displayName="cypher",t.aliases=[]},3818:function(e){"use strict";function t(e){e.languages.d=e.languages.extend("clike",{comment:[{pattern:/^\s*#!.+/,greedy:!0},{pattern:RegExp(/(^|[^\\])/.source+"(?:"+[/\/\+(?:\/\+(?:[^+]|\+(?!\/))*\+\/|(?!\/\+)[\s\S])*?\+\//.source,/\/\/.*/.source,/\/\*[\s\S]*?\*\//.source].join("|")+")"),lookbehind:!0,greedy:!0}],string:[{pattern:RegExp([/\b[rx]"(?:\\[\s\S]|[^\\"])*"[cwd]?/.source,/\bq"(?:\[[\s\S]*?\]|\([\s\S]*?\)|<[\s\S]*?>|\{[\s\S]*?\})"/.source,/\bq"((?!\d)\w+)$[\s\S]*?^\1"/.source,/\bq"(.)[\s\S]*?\2"/.source,/(["`])(?:\\[\s\S]|(?!\3)[^\\])*\3[cwd]?/.source].join("|"),"m"),greedy:!0},{pattern:/\bq\{(?:\{[^{}]*\}|[^{}])*\}/,greedy:!0,alias:"token-string"}],keyword:/\$|\b(?:__(?:(?:DATE|EOF|FILE|FUNCTION|LINE|MODULE|PRETTY_FUNCTION|TIMESTAMP|TIME|VENDOR|VERSION)__|gshared|parameters|traits|vector)|abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|dstring|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|ptrdiff_t|public|pure|real|ref|return|scope|shared|short|size_t|static|string|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|wstring)\b/,number:[/\b0x\.?[a-f\d_]+(?:(?!\.\.)\.[a-f\d_]*)?(?:p[+-]?[a-f\d_]+)?[ulfi]{0,4}/i,{pattern:/((?:\.\.)?)(?:\b0b\.?|\b|\.)\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:e[+-]?\d[\d_]*)?[ulfi]{0,4}/i,lookbehind:!0}],operator:/\|[|=]?|&[&=]?|\+[+=]?|-[-=]?|\.?\.\.|=[>=]?|!(?:i[ns]\b|<>?=?|>=?|=)?|\bi[ns]\b|(?:<[<>]?|>>?>?|\^\^|[*\/%^~])=?/}),e.languages.insertBefore("d","string",{char:/'(?:\\(?:\W|\w+)|[^\\])'/}),e.languages.insertBefore("d","keyword",{property:/\B@\w*/}),e.languages.insertBefore("d","function",{register:{pattern:/\b(?:[ABCD][LHX]|E?(?:BP|DI|SI|SP)|[BS]PL|[ECSDGF]S|CR[0234]|[DS]IL|DR[012367]|E[ABCD]X|X?MM[0-7]|R(?:1[0-5]|[89])[BWD]?|R[ABCD]X|R[BS]P|R[DS]I|TR[3-7]|XMM(?:1[0-5]|[89])|YMM(?:1[0-5]|\d))\b|\bST(?:\([0-7]\)|\b)/,alias:"variable"}})}e.exports=t,t.displayName="d",t.aliases=[]},583:function(e){"use strict";function t(e){!function(e){var t=[/\b(?:async|sync|yield)\*/,/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extends|extension|external|factory|final|finally|for|get|hide|if|implements|import|in|interface|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\b/],n=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,r={pattern:RegExp(n+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}}}};e.languages.dart=e.languages.extend("clike",{"class-name":[r,{pattern:RegExp(n+/[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source),lookbehind:!0,inside:r.inside}],keyword:t,operator:/\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),e.languages.insertBefore("dart","string",{"string-literal":{pattern:/r?(?:("""|''')[\s\S]*?\1|(["'])(?:\\.|(?!\2)[^\\\r\n])*\2(?!\2))/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,lookbehind:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:e.languages.dart}}},string:/[\s\S]+/}},string:void 0}),e.languages.insertBefore("dart","class-name",{metadata:{pattern:/@\w+/,alias:"function"}}),e.languages.insertBefore("dart","class-name",{generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":r,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})}(e)}e.exports=t,t.displayName="dart",t.aliases=[]},5462:function(e){"use strict";function t(e){!function(e){e.languages.dataweave={url:/\b[A-Za-z]+:\/\/[\w/:.?=&-]+|\burn:[\w:.?=&-]+/,property:{pattern:/(?:\b\w+#)?(?:"(?:\\.|[^\\"\r\n])*"|\b\w+)(?=\s*[:@])/,greedy:!0},string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},"mime-type":/\b(?:application|audio|image|multipart|text|video)\/[\w+-]+/,date:{pattern:/\|[\w:+-]+\|/,greedy:!0},comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],regex:{pattern:/\/(?:[^\\\/\r\n]|\\[^\r\n])+\//,greedy:!0},keyword:/\b(?:and|as|at|case|do|else|fun|if|input|is|match|not|ns|null|or|output|type|unless|update|using|var)\b/,function:/\b[A-Z_]\w*(?=\s*\()/i,number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\];(),.:@]/,operator:/<<|>>|->|[<>~=]=?|!=|--?-?|\+\+?|!|\?/,boolean:/\b(?:false|true)\b/}}(e)}e.exports=t,t.displayName="dataweave",t.aliases=[]},1717:function(e){"use strict";function t(e){e.languages.dax={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/).*)/,lookbehind:!0},"data-field":{pattern:/'(?:[^']|'')*'(?!')(?:\[[ \w\xA0-\uFFFF]+\])?|\w+\[[ \w\xA0-\uFFFF]+\]/,alias:"symbol"},measure:{pattern:/\[[ \w\xA0-\uFFFF]+\]/,alias:"constant"},string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},function:/\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\.DIST|BETA\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\.DIST|CHISQ\.DIST\.RT|CHISQ\.INV|CHISQ\.INV\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\.NORM|CONFIDENCE\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\.DIST|NORM\.INV|NORM\.S\.DIST|NORM\.S\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\.EXC|PERCENTILE\.INC|PERCENTILEX\.EXC|PERCENTILEX\.INC|PERMUT|PI|POISSON\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\.P|STDEV\.S|STDEVX\.P|STDEVX\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\.DIST|T\.DIST\.2T|T\.DIST\.RT|T\.INV|T\.INV\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\.P|VAR\.S|VARX\.P|VARX\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\s*\()/i,keyword:/\b(?:DEFINE|EVALUATE|MEASURE|ORDER\s+BY|RETURN|VAR|START\s+AT|ASC|DESC)\b/i,boolean:{pattern:/\b(?:FALSE|NULL|TRUE)\b/i,alias:"constant"},number:/\b\d+(?:\.\d*)?|\B\.\d+\b/,operator:/:=|[-+*\/=^]|&&?|\|\||<(?:=>?|<|>)?|>[>=]?|\b(?:IN|NOT)\b/i,punctuation:/[;\[\](){}`,.]/}}e.exports=t,t.displayName="dax",t.aliases=[]},6655:function(e){"use strict";function t(e){e.languages.dhall={comment:/--.*|\{-(?:[^-{]|-(?!\})|\{(?!-)|\{-(?:[^-{]|-(?!\})|\{(?!-))*-\})*-\}/,string:{pattern:/"(?:[^"\\]|\\.)*"|''(?:[^']|'(?!')|'''|''\$\{)*''(?!'|\$)/,greedy:!0,inside:{interpolation:{pattern:/\$\{[^{}]*\}/,inside:{expression:{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0,alias:"language-dhall",inside:null},punctuation:/\$\{|\}/}}}},label:{pattern:/`[^`]*`/,greedy:!0},url:{pattern:/\bhttps?:\/\/[\w.:%!$&'*+;=@~-]+(?:\/[\w.:%!$&'*+;=@~-]*)*(?:\?[/?\w.:%!$&'*+;=@~-]*)?/,greedy:!0},env:{pattern:/\benv:(?:(?!\d)\w+|"(?:[^"\\=]|\\.)*")/,greedy:!0,inside:{function:/^env/,operator:/^:/,variable:/[\s\S]+/}},hash:{pattern:/\bsha256:[\da-fA-F]{64}\b/,inside:{function:/sha256/,operator:/:/,number:/[\da-fA-F]{64}/}},keyword:/\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\b|\u2200/,builtin:/\b(?:None|Some)\b/,boolean:/\b(?:False|True)\b/,number:/\bNaN\b|-?\bInfinity\b|[+-]?\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/,operator:/\/\\|\/\/\\\\|&&|\|\||===|[!=]=|\/\/|->|\+\+|::|[+*#@=:?<>|\\\u2227\u2a53\u2261\u2afd\u03bb\u2192]/,punctuation:/\.\.|[{}\[\](),./]/,"class-name":/\b[A-Z]\w*\b/},e.languages.dhall.string.inside.interpolation.inside.expression.inside=e.languages.dhall}e.exports=t,t.displayName="dhall",t.aliases=[]},9442:function(e){"use strict";function t(e){!function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(e)}e.exports=t,t.displayName="diff",t.aliases=[]},6412:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),function(e){e.languages.django={comment:/^\{#[\s\S]*?#\}$/,tag:{pattern:/(^\{%[+-]?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%][+-]?|[+-]?[}%]\}$/,alias:"punctuation"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},filter:{pattern:/(\|)\w+/,lookbehind:!0,alias:"function"},test:{pattern:/(\bis\s+(?:not\s+)?)(?!not\b)\w+/,lookbehind:!0,alias:"function"},function:/\b[a-z_]\w+(?=\s*\()/i,keyword:/\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\b/,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,number:/\b\d+(?:\.\d+)?\b/,boolean:/[Ff]alse|[Nn]one|[Tt]rue/,variable:/\b\w+\b/,punctuation:/[{}[\](),.:;]/};var t=/\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}|\{#[\s\S]*?#\}/g,n=e.languages["markup-templating"];e.hooks.add("before-tokenize",(function(e){n.buildPlaceholders(e,"django",t)})),e.hooks.add("after-tokenize",(function(e){n.tokenizePlaceholders(e,"django")})),e.languages.jinja2=e.languages.django,e.hooks.add("before-tokenize",(function(e){n.buildPlaceholders(e,"jinja2",t)})),e.hooks.add("after-tokenize",(function(e){n.tokenizePlaceholders(e,"jinja2")}))}(e)}e.exports=a,a.displayName="django",a.aliases=["jinja2"]},8818:function(e){"use strict";function t(e){e.languages["dns-zone-file"]={comment:/;.*/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},variable:[{pattern:/(^\$ORIGIN[ \t]+)\S+/m,lookbehind:!0},{pattern:/(^|\s)@(?=\s|$)/,lookbehind:!0}],keyword:/^\$(?:INCLUDE|ORIGIN|TTL)(?=\s|$)/m,class:{pattern:/(^|\s)(?:CH|CS|HS|IN)(?=\s|$)/,lookbehind:!0,alias:"keyword"},type:{pattern:/(^|\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\s|$)/,lookbehind:!0,alias:"keyword"},punctuation:/[()]/},e.languages["dns-zone"]=e.languages["dns-zone-file"]}e.exports=t,t.displayName="dnsZoneFile",t.aliases=[]},3386:function(e){"use strict";function t(e){!function(e){var t=/\\[\r\n](?:\s|\\[\r\n]|#.*(?!.))*(?![\s#]|\\[\r\n])/.source,n=/(?:[ \t]+(?![ \t])(?:<SP_BS>)?|<SP_BS>)/.source.replace(/<SP_BS>/g,(function(){return t})),r=/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"|'(?:[^'\\\r\n]|\\(?:\r\n|[\s\S]))*'/.source,a=/--[\w-]+=(?:<STR>|(?!["'])(?:[^\s\\]|\\.)+)/.source.replace(/<STR>/g,(function(){return r})),i={pattern:RegExp(r),greedy:!0},o={pattern:/(^[ \t]*)#.*/m,lookbehind:!0,greedy:!0};function s(e,t){return e=e.replace(/<OPT>/g,(function(){return a})).replace(/<SP>/g,(function(){return n})),RegExp(e,t)}e.languages.docker={instruction:{pattern:/(^[ \t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)(?:\\.|[^\r\n\\])*(?:\\$(?:\s|#.*$)*(?![\s#])(?:\\.|[^\r\n\\])*)*/im,lookbehind:!0,greedy:!0,inside:{options:{pattern:s(/(^(?:ONBUILD<SP>)?\w+<SP>)<OPT>(?:<SP><OPT>)*/.source,"i"),lookbehind:!0,greedy:!0,inside:{property:{pattern:/(^|\s)--[\w-]+/,lookbehind:!0},string:[i,{pattern:/(=)(?!["'])(?:[^\s\\]|\\.)+/,lookbehind:!0}],operator:/\\$/m,punctuation:/=/}},keyword:[{pattern:s(/(^(?:ONBUILD<SP>)?HEALTHCHECK<SP>(?:<OPT><SP>)*)(?:CMD|NONE)\b/.source,"i"),lookbehind:!0,greedy:!0},{pattern:s(/(^(?:ONBUILD<SP>)?FROM<SP>(?:<OPT><SP>)*(?!--)[^ \t\\]+<SP>)AS/.source,"i"),lookbehind:!0,greedy:!0},{pattern:s(/(^ONBUILD<SP>)\w+/.source,"i"),lookbehind:!0,greedy:!0},{pattern:/^\w+/,greedy:!0}],comment:o,string:i,variable:/\$(?:\w+|\{[^{}"'\\]*\})/,operator:/\\$/m}},comment:o},e.languages.dockerfile=e.languages.docker}(e)}e.exports=t,t.displayName="docker",t.aliases=["dockerfile"]},7837:function(e){"use strict";function t(e){!function(e){var t="(?:"+[/[a-zA-Z_\x80-\uFFFF][\w\x80-\uFFFF]*/.source,/-?(?:\.\d+|\d+(?:\.\d*)?)/.source,/"[^"\\]*(?:\\[\s\S][^"\\]*)*"/.source,/<(?:[^<>]|(?!<!--)<(?:[^<>"']|"[^"]*"|'[^']*')+>|<!--(?:[^-]|-(?!->))*-->)*>/.source].join("|")+")",n={markup:{pattern:/(^<)[\s\S]+(?=>$)/,lookbehind:!0,alias:["language-markup","language-html","language-xml"],inside:e.languages.markup}};function r(e,n){return RegExp(e.replace(/<ID>/g,(function(){return t})),n)}e.languages.dot={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\/|^#.*/m,greedy:!0},"graph-name":{pattern:r(/(\b(?:digraph|graph|subgraph)[ \t\r\n]+)<ID>/.source,"i"),lookbehind:!0,greedy:!0,alias:"class-name",inside:n},"attr-value":{pattern:r(/(=[ \t\r\n]*)<ID>/.source),lookbehind:!0,greedy:!0,inside:n},"attr-name":{pattern:r(/([\[;, \t\r\n])<ID>(?=[ \t\r\n]*=)/.source),lookbehind:!0,greedy:!0,inside:n},keyword:/\b(?:digraph|edge|graph|node|strict|subgraph)\b/i,"compass-point":{pattern:/(:[ \t\r\n]*)(?:[ewc_]|[ns][ew]?)(?![\w\x80-\uFFFF])/,lookbehind:!0,alias:"builtin"},node:{pattern:r(/(^|[^-.\w\x80-\uFFFF\\])<ID>/.source),lookbehind:!0,greedy:!0,inside:n},operator:/[=:]|-[->]/,punctuation:/[\[\]{};,]/},e.languages.gv=e.languages.dot}(e)}e.exports=t,t.displayName="dot",t.aliases=["gv"]},9845:function(e){"use strict";function t(e){e.languages.ebnf={comment:/\(\*[\s\S]*?\*\)/,string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0},special:{pattern:/\?[^?\r\n]*\?/,greedy:!0,alias:"class-name"},definition:{pattern:/^([\t ]*)[a-z]\w*(?:[ \t]+[a-z]\w*)*(?=\s*=)/im,lookbehind:!0,alias:["rule","keyword"]},rule:/\b[a-z]\w*(?:[ \t]+[a-z]\w*)*\b/i,punctuation:/\([:/]|[:/]\)|[.,;()[\]{}]/,operator:/[-=|*/!]/}}e.exports=t,t.displayName="ebnf",t.aliases=[]},6268:function(e){"use strict";function t(e){e.languages.editorconfig={comment:/[;#].*/,section:{pattern:/(^[ \t]*)\[.+\]/m,lookbehind:!0,alias:"selector",inside:{regex:/\\\\[\[\]{},!?.*]/,operator:/[!?]|\.\.|\*{1,2}/,punctuation:/[\[\]{},]/}},key:{pattern:/(^[ \t]*)[^\s=]+(?=[ \t]*=)/m,lookbehind:!0,alias:"attr-name"},value:{pattern:/=.*/,alias:"attr-value",inside:{punctuation:/^=/}}}}e.exports=t,t.displayName="editorconfig",t.aliases=[]},4326:function(e){"use strict";function t(e){e.languages.eiffel={comment:/--.*/,string:[{pattern:/"([^[]*)\[[\s\S]*?\]\1"/,greedy:!0},{pattern:/"([^{]*)\{[\s\S]*?\}\1"/,greedy:!0},{pattern:/"(?:%(?:(?!\n)\s)*\n\s*%|%\S|[^%"\r\n])*"/,greedy:!0}],char:/'(?:%.|[^%'\r\n])+'/,keyword:/\b(?:across|agent|alias|all|and|as|assign|attached|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\b/i,boolean:/\b(?:False|True)\b/i,"class-name":/\b[A-Z][\dA-Z_]*\b/,number:[/\b0[xcb][\da-f](?:_*[\da-f])*\b/i,/(?:\b\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?e[+-]?)?\d(?:_*\d)*\b|\b\d(?:_*\d)*\b\.?/i],punctuation:/:=|<<|>>|\(\||\|\)|->|\.(?=\w)|[{}[\];(),:?]/,operator:/\\\\|\|\.\.\||\.\.|\/[~\/=]?|[><]=?|[-+*^=~]/}}e.exports=t,t.displayName="eiffel",t.aliases=[]},8331:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),function(e){e.languages.ejs={delimiter:{pattern:/^<%[-_=]?|[-_]?%>$/,alias:"punctuation"},comment:/^#[\s\S]*/,"language-javascript":{pattern:/[\s\S]+/,inside:e.languages.javascript}},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"ejs",/<%(?!%)[\s\S]+?%>/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"ejs")})),e.languages.eta=e.languages.ejs}(e)}e.exports=a,a.displayName="ejs",a.aliases=["eta"]},3596:function(e){"use strict";function t(e){e.languages.elixir={doc:{pattern:/@(?:doc|moduledoc)\s+(?:("""|''')[\s\S]*?\1|("|')(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2)/,inside:{attribute:/^@\w+/,string:/['"][\s\S]+/}},comment:{pattern:/#.*/,greedy:!0},regex:{pattern:/~[rR](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[uismxfr]*/,greedy:!0},string:[{pattern:/~[cCsSwW](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|#\{[^}]+\}|#(?!\{)|[^#\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[csa]?/,greedy:!0,inside:{}},{pattern:/("""|''')[\s\S]*?\1/,greedy:!0,inside:{}},{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{}}],atom:{pattern:/(^|[^:]):\w+/,lookbehind:!0,alias:"symbol"},module:{pattern:/\b[A-Z]\w*\b/,alias:"class-name"},"attr-name":/\b\w+\??:(?!:)/,argument:{pattern:/(^|[^&])&\d+/,lookbehind:!0,alias:"variable"},attribute:{pattern:/@\w+/,alias:"variable"},function:/\b[_a-zA-Z]\w*[?!]?(?:(?=\s*(?:\.\s*)?\()|(?=\/\d))/,number:/\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i,keyword:/\b(?:after|alias|and|case|catch|cond|def(?:callback|delegate|exception|impl|macro|module|n|np|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|quote|raise|require|rescue|try|unless|unquote|use|when)\b/,boolean:/\b(?:false|nil|true)\b/,operator:[/\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/,{pattern:/([^<])<(?!<)/,lookbehind:!0},{pattern:/([^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,%\[\]{}()]/},e.languages.elixir.string.forEach((function(t){t.inside={interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},rest:e.languages.elixir}}}}))}e.exports=t,t.displayName="elixir",t.aliases=[]},3972:function(e){"use strict";function t(e){e.languages.elm={comment:/--.*|\{-[\s\S]*?-\}/,char:{pattern:/'(?:[^\\'\r\n]|\\(?:[abfnrtv\\']|\d+|x[0-9a-fA-F]+|u\{[0-9a-fA-F]+\}))'/,greedy:!0},string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/"(?:[^\\"\r\n]|\\.)*"/,greedy:!0}],"import-statement":{pattern:/(^[\t ]*)import\s+[A-Z]\w*(?:\.[A-Z]\w*)*(?:\s+as\s+(?:[A-Z]\w*)(?:\.[A-Z]\w*)*)?(?:\s+exposing\s+)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|exposing|import)\b/}},keyword:/\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\b/,builtin:/\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[+\-/*=.$<>:&|^?%#@~!]{2,}|[+\-/*=$<>:&|^?%#@~!]/,hvariable:/\b(?:[A-Z]\w*\.)*[a-z]\w*\b/,constant:/\b(?:[A-Z]\w*\.)*[A-Z]\w*\b/,punctuation:/[{}[\]|(),.:]/}}e.exports=t,t.displayName="elm",t.aliases=[]},4665:function(e,t,n){"use strict";var r=n(6326),a=n(595);function i(e){e.register(r),e.register(a),function(e){e.languages.erb={delimiter:{pattern:/^(\s*)<%=?|%>(?=\s*$)/,lookbehind:!0,alias:"punctuation"},ruby:{pattern:/\s*\S[\s\S]*/,alias:"language-ruby",inside:e.languages.ruby}},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"erb",/<%=?(?:[^\r\n]|[\r\n](?!=begin)|[\r\n]=begin\s(?:[^\r\n]|[\r\n](?!=end))*[\r\n]=end)+?%>/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"erb")}))}(e)}e.exports=i,i.displayName="erb",i.aliases=[]},865:function(e){"use strict";function t(e){e.languages.erlang={comment:/%.+/,string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},"quoted-function":{pattern:/'(?:\\.|[^\\'\r\n])+'(?=\()/,alias:"function"},"quoted-atom":{pattern:/'(?:\\.|[^\\'\r\n])+'/,alias:"atom"},boolean:/\b(?:false|true)\b/,keyword:/\b(?:after|case|catch|end|fun|if|of|receive|try|when)\b/,number:[/\$\\?./,/\b\d+#[a-z0-9]+/i,/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i],function:/\b[a-z][\w@]*(?=\()/,variable:{pattern:/(^|[^@])(?:\b|\?)[A-Z_][\w@]*/,lookbehind:!0},operator:[/[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:and|andalso|band|bnot|bor|bsl|bsr|bxor|div|not|or|orelse|rem|xor)\b/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],atom:/\b[a-z][\w@]*/,punctuation:/[()[\]{}:;,.#|]|<<|>>/}}e.exports=t,t.displayName="erlang",t.aliases=[]},6168:function(e,t,n){"use strict";var r=n(6759),a=n(595);function i(e){e.register(r),e.register(a),function(e){e.languages.etlua={delimiter:{pattern:/^<%[-=]?|-?%>$/,alias:"punctuation"},"language-lua":{pattern:/[\s\S]+/,inside:e.languages.lua}},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"etlua",/<%[\s\S]+?%>/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"etlua")}))}(e)}e.exports=i,i.displayName="etlua",i.aliases=[]},3207:function(e){"use strict";function t(e){e.languages["excel-formula"]={comment:{pattern:/(\bN\(\s*)"(?:[^"]|"")*"(?=\s*\))/i,lookbehind:!0,greedy:!0},string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},reference:{pattern:/(?:'[^']*'|(?:[^\s()[\]{}<>*?"';,$&]*\[[^^\s()[\]{}<>*?"']+\])?\w+)!/,greedy:!0,alias:"string",inside:{operator:/!$/,punctuation:/'/,sheet:{pattern:/[^[\]]+$/,alias:"function"},file:{pattern:/\[[^[\]]+\]$/,inside:{punctuation:/[[\]]/}},path:/[\s\S]+/}},"function-name":{pattern:/\b[A-Z]\w*(?=\()/i,alias:"keyword"},range:{pattern:/\$?\b(?:[A-Z]+\$?\d+:\$?[A-Z]+\$?\d+|[A-Z]+:\$?[A-Z]+|\d+:\$?\d+)\b/i,alias:"property",inside:{operator:/:/,cell:/\$?[A-Z]+\$?\d+/i,column:/\$?[A-Z]+/i,row:/\$?\d+/}},cell:{pattern:/\b[A-Z]+\d+\b|\$[A-Za-z]+\$?\d+\b|\b[A-Za-z]+\$\d+\b/,alias:"property"},number:/(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?\b/i,boolean:/\b(?:FALSE|TRUE)\b/i,operator:/[-+*/^%=&,]|<[=>]?|>=?/,punctuation:/[[\]();{}|]/},e.languages.xlsx=e.languages.xls=e.languages["excel-formula"]}e.exports=t,t.displayName="excelFormula",t.aliases=[]},6175:function(e){"use strict";function t(e){!function(e){var t={function:/\b(?:BUGS?|FIX(?:MES?)?|NOTES?|TODOS?|XX+|HACKS?|WARN(?:ING)?|\?{2,}|!{2,})\b/},n={number:/\\[^\s']|%\w/},r={comment:[{pattern:/(^|\s)(?:! .*|!$)/,lookbehind:!0,inside:t},{pattern:/(^|\s)\/\*\s[\s\S]*?\*\/(?=\s|$)/,lookbehind:!0,greedy:!0,inside:t},{pattern:/(^|\s)!\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,lookbehind:!0,greedy:!0,inside:t}],number:[{pattern:/(^|\s)[+-]?\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?0(?:b[01]+|o[0-7]+|d\d+|x[\dA-F]+)(?=\s|$)/i,lookbehind:!0},{pattern:/(^|\s)[+-]?\d+\/\d+\.?(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)\+?\d+\+\d+\/\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)-\d+-\d+\/\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?(?:\d*\.\d+|\d+\.\d*|\d+)(?:e[+-]?\d+)?(?=\s|$)/i,lookbehind:!0},{pattern:/(^|\s)NAN:\s+[\da-fA-F]+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?0(?:b1\.[01]*|o1\.[0-7]*|d1\.\d*|x1\.[\dA-F]*)p\d+(?=\s|$)/i,lookbehind:!0}],regexp:{pattern:/(^|\s)R\/\s(?:\\\S|[^\\/])*\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\s|$)/,lookbehind:!0,alias:"number",inside:{variable:/\\\S/,keyword:/[+?*\[\]^$(){}.|]/,operator:{pattern:/(\/)[idmsr]+(?:-[idmsr]+)?/,lookbehind:!0}}},boolean:{pattern:/(^|\s)[tf](?=\s|$)/,lookbehind:!0},"custom-string":{pattern:/(^|\s)[A-Z0-9\-]+"\s(?:\\\S|[^"\\])*"/,lookbehind:!0,greedy:!0,alias:"string",inside:{number:/\\\S|%\w|\//}},"multiline-string":[{pattern:/(^|\s)STRING:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*;(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:{number:n.number,"semicolon-or-setlocal":{pattern:/([\r\n][ \t]*);(?=\s|$)/,lookbehind:!0,alias:"function"}}},{pattern:/(^|\s)HEREDOC:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*\S+(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:n},{pattern:/(^|\s)\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:n}],"special-using":{pattern:/(^|\s)USING:(?:\s\S+)*(?=\s+;(?:\s|$))/,lookbehind:!0,alias:"function",inside:{string:{pattern:/(\s)[^:\s]+/,lookbehind:!0}}},"stack-effect-delimiter":[{pattern:/(^|\s)(?:call|eval|execute)?\((?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)--(?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)\)(?=\s|$)/,lookbehind:!0,alias:"operator"}],combinators:{pattern:null,lookbehind:!0,alias:"keyword"},"kernel-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"sequences-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"math-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"constructor-word":{pattern:/(^|\s)<(?!=+>|-+>)\S+>(?=\s|$)/,lookbehind:!0,alias:"keyword"},"other-builtin-syntax":{pattern:null,lookbehind:!0,alias:"operator"},"conventionally-named-word":{pattern:/(^|\s)(?!")(?:(?:change|new|set|with)-\S+|\$\S+|>[^>\s]+|[^:>\s]+>|[^>\s]+>[^>\s]+|\+[^+\s]+\+|[^?\s]+\?|\?[^?\s]+|[^>\s]+>>|>>[^>\s]+|[^<\s]+<<|\([^()\s]+\)|[^!\s]+!|[^*\s]\S*\*|[^.\s]\S*\.)(?=\s|$)/,lookbehind:!0,alias:"keyword"},"colon-syntax":{pattern:/(^|\s)(?:[A-Z0-9\-]+#?)?:{1,2}\s+(?:;\S+|(?!;)\S+)(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"function"},"semicolon-or-setlocal":{pattern:/(\s)(?:;|:>)(?=\s|$)/,lookbehind:!0,alias:"function"},"curly-brace-literal-delimiter":[{pattern:/(^|\s)[a-z]*\{(?=\s)/i,lookbehind:!0,alias:"operator"},{pattern:/(\s)\}(?=\s|$)/,lookbehind:!0,alias:"operator"}],"quotation-delimiter":[{pattern:/(^|\s)\[(?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)\](?=\s|$)/,lookbehind:!0,alias:"operator"}],"normal-word":{pattern:/(^|\s)[^"\s]\S*(?=\s|$)/,lookbehind:!0},string:{pattern:/"(?:\\\S|[^"\\])*"/,greedy:!0,inside:n}},a=function(e){return(e+"").replace(/([.?*+\^$\[\]\\(){}|\-])/g,"\\$1")},i=function(e){return new RegExp("(^|\\s)(?:"+e.map(a).join("|")+")(?=\\s|$)")},o={"kernel-builtin":["or","2nipd","4drop","tuck","wrapper","nip","wrapper?","callstack>array","die","dupd","callstack","callstack?","3dup","hashcode","pick","4nip","build",">boolean","nipd","clone","5nip","eq?","?","=","swapd","2over","clear","2dup","get-retainstack","not","tuple?","dup","3nipd","call","-rotd","object","drop","assert=","assert?","-rot","execute","boa","get-callstack","curried?","3drop","pickd","overd","over","roll","3nip","swap","and","2nip","rotd","throw","(clone)","hashcode*","spin","reach","4dup","equal?","get-datastack","assert","2drop","<wrapper>","boolean?","identity-hashcode","identity-tuple?","null","composed?","new","5drop","rot","-roll","xor","identity-tuple","boolean"],"other-builtin-syntax":["=======","recursive","flushable",">>","<<<<<<","M\\","B","PRIVATE>","\\","======","final","inline","delimiter","deprecated","<PRIVATE",">>>>>>","<<<<<<<","parse-complex","malformed-complex","read-only",">>>>>>>","call-next-method","<<","foldable","$","$[","${"],"sequences-builtin":["member-eq?","mismatch","append","assert-sequence=","longer","repetition","clone-like","3sequence","assert-sequence?","last-index-from","reversed","index-from","cut*","pad-tail","join-as","remove-eq!","concat-as","but-last","snip","nths","nth","sequence","longest","slice?","<slice>","remove-nth","tail-slice","empty?","tail*","member?","virtual-sequence?","set-length","drop-prefix","iota","unclip","bounds-error?","unclip-last-slice","non-negative-integer-expected","non-negative-integer-expected?","midpoint@","longer?","?set-nth","?first","rest-slice","prepend-as","prepend","fourth","sift","subseq-start","new-sequence","?last","like","first4","1sequence","reverse","slice","virtual@","repetition?","set-last","index","4sequence","max-length","set-second","immutable-sequence","first2","first3","supremum","unclip-slice","suffix!","insert-nth","tail","3append","short","suffix","concat","flip","immutable?","reverse!","2sequence","sum","delete-all","indices","snip-slice","<iota>","check-slice","sequence?","head","append-as","halves","sequence=","collapse-slice","?second","slice-error?","product","bounds-check?","bounds-check","immutable","virtual-exemplar","harvest","remove","pad-head","last","set-fourth","cartesian-product","remove-eq","shorten","shorter","reversed?","shorter?","shortest","head-slice","pop*","tail-slice*","but-last-slice","iota?","append!","cut-slice","new-resizable","head-slice*","sequence-hashcode","pop","set-nth","?nth","second","join","immutable-sequence?","<reversed>","3append-as","virtual-sequence","subseq?","remove-nth!","length","last-index","lengthen","assert-sequence","copy","move","third","first","tail?","set-first","prefix","bounds-error","<repetition>","exchange","surround","cut","min-length","set-third","push-all","head?","subseq-start-from","delete-slice","rest","sum-lengths","head*","infimum","remove!","glue","slice-error","subseq","push","replace-slice","subseq-as","unclip-last"],"math-builtin":["number=","next-power-of-2","?1+","fp-special?","imaginary-part","float>bits","number?","fp-infinity?","bignum?","fp-snan?","denominator","gcd","*","+","fp-bitwise=","-","u>=","/",">=","bitand","power-of-2?","log2-expects-positive","neg?","<","log2",">","integer?","number","bits>double","2/","zero?","bits>float","float?","shift","ratio?","rect>","even?","ratio","fp-sign","bitnot",">fixnum","complex?","/i","integer>fixnum","/f","sgn",">bignum","next-float","u<","u>","mod","recip","rational",">float","2^","integer","fixnum?","neg","fixnum","sq","bignum",">rect","bit?","fp-qnan?","simple-gcd","complex","<fp-nan>","real",">fraction","double>bits","bitor","rem","fp-nan-payload","real-part","log2-expects-positive?","prev-float","align","unordered?","float","fp-nan?","abs","bitxor","integer>fixnum-strict","u<=","odd?","<=","/mod",">integer","real?","rational?","numerator"]};Object.keys(o).forEach((function(e){r[e].pattern=i(o[e])}));r.combinators.pattern=i(["2bi","while","2tri","bi*","4dip","both?","same?","tri@","curry","prepose","3bi","?if","tri*","2keep","3keep","curried","2keepd","when","2bi*","2tri*","4keep","bi@","keepdd","do","unless*","tri-curry","if*","loop","bi-curry*","when*","2bi@","2tri@","with","2with","either?","bi","until","3dip","3curry","tri-curry*","tri-curry@","bi-curry","keepd","compose","2dip","if","3tri","unless","tuple","keep","2curry","tri","most","while*","dip","composed","bi-curry@","find-last-from","trim-head-slice","map-as","each-from","none?","trim-tail","partition","if-empty","accumulate*","reject!","find-from","accumulate-as","collector-for-as","reject","map","map-sum","accumulate!","2each-from","follow","supremum-by","map!","unless-empty","collector","padding","reduce-index","replicate-as","infimum-by","trim-tail-slice","count","find-index","filter","accumulate*!","reject-as","map-integers","map-find","reduce","selector","interleave","2map","filter-as","binary-reduce","map-index-as","find","produce","filter!","replicate","cartesian-map","cartesian-each","find-index-from","map-find-last","3map-as","3map","find-last","selector-as","2map-as","2map-reduce","accumulate","each","each-index","accumulate*-as","when-empty","all?","collector-as","push-either","new-like","collector-for","2selector","push-if","2all?","map-reduce","3each","any?","trim-slice","2reduce","change-nth","produce-as","2each","trim","trim-head","cartesian-find","map-index","if-zero","each-integer","unless-zero","(find-integer)","when-zero","find-last-integer","(all-integers?)","times","(each-integer)","find-integer","all-integers?","unless-negative","if-positive","when-positive","when-negative","unless-positive","if-negative","case","2cleave","cond>quot","case>quot","3cleave","wrong-values","to-fixed-point","alist>quot","cond","cleave","call-effect","recursive-hashcode","spread","deep-spread>quot","2||","0||","n||","0&&","2&&","3||","1||","1&&","n&&","3&&","smart-unless*","keep-inputs","reduce-outputs","smart-when*","cleave>array","smart-with","smart-apply","smart-if","inputs/outputs","output>sequence-n","map-outputs","map-reduce-outputs","dropping","output>array","smart-map-reduce","smart-2map-reduce","output>array-n","nullary","input<sequence","append-outputs","drop-inputs","inputs","smart-2reduce","drop-outputs","smart-reduce","preserving","smart-when","outputs","append-outputs-as","smart-unless","smart-if*","sum-outputs","input<sequence-unsafe","output>sequence"]),e.languages.factor=r}(e)}e.exports=t,t.displayName="factor",t.aliases=[]},4988:function(e){"use strict";function t(e){!function(e){e.languages.false={comment:{pattern:/\{[^}]*\}/},string:{pattern:/"[^"]*"/,greedy:!0},"character-code":{pattern:/'(?:[^\r]|\r\n?)/,alias:"number"},"assembler-code":{pattern:/\d+`/,alias:"important"},number:/\d+/,operator:/[-!#$%&'*+,./:;=>?@\\^_`|~\xdf\xf8]/,punctuation:/\[|\]/,variable:/[a-z]/,"non-standard":{pattern:/[()<BDO\xae]/,alias:"bold"}}}(e)}e.exports=t,t.displayName="$false",t.aliases=[]},2727:function(e){"use strict";function t(e){e.languages["firestore-security-rules"]=e.languages.extend("clike",{comment:/\/\/.*/,keyword:/\b(?:allow|function|if|match|null|return|rules_version|service)\b/,operator:/&&|\|\||[<>!=]=?|[-+*/%]|\b(?:in|is)\b/}),delete e.languages["firestore-security-rules"]["class-name"],e.languages.insertBefore("firestore-security-rules","keyword",{path:{pattern:/(^|[\s(),])(?:\/(?:[\w\xA0-\uFFFF]+|\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)))+/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)/,inside:{operator:/=/,keyword:/\*\*/,punctuation:/[.$(){}]/}},punctuation:/\//}},method:{pattern:/(\ballow\s+)[a-z]+(?:\s*,\s*[a-z]+)*(?=\s*[:;])/,lookbehind:!0,alias:"builtin",inside:{punctuation:/,/}}})}e.exports=t,t.displayName="firestoreSecurityRules",t.aliases=[]},4037:function(e){"use strict";function t(e){!function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|any|mixed|null|void)\b/,alias:"tag"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(e)}e.exports=t,t.displayName="flow",t.aliases=[]},9770:function(e){"use strict";function t(e){e.languages.fortran={"quoted-number":{pattern:/[BOZ](['"])[A-F0-9]+\1/i,alias:"number"},string:{pattern:/(?:\b\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:[ \t]*!.*(?:\r\n?|\n)|(?![ \t]*!))|(?!\1).)*(?:\1|&)/,inside:{comment:{pattern:/(&(?:\r\n?|\n)\s*)!.*/,lookbehind:!0}}},comment:{pattern:/!.*/,greedy:!0},boolean:/\.(?:FALSE|TRUE)\.(?:_\w+)?/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,keyword:[/\b(?:CHARACTER|COMPLEX|DOUBLE ?PRECISION|INTEGER|LOGICAL|REAL)\b/i,/\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i,/\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i,/\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEIF|ELSEWHERE|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i],operator:[/\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.[A-Z]+\./i,{pattern:/(^|(?!\().)\/(?!\))/,lookbehind:!0}],punctuation:/\(\/|\/\)|[(),;:&]/}}e.exports=t,t.displayName="fortran",t.aliases=[]},1987:function(e){"use strict";function t(e){e.languages.fsharp=e.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\(\*(?!\))[\s\S]*?\*\)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|"(?:\\[\s\S]|[^\\"])*")B?/,greedy:!0},"class-name":{pattern:/(\b(?:exception|inherit|interface|new|of|type)\s+|\w\s*:\s*|\s:\??>\s*)[.\w]+\b(?:\s*(?:->|\*)\s*[.\w]+\b)*(?!\s*[:.])/,lookbehind:!0,inside:{operator:/->|\*/,punctuation:/\./}},keyword:/\b(?:let|return|use|yield)(?:!\B|\b)|\b(?:abstract|and|as|asr|assert|atomic|base|begin|break|checked|class|component|const|constraint|constructor|continue|default|delegate|do|done|downcast|downto|eager|elif|else|end|event|exception|extern|external|false|finally|fixed|for|fun|function|functor|global|if|in|include|inherit|inline|interface|internal|land|lazy|lor|lsl|lsr|lxor|match|member|method|mixin|mod|module|mutable|namespace|new|not|null|object|of|open|or|override|parallel|private|process|protected|public|pure|rec|sealed|select|sig|static|struct|tailcall|then|to|trait|true|try|type|upcast|val|virtual|void|volatile|when|while|with)\b/,number:[/\b0x[\da-fA-F]+(?:LF|lf|un)?\b/,/\b0b[01]+(?:uy|y)?\b/,/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[fm]|e[+-]?\d+)?\b/i,/\b\d+(?:[IlLsy]|UL|u[lsy]?)?\b/],operator:/([<>~&^])\1\1|([*.:<>&])\2|<-|->|[!=:]=|<?\|{1,3}>?|\??(?:<=|>=|<>|[-+*/%=<>])\??|[!?^&]|~[+~-]|:>|:\?>?/}),e.languages.insertBefore("fsharp","keyword",{preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(^#)\b(?:else|endif|if|light|line|nowarn)\b/,lookbehind:!0,alias:"keyword"}}}}),e.languages.insertBefore("fsharp","punctuation",{"computation-expression":{pattern:/\b[_a-z]\w*(?=\s*\{)/i,alias:"keyword"}}),e.languages.insertBefore("fsharp","string",{annotation:{pattern:/\[<.+?>\]/,greedy:!0,inside:{punctuation:/^\[<|>\]$/,"class-name":{pattern:/^\w+$|(^|;\s*)[A-Z]\w*(?=\()/,lookbehind:!0},"annotation-content":{pattern:/[\s\S]+/,inside:e.languages.fsharp}}},char:{pattern:/'(?:[^\\']|\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8}))'B?/,greedy:!0}})}e.exports=t,t.displayName="fsharp",t.aliases=[]},1505:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),function(e){for(var t=/[^<()"']|\((?:<expr>)*\)|<(?!#--)|<#--(?:[^-]|-(?!->))*-->|"(?:[^\\"]|\\.)*"|'(?:[^\\']|\\.)*'/.source,n=0;n<2;n++)t=t.replace(/<expr>/g,(function(){return t}));t=t.replace(/<expr>/g,/[^\s\S]/.source);var r={comment:/<#--[\s\S]*?-->/,string:[{pattern:/\br("|')(?:(?!\1)[^\\]|\\.)*\1/,greedy:!0},{pattern:RegExp(/("|')(?:(?!\1|\$\{)[^\\]|\\.|\$\{(?:(?!\})(?:<expr>))*\})*\1/.source.replace(/<expr>/g,(function(){return t}))),greedy:!0,inside:{interpolation:{pattern:RegExp(/((?:^|[^\\])(?:\\\\)*)\$\{(?:(?!\})(?:<expr>))*\}/.source.replace(/<expr>/g,(function(){return t}))),lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:null}}}}],keyword:/\b(?:as)\b/,boolean:/\b(?:false|true)\b/,"builtin-function":{pattern:/((?:^|[^?])\?\s*)\w+/,lookbehind:!0,alias:"function"},function:/\b\w+(?=\s*\()/,number:/\b\d+(?:\.\d+)?\b/,operator:/\.\.[<*!]?|->|--|\+\+|&&|\|\||\?{1,2}|[-+*/%!=<>]=?|\b(?:gt|gte|lt|lte)\b/,punctuation:/[,;.:()[\]{}]/};r.string[1].inside.interpolation.inside.rest=r,e.languages.ftl={"ftl-comment":{pattern:/^<#--[\s\S]*/,alias:"comment"},"ftl-directive":{pattern:/^<[\s\S]+>$/,inside:{directive:{pattern:/(^<\/?)[#@][a-z]\w*/i,lookbehind:!0,alias:"keyword"},punctuation:/^<\/?|\/?>$/,content:{pattern:/\s*\S[\s\S]*/,alias:"ftl",inside:r}}},"ftl-interpolation":{pattern:/^\$\{[\s\S]*\}$/,inside:{punctuation:/^\$\{|\}$/,content:{pattern:/\s*\S[\s\S]*/,alias:"ftl",inside:r}}}},e.hooks.add("before-tokenize",(function(n){var r=RegExp(/<#--[\s\S]*?-->|<\/?[#@][a-zA-Z](?:<expr>)*?>|\$\{(?:<expr>)*?\}/.source.replace(/<expr>/g,(function(){return t})),"gi");e.languages["markup-templating"].buildPlaceholders(n,"ftl",r)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"ftl")}))}(e)}e.exports=a,a.displayName="ftl",a.aliases=[]},8403:function(e){"use strict";function t(e){e.languages.gap={shell:{pattern:/^gap>[\s\S]*?(?=^gap>|$(?![\s\S]))/m,greedy:!0,inside:{gap:{pattern:/^(gap>).+(?:(?:\r(?:\n|(?!\n))|\n)>.*)*/,lookbehind:!0,inside:null},punctuation:/^gap>/}},comment:{pattern:/#.*/,greedy:!0},string:{pattern:/(^|[^\\'"])(?:'(?:[^\r\n\\']|\\.){1,10}'|"(?:[^\r\n\\"]|\\.)*"(?!")|"""[\s\S]*?""")/,lookbehind:!0,greedy:!0,inside:{continuation:{pattern:/([\r\n])>/,lookbehind:!0,alias:"punctuation"}}},keyword:/\b(?:Assert|Info|IsBound|QUIT|TryNextMethod|Unbind|and|atomic|break|continue|do|elif|else|end|fi|for|function|if|in|local|mod|not|od|or|quit|readonly|readwrite|rec|repeat|return|then|until|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:{pattern:/(^|[^\w.]|\.\.)(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?(?:_[a-z]?)?(?=$|[^\w.]|\.\.)/,lookbehind:!0},continuation:{pattern:/([\r\n])>/,lookbehind:!0,alias:"punctuation"},operator:/->|[-+*/^~=!]|<>|[<>]=?|:=|\.\./,punctuation:/[()[\]{},;.:]/},e.languages.gap.shell.inside.gap.inside=e.languages.gap}e.exports=t,t.displayName="gap",t.aliases=[]},9124:function(e){"use strict";function t(e){e.languages.gcode={comment:/;.*|\B\(.*?\)\B/,string:{pattern:/"(?:""|[^"])*"/,greedy:!0},keyword:/\b[GM]\d+(?:\.\d+)?\b/,property:/\b[A-Z]/,checksum:{pattern:/(\*)\d+/,lookbehind:!0,alias:"number"},punctuation:/[:*]/}}e.exports=t,t.displayName="gcode",t.aliases=[]},8495:function(e){"use strict";function t(e){e.languages.gdscript={comment:/#.*/,string:{pattern:/@?(?:("|')(?:(?!\1)[^\n\\]|\\[\s\S])*\1(?!"|')|"""(?:[^\\]|\\[\s\S])*?""")/,greedy:!0},"class-name":{pattern:/(^(?:class|class_name|extends)[ \t]+|^export\([ \t]*|\bas[ \t]+|(?:\b(?:const|var)[ \t]|[,(])[ \t]*\w+[ \t]*:[ \t]*|->[ \t]*)[a-zA-Z_]\w*/m,lookbehind:!0},keyword:/\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\b/,function:/\b[a-z_]\w*(?=[ \t]*\()/i,variable:/\$\w+/,number:[/\b0b[01_]+\b|\b0x[\da-fA-F_]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.[\d_]+)(?:e[+-]?[\d_]+)?\b/,/\b(?:INF|NAN|PI|TAU)\b/],constant:/\b[A-Z][A-Z_\d]*\b/,boolean:/\b(?:false|true)\b/,operator:/->|:=|&&|\|\||<<|>>|[-+*/%&|!<>=]=?|[~^]/,punctuation:/[.:,;()[\]{}]/}}e.exports=t,t.displayName="gdscript",t.aliases=[]},1019:function(e){"use strict";function t(e){e.languages.gedcom={"line-value":{pattern:/(^[\t ]*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?\w+ ).+/m,lookbehind:!0,inside:{pointer:{pattern:/^@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@$/,alias:"variable"}}},tag:{pattern:/(^[\t ]*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?)\w+/m,lookbehind:!0,alias:"string"},level:{pattern:/(^[\t ]*)\d+/m,lookbehind:!0,alias:"number"},pointer:{pattern:/@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@/,alias:"variable"}}}e.exports=t,t.displayName="gedcom",t.aliases=[]},3666:function(e){"use strict";function t(e){!function(e){var t=/(?:\r?\n|\r)[ \t]*\|.+\|(?:(?!\|).)*/.source;e.languages.gherkin={pystring:{pattern:/("""|''')[\s\S]+?\1/,alias:"string"},comment:{pattern:/(^[ \t]*)#.*/m,lookbehind:!0},tag:{pattern:/(^[ \t]*)@\S*/m,lookbehind:!0},feature:{pattern:/((?:^|\r?\n|\r)[ \t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Caracter\xedstica|Egenskab|Egenskap|Eiginleiki|Feature|F\u012b\u010da|Fitur|Fonctionnalit\xe9|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Func\u0163ionalitate|Func\u021bionalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalit\u0101te|Funkcionalnost|Funkcja|Funksie|Funktionalit\xe4t|Funktionalit\xe9it|Funzionalit\xe0|Hwaet|Hw\xe6t|Jellemz\u0151|Karakteristik|Lastnost|Mak|Mogucnost|laH|Mogu\u0107nost|Moznosti|Mo\u017enosti|OH HAI|Omadus|Ominaisuus|Osobina|\xd6zellik|Potrzeba biznesowa|perbogh|poQbogh malja'|Po\u017eadavek|Po\u017eiadavka|Pretty much|Qap|Qu'meH 'ut|Savyb\u0117|T\xednh n\u0103ng|Trajto|Vermo\xeb|Vlastnos\u0165|W\u0142a\u015bciwo\u015b\u0107|Zna\u010dilnost|\u0394\u03c5\u03bd\u03b1\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1|\u039b\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1|\u041c\u043e\u0433\u0443\u045b\u043d\u043e\u0441\u0442|\u041c\u04e9\u043c\u043a\u0438\u043d\u043b\u0435\u043a|\u041e\u0441\u043e\u0431\u0438\u043d\u0430|\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e|\u04ae\u0437\u0435\u043d\u0447\u04d9\u043b\u0435\u043a\u043b\u0435\u043b\u0435\u043a|\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b|\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043d\u043e\u0441\u0442|\u0424\u0443\u043d\u043a\u0446\u0438\u044f|\u0424\u0443\u043d\u043a\u0446\u0456\u043e\u043d\u0430\u043b|\u05ea\u05db\u05d5\u05e0\u05d4|\u062e\u0627\u0635\u064a\u0629|\u062e\u0635\u0648\u0635\u06cc\u062a|\u0635\u0644\u0627\u062d\u06cc\u062a|\u06a9\u0627\u0631\u0648\u0628\u0627\u0631 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a|\u0648\u0650\u06cc\u0698\u06af\u06cc|\u0930\u0942\u092a \u0932\u0947\u0916|\u0a16\u0a3e\u0a38\u0a40\u0a05\u0a24|\u0a28\u0a15\u0a36 \u0a28\u0a41\u0a39\u0a3e\u0a30|\u0a2e\u0a41\u0a39\u0a3e\u0a02\u0a26\u0a30\u0a3e|\u0c17\u0c41\u0c23\u0c2e\u0c41|\u0cb9\u0cc6\u0c9a\u0ccd\u0c9a\u0cb3|\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e32\u0e07\u0e18\u0e38\u0e23\u0e01\u0e34\u0e08|\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16|\u0e42\u0e04\u0e23\u0e07\u0e2b\u0e25\u0e31\u0e01|\uae30\ub2a5|\u30d5\u30a3\u30fc\u30c1\u30e3|\u529f\u80fd|\u6a5f\u80fd):(?:[^:\r\n]+(?:\r?\n|\r|$))*/,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]+/,lookbehind:!0},keyword:/[^:\r\n]+:/}},scenario:{pattern:/(^[ \t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|\xc6r|Agtergrond|All y'all|Antecedentes|Antecedents|Atbur\xf0ar\xe1s|Atbur\xf0ar\xe1sir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|B\u1ed1i c\u1ea3nh|Cefndir|Cenario|Cen\xe1rio|Cenario de Fundo|Cen\xe1rio de Fundo|Cenarios|Cen\xe1rios|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|D\xe6mi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delinea\xe7\xe3o do Cen\xe1rio|Dis is what went down|D\u1eef li\u1ec7u|Dyagram Senaryo|Dyagram senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cen\xe1rio|EXAMPLZ|Examples|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgat\xf3k\xf6nyv|Forgat\xf3k\xf6nyv v\xe1zlat|Fundo|Ge\xe7mi\u015f|Grundlage|Hannergrond|ghantoH|H\xe1tt\xe9r|Heave to|Istorik|Juhtumid|Keadaan|Khung k\u1ecbch b\u1ea3n|Khung t\xecnh hu\u1ed1ng|K\u1ecbch b\u1ea3n|Koncept|Konsep skenario|Kont\xe8ks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut chovnatlh|lut|lutmey|L\xfdsing Atbur\xf0ar\xe1sar|L\xfdsing D\xe6ma|MISHUN SRSLY|MISHUN|Menggariskan Senario|mo'|N\xe1\u010drt Scen\xe1ra|N\xe1\u010drt Sc\xe9n\xe1\u0159e|N\xe1\u010drt Scen\xe1ru|Oris scenarija|\xd6rnekler|Osnova|Osnova Scen\xe1ra|Osnova sc\xe9n\xe1\u0159e|Osnutek|Ozadje|Paraugs|Pavyzd\u017eiai|P\xe9ld\xe1k|Piem\u0113ri|Plan du sc\xe9nario|Plan du Sc\xe9nario|Plan Senaryo|Plan senaryo|Plang vum Szenario|Pozad\xed|Pozadie|Pozadina|Pr\xedklady|P\u0159\xedklady|Primer|Primeri|Primjeri|Przyk\u0142ady|Raamstsenaarium|Reckon it's like|Rerefons|Scen\xe1r|Sc\xe9n\xe1\u0159|Scenarie|Scenarij|Scenarijai|Scenarijaus \u0161ablonas|Scenariji|Scen\u0101rijs|Scen\u0101rijs p\u0113c parauga|Scenarijus|Scenario|Sc\xe9nario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se \xf0e|Se the|Se \xfee|Senario|Senaryo Deskripsyon|Senaryo deskripsyon|Senaryo|Senaryo tasla\u011f\u0131|Shiver me timbers|Situ\u0101cija|Situai|Situasie Uiteensetting|Situasie|Skenario konsep|Skenario|Skica|Structura scenariu|Structur\u0103 scenariu|Struktura scenarija|Stsenaarium|Swa hwaer swa|Swa|Swa hw\xe6r swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|T\xecnh hu\u1ed1ng|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo-ho-ho|You'll wanna|Za\u0142o\u017cenia|\u03a0\u03b1\u03c1\u03b1\u03b4\u03b5\u03af\u03b3\u03bc\u03b1\u03c4\u03b1|\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03a3\u03b5\u03bd\u03b1\u03c1\u03af\u03bf\u03c5|\u03a3\u03b5\u03bd\u03ac\u03c1\u03b9\u03b1|\u03a3\u03b5\u03bd\u03ac\u03c1\u03b9\u03bf|\u03a5\u03c0\u03cc\u03b2\u03b1\u03b8\u03c1\u03bf|\u041a\u0435\u0440\u0435\u0448|\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442|\u041a\u043e\u043d\u0446\u0435\u043f\u0442|\u041c\u0438\u0441\u0430\u043b\u043b\u0430\u0440|\u041c\u0438\u0441\u043e\u043b\u043b\u0430\u0440|\u041e\u0441\u043d\u043e\u0432\u0430|\u041f\u0435\u0440\u0435\u0434\u0443\u043c\u043e\u0432\u0430|\u041f\u043e\u0437\u0430\u0434\u0438\u043d\u0430|\u041f\u0440\u0435\u0434\u0438\u0441\u0442\u043e\u0440\u0438\u044f|\u041f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f|\u041f\u0440\u0438\u043a\u043b\u0430\u0434\u0438|\u041f\u0440\u0438\u043c\u0435\u0440|\u041f\u0440\u0438\u043c\u0435\u0440\u0438|\u041f\u0440\u0438\u043c\u0435\u0440\u044b|\u0420\u0430\u043c\u043a\u0430 \u043d\u0430 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439|\u0421\u043a\u0438\u0446\u0430|\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0458\u0430|\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f|\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u044e|\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439|\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0441\u0438|\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439\u043d\u044b\u04a3 \u0442\u04e9\u0437\u0435\u043b\u0435\u0448\u0435|\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0458\u0438|\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u043e|\u0421\u0446\u0435\u043d\u0430\u0440\u0456\u0439|\u0422\u0430\u0440\u0438\u0445|\u04ae\u0440\u043d\u04d9\u043a\u043b\u04d9\u0440|\u05d3\u05d5\u05d2\u05de\u05d0\u05d5\u05ea|\u05e8\u05e7\u05e2|\u05ea\u05d1\u05e0\u05d9\u05ea \u05ea\u05e8\u05d7\u05d9\u05e9|\u05ea\u05e8\u05d7\u05d9\u05e9|\u0627\u0644\u062e\u0644\u0641\u064a\u0629|\u0627\u0644\u06af\u0648\u06cc \u0633\u0646\u0627\u0631\u06cc\u0648|\u0627\u0645\u062b\u0644\u0629|\u067e\u0633 \u0645\u0646\u0638\u0631|\u0632\u0645\u06cc\u0646\u0647|\u0633\u0646\u0627\u0631\u06cc\u0648|\u0633\u064a\u0646\u0627\u0631\u064a\u0648|\u0633\u064a\u0646\u0627\u0631\u064a\u0648 \u0645\u062e\u0637\u0637|\u0645\u062b\u0627\u0644\u06cc\u06ba|\u0645\u0646\u0638\u0631 \u0646\u0627\u0645\u06d2 \u06a9\u0627 \u062e\u0627\u06a9\u06c1|\u0645\u0646\u0638\u0631\u0646\u0627\u0645\u06c1|\u0646\u0645\u0648\u0646\u0647 \u0647\u0627|\u0909\u0926\u093e\u0939\u0930\u0923|\u092a\u0930\u093f\u0926\u0943\u0936\u094d\u092f|\u092a\u0930\u093f\u0926\u0943\u0936\u094d\u092f \u0930\u0942\u092a\u0930\u0947\u0916\u093e|\u092a\u0943\u0937\u094d\u0920\u092d\u0942\u092e\u093f|\u0a09\u0a26\u0a3e\u0a39\u0a30\u0a28\u0a3e\u0a02|\u0a2a\u0a1f\u0a15\u0a25\u0a3e|\u0a2a\u0a1f\u0a15\u0a25\u0a3e \u0a22\u0a3e\u0a02\u0a1a\u0a3e|\u0a2a\u0a1f\u0a15\u0a25\u0a3e \u0a30\u0a42\u0a2a \u0a30\u0a47\u0a16\u0a3e|\u0a2a\u0a3f\u0a1b\u0a4b\u0a15\u0a5c|\u0c09\u0c26\u0c3e\u0c39\u0c30\u0c23\u0c32\u0c41|\u0c15\u0c25\u0c28\u0c02|\u0c28\u0c47\u0c2a\u0c25\u0c4d\u0c2f\u0c02|\u0c38\u0c28\u0c4d\u0c28\u0c3f\u0c35\u0c47\u0c36\u0c02|\u0c89\u0ca6\u0cbe\u0cb9\u0cb0\u0ca3\u0cc6\u0c97\u0cb3\u0cc1|\u0c95\u0ca5\u0cbe\u0cb8\u0cbe\u0cb0\u0cbe\u0c82\u0cb6|\u0cb5\u0cbf\u0cb5\u0cb0\u0ca3\u0cc6|\u0cb9\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6\u0cb2\u0cc6|\u0e42\u0e04\u0e23\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e02\u0e2d\u0e07\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c|\u0e0a\u0e38\u0e14\u0e02\u0e2d\u0e07\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07|\u0e0a\u0e38\u0e14\u0e02\u0e2d\u0e07\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c|\u0e41\u0e19\u0e27\u0e04\u0e34\u0e14|\u0e2a\u0e23\u0e38\u0e1b\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c|\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c|\ubc30\uacbd|\uc2dc\ub098\ub9ac\uc624|\uc2dc\ub098\ub9ac\uc624 \uac1c\uc694|\uc608|\u30b5\u30f3\u30d7\u30eb|\u30b7\u30ca\u30ea\u30aa|\u30b7\u30ca\u30ea\u30aa\u30a2\u30a6\u30c8\u30e9\u30a4\u30f3|\u30b7\u30ca\u30ea\u30aa\u30c6\u30f3\u30d7\u30ec|\u30b7\u30ca\u30ea\u30aa\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8|\u30c6\u30f3\u30d7\u30ec|\u4f8b|\u4f8b\u5b50|\u5267\u672c|\u5267\u672c\u5927\u7eb2|\u5287\u672c|\u5287\u672c\u5927\u7db1|\u573a\u666f|\u573a\u666f\u5927\u7eb2|\u5834\u666f|\u5834\u666f\u5927\u7db1|\u80cc\u666f):[^:\r\n]*/m,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]*/,lookbehind:!0},keyword:/[^:\r\n]+:/}},"table-body":{pattern:RegExp("("+t+")(?:"+t+")+"),lookbehind:!0,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"},td:{pattern:/\s*[^\s|][^|]*/,alias:"string"},punctuation:/\|/}},"table-head":{pattern:RegExp(t),inside:{th:{pattern:/\s*[^\s|][^|]*/,alias:"variable"},punctuation:/\|/}},atrule:{pattern:/(^[ \t]+)(?:'a|'ach|'ej|7|a|A tak\xe9|A taktie\u017e|A tie\u017e|A z\xe1rove\u0148|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|At\xe8s|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Bi\u1ebft|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|C\xe2nd|Cand|Cando|Ce|Cuando|\u010ce|\xd0a \xf0e|\xd0a|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Da\u0163i fiind|Da\u021bi fiind|DEN|Dato|De|Den youse gotta|Dengan|Diberi|Diyelim ki|Donada|Donat|Donita\u0135o|Do|Dun|Duota|\xd0urh|Eeldades|Ef|E\u011fer ki|Entao|Ent\xe3o|Ent\xf3n|E|En|Entonces|Epi|\xc9s|Etant donn\xe9e|Etant donn\xe9|Et|\xc9tant donn\xe9es|\xc9tant donn\xe9e|\xc9tant donn\xe9|Etant donn\xe9es|Etant donn\xe9s|\xc9tant donn\xe9s|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Je\u015bli|Je\u017celi|Kad|Kada|Kadar|Kai|Kaj|Kdy\u017e|Ke\u010f|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|L\xe8 sa a|L\xe8|Logo|Lorsqu'<|Lorsque|m\xe4|Maar|Mais|Maj\u0105c|Ma|Majd|Maka|Manawa|Mas|Men|Menawa|Mutta|Nalika|Nalikaning|Nanging|N\xe5r|N\xe4r|Nato|Nh\u01b0ng|Niin|Njuk|O zaman|Och|Og|Oletetaan|Ond|Onda|Oraz|Pak|Pero|Per\xf2|Podano|Pokia\u013e|Pokud|Potem|Potom|Privzeto|Pryd|Quan|Quand|Quando|qaSDI'|S\xe5|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|\u015ei|\u0218i|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Th\xec|Thurh|Toda|Too right|Un|Und|ugeholl|V\xe0|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za p\u0159edpokladu|Zadan|Zadani|Zadano|Zadate|Zadato|Zak\u0142adaj\u0105c|Zaradi|Zatati|\xdea \xfee|\xdea|\xde\xe1|\xdeegar|\xdeurh|\u0391\u03bb\u03bb\u03ac|\u0394\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03bf\u03c5|\u039a\u03b1\u03b9|\u038c\u03c4\u03b1\u03bd|\u03a4\u03cc\u03c4\u03b5|\u0410 \u0442\u0430\u043a\u043e\u0436|\u0410\u0433\u0430\u0440|\u0410\u043b\u0435|\u0410\u043b\u0438|\u0410\u043c\u043c\u043e|\u0410|\u04d8\u0433\u04d9\u0440|\u04d8\u0439\u0442\u0438\u043a|\u04d8\u043c\u043c\u0430|\u0411\u0438\u0440\u043e\u043a|\u0412\u0430|\u0412\u04d9|\u0414\u0430\u0434\u0435\u043d\u043e|\u0414\u0430\u043d\u043e|\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c|\u0415\u0441\u043b\u0438|\u0417\u0430\u0434\u0430\u0442\u0435|\u0417\u0430\u0434\u0430\u0442\u0438|\u0417\u0430\u0434\u0430\u0442\u043e|\u0418|\u0406|\u041a \u0442\u043e\u043c\u0443 \u0436\u0435|\u041a\u0430\u0434\u0430|\u041a\u0430\u0434|\u041a\u043e\u0433\u0430\u0442\u043e|\u041a\u043e\u0433\u0434\u0430|\u041a\u043e\u043b\u0438|\u041b\u04d9\u043a\u0438\u043d|\u041b\u0435\u043a\u0438\u043d|\u041d\u04d9\u0442\u0438\u0497\u04d9\u0434\u04d9|\u041d\u0435\u0445\u0430\u0439|\u041d\u043e|\u041e\u043d\u0434\u0430|\u041f\u0440\u0438\u043f\u0443\u0441\u0442\u0438\u043c\u043e, \u0449\u043e|\u041f\u0440\u0438\u043f\u0443\u0441\u0442\u0438\u043c\u043e|\u041f\u0443\u0441\u0442\u044c|\u0422\u0430\u043a\u0436\u0435|\u0422\u0430|\u0422\u043e\u0433\u0434\u0430|\u0422\u043e\u0434\u0456|\u0422\u043e|\u0423\u043d\u0434\u0430|\u04ba\u04d9\u043c|\u042f\u043a\u0449\u043e|\u05d0\u05d1\u05dc|\u05d0\u05d6\u05d9|\u05d0\u05d6|\u05d1\u05d4\u05d9\u05e0\u05ea\u05df|\u05d5\u05d2\u05dd|\u05db\u05d0\u05e9\u05e8|\u0622\u0646\u06af\u0627\u0647|\u0627\u0630\u0627\u064b|\u0627\u06af\u0631|\u0627\u0645\u0627|\u0627\u0648\u0631|\u0628\u0627 \u0641\u0631\u0636|\u0628\u0627\u0644\u0641\u0631\u0636|\u0628\u0641\u0631\u0636|\u067e\u06be\u0631|\u062a\u0628|\u062b\u0645|\u062c\u0628|\u0639\u0646\u062f\u0645\u0627|\u0641\u0631\u0636 \u06a9\u06cc\u0627|\u0644\u0643\u0646|\u0644\u06cc\u06a9\u0646|\u0645\u062a\u0649|\u0647\u0646\u06af\u0627\u0645\u06cc|\u0648|\u0905\u0917\u0930|\u0914\u0930|\u0915\u0926\u093e|\u0915\u093f\u0928\u094d\u0924\u0941|\u091a\u0942\u0902\u0915\u093f|\u091c\u092c|\u0924\u0925\u093e|\u0924\u0926\u093e|\u0924\u092c|\u092a\u0930\u0928\u094d\u0924\u0941|\u092a\u0930|\u092f\u0926\u093f|\u0a05\u0a24\u0a47|\u0a1c\u0a26\u0a4b\u0a02|\u0a1c\u0a3f\u0a35\u0a47\u0a02 \u0a15\u0a3f|\u0a1c\u0a47\u0a15\u0a30|\u0a24\u0a26|\u0a2a\u0a30|\u0c05\u0c2a\u0c4d\u0c2a\u0c41\u0c21\u0c41|\u0c08 \u0c2a\u0c30\u0c3f\u0c38\u0c4d\u0c25\u0c3f\u0c24\u0c3f\u0c32\u0c4b|\u0c15\u0c3e\u0c28\u0c3f|\u0c1a\u0c46\u0c2a\u0c4d\u0c2a\u0c2c\u0c21\u0c3f\u0c28\u0c26\u0c3f|\u0c2e\u0c30\u0c3f\u0c2f\u0c41|\u0c86\u0ca6\u0cb0\u0cc6|\u0ca8\u0c82\u0ca4\u0cb0|\u0ca8\u0cbf\u0cd5\u0ca1\u0cbf\u0ca6|\u0cae\u0ca4\u0ccd\u0ca4\u0cc1|\u0cb8\u0ccd\u0ca5\u0cbf\u0ca4\u0cbf\u0caf\u0ca8\u0ccd\u0ca8\u0cc1|\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e43\u0e2b\u0e49|\u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19|\u0e41\u0e15\u0e48|\u0e40\u0e21\u0e37\u0e48\u0e2d|\u0e41\u0e25\u0e30|\uadf8\ub7ec\uba74<|\uadf8\ub9ac\uace0<|\ub2e8<|\ub9cc\uc57d<|\ub9cc\uc77c<|\uba3c\uc800<|\uc870\uac74<|\ud558\uc9c0\ub9cc<|\u304b\u3064<|\u3057\u304b\u3057<|\u305f\u3060\u3057<|\u306a\u3089\u3070<|\u3082\u3057<|\u4e26\u4e14<|\u4f46\u3057<|\u4f46\u662f<|\u5047\u5982<|\u5047\u5b9a<|\u5047\u8a2d<|\u5047\u8bbe<|\u524d\u63d0<|\u540c\u65f6<|\u540c\u6642<|\u5e76\u4e14<|\u5f53<|\u7576<|\u800c\u4e14<|\u90a3\u4e48<|\u90a3\u9ebc<)(?=[ \t])/m,lookbehind:!0},string:{pattern:/"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"}}},outline:{pattern:/<[^>]+>/,alias:"variable"}}}(e)}e.exports=t,t.displayName="gherkin",t.aliases=[]},5120:function(e){"use strict";function t(e){e.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m}}e.exports=t,t.displayName="git",t.aliases=[]},214:function(e,t,n){"use strict";var r=n(272);function a(e){e.register(r),e.languages.glsl=e.languages.extend("c",{keyword:/\b(?:active|asm|atomic_uint|attribute|[ibdu]?vec[234]|bool|break|buffer|case|cast|centroid|class|coherent|common|const|continue|d?mat[234](?:x[234])?|default|discard|do|double|else|enum|extern|external|false|filter|fixed|flat|float|for|fvec[234]|goto|half|highp|hvec[234]|[iu]?sampler2DMS(?:Array)?|[iu]?sampler2DRect|[iu]?samplerBuffer|[iu]?samplerCube|[iu]?samplerCubeArray|[iu]?sampler[123]D|[iu]?sampler[12]DArray|[iu]?image2DMS(?:Array)?|[iu]?image2DRect|[iu]?imageBuffer|[iu]?imageCube|[iu]?imageCubeArray|[iu]?image[123]D|[iu]?image[12]DArray|if|in|inline|inout|input|int|interface|invariant|layout|long|lowp|mediump|namespace|noinline|noperspective|out|output|partition|patch|precise|precision|public|readonly|resource|restrict|return|sample|sampler[12]DArrayShadow|sampler[12]DShadow|sampler2DRectShadow|sampler3DRect|samplerCubeArrayShadow|samplerCubeShadow|shared|short|sizeof|smooth|static|struct|subroutine|superp|switch|template|this|true|typedef|uint|uniform|union|unsigned|using|varying|void|volatile|while|writeonly)\b/})}e.exports=a,a.displayName="glsl",a.aliases=[]},1903:function(e){"use strict";function t(e){e.languages.gamemakerlanguage=e.languages.gml=e.languages.extend("clike",{keyword:/\b(?:break|case|continue|default|do|else|enum|exit|for|globalvar|if|repeat|return|switch|until|var|while)\b/,number:/(?:\b0x[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ulf]{0,4}/i,operator:/--|\+\+|[-+%/=]=?|!=|\*\*?=?|<[<=>]?|>[=>]?|&&?|\^\^?|\|\|?|~|\b(?:and|at|not|or|with|xor)\b/,constant:/\b(?:GM_build_date|GM_version|action_(?:continue|restart|reverse|stop)|all|gamespeed_(?:fps|microseconds)|global|local|noone|other|pi|pointer_(?:invalid|null)|self|timezone_(?:local|utc)|undefined|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|post|pre)|keypress|keyrelease|trigger|(?:left|middle|no|right)_button|(?:left|middle|right)_press|(?:left|middle|right)_release|mouse_(?:enter|leave|wheel_down|wheel_up)|global_(?:left|middle|right)_button|global_(?:left|middle|right)_press|global_(?:left|middle|right)_release|joystick(?:1|2)_(?:button1|button2|button3|button4|button5|button6|button7|button8|down|left|right|up)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\d|gui|gui_begin|gui_end|step_(?:begin|end|normal))|vk_(?:alt|anykey|backspace|control|delete|down|end|enter|escape|home|insert|left|nokey|pagedown|pageup|pause|printscreen|return|right|shift|space|tab|up|f\d|numpad\d|add|decimal|divide|lalt|lcontrol|lshift|multiply|ralt|rcontrol|rshift|subtract)|achievement_(?:filter_(?:all_players|favorites_only|friends_only)|friends_info|info|leaderboard_info|our_info|pic_loaded|show_(?:achievement|bank|friend_picker|leaderboard|profile|purchase_prompt|ui)|type_challenge|type_score_challenge)|asset_(?:font|object|path|room|script|shader|sound|sprite|tiles|timeline|unknown)|audio_(?:3d|falloff_(?:exponent_distance|exponent_distance_clamped|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|none)|mono|new_system|old_system|stereo)|bm_(?:add|complex|dest_alpha|dest_color|dest_colour|inv_dest_alpha|inv_dest_color|inv_dest_colour|inv_src_alpha|inv_src_color|inv_src_colour|max|normal|one|src_alpha|src_alpha_sat|src_color|src_colour|subtract|zero)|browser_(?:chrome|firefox|ie|ie_mobile|not_a_browser|opera|safari|safari_mobile|tizen|unknown|windows_store)|buffer_(?:bool|f16|f32|f64|fast|fixed|generalerror|grow|invalidtype|network|outofbounds|outofspace|s16|s32|s8|seek_end|seek_relative|seek_start|string|text|u16|u32|u64|u8|vbuffer|wrap)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)|cmpfunc_(?:always|equal|greater|greaterequal|less|lessequal|never|notequal)|cr_(?:appstart|arrow|beam|cross|default|drag|handpoint|hourglass|none|size_all|size_nesw|size_ns|size_nwse|size_we|uparrow)|cull_(?:clockwise|counterclockwise|noculling)|device_(?:emulator|tablet)|device_ios_(?:ipad|ipad_retina|iphone|iphone5|iphone6|iphone6plus|iphone_retina|unknown)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|dll_(?:cdecl|cdel|stdcall)|ds_type_(?:grid|list|map|priority|queue|stack)|ef_(?:cloud|ellipse|explosion|firework|flare|rain|ring|smoke|smokeup|snow|spark|star)|fa_(?:archive|bottom|center|directory|hidden|left|middle|readonly|right|sysfile|top|volumeid)|fb_login_(?:default|fallback_to_webview|forcing_safari|forcing_webview|no_fallback_to_webview|use_system_account)|iap_(?:available|canceled|ev_consume|ev_product|ev_purchase|ev_restore|ev_storeload|failed|purchased|refunded|status_available|status_loading|status_processing|status_restoring|status_unavailable|status_uninitialised|storeload_failed|storeload_ok|unavailable)|leaderboard_type_(?:number|time_mins_secs)|lighttype_(?:dir|point)|matrix_(?:projection|view|world)|mb_(?:any|left|middle|none|right)|network_(?:config_(?:connect_timeout|disable_reliable_udp|enable_reliable_udp|use_non_blocking_socket)|socket_(?:bluetooth|tcp|udp)|type_(?:connect|data|disconnect|non_blocking_connect))|of_challenge_(?:lose|tie|win)|os_(?:android|ios|linux|macosx|ps3|ps4|psvita|unknown|uwp|win32|win8native|windows|winphone|xboxone)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|angle|angle_limits|damping_ratio|frequency|length_1|length_2|lower_angle_limit|max_force|max_length|max_motor_force|max_motor_torque|max_torque|motor_force|motor_speed|motor_torque|reaction_force_x|reaction_force_y|reaction_torque|speed|translation|upper_angle_limit)|phy_particle_data_flag_(?:category|color|colour|position|typeflags|velocity)|phy_particle_flag_(?:colormixing|colourmixing|elastic|powder|spring|tensile|viscous|wall|water|zombie)|phy_particle_group_flag_(?:rigid|solid)|pr_(?:linelist|linestrip|pointlist|trianglefan|trianglelist|trianglestrip)|ps_(?:distr|shape)_(?:diamond|ellipse|gaussian|invgaussian|line|linear|rectangle)|pt_shape_(?:circle|cloud|disk|explosion|flare|line|pixel|ring|smoke|snow|spark|sphere|square|star)|ty_(?:real|string)|gp_(?:face\d|axislh|axislv|axisrh|axisrv|padd|padl|padr|padu|select|shoulderl|shoulderlb|shoulderr|shoulderrb|start|stickl|stickr)|lb_disp_(?:none|numeric|time_ms|time_sec)|lb_sort_(?:ascending|descending|none)|ov_(?:achievements|community|friends|gamegroup|players|settings)|ugc_(?:filetype_(?:community|microtrans)|list_(?:Favorited|Followed|Published|Subscribed|UsedOrPlayed|VotedDown|VotedOn|VotedUp|WillVoteLater)|match_(?:AllGuides|Artwork|Collections|ControllerBindings|IntegratedGuides|Items|Items_Mtx|Items_ReadyToUse|Screenshots|UsableInGame|Videos|WebGuides)|query_(?:AcceptedForGameRankedByAcceptanceDate|CreatedByFriendsRankedByPublicationDate|FavoritedByFriendsRankedByPublicationDate|NotYetRated)|query_RankedBy(?:NumTimesReported|PublicationDate|TextSearch|TotalVotesAsc|Trend|Vote|VotesUp)|result_success|sortorder_CreationOrder(?:Asc|Desc)|sortorder_(?:ForModeration|LastUpdatedDesc|SubscriptionDateDesc|TitleAsc|VoteScoreDesc)|visibility_(?:friends_only|private|public))|vertex_usage_(?:binormal|blendindices|blendweight|color|colour|depth|fog|normal|position|psize|sample|tangent|texcoord|textcoord)|vertex_type_(?:float\d|color|colour|ubyte4)|input_type|layerelementtype_(?:background|instance|oldtilemap|particlesystem|sprite|tile|tilemap|undefined)|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|tile_(?:flip|index_mask|mirror|rotate)|(?:obj|rm|scr|spr)\w+)\b/,variable:/\b(?:alarm|application_surface|async_load|background_(?:alpha|blend|color|colour|foreground|height|hspeed|htiled|index|showcolor|showcolour|visible|vspeed|vtiled|width|x|xscale|y|yscale)|bbox_(?:bottom|left|right|top)|browser_(?:height|width)|caption_(?:health|lives|score)|current_(?:day|hour|minute|month|second|time|weekday|year)|cursor_sprite|debug_mode|delta_time|direction|display_aa|error_(?:last|occurred)|event_(?:action|number|object|type)|fps|fps_real|friction|game_(?:display|project|save)_(?:id|name)|gamemaker_(?:pro|registered|version)|gravity|gravity_direction|(?:h|v)speed|health|iap_data|id|image_(?:alpha|angle|blend|depth|index|number|speed|xscale|yscale)|instance_(?:count|id)|keyboard_(?:key|lastchar|lastkey|string)|layer|lives|mask_index|mouse_(?:button|lastbutton|x|y)|object_index|os_(?:browser|device|type|version)|path_(?:endaction|index|orientation|position|positionprevious|scale|speed)|persistent|phy_(?:rotation|(?:col_normal|collision|com|linear_velocity|position|speed)_(?:x|y)|angular_(?:damping|velocity)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|pointer_(?:invalid|null)|room|room_(?:caption|first|height|last|persistent|speed|width)|score|secure_mode|show_(?:health|lives|score)|solid|speed|sprite_(?:height|index|width|xoffset|yoffset)|temp_directory|timeline_(?:index|loop|position|running|speed)|transition_(?:color|kind|steps)|undefined|view_(?:angle|current|enabled|(?:h|v)(?:border|speed)|(?:h|w|x|y)port|(?:h|w|x|y)view|object|surface_id|visible)|visible|webgl_enabled|working_directory|(?:x|y)(?:previous|start)|x|y|argument(?:_relitive|_count|\d)|argument|global|local|other|self)\b/})}e.exports=t,t.displayName="gml",t.aliases=[]},288:function(e){"use strict";function t(e){e.languages.gn={comment:{pattern:/#.*/,greedy:!0},"string-literal":{pattern:/(^|[^\\"])"(?:[^\r\n"\\]|\\.)*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\{[\s\S]*?\}|[a-zA-Z_]\w*|0x[a-fA-F0-9]{2})/,lookbehind:!0,inside:{number:/^\$0x[\s\S]{2}$/,variable:/^\$\w+$/,"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:null}}},string:/[\s\S]+/}},keyword:/\b(?:else|if)\b/,boolean:/\b(?:false|true)\b/,"builtin-function":{pattern:/\b(?:assert|defined|foreach|import|pool|print|template|tool|toolchain)(?=\s*\()/i,alias:"keyword"},function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:current_cpu|current_os|current_toolchain|default_toolchain|host_cpu|host_os|root_build_dir|root_gen_dir|root_out_dir|target_cpu|target_gen_dir|target_os|target_out_dir)\b/,number:/-?\b\d+\b/,operator:/[-+!=<>]=?|&&|\|\|/,punctuation:/[(){}[\],.]/},e.languages.gn["string-literal"].inside.interpolation.inside.expression.inside=e.languages.gn,e.languages.gni=e.languages.gn}e.exports=t,t.displayName="gn",t.aliases=["gni"]},78:function(e){"use strict";function t(e){e.languages["go-mod"]=e.languages["go-module"]={comment:{pattern:/\/\/.*/,greedy:!0},version:{pattern:/(^|[\s()[\],])v\d+\.\d+\.\d+(?:[+-][-+.\w]*)?(?![^\s()[\],])/,lookbehind:!0,alias:"number"},"go-version":{pattern:/((?:^|\s)go\s+)\d+(?:\.\d+){1,2}/,lookbehind:!0,alias:"number"},keyword:{pattern:/^([ \t]*)(?:exclude|go|module|replace|require|retract)\b/m,lookbehind:!0},operator:/=>/,punctuation:/[()[\],]/}}e.exports=t,t.displayName="goModule",t.aliases=[]},8558:function(e){"use strict";function t(e){e.languages.go=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),e.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete e.languages.go["class-name"]}e.exports=t,t.displayName="go",t.aliases=[]},8430:function(e){"use strict";function t(e){e.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:e.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},e.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!==typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var i=p(/^\($/,/^\)$/);if(-1===i)continue;for(;n<i;n++){var o=u(0);"variable"===o.type&&(m(o,"variable-input"),a.push(o.content))}n=i+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,m(u(0),"property-mutation"),a.length>0)){var s=p(/^\{$/,/^\}$/);if(-1===s)continue;for(var l=n;l<s;l++){var c=t[l];"variable"===c.type&&a.indexOf(c.content)>=0&&m(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return!1}return!0}function p(e,r){for(var a=1,i=n;i<t.length;i++){var o=t[i],s=o.content;if("punctuation"===o.type&&"string"===typeof s)if(e.test(s))a++;else if(r.test(s)&&0===--a)return i}return-1}function m(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}}))}e.exports=t,t.displayName="graphql",t.aliases=[]},7986:function(e){"use strict";function t(e){e.languages.groovy=e.languages.extend("clike",{string:[{pattern:/("""|''')(?:[^\\]|\\[\s\S])*?\1|\$\/(?:[^/$]|\$(?:[/$]|(?![/$]))|\/(?!\$))*\/\$/,greedy:!0},{pattern:/(["'/])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],keyword:/\b(?:abstract|as|assert|boolean|break|byte|case|catch|char|class|const|continue|def|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|in|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/,number:/\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?\d+)?)[glidf]?\b/i,operator:{pattern:/(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.\.(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),e.languages.insertBefore("groovy","string",{shebang:{pattern:/#!.+/,alias:"comment"}}),e.languages.insertBefore("groovy","punctuation",{"spock-block":/\b(?:and|cleanup|expect|given|setup|then|when|where):/}),e.languages.insertBefore("groovy","function",{annotation:{pattern:/(^|[^.])@\w+/,lookbehind:!0,alias:"punctuation"}}),e.hooks.add("wrap",(function(t){if("groovy"===t.language&&"string"===t.type){var n=t.content.value[0];if("'"!=n){var r=/([^\\])(?:\$(?:\{.*?\}|[\w.]+))/;"$"===n&&(r=/([^\$])(?:\$(?:\{.*?\}|[\w.]+))/),t.content.value=t.content.value.replace(/&lt;/g,"<").replace(/&amp;/g,"&"),t.content=e.highlight(t.content.value,{expression:{pattern:r,lookbehind:!0,inside:e.languages.groovy}}),t.classes.push("/"===n?"regex":"gstring")}}}))}e.exports=t,t.displayName="groovy",t.aliases=[]},7865:function(e,t,n){"use strict";var r=n(6326);function a(e){e.register(r),function(e){e.languages.haml={"multiline-comment":{pattern:/((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*(?:(?:\r?\n|\r)\2[\t ].+)*/,lookbehind:!0,alias:"comment"},"multiline-code":[{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(?:(?:\r?\n|\r)\2[\t ].*,[\t ]*)*(?:(?:\r?\n|\r)\2[\t ].+)/,lookbehind:!0,inside:e.languages.ruby},{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*(?:(?:\r?\n|\r)\2[\t ].*\|[\t ]*)*/,lookbehind:!0,inside:e.languages.ruby}],filter:{pattern:/((?:^|\r?\n|\r)([\t ]*)):[\w-]+(?:(?:\r?\n|\r)(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"symbol"}}},markup:{pattern:/((?:^|\r?\n|\r)[\t ]*)<.+/,lookbehind:!0,inside:e.languages.markup},doctype:{pattern:/((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/,lookbehind:!0},tag:{pattern:/((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^{}])+\}|\[[^\]]+\])*[\/<>]*/,lookbehind:!0,inside:{attributes:[{pattern:/(^|[^#])\{(?:\{[^}]+\}|[^{}])+\}/,lookbehind:!0,inside:e.languages.ruby},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*)(?:"(?:\\.|[^\\"\r\n])*"|[^)\s]+)/,lookbehind:!0},"attr-name":/[\w:-]+(?=\s*!?=|\s*[,)])/,punctuation:/[=(),]/}},{pattern:/\[[^\]]+\]/,inside:e.languages.ruby}],punctuation:/[<>]/}},code:{pattern:/((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/,lookbehind:!0,inside:e.languages.ruby},interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},ruby:{pattern:/[\s\S]+/,inside:e.languages.ruby}}},punctuation:{pattern:/((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/,lookbehind:!0}};for(var t=["css",{filter:"coffee",language:"coffeescript"},"erb","javascript","less","markdown","ruby","scss","textile"],n={},r=0,a=t.length;r<a;r++){var i=t[r];i="string"===typeof i?{filter:i,language:i}:i,e.languages[i.language]&&(n["filter-"+i.filter]={pattern:RegExp("((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+".replace("{{filter_name}}",(function(){return i.filter}))),lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"symbol"},text:{pattern:/[\s\S]+/,alias:[i.language,"language-"+i.language],inside:e.languages[i.language]}}})}e.languages.insertBefore("haml","filter",n)}(e)}e.exports=a,a.displayName="haml",a.aliases=[]},4490:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(e)}e.exports=a,a.displayName="handlebars",a.aliases=["hbs"]},9233:function(e){"use strict";function t(e){e.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\/].*|$)|\{-[\s\S]*?-\})/m,lookbehind:!0},char:{pattern:/'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|ACK|BEL|BS|CAN|CR|DC1|DC2|DC3|DC4|DEL|DLE|EM|ENQ|EOT|ESC|ETB|ETX|FF|FS|GS|HT|LF|NAK|NUL|RS|SI|SO|SOH|SP|STX|SUB|SYN|US|VT|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,alias:"string"},string:{pattern:/"(?:[^\\"]|\\(?:\S|\s+\\))*"/,greedy:!0},keyword:/\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,"import-statement":{pattern:/(^[\t ]*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|hiding|import|qualified)\b/,punctuation:/\./}},builtin:/\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:[{pattern:/`(?:[A-Z][\w']*\.)*[_a-z][\w']*`/,greedy:!0},{pattern:/(\s)\.(?=\s)/,lookbehind:!0},/[-!#$%*+=?&@|~:<>^\\\/][-!#$%*+=?&@|~.:<>^\\\/]*|\.[-!#$%*+=?&@|~.:<>^\\\/]+/],hvariable:{pattern:/\b(?:[A-Z][\w']*\.)*[_a-z][\w']*/,inside:{punctuation:/\./}},constant:{pattern:/\b(?:[A-Z][\w']*\.)*[A-Z][\w']*/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:]/},e.languages.hs=e.languages.haskell}e.exports=t,t.displayName="haskell",t.aliases=["hs"]},6647:function(e){"use strict";function t(e){e.languages.haxe=e.languages.extend("clike",{string:{pattern:/"(?:[^"\\]|\\[\s\S])*"/,greedy:!0},"class-name":[{pattern:/(\b(?:abstract|class|enum|extends|implements|interface|new|typedef)\s+)[A-Z_]\w*/,lookbehind:!0},/\b[A-Z]\w*/],keyword:/\bthis\b|\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|final|for|from|function|if|implements|import|in|inline|interface|macro|new|null|operator|overload|override|package|private|public|return|static|super|switch|throw|to|try|typedef|untyped|using|var|while)(?!\.)\b/,function:{pattern:/\b[a-z_]\w*(?=\s*(?:<[^<>]*>\s*)?\()/i,greedy:!0},operator:/\.{3}|\+\+|--|&&|\|\||->|=>|(?:<<?|>{1,3}|[-+*/%!=&|^])=?|[?:~]/}),e.languages.insertBefore("haxe","string",{"string-interpolation":{pattern:/'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{interpolation:{pattern:/(^|[^\\])\$(?:\w+|\{[^{}]+\})/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.haxe}}},string:/[\s\S]+/}}}),e.languages.insertBefore("haxe","class-name",{regex:{pattern:/~\/(?:[^\/\\\r\n]|\\.)+\/[a-z]*/,greedy:!0,inside:{"regex-flags":/\b[a-z]+$/,"regex-source":{pattern:/^(~\/)[\s\S]+(?=\/$)/,lookbehind:!0,alias:"language-regex",inside:e.languages.regex},"regex-delimiter":/^~\/|\/$/}}}),e.languages.insertBefore("haxe","keyword",{preprocessor:{pattern:/#(?:else|elseif|end|if)\b.*/,alias:"property"},metadata:{pattern:/@:?[\w.]+/,alias:"symbol"},reification:{pattern:/\$(?:\w+|(?=\{))/,alias:"important"}})}e.exports=t,t.displayName="haxe",t.aliases=[]},8237:function(e){"use strict";function t(e){e.languages.hcl={comment:/(?:\/\/|#).*|\/\*[\s\S]*?(?:\*\/|$)/,heredoc:{pattern:/<<-?(\w+\b)[\s\S]*?^[ \t]*\1/m,greedy:!0,alias:"string"},keyword:[{pattern:/(?:data|resource)\s+(?:"(?:\\[\s\S]|[^\\"])*")(?=\s+"[\w-]+"\s+\{)/i,inside:{type:{pattern:/(resource|data|\s+)(?:"(?:\\[\s\S]|[^\\"])*")/i,lookbehind:!0,alias:"variable"}}},{pattern:/(?:backend|module|output|provider|provisioner|variable)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+(?=\{)/i,inside:{type:{pattern:/(backend|module|output|provider|provisioner|variable)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+/i,lookbehind:!0,alias:"variable"}}},/[\w-]+(?=\s+\{)/],property:[/[-\w\.]+(?=\s*=(?!=))/,/"(?:\\[\s\S]|[^\\"])+"(?=\s*[:=])/],string:{pattern:/"(?:[^\\$"]|\\[\s\S]|\$(?:(?=")|\$+(?!\$)|[^"${])|\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\})*"/,greedy:!0,inside:{interpolation:{pattern:/(^|[^$])\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\}/,lookbehind:!0,inside:{type:{pattern:/(\b(?:count|data|local|module|path|self|terraform|var)\b\.)[\w\*]+/i,lookbehind:!0,alias:"variable"},keyword:/\b(?:count|data|local|module|path|self|terraform|var)\b/i,function:/\w+(?=\()/,string:{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0},number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,punctuation:/[!\$#%&'()*+,.\/;<=>@\[\\\]^`{|}~?:]/}}}},number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,boolean:/\b(?:false|true)\b/i,punctuation:/[=\[\]{}]/}}e.exports=t,t.displayName="hcl",t.aliases=[]},9814:function(e,t,n){"use strict";var r=n(272);function a(e){e.register(r),e.languages.hlsl=e.languages.extend("c",{"class-name":[e.languages.c["class-name"],/\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|RasterizerState|RenderTargetView|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\b/],keyword:[/\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\b/,/\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\b/],number:/(?:(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?|\b0x[\da-fA-F]+)[fFhHlLuU]?\b/,boolean:/\b(?:false|true)\b/})}e.exports=a,a.displayName="hlsl",a.aliases=[]},8661:function(e){"use strict";function t(e){e.languages.hoon={comment:{pattern:/::.*/,greedy:!0},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},constant:/%(?:\.[ny]|[\w-]+)/,"class-name":/@(?:[a-z0-9-]*[a-z0-9])?|\*/i,function:/(?:\+[-+] {2})?(?:[a-z](?:[a-z0-9-]*[a-z0-9])?)/,keyword:/\.[\^\+\*=\?]|![><:\.=\?!]|=[>|:,\.\-\^<+;/~\*\?]|\?[>|:\.\-\^<\+&~=@!]|\|[\$_%:\.\-\^~\*=@\?]|\+[|\$\+\*]|:[_\-\^\+~\*]|%[_:\.\-\^\+~\*=]|\^[|:\.\-\+&~\*=\?]|\$[|_%:<>\-\^&~@=\?]|;[:<\+;\/~\*=]|~[>|\$_%<\+\/&=\?!]|--|==/}}e.exports=t,t.displayName="hoon",t.aliases=[]},5727:function(e){"use strict";function t(e){e.languages.hpkp={directive:{pattern:/\b(?:includeSubDomains|max-age|pin-sha256|preload|report-to|report-uri|strict)(?=[\s;=]|$)/i,alias:"property"},operator:/=/,punctuation:/;/}}e.exports=t,t.displayName="hpkp",t.aliases=[]},7761:function(e){"use strict";function t(e){e.languages.hsts={directive:{pattern:/\b(?:includeSubDomains|max-age|preload)(?=[\s;=]|$)/i,alias:"property"},operator:/=/,punctuation:/;/}}e.exports=t,t.displayName="hsts",t.aliases=[]},6722:function(e){"use strict";function t(e){!function(e){function t(e){return RegExp("(^(?:"+e+"):[ \t]*(?![ \t]))[^]+","i")}e.languages.http={"request-line":{pattern:/^(?:CONNECT|DELETE|GET|HEAD|OPTIONS|PATCH|POST|PRI|PUT|SEARCH|TRACE)\s(?:https?:\/\/|\/)\S*\sHTTP\/[\d.]+/m,inside:{method:{pattern:/^[A-Z]+\b/,alias:"property"},"request-target":{pattern:/^(\s)(?:https?:\/\/|\/)\S*(?=\s)/,lookbehind:!0,alias:"url",inside:e.languages.uri},"http-version":{pattern:/^(\s)HTTP\/[\d.]+/,lookbehind:!0,alias:"property"}}},"response-status":{pattern:/^HTTP\/[\d.]+ \d+ .+/m,inside:{"http-version":{pattern:/^HTTP\/[\d.]+/,alias:"property"},"status-code":{pattern:/^(\s)\d+(?=\s)/,lookbehind:!0,alias:"number"},"reason-phrase":{pattern:/^(\s).+/,lookbehind:!0,alias:"string"}}},header:{pattern:/^[\w-]+:.+(?:(?:\r\n?|\n)[ \t].+)*/m,inside:{"header-value":[{pattern:t(/Content-Security-Policy/.source),lookbehind:!0,alias:["csp","languages-csp"],inside:e.languages.csp},{pattern:t(/Public-Key-Pins(?:-Report-Only)?/.source),lookbehind:!0,alias:["hpkp","languages-hpkp"],inside:e.languages.hpkp},{pattern:t(/Strict-Transport-Security/.source),lookbehind:!0,alias:["hsts","languages-hsts"],inside:e.languages.hsts},{pattern:t(/[^:]+/.source),lookbehind:!0}],"header-name":{pattern:/^[^:]+/,alias:"keyword"},punctuation:/^:/}}};var n,r=e.languages,a={"application/javascript":r.javascript,"application/json":r.json||r.javascript,"application/xml":r.xml,"text/xml":r.xml,"text/html":r.html,"text/css":r.css,"text/plain":r.plain},i={"application/json":!0,"application/xml":!0};function o(e){var t=e.replace(/^[a-z]+\//,"");return"(?:"+e+"|"+("\\w+/(?:[\\w.-]+\\+)+"+t+"(?![+\\w.-])")+")"}for(var s in a)if(a[s]){n=n||{};var l=i[s]?o(s):s;n[s.replace(/\//g,"-")]={pattern:RegExp("("+/content-type:\s*/.source+l+/(?:(?:\r\n?|\n)[\w-].*)*(?:\r(?:\n|(?!\n))|\n)/.source+")"+/[^ \t\w-][\s\S]*/.source,"i"),lookbehind:!0,inside:a[s]}}n&&e.languages.insertBefore("http","header",n)}(e)}e.exports=t,t.displayName="http",t.aliases=[]},1469:function(e){"use strict";function t(e){e.languages.ichigojam={comment:/(?:\B'|REM)(?:[^\n\r]*)/i,string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^\w +\-.])*"/,greedy:!0},number:/\B#[0-9A-F]+|\B`[01]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GOTO|GSB|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RIGHT|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\$|\b)/i,function:/\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\$|\b)/i,label:/(?:\B@\S+)/,operator:/<[=>]?|>=?|\|\||&&|[+\-*\/=|&^~!]|\b(?:AND|NOT|OR)\b/i,punctuation:/[\[,;:()\]]/}}e.exports=t,t.displayName="ichigojam",t.aliases=[]},8340:function(e){"use strict";function t(e){e.languages.icon={comment:/#.*/,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n_]|\\.|_(?!\1)(?:\r\n|[\s\S]))*\1/,greedy:!0},number:/\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i,"builtin-keyword":{pattern:/&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/,alias:"variable"},directive:{pattern:/\$\w+/,alias:"builtin"},keyword:/\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/,function:/\b(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/,operator:/[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|<?=?)|>>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/,punctuation:/[\[\](){},;]/}}e.exports=t,t.displayName="icon",t.aliases=[]},8925:function(e){"use strict";function t(e){!function(e){function t(e,n){return n<=0?/[]/.source:e.replace(/<SELF>/g,(function(){return t(e,n-1)}))}var n=/'[{}:=,](?:[^']|'')*'(?!')/,r={pattern:/''/,greedy:!0,alias:"operator"},a={pattern:n,greedy:!0,inside:{escape:r}},i=t(/\{(?:[^{}']|'(?![{},'])|''|<STR>|<SELF>)*\}/.source.replace(/<STR>/g,(function(){return n.source})),8),o={pattern:RegExp(i),inside:{message:{pattern:/^(\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:null},"message-delimiter":{pattern:/./,alias:"punctuation"}}};e.languages["icu-message-format"]={argument:{pattern:RegExp(i),greedy:!0,inside:{content:{pattern:/^(\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:{"argument-name":{pattern:/^(\s*)[^{}:=,\s]+/,lookbehind:!0},"choice-style":{pattern:/^(\s*,\s*choice\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{punctuation:/\|/,range:{pattern:/^(\s*)[+-]?(?:\d+(?:\.\d*)?|\u221e)\s*[<#\u2264]/,lookbehind:!0,inside:{operator:/[<#\u2264]/,number:/\S+/}},rest:null}},"plural-style":{pattern:/^(\s*,\s*(?:plural|selectordinal)\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{offset:/^offset:\s*\d+/,"nested-message":o,selector:{pattern:/=\d+|[^{}:=,\s]+/,inside:{keyword:/^(?:few|many|one|other|two|zero)$/}}}},"select-style":{pattern:/^(\s*,\s*select\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{"nested-message":o,selector:{pattern:/[^{}:=,\s]+/,inside:{keyword:/^other$/}}}},keyword:/\b(?:choice|plural|select|selectordinal)\b/,"arg-type":{pattern:/\b(?:date|duration|number|ordinal|spellout|time)\b/,alias:"keyword"},"arg-skeleton":{pattern:/(,\s*)::[^{}:=,\s]+/,lookbehind:!0},"arg-style":{pattern:/(,\s*)(?:currency|full|integer|long|medium|percent|short)(?=\s*$)/,lookbehind:!0},"arg-style-text":{pattern:RegExp(/(^\s*,\s*(?=\S))/.source+t(/(?:[^{}']|'[^']*'|\{(?:<SELF>)?\})+/.source,8)+"$"),lookbehind:!0,alias:"string"},punctuation:/,/}},"argument-delimiter":{pattern:/./,alias:"operator"}}},escape:r,string:a},o.inside.message.inside=e.languages["icu-message-format"],e.languages["icu-message-format"].argument.inside.content.inside["choice-style"].inside.rest=e.languages["icu-message-format"]}(e)}e.exports=t,t.displayName="icuMessageFormat",t.aliases=[]},3298:function(e,t,n){"use strict";var r=n(9233);function a(e){e.register(r),e.languages.idris=e.languages.extend("haskell",{comment:{pattern:/(?:(?:--|\|\|\|).*$|\{-[\s\S]*?-\})/m},keyword:/\b(?:Type|case|class|codata|constructor|corecord|data|do|dsl|else|export|if|implementation|implicit|import|impossible|in|infix|infixl|infixr|instance|interface|let|module|mutual|namespace|of|parameters|partial|postulate|private|proof|public|quoteGoal|record|rewrite|syntax|then|total|using|where|with)\b/,builtin:void 0}),e.languages.insertBefore("idris","keyword",{"import-statement":{pattern:/(^\s*import\s+)(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*/m,lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.idr=e.languages.idris}e.exports=a,a.displayName="idris",a.aliases=["idr"]},3390:function(e){"use strict";function t(e){e.languages.iecst={comment:[{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\(\*[\s\S]*?(?:\*\)|$)|\{[\s\S]*?(?:\}|$))/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:[/\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:ACCESS|CONFIG|EXTERNAL|GLOBAL|INPUT|IN_OUT|OUTPUT|TEMP)|VAR|METHOD|PROPERTY)\b/i,/\b(?:AT|BY|(?:END_)?(?:CASE|FOR|IF|REPEAT|WHILE)|CONSTANT|CONTINUE|DO|ELSE|ELSIF|EXIT|EXTENDS|FROM|GET|GOTO|IMPLEMENTS|JMP|NON_RETAIN|OF|PRIVATE|PROTECTED|PUBLIC|RETAIN|RETURN|SET|TASK|THEN|TO|UNTIL|USING|WITH|__CATCH|__ENDTRY|__FINALLY|__TRY)\b/],"class-name":/\b(?:ANY|ARRAY|BOOL|BYTE|U?(?:D|L|S)?INT|(?:D|L)?WORD|DATE(?:_AND_TIME)?|DT|L?REAL|POINTER|STRING|TIME(?:_OF_DAY)?|TOD)\b/,address:{pattern:/%[IQM][XBWDL][\d.]*|%[IQ][\d.]*/,alias:"symbol"},number:/\b(?:16#[\da-f]+|2#[01_]+|0x[\da-f]+)\b|\b(?:D|DT|T|TOD)#[\d_shmd:]*|\b[A-Z]*#[\d.,_]*|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/,operator:/S?R?:?=>?|&&?|\*\*?|<[=>]?|>=?|[-:^/+#]|\b(?:AND|EQ|EXPT|GE|GT|LE|LT|MOD|NE|NOT|OR|XOR)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,punctuation:/[()[\].,;]/}}e.exports=t,t.displayName="iecst",t.aliases=[]},7145:function(e){"use strict";function t(e){!function(e){e.languages.ignore={comment:/^#.*/m,entry:{pattern:/\S(?:.*(?:(?:\\ )|\S))?/,alias:"string",inside:{operator:/^!|\*\*?|\?/,regex:{pattern:/(^|[^\\])\[[^\[\]]*\]/,lookbehind:!0},punctuation:/\//}}},e.languages.gitignore=e.languages.ignore,e.languages.hgignore=e.languages.ignore,e.languages.npmignore=e.languages.ignore}(e)}e.exports=t,t.displayName="ignore",t.aliases=["gitignore","hgignore","npmignore"]},4600:function(e){"use strict";function t(e){e.languages.inform7={string:{pattern:/"[^"]*"/,inside:{substitution:{pattern:/\[[^\[\]]+\]/,inside:{delimiter:{pattern:/\[|\]/,alias:"punctuation"}}}}},comment:{pattern:/\[[^\[\]]+\]/,greedy:!0},title:{pattern:/^[ \t]*(?:book|chapter|part(?! of)|section|table|volume)\b.+/im,alias:"important"},number:{pattern:/(^|[^-])(?:\b\d+(?:\.\d+)?(?:\^\d+)?(?:(?!\d)\w+)?|\b(?:eight|eleven|five|four|nine|one|seven|six|ten|three|twelve|two))\b(?!-)/i,lookbehind:!0},verb:{pattern:/(^|[^-])\b(?:answering|applying to|are|asking|attacking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:ing|s)?|consulting|contain(?:ing|s)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:s|ve|ving)|hold(?:ing|s)?|impl(?:ies|y)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:ing|s)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:ing|s)?|setting|showing|singing|sleeping|smelling|squeezing|support(?:ing|s)?|swearing|switching|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:ing|s)?|var(?:ies|y|ying)|waiting|waking|waving|wear(?:ing|s)?)\b(?!-)/i,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^-])\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|the story|unless)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\b(?!-)/i,lookbehind:!0},property:{pattern:/(^|[^-])\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: off| on)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\b(?!-)/i,lookbehind:!0,alias:"symbol"},position:{pattern:/(^|[^-])\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\b(?!-)/i,lookbehind:!0,alias:"keyword"},type:{pattern:/(^|[^-])\b(?:actions?|activit(?:ies|y)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\b(?!-)/i,lookbehind:!0,alias:"variable"},punctuation:/[.,:;(){}]/},e.languages.inform7.string.inside.substitution.inside.rest=e.languages.inform7,e.languages.inform7.string.inside.substitution.inside.rest.text={pattern:/\S(?:\s*\S)*/,alias:"comment"}}e.exports=t,t.displayName="inform7",t.aliases=[]},3409:function(e){"use strict";function t(e){e.languages.ini={comment:{pattern:/(^[ \f\t\v]*)[#;][^\n\r]*/m,lookbehind:!0},section:{pattern:/(^[ \f\t\v]*)\[[^\n\r\]]*\]?/m,lookbehind:!0,inside:{"section-name":{pattern:/(^\[[ \f\t\v]*)[^ \f\t\v\]]+(?:[ \f\t\v]+[^ \f\t\v\]]+)*/,lookbehind:!0,alias:"selector"},punctuation:/\[|\]/}},key:{pattern:/(^[ \f\t\v]*)[^ \f\n\r\t\v=]+(?:[ \f\t\v]+[^ \f\n\r\t\v=]+)*(?=[ \f\t\v]*=)/m,lookbehind:!0,alias:"attr-name"},value:{pattern:/(=[ \f\t\v]*)[^ \f\n\r\t\v]+(?:[ \f\t\v]+[^ \f\n\r\t\v]+)*/,lookbehind:!0,alias:"attr-value",inside:{"inner-value":{pattern:/^("|').+(?=\1$)/,lookbehind:!0}}},punctuation:/=/}}e.exports=t,t.displayName="ini",t.aliases=[]},4197:function(e){"use strict";function t(e){e.languages.io={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\/\/.*|#.*)/,lookbehind:!0,greedy:!0},"triple-quoted-string":{pattern:/"""(?:\\[\s\S]|(?!""")[^\\])*"""/,greedy:!0,alias:"string"},string:{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},keyword:/\b(?:activate|activeCoroCount|asString|block|break|call|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getEnvironmentVariable|getSlot|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|try|type|uniqueId|updateSlot|wait|while|write|yield)\b/,builtin:/\b(?:Array|AudioDevice|AudioMixer|BigNum|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Random|Regex|SGML|SGMLElement|SGMLParser|SQLite|Sequence|Server|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink)\b/,boolean:/\b(?:false|nil|true)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?/i,operator:/[=!*/%+\-^&|]=|>>?=?|<<?=?|:?:?=|\+\+?|--?|\*\*?|\/\/?|%|\|\|?|&&?|\b(?:and|not|or|return)\b|@@?|\?\??|\.\./,punctuation:/[{}[\];(),.:]/}}e.exports=t,t.displayName="io",t.aliases=[]},3269:function(e){"use strict";function t(e){e.languages.j={comment:{pattern:/\bNB\..*/,greedy:!0},string:{pattern:/'(?:''|[^'\r\n])*'/,greedy:!0},keyword:/\b(?:(?:CR|LF|adverb|conjunction|def|define|dyad|monad|noun|verb)\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\w+|goto_\w+|if|label_\w+|return|select|throw|try|while|whilst)\.)/,verb:{pattern:/(?!\^:|;\.|[=!][.:])(?:\{(?:\.|::?)?|p(?:\.\.?|:)|[=!\]]|[<>+*\-%$|,#][.:]?|[?^]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,alias:"keyword"},number:/\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:ad|ar|[ejpx])_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_\b(?!\.))/,adverb:{pattern:/[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,alias:"builtin"},operator:/[=a][.:]|_\./,conjunction:{pattern:/&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,alias:"variable"},punctuation:/[()]/}}e.exports=t,t.displayName="j",t.aliases=[]},5543:function(e){"use strict";function t(e){!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,r={pattern:RegExp(n+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[r,{pattern:RegExp(n+/[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source),lookbehind:!0,inside:r.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":r,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!<keyword>)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(e)}e.exports=t,t.displayName="java",t.aliases=[]},8428:function(e,t,n){"use strict";var r=n(5543),a=n(9285);function i(e){e.register(r),e.register(a),function(e){var t=/(^(?:[\t ]*(?:\*\s*)*))[^*\s].*$/m,n=/#\s*\w+(?:\s*\([^()]*\))?/.source,r=/(?:\b[a-zA-Z]\w+\s*\.\s*)*\b[A-Z]\w*(?:\s*<mem>)?|<mem>/.source.replace(/<mem>/g,(function(){return n}));e.languages.javadoc=e.languages.extend("javadoclike",{}),e.languages.insertBefore("javadoc","keyword",{reference:{pattern:RegExp(/(@(?:exception|link|linkplain|see|throws|value)\s+(?:\*\s*)?)/.source+"(?:"+r+")"),lookbehind:!0,inside:{function:{pattern:/(#\s*)\w+(?=\s*\()/,lookbehind:!0},field:{pattern:/(#\s*)\w+/,lookbehind:!0},namespace:{pattern:/\b(?:[a-z]\w*\s*\.\s*)+/,inside:{punctuation:/\./}},"class-name":/\b[A-Z]\w*/,keyword:e.languages.java.keyword,punctuation:/[#()[\],.]/}},"class-name":{pattern:/(@param\s+)<[A-Z]\w*>/,lookbehind:!0,inside:{punctuation:/[.<>]/}},"code-section":[{pattern:/(\{@code\s+(?!\s))(?:[^\s{}]|\s+(?![\s}])|\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\})+(?=\s*\})/,lookbehind:!0,inside:{code:{pattern:t,lookbehind:!0,inside:e.languages.java,alias:"language-java"}}},{pattern:/(<(code|pre|tt)>(?!<code>)\s*)\S(?:\S|\s+\S)*?(?=\s*<\/\2>)/,lookbehind:!0,inside:{line:{pattern:t,lookbehind:!0,inside:{tag:e.languages.markup.tag,entity:e.languages.markup.entity,code:{pattern:/.+/,inside:e.languages.java,alias:"language-java"}}}}}],tag:e.languages.markup.tag,entity:e.languages.markup.entity}),e.languages.javadoclike.addSupport("java",e.languages.javadoc)}(e)}e.exports=i,i.displayName="javadoc",i.aliases=[]},9285:function(e){"use strict";function t(e){!function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){"string"===typeof t&&(t=[t]),t.forEach((function(t){!function(t,n){var r="doc-comment",a=e.languages[t];if(a){var i=a[r];if(!i){var o={"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}};i=(a=e.languages.insertBefore(t,"comment",o))[r]}if(i instanceof RegExp&&(i=a[r]={pattern:i}),Array.isArray(i))for(var s=0,l=i.length;s<l;s++)i[s]instanceof RegExp&&(i[s]={pattern:i[s]}),n(i[s]);else n(i)}}(t,(function(e){e.inside||(e.inside={}),e.inside.rest=n}))}))}}),t.addSupport(["java","javascript","php"],t)}(e)}e.exports=t,t.displayName="javadoclike",t.aliases=[]},7556:function(e){"use strict";function t(e){e.languages.javascript=e.languages.extend("clike",{"class-name":[e.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),e.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,e.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:e.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:e.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:e.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:e.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:e.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),e.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:e.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),e.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),e.languages.markup&&(e.languages.markup.tag.addInlined("script","javascript"),e.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),e.languages.js=e.languages.javascript}e.exports=t,t.displayName="javascript",t.aliases=["js"]},1570:function(e){"use strict";function t(e){e.languages.javastacktrace={summary:{pattern:/^([\t ]*)(?:(?:Caused by:|Suppressed:|Exception in thread "[^"]*")[\t ]+)?[\w$.]+(?::.*)?$/m,lookbehind:!0,inside:{keyword:{pattern:/^([\t ]*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,lookbehind:!0},string:{pattern:/^(\s*)"[^"]*"/,lookbehind:!0},exceptions:{pattern:/^(:?\s*)[\w$.]+(?=:|$)/,lookbehind:!0,inside:{"class-name":/[\w$]+$/,namespace:/\b[a-z]\w*\b/,punctuation:/\./}},message:{pattern:/(:\s*)\S.*/,lookbehind:!0,alias:"string"},punctuation:/:/}},"stack-frame":{pattern:/^([\t ]*)at (?:[\w$./]|@[\w$.+-]*\/)+(?:<init>)?\([^()]*\)/m,lookbehind:!0,inside:{keyword:{pattern:/^(\s*)at(?= )/,lookbehind:!0},source:[{pattern:/(\()\w+\.\w+:\d+(?=\))/,lookbehind:!0,inside:{file:/^\w+\.\w+/,punctuation:/:/,"line-number":{pattern:/\b\d+\b/,alias:"number"}}},{pattern:/(\()[^()]*(?=\))/,lookbehind:!0,inside:{keyword:/^(?:Native Method|Unknown Source)$/}}],"class-name":/[\w$]+(?=\.(?:<init>|[\w$]+)\()/,function:/(?:<init>|[\w$]+)(?=\()/,"class-loader":{pattern:/(\s)[a-z]\w*(?:\.[a-z]\w*)*(?=\/[\w@$.]*\/)/,lookbehind:!0,alias:"namespace",inside:{punctuation:/\./}},module:{pattern:/([\s/])[a-z]\w*(?:\.[a-z]\w*)*(?:@[\w$.+-]*)?(?=\/)/,lookbehind:!0,inside:{version:{pattern:/(@)[\s\S]+/,lookbehind:!0,alias:"number"},punctuation:/[@.]/}},namespace:{pattern:/(?:\b[a-z]\w*\.)+/,inside:{punctuation:/\./}},punctuation:/[()/.]/}},more:{pattern:/^([\t ]*)\.{3} \d+ [a-z]+(?: [a-z]+)*/m,lookbehind:!0,inside:{punctuation:/\.{3}/,number:/\d+/,keyword:/\b[a-z]+(?: [a-z]+)*\b/}}}}e.exports=t,t.displayName="javastacktrace",t.aliases=[]},9298:function(e){"use strict";function t(e){e.languages.jexl={string:/(["'])(?:\\[\s\S]|(?!\1)[^\\])*\1/,transform:{pattern:/(\|\s*)[a-zA-Z\u0430-\u044f\u0410-\u042f_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][\w\u0430-\u044f\u0410-\u042f\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*/,alias:"function",lookbehind:!0},function:/[a-zA-Z\u0430-\u044f\u0410-\u042f_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][\w\u0430-\u044f\u0410-\u042f\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*\s*(?=\()/,number:/\b\d+(?:\.\d+)?\b|\B\.\d+\b/,operator:/[<>!]=?|-|\+|&&|==|\|\|?|\/\/?|[?:*^%]/,boolean:/\b(?:false|true)\b/,keyword:/\bin\b/,punctuation:/[{}[\](),.]/}}e.exports=t,t.displayName="jexl",t.aliases=[]},32:function(e){"use strict";function t(e){e.languages.jolie=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\[\s\S]|[^"\\])*"/,lookbehind:!0,greedy:!0},"class-name":{pattern:/((?:\b(?:as|courier|embed|in|inputPort|outputPort|service)\b|@)[ \t]*)\w+/,lookbehind:!0},keyword:/\b(?:as|cH|comp|concurrent|constants|courier|cset|csets|default|define|else|embed|embedded|execution|exit|extender|for|foreach|forward|from|global|if|import|in|include|init|inputPort|install|instanceof|interface|is_defined|linkIn|linkOut|main|new|nullProcess|outputPort|over|private|provide|public|scope|sequential|service|single|spawn|synchronized|this|throw|throws|type|undef|until|while|with)\b/,function:/\b[a-z_]\w*(?=[ \t]*[@(])/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?l?/i,operator:/-[-=>]?|\+[+=]?|<[<=]?|[>=*!]=?|&&|\|\||[?\/%^@|]/,punctuation:/[()[\]{},;.:]/,builtin:/\b(?:Byte|any|bool|char|double|enum|float|int|length|long|ranges|regex|string|undefined|void)\b/}),e.languages.insertBefore("jolie","keyword",{aggregates:{pattern:/(\bAggregates\s*:\s*)(?:\w+(?:\s+with\s+\w+)?\s*,\s*)*\w+(?:\s+with\s+\w+)?/,lookbehind:!0,inside:{keyword:/\bwith\b/,"class-name":/\w+/,punctuation:/,/}},redirects:{pattern:/(\bRedirects\s*:\s*)(?:\w+\s*=>\s*\w+\s*,\s*)*(?:\w+\s*=>\s*\w+)/,lookbehind:!0,inside:{punctuation:/,/,"class-name":/\w+/,operator:/=>/}},property:{pattern:/\b(?:Aggregates|[Ii]nterfaces|Java|Javascript|Jolie|[Ll]ocation|OneWay|[Pp]rotocol|Redirects|RequestResponse)\b(?=[ \t]*:)/}})}e.exports=t,t.displayName="jolie",t.aliases=[]},6044:function(e){"use strict";function t(e){!function(e){var t=/\\\((?:[^()]|\([^()]*\))*\)/.source,n=RegExp(/(^|[^\\])"(?:[^"\r\n\\]|\\[^\r\n(]|__)*"/.source.replace(/__/g,(function(){return t}))),r={interpolation:{pattern:RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+t),lookbehind:!0,inside:{content:{pattern:/^(\\\()[\s\S]+(?=\)$)/,lookbehind:!0,inside:null},punctuation:/^\\\(|\)$/}}},a=e.languages.jq={comment:/#.*/,property:{pattern:RegExp(n.source+/(?=\s*:(?!:))/.source),lookbehind:!0,greedy:!0,inside:r},string:{pattern:n,lookbehind:!0,greedy:!0,inside:r},function:{pattern:/(\bdef\s+)[a-z_]\w+/i,lookbehind:!0},variable:/\B\$\w+/,"property-literal":{pattern:/\b[a-z_]\w*(?=\s*:(?!:))/i,alias:"property"},keyword:/\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\b/,boolean:/\b(?:false|true)\b/,number:/(?:\b\d+\.|\B\.)?\b\d+(?:[eE][+-]?\d+)?\b/,operator:[{pattern:/\|=?/,alias:"pipe"},/\.\.|[!=<>]?=|\?\/\/|\/\/=?|[-+*/%]=?|[<>?]|\b(?:and|not|or)\b/],"c-style-function":{pattern:/\b[a-z_]\w*(?=\s*\()/i,alias:"function"},punctuation:/::|[()\[\]{},:;]|\.(?=\s*[\[\w$])/,dot:{pattern:/\./,alias:"important"}};r.interpolation.inside.content.inside=a}(e)}e.exports=t,t.displayName="jq",t.aliases=[]},1408:function(e){"use strict";function t(e){!function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],i=e.languages.javascript[a];"RegExp"===e.util.type(i)&&(i=e.languages.javascript[a]={pattern:i});var o=i.inside||{};i.inside=o,o["maybe-class-name"]=/^[A-Z][\s\S]*/}}(e)}e.exports=t,t.displayName="jsExtras",t.aliases=[]},750:function(e){"use strict";function t(e){!function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],i=r.pattern.source;function o(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function l(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function c(t){var n={};n["interpolation-punctuation"]=a;var i=e.tokenize(t,n);if(3===i.length){var o=[1,1];o.push.apply(o,l(i[1],e.languages.javascript,"javascript")),i.splice.apply(i,o)}return new e.Token("interpolation",i,r.alias,t)}function u(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(i),lookbehind:!0}}),o=0,u={},d=l(a.map((function(e){if("string"===typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=s(o++,r)););return u[n]=a,n})).join(""),n,r),p=Object.keys(u);return o=0,function e(t){for(var n=0;n<t.length;n++){if(o>=p.length)return;var r=t[n];if("string"===typeof r||"string"===typeof r.content){var a=p[o],i="string"===typeof r?r:r.content,s=i.indexOf(a);if(-1!==s){++o;var l=i.substring(0,s),d=c(u[a]),m=i.substring(s+a.length),g=[];if(l&&g.push(l),g.push(d),m){var h=[m];e(h),g.push.apply(g,h)}"string"===typeof r?(t.splice.apply(t,[n,1].concat(g)),n+=g.length-1):r.content=g}}else{var f=r.content;Array.isArray(f)?e(f):e([f])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[o("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),o("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),o("svg",/\bsvg/.source),o("markdown",/\b(?:markdown|md)/.source),o("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),o("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"===typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var i=n[r];if("string"!==typeof i){var o=i.content;if(Array.isArray(o))if("template-string"===i.type){var s=o[1];if(3===o.length&&"string"!==typeof s&&"embedded-code"===s.type){var l=p(s),c=s.alias,d=Array.isArray(c)?c[0]:c,m=e.languages[d];if(!m)continue;o[1]=u(l,m,d)}}else t(o);else"string"!==typeof o&&t([o])}}}(t.tokens)}))}(e)}e.exports=t,t.displayName="jsTemplates",t.aliases=[]},2327:function(e,t,n){"use strict";var r=n(9285),a=n(9669);function i(e){e.register(r),e.register(a),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(e)}e.exports=i,i.displayName="jsdoc",i.aliases=[]},837:function(e){"use strict";function t(e){e.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},e.languages.webmanifest=e.languages.json}e.exports=t,t.displayName="json",t.aliases=["webmanifest"]},7778:function(e,t,n){"use strict";var r=n(837);function a(e){e.register(r),function(e){var t=/("|')(?:\\(?:\r\n?|\n|.)|(?!\1)[^\\\r\n])*\1/;e.languages.json5=e.languages.extend("json",{property:[{pattern:RegExp(t.source+"(?=\\s*:)"),greedy:!0},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/,alias:"unquoted"}],string:{pattern:t,greedy:!0},number:/[+-]?\b(?:NaN|Infinity|0x[a-fA-F\d]+)\b|[+-]?(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+\b)?/})}(e)}e.exports=a,a.displayName="json5",a.aliases=[]},2117:function(e,t,n){"use strict";var r=n(837);function a(e){e.register(r),e.languages.jsonp=e.languages.extend("json",{punctuation:/[{}[\]();,.]/}),e.languages.insertBefore("jsonp","punctuation",{function:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*\()/})}e.exports=a,a.displayName="jsonp",a.aliases=[]},3228:function(e){"use strict";function t(e){e.languages.jsstacktrace={"error-message":{pattern:/^\S.*/m,alias:"string"},"stack-frame":{pattern:/(^[ \t]+)at[ \t].*/m,lookbehind:!0,inside:{"not-my-code":{pattern:/^at[ \t]+(?!\s)(?:node\.js|<unknown>|.*(?:node_modules|\(<anonymous>\)|\(<unknown>|<anonymous>$|\(internal\/|\(node\.js)).*/m,alias:"comment"},filename:{pattern:/(\bat\s+(?!\s)|\()(?:[a-zA-Z]:)?[^():]+(?=:)/,lookbehind:!0,alias:"url"},function:{pattern:/(\bat\s+(?:new\s+)?)(?!\s)[_$a-zA-Z\xA0-\uFFFF<][.$\w\xA0-\uFFFF<>]*/,lookbehind:!0,inside:{punctuation:/\./}},punctuation:/[()]/,keyword:/\b(?:at|new)\b/,alias:{pattern:/\[(?:as\s+)?(?!\s)[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\]/,alias:"variable"},"line-number":{pattern:/:\d+(?::\d+)?\b/,alias:"number",inside:{punctuation:/:/}}}}}}e.exports=t,t.displayName="jsstacktrace",t.aliases=[]},765:function(e){"use strict";function t(e){!function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function i(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=i(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=i(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:i(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:i(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var o=function e(t){return t?"string"===typeof t?t:"string"===typeof t.content?t.content:t.content.map(e).join(""):""},s=function t(n){for(var r=[],a=0;a<n.length;a++){var i=n[a],s=!1;if("string"!==typeof i&&("tag"===i.type&&i.content[0]&&"tag"===i.content[0].type?"</"===i.content[0].content[0].content?r.length>0&&r[r.length-1].tagName===o(i.content[0].content[1])&&r.pop():"/>"===i.content[i.content.length-1].content||r.push({tagName:o(i.content[0].content[1]),openedBraces:0}):r.length>0&&"punctuation"===i.type&&"{"===i.content?r[r.length-1].openedBraces++:r.length>0&&r[r.length-1].openedBraces>0&&"punctuation"===i.type&&"}"===i.content?r[r.length-1].openedBraces--:s=!0),(s||"string"===typeof i)&&r.length>0&&0===r[r.length-1].openedBraces){var l=o(i);a<n.length-1&&("string"===typeof n[a+1]||"plain-text"===n[a+1].type)&&(l+=o(n[a+1]),n.splice(a+1,1)),a>0&&("string"===typeof n[a-1]||"plain-text"===n[a-1].type)&&(l=o(n[a-1])+l,n.splice(a-1,1),a--),n[a]=new e.Token("plain-text",l,null,l)}i.content&&"string"!==typeof i.content&&t(i.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(e)}e.exports=t,t.displayName="jsx",t.aliases=[]},1905:function(e){"use strict";function t(e){e.languages.julia={comment:{pattern:/(^|[^\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/,lookbehind:!0},regex:{pattern:/r"(?:\\.|[^"\\\r\n])*"[imsx]{0,4}/,greedy:!0},string:{pattern:/"""[\s\S]+?"""|(?:\b\w+)?"(?:\\.|[^"\\\r\n])*"|`(?:[^\\`\r\n]|\\.)*`/,greedy:!0},char:{pattern:/(^|[^\w'])'(?:\\[^\r\n][^'\r\n]*|[^\\\r\n])'/,lookbehind:!0,greedy:!0},keyword:/\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\b/,boolean:/\b(?:false|true)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[box])?(?:[\da-f]+(?:_[\da-f]+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[efp][+-]?\d+(?:_\d+)*)?j?/i,operator:/&&|\|\||[-+*^%\xf7\u22bb&$\\]=?|\/[\/=]?|!=?=?|\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~\u2260\u2264\u2265'\u221a\u221b]/,punctuation:/::?|[{}[\]();,.?]/,constant:/\b(?:(?:Inf|NaN)(?:16|32|64)?|im|pi)\b|[\u03c0\u212f]/}}e.exports=t,t.displayName="julia",t.aliases=[]},6776:function(e){"use strict";function t(e){e.languages.keepalived={comment:{pattern:/[#!].*/,greedy:!0},string:{pattern:/(^|[^\\])(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/,lookbehind:!0,greedy:!0},ip:{pattern:RegExp(/\b(?:(?:(?:[\da-f]{1,4}:){7}[\da-f]{1,4}|(?:[\da-f]{1,4}:){6}:[\da-f]{1,4}|(?:[\da-f]{1,4}:){5}:(?:[\da-f]{1,4}:)?[\da-f]{1,4}|(?:[\da-f]{1,4}:){4}:(?:[\da-f]{1,4}:){0,2}[\da-f]{1,4}|(?:[\da-f]{1,4}:){3}:(?:[\da-f]{1,4}:){0,3}[\da-f]{1,4}|(?:[\da-f]{1,4}:){2}:(?:[\da-f]{1,4}:){0,4}[\da-f]{1,4}|(?:[\da-f]{1,4}:){6}<ipv4>|(?:[\da-f]{1,4}:){0,5}:<ipv4>|::(?:[\da-f]{1,4}:){0,5}<ipv4>|[\da-f]{1,4}::(?:[\da-f]{1,4}:){0,5}[\da-f]{1,4}|::(?:[\da-f]{1,4}:){0,6}[\da-f]{1,4}|(?:[\da-f]{1,4}:){1,7}:)(?:\/\d{1,3})?|<ipv4>(?:\/\d{1,2})?)\b/.source.replace(/<ipv4>/g,(function(){return/(?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d))/.source})),"i"),alias:"number"},path:{pattern:/(\s)\/(?:[^\/\s]+\/)*[^\/\s]*|\b[a-zA-Z]:\\(?:[^\\\s]+\\)*[^\\\s]*/,lookbehind:!0,alias:"string"},variable:/\$\{?\w+\}?/,email:{pattern:/[\w-]+@[\w-]+(?:\.[\w-]{2,3}){1,2}/,alias:"string"},"conditional-configuration":{pattern:/@\^?[\w-]+/,alias:"variable"},operator:/=/,property:/\b(?:BFD_CHECK|DNS_CHECK|FILE_CHECK|HTTP_GET|MISC_CHECK|NAME|PING_CHECK|SCRIPTS|SMTP_CHECK|SSL|SSL_GET|TCP_CHECK|UDP_CHECK|accept|advert_int|alpha|auth_pass|auth_type|authentication|bfd_cpu_affinity|bfd_instance|bfd_no_swap|bfd_priority|bfd_process_name|bfd_rlimit_rttime|bfd_rt_priority|bind_if|bind_port|bindto|ca|certificate|check_unicast_src|checker|checker_cpu_affinity|checker_log_all_failures|checker_no_swap|checker_priority|checker_rlimit_rttime|checker_rt_priority|child_wait_time|connect_ip|connect_port|connect_timeout|dbus_service_name|debug|default_interface|delay|delay_before_retry|delay_loop|digest|dont_track_primary|dynamic|dynamic_interfaces|enable_(?:dbus|script_security|sni|snmp_checker|snmp_rfc|snmp_rfcv2|snmp_rfcv3|snmp_vrrp|traps)|end|fall|fast_recovery|file|flag-[123]|fork_delay|full_command|fwmark|garp_group|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|global_defs|global_tracking|gna_interval|group|ha_suspend|hashed|helo_name|higher_prio_send_advert|hoplimit|http_protocol|hysteresis|idle_tx|include|inhibit_on_failure|init_fail|init_file|instance|interface|interfaces|interval|ip_family|ipvs_process_name|keepalived.conf|kernel_rx_buf_size|key|linkbeat_interfaces|linkbeat_use_polling|log_all_failures|log_unknown_vrids|lower_prio_no_advert|lthreshold|lvs_flush|lvs_flush_onstop|lvs_method|lvs_netlink_cmd_rcv_bufs|lvs_netlink_cmd_rcv_bufs_force|lvs_netlink_monitor_rcv_bufs|lvs_netlink_monitor_rcv_bufs_force|lvs_notify_fifo|lvs_notify_fifo_script|lvs_sched|lvs_sync_daemon|max_auto_priority|max_hops|mcast_src_ip|mh-fallback|mh-port|min_auto_priority_delay|min_rx|min_tx|misc_dynamic|misc_path|misc_timeout|multiplier|name|namespace_with_ipsets|native_ipv6|neighbor_ip|net_namespace|net_namespace_ipvs|nftables|nftables_counters|nftables_ifindex|nftables_priority|no_accept|no_checker_emails|no_email_faults|nopreempt|notification_email|notification_email_from|notify|notify_backup|notify_deleted|notify_down|notify_fault|notify_fifo|notify_fifo_script|notify_master|notify_master_rx_lower_pri|notify_priority_changes|notify_stop|notify_up|old_unicast_checksum|omega|ops|param_match|passive|password|path|persistence_engine|persistence_granularity|persistence_timeout|preempt|preempt_delay|priority|process|process_monitor_rcv_bufs|process_monitor_rcv_bufs_force|process_name|process_names|promote_secondaries|protocol|proxy_arp|proxy_arp_pvlan|quorum|quorum_down|quorum_max|quorum_up|random_seed|real_server|regex|regex_max_offset|regex_min_offset|regex_no_match|regex_options|regex_stack|reload_repeat|reload_time_file|require_reply|retry|rise|router_id|rs_init_notifies|script|script_user|sh-fallback|sh-port|shutdown_script|shutdown_script_timeout|skip_check_adv_addr|smtp_alert|smtp_alert_checker|smtp_alert_vrrp|smtp_connect_timeout|smtp_helo_name|smtp_server|snmp_socket|sorry_server|sorry_server_inhibit|sorry_server_lvs_method|source_ip|start|startup_script|startup_script_timeout|state|static_ipaddress|static_routes|static_rules|status_code|step|strict_mode|sync_group_tracking_weight|terminate_delay|timeout|track_bfd|track_file|track_group|track_interface|track_process|track_script|track_src_ip|ttl|type|umask|unicast_peer|unicast_src_ip|unicast_ttl|url|use_ipvlan|use_pid_dir|use_vmac|user|uthreshold|val[123]|version|virtual_ipaddress|virtual_ipaddress_excluded|virtual_router_id|virtual_routes|virtual_rules|virtual_server|virtual_server_group|virtualhost|vmac_xmit_base|vrrp|vrrp_(?:check_unicast_src|cpu_affinity|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|gna_interval|higher_prio_send_advert|instance|ipsets|iptables|lower_prio_no_advert|mcast_group4|mcast_group6|min_garp|netlink_cmd_rcv_bufs|netlink_cmd_rcv_bufs_force|netlink_monitor_rcv_bufs|netlink_monitor_rcv_bufs_force|no_swap|notify_fifo|notify_fifo_script|notify_priority_changes|priority|process_name|rlimit_rttime|rt_priority|rx_bufs_multiplier|rx_bufs_policy|script|skip_check_adv_addr|startup_delay|strict|sync_group|track_process|version)|warmup|weight)\b/,constant:/\b(?:A|AAAA|AH|BACKUP|CNAME|DR|MASTER|MX|NAT|NS|PASS|SCTP|SOA|TCP|TUN|TXT|UDP|dh|fo|lblc|lblcr|lc|mh|nq|ovf|rr|sed|sh|wlc|wrr)\b/,number:{pattern:/(^|[^\w.-])-?\d+(?:\.\d+)?/,lookbehind:!0},boolean:/\b(?:false|no|off|on|true|yes)\b/,punctuation:/[\{\}]/}}e.exports=t,t.displayName="keepalived",t.aliases=[]},8714:function(e){"use strict";function t(e){e.languages.keyman={comment:{pattern:/\bc .*/i,greedy:!0},string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0},"virtual-key":{pattern:/\[\s*(?:(?:ALT|CAPS|CTRL|LALT|LCTRL|NCAPS|RALT|RCTRL|SHIFT)\s+)*(?:[TKU]_[\w?]+|[A-E]\d\d?|"[^"\r\n]*"|'[^'\r\n]*')\s*\]/i,greedy:!0,alias:"function"},"header-keyword":{pattern:/&\w+/,alias:"bold"},"header-statement":{pattern:/\b(?:bitmap|bitmaps|caps always off|caps on only|copyright|hotkey|language|layout|message|name|shift frees caps|version)\b/i,alias:"bold"},"rule-keyword":{pattern:/\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|reset|return|save|set|store|use)\b/i,alias:"keyword"},"structural-keyword":{pattern:/\b(?:ansi|begin|group|match|nomatch|unicode|using keys)\b/i,alias:"keyword"},"compile-target":{pattern:/\$(?:keyman|keymanonly|keymanweb|kmfl|weaver):/i,alias:"property"},number:/\b(?:U\+[\dA-F]+|d\d+|x[\da-f]+|\d+)\b/i,operator:/[+>\\$]|\.\./,punctuation:/[()=,]/}}e.exports=t,t.displayName="keyman",t.aliases=[]},8471:function(e){"use strict";function t(e){!function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(e)}e.exports=t,t.displayName="kotlin",t.aliases=["kt","kts"]},2286:function(e){"use strict";function t(e){!function(e){var t=/\s\x00-\x1f\x22-\x2f\x3a-\x3f\x5b-\x5e\x60\x7b-\x7e/.source;function n(e,n){return RegExp(e.replace(/<nonId>/g,t),n)}e.languages.kumir={comment:{pattern:/\|.*/},prolog:{pattern:/#.*/,greedy:!0},string:{pattern:/"[^\n\r"]*"|'[^\n\r']*'/,greedy:!0},boolean:{pattern:n(/(^|[<nonId>])(?:\u0434\u0430|\u043d\u0435\u0442)(?=[<nonId>]|$)/.source),lookbehind:!0},"operator-word":{pattern:n(/(^|[<nonId>])(?:\u0438|\u0438\u043b\u0438|\u043d\u0435)(?=[<nonId>]|$)/.source),lookbehind:!0,alias:"keyword"},"system-variable":{pattern:n(/(^|[<nonId>])\u0437\u043d\u0430\u0447(?=[<nonId>]|$)/.source),lookbehind:!0,alias:"keyword"},type:[{pattern:n(/(^|[<nonId>])(?:\u0432\u0435\u0449|\u043b\u0438\u0442|\u043b\u043e\u0433|\u0441\u0438\u043c|\u0446\u0435\u043b)(?:\x20*\u0442\u0430\u0431)?(?=[<nonId>]|$)/.source),lookbehind:!0,alias:"builtin"},{pattern:n(/(^|[<nonId>])(?:\u043a\u043e\u043c\u043f\u043b|\u0441\u043a\u0430\u043d\u043a\u043e\u0434|\u0444\u0430\u0439\u043b|\u0446\u0432\u0435\u0442)(?=[<nonId>]|$)/.source),lookbehind:!0,alias:"important"}],keyword:{pattern:n(/(^|[<nonId>])(?:\u0430\u043b\u0433|\u0430\u0440\u0433(?:\x20*\u0440\u0435\u0437)?|\u0432\u0432\u043e\u0434|\u0412\u041a\u041b\u042e\u0427\u0418\u0422\u042c|\u0432\u0441[\u0435\u0451]|\u0432\u044b\u0431\u043e\u0440|\u0432\u044b\u0432\u043e\u0434|\u0432\u044b\u0445\u043e\u0434|\u0434\u0430\u043d\u043e|\u0434\u043b\u044f|\u0434\u043e|\u0434\u0441|\u0435\u0441\u043b\u0438|\u0438\u043d\u0430\u0447\u0435|\u0438\u0441\u043f|\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c|\u043a\u043e\u043d(?:(?:\x20+|_)\u0438\u0441\u043f)?|\u043a\u0446(?:(?:\x20+|_)\u043f\u0440\u0438)?|\u043d\u0430\u0434\u043e|\u043d\u0430\u0447|\u043d\u0441|\u043d\u0446|\u043e\u0442|\u043f\u0430\u0443\u0437\u0430|\u043f\u043e\u043a\u0430|\u043f\u0440\u0438|\u0440\u0430\u0437\u0430?|\u0440\u0435\u0437|\u0441\u0442\u043e\u043f|\u0442\u0430\u0431|\u0442\u043e|\u0443\u0442\u0432|\u0448\u0430\u0433)(?=[<nonId>]|$)/.source),lookbehind:!0},name:{pattern:n(/(^|[<nonId>])[^\d<nonId>][^<nonId>]*(?:\x20+[^<nonId>]+)*(?=[<nonId>]|$)/.source),lookbehind:!0},number:{pattern:n(/(^|[<nonId>])(?:\B\$[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?=[<nonId>]|$)/.source,"i"),lookbehind:!0},punctuation:/:=|[(),:;\[\]]/,"operator-char":{pattern:/\*\*?|<[=>]?|>=?|[-+/=]/,alias:"operator"}},e.languages.kum=e.languages.kumir}(e)}e.exports=t,t.displayName="kumir",t.aliases=["kum"]},6513:function(e){"use strict";function t(e){e.languages.kusto={comment:{pattern:/\/\/.*/,greedy:!0},string:{pattern:/```[\s\S]*?```|[hH]?(?:"(?:[^\r\n\\"]|\\.)*"|'(?:[^\r\n\\']|\\.)*'|@(?:"[^\r\n"]*"|'[^\r\n']*'))/,greedy:!0},verb:{pattern:/(\|\s*)[a-z][\w-]*/i,lookbehind:!0,alias:"keyword"},command:{pattern:/\.[a-z][a-z\d-]*\b/,alias:"keyword"},"class-name":/\b(?:bool|datetime|decimal|dynamic|guid|int|long|real|string|timespan)\b/,keyword:/\b(?:access|alias|and|anti|as|asc|auto|between|by|(?:contains|(?:ends|starts)with|has(?:perfix|suffix)?)(?:_cs)?|database|declare|desc|external|from|fullouter|has_all|in|ingestion|inline|inner|innerunique|into|(?:left|right)(?:anti(?:semi)?|inner|outer|semi)?|let|like|local|not|of|on|or|pattern|print|query_parameters|range|restrict|schema|set|step|table|tables|to|view|where|with|matches\s+regex|nulls\s+(?:first|last))(?![\w-])/,boolean:/\b(?:false|null|true)\b/,function:/\b[a-z_]\w*(?=\s*\()/,datetime:[{pattern:/\b(?:(?:Fri|Friday|Mon|Monday|Sat|Saturday|Sun|Sunday|Thu|Thursday|Tue|Tuesday|Wed|Wednesday)\s*,\s*)?\d{1,2}(?:\s+|-)(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)(?:\s+|-)\d{2}\s+\d{2}:\d{2}(?::\d{2})?(?:\s*(?:\b(?:[A-Z]|(?:[ECMT][DS]|GM|U)T)|[+-]\d{4}))?\b/,alias:"number"},{pattern:/[+-]?\b(?:\d{4}-\d{2}-\d{2}(?:[ T]\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?)?|\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?)Z?/,alias:"number"}],number:/\b(?:0x[0-9A-Fa-f]+|\d+(?:\.\d+)?(?:[Ee][+-]?\d+)?)(?:(?:min|sec|[mn\xb5]s|[dhms]|microsecond|tick)\b)?|[+-]?\binf\b/,operator:/=>|[!=]~|[!=<>]=?|[-+*/%|]|\.\./,punctuation:/[()\[\]{},;.:]/}}e.exports=t,t.displayName="kusto",t.aliases=[]},5999:function(e){"use strict";function t(e){!function(e){var t=/\\(?:[^a-z()[\]]|[a-z*]+)/i,n={"equation-command":{pattern:t,alias:"regex"}};e.languages.latex={comment:/%.*/,cdata:{pattern:/(\\begin\{((?:lstlisting|verbatim)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0},equation:[{pattern:/\$\$(?:\\[\s\S]|[^\\$])+\$\$|\$(?:\\[\s\S]|[^\\$])+\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/,inside:n,alias:"string"},{pattern:/(\\begin\{((?:align|eqnarray|equation|gather|math|multline)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0,inside:n,alias:"string"}],keyword:{pattern:/(\\(?:begin|cite|documentclass|end|label|ref|usepackage)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0},url:{pattern:/(\\url\{)[^}]+(?=\})/,lookbehind:!0},headline:{pattern:/(\\(?:chapter|frametitle|paragraph|part|section|subparagraph|subsection|subsubparagraph|subsubsection|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0,alias:"class-name"},function:{pattern:t,alias:"selector"},punctuation:/[[\]{}&]/},e.languages.tex=e.languages.latex,e.languages.context=e.languages.latex}(e)}e.exports=t,t.displayName="latex",t.aliases=["tex","context"]},9405:function(e,t,n){"use strict";var r=n(595),a=n(7304);function i(e){e.register(r),e.register(a),function(e){e.languages.latte={comment:/^\{\*[\s\S]*/,"latte-tag":{pattern:/(^\{(?:\/(?=[a-z]))?)(?:[=_]|[a-z]\w*\b(?!\())/i,lookbehind:!0,alias:"important"},delimiter:{pattern:/^\{\/?|\}$/,alias:"punctuation"},php:{pattern:/\S(?:[\s\S]*\S)?/,alias:"language-php",inside:e.languages.php}};var t=e.languages.extend("markup",{});e.languages.insertBefore("inside","attr-value",{"n-attr":{pattern:/n:[\w-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+))?/,inside:{"attr-name":{pattern:/^[^\s=]+/,alias:"important"},"attr-value":{pattern:/=[\s\S]+/,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}],php:{pattern:/\S(?:[\s\S]*\S)?/,inside:e.languages.php}}}}}},t.tag),e.hooks.add("before-tokenize",(function(n){if("latte"===n.language){e.languages["markup-templating"].buildPlaceholders(n,"latte",/\{\*[\s\S]*?\*\}|\{[^'"\s{}*](?:[^"'/{}]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|\/\*(?:[^*]|\*(?!\/))*\*\/)*\}/g),n.grammar=t}})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"latte")}))}(e)}e.exports=i,i.displayName="latte",i.aliases=[]},9135:function(e){"use strict";function t(e){e.languages.less=e.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),e.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}})}e.exports=t,t.displayName="less",t.aliases=[]},382:function(e,t,n){"use strict";var r=n(2284);function a(e){e.register(r),function(e){for(var t=/\((?:[^();"#\\]|\\[\s\S]|;.*(?!.)|"(?:[^"\\]|\\.)*"|#(?:\{(?:(?!#\})[\s\S])*#\}|[^{])|<expr>)*\)/.source,n=0;n<5;n++)t=t.replace(/<expr>/g,(function(){return t}));t=t.replace(/<expr>/g,/[^\s\S]/.source);var r=e.languages.lilypond={comment:/%(?:(?!\{).*|\{[\s\S]*?%\})/,"embedded-scheme":{pattern:RegExp(/(^|[=\s])#(?:"(?:[^"\\]|\\.)*"|[^\s()"]*(?:[^\s()]|<expr>))/.source.replace(/<expr>/g,(function(){return t})),"m"),lookbehind:!0,greedy:!0,inside:{scheme:{pattern:/^(#)[\s\S]+$/,lookbehind:!0,alias:"language-scheme",inside:{"embedded-lilypond":{pattern:/#\{[\s\S]*?#\}/,greedy:!0,inside:{punctuation:/^#\{|#\}$/,lilypond:{pattern:/[\s\S]+/,alias:"language-lilypond",inside:null}}},rest:e.languages.scheme}},punctuation:/#/}},string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},"class-name":{pattern:/(\\new\s+)[\w-]+/,lookbehind:!0},keyword:{pattern:/\\[a-z][-\w]*/i,inside:{punctuation:/^\\/}},operator:/[=|]|<<|>>/,punctuation:{pattern:/(^|[a-z\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\d))|[_^]\.?|[.!])|[{}()[\]<>^~]|\\[()[\]<>\\!]|--|__/,lookbehind:!0},number:/\b\d+(?:\/\d+)?\b/};r["embedded-scheme"].inside.scheme.inside["embedded-lilypond"].inside.lilypond.inside=r,e.languages.ly=r}(e)}e.exports=a,a.displayName="lilypond",a.aliases=[]},1146:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),e.languages.liquid={comment:{pattern:/(^\{%\s*comment\s*%\})[\s\S]+(?=\{%\s*endcomment\s*%\}$)/,lookbehind:!0},delimiter:{pattern:/^\{(?:\{\{|[%\{])-?|-?(?:\}\}|[%\}])\}$/,alias:"punctuation"},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},keyword:/\b(?:as|assign|break|(?:end)?(?:capture|case|comment|for|form|if|paginate|raw|style|tablerow|unless)|continue|cycle|decrement|echo|else|elsif|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\b/,object:/\b(?:address|all_country_option_tags|article|block|blog|cart|checkout|collection|color|country|country_option_tags|currency|current_page|current_tags|customer|customer_address|date|discount_allocation|discount_application|external_video|filter|filter_value|font|forloop|fulfillment|generic_file|gift_card|group|handle|image|line_item|link|linklist|localization|location|measurement|media|metafield|model|model_source|order|page|page_description|page_image|page_title|part|policy|product|product_option|recommendations|request|robots|routes|rule|script|search|selling_plan|selling_plan_allocation|selling_plan_group|shipping_method|shop|shop_locale|sitemap|store_availability|tax_line|template|theme|transaction|unit_price_measurement|user_agent|variant|video|video_source)\b/,function:[{pattern:/(\|\s*)\w+/,lookbehind:!0,alias:"filter"},{pattern:/(\.\s*)(?:first|last|size)/,lookbehind:!0}],boolean:/\b(?:false|nil|true)\b/,range:{pattern:/\.\./,alias:"operator"},number:/\b\d+(?:\.\d+)?\b/,operator:/[!=]=|<>|[<>]=?|[|?:=-]|\b(?:and|contains(?=\s)|or)\b/,punctuation:/[.,\[\]()]/,empty:{pattern:/\bempty\b/,alias:"keyword"}},e.hooks.add("before-tokenize",(function(t){var n=!1;e.languages["markup-templating"].buildPlaceholders(t,"liquid",/\{%\s*comment\s*%\}[\s\S]*?\{%\s*endcomment\s*%\}|\{(?:%[\s\S]*?%|\{\{[\s\S]*?\}\}|\{[\s\S]*?\})\}/g,(function(e){var t=/^\{%-?\s*(\w+)/.exec(e);if(t){var r=t[1];if("raw"===r&&!n)return n=!0,!0;if("endraw"===r)return n=!1,!0}return!n}))})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"liquid")}))}e.exports=a,a.displayName="liquid",a.aliases=[]},3807:function(e){"use strict";function t(e){!function(e){function t(e){return RegExp(/(\()/.source+"(?:"+e+")"+/(?=[\s\)])/.source)}function n(e){return RegExp(/([\s([])/.source+"(?:"+e+")"+/(?=[\s)])/.source)}var r=/(?!\d)[-+*/~!@$%^=<>{}\w]+/.source,a="&"+r,i="(\\()",o=/(?:[^()]|\((?:[^()]|\((?:[^()]|\((?:[^()]|\((?:[^()]|\([^()]*\))*\))*\))*\))*\))*/.source,s={heading:{pattern:/;;;.*/,alias:["comment","title"]},comment:/;.*/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0,inside:{argument:/[-A-Z]+(?=[.,\s])/,symbol:RegExp("`"+r+"'")}},"quoted-symbol":{pattern:RegExp("#?'"+r),alias:["variable","symbol"]},"lisp-property":{pattern:RegExp(":"+r),alias:"property"},splice:{pattern:RegExp(",@?"+r),alias:["symbol","variable"]},keyword:[{pattern:RegExp("(\\()(?:and|(?:cl-)?letf|cl-loop|cond|cons|error|if|(?:lexical-)?let\\*?|message|not|null|or|provide|require|setq|unless|use-package|when|while)(?=\\s)"),lookbehind:!0},{pattern:RegExp("(\\()(?:append|by|collect|concat|do|finally|for|in|return)(?=\\s)"),lookbehind:!0}],declare:{pattern:t(/declare/.source),lookbehind:!0,alias:"keyword"},interactive:{pattern:t(/interactive/.source),lookbehind:!0,alias:"keyword"},boolean:{pattern:n(/nil|t/.source),lookbehind:!0},number:{pattern:n(/[-+]?\d+(?:\.\d*)?/.source),lookbehind:!0},defvar:{pattern:RegExp("(\\()def(?:const|custom|group|var)\\s+"+r),lookbehind:!0,inside:{keyword:/^def[a-z]+/,variable:RegExp(r)}},defun:{pattern:RegExp(i+/(?:cl-)?(?:defmacro|defun\*?)\s+/.source+r+/\s+\(/.source+o+/\)/.source),lookbehind:!0,greedy:!0,inside:{keyword:/^(?:cl-)?def\S+/,arguments:null,function:{pattern:RegExp("(^\\s)"+r),lookbehind:!0},punctuation:/[()]/}},lambda:{pattern:RegExp("(\\()lambda\\s+\\(\\s*(?:&?"+r+"(?:\\s+&?"+r+")*\\s*)?\\)"),lookbehind:!0,greedy:!0,inside:{keyword:/^lambda/,arguments:null,punctuation:/[()]/}},car:{pattern:RegExp(i+r),lookbehind:!0},punctuation:[/(?:['`,]?\(|[)\[\]])/,{pattern:/(\s)\.(?=\s)/,lookbehind:!0}]},l={"lisp-marker":RegExp(a),varform:{pattern:RegExp(/\(/.source+r+/\s+(?=\S)/.source+o+/\)/.source),inside:s},argument:{pattern:RegExp(/(^|[\s(])/.source+r),lookbehind:!0,alias:"variable"},rest:s},c="\\S+(?:\\s+\\S+)*",u={pattern:RegExp(i+o+"(?=\\))"),lookbehind:!0,inside:{"rest-vars":{pattern:RegExp("&(?:body|rest)\\s+"+c),inside:l},"other-marker-vars":{pattern:RegExp("&(?:aux|optional)\\s+"+c),inside:l},keys:{pattern:RegExp("&key\\s+"+c+"(?:\\s+&allow-other-keys)?"),inside:l},argument:{pattern:RegExp(r),alias:"variable"},punctuation:/[()]/}};s.lambda.inside.arguments=u,s.defun.inside.arguments=e.util.clone(u),s.defun.inside.arguments.inside.sublist=u,e.languages.lisp=s,e.languages.elisp=s,e.languages.emacs=s,e.languages["emacs-lisp"]=s}(e)}e.exports=t,t.displayName="lisp",t.aliases=[]},3062:function(e){"use strict";function t(e){e.languages.livescript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\])#.*/,lookbehind:!0}],"interpolated-string":{pattern:/(^|[^"])("""|")(?:\\[\s\S]|(?!\2)[^\\])*\2(?!")/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/(^|[^\\])#[a-z_](?:-?[a-z]|[\d_])*/m,lookbehind:!0},interpolation:{pattern:/(^|[^\\])#\{[^}]+\}/m,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^#\{|\}$/,alias:"variable"}}},string:/[\s\S]+/}},string:[{pattern:/('''|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},{pattern:/<\[[\s\S]*?\]>/,greedy:!0},/\\[^\s,;\])}]+/],regex:[{pattern:/\/\/(?:\[[^\r\n\]]*\]|\\.|(?!\/\/)[^\\\[])+\/\/[gimyu]{0,5}/,greedy:!0,inside:{comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0}}},{pattern:/\/(?:\[[^\r\n\]]*\]|\\.|[^/\\\r\n\[])+\/[gimyu]{0,5}/,greedy:!0}],keyword:{pattern:/(^|(?!-).)\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\b/m,lookbehind:!0},"keyword-operator":{pattern:/(^|[^-])\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?: not|nt)?|not|of|or|til|to|typeof|with|xor)(?!-)\b)/m,lookbehind:!0,alias:"operator"},boolean:{pattern:/(^|[^-])\b(?:false|no|off|on|true|yes)(?!-)\b/m,lookbehind:!0},argument:{pattern:/(^|(?!\.&\.)[^&])&(?!&)\d*/m,lookbehind:!0,alias:"variable"},number:/\b(?:\d+~[\da-z]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[a-z]\w*)?)/i,identifier:/[a-z_](?:-?[a-z]|[\d_])*/i,operator:[{pattern:/( )\.(?= )/,lookbehind:!0},/\.(?:[=~]|\.\.?)|\.(?:[&|^]|<<|>>>?)\.|:(?:=|:=?)|&&|\|[|>]|<(?:<<?<?|--?!?|~~?!?|[|=?])?|>[>=?]?|-(?:->?|>)?|\+\+?|@@?|%%?|\*\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\^\^?|[\/?]/],punctuation:/[(){}\[\]|.,:;`]/},e.languages.livescript["interpolated-string"].inside.interpolation.inside.rest=e.languages.livescript}e.exports=t,t.displayName="livescript",t.aliases=[]},5467:function(e){"use strict";function t(e){!function(e){e.languages.llvm={comment:/;.*/,string:{pattern:/"[^"]*"/,greedy:!0},boolean:/\b(?:false|true)\b/,variable:/[%@!#](?:(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+|\d+)/i,label:/(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+:/i,type:{pattern:/\b(?:double|float|fp128|half|i[1-9]\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\b/,alias:"class-name"},keyword:/\b[a-z_][a-z_0-9]*\b/,number:/[+-]?\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-Fa-f]+\b|\b0xK[\dA-Fa-f]{20}\b|\b0x[ML][\dA-Fa-f]{32}\b|\b0xH[\dA-Fa-f]{4}\b/,punctuation:/[{}[\];(),.!*=<>]/}}(e)}e.exports=t,t.displayName="llvm",t.aliases=[]},2112:function(e){"use strict";function t(e){e.languages.log={string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?![st] | \w)(?:[^'\\\r\n]|\\.)*'/,greedy:!0},exception:{pattern:/(^|[^\w.])[a-z][\w.]*(?:Error|Exception):.*(?:(?:\r\n?|\n)[ \t]*(?:at[ \t].+|\.{3}.*|Caused by:.*))+(?:(?:\r\n?|\n)[ \t]*\.\.\. .*)?/,lookbehind:!0,greedy:!0,alias:["javastacktrace","language-javastacktrace"],inside:e.languages.javastacktrace||{keyword:/\bat\b/,function:/[a-z_][\w$]*(?=\()/,punctuation:/[.:()]/}},level:[{pattern:/\b(?:ALERT|CRIT|CRITICAL|EMERG|EMERGENCY|ERR|ERROR|FAILURE|FATAL|SEVERE)\b/,alias:["error","important"]},{pattern:/\b(?:WARN|WARNING|WRN)\b/,alias:["warning","important"]},{pattern:/\b(?:DISPLAY|INF|INFO|NOTICE|STATUS)\b/,alias:["info","keyword"]},{pattern:/\b(?:DBG|DEBUG|FINE)\b/,alias:["debug","keyword"]},{pattern:/\b(?:FINER|FINEST|TRACE|TRC|VERBOSE|VRB)\b/,alias:["trace","comment"]}],property:{pattern:/((?:^|[\]|])[ \t]*)[a-z_](?:[\w-]|\b\/\b)*(?:[. ]\(?\w(?:[\w-]|\b\/\b)*\)?)*:(?=\s)/im,lookbehind:!0},separator:{pattern:/(^|[^-+])-{3,}|={3,}|\*{3,}|- - /m,lookbehind:!0,alias:"comment"},url:/\b(?:file|ftp|https?):\/\/[^\s|,;'"]*[^\s|,;'">.]/,email:{pattern:/(^|\s)[-\w+.]+@[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)+(?=\s)/,lookbehind:!0,alias:"url"},"ip-address":{pattern:/\b(?:\d{1,3}(?:\.\d{1,3}){3})\b/,alias:"constant"},"mac-address":{pattern:/\b[a-f0-9]{2}(?::[a-f0-9]{2}){5}\b/i,alias:"constant"},domain:{pattern:/(^|\s)[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)*\.[a-z][a-z0-9-]+(?=\s)/,lookbehind:!0,alias:"constant"},uuid:{pattern:/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/i,alias:"constant"},hash:{pattern:/\b(?:[a-f0-9]{32}){1,2}\b/i,alias:"constant"},"file-path":{pattern:/\b[a-z]:[\\/][^\s|,;:(){}\[\]"']+|(^|[\s:\[\](>|])\.{0,2}\/\w[^\s|,;:(){}\[\]"']*/i,lookbehind:!0,greedy:!0,alias:"string"},date:{pattern:RegExp(/\b\d{4}[-/]\d{2}[-/]\d{2}(?:T(?=\d{1,2}:)|(?=\s\d{1,2}:))/.source+"|"+/\b\d{1,4}[-/ ](?:\d{1,2}|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)[-/ ]\d{2,4}T?\b/.source+"|"+/\b(?:(?:Fri|Mon|Sat|Sun|Thu|Tue|Wed)(?:\s{1,2}(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep))?|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)\s{1,2}\d{1,2}\b/.source,"i"),alias:"number"},time:{pattern:/\b\d{1,2}:\d{1,2}:\d{1,2}(?:[.,:]\d+)?(?:\s?[+-]\d{2}:?\d{2}|Z)?\b/,alias:"number"},boolean:/\b(?:false|null|true)\b/i,number:{pattern:/(^|[^.\w])(?:0x[a-f0-9]+|0o[0-7]+|0b[01]+|v?\d[\da-f]*(?:\.\d+)*(?:e[+-]?\d+)?[a-z]{0,3}\b)\b(?!\.\w)/i,lookbehind:!0},operator:/[;:?<=>~/@!$%&+\-|^(){}*#]/,punctuation:/[\[\].,]/}}e.exports=t,t.displayName="log",t.aliases=[]},1343:function(e){"use strict";function t(e){e.languages.lolcode={comment:[/\bOBTW\s[\s\S]*?\sTLDR\b/,/\bBTW.+/],string:{pattern:/"(?::.|[^":])*"/,inside:{variable:/:\{[^}]+\}/,symbol:[/:\([a-f\d]+\)/i,/:\[[^\]]+\]/,/:[)>o":]/]},greedy:!0},number:/(?:\B-)?(?:\b\d+(?:\.\d*)?|\B\.\d+)/,symbol:{pattern:/(^|\s)(?:A )?(?:BUKKIT|NOOB|NUMBAR|NUMBR|TROOF|YARN)(?=\s|,|$)/,lookbehind:!0,inside:{keyword:/A(?=\s)/}},label:{pattern:/((?:^|\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\w*/,lookbehind:!0,alias:"string"},function:{pattern:/((?:^|\s)(?:HOW IZ I|I IZ|IZ) )[a-zA-Z]\w*/,lookbehind:!0},keyword:[{pattern:/(^|\s)(?:AN|FOUND YR|GIMMEH|GTFO|HAI|HAS A|HOW IZ I|I HAS A|I IZ|IF U SAY SO|IM IN YR|IM OUTTA YR|IS NOW(?: A)?|ITZ(?: A)?|IZ|KTHX|KTHXBYE|LIEK(?: A)?|MAEK|MEBBE|MKAY|NERFIN|NO WAI|O HAI IM|O RLY\?|OIC|OMG|OMGWTF|R|SMOOSH|SRS|TIL|UPPIN|VISIBLE|WILE|WTF\?|YA RLY|YR)(?=\s|,|$)/,lookbehind:!0},/'Z(?=\s|,|$)/],boolean:{pattern:/(^|\s)(?:FAIL|WIN)(?=\s|,|$)/,lookbehind:!0},variable:{pattern:/(^|\s)IT(?=\s|,|$)/,lookbehind:!0},operator:{pattern:/(^|\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:ALL|ANY|BIGGR|BOTH|DIFF|EITHER|MOD|PRODUKT|QUOSHUNT|SMALLR|SUM|WON) OF)(?=\s|,|$)/,lookbehind:!0},punctuation:/\.{3}|\u2026|,|!/}}e.exports=t,t.displayName="lolcode",t.aliases=[]},6759:function(e){"use strict";function t(e){e.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[^z]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+(?:\.[a-f\d]*)?(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|(?:\.\d*)?(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/}}e.exports=t,t.displayName="lua",t.aliases=[]},9987:function(e){"use strict";function t(e){e.languages.magma={output:{pattern:/^(>.*(?:\r(?:\n|(?!\n))|\n))(?!>)(?:.+|(?:\r(?:\n|(?!\n))|\n)(?!>).*)(?:(?:\r(?:\n|(?!\n))|\n)(?!>).*)*/m,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/(^|[^\\"])"(?:[^\r\n\\"]|\\.)*"/,lookbehind:!0,greedy:!0},keyword:/\b(?:_|adj|and|assert|assert2|assert3|assigned|break|by|case|cat|catch|clear|cmpeq|cmpne|continue|declare|default|delete|diff|div|do|elif|else|end|eq|error|eval|exists|exit|for|forall|forward|fprintf|freeze|function|ge|gt|if|iload|import|in|intrinsic|is|join|le|load|local|lt|meet|mod|ne|not|notadj|notin|notsubset|or|print|printf|procedure|quit|random|read|readi|repeat|require|requirege|requirerange|restore|return|save|sdiff|select|subset|then|time|to|try|until|vprint|vprintf|vtime|when|where|while|xor)\b/,boolean:/\b(?:false|true)\b/,generator:{pattern:/\b[a-z_]\w*(?=\s*<)/i,alias:"class-name"},function:/\b[a-z_]\w*(?=\s*\()/i,number:{pattern:/(^|[^\w.]|\.\.)(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?(?:_[a-z]?)?(?=$|[^\w.]|\.\.)/,lookbehind:!0},operator:/->|[-+*/^~!|#=]|:=|\.\./,punctuation:/[()[\]{}<>,;.:]/}}e.exports=t,t.displayName="magma",t.aliases=[]},7589:function(e){"use strict";function t(e){e.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/}}e.exports=t,t.displayName="makefile",t.aliases=[]},7932:function(e){"use strict";function t(e){!function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),i=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+i+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+i+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+i+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!==typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var i=a.content[1],o=a.content[3];if(i&&o&&"code-language"===i.type&&"code-block"===o.type&&"string"===typeof i.content){var s=i.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),l="language-"+(s=(/[a-z][\w-]*/i.exec(s)||[""])[0].toLowerCase());o.alias?"string"===typeof o.alias?o.alias=[o.alias,l]:o.alias.push(l):o.alias=[l]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var i=t.classes[r],c=/language-(.+)/.exec(i);if(c){n=c[1];break}}var u=e.languages[n];if(u)t.content=e.highlight(function(e){var t=e.replace(o,"");return t=t.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),l(n);var r=s[t];return r||e}))}(t.content.value),u,n);else if(n&&"none"!==n&&e.plugins.autoloader){var d="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=d,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(d);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var o=RegExp(e.languages.markup.tag.pattern.source,"gi"),s={amp:"&",lt:"<",gt:">",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(e)}e.exports=t,t.displayName="markdown",t.aliases=["md"]},595:function(e){"use strict";function t(e){!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,i){if(n.language===r){var o=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"===typeof i&&!i(e))return e;for(var a,s=o.length;-1!==n.code.indexOf(a=t(r,s));)++s;return o[s]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,i=Object.keys(n.tokenStack);!function o(s){for(var l=0;l<s.length&&!(a>=i.length);l++){var c=s[l];if("string"===typeof c||c.content&&"string"===typeof c.content){var u=i[a],d=n.tokenStack[u],p="string"===typeof c?c:c.content,m=t(r,u),g=p.indexOf(m);if(g>-1){++a;var h=p.substring(0,g),f=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(g+m.length),E=[];h&&E.push.apply(E,o([h])),E.push(f),b&&E.push.apply(E,o([b])),"string"===typeof c?s.splice.apply(s,[l,1].concat(E)):c.content=E}}else c.content&&o(c.content)}return s}(n.tokens)}}}})}(e)}e.exports=t,t.displayName="markupTemplating",t.aliases=[]},2357:function(e){"use strict";function t(e){e.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},e.languages.markup.tag.inside["attr-value"].inside.entity=e.languages.markup.entity,e.languages.markup.doctype.inside["internal-subset"].inside=e.languages.markup,e.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.value.replace(/&amp;/,"&"))})),Object.defineProperty(e.languages.markup.tag,"addInlined",{value:function(t,n){var r={};r["language-"+n]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:e.languages[n]},r.cdata=/^<!\[CDATA\[|\]\]>$/i;var a={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:r}};a["language-"+n]={pattern:/[\s\S]+/,inside:e.languages[n]};var i={};i[t]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return t})),"i"),lookbehind:!0,greedy:!0,inside:a},e.languages.insertBefore("markup","cdata",i)}}),Object.defineProperty(e.languages.markup.tag,"addAttribute",{value:function(t,n){e.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+t+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[n,"language-"+n],inside:e.languages[n]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),e.languages.html=e.languages.markup,e.languages.mathml=e.languages.markup,e.languages.svg=e.languages.markup,e.languages.xml=e.languages.extend("markup",{}),e.languages.ssml=e.languages.xml,e.languages.atom=e.languages.xml,e.languages.rss=e.languages.xml}e.exports=t,t.displayName="markup",t.aliases=["html","mathml","svg","xml","ssml","atom","rss"]},93:function(e){"use strict";function t(e){e.languages.matlab={comment:[/%\{[\s\S]*?\}%/,/%.+/],string:{pattern:/\B'(?:''|[^'\r\n])*'/,greedy:!0},number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?(?:[ij])?|\b[ij]\b/,keyword:/\b(?:NaN|break|case|catch|continue|else|elseif|end|for|function|if|inf|otherwise|parfor|pause|pi|return|switch|try|while)\b/,function:/\b(?!\d)\w+(?=\s*\()/,operator:/\.?[*^\/\\']|[+\-:@]|[<>=~]=?|&&?|\|\|?/,punctuation:/\.{3}|[.,;\[\](){}!]/}}e.exports=t,t.displayName="matlab",t.aliases=[]},4234:function(e){"use strict";function t(e){!function(e){var t=/\b(?:about|and|animate|as|at|attributes|by|case|catch|collect|continue|coordsys|do|else|exit|fn|for|from|function|global|if|in|local|macroscript|mapped|max|not|of|off|on|or|parameters|persistent|plugin|rcmenu|return|rollout|set|struct|then|throw|to|tool|try|undo|utility|when|where|while|with)\b/i;e.languages.maxscript={comment:{pattern:/\/\*[\s\S]*?(?:\*\/|$)|--.*/,greedy:!0},string:{pattern:/(^|[^"\\@])(?:"(?:[^"\\]|\\[\s\S])*"|@"[^"]*")/,lookbehind:!0,greedy:!0},path:{pattern:/\$(?:[\w/\\.*?]|'[^']*')*/,greedy:!0,alias:"string"},"function-call":{pattern:RegExp("((?:"+/^/.source+"|"+/[;=<>+\-*/^({\[]/.source+"|"+/\b(?:and|by|case|catch|collect|do|else|if|in|not|or|return|then|to|try|where|while|with)\b/.source+")[ \t]*)(?!"+t.source+")"+/[a-z_]\w*\b/.source+"(?=[ \t]*(?:(?!"+t.source+")"+/[a-z_]/.source+"|"+/\d|-\.?\d/.source+"|"+/[({'"$@#?]/.source+"))","im"),lookbehind:!0,greedy:!0,alias:"function"},"function-definition":{pattern:/(\b(?:fn|function)\s+)\w+\b/i,lookbehind:!0,alias:"function"},argument:{pattern:/\b[a-z_]\w*(?=:)/i,alias:"attr-name"},keyword:t,boolean:/\b(?:false|true)\b/,time:{pattern:/(^|[^\w.])(?:(?:(?:\d+(?:\.\d*)?|\.\d+)(?:[eEdD][+-]\d+|[LP])?[msft])+|\d+:\d+(?:\.\d*)?)(?![\w.:])/,lookbehind:!0,alias:"number"},number:[{pattern:/(^|[^\w.])(?:(?:\d+(?:\.\d*)?|\.\d+)(?:[eEdD][+-]\d+|[LP])?|0x[a-fA-F0-9]+)(?![\w.:])/,lookbehind:!0},/\b(?:e|pi)\b/],constant:/\b(?:dontcollect|ok|silentValue|undefined|unsupplied)\b/,color:{pattern:/\b(?:black|blue|brown|gray|green|orange|red|white|yellow)\b/i,alias:"constant"},operator:/[-+*/<>=!]=?|[&^?]|#(?!\()/,punctuation:/[()\[\]{}.:,;]|#(?=\()|\\$/m}}(e)}e.exports=t,t.displayName="maxscript",t.aliases=[]},1102:function(e){"use strict";function t(e){e.languages.mel={comment:/\/\/.*/,code:{pattern:/`(?:\\.|[^\\`\r\n])*`/,greedy:!0,alias:"italic",inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},variable:/\$\w+/,number:/\b0x[\da-fA-F]+\b|\b\d+(?:\.\d*)?|\B\.\d+/,flag:{pattern:/-[^\d\W]\w*/,alias:"operator"},keyword:/\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\b/,function:/\b\w+(?=\()|\b(?:CBG|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|Mayatomr|about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\b/,operator:[/\+[+=]?|-[-=]?|&&|\|\||[<>]=|[*\/!=]=?|[%^]/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,:;?\[\](){}]/},e.languages.mel.code.inside.rest=e.languages.mel}e.exports=t,t.displayName="mel",t.aliases=[]},2172:function(e){"use strict";function t(e){e.languages.mermaid={comment:{pattern:/%%.*/,greedy:!0},style:{pattern:/^([ \t]*(?:classDef|linkStyle|style)[ \t]+[\w$-]+[ \t]+)\w.*[^\s;]/m,lookbehind:!0,inside:{property:/\b\w[\w-]*(?=[ \t]*:)/,operator:/:/,punctuation:/,/}},"inter-arrow-label":{pattern:/([^<>ox.=-])(?:-[-.]|==)(?![<>ox.=-])[ \t]*(?:"[^"\r\n]*"|[^\s".=-](?:[^\r\n.=-]*[^\s.=-])?)[ \t]*(?:\.+->?|--+[->]|==+[=>])(?![<>ox.=-])/,lookbehind:!0,greedy:!0,inside:{arrow:{pattern:/(?:\.+->?|--+[->]|==+[=>])$/,alias:"operator"},label:{pattern:/^([\s\S]{2}[ \t]*)\S(?:[\s\S]*\S)?/,lookbehind:!0,alias:"property"},"arrow-head":{pattern:/^\S+/,alias:["arrow","operator"]}}},arrow:[{pattern:/(^|[^{}|o.-])[|}][|o](?:--|\.\.)[|o][|{](?![{}|o.-])/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>ox.=-])(?:[<ox](?:==+|--+|-\.*-)[>ox]?|(?:==+|--+|-\.*-)[>ox]|===+|---+|-\.+-)(?![<>ox.=-])/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>()x-])(?:--?(?:>>|[x>)])(?![<>()x])|(?:<<|[x<(])--?(?!-))/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>|*o.-])(?:[*o]--|--[*o]|<\|?(?:--|\.\.)|(?:--|\.\.)\|?>|--|\.\.)(?![<>|*o.-])/,lookbehind:!0,alias:"operator"}],label:{pattern:/(^|[^|<])\|(?:[^\r\n"|]|"[^"\r\n]*")+\|/,lookbehind:!0,greedy:!0,alias:"property"},text:{pattern:/(?:[(\[{]+|\b>)(?:[^\r\n"()\[\]{}]|"[^"\r\n]*")+(?:[)\]}]+|>)/,alias:"string"},string:{pattern:/"[^"\r\n]*"/,greedy:!0},annotation:{pattern:/<<(?:abstract|choice|enumeration|fork|interface|join|service)>>|\[\[(?:choice|fork|join)\]\]/i,alias:"important"},keyword:[{pattern:/(^[ \t]*)(?:action|callback|class|classDef|classDiagram|click|direction|erDiagram|flowchart|gantt|gitGraph|graph|journey|link|linkStyle|pie|requirementDiagram|sequenceDiagram|stateDiagram|stateDiagram-v2|style|subgraph)(?![\w$-])/m,lookbehind:!0,greedy:!0},{pattern:/(^[ \t]*)(?:activate|alt|and|as|autonumber|deactivate|else|end(?:[ \t]+note)?|loop|opt|par|participant|rect|state|note[ \t]+(?:over|(?:left|right)[ \t]+of))(?![\w$-])/im,lookbehind:!0,greedy:!0}],entity:/#[a-z0-9]+;/,operator:{pattern:/(\w[ \t]*)&(?=[ \t]*\w)|:::|:/,lookbehind:!0},punctuation:/[(){};]/}}e.exports=t,t.displayName="mermaid",t.aliases=[]},1337:function(e){"use strict";function t(e){e.languages.mizar={comment:/::.+/,keyword:/@proof\b|\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|end|environ|equals|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:ies|y)|when|where|with|wrt)\b/,parameter:{pattern:/\$(?:10|\d)/,alias:"variable"},variable:/\b\w+(?=:)/,number:/(?:\b|-)\d+\b/,operator:/\.\.\.|->|&|\.?=/,punctuation:/\(#|#\)|[,:;\[\](){}]/}}e.exports=t,t.displayName="mizar",t.aliases=[]},5638:function(e){"use strict";function t(e){!function(e){var t=["$eq","$gt","$gte","$in","$lt","$lte","$ne","$nin","$and","$not","$nor","$or","$exists","$type","$expr","$jsonSchema","$mod","$regex","$text","$where","$geoIntersects","$geoWithin","$near","$nearSphere","$all","$elemMatch","$size","$bitsAllClear","$bitsAllSet","$bitsAnyClear","$bitsAnySet","$comment","$elemMatch","$meta","$slice","$currentDate","$inc","$min","$max","$mul","$rename","$set","$setOnInsert","$unset","$addToSet","$pop","$pull","$push","$pullAll","$each","$position","$slice","$sort","$bit","$addFields","$bucket","$bucketAuto","$collStats","$count","$currentOp","$facet","$geoNear","$graphLookup","$group","$indexStats","$limit","$listLocalSessions","$listSessions","$lookup","$match","$merge","$out","$planCacheStats","$project","$redact","$replaceRoot","$replaceWith","$sample","$set","$skip","$sort","$sortByCount","$unionWith","$unset","$unwind","$setWindowFields","$abs","$accumulator","$acos","$acosh","$add","$addToSet","$allElementsTrue","$and","$anyElementTrue","$arrayElemAt","$arrayToObject","$asin","$asinh","$atan","$atan2","$atanh","$avg","$binarySize","$bsonSize","$ceil","$cmp","$concat","$concatArrays","$cond","$convert","$cos","$dateFromParts","$dateToParts","$dateFromString","$dateToString","$dayOfMonth","$dayOfWeek","$dayOfYear","$degreesToRadians","$divide","$eq","$exp","$filter","$first","$floor","$function","$gt","$gte","$hour","$ifNull","$in","$indexOfArray","$indexOfBytes","$indexOfCP","$isArray","$isNumber","$isoDayOfWeek","$isoWeek","$isoWeekYear","$last","$last","$let","$literal","$ln","$log","$log10","$lt","$lte","$ltrim","$map","$max","$mergeObjects","$meta","$min","$millisecond","$minute","$mod","$month","$multiply","$ne","$not","$objectToArray","$or","$pow","$push","$radiansToDegrees","$range","$reduce","$regexFind","$regexFindAll","$regexMatch","$replaceOne","$replaceAll","$reverseArray","$round","$rtrim","$second","$setDifference","$setEquals","$setIntersection","$setIsSubset","$setUnion","$size","$sin","$slice","$split","$sqrt","$stdDevPop","$stdDevSamp","$strcasecmp","$strLenBytes","$strLenCP","$substr","$substrBytes","$substrCP","$subtract","$sum","$switch","$tan","$toBool","$toDate","$toDecimal","$toDouble","$toInt","$toLong","$toObjectId","$toString","$toLower","$toUpper","$trim","$trunc","$type","$week","$year","$zip","$count","$dateAdd","$dateDiff","$dateSubtract","$dateTrunc","$getField","$rand","$sampleRate","$setField","$unsetField","$comment","$explain","$hint","$max","$maxTimeMS","$min","$orderby","$query","$returnKey","$showDiskLoc","$natural"],n="(?:"+(t=t.map((function(e){return e.replace("$","\\$")}))).join("|")+")\\b";e.languages.mongodb=e.languages.extend("javascript",{}),e.languages.insertBefore("mongodb","string",{property:{pattern:/(?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)(?=\s*:)/,greedy:!0,inside:{keyword:RegExp("^(['\"])?"+n+"(?:\\1)?$")}}}),e.languages.mongodb.string.inside={url:{pattern:/https?:\/\/[-\w@:%.+~#=]{1,256}\.[a-z0-9()]{1,6}\b[-\w()@:%+.~#?&/=]*/i,greedy:!0},entity:{pattern:/\b(?:(?:[01]?\d\d?|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d\d?|2[0-4]\d|25[0-5])\b/,greedy:!0}},e.languages.insertBefore("mongodb","constant",{builtin:{pattern:RegExp("\\b(?:"+["ObjectId","Code","BinData","DBRef","Timestamp","NumberLong","NumberDecimal","MaxKey","MinKey","RegExp","ISODate","UUID"].join("|")+")\\b"),alias:"keyword"}})}(e)}e.exports=t,t.displayName="mongodb",t.aliases=[]},54:function(e){"use strict";function t(e){e.languages.monkey={comment:{pattern:/^#Rem\s[\s\S]*?^#End|'.+/im,greedy:!0},string:{pattern:/"[^"\r\n]*"/,greedy:!0},preprocessor:{pattern:/(^[ \t]*)#.+/m,lookbehind:!0,greedy:!0,alias:"property"},function:/\b\w+(?=\()/,"type-char":{pattern:/\b[?%#$]/,alias:"class-name"},number:{pattern:/((?:\.\.)?)(?:(?:\b|\B-\.?|\B\.)\d+(?:(?!\.\.)\.\d*)?|\$[\da-f]+)/i,lookbehind:!0},keyword:/\b(?:Abstract|Array|Bool|Case|Catch|Class|Const|Continue|Default|Eachin|Else|ElseIf|End|EndIf|Exit|Extends|Extern|False|Field|Final|Float|For|Forever|Function|Global|If|Implements|Import|Inline|Int|Interface|Local|Method|Module|New|Next|Null|Object|Private|Property|Public|Repeat|Return|Select|Self|Step|Strict|String|Super|Then|Throw|To|True|Try|Until|Void|Wend|While)\b/i,operator:/\.\.|<[=>]?|>=?|:?=|(?:[+\-*\/&~|]|\b(?:Mod|Shl|Shr)\b)=?|\b(?:And|Not|Or)\b/i,punctuation:/[.,:;()\[\]]/}}e.exports=t,t.displayName="monkey",t.aliases=[]},1741:function(e){"use strict";function t(e){e.languages.moonscript={comment:/--.*/,string:[{pattern:/'[^']*'|\[(=*)\[[\s\S]*?\]\1\]/,greedy:!0},{pattern:/"[^"]*"/,greedy:!0,inside:{interpolation:{pattern:/#\{[^{}]*\}/,inside:{moonscript:{pattern:/(^#\{)[\s\S]+(?=\})/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/#\{|\}/,alias:"punctuation"}}}}}],"class-name":[{pattern:/(\b(?:class|extends)[ \t]+)\w+/,lookbehind:!0},/\b[A-Z]\w*/],keyword:/\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\b/,variable:/@@?\w*/,property:{pattern:/\b(?!\d)\w+(?=:)|(:)(?!\d)\w+/,lookbehind:!0},function:{pattern:/\b(?:_G|_VERSION|assert|collectgarbage|coroutine\.(?:create|resume|running|status|wrap|yield)|debug\.(?:debug|getfenv|gethook|getinfo|getlocal|getmetatable|getregistry|getupvalue|setfenv|sethook|setlocal|setmetatable|setupvalue|traceback)|dofile|error|getfenv|getmetatable|io\.(?:close|flush|input|lines|open|output|popen|read|stderr|stdin|stdout|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\.(?:abs|acos|asin|atan|atan2|ceil|cos|cosh|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pi|pow|rad|random|randomseed|sin|sinh|sqrt|tan|tanh)|module|next|os\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\.(?:byte|char|dump|find|format|gmatch|gsub|len|lower|match|rep|reverse|sub|upper)|table\.(?:concat|insert|maxn|remove|sort)|tonumber|tostring|type|unpack|xpcall)\b/,inside:{punctuation:/\./}},boolean:/\b(?:false|true)\b/,number:/(?:\B\.\d+|\b\d+\.\d+|\b\d+(?=[eE]))(?:[eE][-+]?\d+)?\b|\b(?:0x[a-fA-F\d]+|\d+)(?:U?LL)?\b/,operator:/\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\.\.)=?|[:#^]|\b(?:and|or)\b=?|\b(?:not)\b/,punctuation:/[.,()[\]{}\\]/},e.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside=e.languages.moonscript,e.languages.moon=e.languages.moonscript}e.exports=t,t.displayName="moonscript",t.aliases=["moon"]},2089:function(e){"use strict";function t(e){e.languages.n1ql={comment:{pattern:/\/\*[\s\S]*?(?:$|\*\/)|--.*/,greedy:!0},string:{pattern:/(["'])(?:\\[\s\S]|(?!\1)[^\\]|\1\1)*\1/,greedy:!0},identifier:{pattern:/`(?:\\[\s\S]|[^\\`]|``)*`/,greedy:!0},parameter:/\$[\w.]+/,keyword:/\b(?:ADVISE|ALL|ALTER|ANALYZE|AS|ASC|AT|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|COMMITTED|CONNECT|CONTINUE|CORRELATE|CORRELATED|COVER|CREATE|CURRENT|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FILTER|FLATTEN|FLUSH|FOLLOWING|FOR|FORCE|FROM|FTS|FUNCTION|GOLANG|GRANT|GROUP|GROUPS|GSI|HASH|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|ISOLATION|JAVASCRIPT|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LANGUAGE|LAST|LEFT|LET|LETTING|LEVEL|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NL|NO|NTH_VALUE|NULL|NULLS|NUMBER|OBJECT|OFFSET|ON|OPTION|OPTIONS|ORDER|OTHERS|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PRECEDING|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROBE|PROCEDURE|PUBLIC|RANGE|RAW|REALM|REDUCE|RENAME|RESPECT|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|ROW|ROWS|SATISFIES|SAVEPOINT|SCHEMA|SCOPE|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TIES|TO|TRAN|TRANSACTION|TRIGGER|TRUNCATE|UNBOUNDED|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WINDOW|WITH|WORK|XOR)\b/i,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:FALSE|TRUE)\b/i,number:/(?:\b\d+\.|\B\.)\d+e[+\-]?\d+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/%]|!=|==?|\|\||<[>=]?|>=?|\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\b/i,punctuation:/[;[\](),.{}:]/}}e.exports=t,t.displayName="n1ql",t.aliases=[]},5739:function(e){"use strict";function t(e){e.languages.n4js=e.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),e.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),e.languages.n4jsd=e.languages.n4js}e.exports=t,t.displayName="n4js",t.aliases=["n4jsd"]},8347:function(e){"use strict";function t(e){e.languages["nand2tetris-hdl"]={comment:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,keyword:/\b(?:BUILTIN|CHIP|CLOCKED|IN|OUT|PARTS)\b/,boolean:/\b(?:false|true)\b/,function:/\b[A-Za-z][A-Za-z0-9]*(?=\()/,number:/\b\d+\b/,operator:/=|\.\./,punctuation:/[{}[\];(),:]/}}e.exports=t,t.displayName="nand2tetrisHdl",t.aliases=[]},9899:function(e){"use strict";function t(e){!function(e){var t=/\{[^\r\n\[\]{}]*\}/,n={"quoted-string":{pattern:/"(?:[^"\\]|\\.)*"/,alias:"operator"},"command-param-id":{pattern:/(\s)\w+:/,lookbehind:!0,alias:"property"},"command-param-value":[{pattern:t,alias:"selector"},{pattern:/([\t ])\S+/,lookbehind:!0,greedy:!0,alias:"operator"},{pattern:/\S(?:.*\S)?/,alias:"operator"}]};function r(e){return"string"===typeof e?e:Array.isArray(e)?e.map(r).join(""):r(e.content)}e.languages.naniscript={comment:{pattern:/^([\t ]*);.*/m,lookbehind:!0},define:{pattern:/^>.+/m,alias:"tag",inside:{value:{pattern:/(^>\w+[\t ]+)(?!\s)[^{}\r\n]+/,lookbehind:!0,alias:"operator"},key:{pattern:/(^>)\w+/,lookbehind:!0}}},label:{pattern:/^([\t ]*)#[\t ]*\w+[\t ]*$/m,lookbehind:!0,alias:"regex"},command:{pattern:/^([\t ]*)@\w+(?=[\t ]|$).*/m,lookbehind:!0,alias:"function",inside:{"command-name":/^@\w+/,expression:{pattern:t,greedy:!0,alias:"selector"},"command-params":{pattern:/\s*\S[\s\S]*/,inside:n}}},"generic-text":{pattern:/(^[ \t]*)[^#@>;\s].*/m,lookbehind:!0,alias:"punctuation",inside:{"escaped-char":/\\[{}\[\]"]/,expression:{pattern:t,greedy:!0,alias:"selector"},"inline-command":{pattern:/\[[\t ]*\w[^\r\n\[\]]*\]/,greedy:!0,alias:"function",inside:{"command-params":{pattern:/(^\[[\t ]*\w+\b)[\s\S]+(?=\]$)/,lookbehind:!0,inside:n},"command-param-name":{pattern:/^(\[[\t ]*)\w+/,lookbehind:!0,alias:"name"},"start-stop-char":/[\[\]]/}}}}},e.languages.nani=e.languages.naniscript,e.hooks.add("after-tokenize",(function(e){e.tokens.forEach((function(e){if("string"!==typeof e&&"generic-text"===e.type){var t=r(e);(function(e){for(var t="[]{}",n=[],r=0;r<e.length;r++){var a=e[r],i=t.indexOf(a);if(-1!==i)if(i%2===0)n.push(i+1);else if(n.pop()!==i)return!1}return 0===n.length})(t)||(e.type="bad-line",e.content=t)}}))}))}(e)}e.exports=t,t.displayName="naniscript",t.aliases=[]},2420:function(e){"use strict";function t(e){e.languages.nasm={comment:/;.*$/m,string:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,label:{pattern:/(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m,lookbehind:!0,alias:"function"},keyword:[/\[?BITS (?:16|32|64)\]?/,{pattern:/(^\s*)section\s*[a-z.]+:?/im,lookbehind:!0},/(?:extern|global)[^;\r\n]*/i,/(?:CPU|DEFAULT|FLOAT).*$/m],register:{pattern:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s)\b/i,alias:"variable"},number:/(?:\b|(?=\$))(?:0[hx](?:\.[\da-f]+|[\da-f]+(?:\.[\da-f]+)?)(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|(?:\d+(?:\.\d+)?|\.\d+)(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-\/%<>=&|$!]/}}e.exports=t,t.displayName="nasm",t.aliases=[]},2019:function(e){"use strict";function t(e){e.languages.neon={comment:{pattern:/#.*/,greedy:!0},datetime:{pattern:/(^|[[{(=:,\s])\d\d\d\d-\d\d?-\d\d?(?:(?:[Tt]| +)\d\d?:\d\d:\d\d(?:\.\d*)? *(?:Z|[-+]\d\d?(?::?\d\d)?)?)?(?=$|[\]}),\s])/,lookbehind:!0,alias:"number"},key:{pattern:/(^|[[{(,\s])[^,:=[\]{}()'"\s]+(?=\s*:(?:$|[\]}),\s])|\s*=)/,lookbehind:!0,alias:"atrule"},number:{pattern:/(^|[[{(=:,\s])[+-]?(?:0x[\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\d+(?:\.\d*)?|\.?\d+)(?:[eE][+-]?\d+)?)(?=$|[\]}),:=\s])/,lookbehind:!0},boolean:{pattern:/(^|[[{(=:,\s])(?:false|no|true|yes)(?=$|[\]}),:=\s])/i,lookbehind:!0},null:{pattern:/(^|[[{(=:,\s])(?:null)(?=$|[\]}),:=\s])/i,lookbehind:!0,alias:"keyword"},string:{pattern:/(^|[[{(=:,\s])(?:('''|""")\r?\n(?:(?:[^\r\n]|\r?\n(?![\t ]*\2))*\r?\n)?[\t ]*\2|'[^'\r\n]*'|"(?:\\.|[^\\"\r\n])*")/,lookbehind:!0,greedy:!0},literal:{pattern:/(^|[[{(=:,\s])(?:[^#"',:=[\]{}()\s`-]|[:-][^"',=[\]{}()\s])(?:[^,:=\]})(\s]|:(?![\s,\]})]|$)|[ \t]+[^#,:=\]})(\s])*/,lookbehind:!0,alias:"string"},punctuation:/[,:=[\]{}()-]/}}e.exports=t,t.displayName="neon",t.aliases=[]},2618:function(e){"use strict";function t(e){e.languages.nevod={comment:/\/\/.*|(?:\/\*[\s\S]*?(?:\*\/|$))/,string:{pattern:/(?:"(?:""|[^"])*"(?!")|'(?:''|[^'])*'(?!'))!?\*?/,greedy:!0,inside:{"string-attrs":/!$|!\*$|\*$/}},namespace:{pattern:/(@namespace\s+)[a-zA-Z0-9\-.]+(?=\s*\{)/,lookbehind:!0},pattern:{pattern:/(@pattern\s+)?#?[a-zA-Z0-9\-.]+(?:\s*\(\s*(?:~\s*)?[a-zA-Z0-9\-.]+\s*(?:,\s*(?:~\s*)?[a-zA-Z0-9\-.]*)*\))?(?=\s*=)/,lookbehind:!0,inside:{"pattern-name":{pattern:/^#?[a-zA-Z0-9\-.]+/,alias:"class-name"},fields:{pattern:/\(.*\)/,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},punctuation:/[,()]/,operator:{pattern:/~/,alias:"field-hidden-mark"}}}}},search:{pattern:/(@search\s+|#)[a-zA-Z0-9\-.]+(?:\.\*)?(?=\s*;)/,alias:"function",lookbehind:!0},keyword:/@(?:having|inside|namespace|outside|pattern|require|search|where)\b/,"standard-pattern":{pattern:/\b(?:Alpha|AlphaNum|Any|Blank|End|LineBreak|Num|NumAlpha|Punct|Space|Start|Symbol|Word|WordBreak)\b(?:\([a-zA-Z0-9\-.,\s+]*\))?/,inside:{"standard-pattern-name":{pattern:/^[a-zA-Z0-9\-.]+/,alias:"builtin"},quantifier:{pattern:/\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/,alias:"number"},"standard-pattern-attr":{pattern:/[a-zA-Z0-9\-.]+/,alias:"builtin"},punctuation:/[,()]/}},quantifier:{pattern:/\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/,alias:"number"},operator:[{pattern:/=/,alias:"pattern-def"},{pattern:/&/,alias:"conjunction"},{pattern:/~/,alias:"exception"},{pattern:/\?/,alias:"optionality"},{pattern:/[[\]]/,alias:"repetition"},{pattern:/[{}]/,alias:"variation"},{pattern:/[+_]/,alias:"sequence"},{pattern:/\.{2,3}/,alias:"span"}],"field-capture":[{pattern:/([a-zA-Z0-9\-.]+\s*\()\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+(?:\s*,\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+)*(?=\s*\))/,lookbehind:!0,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},colon:/:/}},{pattern:/[a-zA-Z0-9\-.]+\s*:/,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},colon:/:/}}],punctuation:/[:;,()]/,name:/[a-zA-Z0-9\-.]+/}}e.exports=t,t.displayName="nevod",t.aliases=[]},8659:function(e){"use strict";function t(e){!function(e){var t=/\$(?:\w[a-z\d]*(?:_[^\x00-\x1F\s"'\\()$]*)?|\{[^}\s"'\\]+\})/i;e.languages.nginx={comment:{pattern:/(^|[\s{};])#.*/,lookbehind:!0,greedy:!0},directive:{pattern:/(^|\s)\w(?:[^;{}"'\\\s]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\s+(?:#.*(?!.)|(?![#\s])))*?(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:{string:{pattern:/((?:^|[^\\])(?:\\\\)*)(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,lookbehind:!0,greedy:!0,inside:{escape:{pattern:/\\["'\\nrt]/,alias:"entity"},variable:t}},comment:{pattern:/(\s)#.*/,lookbehind:!0,greedy:!0},keyword:{pattern:/^\S+/,greedy:!0},boolean:{pattern:/(\s)(?:off|on)(?!\S)/,lookbehind:!0},number:{pattern:/(\s)\d+[a-z]*(?!\S)/i,lookbehind:!0},variable:t}},punctuation:/[{};]/}}(e)}e.exports=t,t.displayName="nginx",t.aliases=[]},6e3:function(e){"use strict";function t(e){e.languages.nim={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/(?:\b(?!\d)(?:\w|\\x[89a-fA-F][0-9a-fA-F])+)?(?:"""[\s\S]*?"""(?!")|"(?:\\[\s\S]|""|[^"\\])*")/,greedy:!0},char:{pattern:/'(?:\\(?:\d+|x[\da-fA-F]{0,2}|.)|[^'])'/,greedy:!0},function:{pattern:/(?:(?!\d)(?:\w|\\x[89a-fA-F][0-9a-fA-F])+|`[^`\r\n]+`)\*?(?:\[[^\]]+\])?(?=\s*\()/,greedy:!0,inside:{operator:/\*$/}},identifier:{pattern:/`[^`\r\n]+`/,greedy:!0,inside:{punctuation:/`/}},number:/\b(?:0[xXoObB][\da-fA-F_]+|\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:[eE][+-]?\d[\d_]*)?)(?:'?[iuf]\d*)?/,keyword:/\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\b/,operator:{pattern:/(^|[({\[](?=\.\.)|(?![({\[]\.).)(?:(?:[=+\-*\/<>@$~&%|!?^:\\]|\.\.|\.(?![)}\]]))+|\b(?:and|div|in|is|isnot|mod|not|notin|of|or|shl|shr|xor)\b)/m,lookbehind:!0},punctuation:/[({\[]\.|\.[)}\]]|[`(){}\[\],:]/}}e.exports=t,t.displayName="nim",t.aliases=[]},7190:function(e){"use strict";function t(e){e.languages.nix={comment:{pattern:/\/\*[\s\S]*?\*\/|#.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/,greedy:!0,inside:{interpolation:{pattern:/(^|(?:^|(?!'').)[^\\])\$\{(?:[^{}]|\{[^}]*\})*\}/,lookbehind:!0,inside:null}}},url:[/\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/,{pattern:/([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/,lookbehind:!0}],antiquotation:{pattern:/\$(?=\{)/,alias:"important"},number:/\b\d+\b/,keyword:/\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/,function:/\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:Tarball|url)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/,boolean:/\b(?:false|true)\b/,operator:/[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/,punctuation:/[{}()[\].,:;]/},e.languages.nix.string.inside.interpolation.inside=e.languages.nix}e.exports=t,t.displayName="nix",t.aliases=[]},1465:function(e){"use strict";function t(e){e.languages.nsis={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|[#;].*)/,lookbehind:!0,greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:{pattern:/(^[\t ]*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|BG(?:Font|Gradient|Image)|Banner|BrandingText|BringToFront|CRCCheck|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|Seek|Write|WriteByte|WriteUTF16LE|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DLLVersion(?:Local)?|DlgItem|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|NSISdl|Name|Nop|OutFile|PE(?:DllCharacteristics|SubsysVer)|Page(?:Callbacks)?|Pop|Push|Quit|RMDir|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|UnRegDLL|Unicode|UninstPage|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UserInfo|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|Var|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle|ns(?:Dialogs|Exec))\b/m,lookbehind:!0},property:/\b(?:ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY|admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user)\b/,constant:/\$\{[!\w\.:\^-]+\}|\$\([!\w\.:\^-]+\)/,variable:/\$\w[\w\.]*/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|\+\+?|<=?|>=?|==?=?|&&?|\|\|?|[?*\/~^%]/,punctuation:/[{}[\];(),.:]/,important:{pattern:/(^[\t ]*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\b/im,lookbehind:!0}}}e.exports=t,t.displayName="nsis",t.aliases=[]},9263:function(e,t,n){"use strict";var r=n(272);function a(e){e.register(r),e.languages.objectivec=e.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete e.languages.objectivec["class-name"],e.languages.objc=e.languages.objectivec}e.exports=a,a.displayName="objectivec",a.aliases=["objc"]},4974:function(e){"use strict";function t(e){e.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/}}e.exports=t,t.displayName="ocaml",t.aliases=[]},6296:function(e,t,n){"use strict";var r=n(272);function a(e){e.register(r),function(e){e.languages.opencl=e.languages.extend("c",{keyword:/\b(?:(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|__attribute__|auto|(?:bool|u?(?:char|int|long|short)|half|quad)(?:2|3|4|8|16)?|break|case|complex|const|continue|(?:double|float)(?:16(?:x(?:1|2|4|8|16))?|1x(?:1|2|4|8|16)|2(?:x(?:1|2|4|8|16))?|3|4(?:x(?:1|2|4|8|16))?|8(?:x(?:1|2|4|8|16))?)?|default|do|else|enum|extern|for|goto|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\b/,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[fuhl]{0,4}/i,boolean:/\b(?:false|true)\b/,"constant-opencl-kernel":{pattern:/\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:GLOBAL|LOCAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|(?:MAX|MIN)(?:(?:_10)?_EXP)?|MANT_DIG)|FLT_RADIX|HUGE_VALF?|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|INFINITY|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:2|10)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN|(?:UCHAR|UINT|ULONG|USHRT)_MAX)\b/,alias:"constant"}}),e.languages.insertBefore("opencl","class-name",{"builtin-type":{pattern:/\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\b/,alias:"keyword"}});var t={"type-opencl-host":{pattern:/\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|int|long|short)|double|float)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\b/,alias:"keyword"},"boolean-opencl-host":{pattern:/\bCL_(?:FALSE|TRUE)\b/,alias:"boolean"},"constant-opencl-host":{pattern:/\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:8|16|24|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\b/,alias:"constant"},"function-opencl-host":{pattern:/\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\b/,alias:"function"}};e.languages.insertBefore("c","keyword",t),e.languages.cpp&&(t["type-opencl-host-cpp"]={pattern:/\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|Sampler|UserEvent)\b/,alias:"keyword"},e.languages.insertBefore("cpp","keyword",t))}(e)}e.exports=a,a.displayName="opencl",a.aliases=[]},6778:function(e){"use strict";function t(e){e.languages.openqasm={comment:/\/\*[\s\S]*?\*\/|\/\/.*/,string:{pattern:/"[^"\r\n\t]*"|'[^'\r\n\t]*'/,greedy:!0},keyword:/\b(?:CX|OPENQASM|U|barrier|boxas|boxto|break|const|continue|ctrl|def|defcal|defcalgrammar|delay|else|end|for|gate|gphase|if|in|include|inv|kernel|lengthof|let|measure|pow|reset|return|rotary|stretchinf|while)\b|#pragma\b/,"class-name":/\b(?:angle|bit|bool|creg|fixed|float|int|length|qreg|qubit|stretch|uint)\b/,function:/\b(?:cos|exp|ln|popcount|rotl|rotr|sin|sqrt|tan)\b(?=\s*\()/,constant:/\b(?:euler|pi|tau)\b|\u03c0|\ud835\udf0f|\u2107/,number:{pattern:/(^|[^.\w$])(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?(?:dt|ns|us|\xb5s|ms|s)?/i,lookbehind:!0},operator:/->|>>=?|<<=?|&&|\|\||\+\+|--|[!=<>&|~^+\-*/%]=?|@/,punctuation:/[(){}\[\];,:.]/},e.languages.qasm=e.languages.openqasm}e.exports=t,t.displayName="openqasm",t.aliases=["qasm"]},6792:function(e){"use strict";function t(e){e.languages.oz={comment:{pattern:/\/\*[\s\S]*?\*\/|%.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\[\s\S])*"/,greedy:!0},atom:{pattern:/'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,alias:"builtin"},keyword:/\$|\[\]|\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\b/,function:[/\b[a-z][A-Za-z\d]*(?=\()/,{pattern:/(\{)[A-Z][A-Za-z\d]*\b/,lookbehind:!0}],number:/\b(?:0[bx][\da-f]+|\d+(?:\.\d*)?(?:e~?\d+)?)\b|&(?:[^\\]|\\(?:\d{3}|.))/i,variable:/`(?:[^`\\]|\\.)+`/,"attr-name":/\b\w+(?=[ \t]*:(?![:=]))/,operator:/:(?:=|::?)|<[-:=]?|=(?:=|<?:?)|>=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/,punctuation:/[\[\](){}.:;?]/}}e.exports=t,t.displayName="oz",t.aliases=[]},6478:function(e){"use strict";function t(e){e.languages.parigp={comment:/\/\*[\s\S]*?\*\/|\\\\.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"/,greedy:!0},keyword:function(){var e=["breakpoint","break","dbg_down","dbg_err","dbg_up","dbg_x","forcomposite","fordiv","forell","forpart","forprime","forstep","forsubgroup","forvec","for","iferr","if","local","my","next","return","until","while"];return e=e.map((function(e){return e.split("").join(" *")})).join("|"),RegExp("\\b(?:"+e+")\\b")}(),function:/\b\w(?:[\w ]*\w)?(?= *\()/,number:{pattern:/((?:\. *\. *)?)(?:\b\d(?: *\d)*(?: *(?!\. *\.)\.(?: *\d)*)?|\. *\d(?: *\d)*)(?: *e *(?:[+-] *)?\d(?: *\d)*)?/i,lookbehind:!0},operator:/\. *\.|[*\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\+(?: *[+=])?|-(?: *[-=>])?|<(?: *>|(?: *<)?(?: *=)?)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\(?: *\/)?(?: *=)?|&(?: *&)?|\| *\||['#~^]/,punctuation:/[\[\]{}().,:;|]/}}e.exports=t,t.displayName="parigp",t.aliases=[]},6806:function(e){"use strict";function t(e){!function(e){var t=e.languages.parser=e.languages.extend("markup",{keyword:{pattern:/(^|[^^])(?:\^(?:case|eval|for|if|switch|throw)\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\b)/,lookbehind:!0},variable:{pattern:/(^|[^^])\B\$(?:\w+|(?=[.{]))(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{punctuation:/\.|:+/}},function:{pattern:/(^|[^^])\B[@^]\w+(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{keyword:{pattern:/(^@)(?:GET_|SET_)/,lookbehind:!0},punctuation:/\.|:+/}},escape:{pattern:/\^(?:[$^;@()\[\]{}"':]|#[a-f\d]*)/i,alias:"builtin"},punctuation:/[\[\](){};]/});t=e.languages.insertBefore("parser","keyword",{"parser-comment":{pattern:/(\s)#.*/,lookbehind:!0,alias:"comment"},expression:{pattern:/(^|[^^])\((?:[^()]|\((?:[^()]|\((?:[^()])*\))*\))*\)/,greedy:!0,lookbehind:!0,inside:{string:{pattern:/(^|[^^])(["'])(?:(?!\2)[^^]|\^[\s\S])*\2/,lookbehind:!0},keyword:t.keyword,variable:t.variable,function:t.function,boolean:/\b(?:false|true)\b/,number:/\b(?:0x[a-f\d]+|\d+(?:\.\d*)?(?:e[+-]?\d+)?)\b/i,escape:t.escape,operator:/[~+*\/\\%]|!(?:\|\|?|=)?|&&?|\|\|?|==|<[<=]?|>[>=]?|-[fd]?|\b(?:def|eq|ge|gt|in|is|le|lt|ne)\b/,punctuation:t.punctuation}}}),e.languages.insertBefore("inside","punctuation",{expression:t.expression,keyword:t.keyword,variable:t.variable,function:t.function,escape:t.escape,"parser-punctuation":{pattern:t.punctuation,alias:"punctuation"}},t.tag.inside["attr-value"])}(e)}e.exports=t,t.displayName="parser",t.aliases=[]},347:function(e){"use strict";function t(e){e.languages.pascal={directive:{pattern:/\{\$[\s\S]*?\}/,greedy:!0,alias:["marco","property"]},comment:{pattern:/\(\*[\s\S]*?\*\)|\{[\s\S]*?\}|\/\/.*/,greedy:!0},string:{pattern:/(?:'(?:''|[^'\r\n])*'(?!')|#[&$%]?[a-f\d]+)+|\^[a-z]/i,greedy:!0},asm:{pattern:/(\basm\b)[\s\S]+?(?=\bend\s*[;[])/i,lookbehind:!0,greedy:!0,inside:null},keyword:[{pattern:/(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:dispose|exit|false|new|true)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i,lookbehind:!0}],number:[/(?:[&%]\d+|\$[a-f\d]+)/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?/i],operator:[/\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/,{pattern:/(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/,lookbehind:!0}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/},e.languages.pascal.asm.inside=e.languages.extend("pascal",{asm:void 0,keyword:void 0,operator:void 0}),e.languages.objectpascal=e.languages.pascal}e.exports=t,t.displayName="pascal",t.aliases=["objectpascal"]},7976:function(e){"use strict";function t(e){!function(e){var t=/\((?:[^()]|\((?:[^()]|\([^()]*\))*\))*\)/.source,n=/(?:\b\w+(?:<braces>)?|<braces>)/.source.replace(/<braces>/g,(function(){return t})),r=e.languages.pascaligo={comment:/\(\*[\s\S]+?\*\)|\/\/.*/,string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1|\^[a-z]/i,greedy:!0},"class-name":[{pattern:RegExp(/(\btype\s+\w+\s+is\s+)<type>/.source.replace(/<type>/g,(function(){return n})),"i"),lookbehind:!0,inside:null},{pattern:RegExp(/<type>(?=\s+is\b)/.source.replace(/<type>/g,(function(){return n})),"i"),inside:null},{pattern:RegExp(/(:\s*)<type>/.source.replace(/<type>/g,(function(){return n}))),lookbehind:!0,inside:null}],keyword:{pattern:/(^|[^&])\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\b/i,lookbehind:!0},boolean:{pattern:/(^|[^&])\b(?:False|True)\b/i,lookbehind:!0},builtin:{pattern:/(^|[^&])\b(?:bool|int|list|map|nat|record|string|unit)\b/i,lookbehind:!0},function:/\b\w+(?=\s*\()/,number:[/%[01]+|&[0-7]+|\$[a-f\d]+/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?(?:mtz|n)?/i],operator:/->|=\/=|\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=|]|\b(?:and|mod|or)\b/,punctuation:/\(\.|\.\)|[()\[\]:;,.{}]/},a=["comment","keyword","builtin","operator","punctuation"].reduce((function(e,t){return e[t]=r[t],e}),{});r["class-name"].forEach((function(e){e.inside=a}))}(e)}e.exports=t,t.displayName="pascaligo",t.aliases=[]},7484:function(e){"use strict";function t(e){e.languages.pcaxis={string:/"[^"]*"/,keyword:{pattern:/((?:^|;)\s*)[-A-Z\d]+(?:\s*\[[-\w]+\])?(?:\s*\("[^"]*"(?:,\s*"[^"]*")*\))?(?=\s*=)/,lookbehind:!0,greedy:!0,inside:{keyword:/^[-A-Z\d]+/,language:{pattern:/^(\s*)\[[-\w]+\]/,lookbehind:!0,inside:{punctuation:/^\[|\]$/,property:/[-\w]+/}},"sub-key":{pattern:/^(\s*)\S[\s\S]*/,lookbehind:!0,inside:{parameter:{pattern:/"[^"]*"/,alias:"property"},punctuation:/^\(|\)$|,/}}}},operator:/=/,tlist:{pattern:/TLIST\s*\(\s*\w+(?:(?:\s*,\s*"[^"]*")+|\s*,\s*"[^"]*"-"[^"]*")?\s*\)/,greedy:!0,inside:{function:/^TLIST/,property:{pattern:/^(\s*\(\s*)\w+/,lookbehind:!0},string:/"[^"]*"/,punctuation:/[(),]/,operator:/-/}},punctuation:/[;,]/,number:{pattern:/(^|\s)\d+(?:\.\d+)?(?!\S)/,lookbehind:!0},boolean:/NO|YES/},e.languages.px=e.languages.pcaxis}e.exports=t,t.displayName="pcaxis",t.aliases=["px"]},3205:function(e){"use strict";function t(e){e.languages.peoplecode={comment:RegExp([/\/\*[\s\S]*?\*\//.source,/\bREM[^;]*;/.source,/<\*(?:[^<*]|\*(?!>)|<(?!\*)|<\*(?:(?!\*>)[\s\S])*\*>)*\*>/.source,/\/\+[\s\S]*?\+\//.source].join("|")),string:{pattern:/'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,greedy:!0},variable:/%\w+/,"function-definition":{pattern:/((?:^|[^\w-])(?:function|method)\s+)\w+/i,lookbehind:!0,alias:"function"},"class-name":{pattern:/((?:^|[^-\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\s+)\w+(?::\w+)*/i,lookbehind:!0,inside:{punctuation:/:/}},keyword:/\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|if|implements|import|instance|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\b/i,"operator-keyword":{pattern:/\b(?:and|not|or)\b/i,alias:"operator"},function:/[_a-z]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/i,number:/\b\d+(?:\.\d+)?\b/,operator:/<>|[<>]=?|!=|\*\*|[-+*/|=@]/,punctuation:/[:.;,()[\]]/},e.languages.pcode=e.languages.peoplecode}e.exports=t,t.displayName="peoplecode",t.aliases=["pcode"]},1797:function(e){"use strict";function t(e){!function(e){var t=/(?:\((?:[^()\\]|\\[\s\S])*\)|\{(?:[^{}\\]|\\[\s\S])*\}|\[(?:[^[\]\\]|\\[\s\S])*\]|<(?:[^<>\\]|\\[\s\S])*>)/.source;e.languages.perl={comment:[{pattern:/(^\s*)=\w[\s\S]*?=cut.*/m,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0,greedy:!0}],string:[{pattern:RegExp(/\b(?:q|qq|qw|qx)(?![a-zA-Z0-9])\s*/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2/.source,t].join("|")+")"),greedy:!0},{pattern:/("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/'(?:[^'\\\r\n]|\\.)*'/,greedy:!0}],regex:[{pattern:RegExp(/\b(?:m|qr)(?![a-zA-Z0-9])\s*/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2/.source,t].join("|")+")"+/[msixpodualngc]*/.source),greedy:!0},{pattern:RegExp(/(^|[^-])\b(?:s|tr|y)(?![a-zA-Z0-9])\s*/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2/.source,/([a-zA-Z0-9])(?:(?!\3)[^\\]|\\[\s\S])*\3(?:(?!\3)[^\\]|\\[\s\S])*\3/.source,t+/\s*/.source+t].join("|")+")"+/[msixpodualngcer]*/.source),lookbehind:!0,greedy:!0},{pattern:/\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|x|xor)\b))/,greedy:!0}],variable:[/[&*$@%]\{\^[A-Z]+\}/,/[&*$@%]\^[A-Z_]/,/[&*$@%]#?(?=\{)/,/[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+(?![\w$]))+(?:::)*/,/[&*$@%]\d+/,/(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/],filehandle:{pattern:/<(?![<=])\S*?>|\b_\b/,alias:"symbol"},"v-string":{pattern:/v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/,alias:"string"},function:{pattern:/(\bsub[ \t]+)\w+/,lookbehind:!0},keyword:/\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\b/,number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/,operator:/-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\b/,punctuation:/[{}[\];(),:]/}}(e)}e.exports=t,t.displayName="perl",t.aliases=[]},7241:function(e,t,n){"use strict";var r=n(7304);function a(e){e.register(r),e.languages.insertBefore("php","variable",{this:{pattern:/\$this\b/,alias:"keyword"},global:/\$(?:GLOBALS|HTTP_RAW_POST_DATA|_(?:COOKIE|ENV|FILES|GET|POST|REQUEST|SERVER|SESSION)|argc|argv|http_response_header|php_errormsg)\b/,scope:{pattern:/\b[\w\\]+::/,inside:{keyword:/\b(?:parent|self|static)\b/,punctuation:/::|\\/}}})}e.exports=a,a.displayName="phpExtras",a.aliases=[]},7304:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),function(e){var t=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,n=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],r=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,a=/<?=>|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,i=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:t,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s+)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:r,operator:a,punctuation:i};var o={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},s=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:o}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:o}}];e.languages.insertBefore("php","variable",{string:s,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:t,string:s,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,number:r,operator:a,punctuation:i}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),e.hooks.add("before-tokenize",(function(t){if(/<\?/.test(t.code)){e.languages["markup-templating"].buildPlaceholders(t,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g)}})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")}))}(e)}e.exports=a,a.displayName="php",a.aliases=[]},7613:function(e,t,n){"use strict";var r=n(7304),a=n(9285);function i(e){e.register(r),e.register(a),function(e){var t=/(?:\b[a-zA-Z]\w*|[|\\[\]])+/.source;e.languages.phpdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp("(@(?:global|param|property(?:-read|-write)?|var)\\s+(?:"+t+"\\s+)?)\\$\\w+"),lookbehind:!0}}),e.languages.insertBefore("phpdoc","keyword",{"class-name":[{pattern:RegExp("(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\s+)"+t),lookbehind:!0,inside:{keyword:/\b(?:array|bool|boolean|callback|double|false|float|int|integer|mixed|null|object|resource|self|string|true|void)\b/,punctuation:/[|\\[\]()]/}}]}),e.languages.javadoclike.addSupport("php",e.languages.phpdoc)}(e)}e.exports=i,i.displayName="phpdoc",i.aliases=[]},7363:function(e,t,n){"use strict";var r=n(7740);function a(e){e.register(r),e.languages.plsql=e.languages.extend("sql",{comment:{pattern:/\/\*[\s\S]*?\*\/|--.*/,greedy:!0},keyword:/\b(?:A|ACCESSIBLE|ADD|AGENT|AGGREGATE|ALL|ALTER|AND|ANY|ARRAY|AS|ASC|AT|ATTRIBUTE|AUTHID|AVG|BEGIN|BETWEEN|BFILE_BASE|BINARY|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BULK|BY|BYTE|C|CALL|CALLING|CASCADE|CASE|CHAR|CHARACTER|CHARSET|CHARSETFORM|CHARSETID|CHAR_BASE|CHECK|CLOB_BASE|CLONE|CLOSE|CLUSTER|CLUSTERS|COLAUTH|COLLECT|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPILED|COMPRESS|CONNECT|CONSTANT|CONSTRUCTOR|CONTEXT|CONTINUE|CONVERT|COUNT|CRASH|CREATE|CREDENTIAL|CURRENT|CURSOR|CUSTOMDATUM|DANGLING|DATA|DATE|DATE_BASE|DAY|DECLARE|DEFAULT|DEFINE|DELETE|DESC|DETERMINISTIC|DIRECTORY|DISTINCT|DOUBLE|DROP|DURATION|ELEMENT|ELSE|ELSIF|EMPTY|END|ESCAPE|EXCEPT|EXCEPTION|EXCEPTIONS|EXCLUSIVE|EXECUTE|EXISTS|EXIT|EXTERNAL|FETCH|FINAL|FIRST|FIXED|FLOAT|FOR|FORALL|FORCE|FROM|FUNCTION|GENERAL|GOTO|GRANT|GROUP|HASH|HAVING|HEAP|HIDDEN|HOUR|IDENTIFIED|IF|IMMEDIATE|IMMUTABLE|IN|INCLUDING|INDEX|INDEXES|INDICATOR|INDICES|INFINITE|INSERT|INSTANTIABLE|INT|INTERFACE|INTERSECT|INTERVAL|INTO|INVALIDATE|IS|ISOLATION|JAVA|LANGUAGE|LARGE|LEADING|LENGTH|LEVEL|LIBRARY|LIKE|LIKE2|LIKE4|LIKEC|LIMIT|LIMITED|LOCAL|LOCK|LONG|LOOP|MAP|MAX|MAXLEN|MEMBER|MERGE|MIN|MINUS|MINUTE|MOD|MODE|MODIFY|MONTH|MULTISET|MUTABLE|NAME|NAN|NATIONAL|NATIVE|NCHAR|NEW|NOCOMPRESS|NOCOPY|NOT|NOWAIT|NULL|NUMBER_BASE|OBJECT|OCICOLL|OCIDATE|OCIDATETIME|OCIDURATION|OCIINTERVAL|OCILOBLOCATOR|OCINUMBER|OCIRAW|OCIREF|OCIREFCURSOR|OCIROWID|OCISTRING|OCITYPE|OF|OLD|ON|ONLY|OPAQUE|OPEN|OPERATOR|OPTION|OR|ORACLE|ORADATA|ORDER|ORGANIZATION|ORLANY|ORLVARY|OTHERS|OUT|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETER|PARAMETERS|PARENT|PARTITION|PASCAL|PERSISTABLE|PIPE|PIPELINED|PLUGGABLE|POLYMORPHIC|PRAGMA|PRECISION|PRIOR|PRIVATE|PROCEDURE|PUBLIC|RAISE|RANGE|RAW|READ|RECORD|REF|REFERENCE|RELIES_ON|REM|REMAINDER|RENAME|RESOURCE|RESULT|RESULT_CACHE|RETURN|RETURNING|REVERSE|REVOKE|ROLLBACK|ROW|SAMPLE|SAVE|SAVEPOINT|SB1|SB2|SB4|SECOND|SEGMENT|SELECT|SELF|SEPARATE|SEQUENCE|SERIALIZABLE|SET|SHARE|SHORT|SIZE|SIZE_T|SOME|SPARSE|SQL|SQLCODE|SQLDATA|SQLNAME|SQLSTATE|STANDARD|START|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUM|SYNONYM|TABAUTH|TABLE|TDO|THE|THEN|TIME|TIMESTAMP|TIMEZONE_ABBR|TIMEZONE_HOUR|TIMEZONE_MINUTE|TIMEZONE_REGION|TO|TRAILING|TRANSACTION|TRANSACTIONAL|TRUSTED|TYPE|UB1|UB2|UB4|UNDER|UNION|UNIQUE|UNPLUG|UNSIGNED|UNTRUSTED|UPDATE|USE|USING|VALIST|VALUE|VALUES|VARIABLE|VARIANCE|VARRAY|VARYING|VIEW|VIEWS|VOID|WHEN|WHERE|WHILE|WITH|WORK|WRAPPED|WRITE|YEAR|ZONE)\b/i,operator:/:=?|=>|[<>^~!]=|\.\.|\|\||\*\*|[-+*/%<>=@]/}),e.languages.insertBefore("plsql","operator",{label:{pattern:/<<\s*\w+\s*>>/,alias:"symbol"}})}e.exports=a,a.displayName="plsql",a.aliases=[]},7953:function(e){"use strict";function t(e){e.languages.powerquery={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},"quoted-identifier":{pattern:/#"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},string:{pattern:/(?:#!)?"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},constant:[/\bDay\.(?:Friday|Monday|Saturday|Sunday|Thursday|Tuesday|Wednesday)\b/,/\bTraceLevel\.(?:Critical|Error|Information|Verbose|Warning)\b/,/\bOccurrence\.(?:All|First|Last)\b/,/\bOrder\.(?:Ascending|Descending)\b/,/\bRoundingMode\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\b/,/\bMissingField\.(?:Error|Ignore|UseNull)\b/,/\bQuoteStyle\.(?:Csv|None)\b/,/\bJoinKind\.(?:FullOuter|Inner|LeftAnti|LeftOuter|RightAnti|RightOuter)\b/,/\bGroupKind\.(?:Global|Local)\b/,/\bExtraValues\.(?:Error|Ignore|List)\b/,/\bJoinAlgorithm\.(?:Dynamic|LeftHash|LeftIndex|PairwiseHash|RightHash|RightIndex|SortMerge)\b/,/\bJoinSide\.(?:Left|Right)\b/,/\bPrecision\.(?:Decimal|Double)\b/,/\bRelativePosition\.From(?:End|Start)\b/,/\bTextEncoding\.(?:Ascii|BigEndianUnicode|Unicode|Utf16|Utf8|Windows)\b/,/\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Function|Int16|Int32|Int64|Int8|List|Logical|None|Number|Record|Table|Text|Time)\.Type\b/,/\bnull\b/],boolean:/\b(?:false|true)\b/,keyword:/\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\b/,function:{pattern:/(^|[^#\w.])[a-z_][\w.]*(?=\s*\()/i,lookbehind:!0},"data-type":{pattern:/\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time)\b/,alias:"class-name"},number:{pattern:/\b0x[\da-f]+\b|(?:[+-]?(?:\b\d+\.)?\b\d+|[+-]\.\d+|(^|[^.])\B\.\d+)(?:e[+-]?\d+)?\b/i,lookbehind:!0},operator:/[-+*\/&?@^]|<(?:=>?|>)?|>=?|=>?|\.\.\.?/,punctuation:/[,;\[\](){}]/},e.languages.pq=e.languages.powerquery,e.languages.mscript=e.languages.powerquery}e.exports=t,t.displayName="powerquery",t.aliases=[]},4986:function(e){"use strict";function t(e){!function(e){var t=e.languages.powershell={comment:[{pattern:/(^|[^`])<#[\s\S]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/"(?:`[\s\S]|[^`"])*"/,greedy:!0,inside:null},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\[[a-z](?:\[(?:\[[^\]]*\]|[^\[\]])*\]|[^\[\]])*\]/i,boolean:/\$(?:false|true)\b/i,variable:/\$\w+\b/,function:[/\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i,/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(^|\W)(?:!|-(?:b?(?:and|x?or)|as|(?:Not)?(?:Contains|In|Like|Match)|eq|ge|gt|is(?:Not)?|Join|le|lt|ne|not|Replace|sh[lr])\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/};t.string[0].inside={function:{pattern:/(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/,lookbehind:!0,inside:t},boolean:t.boolean,variable:t.variable}}(e)}e.exports=t,t.displayName="powershell",t.aliases=[]},4970:function(e){"use strict";function t(e){e.languages.processing=e.languages.extend("clike",{keyword:/\b(?:break|case|catch|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,function:/\b\w+(?=\s*\()/,operator:/<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/}),e.languages.insertBefore("processing","number",{constant:/\b(?!XML\b)[A-Z][A-Z\d_]+\b/,type:{pattern:/\b(?:boolean|byte|char|color|double|float|int|[A-Z]\w*)\b/,alias:"class-name"}})}e.exports=t,t.displayName="processing",t.aliases=[]},5725:function(e){"use strict";function t(e){e.languages.prolog={comment:{pattern:/\/\*[\s\S]*?\*\/|%.*/,greedy:!0},string:{pattern:/(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1(?!\1)/,greedy:!0},builtin:/\b(?:fx|fy|xf[xy]?|yfx?)\b/,function:/\b[a-z]\w*(?:(?=\()|\/\d+)/,number:/\b\d+(?:\.\d*)?/,operator:/[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,punctuation:/[(){}\[\],]/}}e.exports=t,t.displayName="prolog",t.aliases=[]},7415:function(e){"use strict";function t(e){!function(e){var t=["on","ignoring","group_right","group_left","by","without"],n=["sum","min","max","avg","group","stddev","stdvar","count","count_values","bottomk","topk","quantile"].concat(t,["offset"]);e.languages.promql={comment:{pattern:/(^[ \t]*)#.*/m,lookbehind:!0},"vector-match":{pattern:new RegExp("((?:"+t.join("|")+")\\s*)\\([^)]*\\)"),lookbehind:!0,inside:{"label-key":{pattern:/\b[^,]+\b/,alias:"attr-name"},punctuation:/[(),]/}},"context-labels":{pattern:/\{[^{}]*\}/,inside:{"label-key":{pattern:/\b[a-z_]\w*(?=\s*(?:=|![=~]))/,alias:"attr-name"},"label-value":{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0,alias:"attr-value"},punctuation:/\{|\}|=~?|![=~]|,/}},"context-range":[{pattern:/\[[\w\s:]+\]/,inside:{punctuation:/\[|\]|:/,"range-duration":{pattern:/\b(?:\d+(?:[smhdwy]|ms))+\b/i,alias:"number"}}},{pattern:/(\boffset\s+)\w+/,lookbehind:!0,inside:{"range-duration":{pattern:/\b(?:\d+(?:[smhdwy]|ms))+\b/i,alias:"number"}}}],keyword:new RegExp("\\b(?:"+n.join("|")+")\\b","i"),function:/\b[a-z_]\w*(?=\s*\()/i,number:/[-+]?(?:(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[-+]?\d+)?\b|\b(?:0x[0-9a-f]+|nan|inf)\b)/i,operator:/[\^*/%+-]|==|!=|<=|<|>=|>|\b(?:and|or|unless)\b/i,punctuation:/[{};()`,.[\]]/}}(e)}e.exports=t,t.displayName="promql",t.aliases=[]},9164:function(e){"use strict";function t(e){e.languages.properties={comment:/^[ \t]*[#!].*$/m,"attr-value":{pattern:/(^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+(?: *[=:] *(?! )| ))(?:\\(?:\r\n|[\s\S])|[^\\\r\n])+/m,lookbehind:!0},"attr-name":/^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+(?= *[=:]| )/m,punctuation:/[=:]/}}e.exports=t,t.displayName="properties",t.aliases=[]},4973:function(e){"use strict";function t(e){!function(e){var t=/\b(?:bool|bytes|double|s?fixed(?:32|64)|float|[su]?int(?:32|64)|string)\b/;e.languages.protobuf=e.languages.extend("clike",{"class-name":[{pattern:/(\b(?:enum|extend|message|service)\s+)[A-Za-z_]\w*(?=\s*\{)/,lookbehind:!0},{pattern:/(\b(?:rpc\s+\w+|returns)\s*\(\s*(?:stream\s+)?)\.?[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*(?=\s*\))/,lookbehind:!0}],keyword:/\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\s+\w)|service|stream|syntax|to)\b(?!\s*=\s*\d)/,function:/\b[a-z_]\w*(?=\s*\()/i}),e.languages.insertBefore("protobuf","operator",{map:{pattern:/\bmap<\s*[\w.]+\s*,\s*[\w.]+\s*>(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/[<>.,]/,builtin:t}},builtin:t,"positional-class-name":{pattern:/(?:\b|\B\.)[a-z_]\w*(?:\.[a-z_]\w*)*(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/\./}},annotation:{pattern:/(\[\s*)[a-z_]\w*(?=\s*=)/i,lookbehind:!0}})}(e)}e.exports=t,t.displayName="protobuf",t.aliases=[]},1344:function(e){"use strict";function t(e){e.languages.psl={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0,inside:{symbol:/\\[ntrbA-Z"\\]/}},"heredoc-string":{pattern:/<<<([a-zA-Z_]\w*)[\r\n](?:.*[\r\n])*?\1\b/,alias:"string",greedy:!0},keyword:/\b(?:__multi|__single|case|default|do|else|elsif|exit|export|for|foreach|function|if|last|line|local|next|requires|return|switch|until|while|word)\b/,constant:/\b(?:ALARM|CHART_ADD_GRAPH|CHART_DELETE_GRAPH|CHART_DESTROY|CHART_LOAD|CHART_PRINT|EOF|OFFLINE|OK|PSL_PROF_LOG|R_CHECK_HORIZ|R_CHECK_VERT|R_CLICKER|R_COLUMN|R_FRAME|R_ICON|R_LABEL|R_LABEL_CENTER|R_LIST_MULTIPLE|R_LIST_MULTIPLE_ND|R_LIST_SINGLE|R_LIST_SINGLE_ND|R_MENU|R_POPUP|R_POPUP_SCROLLED|R_RADIO_HORIZ|R_RADIO_VERT|R_ROW|R_SCALE_HORIZ|R_SCALE_VERT|R_SEP_HORIZ|R_SEP_VERT|R_SPINNER|R_TEXT_FIELD|R_TEXT_FIELD_LABEL|R_TOGGLE|TRIM_LEADING|TRIM_LEADING_AND_TRAILING|TRIM_REDUNDANT|TRIM_TRAILING|VOID|WARN)\b/,boolean:/\b(?:FALSE|False|NO|No|TRUE|True|YES|Yes|false|no|true|yes)\b/,variable:/\b(?:PslDebug|errno|exit_status)\b/,builtin:{pattern:/\b(?:PslExecute|PslFunctionCall|PslFunctionExists|PslSetOptions|_snmp_debug|acos|add_diary|annotate|annotate_get|ascii_to_ebcdic|asctime|asin|atan|atexit|batch_set|blackout|cat|ceil|chan_exists|change_state|close|code_cvt|cond_signal|cond_wait|console_type|convert_base|convert_date|convert_locale_date|cos|cosh|create|date|dcget_text|destroy|destroy_lock|dget_text|difference|dump_hist|ebcdic_to_ascii|encrypt|event_archive|event_catalog_get|event_check|event_query|event_range_manage|event_range_query|event_report|event_schedule|event_trigger|event_trigger2|execute|exists|exp|fabs|file|floor|fmod|fopen|fseek|ftell|full_discovery|get|get_chan_info|get_ranges|get_text|get_vars|getenv|gethostinfo|getpid|getpname|grep|history|history_get_retention|in_transition|index|int|internal|intersection|is_var|isnumber|join|kill|length|lines|lock|lock_info|log|log10|loge|matchline|msg_check|msg_get_format|msg_get_severity|msg_printf|msg_sprintf|ntharg|nthargf|nthline|nthlinef|num_bytes|num_consoles|pconfig|popen|poplines|pow|print|printf|proc_exists|process|random|read|readln|refresh_parameters|remote_check|remote_close|remote_event_query|remote_event_trigger|remote_file_send|remote_open|remove|replace|rindex|sec_check_priv|sec_store_get|sec_store_set|set|set_alarm_ranges|set_locale|share|sin|sinh|sleep|snmp_agent_config|snmp_agent_start|snmp_agent_stop|snmp_close|snmp_config|snmp_get|snmp_get_next|snmp_h_get|snmp_h_get_next|snmp_h_set|snmp_open|snmp_set|snmp_trap_ignore|snmp_trap_listen|snmp_trap_raise_std_trap|snmp_trap_receive|snmp_trap_register_im|snmp_trap_send|snmp_walk|sopen|sort|splitline|sprintf|sqrt|srandom|str_repeat|strcasecmp|subset|substr|system|tail|tan|tanh|text_domain|time|tmpnam|tolower|toupper|trace_psl_process|trim|union|unique|unlock|unset|va_arg|va_start|write)\b/,alias:"builtin-function"},"foreach-variable":{pattern:/(\bforeach\s+(?:(?:\w+\b|"(?:\\.|[^\\"])*")\s+){0,2})[_a-zA-Z]\w*(?=\s*\()/,lookbehind:!0,greedy:!0},function:/\b[_a-z]\w*\b(?=\s*\()/i,number:/\b(?:0x[0-9a-f]+|\d+(?:\.\d+)?)\b/i,operator:/--|\+\+|&&=?|\|\|=?|<<=?|>>=?|[=!]~|[-+*/%&|^!=<>]=?|\.|[:?]/,punctuation:/[(){}\[\];,]/}}e.exports=t,t.displayName="psl",t.aliases=[]},9862:function(e){"use strict";function t(e){!function(e){e.languages.pug={comment:{pattern:/(^([\t ]*))\/\/.*(?:(?:\r?\n|\r)\2[\t ].+)*/m,lookbehind:!0},"multiline-script":{pattern:/(^([\t ]*)script\b.*\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:e.languages.javascript},filter:{pattern:/(^([\t ]*)):.+(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},text:/\S[\s\S]*/}},"multiline-plain-text":{pattern:/(^([\t ]*)[\w\-#.]+\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0},markup:{pattern:/(^[\t ]*)<.+/m,lookbehind:!0,inside:e.languages.markup},doctype:{pattern:/((?:^|\n)[\t ]*)doctype(?: .+)?/,lookbehind:!0},"flow-control":{pattern:/(^[\t ]*)(?:case|default|each|else|if|unless|when|while)\b(?: .+)?/m,lookbehind:!0,inside:{each:{pattern:/^each .+? in\b/,inside:{keyword:/\b(?:each|in)\b/,punctuation:/,/}},branch:{pattern:/^(?:case|default|else|if|unless|when|while)\b/,alias:"keyword"},rest:e.languages.javascript}},keyword:{pattern:/(^[\t ]*)(?:append|block|extends|include|prepend)\b.+/m,lookbehind:!0},mixin:[{pattern:/(^[\t ]*)mixin .+/m,lookbehind:!0,inside:{keyword:/^mixin/,function:/\w+(?=\s*\(|\s*$)/,punctuation:/[(),.]/}},{pattern:/(^[\t ]*)\+.+/m,lookbehind:!0,inside:{name:{pattern:/^\+\w+/,alias:"function"},rest:e.languages.javascript}}],script:{pattern:/(^[\t ]*script(?:(?:&[^(]+)?\([^)]+\))*[\t ]).+/m,lookbehind:!0,inside:e.languages.javascript},"plain-text":{pattern:/(^[\t ]*(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?[\t ]).+/m,lookbehind:!0},tag:{pattern:/(^[\t ]*)(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?:?/m,lookbehind:!0,inside:{attributes:[{pattern:/&[^(]+\([^)]+\)/,inside:e.languages.javascript},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*(?!\s))(?:\{[^}]*\}|[^,)\r\n]+)/,lookbehind:!0,inside:e.languages.javascript},"attr-name":/[\w-]+(?=\s*!?=|\s*[,)])/,punctuation:/[!=(),]+/}}],punctuation:/:/,"attr-id":/#[\w\-]+/,"attr-class":/\.[\w\-]+/}},code:[{pattern:/(^[\t ]*(?:-|!?=)).+/m,lookbehind:!0,inside:e.languages.javascript}],punctuation:/[.\-!=|]+/};for(var t=/(^([\t ]*)):<filter_name>(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/.source,n=[{filter:"atpl",language:"twig"},{filter:"coffee",language:"coffeescript"},"ejs","handlebars","less","livescript","markdown",{filter:"sass",language:"scss"},"stylus"],r={},a=0,i=n.length;a<i;a++){var o=n[a];o="string"===typeof o?{filter:o,language:o}:o,e.languages[o.language]&&(r["filter-"+o.filter]={pattern:RegExp(t.replace("<filter_name>",(function(){return o.filter})),"m"),lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},text:{pattern:/\S[\s\S]*/,alias:[o.language,"language-"+o.language],inside:e.languages[o.language]}}})}e.languages.insertBefore("pug","filter",r)}(e)}e.exports=t,t.displayName="pug",t.aliases=[]},354:function(e){"use strict";function t(e){!function(e){e.languages.puppet={heredoc:[{pattern:/(@\("([^"\r\n\/):]+)"(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,lookbehind:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/(@\(([^"\r\n\/):]+)(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,lookbehind:!0,greedy:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/@\("?(?:[^"\r\n\/):]+)"?(?:\/[nrts$uL]*)?\)/,alias:"string",inside:{punctuation:{pattern:/(\().+?(?=\))/,lookbehind:!0}}}],"multiline-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,greedy:!0,alias:"comment"},regex:{pattern:/((?:\bnode\s+|[~=\(\[\{,]\s*|[=+]>\s*|^\s*))\/(?:[^\/\\]|\\[\s\S])+\/(?:[imx]+\b|\B)/,lookbehind:!0,greedy:!0,inside:{"extended-regex":{pattern:/^\/(?:[^\/\\]|\\[\s\S])+\/[im]*x[im]*$/,inside:{comment:/#.*/}}}},comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},string:{pattern:/(["'])(?:\$\{(?:[^'"}]|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}|\$(?!\{)|(?!\1)[^\\$]|\\[\s\S])*\1/,greedy:!0,inside:{"double-quoted":{pattern:/^"[\s\S]*"$/,inside:{}}}},variable:{pattern:/\$(?:::)?\w+(?:::\w+)*/,inside:{punctuation:/::/}},"attr-name":/(?:\b\w+|\*)(?=\s*=>)/,function:[{pattern:/(\.)(?!\d)\w+/,lookbehind:!0},/\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\b|\b(?!\d)\w+(?=\()/],number:/\b(?:0x[a-f\d]+|\d+(?:\.\d+)?(?:e-?\d+)?)\b/i,boolean:/\b(?:false|true)\b/,keyword:/\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\b/,datatype:{pattern:/\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\b/,alias:"symbol"},operator:/=[=~>]?|![=~]?|<(?:<\|?|[=~|-])?|>[>=]?|->?|~>|\|>?>?|[*\/%+?]|\b(?:and|in|or)\b/,punctuation:/[\[\]{}().,;]|:+/};var t=[{pattern:/(^|[^\\])\$\{(?:[^'"{}]|\{[^}]*\}|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}/,lookbehind:!0,inside:{"short-variable":{pattern:/(^\$\{)(?!\w+\()(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}},delimiter:{pattern:/^\$/,alias:"variable"},rest:e.languages.puppet}},{pattern:/(^|[^\\])\$(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}}];e.languages.puppet.heredoc[0].inside.interpolation=t,e.languages.puppet.string.inside["double-quoted"].inside.interpolation=t}(e)}e.exports=t,t.displayName="puppet",t.aliases=[]},883:function(e){"use strict";function t(e){!function(e){e.languages.pure={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0},/#!.+/],"inline-lang":{pattern:/%<[\s\S]+?%>/,greedy:!0,inside:{lang:{pattern:/(^%< *)-\*-.+?-\*-/,lookbehind:!0,alias:"comment"},delimiter:{pattern:/^%<.*|%>$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},number:{pattern:/((?:\.\.)?)(?:\b(?:inf|nan)\b|\b0x[\da-f]+|(?:\b(?:0b)?\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?L?)/i,lookbehind:!0},keyword:/\b(?:NULL|ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\b/,function:/\b(?:abs|add_(?:addr|constdef|(?:fundef|interface|macdef|typedef)(?:_at)?|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_c?string(?:_pointer)?|byte_(?:matrix|pointer)|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|sentry|short|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\b/,special:{pattern:/\b__[a-z]+__\b/i,alias:"builtin"},operator:/(?:[!"#$%&'*+,\-.\/:<=>?@\\^`|~\u00a1-\u00bf\u00d7-\u00f7\u20d0-\u2bff]|\b_+\b)+|\b(?:and|div|mod|not|or)\b/,punctuation:/[(){}\[\];,|]/};var t=/%< *-\*- *<lang>\d* *-\*-[\s\S]+?%>/.source;["c",{lang:"c++",alias:"cpp"},"fortran"].forEach((function(n){var r=n;if("string"!==typeof n&&(r=n.alias,n=n.lang),e.languages[r]){var a={};a["inline-lang-"+r]={pattern:RegExp(t.replace("<lang>",n.replace(/([.+*?\/\\(){}\[\]])/g,"\\$1")),"i"),inside:e.util.clone(e.languages.pure["inline-lang"].inside)},a["inline-lang-"+r].inside.rest=e.util.clone(e.languages[r]),e.languages.insertBefore("pure","inline-lang",a)}})),e.languages.c&&(e.languages.pure["inline-lang"].inside.rest=e.util.clone(e.languages.c))}(e)}e.exports=t,t.displayName="pure",t.aliases=[]},3983:function(e){"use strict";function t(e){e.languages.purebasic=e.languages.extend("clike",{comment:/;.*/,keyword:/\b(?:align|and|as|break|calldebugger|case|compilercase|compilerdefault|compilerelse|compilerelseif|compilerendif|compilerendselect|compilererror|compilerif|compilerselect|continue|data|datasection|debug|debuglevel|declare|declarec|declarecdll|declaredll|declaremodule|default|define|dim|disableasm|disabledebugger|disableexplicit|else|elseif|enableasm|enabledebugger|enableexplicit|end|enddatasection|enddeclaremodule|endenumeration|endif|endimport|endinterface|endmacro|endmodule|endprocedure|endselect|endstructure|endstructureunion|endwith|enumeration|extends|fakereturn|for|foreach|forever|global|gosub|goto|if|import|importc|includebinary|includefile|includepath|interface|macro|module|newlist|newmap|next|not|or|procedure|procedurec|procedurecdll|proceduredll|procedurereturn|protected|prototype|prototypec|read|redim|repeat|restore|return|runtime|select|shared|static|step|structure|structureunion|swap|threaded|to|until|wend|while|with|xincludefile|xor)\b/i,function:/\b\w+(?:\.\w+)?\s*(?=\()/,number:/(?:\$[\da-f]+|\b-?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?)\b/i,operator:/(?:@\*?|\?|\*)\w+|-[>-]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|?\||[~^%?*/@]/}),e.languages.insertBefore("purebasic","keyword",{tag:/#\w+\$?/,asm:{pattern:/(^[\t ]*)!.*/m,lookbehind:!0,alias:"tag",inside:{comment:/;.*/,string:{pattern:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"label-reference-anonymous":{pattern:/(!\s*j[a-z]+\s+)@[fb]/i,lookbehind:!0,alias:"fasm-label"},"label-reference-addressed":{pattern:/(!\s*j[a-z]+\s+)[A-Z._?$@][\w.?$@~#]*/i,lookbehind:!0,alias:"fasm-label"},keyword:[/\b(?:extern|global)\b[^;\r\n]*/i,/\b(?:CPU|DEFAULT|FLOAT)\b.*/],function:{pattern:/^([\t ]*!\s*)[\da-z]+(?=\s|$)/im,lookbehind:!0},"function-inline":{pattern:/(:\s*)[\da-z]+(?=\s)/i,lookbehind:!0,alias:"function"},label:{pattern:/^([\t ]*!\s*)[A-Za-z._?$@][\w.?$@~#]*(?=:)/m,lookbehind:!0,alias:"fasm-label"},register:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s|mm\d+)\b/i,number:/(?:\b|-|(?=\$))(?:0[hx](?:[\da-f]*\.)?[\da-f]+(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|(?:\d+(?:\.\d+)?|\.\d+)(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-/%<>=&|$!,.:]/}}}),delete e.languages.purebasic["class-name"],delete e.languages.purebasic.boolean,e.languages.pbfasm=e.languages.purebasic}e.exports=t,t.displayName="purebasic",t.aliases=[]},2935:function(e,t,n){"use strict";var r=n(9233);function a(e){e.register(r),e.languages.purescript=e.languages.extend("haskell",{keyword:/\b(?:ado|case|class|data|derive|do|else|forall|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b|\u2200/,"import-statement":{pattern:/(^[\t ]*)import\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*(?:\s+as\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|hiding|import)\b/,punctuation:/\./}},builtin:/\b(?:absurd|add|ap|append|apply|between|bind|bottom|clamp|compare|comparing|compose|conj|const|degree|discard|disj|div|eq|flap|flip|gcd|identity|ifM|join|lcm|liftA1|liftM1|map|max|mempty|min|mod|mul|negate|not|notEq|one|otherwise|recip|show|sub|top|unit|unless|unlessM|void|when|whenM|zero)\b/,operator:[e.languages.haskell.operator[0],e.languages.haskell.operator[2],/[\xa2-\xa6\xa8\xa9\xac\xae-\xb1\xb4\xb8\xd7\xf7\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed\u02ef-\u02ff\u0375\u0384\u0385\u03f6\u0482\u058d-\u058f\u0606-\u0608\u060b\u060e\u060f\u06de\u06e9\u06fd\u06fe\u07f6\u07fe\u07ff\u09f2\u09f3\u09fa\u09fb\u0af1\u0b70\u0bf3-\u0bfa\u0c7f\u0d4f\u0d79\u0e3f\u0f01-\u0f03\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce\u0fcf\u0fd5-\u0fd8\u109e\u109f\u1390-\u1399\u166d\u17db\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd\u1ffe\u2044\u2052\u207a-\u207c\u208a-\u208c\u20a0-\u20bf\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211e-\u2123\u2125\u2127\u2129\u212e\u213a\u213b\u2140-\u2144\u214a-\u214d\u214f\u218a\u218b\u2190-\u2307\u230c-\u2328\u232b-\u2426\u2440-\u244a\u249c-\u24e9\u2500-\u2767\u2794-\u27c4\u27c7-\u27e5\u27f0-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2b73\u2b76-\u2b95\u2b97-\u2bff\u2ce5-\u2cea\u2e50\u2e51\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3004\u3012\u3013\u3020\u3036\u3037\u303e\u303f\u309b\u309c\u3190\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3247\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua700-\ua716\ua720\ua721\ua789\ua78a\ua828-\ua82b\ua836-\ua839\uaa77-\uaa79\uab5b\uab6a\uab6b\ufb29\ufbb2-\ufbc1\ufdfc\ufdfd\ufe62\ufe64-\ufe66\ufe69\uff04\uff0b\uff1c-\uff1e\uff3e\uff40\uff5c\uff5e\uffe0-\uffe6\uffe8-\uffee\ufffc\ufffd]/]}),e.languages.purs=e.languages.purescript}e.exports=a,a.displayName="purescript",a.aliases=["purs"]},5888:function(e){"use strict";function t(e){e.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},e.languages.python["string-interpolation"].inside.interpolation.inside.rest=e.languages.python,e.languages.py=e.languages.python}e.exports=t,t.displayName="python",t.aliases=["py"]},9596:function(e){"use strict";function t(e){e.languages.q={string:/"(?:\\.|[^"\\\r\n])*"/,comment:[{pattern:/([\t )\]}])\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|\r?\n|\r)\/[\t ]*(?:(?:\r?\n|\r)(?:.*(?:\r?\n|\r(?!\n)))*?(?:\\(?=[\t ]*(?:\r?\n|\r))|$)|\S.*)/,lookbehind:!0,greedy:!0},{pattern:/^\\[\t ]*(?:\r?\n|\r)[\s\S]+/m,greedy:!0},{pattern:/^#!.+/m,greedy:!0}],symbol:/`(?::\S+|[\w.]*)/,datetime:{pattern:/0N[mdzuvt]|0W[dtz]|\d{4}\.\d\d(?:m|\.\d\d(?:T(?:\d\d(?::\d\d(?::\d\d(?:[.:]\d\d\d)?)?)?)?)?[dz]?)|\d\d:\d\d(?::\d\d(?:[.:]\d\d\d)?)?[uvt]?/,alias:"number"},number:/\b(?![01]:)(?:0N[hje]?|0W[hj]?|0[wn]|0x[\da-fA-F]+|\d+(?:\.\d*)?(?:e[+-]?\d+)?[hjfeb]?)/,keyword:/\\\w+\b|\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\b/,adverb:{pattern:/['\/\\]:?|\beach\b/,alias:"function"},verb:{pattern:/(?:\B\.\B|\b[01]:|<[=>]?|>=?|[:+\-*%,!?~=|$&#@^]):?|\b_\b:?/,alias:"operator"},punctuation:/[(){}\[\];.]/}}e.exports=t,t.displayName="q",t.aliases=[]},6395:function(e){"use strict";function t(e){!function(e){for(var t=/"(?:\\.|[^\\"\r\n])*"|'(?:\\.|[^\\'\r\n])*'/.source,n=/\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))*\*\//.source,r=/(?:[^\\()[\]{}"'/]|<string>|\/(?![*/])|<comment>|\(<expr>*\)|\[<expr>*\]|\{<expr>*\}|\\[\s\S])/.source.replace(/<string>/g,(function(){return t})).replace(/<comment>/g,(function(){return n})),a=0;a<2;a++)r=r.replace(/<expr>/g,(function(){return r}));r=r.replace(/<expr>/g,"[^\\s\\S]"),e.languages.qml={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},"javascript-function":{pattern:RegExp(/((?:^|;)[ \t]*)function\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*\(<js>*\)\s*\{<js>*\}/.source.replace(/<js>/g,(function(){return r})),"m"),lookbehind:!0,greedy:!0,alias:"language-javascript",inside:e.languages.javascript},"class-name":{pattern:/((?:^|[:;])[ \t]*)(?!\d)\w+(?=[ \t]*\{|[ \t]+on\b)/m,lookbehind:!0},property:[{pattern:/((?:^|[;{])[ \t]*)(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m,lookbehind:!0},{pattern:/((?:^|[;{])[ \t]*)property[ \t]+(?!\d)\w+(?:\.\w+)*[ \t]+(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m,lookbehind:!0,inside:{keyword:/^property/,property:/\w+(?:\.\w+)*/}}],"javascript-expression":{pattern:RegExp(/(:[ \t]*)(?![\s;}[])(?:(?!$|[;}])<js>)+/.source.replace(/<js>/g,(function(){return r})),"m"),lookbehind:!0,greedy:!0,alias:"language-javascript",inside:e.languages.javascript},string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},keyword:/\b(?:as|import|on)\b/,punctuation:/[{}[\]:;,]/}}(e)}e.exports=t,t.displayName="qml",t.aliases=[]},7679:function(e){"use strict";function t(e){e.languages.qore=e.languages.extend("clike",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:\/\/|#).*)/,lookbehind:!0},string:{pattern:/("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},keyword:/\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:bool|date|float|int|list|number|string)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\b/,boolean:/\b(?:false|true)\b/i,function:/\$?\b(?!\d)\w+(?=\()/,number:/\b(?:0b[01]+|0x(?:[\da-f]*\.)?[\da-fp\-]+|(?:\d+(?:\.\d+)?|\.\d+)(?:e\d+)?[df]|(?:\d+(?:\.\d+)?|\.\d+))\b/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\|[|=]?|[*\/%^]=?|[~?])/,lookbehind:!0},variable:/\$(?!\d)\w+\b/})}e.exports=t,t.displayName="qore",t.aliases=[]},2406:function(e){"use strict";function t(e){!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,(function(e,n){return"(?:"+t[+n]+")"}))}function n(e,n,r){return RegExp(t(e,n),r||"")}var r=RegExp("\\b(?:"+("Adj BigInt Bool Ctl Double false Int One Pauli PauliI PauliX PauliY PauliZ Qubit Range Result String true Unit Zero"+" "+"Adjoint adjoint apply as auto body borrow borrowing Controlled controlled distribute elif else fail fixup for function if in internal intrinsic invert is let mutable namespace new newtype open operation repeat return self set until use using while within").trim().replace(/ /g,"|")+")\\b"),a=t(/<<0>>(?:\s*\.\s*<<0>>)*/.source,[/\b[A-Za-z_]\w*\b/.source]),i={keyword:r,punctuation:/[<>()?,.:[\]]/},o=/"(?:\\.|[^\\"])*"/.source;e.languages.qsharp=e.languages.extend("clike",{comment:/\/\/.*/,string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[o]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:n(/(\b(?:as|open)\s+)<<0>>(?=\s*(?:;|as\b))/.source,[a]),lookbehind:!0,inside:i},{pattern:n(/(\bnamespace\s+)<<0>>(?=\s*\{)/.source,[a]),lookbehind:!0,inside:i}],keyword:r,number:/(?:\b0(?:x[\da-f]+|b[01]+|o[0-7]+)|(?:\B\.\d+|\b\d+(?:\.\d*)?)(?:e[-+]?\d+)?)l?\b/i,operator:/\band=|\bor=|\band\b|\bnot\b|\bor\b|<[-=]|[-=]>|>>>=?|<<<=?|\^\^\^=?|\|\|\|=?|&&&=?|w\/=?|~~~|[*\/+\-^=!%]=?/,punctuation:/::|[{}[\];(),.:]/}),e.languages.insertBefore("qsharp","number",{range:{pattern:/\.\./,alias:"operator"}});var s=function(e,t){for(var n=0;n<t;n++)e=e.replace(/<<self>>/g,(function(){return"(?:"+e+")"}));return e.replace(/<<self>>/g,"[^\\s\\S]")}(t(/\{(?:[^"{}]|<<0>>|<<self>>)*\}/.source,[o]),2);e.languages.insertBefore("qsharp","string",{"interpolation-string":{pattern:n(/\$"(?:\\.|<<0>>|[^\\"{])*"/.source,[s]),greedy:!0,inside:{interpolation:{pattern:n(/((?:^|[^\\])(?:\\\\)*)<<0>>/.source,[s]),lookbehind:!0,inside:{punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-qsharp",inside:e.languages.qsharp}}},string:/[\s\S]+/}}})}(e),e.languages.qs=e.languages.qsharp}e.exports=t,t.displayName="qsharp",t.aliases=["qs"]},2014:function(e){"use strict";function t(e){e.languages.r={comment:/#.*/,string:{pattern:/(['"])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"percent-operator":{pattern:/%[^%\s]*%/,alias:"operator"},boolean:/\b(?:FALSE|TRUE)\b/,ellipsis:/\.\.(?:\.|\d+)/,number:[/\b(?:Inf|NaN)\b/,/(?:\b0x[\dA-Fa-f]+(?:\.\d*)?|\b\d+(?:\.\d*)?|\B\.\d+)(?:[EePp][+-]?\d+)?[iL]?/],keyword:/\b(?:NA|NA_character_|NA_complex_|NA_integer_|NA_real_|NULL|break|else|for|function|if|in|next|repeat|while)\b/,operator:/->?>?|<(?:=|<?-)?|[>=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/,punctuation:/[(){}\[\],;]/}}e.exports=t,t.displayName="r",t.aliases=[]},548:function(e,t,n){"use strict";var r=n(2284);function a(e){e.register(r),e.languages.racket=e.languages.extend("scheme",{"lambda-parameter":{pattern:/([(\[]lambda\s+[(\[])[^()\[\]'\s]+/,lookbehind:!0}}),e.languages.insertBefore("racket","string",{lang:{pattern:/^#lang.+/m,greedy:!0,alias:"keyword"}}),e.languages.rkt=e.languages.racket}e.exports=a,a.displayName="racket",a.aliases=["rkt"]},6023:function(e){"use strict";function t(e){e.languages.reason=e.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),e.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete e.languages.reason.function}e.exports=t,t.displayName="reason",t.aliases=[]},4005:function(e){"use strict";function t(e){!function(e){var t={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,r="(?:[^\\\\-]|"+n.source+")",a=RegExp(r+"-"+r),i={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"};e.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:a,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":t,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:n}},"special-escape":t,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":i}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":i}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}}}(e)}e.exports=t,t.displayName="regex",t.aliases=[]},9982:function(e){"use strict";function t(e){e.languages.rego={comment:/#.*/,property:{pattern:/(^|[^\\.])(?:"(?:\\.|[^\\"\r\n])*"|`[^`]*`|\b[a-z_]\w*\b)(?=\s*:(?!=))/i,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:as|default|else|import|not|null|package|set(?=\s*\()|some|with)\b/,boolean:/\b(?:false|true)\b/,function:{pattern:/\b[a-z_]\w*\b(?:\s*\.\s*\b[a-z_]\w*\b)*(?=\s*\()/i,inside:{namespace:/\b\w+\b(?=\s*\.)/,punctuation:/\./}},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,operator:/[-+*/%|&]|[<>:=]=?|!=|\b_\b/,punctuation:/[,;.\[\]{}()]/}}e.exports=t,t.displayName="rego",t.aliases=[]},4184:function(e){"use strict";function t(e){e.languages.renpy={comment:{pattern:/(^|[^\\])#.+/,lookbehind:!0},string:{pattern:/("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\])*\2|(?:^#?(?:(?:[0-9a-fA-F]){3}|[0-9a-fA-F]{6})$)/m,greedy:!0},function:/\b[a-z_]\w*(?=\()/i,property:/\b(?:Update|UpdateVersion|action|activate_sound|adv_nvl_transition|after_load_transition|align|alpha|alt|anchor|antialias|area|auto|background|bar_invert|bar_resizing|bar_vertical|black_color|bold|bottom_bar|bottom_gutter|bottom_margin|bottom_padding|box_reverse|box_wrap|can_update|caret|child|color|crop|default_afm_enable|default_afm_time|default_fullscreen|default_text_cps|developer|directory_name|drag_handle|drag_joined|drag_name|drag_raise|draggable|dragged|drop_shadow|drop_shadow_color|droppable|dropped|easein|easeout|edgescroll|end_game_transition|end_splash_transition|enter_replay_transition|enter_sound|enter_transition|enter_yesno_transition|executable_name|exit_replay_transition|exit_sound|exit_transition|exit_yesno_transition|fadein|fadeout|first_indent|first_spacing|fit_first|focus|focus_mask|font|foreground|game_main_transition|get_installed_packages|google_play_key|google_play_salt|ground|has_music|has_sound|has_voice|height|help|hinting|hover|hover_background|hover_color|hover_sound|hovered|hyperlink_functions|idle|idle_color|image_style|include_update|insensitive|insensitive_background|insensitive_color|inside|intra_transition|italic|justify|kerning|keyboard_focus|language|layer_clipping|layers|layout|left_bar|left_gutter|left_margin|left_padding|length|line_leading|line_overlap_split|line_spacing|linear|main_game_transition|main_menu_music|maximum|min_width|minimum|minwidth|modal|mouse|mousewheel|name|narrator_menu|newline_indent|nvl_adv_transition|offset|order_reverse|outlines|overlay_functions|pos|position|prefix|radius|range|rest_indent|right_bar|right_gutter|right_margin|right_padding|rotate|rotate_pad|ruby_style|sample_sound|save_directory|say_attribute_transition|screen_height|screen_width|scrollbars|selected_hover|selected_hover_color|selected_idle|selected_idle_color|selected_insensitive|show_side_image|show_two_window|side_spacing|side_xpos|side_ypos|size|size_group|slow_cps|slow_cps_multiplier|spacing|strikethrough|subpixel|text_align|text_style|text_xpos|text_y_fudge|text_ypos|thumb|thumb_offset|thumb_shadow|thumbnail_height|thumbnail_width|time|top_bar|top_gutter|top_margin|top_padding|translations|underline|unscrollable|update|value|version|version_name|version_tuple|vertical|width|window_hide_transition|window_icon|window_left_padding|window_show_transition|window_title|windows_icon|xadjustment|xalign|xanchor|xanchoraround|xaround|xcenter|xfill|xinitial|xmargin|xmaximum|xminimum|xoffset|xofsset|xpadding|xpos|xsize|xzoom|yadjustment|yalign|yanchor|yanchoraround|yaround|ycenter|yfill|yinitial|ymargin|ymaximum|yminimum|yoffset|ypadding|ypos|ysize|ysizexysize|yzoom|zoom|zorder)\b/,tag:/\b(?:bar|block|button|buttoscreenn|drag|draggroup|fixed|frame|grid|[hv]box|hotbar|hotspot|image|imagebutton|imagemap|input|key|label|menu|mm_menu_frame|mousearea|nvl|parallel|screen|self|side|tag|text|textbutton|timer|vbar|viewport|window)\b|\$/,keyword:/\b(?:None|add|adjustment|alignaround|allow|angle|animation|around|as|assert|behind|box_layout|break|build|cache|call|center|changed|child_size|choice|circles|class|clear|clicked|clipping|clockwise|config|contains|continue|corner1|corner2|counterclockwise|def|default|define|del|delay|disabled|disabled_text|dissolve|elif|else|event|except|exclude|exec|expression|fade|finally|for|from|function|global|gm_root|has|hide|id|if|import|in|init|is|jump|knot|lambda|left|less_rounded|mm_root|movie|music|null|on|onlayer|pass|pause|persistent|play|print|python|queue|raise|random|renpy|repeat|return|right|rounded_window|scene|scope|set|show|slow|slow_abortable|slow_done|sound|stop|store|style|style_group|substitute|suffix|theme|transform|transform_anchor|transpose|try|ui|unhovered|updater|use|voice|while|widget|widget_hover|widget_selected|widget_text|yield)\b/,boolean:/\b(?:[Ff]alse|[Tt]rue)\b/,number:/(?:\b(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?)|\B\.\d+)(?:e[+-]?\d+)?j?/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:and|at|not|or|with)\b/,punctuation:/[{}[\];(),.:]/},e.languages.rpy=e.languages.renpy}e.exports=t,t.displayName="renpy",t.aliases=["rpy"]},8228:function(e){"use strict";function t(e){e.languages.rest={table:[{pattern:/(^[\t ]*)(?:\+[=-]+)+\+(?:\r?\n|\r)(?:\1[+|].+[+|](?:\r?\n|\r))+\1(?:\+[=-]+)+\+/m,lookbehind:!0,inside:{punctuation:/\||(?:\+[=-]+)+\+/}},{pattern:/(^[\t ]*)=+ [ =]*=(?:(?:\r?\n|\r)\1.+)+(?:\r?\n|\r)\1=+ [ =]*=(?=(?:\r?\n|\r){2}|\s*$)/m,lookbehind:!0,inside:{punctuation:/[=-]+/}}],"substitution-def":{pattern:/(^[\t ]*\.\. )\|(?:[^|\s](?:[^|]*[^|\s])?)\| [^:]+::/m,lookbehind:!0,inside:{substitution:{pattern:/^\|(?:[^|\s]|[^|\s][^|]*[^|\s])\|/,alias:"attr-value",inside:{punctuation:/^\||\|$/}},directive:{pattern:/( )(?! )[^:]+::/,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}}}},"link-target":[{pattern:/(^[\t ]*\.\. )\[[^\]]+\]/m,lookbehind:!0,alias:"string",inside:{punctuation:/^\[|\]$/}},{pattern:/(^[\t ]*\.\. )_(?:`[^`]+`|(?:[^:\\]|\\.)+):/m,lookbehind:!0,alias:"string",inside:{punctuation:/^_|:$/}}],directive:{pattern:/(^[\t ]*\.\. )[^:]+::/m,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}},comment:{pattern:/(^[\t ]*\.\.)(?:(?: .+)?(?:(?:\r?\n|\r).+)+| .+)(?=(?:\r?\n|\r){2}|$)/m,lookbehind:!0},title:[{pattern:/^(([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+)(?:\r?\n|\r).+(?:\r?\n|\r)\1$/m,inside:{punctuation:/^[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+|[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}},{pattern:/(^|(?:\r?\n|\r){2}).+(?:\r?\n|\r)([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+(?=\r?\n|\r|$)/,lookbehind:!0,inside:{punctuation:/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}}],hr:{pattern:/((?:\r?\n|\r){2})([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2{3,}(?=(?:\r?\n|\r){2})/,lookbehind:!0,alias:"punctuation"},field:{pattern:/(^[\t ]*):[^:\r\n]+:(?= )/m,lookbehind:!0,alias:"attr-name"},"command-line-option":{pattern:/(^[\t ]*)(?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?)*(?=(?:\r?\n|\r)? {2,}\S)/im,lookbehind:!0,alias:"symbol"},"literal-block":{pattern:/::(?:\r?\n|\r){2}([ \t]+)(?![ \t]).+(?:(?:\r?\n|\r)\1.+)*/,inside:{"literal-block-punctuation":{pattern:/^::/,alias:"punctuation"}}},"quoted-literal-block":{pattern:/::(?:\r?\n|\r){2}([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]).*(?:(?:\r?\n|\r)\1.*)*/,inside:{"literal-block-punctuation":{pattern:/^(?:::|([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\1*)/m,alias:"punctuation"}}},"list-bullet":{pattern:/(^[\t ]*)(?:[*+\-\u2022\u2023\u2043]|\(?(?:\d+|[a-z]|[ivxdclm]+)\)|(?:\d+|[a-z]|[ivxdclm]+)\.)(?= )/im,lookbehind:!0,alias:"punctuation"},"doctest-block":{pattern:/(^[\t ]*)>>> .+(?:(?:\r?\n|\r).+)*/m,lookbehind:!0,inside:{punctuation:/^>>>/}},inline:[{pattern:/(^|[\s\-:\/'"<(\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\*\*?|``?|\|)(?!\s)(?:(?!\2).)*\S\2(?=[\s\-.,:;!?\\\/'")\]}]|$))/m,lookbehind:!0,inside:{bold:{pattern:/(^\*\*).+(?=\*\*$)/,lookbehind:!0},italic:{pattern:/(^\*).+(?=\*$)/,lookbehind:!0},"inline-literal":{pattern:/(^``).+(?=``$)/,lookbehind:!0,alias:"symbol"},role:{pattern:/^:[^:]+:|:[^:]+:$/,alias:"function",inside:{punctuation:/^:|:$/}},"interpreted-text":{pattern:/(^`).+(?=`$)/,lookbehind:!0,alias:"attr-value"},substitution:{pattern:/(^\|).+(?=\|$)/,lookbehind:!0,alias:"attr-value"},punctuation:/\*\*?|``?|\|/}}],link:[{pattern:/\[[^\[\]]+\]_(?=[\s\-.,:;!?\\\/'")\]}]|$)/,alias:"string",inside:{punctuation:/^\[|\]_$/}},{pattern:/(?:\b[a-z\d]+(?:[_.:+][a-z\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\s\-.,:;!?\\\/'")\]}]|$)/i,alias:"string",inside:{punctuation:/^_?`|`$|`?_?_$/}}],punctuation:{pattern:/(^[\t ]*)(?:\|(?= |$)|(?:---?|\u2014|\.\.|__)(?= )|\.\.$)/m,lookbehind:!0}}}e.exports=t,t.displayName="rest",t.aliases=[]},7937:function(e){"use strict";function t(e){e.languages.rip={comment:{pattern:/#.*/,greedy:!0},char:{pattern:/\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/,greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},regex:{pattern:/(^|[^/])\/(?!\/)(?:\[[^\n\r\]]*\]|\\.|[^/\\\r\n\[])+\/(?=\s*(?:$|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},keyword:/(?:=>|->)|\b(?:case|catch|class|else|exit|finally|if|raise|return|switch|try)\b/,builtin:/@|\bSystem\b/,boolean:/\b(?:false|true)\b/,date:/\b\d{4}-\d{2}-\d{2}\b/,time:/\b\d{2}:\d{2}:\d{2}\b/,datetime:/\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/,symbol:/:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/,number:/[+-]?\b(?:\d+\.\d+|\d+)\b/,punctuation:/(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/,reference:/[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/}}e.exports=t,t.displayName="rip",t.aliases=[]},5728:function(e){"use strict";function t(e){e.languages.roboconf={comment:/#.*/,keyword:{pattern:/(^|\s)(?:(?:external|import)\b|(?:facet|instance of)(?=[ \t]+[\w-]+[ \t]*\{))/,lookbehind:!0},component:{pattern:/[\w-]+(?=[ \t]*\{)/,alias:"variable"},property:/[\w.-]+(?=[ \t]*:)/,value:{pattern:/(=[ \t]*(?![ \t]))[^,;]+/,lookbehind:!0,alias:"attr-value"},optional:{pattern:/\(optional\)/,alias:"builtin"},wildcard:{pattern:/(\.)\*/,lookbehind:!0,alias:"operator"},punctuation:/[{},.;:=]/}}e.exports=t,t.displayName="roboconf",t.aliases=[]},1528:function(e){"use strict";function t(e){!function(e){var t={pattern:/(^[ \t]*| {2}|\t)#.*/m,lookbehind:!0,greedy:!0},n={pattern:/((?:^|[^\\])(?:\\{2})*)[$@&%]\{(?:[^{}\r\n]|\{[^{}\r\n]*\})*\}/,lookbehind:!0,inside:{punctuation:/^[$@&%]\{|\}$/}};function r(e,r){var a={"section-header":{pattern:/^ ?\*{3}.+?\*{3}/,alias:"keyword"}};for(var i in r)a[i]=r[i];return a.tag={pattern:/([\r\n](?: {2}|\t)[ \t]*)\[[-\w]+\]/,lookbehind:!0,inside:{punctuation:/\[|\]/}},a.variable=n,a.comment=t,{pattern:RegExp(/^ ?\*{3}[ \t]*<name>[ \t]*\*{3}(?:.|[\r\n](?!\*{3}))*/.source.replace(/<name>/g,(function(){return e})),"im"),alias:"section",inside:a}}var a={pattern:/(\[Documentation\](?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,lookbehind:!0,alias:"string"},i={pattern:/([\r\n] ?)(?!#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0,alias:"function",inside:{variable:n}},o={pattern:/([\r\n](?: {2}|\t)[ \t]*)(?!\[|\.{3}|#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0,inside:{variable:n}};e.languages.robotframework={settings:r("Settings",{documentation:{pattern:/([\r\n] ?Documentation(?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,lookbehind:!0,alias:"string"},property:{pattern:/([\r\n] ?)(?!\.{3}|#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0}}),variables:r("Variables"),"test-cases":r("Test Cases",{"test-name":i,documentation:a,property:o}),keywords:r("Keywords",{"keyword-name":i,documentation:a,property:o}),tasks:r("Tasks",{"task-name":i,documentation:a,property:o}),comment:t},e.languages.robot=e.languages.robotframework}(e)}e.exports=t,t.displayName="robotframework",t.aliases=[]},6326:function(e){"use strict";function t(e){!function(e){e.languages.ruby=e.languages.extend("clike",{comment:{pattern:/#.*|^=begin\s[\s\S]*?^=end/m,greedy:!0},"class-name":{pattern:/(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/,operator:/\.{2,3}|&\.|===|<?=>|[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/,punctuation:/[(){}[\].,;]/}),e.languages.insertBefore("ruby","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});var t={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"}}};delete e.languages.ruby.function;var n="(?:"+[/([^a-zA-Z0-9\s{(\[<=])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/\((?:[^()\\]|\\[\s\S]|\((?:[^()\\]|\\[\s\S])*\))*\)/.source,/\{(?:[^{}\\]|\\[\s\S]|\{(?:[^{}\\]|\\[\s\S])*\})*\}/.source,/\[(?:[^\[\]\\]|\\[\s\S]|\[(?:[^\[\]\\]|\\[\s\S])*\])*\]/.source,/<(?:[^<>\\]|\\[\s\S]|<(?:[^<>\\]|\\[\s\S])*>)*>/.source].join("|")+")",r=/(?:"(?:\\.|[^"\\\r\n])*"|(?:\b[a-zA-Z_]\w*|[^\s\0-\x7F]+)[?!]?|\$.)/.source;e.languages.insertBefore("ruby","keyword",{"regex-literal":[{pattern:RegExp(/%r/.source+n+/[egimnosux]{0,6}/.source),greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp(/(^|[^:]):/.source+r),lookbehind:!0,greedy:!0},{pattern:RegExp(/([\r\n{(,][ \t]*)/.source+r+/(?=:(?!:))/.source),lookbehind:!0,greedy:!0}],"method-definition":{pattern:/(\bdef\s+)\w+(?:\s*\.\s*\w+)?/,lookbehind:!0,inside:{function:/\b\w+$/,keyword:/^self\b/,"class-name":/^\w+/,punctuation:/\./}}}),e.languages.insertBefore("ruby","string",{"string-literal":[{pattern:RegExp(/%[qQiIwWs]?/.source+n),greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?/}},interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?'|'$/}},string:/[\s\S]+/}}],"command-literal":[{pattern:RegExp(/%x/.source+n),greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:"string"}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:"string"}}}]}),delete e.languages.ruby.string,e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/,constant:/\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/}),e.languages.rb=e.languages.ruby}(e)}e.exports=t,t.displayName="ruby",t.aliases=["rb"]},771:function(e){"use strict";function t(e){!function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(e)}e.exports=t,t.displayName="rust",t.aliases=[]},4840:function(e){"use strict";function t(e){!function(e){var t=/(?:"(?:""|[^"])*"(?!")|'(?:''|[^'])*'(?!'))/.source,n=/\b(?:\d[\da-f]*x|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,r={pattern:RegExp(t+"[bx]"),alias:"number"},a={pattern:/&[a-z_]\w*/i},i={pattern:/((?:^|\s|=|\())%(?:ABORT|BY|CMS|COPY|DISPLAY|DO|ELSE|END|EVAL|GLOBAL|GO|GOTO|IF|INC|INCLUDE|INDEX|INPUT|KTRIM|LENGTH|LET|LIST|LOCAL|PUT|QKTRIM|QSCAN|QSUBSTR|QSYSFUNC|QUPCASE|RETURN|RUN|SCAN|SUBSTR|SUPERQ|SYMDEL|SYMEXIST|SYMGLOBL|SYMLOCAL|SYSCALL|SYSEVALF|SYSEXEC|SYSFUNC|SYSGET|SYSRPUT|THEN|TO|TSO|UNQUOTE|UNTIL|UPCASE|WHILE|WINDOW)\b/i,lookbehind:!0,alias:"keyword"},o={pattern:/(^|\s)(?:proc\s+\w+|data(?!=)|quit|run)\b/i,alias:"keyword",lookbehind:!0},s=[/\/\*[\s\S]*?\*\//,{pattern:/(^[ \t]*|;\s*)\*[^;]*;/m,lookbehind:!0}],l={pattern:RegExp(t),greedy:!0},c=/[$%@.(){}\[\];,\\]/,u={pattern:/%?\b\w+(?=\()/,alias:"keyword"},d={function:u,"arg-value":{pattern:/(=\s*)[A-Z\.]+/i,lookbehind:!0},operator:/=/,"macro-variable":a,arg:{pattern:/[A-Z]+/i,alias:"keyword"},number:n,"numeric-constant":r,punctuation:c,string:l},p={pattern:/\b(?:format|put)\b=?[\w'$.]+/i,inside:{keyword:/^(?:format|put)(?==)/i,equals:/=/,format:{pattern:/(?:\w|\$\d)+\.\d?/,alias:"number"}}},m={pattern:/\b(?:format|put)\s+[\w']+(?:\s+[$.\w]+)+(?=;)/i,inside:{keyword:/^(?:format|put)/i,format:{pattern:/[\w$]+\.\d?/,alias:"number"}}},g={pattern:/((?:^|\s)=?)(?:catname|checkpoint execute_always|dm|endsas|filename|footnote|%include|libname|%list|lock|missing|options|page|resetline|%run|sasfile|skip|sysecho|title\d?)\b/i,lookbehind:!0,alias:"keyword"},h={pattern:/(^|\s)(?:submit(?:\s+(?:load|norun|parseonly))?|endsubmit)\b/i,lookbehind:!0,alias:"keyword"},f=/aStore|accessControl|aggregation|audio|autotune|bayesianNetClassifier|bioMedImage|boolRule|builtins|cardinality|cdm|clustering|conditionalRandomFields|configuration|copula|countreg|dataDiscovery|dataPreprocess|dataSciencePilot|dataStep|decisionTree|deduplication|deepLearn|deepNeural|deepRnn|ds2|ecm|entityRes|espCluster|explainModel|factmac|fastKnn|fcmpact|fedSql|freqTab|gVarCluster|gam|gleam|graphSemiSupLearn|hiddenMarkovModel|hyperGroup|ica|image|iml|kernalPca|langModel|ldaTopic|loadStreams|mbc|mixed|mlTools|modelPublishing|network|neuralNet|nmf|nonParametricBayes|nonlinear|optNetwork|optimization|panel|pca|percentile|phreg|pls|qkb|qlim|quantreg|recommend|regression|reinforcementLearn|robustPca|ruleMining|sampling|sandwich|sccasl|search(?:Analytics)?|sentimentAnalysis|sequence|session(?:Prop)?|severity|simSystem|simple|smartData|sparkEmbeddedProcess|sparseML|spatialreg|spc|stabilityMonitoring|svDataDescription|svm|table|text(?:Filters|Frequency|Mining|Parse|Rule(?:Develop|Score)|Topic|Util)|timeData|transpose|tsInfo|tsReconcile|uniTimeSeries|varReduce/.source,b={pattern:RegExp(/(^|\s)(?:action\s+)?(?:<act>)\.[a-z]+\b[^;]+/.source.replace(/<act>/g,(function(){return f})),"i"),lookbehind:!0,inside:{keyword:RegExp(/(?:<act>)\.[a-z]+\b/.source.replace(/<act>/g,(function(){return f})),"i"),action:{pattern:/(?:action)/i,alias:"keyword"},comment:s,function:u,"arg-value":d["arg-value"],operator:d.operator,argument:d.arg,number:n,"numeric-constant":r,punctuation:c,string:l}},E={pattern:/((?:^|\s)=?)(?:after|analysis|and|array|barchart|barwidth|begingraph|by|call|cas|cbarline|cfill|class(?:lev)?|close|column|computed?|contains|continue|data(?==)|define|delete|describe|document|do\s+over|do|dol|drop|dul|else|end(?:comp|source)?|entryTitle|eval(?:uate)?|exec(?:ute)?|exit|file(?:name)?|fill(?:attrs)?|flist|fnc|function(?:list)?|global|goto|group(?:by)?|headline|headskip|histogram|if|infile|keep|keylabel|keyword|label|layout|leave|legendlabel|length|libname|loadactionset|merge|midpoints|_?null_|name|noobs|nowd|ods|options|or|otherwise|out(?:put)?|over(?:lay)?|plot|print|put|raise|ranexp|rannor|rbreak|retain|return|select|session|sessref|set|source|statgraph|sum|summarize|table|temp|terminate|then\s+do|then|title\d?|to|var|when|where|xaxisopts|y2axisopts|yaxisopts)\b/i,lookbehind:!0};e.languages.sas={datalines:{pattern:/^([ \t]*)(?:cards|(?:data)?lines);[\s\S]+?^[ \t]*;/im,lookbehind:!0,alias:"string",inside:{keyword:{pattern:/^(?:cards|(?:data)?lines)/i},punctuation:/;/}},"proc-sql":{pattern:/(^proc\s+(?:fed)?sql(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|data|quit|run);|(?![\s\S]))/im,lookbehind:!0,inside:{sql:{pattern:RegExp(/^[ \t]*(?:select|alter\s+table|(?:create|describe|drop)\s+(?:index|table(?:\s+constraints)?|view)|create\s+unique\s+index|insert\s+into|update)(?:<str>|[^;"'])+;/.source.replace(/<str>/g,(function(){return t})),"im"),alias:"language-sql",inside:e.languages.sql},"global-statements":g,"sql-statements":{pattern:/(^|\s)(?:disconnect\s+from|begin|commit|exec(?:ute)?|reset|rollback|validate)\b/i,lookbehind:!0,alias:"keyword"},number:n,"numeric-constant":r,punctuation:c,string:l}},"proc-groovy":{pattern:/(^proc\s+groovy(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|data|quit|run);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:s,groovy:{pattern:RegExp(/(^[ \t]*submit(?:\s+(?:load|norun|parseonly))?)(?:<str>|[^"'])+?(?=endsubmit;)/.source.replace(/<str>/g,(function(){return t})),"im"),lookbehind:!0,alias:"language-groovy",inside:e.languages.groovy},keyword:E,"submit-statement":h,"global-statements":g,number:n,"numeric-constant":r,punctuation:c,string:l}},"proc-lua":{pattern:/(^proc\s+lua(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|data|quit|run);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:s,lua:{pattern:RegExp(/(^[ \t]*submit(?:\s+(?:load|norun|parseonly))?)(?:<str>|[^"'])+?(?=endsubmit;)/.source.replace(/<str>/g,(function(){return t})),"im"),lookbehind:!0,alias:"language-lua",inside:e.languages.lua},keyword:E,"submit-statement":h,"global-statements":g,number:n,"numeric-constant":r,punctuation:c,string:l}},"proc-cas":{pattern:/(^proc\s+cas(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|quit|data);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:s,"statement-var":{pattern:/((?:^|\s)=?)saveresult\s[^;]+/im,lookbehind:!0,inside:{statement:{pattern:/^saveresult\s+\S+/i,inside:{keyword:/^(?:saveresult)/i}},rest:d}},"cas-actions":b,statement:{pattern:/((?:^|\s)=?)(?:default|(?:un)?set|on|output|upload)[^;]+/im,lookbehind:!0,inside:d},step:o,keyword:E,function:u,format:p,altformat:m,"global-statements":g,number:n,"numeric-constant":r,punctuation:c,string:l}},"proc-args":{pattern:RegExp(/(^proc\s+\w+\s+)(?!\s)(?:[^;"']|<str>)+;/.source.replace(/<str>/g,(function(){return t})),"im"),lookbehind:!0,inside:d},"macro-keyword":i,"macro-variable":a,"macro-string-functions":{pattern:/((?:^|\s|=))%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)\(.*?(?:[^%]\))/i,lookbehind:!0,inside:{function:{pattern:/%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)/i,alias:"keyword"},"macro-keyword":i,"macro-variable":a,"escaped-char":{pattern:/%['"()<>=\xac^~;,#]/},punctuation:c}},"macro-declaration":{pattern:/^%macro[^;]+(?=;)/im,inside:{keyword:/%macro/i}},"macro-end":{pattern:/^%mend[^;]+(?=;)/im,inside:{keyword:/%mend/i}},macro:{pattern:/%_\w+(?=\()/,alias:"keyword"},input:{pattern:/\binput\s[-\w\s/*.$&]+;/i,inside:{input:{alias:"keyword",pattern:/^input/i},comment:s,number:n,"numeric-constant":r}},"options-args":{pattern:/(^options)[-'"|/\\<>*+=:()\w\s]*(?=;)/im,lookbehind:!0,inside:d},"cas-actions":b,comment:s,function:u,format:p,altformat:m,"numeric-constant":r,datetime:{pattern:RegExp(t+"(?:dt?|t)"),alias:"number"},string:l,step:o,keyword:E,"operator-keyword":{pattern:/\b(?:eq|ge|gt|in|le|lt|ne|not)\b/i,alias:"operator"},number:n,operator:/\*\*?|\|\|?|!!?|\xa6\xa6?|<[>=]?|>[<=]?|[-+\/=&]|[~\xac^]=?/,punctuation:c}}(e)}e.exports=t,t.displayName="sas",t.aliases=[]},1357:function(e){"use strict";function t(e){!function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(e)}e.exports=t,t.displayName="sass",t.aliases=[]},7719:function(e,t,n){"use strict";var r=n(5543);function a(e){e.register(r),e.languages.scala=e.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),e.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:e.languages.scala}}},string:/[\s\S]+/}}}),delete e.languages.scala["class-name"],delete e.languages.scala.function}e.exports=a,a.displayName="scala",a.aliases=[]},2284:function(e){"use strict";function t(e){!function(e){e.languages.scheme={comment:/;.*|#;\s*(?:\((?:[^()]|\([^()]*\))*\)|\[(?:[^\[\]]|\[[^\[\]]*\])*\])|#\|(?:[^#|]|#(?!\|)|\|(?!#)|#\|(?:[^#|]|#(?!\|)|\|(?!#))*\|#)*\|#/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},symbol:{pattern:/'[^()\[\]#'\s]+/,greedy:!0},char:{pattern:/#\\(?:[ux][a-fA-F\d]+\b|[-a-zA-Z]+\b|[\uD800-\uDBFF][\uDC00-\uDFFF]|\S)/,greedy:!0},"lambda-parameter":[{pattern:/((?:^|[^'`#])[(\[]lambda\s+)(?:[^|()\[\]'\s]+|\|(?:[^\\|]|\\.)*\|)/,lookbehind:!0},{pattern:/((?:^|[^'`#])[(\[]lambda\s+[(\[])[^()\[\]']+/,lookbehind:!0}],keyword:{pattern:/((?:^|[^'`#])[(\[])(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|except|export|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\*)?|let\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\[\]\s]|$)/,lookbehind:!0},builtin:{pattern:/((?:^|[^'`#])[(\[])(?:abs|and|append|apply|assoc|ass[qv]|binary-port\?|boolean=?\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\?|\?|<\?|<=\?|=\?|>\?|>=\?)|close-(?:input-port|output-port|port)|complex\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\??|eq\?|equal\?|eqv\?|error|error-object(?:-irritants|-message|\?)|eval|even\?|exact(?:-integer-sqrt|-integer\?|\?)?|expt|features|file-error\?|floor(?:-quotient|-remainder|\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\??|input-port(?:-open\?|\?)|integer(?:->char|\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\?|newline|not|null\?|number(?:->string|\?)|numerator|odd\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\?|\?)|pair\?|peek-char|peek-u8|port\?|positive\?|procedure\?|quotient|raise|raise-continuable|rational\?|rationalize|read-(?:bytevector|bytevector!|char|error\?|line|string|u8)|real\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?|<\?|<=\?|=\?|>\?|>=\?)?|substring|symbol(?:->string|\?|=\?)|syntax-error|textual-port\?|truncate(?:-quotient|-remainder|\/)?|u8-ready\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\?)(?=[()\[\]\s]|$)/,lookbehind:!0},operator:{pattern:/((?:^|[^'`#])[(\[])(?:[-+*%/]|[<>]=?|=>?)(?=[()\[\]\s]|$)/,lookbehind:!0},number:{pattern:RegExp(function(e){for(var t in e)e[t]=e[t].replace(/<[\w\s]+>/g,(function(t){return"(?:"+e[t].trim()+")"}));return e[t]}({"<ureal dec>":/\d+(?:\/\d+)|(?:\d+(?:\.\d*)?|\.\d+)(?:[esfdl][+-]?\d+)?/.source,"<real dec>":/[+-]?<ureal dec>|[+-](?:inf|nan)\.0/.source,"<imaginary dec>":/[+-](?:<ureal dec>|(?:inf|nan)\.0)?i/.source,"<complex dec>":/<real dec>(?:@<real dec>|<imaginary dec>)?|<imaginary dec>/.source,"<num dec>":/(?:#d(?:#[ei])?|#[ei](?:#d)?)?<complex dec>/.source,"<ureal box>":/[0-9a-f]+(?:\/[0-9a-f]+)?/.source,"<real box>":/[+-]?<ureal box>|[+-](?:inf|nan)\.0/.source,"<imaginary box>":/[+-](?:<ureal box>|(?:inf|nan)\.0)?i/.source,"<complex box>":/<real box>(?:@<real box>|<imaginary box>)?|<imaginary box>/.source,"<num box>":/#[box](?:#[ei])?|(?:#[ei])?#[box]<complex box>/.source,"<number>":/(^|[()\[\]\s])(?:<num dec>|<num box>)(?=[()\[\]\s]|$)/.source}),"i"),lookbehind:!0},boolean:{pattern:/(^|[()\[\]\s])#(?:[ft]|false|true)(?=[()\[\]\s]|$)/,lookbehind:!0},function:{pattern:/((?:^|[^'`#])[(\[])(?:[^|()\[\]'\s]+|\|(?:[^\\|]|\\.)*\|)(?=[()\[\]\s]|$)/,lookbehind:!0},identifier:{pattern:/(^|[()\[\]\s])\|(?:[^\\|]|\\.)*\|(?=[()\[\]\s]|$)/,lookbehind:!0,greedy:!0},punctuation:/[()\[\]']/}}(e)}e.exports=t,t.displayName="scheme",t.aliases=[]},1254:function(e){"use strict";function t(e){e.languages.scss=e.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),e.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),e.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),e.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),e.languages.scss.atrule.inside.rest=e.languages.scss}e.exports=t,t.displayName="scss",t.aliases=[]},6442:function(e,t,n){"use strict";var r=n(7033);function a(e){e.register(r),function(e){var t=[/"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/.source,/'[^']*'/.source,/\$'(?:[^'\\]|\\[\s\S])*'/.source,/<<-?\s*(["']?)(\w+)\1\s[\s\S]*?[\r\n]\2/.source].join("|");e.languages["shell-session"]={command:{pattern:RegExp(/^/.source+"(?:"+/[^\s@:$#%*!/\\]+@[^\r\n@:$#%*!/\\]+(?::[^\0-\x1F$#%*?"<>:;|]+)?/.source+"|"+/[/~.][^\0-\x1F$#%*?"<>@:;|]*/.source+")?"+/[$#%](?=\s)/.source+/(?:[^\\\r\n \t'"<$]|[ \t](?:(?!#)|#.*$)|\\(?:[^\r]|\r\n?)|\$(?!')|<(?!<)|<<str>>)+/.source.replace(/<<str>>/g,(function(){return t})),"m"),greedy:!0,inside:{info:{pattern:/^[^#$%]+/,alias:"punctuation",inside:{user:/^[^\s@:$#%*!/\\]+@[^\r\n@:$#%*!/\\]+/,punctuation:/:/,path:/[\s\S]+/}},bash:{pattern:/(^[$#%]\s*)\S[\s\S]*/,lookbehind:!0,alias:"language-bash",inside:e.languages.bash},"shell-symbol":{pattern:/^[$#%]/,alias:"important"}}},output:/.(?:.*(?:[\r\n]|.$))*/},e.languages["sh-session"]=e.languages.shellsession=e.languages["shell-session"]}(e)}e.exports=a,a.displayName="shellSession",a.aliases=[]},2034:function(e){"use strict";function t(e){e.languages.smali={comment:/#.*/,string:{pattern:/"(?:[^\r\n\\"]|\\.)*"|'(?:[^\r\n\\']|\\(?:.|u[\da-fA-F]{4}))'/,greedy:!0},"class-name":{pattern:/(^|[^L])L(?:(?:\w+|`[^`\r\n]*`)\/)*(?:[\w$]+|`[^`\r\n]*`)(?=\s*;)/,lookbehind:!0,inside:{"class-name":{pattern:/(^L|\/)(?:[\w$]+|`[^`\r\n]*`)$/,lookbehind:!0},namespace:{pattern:/^(L)(?:(?:\w+|`[^`\r\n]*`)\/)+/,lookbehind:!0,inside:{punctuation:/\//}},builtin:/^L/}},builtin:[{pattern:/([();\[])[BCDFIJSVZ]+/,lookbehind:!0},{pattern:/([\w$>]:)[BCDFIJSVZ]/,lookbehind:!0}],keyword:[{pattern:/(\.end\s+)[\w-]+/,lookbehind:!0},{pattern:/(^|[^\w.-])\.(?!\d)[\w-]+/,lookbehind:!0},{pattern:/(^|[^\w.-])(?:abstract|annotation|bridge|constructor|enum|final|interface|private|protected|public|runtime|static|synthetic|system|transient)(?![\w.-])/,lookbehind:!0}],function:{pattern:/(^|[^\w.-])(?:\w+|<[\w$-]+>)(?=\()/,lookbehind:!0},field:{pattern:/[\w$]+(?=:)/,alias:"variable"},register:{pattern:/(^|[^\w.-])[vp]\d(?![\w.-])/,lookbehind:!0,alias:"variable"},boolean:{pattern:/(^|[^\w.-])(?:false|true)(?![\w.-])/,lookbehind:!0},number:{pattern:/(^|[^/\w.-])-?(?:NAN|INFINITY|0x(?:[\dA-F]+(?:\.[\dA-F]*)?|\.[\dA-F]+)(?:p[+-]?[\dA-F]+)?|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)[dflst]?(?![\w.-])/i,lookbehind:!0},label:{pattern:/(:)\w+/,lookbehind:!0,alias:"property"},operator:/->|\.\.|[\[=]/,punctuation:/[{}(),;:]/}}e.exports=t,t.displayName="smali",t.aliases=[]},9676:function(e){"use strict";function t(e){e.languages.smalltalk={comment:{pattern:/"(?:""|[^"])*"/,greedy:!0},char:{pattern:/\$./,greedy:!0},string:{pattern:/'(?:''|[^'])*'/,greedy:!0},symbol:/#[\da-z]+|#(?:-|([+\/\\*~<>=@%|&?!])\1?)|#(?=\()/i,"block-arguments":{pattern:/(\[\s*):[^\[|]*\|/,lookbehind:!0,inside:{variable:/:[\da-z]+/i,punctuation:/\|/}},"temporary-variables":{pattern:/\|[^|]+\|/,inside:{variable:/[\da-z]+/i,punctuation:/\|/}},keyword:/\b(?:new|nil|self|super)\b/,boolean:/\b(?:false|true)\b/,number:[/\d+r-?[\dA-Z]+(?:\.[\dA-Z]+)?(?:e-?\d+)?/,/\b\d+(?:\.\d+)?(?:e-?\d+)?/],operator:/[<=]=?|:=|~[~=]|\/\/?|\\\\|>[>=]?|[!^+\-*&|,@]/,punctuation:/[.;:?\[\](){}]/}}e.exports=t,t.displayName="smalltalk",t.aliases=[]},9895:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),function(e){e.languages.smarty={comment:{pattern:/^\{\*[\s\S]*?\*\}/,greedy:!0},"embedded-php":{pattern:/^\{php\}[\s\S]*?\{\/php\}/,greedy:!0,inside:{smarty:{pattern:/^\{php\}|\{\/php\}$/,inside:null},php:{pattern:/[\s\S]+/,alias:"language-php",inside:e.languages.php}}},string:[{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0,inside:{interpolation:{pattern:/\{[^{}]*\}|`[^`]*`/,inside:{"interpolation-punctuation":{pattern:/^[{`]|[`}]$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:null}}},variable:/\$\w+/}},{pattern:/'(?:\\.|[^'\\\r\n])*'/,greedy:!0}],keyword:{pattern:/(^\{\/?)[a-z_]\w*\b(?!\()/i,lookbehind:!0,greedy:!0},delimiter:{pattern:/^\{\/?|\}$/,greedy:!0,alias:"punctuation"},number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,variable:[/\$(?!\d)\w+/,/#(?!\d)\w+#/,{pattern:/(\.|->|\w\s*=)(?!\d)\w+\b(?!\()/,lookbehind:!0},{pattern:/(\[)(?!\d)\w+(?=\])/,lookbehind:!0}],function:{pattern:/(\|\s*)@?[a-z_]\w*|\b[a-z_]\w*(?=\()/i,lookbehind:!0},"attr-name":/\b[a-z_]\w*(?=\s*=)/i,boolean:/\b(?:false|no|off|on|true|yes)\b/,punctuation:/[\[\](){}.,:`]|->/,operator:[/[+\-*\/%]|==?=?|[!<>]=?|&&|\|\|?/,/\bis\s+(?:not\s+)?(?:div|even|odd)(?:\s+by)?\b/,/\b(?:and|eq|gt?e|gt|lt?e|lt|mod|neq?|not|or)\b/]},e.languages.smarty["embedded-php"].inside.smarty.inside=e.languages.smarty,e.languages.smarty.string[0].inside.interpolation.inside.expression.inside=e.languages.smarty;var t=/"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,n=RegExp(/\{\*[\s\S]*?\*\}/.source+"|"+/\{php\}[\s\S]*?\{\/php\}/.source+"|"+/\{(?:[^{}"']|<str>|\{(?:[^{}"']|<str>|\{(?:[^{}"']|<str>)*\})*\})*\}/.source.replace(/<str>/g,(function(){return t.source})),"g");e.hooks.add("before-tokenize",(function(t){var r=!1;e.languages["markup-templating"].buildPlaceholders(t,"smarty",n,(function(e){return"{/literal}"===e&&(r=!1),!r&&("{literal}"===e&&(r=!0),!0)}))})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"smarty")}))}(e)}e.exports=a,a.displayName="smarty",a.aliases=[]},3775:function(e){"use strict";function t(e){!function(e){var t=/\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\b/i;e.languages.sml={comment:/\(\*(?:[^*(]|\*(?!\))|\((?!\*)|\(\*(?:[^*(]|\*(?!\))|\((?!\*))*\*\))*\*\)/,string:{pattern:/#?"(?:[^"\\]|\\.)*"/,greedy:!0},"class-name":[{pattern:RegExp(/((?:^|[^:]):\s*)<TERMINAL>(?:\s*(?:(?:\*|->)\s*<TERMINAL>|,\s*<TERMINAL>(?:(?=<NOT-LAST>)|(?!<NOT-LAST>)\s+<LONG-ID>)))*/.source.replace(/<NOT-LAST>/g,(function(){return/\s*(?:[*,]|->)/.source})).replace(/<TERMINAL>/g,(function(){return/(?:'[\w']*|<LONG-ID>|\((?:[^()]|\([^()]*\))*\)|\{(?:[^{}]|\{[^{}]*\})*\})(?:\s+<LONG-ID>)*/.source})).replace(/<LONG-ID>/g,(function(){return/(?!<KEYWORD>)[a-z\d_][\w'.]*/.source})).replace(/<KEYWORD>/g,(function(){return t.source})),"i"),lookbehind:!0,greedy:!0,inside:null},{pattern:/((?:^|[^\w'])(?:datatype|exception|functor|signature|structure|type)\s+)[a-z_][\w'.]*/i,lookbehind:!0}],function:{pattern:/((?:^|[^\w'])fun\s+)[a-z_][\w'.]*/i,lookbehind:!0},keyword:t,variable:{pattern:/(^|[^\w'])'[\w']*/,lookbehind:!0},number:/~?\b(?:\d+(?:\.\d+)?(?:e~?\d+)?|0x[\da-f]+)\b/i,word:{pattern:/\b0w(?:\d+|x[\da-f]+)\b/i,alias:"constant"},boolean:/\b(?:false|true)\b/i,operator:/\.\.\.|:[>=:]|=>?|->|[<>]=?|[!+\-*/^#|@~]/,punctuation:/[(){}\[\].:,;]/},e.languages.sml["class-name"][0].inside=e.languages.sml,e.languages.smlnj=e.languages.sml}(e)}e.exports=t,t.displayName="sml",t.aliases=["smlnj"]},5767:function(e){"use strict";function t(e){e.languages.solidity=e.languages.extend("clike",{"class-name":{pattern:/(\b(?:contract|enum|interface|library|new|struct|using)\s+)(?!\d)[\w$]+/,lookbehind:!0},keyword:/\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\b/,operator:/=>|->|:=|=:|\*\*|\+\+|--|\|\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/}),e.languages.insertBefore("solidity","keyword",{builtin:/\b(?:address|bool|byte|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|string|bytes(?:[1-9]|[12]\d|3[0-2])?)\b/}),e.languages.insertBefore("solidity","number",{version:{pattern:/([<>]=?|\^)\d+\.\d+\.\d+\b/,lookbehind:!0,alias:"number"}}),e.languages.sol=e.languages.solidity}e.exports=t,t.displayName="solidity",t.aliases=["sol"]},9093:function(e){"use strict";function t(e){!function(e){var t={pattern:/\{[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}\}/i,alias:"constant",inside:{punctuation:/[{}]/}};e.languages["solution-file"]={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0,inside:{guid:t}},object:{pattern:/^([ \t]*)(?:([A-Z]\w*)\b(?=.*(?:\r\n?|\n)(?:\1[ \t].*(?:\r\n?|\n))*\1End\2(?=[ \t]*$))|End[A-Z]\w*(?=[ \t]*$))/m,lookbehind:!0,greedy:!0,alias:"keyword"},property:{pattern:/^([ \t]*)(?!\s)[^\r\n"#=()]*[^\s"#=()](?=\s*=)/m,lookbehind:!0,inside:{guid:t}},guid:t,number:/\b\d+(?:\.\d+)*\b/,boolean:/\b(?:FALSE|TRUE)\b/,operator:/=/,punctuation:/[(),]/},e.languages.sln=e.languages["solution-file"]}(e)}e.exports=t,t.displayName="solutionFile",t.aliases=[]},8768:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),function(e){var t=/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=/\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-F]+\b/;e.languages.soy={comment:[/\/\*[\s\S]*?\*\//,{pattern:/(\s)\/\/.*/,lookbehind:!0,greedy:!0}],"command-arg":{pattern:/(\{+\/?\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\s+)\.?[\w.]+/,lookbehind:!0,alias:"string",inside:{punctuation:/\./}},parameter:{pattern:/(\{+\/?\s*@?param\??\s+)\.?[\w.]+/,lookbehind:!0,alias:"variable"},keyword:[{pattern:/(\{+\/?[^\S\r\n]*)(?:\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\??|rb|sp|switch|template|xid)/,lookbehind:!0},/\b(?:any|as|attributes|bool|css|float|html|in|int|js|list|map|null|number|string|uri)\b/],delimiter:{pattern:/^\{+\/?|\/?\}+$/,alias:"punctuation"},property:/\w+(?==)/,variable:{pattern:/\$[^\W\d]\w*(?:\??(?:\.\w+|\[[^\]]+\]))*/,inside:{string:{pattern:t,greedy:!0},number:n,punctuation:/[\[\].?]/}},string:{pattern:t,greedy:!0},function:[/\w+(?=\()/,{pattern:/(\|[^\S\r\n]*)\w+/,lookbehind:!0}],boolean:/\b(?:false|true)\b/,number:n,operator:/\?:?|<=?|>=?|==?|!=|[+*/%-]|\b(?:and|not|or)\b/,punctuation:/[{}()\[\]|.,:]/},e.hooks.add("before-tokenize",(function(t){var n=!1;e.languages["markup-templating"].buildPlaceholders(t,"soy",/\{\{.+?\}\}|\{.+?\}|\s\/\/.*|\/\*[\s\S]*?\*\//g,(function(e){return"{/literal}"===e&&(n=!1),!n&&("{literal}"===e&&(n=!0),!0)}))})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"soy")}))}(e)}e.exports=a,a.displayName="soy",a.aliases=[]},8517:function(e,t,n){"use strict";var r=n(3089);function a(e){e.register(r),e.languages.sparql=e.languages.extend("turtle",{boolean:/\b(?:false|true)\b/i,variable:{pattern:/[?$]\w+/,greedy:!0}}),e.languages.insertBefore("sparql","punctuation",{keyword:[/\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|ORDER|RAND|REDUCED|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\b/i,/\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|REGEX|REPLACE|ROUND|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\b(?=\s*\()/i,/\b(?:BASE|GRAPH|PREFIX)\b/i]}),e.languages.rq=e.languages.sparql}e.exports=a,a.displayName="sparql",a.aliases=["rq"]},7942:function(e){"use strict";function t(e){e.languages["splunk-spl"]={comment:/`comment\("(?:\\.|[^\\"])*"\)`/,string:{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0},keyword:/\b(?:abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|anomalydetection|append|appendcols|appendcsv|appendlookup|appendpipe|arules|associate|audit|autoregress|bin|bucket|bucketdir|chart|cluster|cofilter|collect|concurrency|contingency|convert|correlate|datamodel|dbinspect|dedup|delete|delta|diff|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geom|geomfilter|geostats|head|highlight|history|iconify|input|inputcsv|inputlookup|iplocation|join|kmeans|kv|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|mcollect|metadata|metasearch|meventcollect|mstats|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|timewrap|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|union|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\b/i,"operator-word":{pattern:/\b(?:and|as|by|not|or|xor)\b/i,alias:"operator"},function:/\b\w+(?=\s*\()/,property:/\b\w+(?=\s*=(?!=))/,date:{pattern:/\b\d{1,2}\/\d{1,2}\/\d{1,4}(?:(?::\d{1,2}){3})?\b/,alias:"number"},number:/\b\d+(?:\.\d+)?\b/,boolean:/\b(?:f|false|t|true)\b/i,operator:/[<>=]=?|[-+*/%|]/,punctuation:/[()[\],]/}}e.exports=t,t.displayName="splunkSpl",t.aliases=[]},4457:function(e){"use strict";function t(e){e.languages.sqf=e.languages.extend("clike",{string:{pattern:/"(?:(?:"")?[^"])*"(?!")|'(?:[^'])*'/,greedy:!0},keyword:/\b(?:breakOut|breakTo|call|case|catch|default|do|echo|else|execFSM|execVM|exitWith|for|forEach|forEachMember|forEachMemberAgent|forEachMemberTeam|from|goto|if|nil|preprocessFile|preprocessFileLineNumbers|private|scopeName|spawn|step|switch|then|throw|to|try|while|with)\b/i,boolean:/\b(?:false|true)\b/i,function:/\b(?:abs|accTime|acos|action|actionIDs|actionKeys|actionKeysImages|actionKeysNames|actionKeysNamesArray|actionName|actionParams|activateAddons|activatedAddons|activateKey|add3DENConnection|add3DENEventHandler|add3DENLayer|addAction|addBackpack|addBackpackCargo|addBackpackCargoGlobal|addBackpackGlobal|addCamShake|addCuratorAddons|addCuratorCameraArea|addCuratorEditableObjects|addCuratorEditingArea|addCuratorPoints|addEditorObject|addEventHandler|addForce|addForceGeneratorRTD|addGoggles|addGroupIcon|addHandgunItem|addHeadgear|addItem|addItemCargo|addItemCargoGlobal|addItemPool|addItemToBackpack|addItemToUniform|addItemToVest|addLiveStats|addMagazine|addMagazineAmmoCargo|addMagazineCargo|addMagazineCargoGlobal|addMagazineGlobal|addMagazinePool|addMagazines|addMagazineTurret|addMenu|addMenuItem|addMissionEventHandler|addMPEventHandler|addMusicEventHandler|addOwnedMine|addPlayerScores|addPrimaryWeaponItem|addPublicVariableEventHandler|addRating|addResources|addScore|addScoreSide|addSecondaryWeaponItem|addSwitchableUnit|addTeamMember|addToRemainsCollector|addTorque|addUniform|addVehicle|addVest|addWaypoint|addWeapon|addWeaponCargo|addWeaponCargoGlobal|addWeaponGlobal|addWeaponItem|addWeaponPool|addWeaponTurret|admin|agent|agents|AGLToASL|aimedAtTarget|aimPos|airDensityCurveRTD|airDensityRTD|airplaneThrottle|airportSide|AISFinishHeal|alive|all3DENEntities|allAirports|allControls|allCurators|allCutLayers|allDead|allDeadMen|allDisplays|allGroups|allMapMarkers|allMines|allMissionObjects|allow3DMode|allowCrewInImmobile|allowCuratorLogicIgnoreAreas|allowDamage|allowDammage|allowFileOperations|allowFleeing|allowGetIn|allowSprint|allPlayers|allSimpleObjects|allSites|allTurrets|allUnits|allUnitsUAV|allVariables|ammo|ammoOnPylon|animate|animateBay|animateDoor|animatePylon|animateSource|animationNames|animationPhase|animationSourcePhase|animationState|append|apply|armoryPoints|arrayIntersect|asin|ASLToAGL|ASLToATL|assert|assignAsCargo|assignAsCargoIndex|assignAsCommander|assignAsDriver|assignAsGunner|assignAsTurret|assignCurator|assignedCargo|assignedCommander|assignedDriver|assignedGunner|assignedItems|assignedTarget|assignedTeam|assignedVehicle|assignedVehicleRole|assignItem|assignTeam|assignToAirport|atan|atan2|atg|ATLToASL|attachedObject|attachedObjects|attachedTo|attachObject|attachTo|attackEnabled|backpack|backpackCargo|backpackContainer|backpackItems|backpackMagazines|backpackSpaceFor|behaviour|benchmark|binocular|blufor|boundingBox|boundingBoxReal|boundingCenter|briefingName|buildingExit|buildingPos|buldozer_EnableRoadDiag|buldozer_IsEnabledRoadDiag|buldozer_LoadNewRoads|buldozer_reloadOperMap|buttonAction|buttonSetAction|cadetMode|callExtension|camCommand|camCommit|camCommitPrepared|camCommitted|camConstuctionSetParams|camCreate|camDestroy|cameraEffect|cameraEffectEnableHUD|cameraInterest|cameraOn|cameraView|campaignConfigFile|camPreload|camPreloaded|camPrepareBank|camPrepareDir|camPrepareDive|camPrepareFocus|camPrepareFov|camPrepareFovRange|camPreparePos|camPrepareRelPos|camPrepareTarget|camSetBank|camSetDir|camSetDive|camSetFocus|camSetFov|camSetFovRange|camSetPos|camSetRelPos|camSetTarget|camTarget|camUseNVG|canAdd|canAddItemToBackpack|canAddItemToUniform|canAddItemToVest|cancelSimpleTaskDestination|canFire|canMove|canSlingLoad|canStand|canSuspend|canTriggerDynamicSimulation|canUnloadInCombat|canVehicleCargo|captive|captiveNum|cbChecked|cbSetChecked|ceil|channelEnabled|cheatsEnabled|checkAIFeature|checkVisibility|civilian|className|clear3DENAttribute|clear3DENInventory|clearAllItemsFromBackpack|clearBackpackCargo|clearBackpackCargoGlobal|clearForcesRTD|clearGroupIcons|clearItemCargo|clearItemCargoGlobal|clearItemPool|clearMagazineCargo|clearMagazineCargoGlobal|clearMagazinePool|clearOverlay|clearRadio|clearVehicleInit|clearWeaponCargo|clearWeaponCargoGlobal|clearWeaponPool|clientOwner|closeDialog|closeDisplay|closeOverlay|collapseObjectTree|collect3DENHistory|collectiveRTD|combatMode|commandArtilleryFire|commandChat|commander|commandFire|commandFollow|commandFSM|commandGetOut|commandingMenu|commandMove|commandRadio|commandStop|commandSuppressiveFire|commandTarget|commandWatch|comment|commitOverlay|compile|compileFinal|completedFSM|composeText|configClasses|configFile|configHierarchy|configName|configNull|configProperties|configSourceAddonList|configSourceMod|configSourceModList|confirmSensorTarget|connectTerminalToUAV|controlNull|controlsGroupCtrl|copyFromClipboard|copyToClipboard|copyWaypoints|cos|count|countEnemy|countFriendly|countSide|countType|countUnknown|create3DENComposition|create3DENEntity|createAgent|createCenter|createDialog|createDiaryLink|createDiaryRecord|createDiarySubject|createDisplay|createGearDialog|createGroup|createGuardedPoint|createLocation|createMarker|createMarkerLocal|createMenu|createMine|createMissionDisplay|createMPCampaignDisplay|createSimpleObject|createSimpleTask|createSite|createSoundSource|createTask|createTeam|createTrigger|createUnit|createVehicle|createVehicleCrew|createVehicleLocal|crew|ctAddHeader|ctAddRow|ctClear|ctCurSel|ctData|ctFindHeaderRows|ctFindRowHeader|ctHeaderControls|ctHeaderCount|ctRemoveHeaders|ctRemoveRows|ctrlActivate|ctrlAddEventHandler|ctrlAngle|ctrlAutoScrollDelay|ctrlAutoScrollRewind|ctrlAutoScrollSpeed|ctrlChecked|ctrlClassName|ctrlCommit|ctrlCommitted|ctrlCreate|ctrlDelete|ctrlEnable|ctrlEnabled|ctrlFade|ctrlHTMLLoaded|ctrlIDC|ctrlIDD|ctrlMapAnimAdd|ctrlMapAnimClear|ctrlMapAnimCommit|ctrlMapAnimDone|ctrlMapCursor|ctrlMapMouseOver|ctrlMapScale|ctrlMapScreenToWorld|ctrlMapWorldToScreen|ctrlModel|ctrlModelDirAndUp|ctrlModelScale|ctrlParent|ctrlParentControlsGroup|ctrlPosition|ctrlRemoveAllEventHandlers|ctrlRemoveEventHandler|ctrlScale|ctrlSetActiveColor|ctrlSetAngle|ctrlSetAutoScrollDelay|ctrlSetAutoScrollRewind|ctrlSetAutoScrollSpeed|ctrlSetBackgroundColor|ctrlSetChecked|ctrlSetDisabledColor|ctrlSetEventHandler|ctrlSetFade|ctrlSetFocus|ctrlSetFont|ctrlSetFontH1|ctrlSetFontH1B|ctrlSetFontH2|ctrlSetFontH2B|ctrlSetFontH3|ctrlSetFontH3B|ctrlSetFontH4|ctrlSetFontH4B|ctrlSetFontH5|ctrlSetFontH5B|ctrlSetFontH6|ctrlSetFontH6B|ctrlSetFontHeight|ctrlSetFontHeightH1|ctrlSetFontHeightH2|ctrlSetFontHeightH3|ctrlSetFontHeightH4|ctrlSetFontHeightH5|ctrlSetFontHeightH6|ctrlSetFontHeightSecondary|ctrlSetFontP|ctrlSetFontPB|ctrlSetFontSecondary|ctrlSetForegroundColor|ctrlSetModel|ctrlSetModelDirAndUp|ctrlSetModelScale|ctrlSetPixelPrecision|ctrlSetPosition|ctrlSetScale|ctrlSetStructuredText|ctrlSetText|ctrlSetTextColor|ctrlSetTextColorSecondary|ctrlSetTextSecondary|ctrlSetTooltip|ctrlSetTooltipColorBox|ctrlSetTooltipColorShade|ctrlSetTooltipColorText|ctrlShow|ctrlShown|ctrlText|ctrlTextHeight|ctrlTextSecondary|ctrlTextWidth|ctrlType|ctrlVisible|ctRowControls|ctRowCount|ctSetCurSel|ctSetData|ctSetHeaderTemplate|ctSetRowTemplate|ctSetValue|ctValue|curatorAddons|curatorCamera|curatorCameraArea|curatorCameraAreaCeiling|curatorCoef|curatorEditableObjects|curatorEditingArea|curatorEditingAreaType|curatorMouseOver|curatorPoints|curatorRegisteredObjects|curatorSelected|curatorWaypointCost|current3DENOperation|currentChannel|currentCommand|currentMagazine|currentMagazineDetail|currentMagazineDetailTurret|currentMagazineTurret|currentMuzzle|currentNamespace|currentTask|currentTasks|currentThrowable|currentVisionMode|currentWaypoint|currentWeapon|currentWeaponMode|currentWeaponTurret|currentZeroing|cursorObject|cursorTarget|customChat|customRadio|cutFadeOut|cutObj|cutRsc|cutText|damage|date|dateToNumber|daytime|deActivateKey|debriefingText|debugFSM|debugLog|deg|delete3DENEntities|deleteAt|deleteCenter|deleteCollection|deleteEditorObject|deleteGroup|deleteGroupWhenEmpty|deleteIdentity|deleteLocation|deleteMarker|deleteMarkerLocal|deleteRange|deleteResources|deleteSite|deleteStatus|deleteTeam|deleteVehicle|deleteVehicleCrew|deleteWaypoint|detach|detectedMines|diag_activeMissionFSMs|diag_activeScripts|diag_activeSQFScripts|diag_activeSQSScripts|diag_captureFrame|diag_captureFrameToFile|diag_captureSlowFrame|diag_codePerformance|diag_drawMode|diag_dynamicSimulationEnd|diag_enable|diag_enabled|diag_fps|diag_fpsMin|diag_frameNo|diag_lightNewLoad|diag_list|diag_log|diag_logSlowFrame|diag_mergeConfigFile|diag_recordTurretLimits|diag_setLightNew|diag_tickTime|diag_toggle|dialog|diarySubjectExists|didJIP|didJIPOwner|difficulty|difficultyEnabled|difficultyEnabledRTD|difficultyOption|direction|directSay|disableAI|disableCollisionWith|disableConversation|disableDebriefingStats|disableMapIndicators|disableNVGEquipment|disableRemoteSensors|disableSerialization|disableTIEquipment|disableUAVConnectability|disableUserInput|displayAddEventHandler|displayCtrl|displayNull|displayParent|displayRemoveAllEventHandlers|displayRemoveEventHandler|displaySetEventHandler|dissolveTeam|distance|distance2D|distanceSqr|distributionRegion|do3DENAction|doArtilleryFire|doFire|doFollow|doFSM|doGetOut|doMove|doorPhase|doStop|doSuppressiveFire|doTarget|doWatch|drawArrow|drawEllipse|drawIcon|drawIcon3D|drawLine|drawLine3D|drawLink|drawLocation|drawPolygon|drawRectangle|drawTriangle|driver|drop|dynamicSimulationDistance|dynamicSimulationDistanceCoef|dynamicSimulationEnabled|dynamicSimulationSystemEnabled|east|edit3DENMissionAttributes|editObject|editorSetEventHandler|effectiveCommander|emptyPositions|enableAI|enableAIFeature|enableAimPrecision|enableAttack|enableAudioFeature|enableAutoStartUpRTD|enableAutoTrimRTD|enableCamShake|enableCaustics|enableChannel|enableCollisionWith|enableCopilot|enableDebriefingStats|enableDiagLegend|enableDynamicSimulation|enableDynamicSimulationSystem|enableEndDialog|enableEngineArtillery|enableEnvironment|enableFatigue|enableGunLights|enableInfoPanelComponent|enableIRLasers|enableMimics|enablePersonTurret|enableRadio|enableReload|enableRopeAttach|enableSatNormalOnDetail|enableSaving|enableSentences|enableSimulation|enableSimulationGlobal|enableStamina|enableStressDamage|enableTeamSwitch|enableTraffic|enableUAVConnectability|enableUAVWaypoints|enableVehicleCargo|enableVehicleSensor|enableWeaponDisassembly|endl|endLoadingScreen|endMission|engineOn|enginesIsOnRTD|enginesPowerRTD|enginesRpmRTD|enginesTorqueRTD|entities|environmentEnabled|estimatedEndServerTime|estimatedTimeLeft|evalObjectArgument|everyBackpack|everyContainer|exec|execEditorScript|exp|expectedDestination|exportJIPMessages|eyeDirection|eyePos|face|faction|fadeMusic|fadeRadio|fadeSound|fadeSpeech|failMission|fillWeaponsFromPool|find|findCover|findDisplay|findEditorObject|findEmptyPosition|findEmptyPositionReady|findIf|findNearestEnemy|finishMissionInit|finite|fire|fireAtTarget|firstBackpack|flag|flagAnimationPhase|flagOwner|flagSide|flagTexture|fleeing|floor|flyInHeight|flyInHeightASL|fog|fogForecast|fogParams|forceAddUniform|forceAtPositionRTD|forcedMap|forceEnd|forceFlagTexture|forceFollowRoad|forceGeneratorRTD|forceMap|forceRespawn|forceSpeed|forceWalk|forceWeaponFire|forceWeatherChange|forgetTarget|format|formation|formationDirection|formationLeader|formationMembers|formationPosition|formationTask|formatText|formLeader|freeLook|fromEditor|fuel|fullCrew|gearIDCAmmoCount|gearSlotAmmoCount|gearSlotData|get3DENActionState|get3DENAttribute|get3DENCamera|get3DENConnections|get3DENEntity|get3DENEntityID|get3DENGrid|get3DENIconsVisible|get3DENLayerEntities|get3DENLinesVisible|get3DENMissionAttribute|get3DENMouseOver|get3DENSelected|getAimingCoef|getAllEnvSoundControllers|getAllHitPointsDamage|getAllOwnedMines|getAllSoundControllers|getAmmoCargo|getAnimAimPrecision|getAnimSpeedCoef|getArray|getArtilleryAmmo|getArtilleryComputerSettings|getArtilleryETA|getAssignedCuratorLogic|getAssignedCuratorUnit|getBackpackCargo|getBleedingRemaining|getBurningValue|getCameraViewDirection|getCargoIndex|getCenterOfMass|getClientState|getClientStateNumber|getCompatiblePylonMagazines|getConnectedUAV|getContainerMaxLoad|getCursorObjectParams|getCustomAimCoef|getDammage|getDescription|getDir|getDirVisual|getDLCAssetsUsage|getDLCAssetsUsageByName|getDLCs|getDLCUsageTime|getEditorCamera|getEditorMode|getEditorObjectScope|getElevationOffset|getEngineTargetRpmRTD|getEnvSoundController|getFatigue|getFieldManualStartPage|getForcedFlagTexture|getFriend|getFSMVariable|getFuelCargo|getGroupIcon|getGroupIconParams|getGroupIcons|getHideFrom|getHit|getHitIndex|getHitPointDamage|getItemCargo|getMagazineCargo|getMarkerColor|getMarkerPos|getMarkerSize|getMarkerType|getMass|getMissionConfig|getMissionConfigValue|getMissionDLCs|getMissionLayerEntities|getMissionLayers|getModelInfo|getMousePosition|getMusicPlayedTime|getNumber|getObjectArgument|getObjectChildren|getObjectDLC|getObjectMaterials|getObjectProxy|getObjectTextures|getObjectType|getObjectViewDistance|getOxygenRemaining|getPersonUsedDLCs|getPilotCameraDirection|getPilotCameraPosition|getPilotCameraRotation|getPilotCameraTarget|getPlateNumber|getPlayerChannel|getPlayerScores|getPlayerUID|getPlayerUIDOld|getPos|getPosASL|getPosASLVisual|getPosASLW|getPosATL|getPosATLVisual|getPosVisual|getPosWorld|getPylonMagazines|getRelDir|getRelPos|getRemoteSensorsDisabled|getRepairCargo|getResolution|getRotorBrakeRTD|getShadowDistance|getShotParents|getSlingLoad|getSoundController|getSoundControllerResult|getSpeed|getStamina|getStatValue|getSuppression|getTerrainGrid|getTerrainHeightASL|getText|getTotalDLCUsageTime|getTrimOffsetRTD|getUnitLoadout|getUnitTrait|getUserMFDText|getUserMFDValue|getVariable|getVehicleCargo|getWeaponCargo|getWeaponSway|getWingsOrientationRTD|getWingsPositionRTD|getWPPos|glanceAt|globalChat|globalRadio|goggles|group|groupChat|groupFromNetId|groupIconSelectable|groupIconsVisible|groupId|groupOwner|groupRadio|groupSelectedUnits|groupSelectUnit|grpNull|gunner|gusts|halt|handgunItems|handgunMagazine|handgunWeapon|handsHit|hasInterface|hasPilotCamera|hasWeapon|hcAllGroups|hcGroupParams|hcLeader|hcRemoveAllGroups|hcRemoveGroup|hcSelected|hcSelectGroup|hcSetGroup|hcShowBar|hcShownBar|headgear|hideBody|hideObject|hideObjectGlobal|hideSelection|hint|hintC|hintCadet|hintSilent|hmd|hostMission|htmlLoad|HUDMovementLevels|humidity|image|importAllGroups|importance|in|inArea|inAreaArray|incapacitatedState|independent|inflame|inflamed|infoPanel|infoPanelComponentEnabled|infoPanelComponents|infoPanels|inGameUISetEventHandler|inheritsFrom|initAmbientLife|inPolygon|inputAction|inRangeOfArtillery|insertEditorObject|intersect|is3DEN|is3DENMultiplayer|isAbleToBreathe|isAgent|isAimPrecisionEnabled|isArray|isAutoHoverOn|isAutonomous|isAutoStartUpEnabledRTD|isAutotest|isAutoTrimOnRTD|isBleeding|isBurning|isClass|isCollisionLightOn|isCopilotEnabled|isDamageAllowed|isDedicated|isDLCAvailable|isEngineOn|isEqualTo|isEqualType|isEqualTypeAll|isEqualTypeAny|isEqualTypeArray|isEqualTypeParams|isFilePatchingEnabled|isFlashlightOn|isFlatEmpty|isForcedWalk|isFormationLeader|isGroupDeletedWhenEmpty|isHidden|isInRemainsCollector|isInstructorFigureEnabled|isIRLaserOn|isKeyActive|isKindOf|isLaserOn|isLightOn|isLocalized|isManualFire|isMarkedForCollection|isMultiplayer|isMultiplayerSolo|isNil|isNull|isNumber|isObjectHidden|isObjectRTD|isOnRoad|isPipEnabled|isPlayer|isRealTime|isRemoteExecuted|isRemoteExecutedJIP|isServer|isShowing3DIcons|isSimpleObject|isSprintAllowed|isStaminaEnabled|isSteamMission|isStreamFriendlyUIEnabled|isStressDamageEnabled|isText|isTouchingGround|isTurnedOut|isTutHintsEnabled|isUAVConnectable|isUAVConnected|isUIContext|isUniformAllowed|isVehicleCargo|isVehicleRadarOn|isVehicleSensorEnabled|isWalking|isWeaponDeployed|isWeaponRested|itemCargo|items|itemsWithMagazines|join|joinAs|joinAsSilent|joinSilent|joinString|kbAddDatabase|kbAddDatabaseTargets|kbAddTopic|kbHasTopic|kbReact|kbRemoveTopic|kbTell|kbWasSaid|keyImage|keyName|knowsAbout|land|landAt|landResult|language|laserTarget|lbAdd|lbClear|lbColor|lbColorRight|lbCurSel|lbData|lbDelete|lbIsSelected|lbPicture|lbPictureRight|lbSelection|lbSetColor|lbSetColorRight|lbSetCurSel|lbSetData|lbSetPicture|lbSetPictureColor|lbSetPictureColorDisabled|lbSetPictureColorSelected|lbSetPictureRight|lbSetPictureRightColor|lbSetPictureRightColorDisabled|lbSetPictureRightColorSelected|lbSetSelectColor|lbSetSelectColorRight|lbSetSelected|lbSetText|lbSetTextRight|lbSetTooltip|lbSetValue|lbSize|lbSort|lbSortByValue|lbText|lbTextRight|lbValue|leader|leaderboardDeInit|leaderboardGetRows|leaderboardInit|leaderboardRequestRowsFriends|leaderboardRequestRowsGlobal|leaderboardRequestRowsGlobalAroundUser|leaderboardsRequestUploadScore|leaderboardsRequestUploadScoreKeepBest|leaderboardState|leaveVehicle|libraryCredits|libraryDisclaimers|lifeState|lightAttachObject|lightDetachObject|lightIsOn|lightnings|limitSpeed|linearConversion|lineBreak|lineIntersects|lineIntersectsObjs|lineIntersectsSurfaces|lineIntersectsWith|linkItem|list|listObjects|listRemoteTargets|listVehicleSensors|ln|lnbAddArray|lnbAddColumn|lnbAddRow|lnbClear|lnbColor|lnbColorRight|lnbCurSelRow|lnbData|lnbDeleteColumn|lnbDeleteRow|lnbGetColumnsPosition|lnbPicture|lnbPictureRight|lnbSetColor|lnbSetColorRight|lnbSetColumnsPos|lnbSetCurSelRow|lnbSetData|lnbSetPicture|lnbSetPictureColor|lnbSetPictureColorRight|lnbSetPictureColorSelected|lnbSetPictureColorSelectedRight|lnbSetPictureRight|lnbSetText|lnbSetTextRight|lnbSetValue|lnbSize|lnbSort|lnbSortByValue|lnbText|lnbTextRight|lnbValue|load|loadAbs|loadBackpack|loadFile|loadGame|loadIdentity|loadMagazine|loadOverlay|loadStatus|loadUniform|loadVest|local|localize|locationNull|locationPosition|lock|lockCameraTo|lockCargo|lockDriver|locked|lockedCargo|lockedDriver|lockedTurret|lockIdentity|lockTurret|lockWP|log|logEntities|logNetwork|logNetworkTerminate|lookAt|lookAtPos|magazineCargo|magazines|magazinesAllTurrets|magazinesAmmo|magazinesAmmoCargo|magazinesAmmoFull|magazinesDetail|magazinesDetailBackpack|magazinesDetailUniform|magazinesDetailVest|magazinesTurret|magazineTurretAmmo|mapAnimAdd|mapAnimClear|mapAnimCommit|mapAnimDone|mapCenterOnCamera|mapGridPosition|markAsFinishedOnSteam|markerAlpha|markerBrush|markerColor|markerDir|markerPos|markerShape|markerSize|markerText|markerType|max|members|menuAction|menuAdd|menuChecked|menuClear|menuCollapse|menuData|menuDelete|menuEnable|menuEnabled|menuExpand|menuHover|menuPicture|menuSetAction|menuSetCheck|menuSetData|menuSetPicture|menuSetValue|menuShortcut|menuShortcutText|menuSize|menuSort|menuText|menuURL|menuValue|min|mineActive|mineDetectedBy|missionConfigFile|missionDifficulty|missionName|missionNamespace|missionStart|missionVersion|modelToWorld|modelToWorldVisual|modelToWorldVisualWorld|modelToWorldWorld|modParams|moonIntensity|moonPhase|morale|move|move3DENCamera|moveInAny|moveInCargo|moveInCommander|moveInDriver|moveInGunner|moveInTurret|moveObjectToEnd|moveOut|moveTime|moveTo|moveToCompleted|moveToFailed|musicVolume|name|nameSound|nearEntities|nearestBuilding|nearestLocation|nearestLocations|nearestLocationWithDubbing|nearestObject|nearestObjects|nearestTerrainObjects|nearObjects|nearObjectsReady|nearRoads|nearSupplies|nearTargets|needReload|netId|netObjNull|newOverlay|nextMenuItemIndex|nextWeatherChange|nMenuItems|numberOfEnginesRTD|numberToDate|objectCurators|objectFromNetId|objectParent|objNull|objStatus|onBriefingGear|onBriefingGroup|onBriefingNotes|onBriefingPlan|onBriefingTeamSwitch|onCommandModeChanged|onDoubleClick|onEachFrame|onGroupIconClick|onGroupIconOverEnter|onGroupIconOverLeave|onHCGroupSelectionChanged|onMapSingleClick|onPlayerConnected|onPlayerDisconnected|onPreloadFinished|onPreloadStarted|onShowNewObject|onTeamSwitch|openCuratorInterface|openDLCPage|openDSInterface|openMap|openSteamApp|openYoutubeVideo|opfor|orderGetIn|overcast|overcastForecast|owner|param|params|parseNumber|parseSimpleArray|parseText|parsingNamespace|particlesQuality|pi|pickWeaponPool|pitch|pixelGrid|pixelGridBase|pixelGridNoUIScale|pixelH|pixelW|playableSlotsNumber|playableUnits|playAction|playActionNow|player|playerRespawnTime|playerSide|playersNumber|playGesture|playMission|playMove|playMoveNow|playMusic|playScriptedMission|playSound|playSound3D|position|positionCameraToWorld|posScreenToWorld|posWorldToScreen|ppEffectAdjust|ppEffectCommit|ppEffectCommitted|ppEffectCreate|ppEffectDestroy|ppEffectEnable|ppEffectEnabled|ppEffectForceInNVG|precision|preloadCamera|preloadObject|preloadSound|preloadTitleObj|preloadTitleRsc|primaryWeapon|primaryWeaponItems|primaryWeaponMagazine|priority|processDiaryLink|processInitCommands|productVersion|profileName|profileNamespace|profileNameSteam|progressLoadingScreen|progressPosition|progressSetPosition|publicVariable|publicVariableClient|publicVariableServer|pushBack|pushBackUnique|putWeaponPool|queryItemsPool|queryMagazinePool|queryWeaponPool|rad|radioChannelAdd|radioChannelCreate|radioChannelRemove|radioChannelSetCallSign|radioChannelSetLabel|radioVolume|rain|rainbow|random|rank|rankId|rating|rectangular|registeredTasks|registerTask|reload|reloadEnabled|remoteControl|remoteExec|remoteExecCall|remoteExecutedOwner|remove3DENConnection|remove3DENEventHandler|remove3DENLayer|removeAction|removeAll3DENEventHandlers|removeAllActions|removeAllAssignedItems|removeAllContainers|removeAllCuratorAddons|removeAllCuratorCameraAreas|removeAllCuratorEditingAreas|removeAllEventHandlers|removeAllHandgunItems|removeAllItems|removeAllItemsWithMagazines|removeAllMissionEventHandlers|removeAllMPEventHandlers|removeAllMusicEventHandlers|removeAllOwnedMines|removeAllPrimaryWeaponItems|removeAllWeapons|removeBackpack|removeBackpackGlobal|removeCuratorAddons|removeCuratorCameraArea|removeCuratorEditableObjects|removeCuratorEditingArea|removeDrawIcon|removeDrawLinks|removeEventHandler|removeFromRemainsCollector|removeGoggles|removeGroupIcon|removeHandgunItem|removeHeadgear|removeItem|removeItemFromBackpack|removeItemFromUniform|removeItemFromVest|removeItems|removeMagazine|removeMagazineGlobal|removeMagazines|removeMagazinesTurret|removeMagazineTurret|removeMenuItem|removeMissionEventHandler|removeMPEventHandler|removeMusicEventHandler|removeOwnedMine|removePrimaryWeaponItem|removeSecondaryWeaponItem|removeSimpleTask|removeSwitchableUnit|removeTeamMember|removeUniform|removeVest|removeWeapon|removeWeaponAttachmentCargo|removeWeaponCargo|removeWeaponGlobal|removeWeaponTurret|reportRemoteTarget|requiredVersion|resetCamShake|resetSubgroupDirection|resistance|resize|resources|respawnVehicle|restartEditorCamera|reveal|revealMine|reverse|reversedMouseY|roadAt|roadsConnectedTo|roleDescription|ropeAttachedObjects|ropeAttachedTo|ropeAttachEnabled|ropeAttachTo|ropeCreate|ropeCut|ropeDestroy|ropeDetach|ropeEndPosition|ropeLength|ropes|ropeUnwind|ropeUnwound|rotorsForcesRTD|rotorsRpmRTD|round|runInitScript|safeZoneH|safeZoneW|safeZoneWAbs|safeZoneX|safeZoneXAbs|safeZoneY|save3DENInventory|saveGame|saveIdentity|saveJoysticks|saveOverlay|saveProfileNamespace|saveStatus|saveVar|savingEnabled|say|say2D|say3D|score|scoreSide|screenshot|screenToWorld|scriptDone|scriptName|scriptNull|scudState|secondaryWeapon|secondaryWeaponItems|secondaryWeaponMagazine|select|selectBestPlaces|selectDiarySubject|selectedEditorObjects|selectEditorObject|selectionNames|selectionPosition|selectLeader|selectMax|selectMin|selectNoPlayer|selectPlayer|selectRandom|selectRandomWeighted|selectWeapon|selectWeaponTurret|sendAUMessage|sendSimpleCommand|sendTask|sendTaskResult|sendUDPMessage|serverCommand|serverCommandAvailable|serverCommandExecutable|serverName|serverTime|set|set3DENAttribute|set3DENAttributes|set3DENGrid|set3DENIconsVisible|set3DENLayer|set3DENLinesVisible|set3DENLogicType|set3DENMissionAttribute|set3DENMissionAttributes|set3DENModelsVisible|set3DENObjectType|set3DENSelected|setAccTime|setActualCollectiveRTD|setAirplaneThrottle|setAirportSide|setAmmo|setAmmoCargo|setAmmoOnPylon|setAnimSpeedCoef|setAperture|setApertureNew|setArmoryPoints|setAttributes|setAutonomous|setBehaviour|setBleedingRemaining|setBrakesRTD|setCameraInterest|setCamShakeDefParams|setCamShakeParams|setCamUseTI|setCaptive|setCenterOfMass|setCollisionLight|setCombatMode|setCompassOscillation|setConvoySeparation|setCuratorCameraAreaCeiling|setCuratorCoef|setCuratorEditingAreaType|setCuratorWaypointCost|setCurrentChannel|setCurrentTask|setCurrentWaypoint|setCustomAimCoef|setCustomWeightRTD|setDamage|setDammage|setDate|setDebriefingText|setDefaultCamera|setDestination|setDetailMapBlendPars|setDir|setDirection|setDrawIcon|setDriveOnPath|setDropInterval|setDynamicSimulationDistance|setDynamicSimulationDistanceCoef|setEditorMode|setEditorObjectScope|setEffectCondition|setEngineRpmRTD|setFace|setFaceAnimation|setFatigue|setFeatureType|setFlagAnimationPhase|setFlagOwner|setFlagSide|setFlagTexture|setFog|setForceGeneratorRTD|setFormation|setFormationTask|setFormDir|setFriend|setFromEditor|setFSMVariable|setFuel|setFuelCargo|setGroupIcon|setGroupIconParams|setGroupIconsSelectable|setGroupIconsVisible|setGroupId|setGroupIdGlobal|setGroupOwner|setGusts|setHideBehind|setHit|setHitIndex|setHitPointDamage|setHorizonParallaxCoef|setHUDMovementLevels|setIdentity|setImportance|setInfoPanel|setLeader|setLightAmbient|setLightAttenuation|setLightBrightness|setLightColor|setLightDayLight|setLightFlareMaxDistance|setLightFlareSize|setLightIntensity|setLightnings|setLightUseFlare|setLocalWindParams|setMagazineTurretAmmo|setMarkerAlpha|setMarkerAlphaLocal|setMarkerBrush|setMarkerBrushLocal|setMarkerColor|setMarkerColorLocal|setMarkerDir|setMarkerDirLocal|setMarkerPos|setMarkerPosLocal|setMarkerShape|setMarkerShapeLocal|setMarkerSize|setMarkerSizeLocal|setMarkerText|setMarkerTextLocal|setMarkerType|setMarkerTypeLocal|setMass|setMimic|setMousePosition|setMusicEffect|setMusicEventHandler|setName|setNameSound|setObjectArguments|setObjectMaterial|setObjectMaterialGlobal|setObjectProxy|setObjectTexture|setObjectTextureGlobal|setObjectViewDistance|setOvercast|setOwner|setOxygenRemaining|setParticleCircle|setParticleClass|setParticleFire|setParticleParams|setParticleRandom|setPilotCameraDirection|setPilotCameraRotation|setPilotCameraTarget|setPilotLight|setPiPEffect|setPitch|setPlateNumber|setPlayable|setPlayerRespawnTime|setPos|setPosASL|setPosASL2|setPosASLW|setPosATL|setPosition|setPosWorld|setPylonLoadOut|setPylonsPriority|setRadioMsg|setRain|setRainbow|setRandomLip|setRank|setRectangular|setRepairCargo|setRotorBrakeRTD|setShadowDistance|setShotParents|setSide|setSimpleTaskAlwaysVisible|setSimpleTaskCustomData|setSimpleTaskDescription|setSimpleTaskDestination|setSimpleTaskTarget|setSimpleTaskType|setSimulWeatherLayers|setSize|setSkill|setSlingLoad|setSoundEffect|setSpeaker|setSpeech|setSpeedMode|setStamina|setStaminaScheme|setStatValue|setSuppression|setSystemOfUnits|setTargetAge|setTaskMarkerOffset|setTaskResult|setTaskState|setTerrainGrid|setText|setTimeMultiplier|setTitleEffect|setToneMapping|setToneMappingParams|setTrafficDensity|setTrafficDistance|setTrafficGap|setTrafficSpeed|setTriggerActivation|setTriggerArea|setTriggerStatements|setTriggerText|setTriggerTimeout|setTriggerType|setType|setUnconscious|setUnitAbility|setUnitLoadout|setUnitPos|setUnitPosWeak|setUnitRank|setUnitRecoilCoefficient|setUnitTrait|setUnloadInCombat|setUserActionText|setUserMFDText|setUserMFDValue|setVariable|setVectorDir|setVectorDirAndUp|setVectorUp|setVehicleAmmo|setVehicleAmmoDef|setVehicleArmor|setVehicleCargo|setVehicleId|setVehicleInit|setVehicleLock|setVehiclePosition|setVehicleRadar|setVehicleReceiveRemoteTargets|setVehicleReportOwnPosition|setVehicleReportRemoteTargets|setVehicleTIPars|setVehicleVarName|setVelocity|setVelocityModelSpace|setVelocityTransformation|setViewDistance|setVisibleIfTreeCollapsed|setWantedRpmRTD|setWaves|setWaypointBehaviour|setWaypointCombatMode|setWaypointCompletionRadius|setWaypointDescription|setWaypointForceBehaviour|setWaypointFormation|setWaypointHousePosition|setWaypointLoiterRadius|setWaypointLoiterType|setWaypointName|setWaypointPosition|setWaypointScript|setWaypointSpeed|setWaypointStatements|setWaypointTimeout|setWaypointType|setWaypointVisible|setWeaponReloadingTime|setWind|setWindDir|setWindForce|setWindStr|setWingForceScaleRTD|setWPPos|show3DIcons|showChat|showCinemaBorder|showCommandingMenu|showCompass|showCuratorCompass|showGPS|showHUD|showLegend|showMap|shownArtilleryComputer|shownChat|shownCompass|shownCuratorCompass|showNewEditorObject|shownGPS|shownHUD|shownMap|shownPad|shownRadio|shownScoretable|shownUAVFeed|shownWarrant|shownWatch|showPad|showRadio|showScoretable|showSubtitles|showUAVFeed|showWarrant|showWatch|showWaypoint|showWaypoints|side|sideAmbientLife|sideChat|sideEmpty|sideEnemy|sideFriendly|sideLogic|sideRadio|sideUnknown|simpleTasks|simulationEnabled|simulCloudDensity|simulCloudOcclusion|simulInClouds|simulWeatherSync|sin|size|sizeOf|skill|skillFinal|skipTime|sleep|sliderPosition|sliderRange|sliderSetPosition|sliderSetRange|sliderSetSpeed|sliderSpeed|slingLoadAssistantShown|soldierMagazines|someAmmo|sort|soundVolume|speaker|speed|speedMode|splitString|sqrt|squadParams|stance|startLoadingScreen|stop|stopEngineRTD|stopped|str|sunOrMoon|supportInfo|suppressFor|surfaceIsWater|surfaceNormal|surfaceType|swimInDepth|switchableUnits|switchAction|switchCamera|switchGesture|switchLight|switchMove|synchronizedObjects|synchronizedTriggers|synchronizedWaypoints|synchronizeObjectsAdd|synchronizeObjectsRemove|synchronizeTrigger|synchronizeWaypoint|systemChat|systemOfUnits|tan|targetKnowledge|targets|targetsAggregate|targetsQuery|taskAlwaysVisible|taskChildren|taskCompleted|taskCustomData|taskDescription|taskDestination|taskHint|taskMarkerOffset|taskNull|taskParent|taskResult|taskState|taskType|teamMember|teamMemberNull|teamName|teams|teamSwitch|teamSwitchEnabled|teamType|terminate|terrainIntersect|terrainIntersectASL|terrainIntersectAtASL|text|textLog|textLogFormat|tg|time|timeMultiplier|titleCut|titleFadeOut|titleObj|titleRsc|titleText|toArray|toFixed|toLower|toString|toUpper|triggerActivated|triggerActivation|triggerArea|triggerAttachedVehicle|triggerAttachObject|triggerAttachVehicle|triggerDynamicSimulation|triggerStatements|triggerText|triggerTimeout|triggerTimeoutCurrent|triggerType|turretLocal|turretOwner|turretUnit|tvAdd|tvClear|tvCollapse|tvCollapseAll|tvCount|tvCurSel|tvData|tvDelete|tvExpand|tvExpandAll|tvPicture|tvPictureRight|tvSetColor|tvSetCurSel|tvSetData|tvSetPicture|tvSetPictureColor|tvSetPictureColorDisabled|tvSetPictureColorSelected|tvSetPictureRight|tvSetPictureRightColor|tvSetPictureRightColorDisabled|tvSetPictureRightColorSelected|tvSetSelectColor|tvSetText|tvSetTooltip|tvSetValue|tvSort|tvSortByValue|tvText|tvTooltip|tvValue|type|typeName|typeOf|UAVControl|uiNamespace|uiSleep|unassignCurator|unassignItem|unassignTeam|unassignVehicle|underwater|uniform|uniformContainer|uniformItems|uniformMagazines|unitAddons|unitAimPosition|unitAimPositionVisual|unitBackpack|unitIsUAV|unitPos|unitReady|unitRecoilCoefficient|units|unitsBelowHeight|unlinkItem|unlockAchievement|unregisterTask|updateDrawIcon|updateMenuItem|updateObjectTree|useAIOperMapObstructionTest|useAISteeringComponent|useAudioTimeForMoves|userInputDisabled|vectorAdd|vectorCos|vectorCrossProduct|vectorDiff|vectorDir|vectorDirVisual|vectorDistance|vectorDistanceSqr|vectorDotProduct|vectorFromTo|vectorMagnitude|vectorMagnitudeSqr|vectorModelToWorld|vectorModelToWorldVisual|vectorMultiply|vectorNormalized|vectorUp|vectorUpVisual|vectorWorldToModel|vectorWorldToModelVisual|vehicle|vehicleCargoEnabled|vehicleChat|vehicleRadio|vehicleReceiveRemoteTargets|vehicleReportOwnPosition|vehicleReportRemoteTargets|vehicles|vehicleVarName|velocity|velocityModelSpace|verifySignature|vest|vestContainer|vestItems|vestMagazines|viewDistance|visibleCompass|visibleGPS|visibleMap|visiblePosition|visiblePositionASL|visibleScoretable|visibleWatch|waitUntil|waves|waypointAttachedObject|waypointAttachedVehicle|waypointAttachObject|waypointAttachVehicle|waypointBehaviour|waypointCombatMode|waypointCompletionRadius|waypointDescription|waypointForceBehaviour|waypointFormation|waypointHousePosition|waypointLoiterRadius|waypointLoiterType|waypointName|waypointPosition|waypoints|waypointScript|waypointsEnabledUAV|waypointShow|waypointSpeed|waypointStatements|waypointTimeout|waypointTimeoutCurrent|waypointType|waypointVisible|weaponAccessories|weaponAccessoriesCargo|weaponCargo|weaponDirection|weaponInertia|weaponLowered|weapons|weaponsItems|weaponsItemsCargo|weaponState|weaponsTurret|weightRTD|west|WFSideText|wind|windDir|windRTD|windStr|wingsForcesRTD|worldName|worldSize|worldToModel|worldToModelVisual|worldToScreen)\b/i,number:/(?:\$|\b0x)[\da-f]+\b|(?:\B\.\d+|\b\d+(?:\.\d+)?)(?:e[+-]?\d+)?\b/i,operator:/##|>>|&&|\|\||[!=<>]=?|[-+*/%#^]|\b(?:and|mod|not|or)\b/i,"magic-variable":{pattern:/\b(?:this|thisList|thisTrigger|_exception|_fnc_scriptName|_fnc_scriptNameParent|_forEachIndex|_this|_thisEventHandler|_thisFSM|_thisScript|_x)\b/i,alias:"keyword"},constant:/\bDIK(?:_[a-z\d]+)+\b/i}),e.languages.insertBefore("sqf","string",{macro:{pattern:/(^[ \t]*)#[a-z](?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{directive:{pattern:/#[a-z]+\b/i,alias:"keyword"},comment:e.languages.sqf.comment}}}),delete e.languages.sqf["class-name"]}e.exports=t,t.displayName="sqf",t.aliases=[]},7740:function(e){"use strict";function t(e){e.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}}e.exports=t,t.displayName="sql",t.aliases=[]},4038:function(e){"use strict";function t(e){e.languages.squirrel=e.languages.extend("clike",{comment:[e.languages.clike.comment[0],{pattern:/(^|[^\\:])(?:\/\/|#).*/,lookbehind:!0,greedy:!0}],string:{pattern:/(^|[^\\"'@])(?:@"(?:[^"]|"")*"(?!")|"(?:[^\\\r\n"]|\\.)*")/,lookbehind:!0,greedy:!0},"class-name":{pattern:/(\b(?:class|enum|extends|instanceof)\s+)\w+(?:\.\w+)*/,lookbehind:!0,inside:{punctuation:/\./}},keyword:/\b(?:__FILE__|__LINE__|base|break|case|catch|class|clone|const|constructor|continue|default|delete|else|enum|extends|for|foreach|function|if|in|instanceof|local|null|resume|return|static|switch|this|throw|try|typeof|while|yield)\b/,number:/\b(?:0x[0-9a-fA-F]+|\d+(?:\.(?:\d+|[eE][+-]?\d+))?)\b/,operator:/\+\+|--|<=>|<[-<]|>>>?|&&?|\|\|?|[-+*/%!=<>]=?|[~^]|::?/,punctuation:/[(){}\[\],;.]/}),e.languages.insertBefore("squirrel","string",{char:{pattern:/(^|[^\\"'])'(?:[^\\']|\\(?:[xuU][0-9a-fA-F]{0,8}|[\s\S]))'/,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("squirrel","operator",{"attribute-punctuation":{pattern:/<\/|\/>/,alias:"important"},lambda:{pattern:/@(?=\()/,alias:"operator"}})}e.exports=t,t.displayName="squirrel",t.aliases=[]},4585:function(e){"use strict";function t(e){!function(e){var t=/\b(?:algebra_solver|algebra_solver_newton|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect|ode_(?:adams|bdf|ckrk|rk45)(?:_tol)?|ode_adjoint_tol_ctl|reduce_sum|reduce_sum_static)\b/;e.languages.stan={comment:/\/\/.*|\/\*[\s\S]*?\*\/|#(?!include).*/,string:{pattern:/"[\x20\x21\x23-\x5B\x5D-\x7E]*"/,greedy:!0},directive:{pattern:/^([ \t]*)#include\b.*/m,lookbehind:!0,alias:"property"},"function-arg":{pattern:RegExp("("+t.source+/\s*\(\s*/.source+")"+/[a-zA-Z]\w*/.source),lookbehind:!0,alias:"function"},constraint:{pattern:/(\b(?:int|matrix|real|row_vector|vector)\s*)<[^<>]*>/,lookbehind:!0,inside:{expression:{pattern:/(=\s*)\S(?:\S|\s+(?!\s))*?(?=\s*(?:>$|,\s*\w+\s*=))/,lookbehind:!0,inside:null},property:/\b[a-z]\w*(?=\s*=)/i,operator:/=/,punctuation:/^<|>$|,/}},keyword:[{pattern:/\bdata(?=\s*\{)|\b(?:functions|generated|model|parameters|quantities|transformed)\b/,alias:"program-block"},/\b(?:array|break|cholesky_factor_corr|cholesky_factor_cov|complex|continue|corr_matrix|cov_matrix|data|else|for|if|in|increment_log_prob|int|matrix|ordered|positive_ordered|print|real|reject|return|row_vector|simplex|target|unit_vector|vector|void|while)\b/,t],function:/\b[a-z]\w*(?=\s*\()/i,number:/(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:E[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,boolean:/\b(?:false|true)\b/,operator:/<-|\.[*/]=?|\|\|?|&&|[!=<>+\-*/]=?|['^%~?:]/,punctuation:/[()\[\]{},;]/},e.languages.stan.constraint.inside.expression.inside=e.languages.stan}(e)}e.exports=t,t.displayName="stan",t.aliases=[]},692:function(e){"use strict";function t(e){!function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(e)}e.exports=t,t.displayName="stylus",t.aliases=[]},3171:function(e){"use strict";function t(e){e.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},e.languages.swift["string-literal"].forEach((function(t){t.inside.interpolation.inside=e.languages.swift}))}e.exports=t,t.displayName="swift",t.aliases=[]},2257:function(e){"use strict";function t(e){!function(e){var t={pattern:/^[;#].*/m,greedy:!0},n=/"(?:[^\r\n"\\]|\\(?:[^\r]|\r\n?))*"(?!\S)/.source;e.languages.systemd={comment:t,section:{pattern:/^\[[^\n\r\[\]]*\](?=[ \t]*$)/m,greedy:!0,inside:{punctuation:/^\[|\]$/,"section-name":{pattern:/[\s\S]+/,alias:"selector"}}},key:{pattern:/^[^\s=]+(?=[ \t]*=)/m,greedy:!0,alias:"attr-name"},value:{pattern:RegExp(/(=[ \t]*(?!\s))/.source+"(?:"+n+'|(?=[^"\r\n]))(?:'+/[^\s\\]/.source+'|[ \t]+(?:(?![ \t"])|'+n+")|"+/\\[\r\n]+(?:[#;].*[\r\n]+)*(?![#;])/.source+")*"),lookbehind:!0,greedy:!0,alias:"attr-value",inside:{comment:t,quoted:{pattern:RegExp(/(^|\s)/.source+n),lookbehind:!0,greedy:!0},punctuation:/\\$/m,boolean:{pattern:/^(?:false|no|off|on|true|yes)$/,greedy:!0}}},punctuation:/=/}}(e)}e.exports=t,t.displayName="systemd",t.aliases=[]},5559:function(e,t,n){"use strict";var r=n(9547),a=n(3281);function i(e){e.register(r),e.register(a),e.languages.t4=e.languages["t4-cs"]=e.languages["t4-templating"].createT4("csharp")}e.exports=i,i.displayName="t4Cs",i.aliases=[]},9547:function(e){"use strict";function t(e){!function(e){function t(e,t,n){return{pattern:RegExp("<#"+e+"[\\s\\S]*?#>"),alias:"block",inside:{delimiter:{pattern:RegExp("^<#"+e+"|#>$"),alias:"important"},content:{pattern:/[\s\S]+/,inside:t,alias:n}}}}e.languages["t4-templating"]=Object.defineProperty({},"createT4",{value:function(n){var r=e.languages[n],a="language-"+n;return{block:{pattern:/<#[\s\S]+?#>/,inside:{directive:t("@",{"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/,inside:{punctuation:/^=|^["']|["']$/}},keyword:/\b\w+(?=\s)/,"attr-name":/\b\w+/}),expression:t("=",r,a),"class-feature":t("\\+",r,a),standard:t("",r,a)}}}}})}(e)}e.exports=t,t.displayName="t4Templating",t.aliases=[]},9338:function(e,t,n){"use strict";var r=n(9547),a=n(4941);function i(e){e.register(r),e.register(a),e.languages["t4-vb"]=e.languages["t4-templating"].createT4("vbnet")}e.exports=i,i.displayName="t4Vb",i.aliases=[]},5515:function(e,t,n){"use strict";var r=n(5133);function a(e){e.register(r),e.languages.tap={fail:/not ok[^#{\n\r]*/,pass:/ok[^#{\n\r]*/,pragma:/pragma [+-][a-z]+/,bailout:/bail out!.*/i,version:/TAP version \d+/i,plan:/\b\d+\.\.\d+(?: +#.*)?/,subtest:{pattern:/# Subtest(?:: .*)?/,greedy:!0},punctuation:/[{}]/,directive:/#.*/,yamlish:{pattern:/(^[ \t]*)---[\s\S]*?[\r\n][ \t]*\.\.\.$/m,lookbehind:!0,inside:e.languages.yaml,alias:"language-yaml"}}}e.exports=a,a.displayName="tap",a.aliases=[]},4207:function(e){"use strict";function t(e){e.languages.tcl={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:{pattern:/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"/,greedy:!0},variable:[{pattern:/(\$)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/,lookbehind:!0},{pattern:/(\$)\{[^}]+\}/,lookbehind:!0},{pattern:/(^[\t ]*set[ \t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/m,lookbehind:!0}],function:{pattern:/(^[\t ]*proc[ \t]+)\S+/m,lookbehind:!0},builtin:[{pattern:/(^[\t ]*)(?:break|class|continue|error|eval|exit|for|foreach|if|proc|return|switch|while)\b/m,lookbehind:!0},/\b(?:else|elseif)\b/],scope:{pattern:/(^[\t ]*)(?:global|upvar|variable)\b/m,lookbehind:!0,alias:"constant"},keyword:{pattern:/(^[\t ]*|\[)(?:Safe_Base|Tcl|after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|scan|seek|set|socket|source|split|string|subst|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|test|vars|wordBreak(?:After|Before))|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\b/m,lookbehind:!0},operator:/!=?|\*\*?|==|&&?|\|\|?|<[=<]?|>[=>]?|[-+~\/%?^]|\b(?:eq|in|ne|ni)\b/,punctuation:/[{}()\[\]]/}}e.exports=t,t.displayName="tcl",t.aliases=[]},7492:function(e){"use strict";function t(e){!function(e){var t=/\([^|()\n]+\)|\[[^\]\n]+\]|\{[^}\n]+\}/.source,n=/\)|\((?![^|()\n]+\))/.source;function r(e,r){return RegExp(e.replace(/<MOD>/g,(function(){return"(?:"+t+")"})).replace(/<PAR>/g,(function(){return"(?:"+n+")"})),r||"")}var a={css:{pattern:/\{[^{}]+\}/,inside:{rest:e.languages.css}},"class-id":{pattern:/(\()[^()]+(?=\))/,lookbehind:!0,alias:"attr-value"},lang:{pattern:/(\[)[^\[\]]+(?=\])/,lookbehind:!0,alias:"attr-value"},punctuation:/[\\\/]\d+|\S/},i=e.languages.textile=e.languages.extend("markup",{phrase:{pattern:/(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,lookbehind:!0,inside:{"block-tag":{pattern:r(/^[a-z]\w*(?:<MOD>|<PAR>|[<>=])*\./.source),inside:{modifier:{pattern:r(/(^[a-z]\w*)(?:<MOD>|<PAR>|[<>=])+(?=\.)/.source),lookbehind:!0,inside:a},tag:/^[a-z]\w*/,punctuation:/\.$/}},list:{pattern:r(/^[*#]+<MOD>*\s+\S.*/.source,"m"),inside:{modifier:{pattern:r(/(^[*#]+)<MOD>+/.source),lookbehind:!0,inside:a},punctuation:/^[*#]+/}},table:{pattern:r(/^(?:(?:<MOD>|<PAR>|[<>=^~])+\.\s*)?(?:\|(?:(?:<MOD>|<PAR>|[<>=^~_]|[\\/]\d+)+\.|(?!(?:<MOD>|<PAR>|[<>=^~_]|[\\/]\d+)+\.))[^|]*)+\|/.source,"m"),inside:{modifier:{pattern:r(/(^|\|(?:\r?\n|\r)?)(?:<MOD>|<PAR>|[<>=^~_]|[\\/]\d+)+(?=\.)/.source),lookbehind:!0,inside:a},punctuation:/\||^\./}},inline:{pattern:r(/(^|[^a-zA-Z\d])(\*\*|__|\?\?|[*_%@+\-^~])<MOD>*.+?\2(?![a-zA-Z\d])/.source),lookbehind:!0,inside:{bold:{pattern:r(/(^(\*\*?)<MOD>*).+?(?=\2)/.source),lookbehind:!0},italic:{pattern:r(/(^(__?)<MOD>*).+?(?=\2)/.source),lookbehind:!0},cite:{pattern:r(/(^\?\?<MOD>*).+?(?=\?\?)/.source),lookbehind:!0,alias:"string"},code:{pattern:r(/(^@<MOD>*).+?(?=@)/.source),lookbehind:!0,alias:"keyword"},inserted:{pattern:r(/(^\+<MOD>*).+?(?=\+)/.source),lookbehind:!0},deleted:{pattern:r(/(^-<MOD>*).+?(?=-)/.source),lookbehind:!0},span:{pattern:r(/(^%<MOD>*).+?(?=%)/.source),lookbehind:!0},modifier:{pattern:r(/(^\*\*|__|\?\?|[*_%@+\-^~])<MOD>+/.source),lookbehind:!0,inside:a},punctuation:/[*_%?@+\-^~]+/}},"link-ref":{pattern:/^\[[^\]]+\]\S+$/m,inside:{string:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0},url:{pattern:/(^\])\S+$/,lookbehind:!0},punctuation:/[\[\]]/}},link:{pattern:r(/"<MOD>*[^"]+":.+?(?=[^\w/]?(?:\s|$))/.source),inside:{text:{pattern:r(/(^"<MOD>*)[^"]+(?=")/.source),lookbehind:!0},modifier:{pattern:r(/(^")<MOD>+/.source),lookbehind:!0,inside:a},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[":]/}},image:{pattern:r(/!(?:<MOD>|<PAR>|[<>=])*(?![<>=])[^!\s()]+(?:\([^)]+\))?!(?::.+?(?=[^\w/]?(?:\s|$)))?/.source),inside:{source:{pattern:r(/(^!(?:<MOD>|<PAR>|[<>=])*)(?![<>=])[^!\s()]+(?:\([^)]+\))?(?=!)/.source),lookbehind:!0,alias:"url"},modifier:{pattern:r(/(^!)(?:<MOD>|<PAR>|[<>=])+/.source),lookbehind:!0,inside:a},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[!:]/}},footnote:{pattern:/\b\[\d+\]/,alias:"comment",inside:{punctuation:/\[|\]/}},acronym:{pattern:/\b[A-Z\d]+\([^)]+\)/,inside:{comment:{pattern:/(\()[^()]+(?=\))/,lookbehind:!0},punctuation:/[()]/}},mark:{pattern:/\b\((?:C|R|TM)\)/,alias:"comment",inside:{punctuation:/[()]/}}}}}),o=i.phrase.inside,s={inline:o.inline,link:o.link,image:o.image,footnote:o.footnote,acronym:o.acronym,mark:o.mark};i.tag.pattern=/<\/?(?!\d)[a-z0-9]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i;var l=o.inline.inside;l.bold.inside=s,l.italic.inside=s,l.inserted.inside=s,l.deleted.inside=s,l.span.inside=s;var c=o.table.inside;c.inline=s.inline,c.link=s.link,c.image=s.image,c.footnote=s.footnote,c.acronym=s.acronym,c.mark=s.mark}(e)}e.exports=t,t.displayName="textile",t.aliases=[]},6453:function(e){"use strict";function t(e){!function(e){var t=/(?:[\w-]+|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*")/.source;function n(e){return e.replace(/__/g,(function(){return t}))}e.languages.toml={comment:{pattern:/#.*/,greedy:!0},table:{pattern:RegExp(n(/(^[\t ]*\[\s*(?:\[\s*)?)__(?:\s*\.\s*__)*(?=\s*\])/.source),"m"),lookbehind:!0,greedy:!0,alias:"class-name"},key:{pattern:RegExp(n(/(^[\t ]*|[{,]\s*)__(?:\s*\.\s*__)*(?=\s*=)/.source),"m"),lookbehind:!0,greedy:!0,alias:"property"},string:{pattern:/"""(?:\\[\s\S]|[^\\])*?"""|'''[\s\S]*?'''|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},date:[{pattern:/\b\d{4}-\d{2}-\d{2}(?:[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?)?\b/i,alias:"number"},{pattern:/\b\d{2}:\d{2}:\d{2}(?:\.\d+)?\b/,alias:"number"}],number:/(?:\b0(?:x[\da-zA-Z]+(?:_[\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\b|[-+]?\b\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?\b|[-+]?\b(?:inf|nan)\b/,boolean:/\b(?:false|true)\b/,punctuation:/[.,=[\]{}]/}}(e)}e.exports=t,t.displayName="toml",t.aliases=[]},6686:function(e){"use strict";function t(e){!function(e){e.languages.tremor={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},"interpolated-string":null,extractor:{pattern:/\b[a-z_]\w*\|(?:[^\r\n\\|]|\\(?:\r\n|[\s\S]))*\|/i,greedy:!0,inside:{regex:{pattern:/(^re)\|[\s\S]+/,lookbehind:!0},function:/^\w+/,value:/\|[\s\S]+/}},identifier:{pattern:/`[^`]*`/,greedy:!0},function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())\b/,keyword:/\b(?:args|as|by|case|config|connect|connector|const|copy|create|default|define|deploy|drop|each|emit|end|erase|event|flow|fn|for|from|group|having|insert|into|intrinsic|let|links|match|merge|mod|move|of|operator|patch|pipeline|recur|script|select|set|sliding|state|stream|to|tumbling|update|use|when|where|window|with)\b/,boolean:/\b(?:false|null|true)\b/i,number:/\b(?:0b[01_]*|0x[0-9a-fA-F_]*|\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee][+-]?[\d_]+)?)\b/,"pattern-punctuation":{pattern:/%(?=[({[])/,alias:"punctuation"},operator:/[-+*\/%~!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?>?=?|(?:absent|and|not|or|present|xor)\b/,punctuation:/::|[;\[\]()\{\},.:]/};var t=/#\{(?:[^"{}]|\{[^{}]*\}|"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*")*\}/.source;e.languages.tremor["interpolated-string"]={pattern:RegExp(/(^|[^\\])/.source+'(?:"""(?:'+/[^"\\#]|\\[\s\S]|"(?!"")|#(?!\{)/.source+"|"+t+')*"""|"(?:'+/[^"\\\r\n#]|\\(?:\r\n|[\s\S])|#(?!\{)/.source+"|"+t+')*")'),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:RegExp(t),inside:{punctuation:/^#\{|\}$/,expression:{pattern:/[\s\S]+/,inside:e.languages.tremor}}},string:/[\s\S]+/}},e.languages.troy=e.languages.tremor,e.languages.trickle=e.languages.tremor}(e)}e.exports=t,t.displayName="tremor",t.aliases=[]},7369:function(e,t,n){"use strict";var r=n(765),a=n(9669);function i(e){e.register(r),e.register(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(e)}e.exports=i,i.displayName="tsx",i.aliases=[]},7191:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),function(e){e.languages.tt2=e.languages.extend("clike",{comment:/#.*|\[%#[\s\S]*?%\]/,keyword:/\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|SWITCH|TAGS|THROW|TRY|UNLESS|USE|WHILE|WRAPPER)\b/,punctuation:/[[\]{},()]/}),e.languages.insertBefore("tt2","number",{operator:/=[>=]?|!=?|<=?|>=?|&&|\|\|?|\b(?:and|not|or)\b/,variable:{pattern:/\b[a-z]\w*(?:\s*\.\s*(?:\d+|\$?[a-z]\w*))*\b/i}}),e.languages.insertBefore("tt2","keyword",{delimiter:{pattern:/^(?:\[%|%%)-?|-?%\]$/,alias:"punctuation"}}),e.languages.insertBefore("tt2","string",{"single-quoted-string":{pattern:/'[^\\']*(?:\\[\s\S][^\\']*)*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"[^\\"]*(?:\\[\s\S][^\\"]*)*"/,greedy:!0,alias:"string",inside:{variable:{pattern:/\$(?:[a-z]\w*(?:\.(?:\d+|\$?[a-z]\w*))*)/i}}}}),delete e.languages.tt2.string,e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"tt2",/\[%[\s\S]+?%\]/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"tt2")}))}(e)}e.exports=a,a.displayName="tt2",a.aliases=[]},3089:function(e){"use strict";function t(e){e.languages.turtle={comment:{pattern:/#.*/,greedy:!0},"multiline-string":{pattern:/"""(?:(?:""?)?(?:[^"\\]|\\.))*"""|'''(?:(?:''?)?(?:[^'\\]|\\.))*'''/,greedy:!0,alias:"string",inside:{comment:/#.*/}},string:{pattern:/"(?:[^\\"\r\n]|\\.)*"|'(?:[^\\'\r\n]|\\.)*'/,greedy:!0},url:{pattern:/<(?:[^\x00-\x20<>"{}|^`\\]|\\(?:u[\da-fA-F]{4}|U[\da-fA-F]{8}))*>/,greedy:!0,inside:{punctuation:/[<>]/}},function:{pattern:/(?:(?![-.\d\xB7])[-.\w\xB7\xC0-\uFFFD]+)?:(?:(?![-.])(?:[-.:\w\xC0-\uFFFD]|%[\da-f]{2}|\\.)+)?/i,inside:{"local-name":{pattern:/([^:]*:)[\s\S]+/,lookbehind:!0},prefix:{pattern:/[\s\S]+/,inside:{punctuation:/:/}}}},number:/[+-]?\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,punctuation:/[{}.,;()[\]]|\^\^/,boolean:/\b(?:false|true)\b/,keyword:[/(?:\ba|@prefix|@base)\b|=/,/\b(?:base|graph|prefix)\b/i],tag:{pattern:/@[a-z]+(?:-[a-z\d]+)*/i,inside:{punctuation:/@/}}},e.languages.trig=e.languages.turtle}e.exports=t,t.displayName="turtle",t.aliases=[]},4411:function(e,t,n){"use strict";var r=n(595);function a(e){e.register(r),e.languages.twig={comment:/^\{#[\s\S]*?#\}$/,"tag-name":{pattern:/(^\{%-?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%]-?|-?[%}]\}$/,alias:"punctuation"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/}},keyword:/\b(?:even|if|odd)\b/,boolean:/\b(?:false|null|true)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],punctuation:/[()\[\]{}:.,]/},e.hooks.add("before-tokenize",(function(t){if("twig"===t.language){e.languages["markup-templating"].buildPlaceholders(t,"twig",/\{(?:#[\s\S]*?#|%[\s\S]*?%|\{[\s\S]*?\})\}/g)}})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"twig")}))}e.exports=a,a.displayName="twig",a.aliases=[]},9669:function(e){"use strict";function t(e){!function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(e)}e.exports=t,t.displayName="typescript",t.aliases=["ts"]},4773:function(e){"use strict";function t(e){!function(e){var t=/\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\b/;e.languages.typoscript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:= \t]|(?:^|[^= \t])[ \t]+)\/\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^"'])#.*/,lookbehind:!0,greedy:!0}],function:[{pattern:/<INCLUDE_TYPOSCRIPT:\s*source\s*=\s*(?:"[^"\r\n]*"|'[^'\r\n]*')\s*>/,inside:{string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,inside:{keyword:t}},keyword:{pattern:/INCLUDE_TYPOSCRIPT/}}},{pattern:/@import\s*(?:"[^"\r\n]*"|'[^'\r\n]*')/,inside:{string:/"[^"\r\n]*"|'[^'\r\n]*'/}}],string:{pattern:/^([^=]*=[< ]?)(?:(?!\]\n).)*/,lookbehind:!0,inside:{function:/\{\$.*\}/,keyword:t,number:/^\d+$/,punctuation:/[,|:]/}},keyword:t,number:{pattern:/\b\d+\s*[.{=]/,inside:{operator:/[.{=]/}},tag:{pattern:/\.?[-\w\\]+\.?/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:|]/,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/},e.languages.tsconfig=e.languages.typoscript}(e)}e.exports=t,t.displayName="typoscript",t.aliases=["tsconfig"]},3210:function(e){"use strict";function t(e){e.languages.unrealscript={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},category:{pattern:/(\b(?:(?:autoexpand|hide|show)categories|var)\s*\()[^()]+(?=\))/,lookbehind:!0,greedy:!0,alias:"property"},metadata:{pattern:/(\w\s*)<\s*\w+\s*=[^<>|=\r\n]+(?:\|\s*\w+\s*=[^<>|=\r\n]+)*>/,lookbehind:!0,greedy:!0,inside:{property:/\b\w+(?=\s*=)/,operator:/=/,punctuation:/[<>|]/}},macro:{pattern:/`\w+/,alias:"property"},"class-name":{pattern:/(\b(?:class|enum|extends|interface|state(?:\(\))?|struct|within)\s+)\w+/,lookbehind:!0},keyword:/\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/>>|<<|--|\+\+|\*\*|[-+*/~!=<>$@]=?|&&?|\|\|?|\^\^?|[?:%]|\b(?:ClockwiseFrom|Cross|Dot)\b/,punctuation:/[()[\]{};,.]/},e.languages.uc=e.languages.uscript=e.languages.unrealscript}e.exports=t,t.displayName="unrealscript",t.aliases=["uc","uscript"]},2613:function(e){"use strict";function t(e){e.languages.uorazor={"comment-hash":{pattern:/#.*/,alias:"comment",greedy:!0},"comment-slash":{pattern:/\/\/.*/,alias:"comment",greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/},greedy:!0},"source-layers":{pattern:/\b(?:arms|backpack|blue|bracelet|cancel|clear|cloak|criminal|earrings|enemy|facialhair|friend|friendly|gloves|gray|grey|ground|hair|head|innerlegs|innertorso|innocent|lefthand|middletorso|murderer|neck|nonfriendly|onehandedsecondary|outerlegs|outertorso|pants|red|righthand|ring|self|shirt|shoes|talisman|waist)\b/i,alias:"function"},"source-commands":{pattern:/\b(?:alliance|attack|cast|clearall|clearignore|clearjournal|clearlist|clearsysmsg|createlist|createtimer|dclick|dclicktype|dclickvar|dress|dressconfig|drop|droprelloc|emote|getlabel|guild|gumpclose|gumpresponse|hotkey|ignore|lasttarget|lift|lifttype|menu|menuresponse|msg|org|organize|organizer|overhead|pause|poplist|potion|promptresponse|pushlist|removelist|removetimer|rename|restock|say|scav|scavenger|script|setability|setlasttarget|setskill|settimer|setvar|sysmsg|target|targetloc|targetrelloc|targettype|undress|unignore|unsetvar|useobject|useonce|useskill|usetype|virtue|wait|waitforgump|waitformenu|waitforprompt|waitforstat|waitforsysmsg|waitfortarget|walk|wfsysmsg|wft|whisper|yell)\b/,alias:"function"},"tag-name":{pattern:/(^\{%-?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%]-?|-?[%}]\}$/,alias:"punctuation"},function:/\b(?:atlist|close|closest|count|counter|counttype|dead|dex|diffhits|diffmana|diffstam|diffweight|find|findbuff|finddebuff|findlayer|findtype|findtypelist|followers|gumpexists|hidden|hits|hp|hue|human|humanoid|ingump|inlist|insysmessage|insysmsg|int|invul|lhandempty|list|listexists|mana|maxhits|maxhp|maxmana|maxstam|maxweight|monster|mounted|name|next|noto|paralyzed|poisoned|position|prev|previous|queued|rand|random|rhandempty|skill|stam|str|targetexists|timer|timerexists|varexist|warmode|weight)\b/,keyword:/\b(?:and|as|break|continue|else|elseif|endfor|endif|endwhile|for|if|loop|not|or|replay|stop|while)\b/,boolean:/\b(?:false|null|true)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],punctuation:/[()\[\]{}:.,]/}}e.exports=t,t.displayName="uorazor",t.aliases=[]},4317:function(e){"use strict";function t(e){e.languages.uri={scheme:{pattern:/^[a-z][a-z0-9+.-]*:/im,greedy:!0,inside:{"scheme-delimiter":/:$/}},fragment:{pattern:/#[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"fragment-delimiter":/^#/}},query:{pattern:/\?[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"query-delimiter":{pattern:/^\?/,greedy:!0},"pair-delimiter":/[&;]/,pair:{pattern:/^[^=][\s\S]*/,inside:{key:/^[^=]+/,value:{pattern:/(^=)[\s\S]+/,lookbehind:!0}}}}},authority:{pattern:RegExp(/^\/\//.source+/(?:[\w\-.~!$&'()*+,;=%:]*@)?/.source+"(?:"+/\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\.[\w\-.~!$&'()*+,;=]+)\]/.source+"|"+/[\w\-.~!$&'()*+,;=%]*/.source+")"+/(?::\d*)?/.source,"m"),inside:{"authority-delimiter":/^\/\//,"user-info-segment":{pattern:/^[\w\-.~!$&'()*+,;=%:]*@/,inside:{"user-info-delimiter":/@$/,"user-info":/^[\w\-.~!$&'()*+,;=%:]+/}},"port-segment":{pattern:/:\d*$/,inside:{"port-delimiter":/^:/,port:/^\d+/}},host:{pattern:/[\s\S]+/,inside:{"ip-literal":{pattern:/^\[[\s\S]+\]$/,inside:{"ip-literal-delimiter":/^\[|\]$/,"ipv-future":/^v[\s\S]+/,"ipv6-address":/^[\s\S]+/}},"ipv4-address":/^(?:(?:[03-9]\d?|[12]\d{0,2})\.){3}(?:[03-9]\d?|[12]\d{0,2})$/}}}},path:{pattern:/^[\w\-.~!$&'()*+,;=%:@/]+/m,inside:{"path-separator":/\//}}},e.languages.url=e.languages.uri}e.exports=t,t.displayName="uri",t.aliases=["url"]},1927:function(e){"use strict";function t(e){!function(e){var t={pattern:/[\s\S]+/,inside:null};e.languages.v=e.languages.extend("clike",{string:{pattern:/r?(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,alias:"quoted-string",greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\{[^{}]*\}|\w+(?:\.\w+(?:\([^\(\)]*\))?|\[[^\[\]]+\])*)/,lookbehind:!0,inside:{"interpolation-variable":{pattern:/^\$\w[\s\S]*$/,alias:"variable"},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},"interpolation-expression":t}}}},"class-name":{pattern:/(\b(?:enum|interface|struct|type)\s+)(?:C\.)?\w+/,lookbehind:!0},keyword:/(?:\b(?:__global|as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\$(?:else|for|if)|#(?:flag|include))\b/,number:/\b(?:0x[a-f\d]+(?:_[a-f\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?)\b/i,operator:/~|\?|[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\.?/,builtin:/\b(?:any(?:_float|_int)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|64|128|nt)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\b/}),t.inside=e.languages.v,e.languages.insertBefore("v","string",{char:{pattern:/`(?:\\`|\\?[^`]{1,2})`/,alias:"rune"}}),e.languages.insertBefore("v","operator",{attribute:{pattern:/(^[\t ]*)\[(?:deprecated|direct_array_access|flag|inline|live|ref_only|typedef|unsafe_fn|windows_stdcall)\]/m,lookbehind:!0,alias:"annotation",inside:{punctuation:/[\[\]]/,keyword:/\w+/}},generic:{pattern:/<\w+>(?=\s*[\)\{])/,inside:{punctuation:/[<>]/,"class-name":/\w+/}}}),e.languages.insertBefore("v","function",{"generic-function":{pattern:/\b\w+\s*<\w+>(?=\()/,inside:{function:/^\w+/,generic:{pattern:/<\w+>/,inside:e.languages.v.generic.inside}}}})}(e)}e.exports=t,t.displayName="v",t.aliases=[]},6845:function(e){"use strict";function t(e){e.languages.vala=e.languages.extend("clike",{"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=(?:\?\s+|\*?\s+\*?)\w)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|enum|interface|new|struct)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],keyword:/\b(?:abstract|as|assert|async|base|bool|break|case|catch|char|class|const|construct|continue|default|delegate|delete|do|double|dynamic|else|ensures|enum|errordomain|extern|finally|float|for|foreach|get|if|in|inline|int|int16|int32|int64|int8|interface|internal|is|lock|long|namespace|new|null|out|override|owned|params|private|protected|public|ref|requires|return|set|short|signal|sizeof|size_t|ssize_t|static|string|struct|switch|this|throw|throws|try|typeof|uchar|uint|uint16|uint32|uint64|uint8|ulong|unichar|unowned|ushort|using|value|var|virtual|void|volatile|weak|while|yield)\b/i,function:/\b\w+(?=\s*\()/,number:/(?:\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?:f|u?l?)?/i,operator:/\+\+|--|&&|\|\||<<=?|>>=?|=>|->|~|[+\-*\/%&^|=!<>]=?|\?\??|\.\.\./,punctuation:/[{}[\];(),.:]/,constant:/\b[A-Z0-9_]+\b/}),e.languages.insertBefore("vala","string",{"raw-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"template-string":{pattern:/@"[\s\S]*?"/,greedy:!0,inside:{interpolation:{pattern:/\$(?:\([^)]*\)|[a-zA-Z]\w*)/,inside:{delimiter:{pattern:/^\$\(?|\)$/,alias:"punctuation"},rest:e.languages.vala}},string:/[\s\S]+/}}}),e.languages.insertBefore("vala","keyword",{regex:{pattern:/\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[imsx]{0,4}(?=\s*(?:$|[\r\n,.;})\]]))/,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:e.languages.regex},"regex-delimiter":/^\//,"regex-flags":/^[a-z]+$/}}})}e.exports=t,t.displayName="vala",t.aliases=[]},4941:function(e,t,n){"use strict";var r=n(7867);function a(e){e.register(r),e.languages.vbnet=e.languages.extend("basic",{comment:[{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},{pattern:/(^|[^\\:])'.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(^|[^"])"(?:""|[^"])*"(?!")/,lookbehind:!0,greedy:!0},keyword:/(?:\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDBL|CDEC|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DEFAULT|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LET|LIB|LIKE|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPERATOR|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHELL|SHORT|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SWAP|SYNCLOCK|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\$|\b)/i,punctuation:/[,;:(){}]/})}e.exports=a,a.displayName="vbnet",a.aliases=[]},9803:function(e){"use strict";function t(e){!function(e){e.languages.velocity=e.languages.extend("markup",{});var t={variable:{pattern:/(^|[^\\](?:\\\\)*)\$!?(?:[a-z][\w-]*(?:\([^)]*\))?(?:\.[a-z][\w-]*(?:\([^)]*\))?|\[[^\]]+\])*|\{[^}]+\})/i,lookbehind:!0,inside:{}},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},number:/\b\d+\b/,boolean:/\b(?:false|true)\b/,operator:/[=!<>]=?|[+*/%-]|&&|\|\||\.\.|\b(?:eq|g[et]|l[et]|n(?:e|ot))\b/,punctuation:/[(){}[\]:,.]/};t.variable.inside={string:t.string,function:{pattern:/([^\w-])[a-z][\w-]*(?=\()/,lookbehind:!0},number:t.number,boolean:t.boolean,punctuation:t.punctuation},e.languages.insertBefore("velocity","comment",{unparsed:{pattern:/(^|[^\\])#\[\[[\s\S]*?\]\]#/,lookbehind:!0,greedy:!0,inside:{punctuation:/^#\[\[|\]\]#$/}},"velocity-comment":[{pattern:/(^|[^\\])#\*[\s\S]*?\*#/,lookbehind:!0,greedy:!0,alias:"comment"},{pattern:/(^|[^\\])##.*/,lookbehind:!0,greedy:!0,alias:"comment"}],directive:{pattern:/(^|[^\\](?:\\\\)*)#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})(?:\s*\((?:[^()]|\([^()]*\))*\))?/i,lookbehind:!0,inside:{keyword:{pattern:/^#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})|\bin\b/,inside:{punctuation:/[{}]/}},rest:t}},variable:t.variable}),e.languages.velocity.tag.inside["attr-value"].inside.rest=e.languages.velocity}(e)}e.exports=t,t.displayName="velocity",t.aliases=[]},1107:function(e){"use strict";function t(e){e.languages.verilog={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"kernel-function":{pattern:/\B\$\w+\b/,alias:"property"},constant:/\B`\w+\b/,function:/\b\w+(?=\()/,keyword:/\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|case|casex|casez|cell|chandle|class|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endsequence|endspecify|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_ondetect|pulsestyle_onevent|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\b/,important:/\b(?:always|always_comb|always_ff|always_latch)\b(?: *@)?/,number:/\B##?\d+|(?:\b\d+)?'[odbh] ?[\da-fzx_?]+|\b(?:\d*[._])?\d+(?:e[-+]?\d+)?/i,operator:/[-+{}^~%*\/?=!<>&|]+/,punctuation:/[[\];(),.:]/}}e.exports=t,t.displayName="verilog",t.aliases=[]},1413:function(e){"use strict";function t(e){e.languages.vhdl={comment:/--.+/,"vhdl-vectors":{pattern:/\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,alias:"number"},"quoted-function":{pattern:/"\S+?"(?=\()/,alias:"function"},string:/"(?:[^\\"\r\n]|\\(?:\r\n|[\s\S]))*"/,constant:/\b(?:library|use)\b/i,keyword:/\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\b/i,boolean:/\b(?:false|true)\b/i,function:/\w+(?=\()/,number:/'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,operator:/[<>]=?|:=|[-+*/&=]|\b(?:abs|and|mod|nand|nor|not|or|rem|rol|ror|sla|sll|sra|srl|xnor|xor)\b/i,punctuation:/[{}[\];(),.:]/}}e.exports=t,t.displayName="vhdl",t.aliases=[]},3555:function(e){"use strict";function t(e){e.languages.vim={string:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/,comment:/".*/,function:/\b\w+(?=\()/,keyword:/\b(?:N|Next|P|Print|X|XMLent|XMLns|ab|abbreviate|abc|abclear|abo|aboveleft|al|all|ar|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|args|argu|argument|as|ascii|b|bN|bNext|ba|bad|badd|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bo|botright|bp|bprevious|br|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|brewind|bro|browse|bufdo|buffer|buffers|bun|bunload|bw|bwipeout|c|cN|cNext|cNfcNfile|ca|cabbrev|cabc|cabclear|cad|caddb|caddbuffer|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cg|cgetb|cgetbuffer|cgete|cgetexpr|cgetfile|change|changes|chd|chdir|che|checkpath|checkt|checktime|cl|cla|clast|clist|clo|close|cmapc|cmapclear|cn|cnew|cnewer|cnext|cnf|cnfile|cnorea|cnoreabbrev|co|col|colder|colo|colorscheme|comc|comclear|comp|compiler|con|conf|confirm|continue|cope|copen|copy|cp|cpf|cpfile|cprevious|cq|cquit|cr|crewind|cu|cuna|cunabbrev|cunmap|cw|cwindow|d|debugg|debuggreedy|delc|delcommand|delete|delf|delfunction|delm|delmarks|di|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|e|earlier|echoe|echoerr|echom|echomsg|echon|edit|el|else|elsei|elseif|em|emenu|en|endf|endfo|endfor|endfun|endfunction|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fin|fina|finally|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoc|folddoclosed|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|h|ha|hardcopy|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iu|iuna|iunabbrev|iunmap|j|join|ju|jumps|k|kee|keepalt|keepj|keepjumps|keepmarks|l|lN|lNext|lNf|lNfile|la|lad|laddb|laddbuffer|laddexpr|laddf|laddfile|lan|language|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|left|lefta|leftabove|let|lex|lexpr|lf|lfile|lfir|lfirst|lg|lgetb|lgetbuffer|lgete|lgetexpr|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|list|ll|lla|llast|lli|llist|lm|lmak|lmake|lmap|lmapc|lmapclear|ln|lne|lnew|lnewer|lnext|lnf|lnfile|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lpf|lpfile|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|ma|mak|make|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvie|mkview|mkvimrc|mod|mode|move|mz|mzf|mzfile|mzscheme|n|nbkey|new|next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|o|omapc|omapclear|on|only|open|opt|options|ou|ounmap|p|pc|pclose|pe|ped|pedit|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|print|prof|profd|profdel|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|ptN|ptNext|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|py|pyf|pyfile|python|q|qa|qall|quit|quita|quitall|r|read|rec|recover|red|redi|redir|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|rub|ruby|rubyd|rubydo|rubyf|rubyfile|runtime|rv|rviminfo|sN|sNext|sa|sal|sall|san|sandbox|sargument|sav|saveas|sb|sbN|sbNext|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbp|sbprevious|sbr|sbrewind|sbuffer|scrip|scripte|scriptencoding|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sl|sla|slast|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|so|sor|sort|source|sp|spe|spelld|spelldump|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|split|spr|sprevious|sre|srewind|st|sta|stag|star|startg|startgreplace|startinsert|startr|startreplace|stj|stjump|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tN|tNext|ta|tab|tabN|tabNext|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnew|tabnext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|u|una|unabbreviate|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|ve|verb|verbose|version|vert|vertical|vi|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|w|wN|wNext|wa|wall|wh|while|win|winc|wincmd|windo|winp|winpos|winsize|wn|wnext|wp|wprevious|wq|wqa|wqall|write|ws|wsverb|wv|wviminfo|x|xa|xall|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\b/,builtin:/\b(?:acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autocmd|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|t_AB|t_AF|t_AL|t_CS|t_CV|t_Ce|t_Co|t_Cs|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_IE|t_IS|t_K1|t_K3|t_K4|t_K5|t_K6|t_K7|t_K8|t_K9|t_KA|t_KB|t_KC|t_KD|t_KE|t_KF|t_KG|t_KH|t_KI|t_KJ|t_KK|t_KL|t_RI|t_RV|t_SI|t_Sb|t_Sf|t_WP|t_WS|t_ZH|t_ZR|t_al|t_bc|t_cd|t_ce|t_cl|t_cm|t_cs|t_da|t_db|t_dl|t_fs|t_k1|t_k2|t_k3|t_k4|t_k5|t_k6|t_k7|t_k8|t_k9|t_kB|t_kD|t_kI|t_kN|t_kP|t_kb|t_kd|t_ke|t_kh|t_kl|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_se|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_xs|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?)\b/i,operator:/\|\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\/%?]|\b(?:is(?:not)?)\b/,punctuation:/[{}[\](),;:]/}}e.exports=t,t.displayName="vim",t.aliases=[]},7117:function(e){"use strict";function t(e){e.languages["visual-basic"]={comment:{pattern:/(?:['\u2018\u2019]|REM\b)(?:[^\r\n_]|_(?:\r\n?|\n)?)*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\b_[ \t]*(?:\r\n?|\n)|.)+/i,alias:"property",greedy:!0},string:{pattern:/\$?["\u201c\u201d](?:["\u201c\u201d]{2}|[^"\u201c\u201d])*["\u201c\u201d]C?/i,greedy:!0},date:{pattern:/#[ \t]*(?:\d+([/-])\d+\1\d+(?:[ \t]+(?:\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?))?|\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?)[ \t]*#/i,alias:"number"},number:/(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:[FRD]|U?[ILS])?/i,boolean:/\b(?:False|Nothing|True)\b/i,keyword:/\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\b/i,operator:/[+\-*/\\^<=>&#@$%!]|\b_(?=[ \t]*[\r\n])/,punctuation:/[{}().,:?]/},e.languages.vb=e.languages["visual-basic"],e.languages.vba=e.languages["visual-basic"]}e.exports=t,t.displayName="visualBasic",t.aliases=[]},3244:function(e){"use strict";function t(e){e.languages.warpscript={comment:/#.*|\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'|<'(?:[^\\']|'(?!>)|\\.)*'>/,greedy:!0},variable:/\$\S+/,macro:{pattern:/@\S+/,alias:"property"},keyword:/\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\b/,number:/[+-]?\b(?:NaN|Infinity|\d+(?:\.\d*)?(?:[Ee][+-]?\d+)?|0x[\da-fA-F]+|0b[01]+)\b/,boolean:/\b(?:F|T|false|true)\b/,punctuation:/<%|%>|[{}[\]()]/,operator:/==|&&?|\|\|?|\*\*?|>>>?|<<|[<>!~]=?|[-/%^]|\+!?|\b(?:AND|NOT|OR)\b/}}e.exports=t,t.displayName="warpscript",t.aliases=[]},3673:function(e){"use strict";function t(e){e.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/}}e.exports=t,t.displayName="wasm",t.aliases=[]},8953:function(e){"use strict";function t(e){!function(e){var t=/(?:\B-|\b_|\b)[A-Za-z][\w-]*(?![\w-])/.source,n="(?:"+/\b(?:unsigned\s+)?long\s+long(?![\w-])/.source+"|"+/\b(?:unrestricted|unsigned)\s+[a-z]+(?![\w-])/.source+"|"+/(?!(?:unrestricted|unsigned)\b)/.source+t+/(?:\s*<(?:[^<>]|<[^<>]*>)*>)?/.source+")"+/(?:\s*\?)?/.source,r={};for(var a in e.languages["web-idl"]={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/"[^"]*"/,greedy:!0},namespace:{pattern:RegExp(/(\bnamespace\s+)/.source+t),lookbehind:!0},"class-name":[{pattern:/(^|[^\w-])(?:iterable|maplike|setlike)\s*<(?:[^<>]|<[^<>]*>)*>/,lookbehind:!0,inside:r},{pattern:RegExp(/(\b(?:attribute|const|deleter|getter|optional|setter)\s+)/.source+n),lookbehind:!0,inside:r},{pattern:RegExp("("+/\bcallback\s+/.source+t+/\s*=\s*/.source+")"+n),lookbehind:!0,inside:r},{pattern:RegExp(/(\btypedef\b\s*)/.source+n),lookbehind:!0,inside:r},{pattern:RegExp(/(\b(?:callback|dictionary|enum|interface(?:\s+mixin)?)\s+)(?!(?:interface|mixin)\b)/.source+t),lookbehind:!0},{pattern:RegExp(/(:\s*)/.source+t),lookbehind:!0},RegExp(t+/(?=\s+(?:implements|includes)\b)/.source),{pattern:RegExp(/(\b(?:implements|includes)\s+)/.source+t),lookbehind:!0},{pattern:RegExp(n+"(?="+/\s*(?:\.{3}\s*)?/.source+t+/\s*[(),;=]/.source+")"),inside:r}],builtin:/\b(?:ArrayBuffer|BigInt64Array|BigUint64Array|ByteString|DOMString|DataView|Float32Array|Float64Array|FrozenArray|Int16Array|Int32Array|Int8Array|ObservableArray|Promise|USVString|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray)\b/,keyword:[/\b(?:async|attribute|callback|const|constructor|deleter|dictionary|enum|getter|implements|includes|inherit|interface|mixin|namespace|null|optional|or|partial|readonly|required|setter|static|stringifier|typedef|unrestricted)\b/,/\b(?:any|bigint|boolean|byte|double|float|iterable|long|maplike|object|octet|record|sequence|setlike|short|symbol|undefined|unsigned|void)\b/],boolean:/\b(?:false|true)\b/,number:{pattern:/(^|[^\w-])-?(?:0x[0-9a-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|NaN|Infinity)(?![\w-])/i,lookbehind:!0},operator:/\.{3}|[=:?<>-]/,punctuation:/[(){}[\].,;]/},e.languages["web-idl"])"class-name"!==a&&(r[a]=e.languages["web-idl"][a]);e.languages.webidl=e.languages["web-idl"]}(e)}e.exports=t,t.displayName="webIdl",t.aliases=[]},6747:function(e){"use strict";function t(e){e.languages.wiki=e.languages.extend("markup",{"block-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,alias:"comment"},heading:{pattern:/^(=+)[^=\r\n].*?\1/m,inside:{punctuation:/^=+|=+$/,important:/.+/}},emphasis:{pattern:/('{2,5}).+?\1/,inside:{"bold-italic":{pattern:/(''''').+?(?=\1)/,lookbehind:!0,alias:["bold","italic"]},bold:{pattern:/(''')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},italic:{pattern:/('')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},punctuation:/^''+|''+$/}},hr:{pattern:/^-{4,}/m,alias:"punctuation"},url:[/ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:PMID|RFC) +\d+/i,/\[\[.+?\]\]|\[.+?\]/],variable:[/__[A-Z]+__/,/\{{3}.+?\}{3}/,/\{\{.+?\}\}/],symbol:[/^#redirect/im,/~{3,5}/],"table-tag":{pattern:/((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m,lookbehind:!0,inside:{"table-bar":{pattern:/\|$/,alias:"punctuation"},rest:e.languages.markup.tag.inside}},punctuation:/^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m}),e.languages.insertBefore("wiki","tag",{nowiki:{pattern:/<(nowiki|pre|source)\b[^>]*>[\s\S]*?<\/\1>/i,inside:{tag:{pattern:/<(?:nowiki|pre|source)\b[^>]*>|<\/(?:nowiki|pre|source)>/i,inside:e.languages.markup.tag.inside}}}})}e.exports=t,t.displayName="wiki",t.aliases=[]},4211:function(e){"use strict";function t(e){e.languages.wolfram={comment:/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\b/,context:{pattern:/\b\w+`+\w*/,alias:"class-name"},blank:{pattern:/\b\w+_\b/,alias:"regex"},"global-variable":{pattern:/\$\w+/,alias:"variable"},boolean:/\b(?:False|True)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/\/\.|;|=\.|\^=|\^:=|:=|<<|>>|<\||\|>|:>|\|->|->|<-|@@@|@@|@|\/@|=!=|===|==|=|\+|-|\^|\[\/-+%=\]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},e.languages.mathematica=e.languages.wolfram,e.languages.wl=e.languages.wolfram,e.languages.nb=e.languages.wolfram}e.exports=t,t.displayName="wolfram",t.aliases=["mathematica","wl","nb"]},8832:function(e){"use strict";function t(e){e.languages.wren={comment:[{pattern:/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*))*\*\/)*\*\/)*\*\//,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"string-literal":null,hashbang:{pattern:/^#!\/.+/,greedy:!0,alias:"comment"},attribute:{pattern:/#!?[ \t\u3000]*\w+/,alias:"keyword"},"class-name":[{pattern:/(\bclass\s+)\w+/,lookbehind:!0},/\b[A-Z][a-z\d_]*\b/],constant:/\b[A-Z][A-Z\d_]*\b/,null:{pattern:/\bnull\b/,alias:"keyword"},keyword:/\b(?:as|break|class|construct|continue|else|for|foreign|if|import|in|is|return|static|super|this|var|while)\b/,boolean:/\b(?:false|true)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,function:/\b[a-z_]\w*(?=\s*[({])/i,operator:/<<|>>|[=!<>]=?|&&|\|\||[-+*/%~^&|?:]|\.{2,3}/,punctuation:/[\[\](){}.,;]/},e.languages.wren["string-literal"]={pattern:/(^|[^\\"])"(?:[^\\"%]|\\[\s\S]|%(?!\()|%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\))*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\)/,lookbehind:!0,inside:{expression:{pattern:/^(%\()[\s\S]+(?=\)$)/,lookbehind:!0,inside:e.languages.wren},"interpolation-punctuation":{pattern:/^%\(|\)$/,alias:"punctuation"}}},string:/[\s\S]+/}}}e.exports=t,t.displayName="wren",t.aliases=[]},8186:function(e){"use strict";function t(e){!function(e){e.languages.xeora=e.languages.extend("markup",{constant:{pattern:/\$(?:DomainContents|PageRenderDuration)\$/,inside:{punctuation:{pattern:/\$/}}},variable:{pattern:/\$@?(?:#+|[-+*~=^])?[\w.]+\$/,inside:{punctuation:{pattern:/[$.]/},operator:{pattern:/#+|[-+*~=^@]/}}},"function-inline":{pattern:/\$F:[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\$/,inside:{variable:{pattern:/(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/,inside:{punctuation:{pattern:/[,.|]/},operator:{pattern:/#+|[-+*~=^@]/}}},punctuation:{pattern:/\$\w:|[$:?.,|]/}},alias:"function"},"function-block":{pattern:/\$XF:\{[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\}:XF\$/,inside:{punctuation:{pattern:/[$:{}?.,|]/}},alias:"function"},"directive-inline":{pattern:/\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\/\w.]+\$/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}}},alias:"function"},"directive-block-open":{pattern:/\$\w+:\{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\w.]+:\{(?:![A-Z]+)?/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}},attribute:{pattern:/![A-Z]+$/,inside:{punctuation:{pattern:/!/}},alias:"keyword"}},alias:"function"},"directive-block-separator":{pattern:/\}:[-\w.]+:\{/,inside:{punctuation:{pattern:/[:{}]/}},alias:"function"},"directive-block-close":{pattern:/\}:[-\w.]+\$/,inside:{punctuation:{pattern:/[:{}$]/}},alias:"function"}}),e.languages.insertBefore("inside","punctuation",{variable:e.languages.xeora["function-inline"].inside.variable},e.languages.xeora["function-block"]),e.languages.xeoracube=e.languages.xeora}(e)}e.exports=t,t.displayName="xeora",t.aliases=["xeoracube"]},3679:function(e){"use strict";function t(e){!function(e){function t(t,n){e.languages[t]&&e.languages.insertBefore(t,"comment",{"doc-comment":n})}var n=e.languages.markup.tag,r={pattern:/\/\/\/.*/,greedy:!0,alias:"comment",inside:{tag:n}},a={pattern:/'''.*/,greedy:!0,alias:"comment",inside:{tag:n}};t("csharp",r),t("fsharp",r),t("vbnet",a)}(e)}e.exports=t,t.displayName="xmlDoc",t.aliases=[]},1752:function(e){"use strict";function t(e){e.languages.xojo={comment:{pattern:/(?:'|\/\/|Rem\b).+/i,greedy:!0},string:{pattern:/"(?:""|[^"])*"/,greedy:!0},number:[/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,/&[bchou][a-z\d]+/i],directive:{pattern:/#(?:Else|ElseIf|Endif|If|Pragma)\b/i,alias:"property"},keyword:/\b(?:AddHandler|App|Array|As(?:signs)?|Auto|Boolean|Break|By(?:Ref|Val)|Byte|Call|Case|Catch|CFStringRef|CGFloat|Class|Color|Const|Continue|CString|Currency|CurrentMethodName|Declare|Delegate|Dim|Do(?:uble|wnTo)?|Each|Else(?:If)?|End|Enumeration|Event|Exception|Exit|Extends|False|Finally|For|Function|Get|GetTypeInfo|Global|GOTO|If|Implements|In|Inherits|Int(?:8|16|32|64|eger|erface)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Shared|Short|Single|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:8|16|32|64|eger)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\b/i,operator:/<[=>]?|>=?|[+\-*\/\\^=]|\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|WeakAddressOf|Xor)\b/i,punctuation:/[.,;:()]/}}e.exports=t,t.displayName="xojo",t.aliases=[]},243:function(e){"use strict";function t(e){!function(e){e.languages.xquery=e.languages.extend("markup",{"xquery-comment":{pattern:/\(:[\s\S]*?:\)/,greedy:!0,alias:"comment"},string:{pattern:/(["'])(?:\1\1|(?!\1)[\s\S])*\1/,greedy:!0},extension:{pattern:/\(#.+?#\)/,alias:"symbol"},variable:/\$[-\w:]+/,axis:{pattern:/(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,lookbehind:!0,alias:"operator"},"keyword-operator":{pattern:/(^|[^:-])\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\b(?=$|[^:-])/,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^:-])\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\b(?=$|[^:-])/,lookbehind:!0},function:/[\w-]+(?::[\w-]+)*(?=\s*\()/,"xquery-element":{pattern:/(element\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"tag"},"xquery-attribute":{pattern:/(attribute\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"attr-name"},builtin:{pattern:/(^|[^:-])\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:ENTITIES|ENTITY|ID|IDREFS?|NCName|NMTOKENS?|NOTATION|Name|QName|anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|int|integer|language|long|negativeInteger|nonNegativeInteger|nonPositiveInteger|normalizedString|positiveInteger|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\b(?=$|[^:-])/,lookbehind:!0},number:/\b\d+(?:\.\d+)?(?:E[+-]?\d+)?/,operator:[/[+*=?|@]|\.\.?|:=|!=|<[=<]?|>[=>]?/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}],punctuation:/[[\](){},;:/]/}),e.languages.xquery.tag.pattern=/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/,e.languages.xquery.tag.inside["attr-value"].pattern=/=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+)/,e.languages.xquery.tag.inside["attr-value"].inside.punctuation=/^="|"$/,e.languages.xquery.tag.inside["attr-value"].inside.expression={pattern:/\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}/,inside:e.languages.xquery,alias:"language-xquery"};var t=function e(t){return"string"===typeof t?t:"string"===typeof t.content?t.content:t.content.map(e).join("")},n=function n(r){for(var a=[],i=0;i<r.length;i++){var o=r[i],s=!1;if("string"!==typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?a.length>0&&a[a.length-1].tagName===t(o.content[0].content[1])&&a.pop():"/>"===o.content[o.content.length-1].content||a.push({tagName:t(o.content[0].content[1]),openedBraces:0}):!(a.length>0&&"punctuation"===o.type&&"{"===o.content)||r[i+1]&&"punctuation"===r[i+1].type&&"{"===r[i+1].content||r[i-1]&&"plain-text"===r[i-1].type&&"{"===r[i-1].content?a.length>0&&a[a.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?a[a.length-1].openedBraces--:"comment"!==o.type&&(s=!0):a[a.length-1].openedBraces++),(s||"string"===typeof o)&&a.length>0&&0===a[a.length-1].openedBraces){var l=t(o);i<r.length-1&&("string"===typeof r[i+1]||"plain-text"===r[i+1].type)&&(l+=t(r[i+1]),r.splice(i+1,1)),i>0&&("string"===typeof r[i-1]||"plain-text"===r[i-1].type)&&(l=t(r[i-1])+l,r.splice(i-1,1),i--),/^\s+$/.test(l)?r[i]=l:r[i]=new e.Token("plain-text",l,null,l)}o.content&&"string"!==typeof o.content&&n(o.content)}};e.hooks.add("after-tokenize",(function(e){"xquery"===e.language&&n(e.tokens)}))}(e)}e.exports=t,t.displayName="xquery",t.aliases=[]},5133:function(e){"use strict";function t(e){!function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),i=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function o(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+i+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:o(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:o(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:o(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:o(i),lookbehind:!0,greedy:!0},number:{pattern:o(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(e)}e.exports=t,t.displayName="yaml",t.aliases=["yml"]},2195:function(e){"use strict";function t(e){e.languages.yang={comment:/\/\*[\s\S]*?\*\/|\/\/.*/,string:{pattern:/"(?:[^\\"]|\\.)*"|'[^']*'/,greedy:!0},keyword:{pattern:/(^|[{};\r\n][ \t]*)[a-z_][\w.-]*/i,lookbehind:!0},namespace:{pattern:/(\s)[a-z_][\w.-]*(?=:)/i,lookbehind:!0},boolean:/\b(?:false|true)\b/,operator:/\+/,punctuation:/[{};:]/}}e.exports=t,t.displayName="yang",t.aliases=[]},3672:function(e){"use strict";function t(e){!function(e){function t(e){return function(){return e}}var n=/\b(?:align|allowzero|and|anyframe|anytype|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|nosuspend|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\b/,r="\\b(?!"+n.source+")(?!\\d)\\w+\\b",a=/align\s*\((?:[^()]|\([^()]*\))*\)/.source,i="(?!\\s)(?:!?\\s*(?:"+/(?:\?|\bpromise->|(?:\[[^[\]]*\]|\*(?!\*)|\*\*)(?:\s*<ALIGN>|\s*const\b|\s*volatile\b|\s*allowzero\b)*)/.source.replace(/<ALIGN>/g,t(a))+"\\s*)*"+/(?:\bpromise\b|(?:\berror\.)?<ID>(?:\.<ID>)*(?!\s+<ID>))/.source.replace(/<ID>/g,t(r))+")+";e.languages.zig={comment:[{pattern:/\/\/[/!].*/,alias:"doc-comment"},/\/{2}.*/],string:[{pattern:/(^|[^\\@])c?"(?:[^"\\\r\n]|\\.)*"/,lookbehind:!0,greedy:!0},{pattern:/([\r\n])([ \t]+c?\\{2}).*(?:(?:\r\n?|\n)\2.*)*/,lookbehind:!0,greedy:!0}],char:{pattern:/(^|[^\\])'(?:[^'\\\r\n]|[\uD800-\uDFFF]{2}|\\(?:.|x[a-fA-F\d]{2}|u\{[a-fA-F\d]{1,6}\}))'/,lookbehind:!0,greedy:!0},builtin:/\B@(?!\d)\w+(?=\s*\()/,label:{pattern:/(\b(?:break|continue)\s*:\s*)\w+\b|\b(?!\d)\w+\b(?=\s*:\s*(?:\{|while\b))/,lookbehind:!0},"class-name":[/\b(?!\d)\w+(?=\s*=\s*(?:(?:extern|packed)\s+)?(?:enum|struct|union)\s*[({])/,{pattern:RegExp(/(:\s*)<TYPE>(?=\s*(?:<ALIGN>\s*)?[=;,)])|<TYPE>(?=\s*(?:<ALIGN>\s*)?\{)/.source.replace(/<TYPE>/g,t(i)).replace(/<ALIGN>/g,t(a))),lookbehind:!0,inside:null},{pattern:RegExp(/(\)\s*)<TYPE>(?=\s*(?:<ALIGN>\s*)?;)/.source.replace(/<TYPE>/g,t(i)).replace(/<ALIGN>/g,t(a))),lookbehind:!0,inside:null}],"builtin-type":{pattern:/\b(?:anyerror|bool|c_u?(?:int|long|longlong|short)|c_longdouble|c_void|comptime_(?:float|int)|f(?:16|32|64|128)|[iu](?:8|16|32|64|128|size)|noreturn|type|void)\b/,alias:"keyword"},keyword:n,function:/\b(?!\d)\w+(?=\s*\()/,number:/\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\d]+(?:\.[a-fA-F\d]*)?(?:[pP][+-]?[a-fA-F\d]+)?|\d+(?:\.\d*)?(?:[eE][+-]?\d+)?)\b/,boolean:/\b(?:false|true)\b/,operator:/\.[*?]|\.{2,3}|[-=]>|\*\*|\+\+|\|\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,punctuation:/[.:,;(){}[\]]/},e.languages.zig["class-name"].forEach((function(t){null===t.inside&&(t.inside=e.languages.zig)}))}(e)}e.exports=t,t.displayName="zig",t.aliases=[]},3264:function(e,t,n){var r=function(e){var t=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,r={},a={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof i?new i(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++n}),e.__id},clone:function e(t,n){var r,i;switch(n=n||{},a.util.type(t)){case"Object":if(i=a.util.objId(t),n[i])return n[i];for(var o in r={},n[i]=r,t)t.hasOwnProperty(o)&&(r[o]=e(t[o],n));return r;case"Array":return i=a.util.objId(t),n[i]?n[i]:(r=[],n[i]=r,t.forEach((function(t,a){r[a]=e(t,n)})),r);default:return t}},getLanguage:function(e){for(;e;){var n=t.exec(e.className);if(n)return n[1].toLowerCase();e=e.parentElement}return"none"},setLanguage:function(e,n){e.className=e.className.replace(RegExp(t,"gi"),""),e.classList.add("language-"+n)},currentScript:function(){if("undefined"===typeof document)return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(r){var e=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(r.stack)||[])[1];if(e){var t=document.getElementsByTagName("script");for(var n in t)if(t[n].src==e)return t[n]}return null}},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:r,plaintext:r,text:r,txt:r,extend:function(e,t){var n=a.util.clone(a.languages[e]);for(var r in t)n[r]=t[r];return n},insertBefore:function(e,t,n,r){var i=(r=r||a.languages)[e],o={};for(var s in i)if(i.hasOwnProperty(s)){if(s==t)for(var l in n)n.hasOwnProperty(l)&&(o[l]=n[l]);n.hasOwnProperty(s)||(o[s]=i[s])}var c=r[e];return r[e]=o,a.languages.DFS(a.languages,(function(t,n){n===c&&t!=e&&(this[t]=o)})),o},DFS:function e(t,n,r,i){i=i||{};var o=a.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],r||s);var l=t[s],c=a.util.type(l);"Object"!==c||i[o(l)]?"Array"!==c||i[o(l)]||(i[o(l)]=!0,e(l,n,s,i)):(i[o(l)]=!0,e(l,n,null,i))}}},plugins:{},highlightAll:function(e,t){a.highlightAllUnder(document,e,t)},highlightAllUnder:function(e,t,n){var r={callback:n,container:e,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};a.hooks.run("before-highlightall",r),r.elements=Array.prototype.slice.apply(r.container.querySelectorAll(r.selector)),a.hooks.run("before-all-elements-highlight",r);for(var i,o=0;i=r.elements[o++];)a.highlightElement(i,!0===t,r.callback)},highlightElement:function(t,n,r){var i=a.util.getLanguage(t),o=a.languages[i];a.util.setLanguage(t,i);var s=t.parentElement;s&&"pre"===s.nodeName.toLowerCase()&&a.util.setLanguage(s,i);var l={element:t,language:i,grammar:o,code:t.textContent};function c(e){l.highlightedCode=e,a.hooks.run("before-insert",l),l.element.innerHTML=l.highlightedCode,a.hooks.run("after-highlight",l),a.hooks.run("complete",l),r&&r.call(l.element)}if(a.hooks.run("before-sanity-check",l),(s=l.element.parentElement)&&"pre"===s.nodeName.toLowerCase()&&!s.hasAttribute("tabindex")&&s.setAttribute("tabindex","0"),!l.code)return a.hooks.run("complete",l),void(r&&r.call(l.element));if(a.hooks.run("before-highlight",l),l.grammar)if(n&&e.Worker){var u=new Worker(a.filename);u.onmessage=function(e){c(e.data)},u.postMessage(JSON.stringify({language:l.language,code:l.code,immediateClose:!0}))}else c(a.highlight(l.code,l.grammar,l.language));else c(a.util.encode(l.code))},highlight:function(e,t,n){var r={code:e,grammar:t,language:n};if(a.hooks.run("before-tokenize",r),!r.grammar)throw new Error('The language "'+r.language+'" has no grammar.');return r.tokens=a.tokenize(r.code,r.grammar),a.hooks.run("after-tokenize",r),i.stringify(a.util.encode(r.tokens),r.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return c(a,a.head,e),s(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=a.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=a.hooks.all[e];if(n&&n.length)for(var r,i=0;r=n[i++];)r(t)}},Token:i};function i(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var i=a[1].length;a.index+=i,a[0]=a[0].slice(i)}return a}function s(e,t,n,r,l,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var m=n[p];m=Array.isArray(m)?m:[m];for(var g=0;g<m.length;++g){if(d&&d.cause==p+","+g)return;var h=m[g],f=h.inside,b=!!h.lookbehind,E=!!h.greedy,y=h.alias;if(E&&!h.pattern.global){var T=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,T+"g")}for(var S=h.pattern||h,v=r.next,A=l;v!==t.tail&&!(d&&A>=d.reach);A+=v.value.length,v=v.next){var k=v.value;if(t.length>e.length)return;if(!(k instanceof i)){var w,_=1;if(E){if(!(w=o(S,A,e,b))||w.index>=e.length)break;var C=w.index,N=w.index+w[0].length,I=A;for(I+=v.value.length;C>=I;)I+=(v=v.next).value.length;if(A=I-=v.value.length,v.value instanceof i)continue;for(var x=v;x!==t.tail&&(I<N||"string"===typeof x.value);x=x.next)_++,I+=x.value.length;_--,k=e.slice(A,I),w.index-=A}else if(!(w=o(S,0,k,b)))continue;C=w.index;var R=w[0],O=k.slice(0,C),L=k.slice(C+R.length),P=A+k.length;d&&P>d.reach&&(d.reach=P);var D=v.prev;if(O&&(D=c(t,D,O),A+=O.length),u(t,D,_),v=c(t,D,new i(p,f?a.tokenize(R,f):R,y,R)),L&&c(t,v,L),_>1){var M={cause:p+","+g,reach:P};s(e,t,n,v.prev,A,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function c(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}if(e.Prism=a,i.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var r="";return t.forEach((function(t){r+=e(t,n)})),r}var i={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},o=t.alias;o&&(Array.isArray(o)?Array.prototype.push.apply(i.classes,o):i.classes.push(o)),a.hooks.run("wrap",i);var s="";for(var l in i.attributes)s+=" "+l+'="'+(i.attributes[l]||"").replace(/"/g,"&quot;")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'"'+s+">"+i.content+"</"+i.tag+">"},!e.document)return e.addEventListener?(a.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var n=JSON.parse(t.data),r=n.language,i=n.code,o=n.immediateClose;e.postMessage(a.highlight(i,a.languages[r],r)),o&&e.close()}),!1),a):a;var d=a.util.currentScript();function p(){a.manual||a.highlightAll()}if(d&&(a.filename=d.src,d.hasAttribute("data-manual")&&(a.manual=!0)),!a.manual){var m=document.readyState;"loading"===m||"interactive"===m&&d&&d.defer?document.addEventListener("DOMContentLoaded",p):window.requestAnimationFrame?window.requestAnimationFrame(p):window.setTimeout(p,16)}return a}("undefined"!==typeof window?window:"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=r),"undefined"!==typeof n.g&&(n.g.Prism=r)},6813:function(e,t){"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<i(a,t)))break e;e[r]=t,e[n]=a,n=r}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,l=e[s],c=s+1,u=e[c];if(0>i(l,n))c<a&&0>i(u,l)?(e[r]=u,e[c]=n,r=c):(e[r]=l,e[s]=n,r=s);else{if(!(c<a&&0>i(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"===typeof performance&&"function"===typeof performance.now){var o=performance;t.unstable_now=function(){return o.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var c=[],u=[],d=1,p=null,m=3,g=!1,h=!1,f=!1,b="function"===typeof setTimeout?setTimeout:null,E="function"===typeof clearTimeout?clearTimeout:null,y="undefined"!==typeof setImmediate?setImmediate:null;function T(e){for(var t=r(u);null!==t;){if(null===t.callback)a(u);else{if(!(t.startTime<=e))break;a(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function S(e){if(f=!1,T(e),!h)if(null!==r(c))h=!0,L(v);else{var t=r(u);null!==t&&P(S,t.startTime-e)}}function v(e,n){h=!1,f&&(f=!1,E(_),_=-1),g=!0;var i=m;try{for(T(n),p=r(c);null!==p&&(!(p.expirationTime>n)||e&&!I());){var o=p.callback;if("function"===typeof o){p.callback=null,m=p.priorityLevel;var s=o(p.expirationTime<=n);n=t.unstable_now(),"function"===typeof s?p.callback=s:p===r(c)&&a(c),T(n)}else a(c);p=r(c)}if(null!==p)var l=!0;else{var d=r(u);null!==d&&P(S,d.startTime-n),l=!1}return l}finally{p=null,m=i,g=!1}}"undefined"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var A,k=!1,w=null,_=-1,C=5,N=-1;function I(){return!(t.unstable_now()-N<C)}function x(){if(null!==w){var e=t.unstable_now();N=e;var n=!0;try{n=w(!0,e)}finally{n?A():(k=!1,w=null)}}else k=!1}if("function"===typeof y)A=function(){y(x)};else if("undefined"!==typeof MessageChannel){var R=new MessageChannel,O=R.port2;R.port1.onmessage=x,A=function(){O.postMessage(null)}}else A=function(){b(x,0)};function L(e){w=e,k||(k=!0,A())}function P(e,n){_=b((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){h||g||(h=!0,L(v))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):C=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return m},t.unstable_getFirstCallbackNode=function(){return r(c)},t.unstable_next=function(e){switch(m){case 1:case 2:case 3:var t=3;break;default:t=m}var n=m;m=t;try{return e()}finally{m=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=m;m=e;try{return t()}finally{m=n}},t.unstable_scheduleCallback=function(e,a,i){var o=t.unstable_now();switch("object"===typeof i&&null!==i?i="number"===typeof(i=i.delay)&&0<i?o+i:o:i=o,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:d++,callback:a,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>o?(e.sortIndex=i,n(u,e),null===r(c)&&e===r(u)&&(f?(E(_),_=-1):f=!0,P(S,i-o))):(e.sortIndex=s,n(c,e),h||g||(h=!0,L(v))),e},t.unstable_shouldYield=I,t.unstable_wrapCallback=function(e){var t=m;return function(){var n=m;m=t;try{return e.apply(this,arguments)}finally{m=n}}}},5296:function(e,t,n){"use strict";e.exports=n(6813)},6426:function(e,t,n){var r=n(1065);e.exports=function(e,t){var n,a=null;if(!e||"string"!==typeof e)return a;for(var i,o,s=r(e),l="function"===typeof t,c=0,u=s.length;c<u;c++)i=(n=s[c]).property,o=n.value,l?t(i,o,n):o&&(a||(a={}),a[i]=o);return a}},5887:function(e){e.exports=function(){for(var e={},n=0;n<arguments.length;n++){var r=arguments[n];for(var a in r)t.call(r,a)&&(e[a]=r[a])}return e};var t=Object.prototype.hasOwnProperty},6115:function(e){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.__esModule=!0,e.exports.default=e.exports},6690:function(e){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports.default=e.exports},9728:function(e){function t(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e},e.exports.__esModule=!0,e.exports.default=e.exports},6389:function(e,t,n){var r=n(3808),a=n(9617),i=n(4993);e.exports=function(e){var t=a();return function(){var n,a=r(e);if(t){var o=r(this).constructor;n=Reflect.construct(a,arguments,o)}else n=a.apply(this,arguments);return i(this,n)}},e.exports.__esModule=!0,e.exports.default=e.exports},8416:function(e){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.__esModule=!0,e.exports.default=e.exports},1588:function(e,t,n){var r=n(1753);function a(){return"undefined"!==typeof Reflect&&Reflect.get?(e.exports=a=Reflect.get.bind(),e.exports.__esModule=!0,e.exports.default=e.exports):(e.exports=a=function(e,t,n){var a=r(e,t);if(a){var i=Object.getOwnPropertyDescriptor(a,t);return i.get?i.get.call(arguments.length<3?e:n):i.value}},e.exports.__esModule=!0,e.exports.default=e.exports),a.apply(this,arguments)}e.exports=a,e.exports.__esModule=!0,e.exports.default=e.exports},3808:function(e){function t(n){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},1655:function(e,t,n){var r=n(6015);e.exports=function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&r(e,t)},e.exports.__esModule=!0,e.exports.default=e.exports},9617:function(e){e.exports=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}},e.exports.__esModule=!0,e.exports.default=e.exports},4993:function(e,t,n){var r=n(8698).default,a=n(6115);e.exports=function(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return a(e)},e.exports.__esModule=!0,e.exports.default=e.exports},6015:function(e){function t(n,r){return e.exports=t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},1753:function(e,t,n){var r=n(3808);e.exports=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=r(e)););return e},e.exports.__esModule=!0,e.exports.default=e.exports},8698:function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},7452:function(e){"use strict";e.exports=JSON.parse('{"AElig":"\xc6","AMP":"&","Aacute":"\xc1","Acirc":"\xc2","Agrave":"\xc0","Aring":"\xc5","Atilde":"\xc3","Auml":"\xc4","COPY":"\xa9","Ccedil":"\xc7","ETH":"\xd0","Eacute":"\xc9","Ecirc":"\xca","Egrave":"\xc8","Euml":"\xcb","GT":">","Iacute":"\xcd","Icirc":"\xce","Igrave":"\xcc","Iuml":"\xcf","LT":"<","Ntilde":"\xd1","Oacute":"\xd3","Ocirc":"\xd4","Ograve":"\xd2","Oslash":"\xd8","Otilde":"\xd5","Ouml":"\xd6","QUOT":"\\"","REG":"\xae","THORN":"\xde","Uacute":"\xda","Ucirc":"\xdb","Ugrave":"\xd9","Uuml":"\xdc","Yacute":"\xdd","aacute":"\xe1","acirc":"\xe2","acute":"\xb4","aelig":"\xe6","agrave":"\xe0","amp":"&","aring":"\xe5","atilde":"\xe3","auml":"\xe4","brvbar":"\xa6","ccedil":"\xe7","cedil":"\xb8","cent":"\xa2","copy":"\xa9","curren":"\xa4","deg":"\xb0","divide":"\xf7","eacute":"\xe9","ecirc":"\xea","egrave":"\xe8","eth":"\xf0","euml":"\xeb","frac12":"\xbd","frac14":"\xbc","frac34":"\xbe","gt":">","iacute":"\xed","icirc":"\xee","iexcl":"\xa1","igrave":"\xec","iquest":"\xbf","iuml":"\xef","laquo":"\xab","lt":"<","macr":"\xaf","micro":"\xb5","middot":"\xb7","nbsp":"\xa0","not":"\xac","ntilde":"\xf1","oacute":"\xf3","ocirc":"\xf4","ograve":"\xf2","ordf":"\xaa","ordm":"\xba","oslash":"\xf8","otilde":"\xf5","ouml":"\xf6","para":"\xb6","plusmn":"\xb1","pound":"\xa3","quot":"\\"","raquo":"\xbb","reg":"\xae","sect":"\xa7","shy":"\xad","sup1":"\xb9","sup2":"\xb2","sup3":"\xb3","szlig":"\xdf","thorn":"\xfe","times":"\xd7","uacute":"\xfa","ucirc":"\xfb","ugrave":"\xf9","uml":"\xa8","uuml":"\xfc","yacute":"\xfd","yen":"\xa5","yuml":"\xff"}')},3580:function(e){"use strict";e.exports=JSON.parse('{"0":"\ufffd","128":"\u20ac","130":"\u201a","131":"\u0192","132":"\u201e","133":"\u2026","134":"\u2020","135":"\u2021","136":"\u02c6","137":"\u2030","138":"\u0160","139":"\u2039","140":"\u0152","142":"\u017d","145":"\u2018","146":"\u2019","147":"\u201c","148":"\u201d","149":"\u2022","150":"\u2013","151":"\u2014","152":"\u02dc","153":"\u2122","154":"\u0161","155":"\u203a","156":"\u0153","158":"\u017e","159":"\u0178"}')}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){"use strict";var e={};n.r(e),n.d(e,{attentionMarkers:function(){return Vt},contentInitial:function(){return Ut},disable:function(){return jt},document:function(){return Ft},flow:function(){return Gt},flowInitial:function(){return Bt},insideSpan:function(){return $t},string:function(){return Ht},text:function(){return zt}});var t={};n.r(t),n.d(t,{boolean:function(){return Un},booleanish:function(){return Bn},commaOrSpaceSeparated:function(){return Vn},commaSeparated:function(){return $n},number:function(){return Hn},overloadedBoolean:function(){return Gn},spaceSeparated:function(){return zn}});var r=n(2791),a=n(1250);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function u(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function d(e,t){if(e){if("string"===typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}function p(e){return function(e){if(Array.isArray(e))return c(e)}(e)||u(e)||d(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e){if(Array.isArray(e))return e}function g(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function h(e,t){return m(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i=[],o=!0,s=!1;try{for(n=n.call(e);!(o=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);o=!0);}catch(l){s=!0,a=l}finally{try{o||null==n.return||n.return()}finally{if(s)throw a}}return i}}(e,t)||d(e,t)||g()}var f={categories:[{title:"Proxmox VE Tools"},{title:"Home Assistant"},{title:"Automation"},{title:"MQTT"},{title:"Database"},{title:"Zigbee - Zwave"},{title:"Monitoring - Analytics"},{title:"Docker - Kubernetes"},{title:"Operating System"},{title:"TurnKey"},{title:"Server - Networking"},{title:"Media - Photo"},{title:"Ad Blocker - DNS"},{title:"Document - Notes"},{title:"Dashboards"},{title:"File - Code"},{title:"Miscellaneous"}],items:[{category:"Proxmox VE Tools",title:"Proxmox VE Post Install",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/proxmoxve/icon.png?raw=true" height="100"/></p>\n   \n  <h1 align="center" id="heading"> Proxmox VE Post Install </h1>\n  \n  This script provides options for managing Proxmox VE repositories, including disabling the Enterprise Repo, adding or correcting PVE sources, enabling the No-Subscription Repo, adding the test Repo, disabling the subscription nag, updating Proxmox VE, and rebooting the system.\n    \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)"\n  ~~~\n  \n  It is recommended to answer \u201cyes\u201d (y) to all options presented during the process.'},{category:"Proxmox VE Tools",title:"Proxmox VE Kernel Clean",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/proxmoxve/icon.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading">Proxmox VE Kernel Clean </h1>\n  Cleaning unused kernel images is beneficial for reducing the length of the GRUB menu and freeing up disk space. By removing old, unused kernels, the system is able to conserve disk space and streamline the boot process.\n      \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/kernel-clean.sh)"\n  ~~~'},{category:"Proxmox VE Tools",title:"Proxmox VE Processor Microcode",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/processor.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Proxmox VE Processor Microcode </h1>\n  <h3 align="center"> For Intel or AMD Processors </h3>\n  \n  Processor Microcode is a layer of low-level software that runs on the processor and provides patches or updates to its firmware. Microcode updates can fix hardware bugs, improve performance, and enhance security features of the processor.\n\n  It\'s important to note that the availability of firmware update mechanisms, such as Intel\'s Management Engine (ME) or AMD\'s Platform Security Processor (PSP), may vary depending on the processor and its specific implementation. Therefore, it\'s recommended to consult the documentation for your processor to confirm whether firmware updates can be applied through the operating system.  \n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/microcode.sh)"\n  ~~~\n  \n\n  After a reboot, you can check whether any microcode updates are currently in effect by running the following command.\n\n  ~~~bash\n  journalctl -k | grep -E "microcode" | head -n 1\n  ~~~'},{category:"Proxmox VE Tools",title:"Proxmox VE CPU Scaling Governor",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/cpu.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading">Proxmox VE CPU Scaling Governor </h1>\n\n  The CPU scaling governor determines how the CPU frequency is adjusted based on the workload, with the goal of either conserving power or improving performance. By scaling the frequency up or down, the operating system can optimize the CPU usage and conserve energy when possible. [Generic Scaling Governors](https://www.kernel.org/doc/html/latest/admin-guide/pm/cpufreq.html?#generic-scaling-governors)\n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/scaling-governor.sh)"\n  ~~~'},{category:"Proxmox VE Tools",title:"Proxmox VE LXC Cleaner",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/lxc.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading">Proxmox VE LXC Cleaner </h1>\n  This script provides options to delete logs and cache, and repopulate apt lists for Ubuntu and Debian systems.\n   \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/clean-lxcs.sh)"\n  ~~~'},{category:"Proxmox VE Tools",title:"Proxmox VE LXC Updater",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/lxc.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading">Proxmox VE LXC Updater </h1>\n  This script has been created to simplify and speed up the process of updating all LXC containers across various Linux distributions, such as Ubuntu, Debian, Devuan, Alpine Linux, CentOS-Rocky-Alma, Fedora, and ArchLinux. It\'s designed to automatically skip templates and specific containers during the update, enhancing its convenience and usability.<br> \n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/update-lxcs.sh)"\n  ~~~'},{category:"Proxmox VE Tools",title:"Proxmox VE Cron LXC Updater",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/lxc.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading">Proxmox VE Cron LXC Updater </h1>\n  This script will add/remove a crontab schedule that updates all LXCs every Sunday at midnight.<br> \n  \n  To exclude LXCs from updating, edit crontab (<code class="highlighter-rouge">crontab -e</code>) and add CTID as shown in the example (-s 103 111)\n\n  example: <code class="highlighter-rouge">0 0 * * 0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/update-lxcs-cron.sh)" -s 103 111 >>/var/log/update-lxcs-cron.log 2>/dev/null</code>\n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/cron-update-lxcs.sh)"\n  ~~~'},{category:"Proxmox VE Tools",title:"Proxmox VE Monitor-All",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/monitor.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading">Proxmox VE Monitor-All </h1>\n  This script will add Monitor-All to Proxmox VE, which will monitor the status of all your instances, both containers and virtual machines, excluding templates and user-defined ones, and automatically restart or reset them if they become unresponsive. This is particularly useful if you\'re experiencing problems with Home Assistant becoming non-responsive every few days/weeks. Monitor-All also maintains a log of the entire process, which can be helpful for troubleshooting and monitoring purposes.<br>\n  \n  \ud83d\udec8 Virtual machines without the QEMU guest agent installed must be excluded. <br>\n  \ud83d\udec8 Prior to generating any new CT/VM not found in this repository, it\'s necessary to halt Proxmox VE Monitor-All by running <code class="highlighter-rouge">systemctl stop ping-instances</code>. <br>\n  \n  All commands are run from the <b>Proxmox VE shell.</b>.\n  \n  <b>To add or remove Monitor-All in Proxmox VE:</b>\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/monitor-all.sh)"\n  ~~~\n  <br>\n  <br>\n  To make setup changes, first stop the service: <code class="highlighter-rouge">systemctl stop ping-instances</code>\n\n  To edit pause time: \n  ~~~bash\n  nano /usr/local/bin/ping-instances.sh\n  ~~~\n\n  To add excluded instances:\n  ~~~bash\n  nano /etc/systemd/system/ping-instances.service\n  ~~~\n  \n  After changes have been saved, <code class="highlighter-rouge">systemctl daemon-reload</code> and start the service: <code class="highlighter-rouge">systemctl start ping-instances</code>\n\n  Monitor-All logs : <code class="highlighter-rouge">cat /var/log/ping-instances.log</code>'},{category:"Proxmox VE Tools",title:"Proxmox VE Host Backup",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/bash-dark.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading">Proxmox VE Host Backup </h1>\n  This script serves as a versatile backup utility, enabling users to specify both the backup path and the directory they want to work in. This flexibility empowers users to select the specific files and directories they wish to back up, making it compatible with a wide range of hosts, not limited to Proxmox.\n   \n  Run the command below in the <b>Proxmox VE Shell</b>, or any host.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/host-backup.sh)"\n  ~~~\n  \n  A backup is rendered ineffective when it remains stored on the host'},{category:"Proxmox VE Tools",title:"Proxmox VE Dark Theme",content:'<p align="center"><img src="https://camo.githubusercontent.com/f6f33a09f8c1207dfb3dc1cbd754c2f3393562c11b1c999751ad9a91a656834a/68747470733a2f2f692e696d6775722e636f6d2f536e6c437948462e706e67" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Proxmox VE Discord Dark Theme </h1>\n  \n  A dark theme for the Proxmox VE Web UI is a custom theme created by [Weilbyte](https://github.com/Weilbyte/PVEDiscordDark) that changes the look and feel of the Proxmox web-based interface to a dark color scheme. This theme can improve the visual experience and make the interface easier on the eyes, especially when used in low-light environments.\n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash <(curl -s https://raw.githubusercontent.com/Weilbyte/PVEDiscordDark/master/PVEDiscordDark.sh ) install\n  ~~~\n  \n  To uninstall the theme, simply run the script with the <code class="highlighter-rouge">uninstall</code> command.'},{category:"Proxmox VE Tools",title:"Proxmox Backup Server Post Install",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/proxmoxve/icon.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Proxmox Backup Server Post Install </h1>\n  The script will give options to Disable the Enterprise Repo, Add/Correct PBS Sources, Enable the No-Subscription Repo, Add Test Repo, Disable Subscription Nag, Update Proxmox Backup Server and Reboot PBS.\n  \n  Run the command below in the <b>Proxmox Backup Server Shell</b>. \u26a0\ufe0f **Proxmox Backup Server ONLY**\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pbs-install.sh)"\n  ~~~\n  \n  It is recommended to answer \u201cyes\u201d (y) to all options presented during the process.'},{category:"Home Assistant",title:"Home Assistant OS VM",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/haos.png?raw=true"/></p>\n   \n  <h1 align="center" id="heading"> Home Assistant OS VM </h1>\n  <h3 align="center"> Option to create VM using Stable, Beta or Dev Image </h3>\n  \n  This script automates the process of creating a Virtual Machine (VM) using the official KVM (qcow2) disk image provided by the Home Assistant Team. It involves finding, downloading, and extracting the image, defining user-defined settings, importing and attaching the disk, setting the boot order, and starting the VM. It supports various storage types, and does not involve any hidden installations.\n\n  To create a new Proxmox VE Home Assistant OS VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/haos-vm.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  4GB RAM - 32GB Storage - 2vCPU - Stable Image \u26a1</h3>\n  \n  \ud83d\udec8 The disk must have a minimum size of 32GB and its size cannot be changed during the creation of the VM.\n\n  After the script completes, click on the VM, then on the **_Summary_** tab to find the VM IP.\n  \n  **Home Assistant Interface: IP:8123**'},{category:"Home Assistant",title:"PiMox HAOS VM",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/pimox.png?raw=true" width="100" height="100"/></p>\n  <h1 align="center" id="heading"> PiMox HAOS VM </h1>\n  \n  <h3 align="center"> Option to create VM using Stable, Beta or Dev Image </h3>\n  \n  The script automates the manual process of finding, downloading and extracting the aarch64 (qcow2) disk image provided by the Home Assistant Team, creating a VM with user defined settings, importing and attaching the disk, setting the boot order and starting the VM.\n  \n  To create a new PiMox HAOS VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/pimox-haos-vm.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  4GB RAM - 32GB Storage - 2vCPU - Stable Image \u26a1</h3>\n  \n  After the script completes, click on the VM, then on the **_Console_** tab to find the VM IP.\n  \n  **Home Assistant Interface: IP:8123**'},{category:"Home Assistant",title:"Home Assistant Container LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/docker.svg" height="100"/>\n  <img src="https://avatars.githubusercontent.com/u/13844975?s=200&amp;v=4" width="100" height="100"/><img src="https://avatars1.githubusercontent.com/u/22225832?s=400&amp;v=4" alt="GitHub - portainer/portainer-docs: Portainer documentation" width="100" height="100"/></p>\n    \n  <h1 align="center" id="heading"> Home Assistant Container LXC </h1>\n  <h3 align="center"> Option to Use Fuse Overlayfs (Advanced)</h3> \n\n  A standalone container-based installation of Home Assistant Core means that the software is installed inside a Docker container, separate from the host operating system. This allows for flexibility and scalability, as well as improved security, as the container can be easily moved or isolated from other processes on the host.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Home Assistant Container LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Containers, Remove Images or Install HACS, run the command below (or type update) in the <b>LXC Console</b>.\n    \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homeassistant.sh)"\n  ~~~\n    \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 16GB Storage - 2vCPU \u26a1</h3>\n    \n  **Home Assistant Interface: IP:8123**\n    \n  **Portainer Interface: IP:9000**\n    \n  \u2699\ufe0f **Path to HA /config**\n  ~~~bash\n  /var/lib/docker/volumes/hass_config/_data\n  ~~~'},{category:"Home Assistant",title:"Home Assistant Core LXC",content:'<p align="center"><img src="https://avatars.githubusercontent.com/u/13844975?s=200&amp;v=4" width="100" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Home Assistant Core LXC </h1>\n  \n  A standalone installation of Home Assistant Core refers to a setup where the Home Assistant Core software is installed directly on a device or operating system, without the use of containers. This provides a simpler, but less flexible and scalable solution, as the software is tightly coupled with the underlying system.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n  \n  To create a new Proxmox VE Home Assistant Core LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update, Install HACS or Filebrowser, run the command below (or type update) in the <b>LXC Console</b>. <br>\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homeassistant-core.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n\n  **Home Assistant Interface: IP:8123**\n  \n  \u2699\ufe0f **Path to HA /config**\n  ~~~bash\n  /root/.homeassistant\n  ~~~'},{category:"Home Assistant",title:"Podman Home Assistant Container LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/podman.svg" height="100"/>\n  <img src="https://avatars.githubusercontent.com/u/13844975?s=200&amp;v=4" height="100"/><img/></p>\n  <h1 align="center" id="heading">Podman Home Assistant Container LXC</h1>\n  \n  A standalone Podman container-based installation of Home Assistant Core means that the Home Assistant Core software is installed inside a container managed by Podman, separate from the host operating system. This provides a flexible and scalable solution for running the software, as the container can be easily moved between host systems or isolated from other processes for security. Podman is a popular open-source tool for managing containers that is similar to Docker, but designed for use on Linux systems without a daemon.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Podman Home Assistant Container LXC, run the command below in the <b>Proxmox VE Shell</b>. <br> \n  To Update Podman, Install HACS or FileBrowser, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/podman-homeassistant.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 16GB Storage - 2vCPU \u26a1</h3>\n    \n  **Home Assistant Interface: IP:8123**\n    \n  \u2699\ufe0f **Path to HA /config**\n  ~~~bash\n  /var/lib/containers/storage/volumes/hass_config/_data\n  ~~~'},{category:"Automation",title:"ioBroker LXC",content:'<p align="center"><img src="https://github.com/ioBroker/ioBroker/blob/master/img/logos/ioBroker_Logo_256px.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> ioBroker LXC </h1>\n    \n  [ioBroker](https://www.iobroker.net/#en/intro) is an open-source platform for building and managing smart home automation systems. It provides a centralized control and management interface for connected devices, sensors, and other IoT devices. ioBroker integrates with a wide range of popular smart home systems, devices, and services, making it easy to automate tasks and processes, monitor and control devices, and collect and analyze data from a variety of sources. With its flexible architecture and easy-to-use interface, ioBroker is designed to make it simple for users to build and customize their own smart home automation systems, regardless of their technical background or experience.\n  \n  To create a new Proxmox VE ioBroker LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/iobroker.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n    \n  **ioBroker Interface: IP:8081**'},{category:"Automation",title:"openHAB LXC",content:'<p align="center"><img src="https://www.openhab.org/openhab-logo-square.png?raw=true" height="100"/></p>\n  <h1 align="center" id="heading">openHAB LXC</h1>\n\n  [openHAB](https://www.openhab.org/) is a popular open-source home automation platform that provides a vendor and technology agnostic solution for integrating and automating various smart home devices and services. It supports a wide range of devices and protocols, making it easy to bring together different systems and devices into a unified smart home ecosystem. With its user-friendly interface and powerful automation capabilities, openHAB makes it easy to create custom automations and monitor and control your smart home devices and systems, all from a single interface.\n  \n  To create a new Proxmox VE openHAB LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/openhab.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n    \n  **openHAB Interface: IP:8080**'},{category:"Automation",title:"Homebridge LXC",content:'<p align="center"><img src="https://homebridge.io/assets/images/logo.svg" height="100"/></p>\n  <h1 align="center" id="heading">Homebridge LXC</h1>\n\n  [Homebridge](https://homebridge.io/) is a popular open-source software platform that enables you to integrate smart home devices and services that do not natively support Apple\'s HomeKit protocol into the HomeKit ecosystem. This allows you to control and automate these devices using Siri, the Home app, or other HomeKit-enabled apps, making it easy to bring together a variety of different devices into a unified smart home system. With Homebridge, you can expand the capabilities of your smart home, unlocking new possibilities for automating and controlling your devices and systems.\n\n  To create a new Proxmox VE Homebridge LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homebridge.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 1vCPU \u26a1</h3>\n    \n  **Homebridge Interface: IP:8581**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">admin</code>'},{category:"Automation",title:"ESPHome LXC",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/esphome/dark_icon@2x.png?raw=true" height="100"/></p>\n  <h1 align="center" id="heading">ESPHome LXC</h1>\n  \n  [ESPHome](https://esphome.io/) is a platform for controlling ESP8266/ESP32-based devices using configuration files and integrating them with Home Automation systems. It provides a simple and flexible way to set up and manage the functionality of these devices, including defining and automating actions, monitoring sensors, and connecting to networks and other services. ESPHome is designed to be user-friendly and easy to use, and supports a wide range of features and integrations, making it a popular choice for home automation projects and IoT applications.\n\n  To create a new Proxmox VE ESPHome LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update ESPHome, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/esphome.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n    \n  **ESPHome Interface: IP:6052**'},{category:"Automation",title:"Node-Red LXC",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/custom_integrations/nodered/icon.png?raw=true" height="100"/></p>\n  <h1 align="center" id="heading">Node-Red LXC</h1>\n\n  [Node-RED](https://nodered.org/) is a visual programming tool that allows developers and non-developers alike to easily wire together hardware devices, APIs, and online services to create custom applications. It provides a visual interface for building workflows, making it easy to create and modify complex integrations without having to write any code. Node-RED is used in a wide range of applications, from simple automations to complex integrations, and is known for its simplicity, versatility, and ease of use.\n\n  To create a new Proxmox VE Node-RED LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Node-Red or Install Themes run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/node-red.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 1vCPU \u26a1</h3>\n    \n  **Node-Red Interface: IP:1880**'},{category:"Automation",title:"n8n LXC",content:'<p align="center"><img src="https://docs.n8n.io/_images/n8n-docs-icon.svg" height="70"/></p>\n  <h1 align="center" id="heading">n8n LXC</h1>\n    \n  [n8n](https://n8n.io/) is a workflow automation tool that enables users to automate various tasks and processes by connecting various data sources, systems, and services. It provides a visual interface for building workflows, allowing users to easily define and automate complex sequences of actions, such as data processing, conditional branching, and API calls. n8n supports a wide range of integrations, making it a versatile tool for automating a variety of use cases, from simple data processing workflows to complex business processes. With its extendable architecture, n8n is designed to be easily customizable and can be adapted to meet the specific needs of different users and industries.\n \n  To create a new Proxmox VE n8n LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update n8n, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/n8n.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 3GB Storage - 2vCPU \u26a1</h3>\n    \n  **n8n Interface: IP:5678**'},{category:"Automation",title:"Scrypted LXC",content:'<p align="center"><img src="https://www.scrypted.app/images/web_hi_res_512.png?raw=true" height="100"/></p>\n  <h1 align="center" id="heading">Scrypted LXC</h1>\n\n  <h3 align="center"> Option to add Coral Edge TPU support </h3> \n  \n  [Scrypted](https://www.scrypted.app/) is a home automation platform that focuses on providing a seamless experience for managing and utilizing cameras in a smart home setup. It offers features like camera management, event triggering, video and image storage, and integration with other smart home devices and services. Scrypted is designed to make it easy to set up and use cameras in a home automation system, providing a simple and user-friendly interface for monitoring and automating camera-related tasks.\n\n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n  \n  To create a new Proxmox VE Scrypted LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/scrypted.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n    \n  **Scrypted Interface: (https)IP:10443**'},{category:"Automation",title:"FHEM LXC",content:'<p align="center"><img src="https://avatars.githubusercontent.com/u/45183393?s=100&v=4" height="100"/></p>\n  <h1 align="center" id="heading">FHEM LXC</h1>\n\n  [FHEM](https://fhem.de/) stands for "Freundliche Hausautomation und Energie-Messung," which translates to "Friendly Home Automation and Energy Measurement" in English. The software can interface with a wide range of devices, including lighting systems, thermostats, weather stations, and media devices, among others.\n  \n  \ud83d\udec8 If the LXC is created Privileged, the script will automatically set up USB passthrough.\n  \n  To create a new Proxmox VE FHEM LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/fhem.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n    \n  **FHEM Interface: IP:8083**'},{category:"MQTT",title:"MQTT LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/eclipsemosquitto.svg" height="100"/></p>\n  <h1 align="center" id="heading">MQTT LXC</h1>\n  \n  [Eclipse Mosquitto](https://mosquitto.org/) is an open-source message broker that implements the MQTT (Message Queuing Telemetry Transport) protocol. It is a lightweight and simple-to-use message broker that allows IoT devices and applications to communicate with each other by exchanging messages in real-time. Mosquitto is widely used in IoT applications, due to its low resource requirements and its compatibility with a wide range of devices and platforms\n  \n  To create a new Proxmox VE MQTT LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/mqtt.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n    \n  Mosquitto comes with a password file generating utility called mosquitto_passwd.\n  ~~~bash\n  mosquitto_passwd -c /etc/mosquitto/passwd <user>\n  ~~~\n \n  Ensure that the file is managed by the appropriate user and group.\n  ~~~bash\n  chown mosquitto:mosquitto /etc/mosquitto/passwd\n  ~~~\n\n  Now restart Mosquitto server.\n  ~~~bash\n  systemctl restart mosquitto\n  ~~~'},{category:"MQTT",title:"EMQX LXC",content:'<p align="center"><img src="https://github.com/hassio-addons/repository/blob/master/emqx/icon.png?raw=true" height="100"/></p>\n  <h1 align="center" id="heading">EMQX LXC</h1>\n\n  [EMQX](https://www.emqx.io/) is an open-source MQTT broker that features a high-performance, real-time message processing engine. It is designed to handle large-scale IoT deployments, providing fast and reliable message delivery for connected devices. EMQX is known for its scalability, reliability, and low latency, making it a popular choice for IoT and M2M applications. It also offers a wide range of features and plugins for enhanced security, monitoring, and management.\n  \n  To create a new Proxmox VE EMQX LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n    bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/emqx.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  \n  **EMQX Interface: IP:18083** \n    \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n\n  **password** <code class="highlighter-rouge">public</code>\n\n  \u2699\ufe0f **Setup**\n  \n  Access Control \u27a1 Authentication  \u27a1 Create \u27a1 Next \u27a1 Next \u27a1 Create \u27a1 Users \u27a1 Add \u27a1 Username / Password (to authenicate with MQTT) \u27a1 Save. You\'re now ready to enjoy a high-performance MQTT Broker.'},{category:"Database",title:"Mariadb LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/mariadb.svg" height="100"/></p>\n  <h1 align="center" id="heading">Mariadb LXC</h1>\n\n  <h3 align="center"> Option to Install Adminer</h3>\n  \n  [MariaDB](https://mariadb.org/) is a fork of the popular MySQL database management system that is developed and maintained by the open-source community. It is also commercially supported, offering enterprise-level features and support for organizations that require them. MariaDB aims to maintain high compatibility with MySQL, ensuring a drop-in replacement capability.\n  \n  To create a new Proxmox VE Mariadb LXC, run the command below in the <b>Proxmox VE Shell</b>.\n    \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/mariadb.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 1vCPU \u26a1</h3>\n  \n  The subsequent step involves executing the included security script. This script modifies certain default options that are less secure. Our purpose for running it is to prevent remote root logins and eliminate unnecessary database users.  \n  Run the security script:\n  ~~~bash\n  mysql_secure_installation\n  ~~~\n  Enter current password for root (enter for none): <code class="highlighter-rouge">enter</code>\n    \n  Switch to unix_socket authentication [Y/n] <code class="highlighter-rouge">y</code> \n    \n  Change the root password? [Y/n] <code class="highlighter-rouge">n</code> \n    \n  Remove anonymous users? [Y/n] <code class="highlighter-rouge">y</code> \n    \n  Disallow root login remotely? [Y/n] <code class="highlighter-rouge">y</code>  \n    \n  Remove test database and access to it? [Y/n] <code class="highlighter-rouge">y</code> \n    \n  Reload privilege tables now? [Y/n] <code class="highlighter-rouge">y</code>  \n  \n  We will create a new account called admin with the same capabilities as the root account, but configured for password authentication. \n  ~~~bash\n  mysql\n  ~~~ \n  Prompt will change to <code class="highlighter-rouge">MariaDB [(none)]></code>\n  \n  Create a new local admin (Change the username and password to match your preferences)\n  ~~~sql\n  CREATE USER \'admin\'@\'localhost\' IDENTIFIED BY \'password\';\n  ~~~\n  Give local admin root privileges (Change the username and password to match above)\n  ~~~sql\n  GRANT ALL ON *.* TO \'admin\'@\'localhost\' IDENTIFIED BY \'password\' WITH GRANT OPTION;\n  ~~~\n  \n  Now, we\'ll give the user admin root privileges and password-based access that can connect from anywhere on your local area network (LAN), which has addresses in the subnet 192.168.100.0/24. This is an improvement because opening a MariaDB server up to the Internet and granting access to all hosts is bad practice.. Change the **_username_**, **_password_** and **_subnet_** to match your preferences:\n  ~~~sql\n  GRANT ALL ON *.* TO \'admin\'@\'192.168.100.%\' IDENTIFIED BY \'password\' WITH GRANT OPTION;\n  ~~~\n  Flush the privileges to ensure that they are saved and available in the current session:\n  ~~~sql\n  FLUSH PRIVILEGES;\n  ~~~\n  command below this, exit the MariaDB shell:\n  ~~~bash\n  exit\n  ~~~\n  Log in as the new database user you just created:\n  ~~~bash\n  mysql -u admin -p\n  ~~~\n  Create a new database:\n  ~~~sql\n  CREATE DATABASE homeassistant;\n  ~~~\n  command below this, exit the MariaDB shell:\n  ~~~bash\n  exit\n  ~~~\n  \u26a0\ufe0f Reboot the lxc \n  \n  Checking status.\n  ~~~bash\n  systemctl status mariadb\n  ~~~ \n  Change the recorder: <code class="highlighter-rouge">db_url:</code> in your HA configuration.yaml\n    \n  Example:\n  ~~~bash\n  recorder:\n    db_url: mysql://admin:password@192.168.100.26:3306/homeassistant?charset=utf8mb4\n  ~~~\n    \n  \u2699\ufe0f [**Adminer**](https://www.adminer.org/) is a full-featured database management tool\n    \n  **Adminer Interface: IP/adminer/**'},{category:"Database",title:"PostgreSQL LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/postgresql.svg" height="100"/></p>\n  <h1 align="center" id="heading">PostgreSQL LXC</h1>\n  <h3 align="center"> Option to Install Adminer</h3>\n  \n  [PostgreSQL](https://www.postgresql.org/) (often referred to as Postgres) is an open-source relational database management system that is known for its extensibility and strict adherence to SQL standards. It is a free and powerful database solution, suitable for a wide range of applications, from small projects to large enterprise systems. PostgreSQL is widely used for its reliability, feature-richness, and robustness.\n  \n  To create a new Proxmox VE PostgreSQL LXC, run the command below in the <b>Proxmox VE Shell</b>.\n    \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/postgresql.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 1vCPU \u26a1</h3>\n  \n  To make sure our PostgreSQL is secured with a strong password, set a password for its system user and then change the default database admin user account\n  \n  Change user password\n  ~~~bash\n  passwd postgres\n  ~~~\n  Login using Postgres system account\n    \n  ~~~bash\n  su - postgres\n  ~~~\n  Now, change the Admin database password \n  ~~~bash\n  psql -c "ALTER USER postgres WITH PASSWORD \'your-password\';"\n  ~~~\n  Create a new user.\n  ~~~bash\n  psql\n  ~~~\n  ~~~sql\n  CREATE USER admin WITH PASSWORD \'your-password\';\n  ~~~\n  Create a new database:\n  ~~~sql\n  CREATE DATABASE homeassistant;\n  ~~~\n  Grant all rights or privileges on created database to the user\n  ~~~sql\n  GRANT ALL ON DATABASE homeassistant TO admin;\n  ~~~\n  To exit psql\n  ~~~bash\n  \\q\n  ~~~ \n  Then type exit to get back to root\n  \n  Change the recorder: <code class="highlighter-rouge">db_url:</code> in your HA configuration.yaml\n    \n  Example:\n  ~~~bash\n  recorder:\n    db_url: postgresql://admin:your-password@192.168.100.20:5432/homeassistant?client_encoding=utf8\n  ~~~\n\n  \u2699\ufe0f [**Adminer**](https://www.adminer.org/) is a full-featured database management tool\n    \n  **Adminer Interface: IP/adminer/**'},{category:"Database",title:"InfluxDB LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/influx.svg" height="100"/></p>\n  <h1 align="center" id="heading">InfluxDB LXC</h1>\n  <h3 align="center"> Options to Install InfluxDB v1 or v2 and Telegraf</h3>\n  * Choosing InfluxDB v1 will result in Chronograf being installed automatically.\n  \n  [InfluxDB](https://www.influxdata.com/) is designed to handle high write and query loads, and is optimized for storing and analyzing time-stamped data, such as metrics, events, and logs. InfluxDB supports SQL-like query language and has a built-in HTTP API for data ingestion and retrieval. It\'s commonly used for IoT and industrial applications where time-series data is involved.\n  \n  [Telegraf](https://www.influxdata.com/time-series-platform/telegraf/) is a server agent that collects, processes, and aggregates metrics and events data from different sources, such as systems, databases, and APIs, and outputs the data to various outputs, such as InfluxDB, Prometheus, Elasticsearch, and many others.\n  \n  To create a new Proxmox VE InfluxDB LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n    bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/influxdb.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n\n InfluxDB V1 (Chronograf) Interface: IP:8888\n\n InfluxDB V2 Interface: IP:8086\n\n \u2699\ufe0f **InfluxDB Configuration**\n  \n  ~~~yaml\n  nano /etc/influxdb/influxdb.conf\n  ~~~\n  \n \u2699\ufe0f **Telegraf Configuration**\n  \n  ~~~yaml\n  nano /etc/telegraf/telegraf.conf\n  ~~~'},{category:"Zigbee - Zwave",title:"Zigbee2MQTT LXC",content:'<p align="center"><img src="https://github.com/Koenkk/zigbee2mqtt/blob/master/images/logo_bee_only.png?raw=true" height="100"/></p>\n  <h1 align="center" id="heading">Zigbee2MQTT LXC</h1>\n\n  <h3 align="center"> Option to switch to Edge/dev branch</h3>\n  \n  [Zigbee2MQTT](https://www.zigbee2mqtt.io/) is an open-source software project that allows you to use Zigbee-based smart home devices (such as those sold under the Philips Hue and Ikea Tradfri brands) with MQTT-based home automation systems, like Home Assistant, Node-RED, and others. The software acts as a bridge between your Zigbee devices and MQTT, allowing you to control and monitor these devices from your home automation system.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Zigbee2MQTT LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Zigbee2MQTT, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/zigbee2mqtt.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n \n  As an alternative option, you can use Alpine Linux and the Zigbee2MQTT package to create a Zigbee2MQTT LXC container with faster creation time and minimal system resource usage. <br>\n\n  To create a new Proxmox VE Alpine-Zigbee2MQTT LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  ~~~bash\n  bash -c "$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-zigbee2mqtt.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  256MiB RAM - 300MiB Storage - 1vCPU \u26a1</h3>\n\n  \u2699\ufe0f **Determine the location of your adapter**\n    \n  ~~~bash\n  ls -l /dev/serial/by-id\n  ~~~\n  Example Output: <code class="highlighter-rouge">lrwxrwxrwx 1 root root 13 Jun 19 17:30 usb-1a86_USB_Serial-if00-port0 -> ../../ttyUSB0</code>\n  \n  \n  \u2699\ufe0f \u26a0\ufe0f **Before you start Zigbee2MQTT you need to edit the [configuration.yaml](https://www.zigbee2mqtt.io/guide/configuration/)**\n\n  Debian<br>\n  ~~~bash\n  nano /opt/zigbee2mqtt/data/configuration.yaml\n  ~~~\n  Alpine<br>\n  ~~~bash\n  nano /etc/zigbee2mqtt/configuration.yaml\n  ~~~\n\n  Save and exit the editor with \u201cCtrl+O\u201d, \u201cEnter\u201d and \u201cCtrl+X\u201d\n  \n  Example:\n  ~~~yaml\n  frontend:\n    port: 9442\n  homeassistant: true\n  permit_join: false\n  mqtt:\n    base_topic: zigbee2mqtt\n    server: \'mqtt://192.168.86.224:1883\'\n    user: usr\n    password: pwd\n    keepalive: 60\n    reject_unauthorized: true\n    version: 4\n  serial:\n    port: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0\n    #adapter: deconz\t#(uncomment for ConBee II)\n    #adapter: ezsp    #(uncomment for ITead Sonoff Zigbee 3.0 USB Dongle Plus V2 model "ZBDongle-E version")\n  advanced:\n    pan_id: GENERATE\n    network_key: GENERATE\n    channel: 20\n  ~~~\n  \u2699\ufe0f **Zigbee2MQTT can be started after completing the configuration**\n\n  Debian<br>  \n  ~~~bash\n  cd /opt/zigbee2mqtt && npm start\n  ~~~\n  Alpine<br>  \n  ~~~bash\n  rc-update add zigbee2mqtt default\n  ~~~'},{category:"Zigbee - Zwave",title:"deCONZ LXC",content:'<p align="center"><img src="https://phoscon.de/img/phoscon-logo128x.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> deCONZ LXC </h1>\n  \n  [deCONZ](https://www.phoscon.de/en/conbee2/software#deconz) is a software for managing and controlling Zigbee-based smart home devices. It allows for setting up, configuring and visualizing the status of connected devices, as well as for triggering actions and automations. It works as a bridge between the Zigbee network and other home automation systems and can be used as a standalone solution or integrated into existing setups.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE deCONZ LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n    bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/deconz.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **deCONZ Interface: IP:80**'},{category:"Zigbee - Zwave",title:"Z-Wave JS UI LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/zwave.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Z-Wave JS UI LXC </h1>\n  \n  [Z-Wave JS UI](https://github.com/zwave-js/zwave-js-ui#) is an open-source software that serves as a gateway between Z-Wave devices and MQTT (Message Queuing Telemetry Transport) protocol, allowing users to control and monitor their Z-Wave devices via a user interface. The software provides a configurable platform to manage Z-Wave networks and integrate with other smart home systems through MQTT.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n  \n  To create a new Proxmox VE Z-Wave JS UI LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Z-Wave JS UI, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/zwave-js-ui.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Z-Wave JS UI Interface: IP:8091**'},{category:"Monitoring - Analytics",title:"Uptime Kuma LXC",content:'<p align="center"><img src="https://github.com/louislam/uptime-kuma/blob/master/public/icon.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Uptime Kuma LXC </h1>\n  \n  [Uptime Kuma](https://github.com/louislam/uptime-kuma#uptime-kuma) is a monitoring and alerting system that tracks the availability and performance of servers, websites, and other internet-connected devices. It can be self-hosted and is open-source, offering a visually appealing interface for monitoring and receiving notifications about downtime events.\n  \n  To create a new Proxmox VE Uptime Kuma LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Uptime Kuma, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/uptimekuma.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **Uptime Kuma Interface: IP:3001**'},{category:"Monitoring - Analytics",title:"Pi.Alert LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/leiweibau/Pi.Alert/main/front/img/favicons/glass_black_white.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Pi.Alert LXC </h1>\n  \n  [Pi.Alert](https://github.com/leiweibau/Pi.Alert/) is a WIFI / LAN intruder detector. Checks the devices connected and alert you with unknown devices. It also warns of the disconnection of "always connected" devices.\n  \n  To create a new Proxmox VE Pi.Alert LXC, run the command below in the <b>Proxmox VE Shell</b>.<br>\n  To Update Pi.Alert, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/pialert.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 3GB Storage - 1vCPU \u26a1</h3>\n  \n  **Pi.Alert Interface: IP/pialert/**'},{category:"Monitoring - Analytics",title:"OpenObserve LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/tteck/Proxmox/main/misc/images/openobsecure.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> OpenObserve LXC </h1>\n  \n  [OpenObserve](https://openobserve.ai/) is a simple yet sophisticated log search, infrastructure monitoring, and APM solution.\n  \n  To create a new Proxmox VE OpenObserve LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update OpenObserve, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/openobserve.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 3GB Storage - 1vCPU \u26a1</h3>\n  \n  **Credentials:** <code class="highlighter-rouge">cat /opt/openobserve/data/.env</code>\n\n  **OpenObserve Interface: IP:5080**'},{category:"Monitoring - Analytics",title:"Change Detection LXC",content:'<p align="center"><img src="https://github.com/dgtlmoon/changedetection.io/blob/master/changedetectionio/static/images/avatar-256x256.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Change Detection LXC </h1>\n  \n  [Change Detection](https://changedetection.io/) is a service that allows you to monitor changes to web pages and receive notifications when changes occur. It can be used for a variety of purposes such as keeping track of online price changes, monitoring news websites for updates, or tracking changes to online forums.\n\n  To create a new Proxmox VE Change Detection LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Change Detection, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/changedetection.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **Change Detection Interface: IP:5000**'},{category:"Monitoring - Analytics",title:"Prometheus LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/prometheus.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Prometheus LXC </h1>\n  \n  [Prometheus](https://prometheus.io/) is widely used to monitor the performance and health of various infrastructure components and applications, and trigger alerts based on predefined rules. It has a multi-dimensional data model and supports various data sources and exporters, making it an extremely flexible and scalable monitoring solution.\n  \n  To create a new Proxmox VE Prometheus LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/prometheus.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 1vCPU \u26a1</h3>\n  \n  **Prometheus Interface: IP:9090**'},{category:"Monitoring - Analytics",title:"Grafana LXC",content:'<p align="center"><img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fdocs.checkmk.com%2Flatest%2Fimages%2Fgrafana_logo.png&f=1&nofb=1" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Grafana LXC </h1>\n  \n  [Grafana](https://grafana.com/) is a data visualization and monitoring platform that enables users to query, visualize, alert on and understand metrics, logs, and other data sources. It integrates with various data sources, including Prometheus, InfluxDB, Elasticsearch, and many others, to present a unified view of the data and enable users to create insightful and interactive dashboards.\n  \n  To create a new Proxmox VE Grafana LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/grafana.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n \n  As an alternative option, you can use Alpine Linux and the Grafana package to create a Grafana LXC container with faster creation time and minimal system resource usage. <br>\n  \n  To create a new Proxmox VE Alpine-Grafana LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  ~~~bash\n  bash -c "$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-grafana.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  256Mib RAM - 500MiB Storage - 1vCPU \u26a1</h3>\n\n  **Grafana Interface: IP:3000**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">admin</code>'},{category:"Docker - Kubernetes",title:"Docker LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/docker.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Docker LXC </h1>\n  <h3 align="center"> Options to Install Portainer and/or Docker Compose V2 (Fuse Overlayfs is in "Advanced")</h3>\n  \n  [Docker](https://www.docker.com/) is an open-source project for automating the deployment of applications as portable, self-sufficient containers.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Docker LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/docker.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  As an alternative option, you can use Alpine Linux and the Docker package to create a Docker LXC container with faster creation time and minimal system resource usage. <br>\n  \n  To create a new Proxmox VE Alpine-Docker LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  ~~~bash\n  bash -c "$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-docker.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n\n  **\u26a0 Run Compose V2 by replacing the hyphen (-) with a space, using docker compose, instead of docker-compose.**\n  \n  **Portainer Interface: IP:9443**'},{category:"Docker - Kubernetes",title:"Dockge LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/louislam/dockge/master/frontend/public/icon.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Dockge LXC </h1>\n  <h3 align="center"> Options to add Immich and/or Home Assistant </h3>\n  \n  [Dockge](https://github.com/louislam/dockge) is a fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Dockge LXC, run the command below in the <b>Proxmox VE Shell</b>.\n\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/dockge.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 18GB Storage - 2vCPU \u26a1</h3>\n  \n  **Dockge Interface: IP:5001**\n\n  To update Dockge\n  ~~~bash\n  cd /opt/dockge\n  docker compose pull\n  docker compose up -d\n  ~~~'},{category:"Docker - Kubernetes",title:"Umbrel LXC",content:'<p align="center"><img src="https://uploads-ssl.webflow.com/62966b49981ba146f4842f45/62966b49981ba15b44842fe4_umbrel-logo-compact-purple.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Umbrel LXC </h1>\n  \n  [Umbrel](https://umbrel.com/) is an open-source project that provides a secure and easy-to-use software solution for hosting your own personal server, enabling you to have full control over your data and online services. The OS provides a comprehensive web interface and pre-configured applications for various tasks, making self-hosting accessible for non-technical users.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Umbrel LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/umbrel.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Umbrel Interface: IP** (a reboot is required before app installs)'},{category:"Docker - Kubernetes",title:"CasaOS LXC",content:'<p align="center"><img src="https://www.casaos.io/images/casa_9c491a0f.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> CasaOS LXC </h1>\n  \n  [CasaOS](https://www.casaos.io/) is a software that aims to make it easy for users to create a personal cloud system at home. It uses the Docker ecosystem to provide a simple, user-friendly experience for managing various applications and services.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE CasaOS LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/casaos.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **CasaOS Interface: IP**'},{category:"Docker - Kubernetes",title:"Runtipi LXC",content:'<p align="center"><img src="https://runtipi.io/_next/static/media/tipi.c0b9b68e.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Runtipi LXC </h1>\n  \n  [Runtipi](https://runtipi.io/) lets you install all your favorite self-hosted apps without the hassle of configuring and managing each service. One-click installs and updates for more than 180 popular apps.\n  \n  \ud83d\udec8 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Runtipi LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/runtipi.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Runtipi Interface: IP**'},{category:"Docker - Kubernetes",title:"Podman LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/podman.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Podman LXC </h1>\n  \n  [Podman](https://podman.io/) is an open-source, daemonless, and portable container engine that allows users to manage containers on Linux systems without the need for a daemon or system service to be running in the background. It provides an API and a command-line interface that can be used to create, run, and manage containers and their associated networks, volumes, and images. It is built on top of the Open Container Initiative (OCI) runtime specification, making it compatible with other OCI-compliant container engines.\n  \n  \n  To create a new Proxmox VE Podman LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/podman.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>'},{category:"Operating System",title:"Debian LXC",content:'<p align="center"><img src="https://www.debian.org/Pics/debian-logo-1024x576.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Debian LXC </h1>\n  Debian Linux is a distribution that emphasizes free software. It supports many hardware platforms.\n\n  To create a new Proxmox VE Debian LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/debian.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>'},{category:"Operating System",title:"Debian 12 VM",content:'<p align="center"><img src="https://www.debian.org/Pics/debian-logo-1024x576.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Debian 12 VM </h1>\n  Debian Linux is a distribution that emphasizes free software. It supports many hardware platforms.\n\n  To create a new Proxmox VE Debian 12 VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/debian-vm.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 2GB Storage - 2vCPU \u26a1</h3>\n  \n  More Info at https://github.com/tteck/Proxmox/discussions/1988'},{category:"Operating System",title:"Ubuntu LXC",content:'<p align="center"><img src="https://assets.ubuntu.com/v1/29985a98-ubuntu-logo32.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Ubuntu LXC </h1>\n  <h3 align="center" id="heading"> Option to select version </h3>\n  Ubuntu is a distribution based on Debian, designed to have regular releases and a consistent user experience.\n  \n  To create a new Proxmox VE Ubuntu LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/ubuntu.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU - 22.04 \u26a1</h3>'},{category:"Operating System",title:"Ubuntu 22.04 VM",content:'<p align="center"><img src="https://assets.ubuntu.com/v1/29985a98-ubuntu-logo32.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Ubuntu 22.04 VM </h1>\n  Ubuntu is a distribution based on Debian, designed to have regular releases and a consistent user experience.\n\n  To create a new Proxmox VE Ubuntu 22.04 VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/ubuntu-vm.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 2GB Storage - 2vCPU \u26a1</h3>\n  \n  More Info at https://github.com/tteck/Proxmox/discussions/2072'},{category:"Operating System",title:"Alpine LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/alpinelinux.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Alpine LXC </h1>\n  A security-oriented, lightweight Linux distribution based on musl and BusyBox.<br>\n  By default, the root password is set to <code class="highlighter-rouge">alpine</code>. If you choose to use advanced settings, you will need to define a password, autologin is currently unavailable.\n\n  To create a new Proxmox VE Alpine LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/alpine.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 100MiB Storage - 1vCPU \u26a1</h3>\n\n  \u2699\ufe0f **Default Password** <code class="highlighter-rouge">alpine</code>\n\n  \u2699\ufe0f **To Update Alpine**\n  \n  ~~~bash\n  apk update && apk upgrade\n  ~~~'},{category:"TurnKey",title:"TurnKey LXC Appliances",content:'<p align="center"><img src="https://blog.desdelinux.net/wp-content/uploads/2017/01/TurnKey-Linux.png " height="100"/></p>\n  \n  <h1 align="center" id="heading"> TurnKey LXC Appliances </h1>\n\n  [TurnKey LXC Appliances](https://www.turnkeylinux.org/) is an open-source project that provides a collection of free, ready-to-use virtual appliances and installation images for various software applications and services. These appliances are pre-configured and come with all the necessary software and settings to simplify deployment and management. The goal of TurnKey Linux is to make it easier for users to set up and run popular software applications without the need for extensive manual configuration.\n  \n  To create a new Proxmox VE TurnKey LXC Appliance , run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/turnkey/turnkey.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">Resource and network settings are adjustable post LXC creation.</h3>\n  \n  The script creates a <code class="highlighter-rouge">*.creds</code> file in the Proxmox root directory with the password of the newly created TurnKey LXC Appliance.\n\n  \u2699\ufe0f **Retrieve Password** <code class="highlighter-rouge">cat turnkey-*name*.creds</code>'},{category:"Server - Networking",title:"Cloudflared LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/cloudflare.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Cloudflared LXC </h1>\n   \n  [Cloudflared](https://www.cloudflare.com/) is a command-line tool that allows you to securely access resources on the Cloudflare network, such as websites and APIs, from your local computer. It works by creating a secure tunnel between your computer and the Cloudflare network, allowing you to access resources as if they were on your local network. \n  \n  To create a new Proxmox VE Cloudflared LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/cloudflared.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>'},{category:"Server - Networking",title:"Zoraxy LXC",content:'<p align="center"><img src="https://zoraxy.arozos.com/img/icon.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Zoraxy LXC </h1>\n   \n  [Zoraxy](https://zoraxy.arozos.com/) is an all in one homelab network routing solution. \n  \n  To create a new Proxmox VE Zoraxy LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/zoraxy.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n\n  **Zoraxy Interface: IP:8000**'},{category:"Server - Networking",title:"Nginx Proxy Manager LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/nginxproxymanager.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Nginx Proxy Manager LXC </h1>\n  \n  [Nginx Proxy Manager](https://nginxproxymanager.com/) is a tool that provides a web-based interface to manage Nginx reverse proxies. It enables users to easily and securely expose their services to the internet by providing features such as HTTPS encryption, domain mapping, and access control. It eliminates the need for manual configuration of Nginx reverse proxies, making it easy for users to quickly and securely expose their services to the public.\n  \n  To create a new Proxmox VE Nginx Proxy Manager LXC Container, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Nginx Proxy Manager, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~yaml\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nginxproxymanager.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 3GB Storage - 1vCPU \u26a1</h3>\n\n  \ud83d\udea8 Since there are hundreds of Certbot instances, it\'s necessary to install the specific Certbot of your preference.\n  \n  Forward port <code class="highlighter-rouge">80</code> and <code class="highlighter-rouge">443</code> from your router to your Nginx Proxy Manager LXC IP.\n  \n  Add the command below to your <code class="highlighter-rouge">configuration.yaml</code> in Home Assistant.\n  ~~~yaml\n  http:\n    use_x_forwarded_for: true\n    trusted_proxies:\n      - 192.168.100.27 ###(Nginx Proxy Manager LXC IP)###\n  ~~~\n  \n  **Nginx Proxy Manager Interface: IP:81**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin@example.com</code>\n  \n  **password** <code class="highlighter-rouge">changeme</code>'},{category:"Server - Networking",title:"YunoHost LXC",content:'<p align="center"><img src="https://yunohost.org/_images/ynh_logo_white_300dpi.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> YunoHost LXC </h1>\n   \n  [YunoHost](https://yunohost.org/#/) is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting, while making sure it stays reliable, secure, ethical and lightweight. \n  \n  To create a new Proxmox VE YunoHost LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/yunohost.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 20GB Storage - 2vCPU \u26a1</h3>\n  \n  **YunoHost Interface: IP/**'},{category:"Server - Networking",title:"UniFi Network Application LXC",content:'<p align="center"><img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fblog.ui.com%2Fwp-content%2Fuploads%2F2016%2F10%2Funifi-app-logo-300x108.png&f=1&nofb=1" height="100"/></p>\n  \n  <h1 align="center" id="heading"> UniFi Network Application LXC </h1>\n  \n  UniFi Network Application is a software that helps manage and monitor UniFi networks (Wi-Fi, Ethernet, etc.) by providing an intuitive user interface and advanced features. It allows network administrators to configure, monitor, and upgrade network devices, as well as view network statistics, client devices, and historical events. The aim of the application is to make the management of UniFi networks easier and more efficient.\n  \n  To create a new Proxmox VE UniFi Network Application LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/unifi.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **UniFi Interface: (https)IP:8443**'},{category:"Server - Networking",title:"Omada Controller LXC",content:'<p align="center"><img src="https://www.enterpriseitpro.net/wp-content/uploads/2020/12/logo-omada.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Omada Controller LXC </h1>\n  \n  Omada Controller is a software application used to manage TP-Link\'s Omada EAP (Enterprise Access Point) devices. It allows administrators to centrally manage a large number of EAPs, monitor network performance, and control user access to the network. The software provides an intuitive interface for network configuration, firmware upgrades, and network monitoring. By using the Omada Controller, administrators can streamline the management process, reduce manual intervention, and improve the overall security and reliability of the network.\n  \n  To create a new Proxmox VE Omada Controller LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Omada, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/omada.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Omada Interface: (https)IP:8043**'},{category:"Server - Networking",title:"WireGuard LXC",content:'<p align="center"><img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fcdn.icon-icons.com%2Ficons2%2F2699%2FPNG%2F512%2Fwireguard_logo_icon_168760.png&f=1&nofb=1" height="100"/></p>\n  \n  <h1 align="center" id="heading"> WireGuard LXC </h1>\n   \n  WireGuard is a free and open-source virtual private network (VPN) software that uses modern cryptography to secure the data transmitted over a network. It is designed to be fast, secure, and easy to use. WireGuard supports various operating systems, including Linux, Windows, macOS, Android, and iOS. It operates at the network layer and is capable of being used with a wide range of protocols and configurations. Unlike other VPN protocols, WireGuard is designed to be simple and fast, with a focus on security and speed. It is known for its ease of setup and configuration, making it a popular choice for personal and commercial use.\n\n  To create a new Proxmox VE WireGuard LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update WireGuard or Install a Dashboard, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/wireguard.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  \u2699\ufe0f **Host Configuration**\n  \n  ~~~yaml\n  nano /etc/pivpn/wireguard/setupVars.conf\n  ~~~\n  \u2699\ufe0f **Add Clients** \n  \n  ~~~yaml\n  pivpn add\n  ~~~'},{category:"Server - Networking",title:"Cronicle Primary LXC",content:'<p align="center"><img src="https://github.com/jhuckaby/Cronicle/blob/master/htdocs/images/logo-128.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Cronicle Primary LXC </h1>\n  \n  [Cronicle](https://github.com/jhuckaby/Cronicle) is a task scheduling and management software that allows users to schedule and run tasks automatically on multiple servers. It has a web-based user interface that provides a convenient and centralized way to manage tasks and view their execution status. With Cronicle, users can schedule tasks to run at specific times, or on demand, and assign tasks to specific worker servers. The software provides real-time statistics and a live log viewer to help users monitor the progress of tasks. Cronicle is designed for use in large-scale environments, making it a valuable tool for automation and management of complex and time-sensitive tasks.\n\n  To create a new Proxmox VE Cronicle Primary LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Cronicle or Install Cronicle Worker, run the command below (or type update) in a <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/cronicle.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **Cronicle Primary Interface: IP:3012**\n\n  \u2699\ufe0f Config Path\n  ~~~bash\n  /opt/cronicle/conf/config.json\n  ~~~\n\n  Primary and Worker Private Keys Must Match.'},{category:"Server - Networking",title:"MeshCentral LXC",content:'<p align="center"><img src="https://github.com/Ylianst/MeshCentral/blob/master/public/favicon-303x303.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> MeshCentral LXC </h1>\n  \n  [MeshCentral](https://meshcentral.com/info/) is a web-based computer management platform that provides remote control and management capabilities for computers. It allows administrators to manage and control computers over a local network or the internet through a single, centralized web-based interface. With MeshCentral, users can monitor the status of computers, perform remote administration tasks, and control the power state of machines. The software supports various operating systems and provides real-time updates and alerts to keep administrators informed of the status of their systems. MeshCentral is designed to provide an easy-to-use, scalable, and secure solution for remote computer management, making it a valuable tool for IT administrators, helpdesk support, and remote workers.\n  \n  To create a new Proxmox VE MeshCentral LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/meshcentral.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **MeshCentral Interface: IP**'},{category:"Server - Networking",title:"Tailscale",content:'<p align="center"><img src="https://avatars.githubusercontent.com/u/48932923?v=4&s=100"/></p>\n  \n  <h1 align="center" id="heading"> Tailscale</h1>\n  \n  [Tailscale](https://tailscale.com/) is a software-defined networking solution that enables secure communication between devices over the internet. It creates a virtual private network (VPN) that enables devices to communicate with each other as if they were on the same local network. Tailscale works even when the devices are separated by firewalls or subnets, and provides secure and encrypted communication between devices. With Tailscale, users can connect devices, servers, computers, and cloud instances to create a secure network, making it easier to manage and control access to resources. Tailscale is designed to be easy to set up and use, providing a streamlined solution for secure communication between devices over the internet.\n  \n  To Install Talescale on an existing LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/add-tailscale-lxc.sh)"\n  ~~~\n  After the script finishes, reboot the LXC then run <code class="highlighter-rouge">tailscale up</code> in the LXC console\n  \n  [**Tailscale Login**](https://login.tailscale.com/start)'},{category:"Server - Networking",title:"CrowdSec",content:'<p align="center"><img src="https://raw.githubusercontent.com/crowdsecurity/crowdsec-docs/main/crowdsec-docs/static/img/crowdsec_no_txt.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> CrowdSec</h1>\n\n  [CrowdSec](https://crowdsec.net/) is a free and open-source intrusion prevention system (IPS) designed to provide network security against malicious traffic. It is a collaborative IPS that analyzes behaviors and responses to attacks by sharing signals across a community of users. CrowdSec leverages the collective intelligence of its users to detect and respond to security threats in real-time. With CrowdSec, network administrators can set up protection against a wide range of threats, including malicious traffic, bots, and denial-of-service (DoS) attacks. The software is designed to be easy to use and integrate with existing security systems, making it a valuable tool for enhancing the security of any network.\n  \n  To Install CrowdSec, \u26a0\ufe0f run the command below in the <b>LXC console</b>.\n  \n  ~~~bash\n    bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/crowdsec.sh)"\n  ~~~\n  \n  [**Control center for your CrowdSec machines.**](https://app.crowdsec.net/product-tour)'},{category:"Server - Networking",title:"Keycloak LXC",content:'<p align="center"><img src="https://www.keycloak.org/resources/images/keycloak_icon_512px.svg?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Keycloak LXC</h1>\n\n  [Keycloak](https://www.keycloak.org/) is an open-source identity and access management solution that provides centralized authentication and authorization for modern applications and services. It enables organizations to secure their applications and services with a single sign-on (SSO) solution, reducing the need for users to remember multiple login credentials. Keycloak supports various authentication protocols, including SAML, OAuth, and OpenID Connect, and integrates with a wide range of applications and services. With Keycloak, administrators can manage user identities, define security policies, and monitor access to their applications and services. The software is designed to be scalable, flexible, and easy to use, making it a valuable tool for enhancing the security and usability of modern applications and services.\n  \n  To create a new Proxmox VE Keycloak LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/keycloak.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 2CPU \u26a1</h3>\n\n  **Keycloak Interface: IP:8080** (First start can take a few minutes)\n  \n  \u2699\ufe0f **Initial Login**\n  \n  The initial admin user can be added manually using the web frontend when accessed from localhost or automatically using environment variables.\n  \n  To add the initial admin user using environment variables, set <code class="highlighter-rouge">KEYCLOAK_ADMIN</code> for the initial admin username and <code class="highlighter-rouge">KEYCLOAK_ADMIN_PASSWORD</code> for the initial admin password.\n  \n  First, stop Keycloak\n  ~~~bash\n  systemctl stop keycloak.service\n  ~~~\n  then start Keycloak by coping & pasting the command below (only needed once)\n  ~~~bash\n  cd /opt/keycloak\n  export KEYCLOAK_ADMIN=admin\n  export KEYCLOAK_ADMIN_PASSWORD=changeme\n  bin/kc.sh start-dev \n  ~~~'},{category:"Server - Networking",title:"OpenWrt VM",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/openwrt.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> OpenWrt VM </h1>\n  \n  [OpenWrt](https://openwrt.org/) is a powerful open-source firmware that can transform a wide range of networking devices into highly customizable and feature-rich routers, providing users with greater control and flexibility over their network infrastructure.\n  \n  To create a new Proxmox VE OpenWrt VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/openwrt.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  256MiB RAM - 512MiB Storage - 1CPU \u26a1</h3>'},{category:"Server - Networking",title:"Mikrotik RouterOS CHR VM",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/mikrotik.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Mikrotik RouterOS CHR VM </h1>\n  \n  [Mikrotik RouterOS CHR](https://help.mikrotik.com/docs/display/ROS/Cloud+Hosted+Router%2C+CHR) is a Linux-based operating system that transforms a computer into a router. It provides a wide range of features for network routing, firewall, bandwidth management, wireless access point, backhaul link, hotspot gateway, VPN server, and many others. RouterOS is a versatile solution that supports various network configurations, including those with multiple WAN links, hotspots, and VPNs. It is highly customizable, allowing administrators to configure and manage their networks according to their specific requirements. With RouterOS, network administrators can monitor and control the performance and security of their networks, ensuring reliable and secure communication for their users. The software is designed to be easy to use and provides a wide range of tools for network management, making it a valuable solution for small and large networks alike.\n  \n  To create a new Proxmox VE Mikrotik RouterOS CHR VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/mikrotik-routeros.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 128MiB Storage - 2CPU \u26a1</h3>\n\n  Initial setup is done via VM console. Go to the IP address to manage.\n\n  \u2699\ufe0f **Initial Login**\n\n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">no password</code>'},{category:"Media - Photo",title:"Audiobookshelf LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/audiobookshelf.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading">Audiobookshelf LXC </h1>\n  \n  [Audiobookshelf](https://www.audiobookshelf.org/) is a Self-hosted audiobook and podcast server.\n\n  To create a new Proxmox VE Audiobookshelf LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/audiobookshelf.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Audiobookshelf Interface: IP:13378**'},{category:"Media - Photo",title:"Plex Media Server LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/plex-white.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Plex Media Server LXC </h1>\n  <h3 align="center" id="heading"> With Hardware Acceleration Support </h3> \n  \n  To create a new Proxmox VE Plex Media Server LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Plex Media Server or add Extras, run the command below (or type update) in the <b>LXC Console</b>.\n\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/plex.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Plex Media Server Interface: IP:32400/web**'},{category:"Media - Photo",title:"Tautulli LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/tautulli.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Tautulli LXC </h1>\n\n  [Tautulli](https://tautulli.com/) allows you to monitor and track your Plex Media Server usage, such as viewing statistics and analysis of your media library. It can be used to monitor user activity, get notifications about new media added to your library, and even generate reports on your media usage.\n  \n  To create a new Proxmox VE Tautulli LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/tautulli.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Tautulli Interface: IP:8181**'},{category:"Media - Photo",title:"Emby Media Server LXC",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/emby/icon.png?raw=true" height="100"/></p>\n  <h1 align="center" id="heading"> Emby Media Server LXC </h1>\n  \n  [Emby](https://emby.media/) brings together your personal videos, music, photos, and live television.\n  \n  To create a new Proxmox VE Emby Media Server LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Emby, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/emby.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Emby Media Server Interface: IP:8096**'},{category:"Media - Photo",title:"Jellyfin Media Server LXC",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/jellyfin/icon.png?raw=true" height="100"/></p>\n  <h1 align="center" id="heading"> Jellyfin Media Server LXC </h1>\n  \n  [TurnKey has a LXC CT for Jellyfin](https://www.turnkeylinux.org/mediaserver)\n  \n  To create a new Proxmox VE Jellyfin Media Server LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n    bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/jellyfin.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Jellyfin Media Server Interface: IP:8096**\n  \n  FFmpeg path: <code class="highlighter-rouge">/usr/lib/jellyfin-ffmpeg/ffmpeg</code>'},{category:"Media - Photo",title:"Jellyseerr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/jellyseerr.svg" height="100"/></p>\n  <h1 align="center" id="heading"> Jellyseerr LXC </h1>\n  \n  [Jellyseerr](https://github.com/Fallenbagel/jellyseerr) is a free and open source software application for managing requests for your media library. It is a a fork of Overseerr built to bring support for Jellyfin & Emby media servers.\n  \n  To create a new Proxmox VE Jellyseerr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Jellyseerr, run the command below (or type update) in the <b>LXC Console</b>.\n \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/jellyseerr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Jellyseerr Interface: IP:5055**'},{category:"Media - Photo",title:"Overseerr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/overseerr.svg" height="100"/></p>\n  <h1 align="center" id="heading"> Overseerr LXC </h1>\n  \n  [Overseerr](https://overseerr.dev/) is a request management and media discovery tool built to work with your existing Plex ecosystem.\n  \n  To create a new Proxmox VE Overseerr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Overseerr, run the command below (or type update) in the <b>LXC Console</b>.\n \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/overseerr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Overseerr Interface: IP:5055**'},{category:"Media - Photo",title:"Ombi LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/ombi.svg" height="100"/></p>\n  <h1 align="center" id="heading"> Ombi LXC </h1>\n  \n  [Ombi](https://ombi.io/) is a self-hosted web application designed to empower shared Plex, Emby or Jellyfin users with automated content request capabilities. By integrating with various TV Show and Movie DVR tools, Ombi ensures a smooth and comprehensive experience for your users, allowing them to effortlessly request content on their own.\n  \n  To create a new Proxmox VE Ombi LXC, run the command below in the <b>Proxmox VE Shell</b>.\n \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/ombi.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 1vCPU \u26a1</h3>\n  \n  **Ombi Interface: IP:5000**'},{category:"Media - Photo",title:"ownCloud VM",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/owncloud.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> ownCloud VM </h1>\n\n  [TurnKey ownCloud](https://www.turnkeylinux.org/owncloud) is an open-source file sharing server and collaboration platform that can store your personal content, like documents and pictures, in a centralized location.\n  \n  To create a new Proxmox VE TurnKey ownCloud VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/owncloud-vm.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>  \n  \n  **ownCloud Interface: IP**'},{category:"Media - Photo",title:"Nextcloud LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/nextcloud.svg" height="150"/></p>\n  \n  <h1 align="center" id="heading">Nextcloud LXC </h1>\n  \n  [NextCloudPi](https://github.com/nextcloud/nextcloudpi#features) is a popular self-hosted solution for file collaboration and data storage. It is built on the NextCloud software, which is an open-source platform for data management.\n  \n  To create a new Proxmox VE NextCloudPi LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nextcloudpi.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n\n  **NextCloudPi Interface: (https)IP/**<br><br>\n  \n  [Alpine Nextcloud Hub](https://nextcloud.com/) integrates the four key Nextcloud products Files, Talk, Groupware and Office into a single platform, optimizing the flow of collaboration.\n  \n  To create a new Proxmox VE Alpine Nextcloud Hub LXC, run the command below in the <b>Proxmox VE Shell</b>.<br>\n  To Update Alpine Nextcloud or Show Alpine Nextcloud Login Credentials, run the command below in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-nextcloud.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 2vCPU \u26a1</h3>\n\n  **Alpine Nextcloud Hub Interface: (https)IP/**<br><br>\n  \n  [TurnKey Nextcloud](https://www.turnkeylinux.org/nextcloud) helps store your files, folders, contacts, photo galleries, calendars and more on a server of your choosing. Access that folder from your mobile device, your desktop, or a web browser. Access your data wherever you are, when you need it.\n  \n  To create a new Proxmox VE TurnKey Nextcloud LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/turnkey/turnkey.sh)"\n  ~~~\n  To create a new Proxmox VE TurnKey Nextcloud VM, run the command below in the <b>Proxmox VE Shell</b>.\n\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/nextcloud-vm.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n\n  **TurnKey Nextcloud Interface: (https)IP/**'},{category:"Media - Photo",title:"Owncast LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/owncast/owncast/develop/web/public/img/favicon/android-icon-144x144.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Owncast LXC </h1>\n  \n  [Owncast](https://owncast.online/) is a free and open source live video and web chat server for use with existing popular broadcasting software.\n  \n  To create a new Proxmox VE Owncast LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/owncast.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 2GB Storage - 2vCPU \u26a1</h3>\n  \n  **Owncast Interface: IP:8080** <br>\n  **Owncast Admin Interface: IP:8080/admin**\n  \n  \u2699\ufe0f **Initial Admin Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">abc123</code>'},{category:"Media - Photo",title:"OpenMediaVault LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/openmediavault.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> OpenMediaVault LXC </h1>\n  \n  [OpenMediaVault](https://www.openmediavault.org/) is a next-generation network-attached storage (NAS) solution based on Debian Linux. It provides a web-based interface for managing and storing digital data, making it easy to use and set up. OpenMediaVault supports various storage protocols, including SMB/CIFS, NFS, and FTP, and provides a wide range of features for data management, such as user and group management, disk quotas, and data backup and recovery. The software is designed to be flexible and scalable, making it a valuable solution for both personal and enterprise use. OpenMediaVault provides a stable and reliable platform for managing and storing digital data, making it a popular choice for those who want to host their own data and ensure its security and privacy. With OpenMediaVault, users can access their data from anywhere and easily share it with others, making it a valuable tool for collaboration and data management.\n  \n  To create a new Proxmox VE OpenMediaVault LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/omv.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **OpenMediaVault Interface: IP**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">openmediavault</code>'},{category:"Media - Photo",title:"Navidrome LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/navidrome/navidrome/master/resources/logo-192x192.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Navidrome LXC </h1>\n  \n  [Navidrome](https://www.navidrome.org/) is a music server solution that makes your music collection accessible from anywhere. It provides a modern web-based user interface and compatibility with a range of third-party mobile apps for both iOS and Android devices. With Navidrome, users can access their music collection from anywhere, whether at home or on the go. The software supports a variety of music formats, making it easy for users to play their favorite songs and albums. Navidrome provides a simple and user-friendly interface for managing and organizing music collections, making it a valuable tool for music lovers who want to access their music from anywhere. The software is designed to be easy to set up and use, making it a popular choice for those who want to host their own music server and enjoy their music collection from anywhere.\n  \n  To create a new Proxmox VE Navidrome LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Navidrome, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/navidrome.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  To change Navidrome music folder path, edit: <code class="highlighter-rouge">/var/lib/navidrome/navidrome.toml</code>\n  \n  **Navidrome Interface: IP:4533**'},{category:"Media - Photo",title:"PhotoPrism LXC",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/photoprism.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> PhotoPrism LXC </h1>\n  \n  [PhotoPrism](https://photoprism.app/) is an AI-Powered Photos App for the Decentralized Web. It makes use of the latest technologies to tag and find pictures automatically without getting in your way.\n  \n  To create a new Proxmox VE PhotoPrism LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update PhotoPrism, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/photoprism.sh)"\n  ~~~\n\n  Please note that Ubuntu 22.04 and Debian 12 are supported, while older Linux distributions may not be compatible.\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **PhotoPrism Interface: IP:2342**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">changeme</code>\n  \n  [PhotoSync](https://www.photosync-app.com/home.html)'},{category:"Media - Photo",title:"Bazarr LXC",content:'<p align="center"><img src="https://www.bazarr.media/assets/img/logo.png" height="100"/></p>\n  \n  <h1 align="center" id="heading">Bazarr LXC </h1>\n  \n  [Bazarr](https://www.bazarr.media/) is a companion application to Sonarr and Radarr that manages and downloads subtitles based on your requirements.\n  \n  To create a new Proxmox VE Bazarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/bazarr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Bazarr Interface: IP:6767**'},{category:"Media - Photo",title:"Lidarr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Lidarr/Lidarr/develop/Logo/256.png" height="100"/></p>\n  \n  <h1 align="center" id="heading">Lidarr LXC </h1>\n  \n  [Lidarr](https://lidarr.audio/) is a music management tool designed for Usenet and BitTorrent users. It allows users to manage and organize their music collection with ease. Lidarr integrates with popular Usenet and BitTorrent clients, such as Sonarr and Radarr, to automate the downloading and organizing of music files. The software provides a web-based interface for managing and organizing music, making it easy to search and find songs, albums, and artists. Lidarr also supports metadata management, including album art, artist information, and lyrics, making it easy for users to keep their music collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing music collections, making it a valuable tool for music lovers who want to keep their collection organized and up-to-date. With Lidarr, users can enjoy their music collection from anywhere, making it a powerful tool for managing and sharing music files.\n  \n  To create a new Proxmox VE Lidarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/lidarr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Lidarr Interface: IP:8686**'},{category:"Media - Photo",title:"Prowlarr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Prowlarr/Prowlarr/develop/Logo/256.png" height="100"/></p>\n  \n  <h1 align="center" id="heading">Prowlarr LXC </h1>\n  \n  [Prowlarr](https://github.com/Prowlarr/Prowlarr) is a software tool designed to integrate with various PVR (Personal Video Recorder) apps. It is built on a popular *arr .net/ReactJS base stack and serves as an indexer manager and proxy. Prowlarr makes it easy to manage and organize TV show and movie collections, by integrating with popular PVR apps and automating the downloading and organizing of media files. The software provides a web-based interface for managing and organizing TV shows and movies, making it easy to search and find content. Prowlarr also supports metadata management, including show and movie information, making it easy for users to keep their media collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing media collections, making it a valuable tool for media enthusiasts who want to keep their collection organized and up-to-date. With Prowlarr, users can enjoy their media collection from anywhere, making it a powerful tool for managing and sharing media files.\n  \n  To create a new Proxmox VE Prowlarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/prowlarr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Prowlarr Interface: IP:9696**'},{category:"Media - Photo",title:"Radarr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Radarr/Radarr/develop/Logo/256.png" height="100"/></p>\n  \n  <h1 align="center" id="heading">Radarr LXC </h1>\n  \n  [Radarr](https://radarr.video/) is a movie management tool designed for Usenet and BitTorrent users. It allows users to manage and organize their movie collection with ease. Radarr integrates with popular Usenet and BitTorrent clients, such as Sonarr and Lidarr, to automate the downloading and organizing of movie files. The software provides a web-based interface for managing and organizing movies, making it easy to search and find titles, genres, and release dates. Radarr also supports metadata management, including movie posters and information, making it easy for users to keep their movie collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing movie collections, making it a valuable tool for movie enthusiasts who want to keep their collection organized and up-to-date. With Radarr, users can enjoy their movie collection from anywhere, making it a powerful tool for managing and sharing movie files.\n  \n  To create a new Proxmox VE Radarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/radarr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Radarr Interface: IP:7878**'},{category:"Media - Photo",title:"Readarr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Readarr/Readarr/develop/Logo/256.png" height="100"/></p>\n  \n  <h1 align="center" id="heading">Readarr LXC </h1>\n  \n  [Readarr](https://readarr.com/) is an eBook and audiobook management tool designed for Usenet and BitTorrent users. It allows users to manage and organize their eBook and audiobook collection with ease. Readarr integrates with popular Usenet and BitTorrent clients, such as Sonarr and Lidarr, to automate the downloading and organizing of eBook and audiobook files. The software provides a web-based interface for managing and organizing eBooks and audiobooks, making it easy to search and find titles, authors, and genres. Readarr also supports metadata management, including cover art and information, making it easy for users to keep their eBook and audiobook collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing eBook and audiobook collections, making it a valuable tool for book and audiobook enthusiasts who want to keep their collection organized and up-to-date. With Readarr, users can enjoy their eBook and audiobook collection from anywhere, making it a powerful tool for managing and sharing book and audiobook files.\n  \n  To create a new Proxmox VE Radarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/readarr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Readarr Interface: IP:8787**'},{category:"Media - Photo",title:"Sonarr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png" height="100"/></p>\n  \n  <h1 align="center" id="heading">Sonarr LXC </h1>\n  \n  [Sonarr](https://sonarr.tv/) is a personal video recorder (PVR) software designed for Usenet and BitTorrent users. It allows users to manage and organize their TV show collection with ease. Sonarr integrates with popular Usenet and BitTorrent clients, such as NZBget and Transmission, to automate the downloading and organizing of TV show files. The software provides a web-based interface for managing and organizing TV shows, making it easy to search and find titles, seasons, and episodes. Sonarr also supports metadata management, including TV show posters and information, making it easy for users to keep their TV show collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing TV show collections, making it a valuable tool for TV show enthusiasts who want to keep their collection organized and up-to-date. With Sonarr, users can enjoy their TV show collection from anywhere, making it a powerful tool for managing and sharing TV show files.\n  \n  To create a new Proxmox VE Sonarr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Sonarr, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/sonarr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Sonarr Interface: IP:8989**'},{category:"Media - Photo",title:"Unmanic LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Unmanic/unmanic/master/icon.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Unmanic LXC </h1>\n  \n  [Unmanic](https://docs.unmanic.app/) is a simple tool for optimising your file library. You can use it to convert your files into a single, uniform format, manage file movements based on timestamps, or execute custom commands against a file based on its file size.\n  \n  To create a new Proxmox VE Unmanic LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Unmanic, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/unmanic.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Unmanic Interface: IP:8888**'},{category:"Media - Photo",title:"Tdarr LXC",content:'<p align="center"><img src="https://home.tdarr.io/static/media/logo3-min.246d6df44c7f16ddebaf.png" height="100"/></p>\n  \n  <h1 align="center" id="heading">Tdarr LXC </h1>\n  \n  [Tdarr](https://tdarr.io/) is a media transcoding application designed to automate the transcode and remux management of a media library. It uses conditional-based processing to determine the required encoding and remux operations for each file in the library. The software integrates with popular media management tools, such as Sonarr and Radarr, to ensure that newly added media files are automatically processed and optimized for the user\'s desired playback device. Tdarr provides a web-based interface for monitoring and managing the transcoding process, and also supports real-time logging and reporting. The software is designed to be flexible and configurable, with a wide range of encoding and remux options available to users. Tdarr is an ideal solution for media enthusiasts who want to optimize their library for seamless playback on a variety of devices, while also streamlining the management and maintenance of their media library.\n  \n  To create a new Proxmox VE Tdarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/tdarr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Tdarr Interface: IP:8265**'},{category:"Media - Photo",title:"Whisparr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Whisparr/Whisparr/develop/Logo/256.png" height="100"/></p>\n  \n  <h1 align="center" id="heading">Whisparr LXC </h1>\n  \n  [Whisparr](https://github.com/Whisparr/Whisparr) is an adult movie collection manager for Usenet and BitTorrent users.\n  \n  To create a new Proxmox VE Whisparr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/whisparr.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **Whisparr Interface: IP:6969**'},{category:"Media - Photo",title:"Channels DVR Server LXC",content:'<p align="center"><img src="https://getchannels.com/a/images/channels-logo.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading">Channels DVR Server LXC </h1>\n  \n  [Channels DVR Server](https://getchannels.com/dvr-server/) runs on your computer or NAS device at home. There\'s no cloud to worry about. Your tv shows and movies will always be available.\n  \n  To create a new Proxmox VE Channels DVR Server LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/channels.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Channels DVR Server Interface: IP:8089**'},{category:"Ad Blocker - DNS",title:"Pi-hole LXC",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/pi_hole/icon.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Pi-hole LXC </h1>\n  \n  [Pi-hole](https://pi-hole.net/) is a free, open-source network-level advertisement and Internet tracker blocking application. It runs on a Raspberry Pi or other Linux-based systems and acts as a DNS sinkhole, blocking unwanted traffic before it reaches a user\'s device. Pi-hole can also function as a DHCP server, providing IP addresses and other network configuration information to devices on a network. The software is highly configurable and supports a wide range of customizations, such as allowing or blocking specific domains, setting up blocklists and whitelists, and customizing the appearance of the web-based interface. The main purpose of Pi-hole is to protect users\' privacy and security by blocking unwanted and potentially malicious content, such as ads, trackers, and malware. It is designed to be easy to set up and use, and can be configured through a web-based interface or through a terminal-based command-line interface.\n  \n  To create a new Proxmox VE Pi-hole LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/pihole.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  \u26a0\ufe0f **Reboot Pi-hole LXC after install**\n  \n  **Pi-hole Interface: IP/admin**\n  \n  \u2699\ufe0f **To set your password:**\n  \n  ~~~yaml\n  pihole -a -p\n  ~~~'},{category:"Ad Blocker - DNS",title:"Technitium DNS LXC",content:'<p align="center"><img src="https://avatars.githubusercontent.com/u/12230362?s=100&v=4" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Technitium DNS LXC </h1>\n\n  [Technitium DNS Server](https://technitium.com/dns/) is a free, open-source and privacy-focused DNS (Domain Name System) server software for Windows, Linux, and macOS. It is designed to provide a secure, fast, and reliable DNS resolution service to its users. The server can be configured through a web-based interface, and it supports a variety of advanced features, such as automatic IP updates, IPv6 support, caching of DNS queries, and the ability to block unwanted domains. It is also designed to be highly secure, with built-in measures to prevent common types of DNS attacks and data leaks. Technitium DNS Server is aimed at providing an alternative to traditional DNS servers, which often have privacy and security concerns associated with them, and it is ideal for users who are looking for a more secure and private DNS resolution service.\n  \n  To create a new Proxmox VE Technitium DNS LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Technitium DNS, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/technitiumdns.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **Technitium DNS Interface: IP:5380**'},{category:"Ad Blocker - DNS",title:"AdGuard Home LXC",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/adguard/icon.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> AdGuard Home LXC </h1>\n\n  [AdGuard Home](https://adguard.com/en/adguard-home/overview.html) is an open-source, self-hosted network-wide ad blocker. It blocks advertisements, trackers, phishing and malware websites, and provides protection against online threats. AdGuard Home is a DNS-based solution, which means it blocks ads and malicious content at the network level, before it even reaches your device. It runs on your home network and can be easily configured and managed through a web-based interface. It provides detailed statistics and logs, allowing you to see which websites are being blocked, and why. AdGuard Home is designed to be fast, lightweight, and easy to use, making it an ideal solution for home users who want to block ads, protect their privacy, and improve the speed and security of their online experience.\n  \n  To create a new Proxmox VE AdGuard Home LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Manually Update AdGuard Home, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/adguard.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n\n  **AdGuard Home Setup Interface: IP:3000  (After Setup use only IP)**\n  \n  <sub>(For the Home Assistant Integration, use port <code class="highlighter-rouge">80</code> not <code class="highlighter-rouge">3000</code>)</sub>'},{category:"Ad Blocker - DNS",title:"Blocky LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/0xERR0R/blocky/main/docs/blocky.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Blocky LXC </h1>\n  \n  [Blocky](https://0xerr0r.github.io/blocky/) is a software tool designed for blocking unwanted ads and trackers on local networks. It functions as a DNS proxy and runs on the Go programming language. Blocky intercepts requests to advertisements and other unwanted content and blocks them before they reach the end user. This results in a cleaner, faster, and more secure online experience for users connected to the local network. Blocky is open-source, easy to configure and can be run on a variety of devices, making it a versatile solution for small to medium-sized local networks.\n  \n  To create a new Proxmox VE Blocky LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/blocky.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  \n  \u2699\ufe0f **Blocky Config Path**\n  \n  ~~~yaml\n  /opt/blocky/config.yml\n  ~~~'},{category:"Document - Notes",title:"Paperless-ngx LXC",content:'<p align="center"><img src="https://github.com/paperless-ngx/paperless-ngx/blob/main/resources/logo/web/svg/square.svg?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Paperless-ngx LXC </h1>\n  \n  [Paperless-ngx](https://paperless-ngx.readthedocs.io/en/latest/#) is a software tool designed for digitizing and organizing paper documents. It provides a web-based interface for scanning, uploading, and organizing paper documents, making it easier to manage, search, and access important information. Paperless-ngx uses the OCR (Optical Character Recognition) technology to extract text from scanned images and makes it searchable, thus increasing the efficiency of document management.\n  \n  To create a new Proxmox VE Paperless-ngx LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Paperless-ngx or Show Login Credentials, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/paperless-ngx.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Paperless-ngx Interface: IP:8000**'},{category:"Document - Notes",title:"Trilium LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/zadam/trilium/master/images/app-icons/png/128x128.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Trilium LXC </h1>\n  \n  [Trilium](https://github.com/zadam/trilium#trilium-notes) is an open-source note-taking and personal knowledge management application. It allows users to organize and manage their notes, ideas, and information in a single place, using a hierarchical tree-like structure. Trilium offers a range of features, including rich text formatting, links, images, and attachments, making it easy to create and structure notes. The software is designed to be flexible and customizable, with a range of customization options and plugins available, including themes, export options, and more. Trilium is a self-hosted solution, and can be run on a local machine or a cloud-based server, providing users with full control over their notes and information.\n  \n  To create a new Proxmox VE Trilium LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Trilium, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/trilium.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **Trilium Interface: IP:8080**'},{category:"Document - Notes",title:"Wiki.js LXC",content:'<p align="center"><img src="https://static.requarks.io/logo/wikijs-butterfly.svg?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Wiki.js LXC </h1>\n  \n  [Wiki.js](https://js.wiki/) is a free, open-source, and modern wiki application built using Node.js. It is designed to be fast, easy to use, and flexible, with a range of features for collaboration, knowledge management, and content creation. Wiki.js supports Markdown syntax for editing pages, and includes features such as version control, page history, and access control, making it easy to manage content and collaborate with others. The software is fully customizable, with a range of themes and extensions available, and can be deployed on a local server or in the cloud, making it an ideal choice for small teams and organizations looking to create and manage a wiki. Wiki.js provides a modern, user-friendly interface, and supports a range of data sources, including local file systems, databases, and cloud storage services. \n  \n  To create a new Proxmox VE Wiki.js LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Wiki.js, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/wikijs.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **Wiki.js Interface: IP:3000**'},{category:"Document - Notes",title:"NocoDB LXC",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/nocodb.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> NocoDB LXC </h1>\n  \n  [NocoDB](https://www.nocodb.com/) is a document-oriented database management system. It uses the NoSQL (Not Only SQL) data model, which allows for more flexible and scalable data storage than traditional relational databases. NoCoDB stores data in JSON format, making it easier to manage and query complex data structures, and supports a range of data types, including strings, numbers, arrays, and objects. The software provides a web-based interface for managing and querying data, and includes features such as real-time data synchronization, auto-indexing, and full-text search. NoCoDB is designed to be scalable, and can be used for a range of applications, from small projects to large enterprise systems. The software is free and open-source, and is designed to be easy to use and integrate with other applications.\n  \n  To create a new Proxmox VE NocoDB LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update NocoDB, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nocodb.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 1vCPU \u26a1</h3>\n  \n  **NocoDB Interface: IP:8080/dashboard**'},{category:"Document - Notes",title:"Kavita LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Kareadita/Kavita/develop/Logo/kavita.svg" height="100"/></p>\n  \n  <h1 align="center" id="Kavita"> Kavita LXC </h1>\n  \n  [Kavita](https://www.kavitareader.com/) is a fast, feature rich, cross platform reading server. Built with a focus for manga, and the goal of being a full solution for all your reading needs.\n  \n  To create a new Proxmox VE Kavita LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Kavita, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/kavita.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Kavita Interface: IP:5000**'},{category:"Dashboards",title:"Heimdall Dashboard LXC",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/heimdall.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Heimdall Dashboard LXC (English-only) </h1>\n  \n  [Heimdall Dashboard](https://heimdall.site/) is a self-hosted, web-based dashboard for managing and monitoring the health of applications and servers. It allows you to keep track of the status of your systems from a single, centralized location, and receive notifications when things go wrong. With Heimdall Dashboard, you have full control over your data and can customize it to meet your specific needs. Self-hosting the dashboard gives you the flexibility to run it on your own infrastructure, making it a suitable solution for organizations that prioritize data security and privacy.\n  \n  To create a new Proxmox VE Heimdall Dashboard LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Heimdall Dashboard, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/heimdalldashboard.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **Heimdall Dashboard Interface: IP:7990**'},{category:"Dashboards",title:"Linkwarden LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/linkwarden/linkwarden/main/assets/logo.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Linkwarden LXC </h1>\n  \n  [Linkwarden](https://linkwarden.app/) is a fully self-hostable, open-source collaborative bookmark manager to collect, organize and archive webpages.\n  \n  To create a new Proxmox VE Linkwarden LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/linkwarden.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Linkwarden Interface: IP:3000**\n  \n  Show Database/Adminer Credentials: <code class="highlighter-rouge">cat linkwarden.creds</code>'},{category:"Dashboards",title:"Homepage LXC",content:'<p align="center"><img src="https://github.com/benphelps/homepage/raw/main/images/banner_light%402x.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Homepage LXC </h1>\n  \n  [Homepage](https://github.com/benphelps/homepage) is a self-hosted dashboard solution for centralizing and organizing data and information.\n  \n  To create a new Proxmox VE Homepage LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Homepage, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homepage.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 3GB Storage - 2vCPU \u26a1</h3>\n  \n  [Configuration](https://github.com/benphelps/homepage/wiki) (bookmarks.yaml, services.yaml, widgets.yaml) path: <code class="highlighter-rouge">/opt/homepage/config/</code>\n  \n  **Homepage Interface: IP:3000**'},{category:"Dashboards",title:"OliveTin",content:'<p align="center"><img src="https://raw.githubusercontent.com/OliveTin/OliveTin/main/webui/OliveTinLogo.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> OliveTin </h1>\n\n  [OliveTin](https://www.olivetin.app/) provides a secure and straightforward way to execute pre-determined shell commands through a web-based interface.\n  \n  To Install OliveTin, \u26a0\ufe0f run the command below in the LXC console.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/olivetin.sh)"\n  ~~~\n  \n  **OliveTin Interface: IP:1337**\n  \n  \u2699\ufe0f **Config Path**\n  \n  ~~~yaml\n  /etc/OliveTin/config.yaml\n  ~~~'},{category:"Dashboards",title:"Homarr LXC",content:'<p align="center"><img src="https://homarr.dev/img/logo.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Homarr LXC </h1>\n  \n  [Homarr](https://homarr.dev/) is a sleek, modern dashboard that puts all of your apps and services at your fingertips.\n  \n  To create a new Proxmox VE Homarr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Homarr, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homarr.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n\n  **Homarr Interface: IP:3000**'},{category:"Dashboards",title:"Homer LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/bastienwirtz/homer/main/public/assets/icons/logo.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Homer LXC </h1>\n  \n  [Homer](https://github.com/bastienwirtz/homer#---------homer) is a simple and lightweight static homepage generator that allows you to create and manage a home page for your server. It uses a YAML configuration file to define the layout and content of your homepage, making it easy to set up and customize. The generated homepage is static, meaning it does not require any server-side processing, making it fast and efficient to serve. Homer is designed to be a flexible and low-maintenance solution for organizing and accessing your services and information from a single, centralized location.\n  \n  To create a new Proxmox VE Homer LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Homer, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homer.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n\n  **Homer Interface: IP:8010**\n  \n  \u2699\ufe0f **Config Path**\n  \n  ~~~yaml\n  /opt/homer/assets/config.yml\n  ~~~'},{category:"Dashboards",title:"Dashy LXC",content:'<p align="center"><img src="https://github.com/Lissy93/dashy/raw/master/public/web-icons/dashy-logo.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Dashy LXC </h1>\n  \n  [Dashy](https://dashy.to/) is a solution that helps you organize your self-hosted services by centralizing access to them through a single interface.\n  \n  To create a new Proxmox VE Dashy LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Dashy, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/dashy.sh)"\n  ~~~\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 6GB Storage - 2vCPU \u26a1</h3>\n  \n  **Dashy Interface: IP:4000**\n  \n  Once you\'ve configured everything according to your preferences in interactive mode and saved the changes to the disk, go into update configuration and rebuild application.'},{category:"File - Code",title:"File Browser",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/filebrowser.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> File Browser </h1>\n\n  [File Browser](https://filebrowser.org/features) offers a user-friendly web interface for managing files within a designated directory. It allows you to perform various actions such as uploading, deleting, previewing, renaming, and editing files.\n  \n  To Install, or uninstall File Browser, \u26a0\ufe0f run the command below in the <b>LXC console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/filebrowser.sh)"\n  ~~~\n  \n  **File Browser Interface: IP:8080**\n  \n  \u2699\ufe0f **Initial Login (not required for No Authentication)**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n\n  **password** <code class="highlighter-rouge">changeme</code>\n  \n  \u2699\ufe0f **To Update File Browser**\n  \n  ~~~yaml\n  curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash\n  ~~~'},{category:"File - Code",title:"VS Code Server",content:'<p align="center"><img src="https://user-images.githubusercontent.com/674621/71187801-14e60a80-2280-11ea-94c9-e56576f76baf.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> VS Code Server </h1>\n\n  [VS Code Server](https://code.visualstudio.com/docs/remote/vscode-server) is a service you can run on a remote development machine, like your desktop PC or a virtual machine (VM). It allows you to securely connect to that remote machine from anywhere through a vscode.dev URL, without the requirement of SSH.\n  \n  To Install VS Code Server, \u26a0\ufe0f run the command below in the <b>LXC console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/code-server.sh)"\n  ~~~\n  \n  **VS Code Server Interface: IP:8680**'},{category:"File - Code",title:"Deluge LXC",content:'<p align="center"><img src="https://dev.deluge-torrent.org/chrome/common/deluge_logo.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Deluge LXC </h1>\n\n  [Deluge](https://www.deluge-torrent.org/) is a free, open-source, lightweight BitTorrent client. It supports various platforms including Windows, Linux, and macOS, and offers features such as peer exchange, DHT, and magnet links.\n  \n  To create a new Proxmox VE Deluge LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/deluge.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n\n  \u2699\ufe0f **Initial Login**\n\n  **password** <code class="highlighter-rouge">deluge</code>\n\n  **Deluge Interface: IP:8112**'},{category:"File - Code",title:"Transmission LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/transmission/transmission/main/web/assets/img/logo.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Transmission LXC </h1>\n\n  [Transmission](https://transmissionbt.com/) is a free, open-source BitTorrent client known for its fast download speeds and ease of use. It supports various platforms such as Windows, Linux, and macOS and has features like web interface, peer exchange, and encrypted transfers.\n  \n  To create a new Proxmox VE Transmission LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/transmission.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n\n  \u2699\ufe0f **Initial Login**\n\n  **user/password** <code class="highlighter-rouge">transmission</code>\n\n  **Transmission Interface: IP:9091/transmission**'},{category:"File - Code",title:"Autobrr LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/autobrr/autobrr/master/.github/images/logo.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Autobrr LXC </h1>\n\n  [Autobrr](https://autobrr.com/) is a torrent downloading tool that automates the process of downloading torrents. It is designed to be modern and user-friendly, providing users with a convenient and efficient way to download torrent files. With Autobrr, you can schedule and manage your torrent downloads, and have the ability to automatically download torrents based on certain conditions, such as time of day or availability of seeds. This can save you time and effort, allowing you to focus on other tasks while your torrents are being downloaded in the background.\n  \n  To create a new Proxmox VE Autobrr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Autobrr, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/autobrr.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n\n  **Autobrr Interface: IP:7474**'},{category:"File - Code",title:"qBittorrent LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/qbittorrent/qBittorrent/master/src/icons/qbittorrent.ico" height="100"/></p>\n  \n  <h1 align="center" id="heading"> qBittorrent LXC </h1>\n\n  [qBittorrent](https://www.qbittorrent.org/) offers a user-friendly interface that allows users to search for and download torrent files easily. It also supports magnet links, which allow users to start downloading files without the need for a torrent file.\n  \n  To create a new Proxmox VE qBittorrent LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/qbittorrent.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>  \n  \n  **qBittorrent Interface: IP:8090**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">changeme</code>'},{category:"File - Code",title:"Real-Debrid Torrent Client LXC",content:'<p align="center"><img src="https://fcdn.real-debrid.com/0820/images/logo.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Real-Debrid Torrent Client LXC </h1>\n\n  [RDTClient](https://github.com/rogerfar/rdt-client)  is a web interface to manage your torrents on Real-Debrid, AllDebrid or Premiumize.\n  \n  To create a new Proxmox VE Real-Debrid Torrent Client LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/rdtclient.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  1GB RAM - 4GB Storage - 1vCPU \u26a1</h3>  \n  \n  **Real-Debrid Torrent Client Interface: IP:6500**'},{category:"File - Code",title:"Jackett LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/Jackett/Jackett/master/src/Jackett.Common/Content/jacket_medium.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Jackett LXC </h1>\n\n  [Jackett](https://github.com/Jackett/Jackett) supports a wide range of trackers, including popular ones like The Pirate Bay, RARBG, and Torrentz2, as well as many private trackers. It can be integrated with several BitTorrent clients, including qBittorrent, Deluge, and uTorrent, among others.\n  \n  To create a new Proxmox VE Jackett LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/jackett.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings: 512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n\n  **Jackett Interface: IP:9117**'},{category:"File - Code",title:"Pingvin Share LXC",content:'<p align="center"><img src="https://github.com/stonith404/pingvin-share/blob/main/frontend/public/img/logo.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Pingvin Share LXC </h1>\n\n  [Pingvin Share](https://github.com/stonith404/pingvin-share) is self-hosted file sharing platform and an alternative for WeTransfer.\n  \n  To create a new Proxmox VE Pingvin Share LXC, run the command below in the <b>Proxmox VE Shell</b>.<br>\n  To Update Pingvin Share, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/pingvin.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>  \n  \n  **Pingvin Share Interface: IP:3000**'},{category:"File - Code",title:"SABnzbd LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/sabnzbd/sabnzbd/develop/icons/logo-arrow.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> SABnzbd LXC </h1>\n\n  [SABnzbd](https://sabnzbd.org/) is a free, open-source software program for downloading binary files from Usenet newsgroups. It is designed to be easy to use, and provides a number of features to simplify the downloading process, such as automatic error detection and repair, download scheduling, and integration with other applications. SABnzbd is a binary newsreader, which means it is specifically designed for downloading binary files, such as images, music, and video, from Usenet newsgroups. With its user-friendly interface and powerful features, SABnzbd makes it easy to manage your Usenet downloads and keep your download queue organized.\n  \n  To create a new Proxmox VE SABnzbd LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update SABnzbd, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/sabnzbd.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n\n  **SABnzbd Interface: IP:7777**'},{category:"File - Code",title:"Webmin System Administration",content:'<p align="center"><img src="https://github.com/webmin/webmin/blob/master/images/webmin-blue.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Webmin System Administration </h1>\n\n  If you prefer to manage all aspects of your Proxmox VE LXC from a graphical interface instead of the command line interface, Webmin might be right for you.\n  Benefits include automatic daily security updates, backup and restore, file manager with editor, web control panel, and preconfigured system monitoring with optional email alerts.\n  \n  To Install Webmin System Administration, \u26a0\ufe0f run the command below in the <b>LXC console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/webmin.sh)"\n  ~~~\n  \n  **Webmin Interface: (https)IP:10000**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">root</code>\n  \n  **password** <code class="highlighter-rouge">root</code>\n  \n  \u2699\ufe0f **To Update Webmin**\n  \n  <code class="highlighter-rouge">Update from the Webmin UI</code>\n  \n  \u2699\ufe0f **To Uninstall Webmin**\n  \n  ~~~yaml\n  bash /etc/webmin/uninstall.sh\n  ~~~'},{category:"File - Code",title:"Syncthing LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/syncthing/syncthing/6afaa9f20c8eb9c7af5abbe2f2d90fa2571aa7ad/assets/logo-only.svg?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Syncthing LXC </h1>\n  \n  [Syncthing](https://syncthing.net/) is an open-source file syncing tool that allows users to keep their files in sync across multiple devices by using peer-to-peer synchronization. It doesn\'t rely on any central server, so all data transfers are directly between devices.\n  \n  To create a new Proxmox VE Syncthing LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/syncthing.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Syncthing Interface: IP:8384**'},{category:"File - Code",title:"Daemon Sync Server LXC",content:'<p align="center"><img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fimg.informer.com%2Ficons_mac%2Fpng%2F128%2F350%2F350335.png&f=1&nofb=1" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Daemon Sync Server LXC </h1>\n  \n  Sync files from app to server, share photos & videos, back up your data and stay secure inside local network.\n  \n  To create a new Proxmox VE Daemon Sync Server LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/daemonsync.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 8GB Storage - 1vCPU \u26a1</h3>\n  \n  **Daemon Sync Server Interface: IP:8084**\n  \n  Search: <code class="highlighter-rouge">DAEMON Sync</code> in your favorite app store'},{category:"Miscellaneous",title:"OctoPrint LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/octoprint.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> OctoPrint LXC </h1>\n  \n  [OctoPrint](https://octoprint.org/) is a free and open-source web-based 3D printer control software that allows you to remotely control and monitor your 3D printer from a web interface. It was designed to be compatible with a wide range of 3D printers.\n  \n  To create a new Proxmox VE OctoPrint LXC, run the following in the <b>Proxmox VE Shell</b>.<br>\n  To Update OctoPrint, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/octoprint.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings: 1GB RAM - 4GB Storage - 1vCPU \u26a1</h3>\n  \n  **OctoPrint Interface - IP:5000**'},{category:"Miscellaneous",title:"Vaultwarden LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/dani-garcia/vaultwarden/main/resources/vaultwarden-icon-white.svg" width="100" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Vaultwarden LXC </h1>\n  \n  [Vaultwarden](https://www.vaultwarden.net/) is a self-hosted password manager which provides secure and encrypted password storage. It uses client-side encryption and provides access to passwords through a web interface and mobile apps.\n  \n  To create a new Proxmox VE Vaultwarden LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Vaultwarden, Web-Vault or Set the Admin Token, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/vaultwarden.sh)"\n  ~~~\n  \u26a0\ufe0f Vaultwarden needs to be behind a proxy (Nginx Proxy Manager) to obtain HTTPS and to allow clients to connect.\n  \n  The script builds from source, which takes time and resources. After the build, the script will automatically set resources to Normal Settings. \n  \n  <h3 align="center" id="heading">\u26a1 Build Settings:  4GB RAM - 6GB Storage - 4vCPU \u26a1</h3>\n  <h3 align="center" id="heading">\u26a1 Normal Settings:  512Mib RAM - 6GB Storage - 1vCPU \u26a1</h3>\n\n  As an alternative option, you can use Alpine Linux and the Vaultwarden package to create a Vaultwarden LXC container with significantly faster creation time and minimal system resource usage. <br>\n  \n  To create a new Proxmox VE Alpine-Vaultwarden LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Alpine-Vaultwarden, or Set the Admin Token, run the command below in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-vaultwarden.sh)"\n  ~~~\n\n  <h3 align="center" id="heading">\u26a1 Default Settings:  256Mib RAM - 300MiB Storage - 1vCPU \u26a1</h3>\n\n  **Vaultwarden Interface: IP:8000**\n  \n  **Vaultwarden Admin Interface: IP:8000/admin**'},{category:"Miscellaneous",title:"grocy LXC",content:'<p align="center"><img src="https://grocy.info/img/grocy_logo.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> grocy LXC </h1>\n  \n  [grocy](https://grocy.info/) is a web-based self-hosted groceries & household management solution for your home. It helps you keep track of your groceries and household items, manage your shopping list, and keep track of your pantry, recipes, meal plans, and more.\n  \n  To create a new Proxmox VE grocy LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update grocy, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/grocy.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **grocy Interface: IP**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">admin</code>'},{category:"Miscellaneous",title:"MagicMirror Server LXC",content:'<p align="center"><img src="https://github.com/MichMich/MagicMirror/raw/master/.github/header.png" height="100"/></p>\n  \n  <h1 align="center" id="heading"> MagicMirror Server LXC </h1>\n  \n  [MagicMirror\xb2](https://docs.magicmirror.builders/) is a smart mirror software that allows you to build your own personal smart mirror. It uses modular components that you can customize to display information such as the weather, news, calendar, to-do list, and more. The platform is open source, allowing for community contributions and customization.\n  \n  To create a new MagicMirror Server LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update MagicMirror, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/magicmirror.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings: 512MiB RAM - 3GB Storage - 1vCPU \u26a1</h3>\n  \n  **MagicMirror Interface: IP:8080**\n  \n  \u2699\ufe0f **[Configuration](https://docs.magicmirror.builders/configuration/introduction.html#configuring-your-magicmirror)**\n  ~~~yaml\n  /opt/magicmirror/config/config.js\n  ~~~'},{category:"Miscellaneous",title:"TasmoAdmin LXC",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/tasmota.svg" height="100"/></p>\n  \n  <h1 align="center" id="heading"> TasmoAdmin LXC </h1>\n  \n  [TasmoAdmin](https://github.com/TasmoAdmin/TasmoAdmin#readme) is an administrative platform for devices flashed with Tasmota.\n  \n  To create a new Proxmox VE TasmoAdmin LXC, run the following in the <b>Proxmox VE Shell</b>. <br>\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/tasmoadmin.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings: 512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n  \n  **TasmoAdmin Interface - IP:9999**'},{category:"Miscellaneous",title:"RTSPtoWeb LXC",content:'<p align="center"><img src="https://brands.home-assistant.io/_/rtsp_to_webrtc/logo.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> RTSPtoWeb LXC </h1>\n  \n  [RTSPtoWeb](https://github.com/deepch/RTSPtoWeb) converts your RTSP streams to formats consumable in a web browser like MSE (Media Source Extensions), WebRTC, or HLS. It\'s fully native Golang without the use of FFmpeg or GStreamer\n  \n  To create a new Proxmox VE RTSPtoWeb LXC, run the following in the <b>Proxmox VE Shell</b>. <br>\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/rtsptoweb.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings: 2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **RSTPtoWEB Interface - IP:8083**'},{category:"Miscellaneous",title:"go2rtc LXC",content:'<p align="center"><img src="https://brands.home-assistant.io/_/rtsp_to_webrtc/logo.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> go2rtc LXC </h1>\n  \n  [go2rtc](https://github.com/AlexxIT/go2rtc) is the ultimate camera streaming application with support RTSP, WebRTC, HomeKit, FFmpeg, RTMP, etc.\n  \n  To create a new Proxmox VE go2rtc LXC, run the following in the <b>Proxmox VE Shell</b>. <br>\n  To Update go2rtc, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/go2rtc.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings: 2GB RAM - 4GB Storage - 2vCPU \u26a1</h3>\n  \n  **go2rtc Interface - IP:1984**'},{category:"Miscellaneous",title:"Whoogle LXC",content:'<p align="center"><img src="https://github.com/tteck/Proxmox/blob/main/misc/images/whoogle.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Whoogle LXC </h1>\n  \n  Get Google search results, but without any ads, javascript, AMP links, cookies, or IP address tracking.\n  \n  To create a new Proxmox VE Whoogle LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Whoogle, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/whoogle.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n\n  **Whoogle Interface: IP:5000**'},{category:"Miscellaneous",title:"AgentDVR LXC",content:'<p align="center"><img src="https://ispycontent.azureedge.net/img/ispy2.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> AgentDVR LXC </h1>\n\n  [AgentDVR](https://www.ispyconnect.com/) a new video surveillance solution for the Internet Of Things.\n  \n  To create a new Proxmox VE AgentDVR LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/agentdvr.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **AgentDVR Interface: IP:8090**'},{category:"Miscellaneous",title:"Shinobi NVR LXC",content:'<p align="center"><img src="https://gitlab.com/uploads/-/system/project/avatar/6947723/mstile-150x150.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> Shinobi NVR LXC </h1>\n\n  [Shinobi](https://shinobi.video/) is an open-source, self-hosted network video recording (NVR) software. It allows you to manage and monitor security cameras and record video footage. Shinobi can be run on various platforms including Linux, macOS, and Raspberry Pi, and offers features such as real-time streaming, motion detection, and email notifications.\n  \n  To create a new Proxmox VE Shinobi NVR LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Shinobi, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/shinobi.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **Shinobi Interface: IP:8080**\n\n  **Shinobi Admin Interface: IP:8080/super**\n  \n  \u2699\ufe0f **Initial Admin Login**\n  \n  **username** <code class="highlighter-rouge">admin@shinobi.video</code>\n  \n  **password** <code class="highlighter-rouge">admin</code>'},{category:"Miscellaneous",title:"MotionEye NVR LXC",content:'<p align="center"><img src="https://github.com/home-assistant/brands/blob/master/core_integrations/motioneye/icon.png?raw=true" height="100"/></p>\n  \n  <h1 align="center" id="heading"> MotionEye NVR LXC </h1>\n\n  MotionEye is an open-source, self-hosted network video recording (NVR) software designed to manage and monitor IP cameras. It runs on various platforms such as Linux, Raspberry Pi, and Docker, and offers features such as real-time video streaming, motion detection, and customizable camera views.\n  \n  To create a new Proxmox VE MotionEye NVR LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update MotionEye, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/motioneye.sh)"\n  ~~~\n  \n  <h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU \u26a1</h3>\n  \n  **MotionEye Interface: IP:8765**\n  \n  \u2699\ufe0f **Initial Login**\n  \n  **username** <code class="highlighter-rouge">admin</code>\n  \n  **password** <code class="highlighter-rouge">    </code>'},{category:"Miscellaneous",title:"Hyperion LXC",content:'<p align="center"><img src="https://github.com/hyperion-project/hyperion.ng/raw/master/doc/logo_dark.png?raw=true" height="100"/></p>\n\n<h1 align="center" id="heading"> Hyperion LXC </h1>\n\nHyperion is an opensource Ambient Lighting implementation. It supports many LED devices and video grabbers.\n\nTo create a new Proxmox VE Hyperion LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\nTo Update Hyperion, run the command below (or type update) in the <b>LXC Console</b>.\n\n~~~bash\nbash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/hyperion.sh)"\n~~~\n\n<h3 align="center" id="heading">\u26a1 Default Settings:  512MiB RAM - 2GB Storage - 1vCPU \u26a1</h3>\n\n**Hyperion Interface: IP:8090**'},{category:"Miscellaneous",title:"All Templates",content:'<p align="center"><img src="https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/proxmox.svg" height="100"/></p>\n\n<h1 align="center" id="heading"> All Templates </h1>\n\nA script designed to allow for the creation of one of the many free LXC templates. Great for creating system LXCs.<br>\nThe script creates a *.creds file in the Proxmox root directory with the password of the newly created LXC.<br>\nPlease take note that if you plan to use this script for creating TurnKey LXCs, you\'ll need to modify the hostname after creation.\n\nTo create a new Proxmox VE Template LXC, run the command below in the <b>Proxmox VE Shell</b>.\n\n~~~bash\nbash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/all-templates.sh)"\n~~~\n\n<h3 align="center" id="heading">\u26a1 Default Settings:  2GB RAM - 8GB Storage - 2vCPU- onboot 0 - DHCP - Unprivileged \u26a1</h3><br>\nResource and network settings are adjustable post LXC creation.'}]};function b(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function E(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function y(e,t,n){return t&&E(e.prototype,t),n&&E(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}var T=n(5586);function S(e,t){return S=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},S(e,t)}function v(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&S(e,t)}function A(e){return A=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},A(e)}function k(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function w(e){return w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},w(e)}function _(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function C(e,t){if(t&&("object"===w(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _(e)}function N(e){var t=k();return function(){var n,r=A(e);if(t){var a=A(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return C(this,n)}}function I(e,t,n){return I=k()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&S(a,n.prototype),a},I.apply(null,arguments)}function x(e){var t="function"===typeof Map?new Map:void 0;return x=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return I(e,arguments,A(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),S(r,e)},x(e)}function R(e){return e&&"object"===typeof e?"position"in e||"type"in e?L(e.position):"start"in e||"end"in e?L(e):"line"in e||"column"in e?O(e):"":""}function O(e){return P(e&&e.line)+":"+P(e&&e.column)}function L(e){return O(e&&e.start)+"-"+O(e&&e.end)}function P(e){return e&&"number"===typeof e?e:1}var D=function(e){v(n,e);var t=N(n);function n(e,r,a){var i;b(this,n);var o=[null,null],s={start:{line:null,column:null},end:{line:null,column:null}};if(i=t.call(this),"string"===typeof r&&(a=r,r=void 0),"string"===typeof a){var l=a.indexOf(":");-1===l?o[1]=a:(o[0]=a.slice(0,l),o[1]=a.slice(l+1))}return r&&("type"in r||"position"in r?r.position&&(s=r.position):"start"in r||"end"in r?s=r:("line"in r||"column"in r)&&(s.start=r)),i.name=R(r)||"1:1",i.message="object"===typeof e?e.message:e,i.stack="object"===typeof e?e.stack:"",i.reason=i.message,i.fatal,i.line=s.start.line,i.column=s.start.column,i.source=o[0],i.ruleId=o[1],i.position=s,i.actual,i.expected,i.file,i.url,i.note,i}return y(n)}(x(Error));D.prototype.file="",D.prototype.name="",D.prototype.reason="",D.prototype.message="",D.prototype.stack="",D.prototype.fatal=null,D.prototype.column=null,D.prototype.line=null,D.prototype.source=null,D.prototype.ruleId=null,D.prototype.position=null;var M={basename:function(e,t){if(void 0!==t&&"string"!==typeof t)throw new TypeError('"ext" argument must be a string');U(e);var n,r=0,a=-1,i=e.length;if(void 0===t||0===t.length||t.length>e.length){for(;i--;)if(47===e.charCodeAt(i)){if(n){r=i+1;break}}else a<0&&(n=!0,a=i+1);return a<0?"":e.slice(r,a)}if(t===e)return"";var o=-1,s=t.length-1;for(;i--;)if(47===e.charCodeAt(i)){if(n){r=i+1;break}}else o<0&&(n=!0,o=i+1),s>-1&&(e.charCodeAt(i)===t.charCodeAt(s--)?s<0&&(a=i):(s=-1,a=o));r===a?a=o:a<0&&(a=e.length);return e.slice(r,a)},dirname:function(e){if(U(e),0===e.length)return".";var t,n=-1,r=e.length;for(;--r;)if(47===e.charCodeAt(r)){if(t){n=r;break}}else t||(t=!0);return n<0?47===e.charCodeAt(0)?"/":".":1===n&&47===e.charCodeAt(0)?"//":e.slice(0,n)},extname:function(e){U(e);var t,n=e.length,r=-1,a=0,i=-1,o=0;for(;n--;){var s=e.charCodeAt(n);if(47!==s)r<0&&(t=!0,r=n+1),46===s?i<0?i=n:1!==o&&(o=1):i>-1&&(o=-1);else if(t){a=n+1;break}}if(i<0||r<0||0===o||1===o&&i===r-1&&i===a+1)return"";return e.slice(i,r)},join:function(){for(var e,t=-1,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];for(;++t<r.length;)U(r[t]),r[t]&&(e=void 0===e?r[t]:e+"/"+r[t]);return void 0===e?".":F(e)},sep:"/"};function F(e){U(e);var t=47===e.charCodeAt(0),n=function(e,t){var n,r,a="",i=0,o=-1,s=0,l=-1;for(;++l<=e.length;){if(l<e.length)n=e.charCodeAt(l);else{if(47===n)break;n=47}if(47===n){if(o===l-1||1===s);else if(o!==l-1&&2===s){if(a.length<2||2!==i||46!==a.charCodeAt(a.length-1)||46!==a.charCodeAt(a.length-2))if(a.length>2){if((r=a.lastIndexOf("/"))!==a.length-1){r<0?(a="",i=0):i=(a=a.slice(0,r)).length-1-a.lastIndexOf("/"),o=l,s=0;continue}}else if(a.length>0){a="",i=0,o=l,s=0;continue}t&&(a=a.length>0?a+"/..":"..",i=2)}else a.length>0?a+="/"+e.slice(o+1,l):a=e.slice(o+1,l),i=l-o-1;o=l,s=0}else 46===n&&s>-1?s++:s=-1}return a}(e,!t);return 0!==n.length||t||(n="."),n.length>0&&47===e.charCodeAt(e.length-1)&&(n+="/"),t?"/"+n:n}function U(e){if("string"!==typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}var B={cwd:function(){return"/"}};function G(e){return null!==e&&"object"===typeof e&&e.href&&e.origin}function H(e){if("string"===typeof e)e=new URL(e);else if(!G(e)){var t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if("file:"!==e.protocol){var n=new TypeError("The URL must be of scheme file");throw n.code="ERR_INVALID_URL_SCHEME",n}return function(e){if(""!==e.hostname){var t=new TypeError('File URL host must be "localhost" or empty on darwin');throw t.code="ERR_INVALID_FILE_URL_HOST",t}var n=e.pathname,r=-1;for(;++r<n.length;)if(37===n.charCodeAt(r)&&50===n.charCodeAt(r+1)){var a=n.charCodeAt(r+2);if(70===a||102===a){var i=new TypeError("File URL path must not include encoded / characters");throw i.code="ERR_INVALID_FILE_URL_PATH",i}}return decodeURIComponent(n)}(e)}var z=["history","path","basename","stem","extname","dirname"],$=function(){function e(t){var n;b(this,e),n=t?"string"===typeof t||T(t)?{value:t}:G(t)?{path:t}:t:{},this.data={},this.messages=[],this.history=[],this.cwd=B.cwd(),this.value,this.stored,this.result,this.map;for(var r,a=-1;++a<z.length;){var i=z[a];i in n&&void 0!==n[i]&&(this[i]="history"===i?p(n[i]):n[i])}for(r in n)z.includes(r)||(this[r]=n[r])}return y(e,[{key:"path",get:function(){return this.history[this.history.length-1]},set:function(e){G(e)&&(e=H(e)),j(e,"path"),this.path!==e&&this.history.push(e)}},{key:"dirname",get:function(){return"string"===typeof this.path?M.dirname(this.path):void 0},set:function(e){W(this.basename,"dirname"),this.path=M.join(e||"",this.basename)}},{key:"basename",get:function(){return"string"===typeof this.path?M.basename(this.path):void 0},set:function(e){j(e,"basename"),V(e,"basename"),this.path=M.join(this.dirname||"",e)}},{key:"extname",get:function(){return"string"===typeof this.path?M.extname(this.path):void 0},set:function(e){if(V(e,"extname"),W(this.dirname,"extname"),e){if(46!==e.charCodeAt(0))throw new Error("`extname` must start with `.`");if(e.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=M.join(this.dirname,this.stem+(e||""))}},{key:"stem",get:function(){return"string"===typeof this.path?M.basename(this.path,this.extname):void 0},set:function(e){j(e,"stem"),V(e,"stem"),this.path=M.join(this.dirname||"",e+(this.extname||""))}},{key:"toString",value:function(e){return(this.value||"").toString(e)}},{key:"message",value:function(e,t,n){var r=new D(e,t,n);return this.path&&(r.name=this.path+":"+r.name,r.file=this.path),r.fatal=!1,this.messages.push(r),r}},{key:"info",value:function(e,t,n){var r=this.message(e,t,n);return r.fatal=null,r}},{key:"fail",value:function(e,t,n){var r=this.message(e,t,n);throw r.fatal=!0,r}}]),e}();function V(e,t){if(e&&e.includes(M.sep))throw new Error("`"+t+"` cannot be a path: did not expect `"+M.sep+"`")}function j(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function W(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}function q(e){return m(e)||u(e)||d(e)||g()}function K(e){if(e)throw e}var X=n(1132);function Y(e){if("object"!==typeof e||null===e)return!1;var t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function Z(e,t){var n;return function(){for(var t=arguments.length,i=new Array(t),o=0;o<t;o++)i[o]=arguments[o];var s,l=e.length>i.length;l&&i.push(r);try{s=e.apply(this,i)}catch(u){var c=u;if(l&&n)throw c;return r(c)}l||(s instanceof Promise?s.then(a,r):s instanceof Error?r(s):a(s))};function r(e){if(!n){n=!0;for(var r=arguments.length,a=new Array(r>1?r-1:0),i=1;i<r;i++)a[i-1]=arguments[i];t.apply(void 0,[e].concat(a))}}function a(e){r(null,e)}}var Q=function e(){var t,n=function(){var e=[],t={run:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var a=-1,i=n.pop();if("function"!==typeof i)throw new TypeError("Expected function as last argument, not "+i);function o(t){var r=e[++a],s=-1;if(t)i(t);else{for(var l=arguments.length,c=new Array(l>1?l-1:0),u=1;u<l;u++)c[u-1]=arguments[u];for(;++s<n.length;)null!==c[s]&&void 0!==c[s]||(c[s]=n[s]);n=c,r?Z(r,o).apply(void 0,c):i.apply(void 0,[null].concat(c))}}o.apply(void 0,[null].concat(p(n)))},use:function(n){if("function"!==typeof n)throw new TypeError("Expected `middelware` to be a function, not "+n);return e.push(n),t}};return t}(),r=[],a={},i=-1;return o.data=function(e,n){if("string"===typeof e)return 2===arguments.length?(re("data",t),a[e]=n,o):J.call(a,e)&&a[e]||null;if(e)return re("data",t),a=e,o;return a},o.Parser=void 0,o.Compiler=void 0,o.freeze=function(){if(t)return o;for(;++i<r.length;){var e=q(r[i]),a=e[0],s=e.slice(1);if(!1!==s[0]){!0===s[0]&&(s[0]=void 0);var l=a.call.apply(a,[o].concat(p(s)));"function"===typeof l&&n.use(l)}}return t=!0,i=Number.POSITIVE_INFINITY,o},o.attachers=r,o.use=function(e){for(var n=arguments.length,i=new Array(n>1?n-1:0),s=1;s<n;s++)i[s-1]=arguments[s];var l;if(re("use",t),null===e||void 0===e);else if("function"===typeof e)m.apply(void 0,[e].concat(i));else{if("object"!==typeof e)throw new TypeError("Expected usable value, not `"+e+"`");Array.isArray(e)?d(e):u(e)}l&&(a.settings=Object.assign(a.settings||{},l));return o;function c(e){if("function"===typeof e)m(e);else{if("object"!==typeof e)throw new TypeError("Expected usable value, not `"+e+"`");if(Array.isArray(e)){var t=q(e),n=t[0],r=t.slice(1);m.apply(void 0,[n].concat(p(r)))}else u(e)}}function u(e){d(e.plugins),e.settings&&(l=Object.assign(l||{},e.settings))}function d(e){var t=-1;if(null===e||void 0===e);else{if(!Array.isArray(e))throw new TypeError("Expected a list of plugins, not `"+e+"`");for(;++t<e.length;){c(e[t])}}}function m(e,t){for(var n,a=-1;++a<r.length;)if(r[a][0]===e){n=r[a];break}n?(Y(n[1])&&Y(t)&&(t=X(!0,n[1],t)),n[1]=t):r.push(Array.prototype.slice.call(arguments))}},o.parse=function(e){o.freeze();var t=oe(e),n=o.Parser;if(te("parse",n),ee(n,"parse"))return new n(String(t),t).parse();return n(String(t),t)},o.stringify=function(e,t){o.freeze();var n=oe(t),r=o.Compiler;if(ne("stringify",r),ae(e),ee(r,"compile"))return new r(e,n).compile();return r(e,n)},o.run=function(e,t,r){ae(e),o.freeze(),r||"function"!==typeof t||(r=t,t=void 0);if(!r)return new Promise(a);function a(a,i){function o(t,n,o){n=n||e,t?i(t):a?a(n):r(null,n,o)}n.run(e,oe(t),o)}a(null,r)},o.runSync=function(e,t){var n,r;return o.run(e,t,a),ie("runSync","run",r),n;function a(e,t){K(e),n=t,r=!0}},o.process=function(e,t){if(o.freeze(),te("process",o.Parser),ne("process",o.Compiler),!t)return new Promise(n);function n(n,r){var a=oe(e);function i(e,a){e||!a?r(e):n?n(a):t(null,a)}o.run(o.parse(a),a,(function(e,t,n){if(!e&&t&&n){var r=o.stringify(t,n);void 0===r||null===r||("string"===typeof(a=r)||T(a)?n.value=r:n.result=r),i(e,n)}else i(e);var a}))}n(null,t)},o.processSync=function(e){var t;o.freeze(),te("processSync",o.Parser),ne("processSync",o.Compiler);var n=oe(e);return o.process(n,r),ie("processSync","process",t),n;function r(e){t=!0,K(e)}},o;function o(){for(var t=e(),n=-1;++n<r.length;)t.use.apply(t,p(r[n]));return t.data(X(!0,{},a)),t}}().freeze(),J={}.hasOwnProperty;function ee(e,t){return"function"===typeof e&&e.prototype&&(function(e){var t;for(t in e)if(J.call(e,t))return!0;return!1}(e.prototype)||t in e.prototype)}function te(e,t){if("function"!==typeof t)throw new TypeError("Cannot `"+e+"` without `Parser`")}function ne(e,t){if("function"!==typeof t)throw new TypeError("Cannot `"+e+"` without `Compiler`")}function re(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function ae(e){if(!Y(e)||"string"!==typeof e.type)throw new TypeError("Expected node, got `"+e+"`")}function ie(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function oe(e){return function(e){return Boolean(e&&"object"===typeof e&&"message"in e&&"messages"in e)}(e)?e:new $(e)}function se(e,t){var n=(t||{}).includeImageAlt;return le(e,void 0===n||n)}function le(e,t){return e&&"object"===typeof e&&(e.value||(t?e.alt:"")||"children"in e&&ce(e.children,t)||Array.isArray(e)&&ce(e,t))||""}function ce(e,t){for(var n=[],r=-1;++r<e.length;)n[r]=le(e[r],t);return n.join("")}function ue(e,t,n,r){var a,i=e.length,o=0;if(t=t<0?-t>i?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)(a=Array.from(r)).unshift(t,n),[].splice.apply(e,a);else for(n&&[].splice.apply(e,[t,n]);o<r.length;)(a=r.slice(o,o+1e4)).unshift(t,0),[].splice.apply(e,a),o+=1e4,t+=1e4}function de(e,t){return e.length>0?(ue(e,e.length,0,t),e):t}var pe={}.hasOwnProperty;function me(e){for(var t={},n=-1;++n<e.length;)ge(t,e[n]);return t}function ge(e,t){var n;for(n in t){var r=(pe.call(e,n)?e[n]:void 0)||(e[n]={}),a=t[n],i=void 0;for(i in a){pe.call(r,i)||(r[i]=[]);var o=a[i];he(r[i],Array.isArray(o)?o:o?[o]:[])}}}function he(e,t){for(var n=-1,r=[];++n<t.length;)("after"===t[n].add?e:r).push(t[n]);ue(e,0,0,r)}var fe=Ne(/[A-Za-z]/),be=Ne(/\d/),Ee=Ne(/[\dA-Fa-f]/),ye=Ne(/[\dA-Za-z]/),Te=Ne(/[!-/:-@[-`{-~]/),Se=Ne(/[#-'*+\--9=?A-Z^-~]/);function ve(e){return null!==e&&(e<32||127===e)}function Ae(e){return null!==e&&(e<0||32===e)}function ke(e){return null!==e&&e<-2}function we(e){return-2===e||-1===e||32===e}var _e=Ne(/\s/),Ce=Ne(/[!-/:-@[-`{-~\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/);function Ne(e){return function(t){return null!==t&&e.test(String.fromCharCode(t))}}function Ie(e,t,n,r){var a=r?r-1:Number.POSITIVE_INFINITY,i=0;return function(r){if(we(r))return e.enter(n),o(r);return t(r)};function o(r){return we(r)&&i++<a?(e.consume(r),o):(e.exit(n),t(r))}}var xe={tokenize:function(e){var t,n=e.attempt(this.parser.constructs.contentInitial,(function(t){if(null===t)return void e.consume(t);return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Ie(e,n,"linePrefix")}),(function(t){return e.enter("paragraph"),r(t)}));return n;function r(n){var r=e.enter("chunkText",{contentType:"text",previous:t});return t&&(t.next=r),t=r,a(n)}function a(t){return null===t?(e.exit("chunkText"),e.exit("paragraph"),void e.consume(t)):ke(t)?(e.consume(t),e.exit("chunkText"),r):(e.consume(t),a)}}};var Re={tokenize:function(e){var t,n,r,a=this,i=[],o=0;return s;function s(t){if(o<i.length){var n=i[o];return a.containerState=n[1],e.attempt(n[0].continuation,l,c)(t)}return c(t)}function l(e){if(o++,a.containerState._closeFlow){a.containerState._closeFlow=void 0,t&&E();for(var n,r=a.events.length,i=r;i--;)if("exit"===a.events[i][0]&&"chunkFlow"===a.events[i][1].type){n=a.events[i][1].end;break}b(o);for(var l=r;l<a.events.length;)a.events[l][1].end=Object.assign({},n),l++;return ue(a.events,i+1,0,a.events.slice(r)),a.events.length=l,c(e)}return s(e)}function c(n){if(o===i.length){if(!t)return p(n);if(t.currentConstruct&&t.currentConstruct.concrete)return g(n);a.interrupt=Boolean(t.currentConstruct&&!t._gfmTableDynamicInterruptHack)}return a.containerState={},e.check(Oe,u,d)(n)}function u(e){return t&&E(),b(o),p(e)}function d(e){return a.parser.lazy[a.now().line]=o!==i.length,r=a.now().offset,g(e)}function p(t){return a.containerState={},e.attempt(Oe,m,g)(t)}function m(e){return o++,i.push([a.currentConstruct,a.containerState]),p(e)}function g(r){return null===r?(t&&E(),b(0),void e.consume(r)):(t=t||a.parser.flow(a.now()),e.enter("chunkFlow",{contentType:"flow",previous:n,_tokenizer:t}),h(r))}function h(t){return null===t?(f(e.exit("chunkFlow"),!0),b(0),void e.consume(t)):ke(t)?(e.consume(t),f(e.exit("chunkFlow")),o=0,a.interrupt=void 0,s):(e.consume(t),h)}function f(e,i){var s=a.sliceStream(e);if(i&&s.push(null),e.previous=n,n&&(n.next=e),n=e,t.defineSkip(e.start),t.write(s),a.parser.lazy[e.start.line]){for(var l=t.events.length;l--;)if(t.events[l][1].start.offset<r&&(!t.events[l][1].end||t.events[l][1].end.offset>r))return;for(var c,u,d=a.events.length,p=d;p--;)if("exit"===a.events[p][0]&&"chunkFlow"===a.events[p][1].type){if(c){u=a.events[p][1].end;break}c=!0}for(b(o),l=d;l<a.events.length;)a.events[l][1].end=Object.assign({},u),l++;ue(a.events,p+1,0,a.events.slice(d)),a.events.length=l}}function b(t){for(var n=i.length;n-- >t;){var r=i[n];a.containerState=r[1],r[0].exit.call(a,e)}i.length=t}function E(){t.write([null]),n=void 0,t=void 0,a.containerState._closeFlow=void 0}}},Oe={tokenize:function(e,t,n){return Ie(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};var Le={tokenize:function(e,t,n){return Ie(e,(function(e){return null===e||ke(e)?t(e):n(e)}),"linePrefix")},partial:!0};function Pe(e){for(var t,n,r,a,i,o,s,l={},c=-1;++c<e.length;){for(;c in l;)c=l[c];if(t=e[c],c&&"chunkFlow"===t[1].type&&"listItemPrefix"===e[c-1][1].type&&((r=0)<(o=t[1]._tokenizer.events).length&&"lineEndingBlank"===o[r][1].type&&(r+=2),r<o.length&&"content"===o[r][1].type))for(;++r<o.length&&"content"!==o[r][1].type;)"chunkText"===o[r][1].type&&(o[r][1]._isInFirstContentOfListItem=!0,r++);if("enter"===t[0])t[1].contentType&&(Object.assign(l,De(e,c)),c=l[c],s=!0);else if(t[1]._container){for(r=c,n=void 0;r--&&("lineEnding"===(a=e[r])[1].type||"lineEndingBlank"===a[1].type);)"enter"===a[0]&&(n&&(e[n][1].type="lineEndingBlank"),a[1].type="lineEnding",n=r);n&&(t[1].end=Object.assign({},e[n][1].start),(i=e.slice(n,c)).unshift(t),ue(e,n,c-n+1,i))}}return!s}function De(e,t){for(var n,r,a=e[t][1],i=e[t][2],o=t-1,s=[],l=a._tokenizer||i.parser[a.contentType](a.start),c=l.events,u=[],d={},p=-1,m=a,g=0,h=0,f=[h];m;){for(;e[++o][1]!==m;);s.push(o),m._tokenizer||(n=i.sliceStream(m),m.next||n.push(null),r&&l.defineSkip(m.start),m._isInFirstContentOfListItem&&(l._gfmTasklistFirstContentOfListItem=!0),l.write(n),m._isInFirstContentOfListItem&&(l._gfmTasklistFirstContentOfListItem=void 0)),r=m,m=m.next}for(m=a;++p<c.length;)"exit"===c[p][0]&&"enter"===c[p-1][0]&&c[p][1].type===c[p-1][1].type&&c[p][1].start.line!==c[p][1].end.line&&(h=p+1,f.push(h),m._tokenizer=void 0,m.previous=void 0,m=m.next);for(l.events=[],m?(m._tokenizer=void 0,m.previous=void 0):f.pop(),p=f.length;p--;){var b=c.slice(f[p],f[p+1]),E=s.pop();u.unshift([E,E+b.length-1]),ue(e,E,2,b)}for(p=-1;++p<u.length;)d[g+u[p][0]]=g+u[p][1],g+=u[p][1]-u[p][0]-1;return d}var Me={tokenize:function(e,t){var n;return function(t){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),r(t)};function r(t){return null===t?a(t):ke(t)?e.check(Fe,i,a)(t):(e.consume(t),r)}function a(n){return e.exit("chunkContent"),e.exit("content"),t(n)}function i(t){return e.consume(t),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,r}},resolve:function(e){return Pe(e),e}},Fe={tokenize:function(e,t,n){var r=this;return function(t){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Ie(e,a,"linePrefix")};function a(a){if(null===a||ke(a))return n(a);var i=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}},partial:!0};var Ue={tokenize:function(e){var t=this,n=e.attempt(Le,(function(r){if(null===r)return void e.consume(r);return e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}),e.attempt(this.parser.constructs.flowInitial,r,Ie(e,e.attempt(this.parser.constructs.flow,r,e.attempt(Me,r)),"linePrefix")));return n;function r(r){if(null!==r)return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),t.currentConstruct=void 0,n;e.consume(r)}}};var Be={resolveAll:$e()},Ge=ze("string"),He=ze("text");function ze(e){return{tokenize:function(t){var n=this,r=this.parser.constructs[e],a=t.attempt(r,i,o);return i;function i(e){return l(e)?a(e):o(e)}function o(e){if(null!==e)return t.enter("data"),t.consume(e),s;t.consume(e)}function s(e){return l(e)?(t.exit("data"),a(e)):(t.consume(e),s)}function l(e){if(null===e)return!0;var t=r[e],a=-1;if(t)for(;++a<t.length;){var i=t[a];if(!i.previous||i.previous.call(n,n.previous))return!0}return!1}},resolveAll:$e("text"===e?Ve:void 0)}}function $e(e){return function(t,n){var r,a=-1;for(;++a<=t.length;)void 0===r?t[a]&&"data"===t[a][1].type&&(r=a,a++):t[a]&&"data"===t[a][1].type||(a!==r+2&&(t[r][1].end=t[a-1][1].end,t.splice(r+2,a-r-2),a=r+2),r=void 0);return e?e(t,n):t}}function Ve(e,t){for(var n=0;++n<=e.length;)if((n===e.length||"lineEnding"===e[n][1].type)&&"data"===e[n-1][1].type){for(var r=e[n-1][1],a=t.sliceStream(r),i=a.length,o=-1,s=0,l=void 0;i--;){var c=a[i];if("string"===typeof c){for(o=c.length;32===c.charCodeAt(o-1);)s++,o--;if(o)break;o=-1}else if(-2===c)l=!0,s++;else if(-1!==c){i++;break}}if(s){var u={type:n===e.length||l||s<2?"lineSuffix":"hardBreakTrailing",start:{line:r.end.line,column:r.end.column-s,offset:r.end.offset-s,_index:r.start._index+i,_bufferIndex:i?o:r.start._bufferIndex+o},end:Object.assign({},r.end)};r.end=Object.assign({},u.start),r.start.offset===r.end.offset?Object.assign(r,u):(e.splice(n,0,["enter",u,t],["exit",u,t]),n+=2)}n++}return e}function je(e,t,n){for(var r=[],a=-1;++a<e.length;){var i=e[a].resolveAll;i&&!r.includes(i)&&(t=i(t,n),r.push(i))}return t}function We(e,t,n){var r=Object.assign(n?Object.assign({},n):{line:1,column:1,offset:0},{_index:0,_bufferIndex:-1}),a={},i=[],o=[],s=[],l={consume:function(e){ke(e)?(r.line++,r.column=1,r.offset+=-3===e?2:1,y()):-1!==e&&(r.column++,r.offset++);r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++));c.previous=e,!0},enter:function(e,t){var n=t||{};return n.type=e,n.start=m(),c.events.push(["enter",n,c]),s.push(n),n},exit:function(e){var t=s.pop();return t.end=m(),c.events.push(["exit",t,c]),t},attempt:b((function(e,t){E(e,t.from)})),check:b(f),interrupt:b(f,{interrupt:!0})},c={previous:null,code:null,containerState:{},events:[],parser:e,sliceStream:d,sliceSerialize:function(e,t){return function(e,t){var n,r=-1,a=[];for(;++r<e.length;){var i=e[r],o=void 0;if("string"===typeof i)o=i;else switch(i){case-5:o="\r";break;case-4:o="\n";break;case-3:o="\r\n";break;case-2:o=t?" ":"\t";break;case-1:if(!t&&n)continue;o=" ";break;default:o=String.fromCharCode(i)}n=-2===i,a.push(o)}return a.join("")}(d(e),t)},now:m,defineSkip:function(e){a[e.line]=e.column,y()},write:function(e){if(o=de(o,e),g(),null!==o[o.length-1])return[];return E(t,0),c.events=je(i,c.events,c),c.events}},u=t.tokenize.call(c,l);return t.resolveAll&&i.push(t),c;function d(e){return function(e,t){var n,r=t.start._index,a=t.start._bufferIndex,i=t.end._index,o=t.end._bufferIndex;r===i?n=[e[r].slice(a,o)]:(n=e.slice(r,i),a>-1&&(n[0]=n[0].slice(a)),o>0&&n.push(e[i].slice(0,o)));return n}(o,e)}function m(){return Object.assign({},r)}function g(){for(var e;r._index<o.length;){var t=o[r._index];if("string"===typeof t)for(e=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===e&&r._bufferIndex<t.length;)h(t.charCodeAt(r._bufferIndex));else h(t)}}function h(e){void 0,e,u=u(e)}function f(e,t){t.restore()}function b(e,t){return function(n,a,i){var o,u,d,g;return Array.isArray(n)?h(n):"tokenize"in n?h([n]):function(e){return t;function t(t){var n=null!==t&&e[t],r=null!==t&&e.null;return h([].concat(p(Array.isArray(n)?n:n?[n]:[]),p(Array.isArray(r)?r:r?[r]:[])))(t)}}(n);function h(e){return o=e,u=0,0===e.length?i:f(e[u])}function f(e){return function(n){g=function(){var e=m(),t=c.previous,n=c.currentConstruct,a=c.events.length,i=Array.from(s);return{restore:o,from:a};function o(){r=e,c.previous=t,c.currentConstruct=n,c.events.length=a,s=i,y()}}(),d=e,e.partial||(c.currentConstruct=e);if(e.name&&c.parser.constructs.disable.null.includes(e.name))return E(n);return e.tokenize.call(t?Object.assign(Object.create(c),t):c,l,b,E)(n)}}function b(t){return!0,e(d,g),a}function E(e){return!0,g.restore(),++u<o.length?f(o[u]):i}}}function E(e,t){e.resolveAll&&!i.includes(e)&&i.push(e),e.resolve&&ue(c.events,t,c.events.length-t,e.resolve(c.events.slice(t),c)),e.resolveTo&&(c.events=e.resolveTo(c.events,c))}function y(){r.line in a&&r.column<2&&(r.column=a[r.line],r.offset+=a[r.line]-1)}}var qe={name:"thematicBreak",tokenize:function(e,t,n){var r,a=0;return function(t){return e.enter("thematicBreak"),r=t,i(t)};function i(s){return s===r?(e.enter("thematicBreakSequence"),o(s)):we(s)?Ie(e,i,"whitespace")(s):a<3||null!==s&&!ke(s)?n(s):(e.exit("thematicBreak"),t(s))}function o(t){return t===r?(e.consume(t),a++,o):(e.exit("thematicBreakSequence"),i(t))}}};var Ke={name:"list",tokenize:function(e,t,n){var r=this,a=r.events[r.events.length-1],i=a&&"linePrefix"===a[1].type?a[2].sliceSerialize(a[1],!0).length:0,o=0;return function(t){var a=r.containerState.type||(42===t||43===t||45===t?"listUnordered":"listOrdered");if("listUnordered"===a?!r.containerState.marker||t===r.containerState.marker:be(t)){if(r.containerState.type||(r.containerState.type=a,e.enter(a,{_container:!0})),"listUnordered"===a)return e.enter("listItemPrefix"),42===t||45===t?e.check(qe,n,l)(t):l(t);if(!r.interrupt||49===t)return e.enter("listItemPrefix"),e.enter("listItemValue"),s(t)}return n(t)};function s(t){return be(t)&&++o<10?(e.consume(t),s):(!r.interrupt||o<2)&&(r.containerState.marker?t===r.containerState.marker:41===t||46===t)?(e.exit("listItemValue"),l(t)):n(t)}function l(t){return e.enter("listItemMarker"),e.consume(t),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||t,e.check(Le,r.interrupt?n:c,e.attempt(Xe,d,u))}function c(e){return r.containerState.initialBlankLine=!0,i++,d(e)}function u(t){return we(t)?(e.enter("listItemPrefixWhitespace"),e.consume(t),e.exit("listItemPrefixWhitespace"),d):n(t)}function d(n){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(n)}},continuation:{tokenize:function(e,t,n){var r=this;return r.containerState._closeFlow=void 0,e.check(Le,a,i);function a(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ie(e,t,"listItemIndent",r.containerState.size+1)(n)}function i(n){return r.containerState.furtherBlankLines||!we(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Ye,t,o)(n))}function o(a){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ie(e,e.attempt(Ke,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}},exit:function(e){e.exit(this.containerState.type)}},Xe={tokenize:function(e,t,n){var r=this;return Ie(e,(function(e){var a=r.events[r.events.length-1];return!we(e)&&a&&"listItemPrefixWhitespace"===a[1].type?t(e):n(e)}),"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5)},partial:!0},Ye={tokenize:function(e,t,n){var r=this;return Ie(e,(function(e){var a=r.events[r.events.length-1];return a&&"listItemIndent"===a[1].type&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(e):n(e)}),"listItemIndent",r.containerState.size+1)},partial:!0};var Ze={name:"blockQuote",tokenize:function(e,t,n){var r=this;return function(t){if(62===t){var i=r.containerState;return i.open||(e.enter("blockQuote",{_container:!0}),i.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(t),e.exit("blockQuoteMarker"),a}return n(t)};function a(n){return we(n)?(e.enter("blockQuotePrefixWhitespace"),e.consume(n),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(n))}},continuation:{tokenize:function(e,t,n){return Ie(e,e.attempt(Ze,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}},exit:function(e){e.exit("blockQuote")}};function Qe(e,t,n,r,a,i,o,s,l){var c=l||Number.POSITIVE_INFINITY,u=0;return function(t){if(60===t)return e.enter(r),e.enter(a),e.enter(i),e.consume(t),e.exit(i),d;if(null===t||41===t||ve(t))return n(t);return e.enter(r),e.enter(o),e.enter(s),e.enter("chunkString",{contentType:"string"}),g(t)};function d(n){return 62===n?(e.enter(i),e.consume(n),e.exit(i),e.exit(a),e.exit(r),t):(e.enter(s),e.enter("chunkString",{contentType:"string"}),p(n))}function p(t){return 62===t?(e.exit("chunkString"),e.exit(s),d(t)):null===t||60===t||ke(t)?n(t):(e.consume(t),92===t?m:p)}function m(t){return 60===t||62===t||92===t?(e.consume(t),p):p(t)}function g(a){return 40===a?++u>c?n(a):(e.consume(a),g):41===a?u--?(e.consume(a),g):(e.exit("chunkString"),e.exit(s),e.exit(o),e.exit(r),t(a)):null===a||Ae(a)?u?n(a):(e.exit("chunkString"),e.exit(s),e.exit(o),e.exit(r),t(a)):ve(a)?n(a):(e.consume(a),92===a?h:g)}function h(t){return 40===t||41===t||92===t?(e.consume(t),g):g(t)}}function Je(e,t,n,r,a,i){var o,s=this,l=0;return function(t){return e.enter(r),e.enter(a),e.consume(t),e.exit(a),e.enter(i),c};function c(d){return null===d||91===d||93===d&&!o||94===d&&!l&&"_hiddenFootnoteSupport"in s.parser.constructs||l>999?n(d):93===d?(e.exit(i),e.enter(a),e.consume(d),e.exit(a),e.exit(r),t):ke(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),u(d))}function u(t){return null===t||91===t||93===t||ke(t)||l++>999?(e.exit("chunkString"),c(t)):(e.consume(t),o=o||!we(t),92===t?d:u)}function d(t){return 91===t||92===t||93===t?(e.consume(t),l++,u):u(t)}}function et(e,t,n,r,a,i){var o;return function(t){return e.enter(r),e.enter(a),e.consume(t),e.exit(a),o=40===t?41:t,s};function s(n){return n===o?(e.enter(a),e.consume(n),e.exit(a),e.exit(r),t):(e.enter(i),l(n))}function l(t){return t===o?(e.exit(i),s(o)):null===t?n(t):ke(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Ie(e,l,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(t))}function c(t){return t===o||null===t||ke(t)?(e.exit("chunkString"),l(t)):(e.consume(t),92===t?u:c)}function u(t){return t===o||92===t?(e.consume(t),c):c(t)}}function tt(e,t){var n;return function r(a){if(ke(a))return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),n=!0,r;if(we(a))return Ie(e,r,n?"linePrefix":"lineSuffix")(a);return t(a)}}function nt(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}var rt={name:"definition",tokenize:function(e,t,n){var r,a=this;return function(t){return e.enter("definition"),Je.call(a,e,i,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)};function i(t){return r=nt(a.sliceSerialize(a.events[a.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),tt(e,Qe(e,e.attempt(at,Ie(e,o,"whitespace"),Ie(e,o,"whitespace")),n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):n(t)}function o(i){return null===i||ke(i)?(e.exit("definition"),a.parser.defined.includes(r)||a.parser.defined.push(r),t(i)):n(i)}}},at={tokenize:function(e,t,n){return function(t){return Ae(t)?tt(e,r)(t):n(t)};function r(t){return 34===t||39===t||40===t?et(e,Ie(e,a,"whitespace"),n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t):n(t)}function a(e){return null===e||ke(e)?t(e):n(e)}},partial:!0};var it={name:"codeIndented",tokenize:function(e,t,n){var r=this;return function(t){return e.enter("codeIndented"),Ie(e,a,"linePrefix",5)(t)};function a(e){var t=r.events[r.events.length-1];return t&&"linePrefix"===t[1].type&&t[2].sliceSerialize(t[1],!0).length>=4?i(e):n(e)}function i(t){return null===t?s(t):ke(t)?e.attempt(ot,i,s)(t):(e.enter("codeFlowValue"),o(t))}function o(t){return null===t||ke(t)?(e.exit("codeFlowValue"),i(t)):(e.consume(t),o)}function s(n){return e.exit("codeIndented"),t(n)}}},ot={tokenize:function(e,t,n){var r=this;return a;function a(t){return r.parser.lazy[r.now().line]?n(t):ke(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),a):Ie(e,i,"linePrefix",5)(t)}function i(e){var i=r.events[r.events.length-1];return i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?t(e):ke(e)?a(e):n(e)}},partial:!0};var st={name:"headingAtx",tokenize:function(e,t,n){var r=this,a=0;return function(t){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),i(t)};function i(s){return 35===s&&a++<6?(e.consume(s),i):null===s||Ae(s)?(e.exit("atxHeadingSequence"),r.interrupt?t(s):o(s)):n(s)}function o(n){return 35===n?(e.enter("atxHeadingSequence"),s(n)):null===n||ke(n)?(e.exit("atxHeading"),t(n)):we(n)?Ie(e,o,"whitespace")(n):(e.enter("atxHeadingText"),l(n))}function s(t){return 35===t?(e.consume(t),s):(e.exit("atxHeadingSequence"),o(t))}function l(t){return null===t||35===t||Ae(t)?(e.exit("atxHeadingText"),o(t)):(e.consume(t),l)}},resolve:function(e,t){var n,r,a=e.length-2,i=3;"whitespace"===e[i][1].type&&(i+=2);a-2>i&&"whitespace"===e[a][1].type&&(a-=2);"atxHeadingSequence"===e[a][1].type&&(i===a-1||a-4>i&&"whitespace"===e[a-2][1].type)&&(a-=i+1===a?2:4);a>i&&(n={type:"atxHeadingText",start:e[i][1].start,end:e[a][1].end},r={type:"chunkText",start:e[i][1].start,end:e[a][1].end,contentType:"text"},ue(e,i,a-i+1,[["enter",n,t],["enter",r,t],["exit",r,t],["exit",n,t]]));return e}};var lt={name:"setextUnderline",tokenize:function(e,t,n){var r,a,i=this,o=i.events.length;for(;o--;)if("lineEnding"!==i.events[o][1].type&&"linePrefix"!==i.events[o][1].type&&"content"!==i.events[o][1].type){a="paragraph"===i.events[o][1].type;break}return function(t){if(!i.parser.lazy[i.now().line]&&(i.interrupt||a))return e.enter("setextHeadingLine"),e.enter("setextHeadingLineSequence"),r=t,s(t);return n(t)};function s(t){return t===r?(e.consume(t),s):(e.exit("setextHeadingLineSequence"),Ie(e,l,"lineSuffix")(t))}function l(r){return null===r||ke(r)?(e.exit("setextHeadingLine"),t(r)):n(r)}},resolveTo:function(e,t){var n,r,a,i=e.length;for(;i--;)if("enter"===e[i][0]){if("content"===e[i][1].type){n=i;break}"paragraph"===e[i][1].type&&(r=i)}else"content"===e[i][1].type&&e.splice(i,1),a||"definition"!==e[i][1].type||(a=i);var o={type:"setextHeading",start:Object.assign({},e[r][1].start),end:Object.assign({},e[e.length-1][1].end)};e[r][1].type="setextHeadingText",a?(e.splice(r,0,["enter",o,t]),e.splice(a+1,0,["exit",e[n][1],t]),e[n][1].end=Object.assign({},e[a][1].end)):e[n][1]=o;return e.push(["exit",o,t]),e}};var ct=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],ut=["pre","script","style","textarea"],dt={name:"htmlFlow",tokenize:function(e,t,n){var r,a,i,o,s,l=this;return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),c};function c(o){return 33===o?(e.consume(o),u):47===o?(e.consume(o),m):63===o?(e.consume(o),r=3,l.interrupt?t:P):fe(o)?(e.consume(o),i=String.fromCharCode(o),a=!0,g):n(o)}function u(a){return 45===a?(e.consume(a),r=2,d):91===a?(e.consume(a),r=5,i="CDATA[",o=0,p):fe(a)?(e.consume(a),r=4,l.interrupt?t:P):n(a)}function d(r){return 45===r?(e.consume(r),l.interrupt?t:P):n(r)}function p(r){return r===i.charCodeAt(o++)?(e.consume(r),o===i.length?l.interrupt?t:_:p):n(r)}function m(t){return fe(t)?(e.consume(t),i=String.fromCharCode(t),g):n(t)}function g(o){return null===o||47===o||62===o||Ae(o)?47!==o&&a&&ut.includes(i.toLowerCase())?(r=1,l.interrupt?t(o):_(o)):ct.includes(i.toLowerCase())?(r=6,47===o?(e.consume(o),h):l.interrupt?t(o):_(o)):(r=7,l.interrupt&&!l.parser.lazy[l.now().line]?n(o):a?b(o):f(o)):45===o||ye(o)?(e.consume(o),i+=String.fromCharCode(o),g):n(o)}function h(r){return 62===r?(e.consume(r),l.interrupt?t:_):n(r)}function f(t){return we(t)?(e.consume(t),f):k(t)}function b(t){return 47===t?(e.consume(t),k):58===t||95===t||fe(t)?(e.consume(t),E):we(t)?(e.consume(t),b):k(t)}function E(t){return 45===t||46===t||58===t||95===t||ye(t)?(e.consume(t),E):y(t)}function y(t){return 61===t?(e.consume(t),T):we(t)?(e.consume(t),y):b(t)}function T(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),s=t,S):we(t)?(e.consume(t),T):(s=null,v(t))}function S(t){return null===t||ke(t)?n(t):t===s?(e.consume(t),A):(e.consume(t),S)}function v(t){return null===t||34===t||39===t||60===t||61===t||62===t||96===t||Ae(t)?y(t):(e.consume(t),v)}function A(e){return 47===e||62===e||we(e)?b(e):n(e)}function k(t){return 62===t?(e.consume(t),w):n(t)}function w(t){return we(t)?(e.consume(t),w):null===t||ke(t)?_(t):n(t)}function _(t){return 45===t&&2===r?(e.consume(t),x):60===t&&1===r?(e.consume(t),R):62===t&&4===r?(e.consume(t),D):63===t&&3===r?(e.consume(t),P):93===t&&5===r?(e.consume(t),L):!ke(t)||6!==r&&7!==r?null===t||ke(t)?C(t):(e.consume(t),_):e.check(pt,D,C)(t)}function C(t){return e.exit("htmlFlowData"),N(t)}function N(t){return null===t?M(t):ke(t)?e.attempt({tokenize:I,partial:!0},N,M)(t):(e.enter("htmlFlowData"),_(t))}function I(e,t,n){return function(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),r};function r(e){return l.parser.lazy[l.now().line]?n(e):t(e)}}function x(t){return 45===t?(e.consume(t),P):_(t)}function R(t){return 47===t?(e.consume(t),i="",O):_(t)}function O(t){return 62===t&&ut.includes(i.toLowerCase())?(e.consume(t),D):fe(t)&&i.length<8?(e.consume(t),i+=String.fromCharCode(t),O):_(t)}function L(t){return 93===t?(e.consume(t),P):_(t)}function P(t){return 62===t?(e.consume(t),D):45===t&&2===r?(e.consume(t),P):_(t)}function D(t){return null===t||ke(t)?(e.exit("htmlFlowData"),M(t)):(e.consume(t),D)}function M(n){return e.exit("htmlFlow"),t(n)}},resolveTo:function(e){var t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2));return e},concrete:!0},pt={tokenize:function(e,t,n){return function(r){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),e.attempt(Le,t,n)}},partial:!0};var mt={name:"codeFenced",tokenize:function(e,t,n){var r,a=this,i={tokenize:function(e,t,n){var a=0;return Ie(e,i,"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4);function i(t){return e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),o(t)}function o(t){return t===r?(e.consume(t),a++,o):a<c?n(t):(e.exit("codeFencedFenceSequence"),Ie(e,s,"whitespace")(t))}function s(r){return null===r||ke(r)?(e.exit("codeFencedFence"),t(r)):n(r)}},partial:!0},o={tokenize:function(e,t,n){var r=this;return a;function a(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i}function i(e){return r.parser.lazy[r.now().line]?n(e):t(e)}},partial:!0},s=this.events[this.events.length-1],l=s&&"linePrefix"===s[1].type?s[2].sliceSerialize(s[1],!0).length:0,c=0;return function(t){return e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),r=t,u(t)};function u(t){return t===r?(e.consume(t),c++,u):(e.exit("codeFencedFenceSequence"),c<3?n(t):Ie(e,d,"whitespace")(t))}function d(t){return null===t||ke(t)?h(t):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),p(t))}function p(t){return null===t||Ae(t)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),Ie(e,m,"whitespace")(t)):96===t&&t===r?n(t):(e.consume(t),p)}function m(t){return null===t||ke(t)?h(t):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),g(t))}function g(t){return null===t||ke(t)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),h(t)):96===t&&t===r?n(t):(e.consume(t),g)}function h(n){return e.exit("codeFencedFence"),a.interrupt?t(n):f(n)}function f(t){return null===t?E(t):ke(t)?e.attempt(o,e.attempt(i,E,l?Ie(e,f,"linePrefix",l+1):f),E)(t):(e.enter("codeFlowValue"),b(t))}function b(t){return null===t||ke(t)?(e.exit("codeFlowValue"),f(t)):(e.consume(t),b)}function E(n){return e.exit("codeFenced"),t(n)}},concrete:!0};var gt=document.createElement("i");function ht(e){var t="&"+e+";";gt.innerHTML=t;var n=gt.textContent;return(59!==n.charCodeAt(n.length-1)||"semi"===e)&&(n!==t&&n)}var ft={name:"characterReference",tokenize:function(e,t,n){var r,a,i=this,o=0;return function(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),s};function s(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),l):(e.enter("characterReferenceValue"),r=31,a=ye,c(t))}function l(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),r=6,a=Ee,c):(e.enter("characterReferenceValue"),r=7,a=be,c(t))}function c(s){var l;return 59===s&&o?(l=e.exit("characterReferenceValue"),a!==ye||ht(i.sliceSerialize(l))?(e.enter("characterReferenceMarker"),e.consume(s),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):n(s)):a(s)&&o++<r?(e.consume(s),c):n(s)}}};var bt={name:"characterEscape",tokenize:function(e,t,n){return function(t){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(t),e.exit("escapeMarker"),r};function r(r){return Te(r)?(e.enter("characterEscapeValue"),e.consume(r),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(r)}}};var Et={name:"lineEnding",tokenize:function(e,t){return function(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),Ie(e,t,"linePrefix")}}};var yt={name:"labelEnd",tokenize:function(e,t,n){var r,a,i=this,o=i.events.length;for(;o--;)if(("labelImage"===i.events[o][1].type||"labelLink"===i.events[o][1].type)&&!i.events[o][1]._balanced){r=i.events[o][1];break}return function(t){if(!r)return n(t);return r._inactive?l(t):(a=i.parser.defined.includes(nt(i.sliceSerialize({start:r.end,end:i.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelEnd"),s)};function s(n){return 40===n?e.attempt(Tt,t,a?t:l)(n):91===n?e.attempt(St,t,a?e.attempt(vt,t,l):l)(n):a?t(n):l(n)}function l(e){return r._balanced=!0,n(e)}},resolveTo:function(e,t){var n,r,a,i,o=e.length,s=0;for(;o--;)if(n=e[o][1],r){if("link"===n.type||"labelLink"===n.type&&n._inactive)break;"enter"===e[o][0]&&"labelLink"===n.type&&(n._inactive=!0)}else if(a){if("enter"===e[o][0]&&("labelImage"===n.type||"labelLink"===n.type)&&!n._balanced&&(r=o,"labelLink"!==n.type)){s=2;break}}else"labelEnd"===n.type&&(a=o);var l={type:"labelLink"===e[r][1].type?"link":"image",start:Object.assign({},e[r][1].start),end:Object.assign({},e[e.length-1][1].end)},c={type:"label",start:Object.assign({},e[r][1].start),end:Object.assign({},e[a][1].end)},u={type:"labelText",start:Object.assign({},e[r+s+2][1].end),end:Object.assign({},e[a-2][1].start)};return i=de(i=[["enter",l,t],["enter",c,t]],e.slice(r+1,r+s+3)),i=de(i,[["enter",u,t]]),i=de(i,je(t.parser.constructs.insideSpan.null,e.slice(r+s+4,a-3),t)),i=de(i,[["exit",u,t],e[a-2],e[a-1],["exit",c,t]]),i=de(i,e.slice(a+1)),i=de(i,[["exit",l,t]]),ue(e,r,e.length,i),e},resolveAll:function(e){var t,n=-1;for(;++n<e.length;)"labelImage"!==(t=e[n][1]).type&&"labelLink"!==t.type&&"labelEnd"!==t.type||(e.splice(n+1,"labelImage"===t.type?4:2),t.type="data",n++);return e}},Tt={tokenize:function(e,t,n){return function(t){return e.enter("resource"),e.enter("resourceMarker"),e.consume(t),e.exit("resourceMarker"),tt(e,r)};function r(t){return 41===t?o(t):Qe(e,a,n,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(t)}function a(t){return Ae(t)?tt(e,i)(t):o(t)}function i(t){return 34===t||39===t||40===t?et(e,tt(e,o),n,"resourceTitle","resourceTitleMarker","resourceTitleString")(t):o(t)}function o(r){return 41===r?(e.enter("resourceMarker"),e.consume(r),e.exit("resourceMarker"),e.exit("resource"),t):n(r)}}},St={tokenize:function(e,t,n){var r=this;return function(t){return Je.call(r,e,a,n,"reference","referenceMarker","referenceString")(t)};function a(e){return r.parser.defined.includes(nt(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(e):n(e)}}},vt={tokenize:function(e,t,n){return function(t){return e.enter("reference"),e.enter("referenceMarker"),e.consume(t),e.exit("referenceMarker"),r};function r(r){return 93===r?(e.enter("referenceMarker"),e.consume(r),e.exit("referenceMarker"),e.exit("reference"),t):n(r)}}};var At={name:"labelStartImage",tokenize:function(e,t,n){var r=this;return function(t){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(t),e.exit("labelImageMarker"),a};function a(t){return 91===t?(e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelImage"),i):n(t)}function i(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?n(e):t(e)}},resolveAll:yt.resolveAll};function kt(e){return null===e||Ae(e)||_e(e)?1:Ce(e)?2:void 0}var wt={name:"attention",tokenize:function(e,t){var n,r=this.parser.constructs.attentionMarkers.null,a=this.previous,i=kt(a);return function(t){return e.enter("attentionSequence"),n=t,o(t)};function o(s){if(s===n)return e.consume(s),o;var l=e.exit("attentionSequence"),c=kt(s),u=!c||2===c&&i||r.includes(s),d=!i||2===i&&c||r.includes(a);return l._open=Boolean(42===n?u:u&&(i||!d)),l._close=Boolean(42===n?d:d&&(c||!u)),t(s)}},resolveAll:function(e,t){var n,r,a,i,o,s,l,c,u=-1;for(;++u<e.length;)if("enter"===e[u][0]&&"attentionSequence"===e[u][1].type&&e[u][1]._close)for(n=u;n--;)if("exit"===e[n][0]&&"attentionSequence"===e[n][1].type&&e[n][1]._open&&t.sliceSerialize(e[n][1]).charCodeAt(0)===t.sliceSerialize(e[u][1]).charCodeAt(0)){if((e[n][1]._close||e[u][1]._open)&&(e[u][1].end.offset-e[u][1].start.offset)%3&&!((e[n][1].end.offset-e[n][1].start.offset+e[u][1].end.offset-e[u][1].start.offset)%3))continue;s=e[n][1].end.offset-e[n][1].start.offset>1&&e[u][1].end.offset-e[u][1].start.offset>1?2:1;var d=Object.assign({},e[n][1].end),p=Object.assign({},e[u][1].start);_t(d,-s),_t(p,s),i={type:s>1?"strongSequence":"emphasisSequence",start:d,end:Object.assign({},e[n][1].end)},o={type:s>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[u][1].start),end:p},a={type:s>1?"strongText":"emphasisText",start:Object.assign({},e[n][1].end),end:Object.assign({},e[u][1].start)},r={type:s>1?"strong":"emphasis",start:Object.assign({},i.start),end:Object.assign({},o.end)},e[n][1].end=Object.assign({},i.start),e[u][1].start=Object.assign({},o.end),l=[],e[n][1].end.offset-e[n][1].start.offset&&(l=de(l,[["enter",e[n][1],t],["exit",e[n][1],t]])),l=de(l,[["enter",r,t],["enter",i,t],["exit",i,t],["enter",a,t]]),l=de(l,je(t.parser.constructs.insideSpan.null,e.slice(n+1,u),t)),l=de(l,[["exit",a,t],["enter",o,t],["exit",o,t],["exit",r,t]]),e[u][1].end.offset-e[u][1].start.offset?(c=2,l=de(l,[["enter",e[u][1],t],["exit",e[u][1],t]])):c=0,ue(e,n-1,u-n+3,l),u=n+l.length-c-2;break}u=-1;for(;++u<e.length;)"attentionSequence"===e[u][1].type&&(e[u][1].type="data");return e}};function _t(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}var Ct={name:"autolink",tokenize:function(e,t,n){var r=1;return function(t){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(t),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),a};function a(t){return fe(t)?(e.consume(t),i):Se(t)?l(t):n(t)}function i(e){return 43===e||45===e||46===e||ye(e)?o(e):l(e)}function o(t){return 58===t?(e.consume(t),s):(43===t||45===t||46===t||ye(t))&&r++<32?(e.consume(t),o):l(t)}function s(t){return 62===t?(e.exit("autolinkProtocol"),p(t)):null===t||32===t||60===t||ve(t)?n(t):(e.consume(t),s)}function l(t){return 64===t?(e.consume(t),r=0,c):Se(t)?(e.consume(t),l):n(t)}function c(e){return ye(e)?u(e):n(e)}function u(t){return 46===t?(e.consume(t),r=0,c):62===t?(e.exit("autolinkProtocol").type="autolinkEmail",p(t)):d(t)}function d(t){return(45===t||ye(t))&&r++<63?(e.consume(t),45===t?d:u):n(t)}function p(n){return e.enter("autolinkMarker"),e.consume(n),e.exit("autolinkMarker"),e.exit("autolink"),t}}};var Nt={name:"htmlText",tokenize:function(e,t,n){var r,a,i,o,s=this;return function(t){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(t),l};function l(t){return 33===t?(e.consume(t),c):47===t?(e.consume(t),v):63===t?(e.consume(t),T):fe(t)?(e.consume(t),w):n(t)}function c(t){return 45===t?(e.consume(t),u):91===t?(e.consume(t),a="CDATA[",i=0,h):fe(t)?(e.consume(t),y):n(t)}function u(t){return 45===t?(e.consume(t),d):n(t)}function d(t){return null===t||62===t?n(t):45===t?(e.consume(t),p):m(t)}function p(e){return null===e||62===e?n(e):m(e)}function m(t){return null===t?n(t):45===t?(e.consume(t),g):ke(t)?(o=m,L(t)):(e.consume(t),m)}function g(t){return 45===t?(e.consume(t),D):m(t)}function h(t){return t===a.charCodeAt(i++)?(e.consume(t),i===a.length?f:h):n(t)}function f(t){return null===t?n(t):93===t?(e.consume(t),b):ke(t)?(o=f,L(t)):(e.consume(t),f)}function b(t){return 93===t?(e.consume(t),E):f(t)}function E(t){return 62===t?D(t):93===t?(e.consume(t),E):f(t)}function y(t){return null===t||62===t?D(t):ke(t)?(o=y,L(t)):(e.consume(t),y)}function T(t){return null===t?n(t):63===t?(e.consume(t),S):ke(t)?(o=T,L(t)):(e.consume(t),T)}function S(e){return 62===e?D(e):T(e)}function v(t){return fe(t)?(e.consume(t),A):n(t)}function A(t){return 45===t||ye(t)?(e.consume(t),A):k(t)}function k(t){return ke(t)?(o=k,L(t)):we(t)?(e.consume(t),k):D(t)}function w(t){return 45===t||ye(t)?(e.consume(t),w):47===t||62===t||Ae(t)?_(t):n(t)}function _(t){return 47===t?(e.consume(t),D):58===t||95===t||fe(t)?(e.consume(t),C):ke(t)?(o=_,L(t)):we(t)?(e.consume(t),_):D(t)}function C(t){return 45===t||46===t||58===t||95===t||ye(t)?(e.consume(t),C):N(t)}function N(t){return 61===t?(e.consume(t),I):ke(t)?(o=N,L(t)):we(t)?(e.consume(t),N):_(t)}function I(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),r=t,x):ke(t)?(o=I,L(t)):we(t)?(e.consume(t),I):(e.consume(t),r=void 0,O)}function x(t){return t===r?(e.consume(t),R):null===t?n(t):ke(t)?(o=x,L(t)):(e.consume(t),x)}function R(e){return 62===e||47===e||Ae(e)?_(e):n(e)}function O(t){return null===t||34===t||39===t||60===t||61===t||96===t?n(t):62===t||Ae(t)?_(t):(e.consume(t),O)}function L(t){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Ie(e,P,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function P(t){return e.enter("htmlTextData"),o(t)}function D(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),t):n(r)}}};var It={name:"labelStartLink",tokenize:function(e,t,n){var r=this;return function(t){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelLink"),a};function a(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?n(e):t(e)}},resolveAll:yt.resolveAll};var xt={name:"hardBreakEscape",tokenize:function(e,t,n){return function(t){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(t),r};function r(r){return ke(r)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),t(r)):n(r)}}};var Rt,Ot,Lt,Pt,Dt,Mt={name:"codeText",tokenize:function(e,t,n){var r,a,i=0;return function(t){return e.enter("codeText"),e.enter("codeTextSequence"),o(t)};function o(t){return 96===t?(e.consume(t),i++,o):(e.exit("codeTextSequence"),s(t))}function s(t){return null===t?n(t):96===t?(a=e.enter("codeTextSequence"),r=0,c(t)):32===t?(e.enter("space"),e.consume(t),e.exit("space"),s):ke(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),s):(e.enter("codeTextData"),l(t))}function l(t){return null===t||32===t||96===t||ke(t)?(e.exit("codeTextData"),s(t)):(e.consume(t),l)}function c(n){return 96===n?(e.consume(n),r++,c):r===i?(e.exit("codeTextSequence"),e.exit("codeText"),t(n)):(a.type="codeTextData",l(n))}},resolve:function(e){var t,n,r=e.length-4,a=3;if(("lineEnding"===e[a][1].type||"space"===e[a][1].type)&&("lineEnding"===e[r][1].type||"space"===e[r][1].type))for(t=a;++t<r;)if("codeTextData"===e[t][1].type){e[a][1].type="codeTextPadding",e[r][1].type="codeTextPadding",a+=2,r-=2;break}t=a-1,r++;for(;++t<=r;)void 0===n?t!==r&&"lineEnding"!==e[t][1].type&&(n=t):t!==r&&"lineEnding"!==e[t][1].type||(e[n][1].type="codeTextData",t!==n+2&&(e[n][1].end=e[t-1][1].end,e.splice(n+2,t-n-2),r-=t-n-2,t=n+2),n=void 0);return e},previous:function(e){return 96!==e||"characterEscape"===this.events[this.events.length-1][1].type}};var Ft=(i(Rt={},42,Ke),i(Rt,43,Ke),i(Rt,45,Ke),i(Rt,48,Ke),i(Rt,49,Ke),i(Rt,50,Ke),i(Rt,51,Ke),i(Rt,52,Ke),i(Rt,53,Ke),i(Rt,54,Ke),i(Rt,55,Ke),i(Rt,56,Ke),i(Rt,57,Ke),i(Rt,62,Ze),Rt),Ut=i({},91,rt),Bt=(i(Ot={},-2,it),i(Ot,-1,it),i(Ot,32,it),Ot),Gt=(i(Lt={},35,st),i(Lt,42,qe),i(Lt,45,[lt,qe]),i(Lt,60,dt),i(Lt,61,lt),i(Lt,95,qe),i(Lt,96,mt),i(Lt,126,mt),Lt),Ht=(i(Pt={},38,ft),i(Pt,92,bt),Pt),zt=(i(Dt={},-5,Et),i(Dt,-4,Et),i(Dt,-3,Et),i(Dt,33,At),i(Dt,38,ft),i(Dt,42,wt),i(Dt,60,[Ct,Nt]),i(Dt,91,It),i(Dt,92,[xt,bt]),i(Dt,93,yt),i(Dt,95,wt),i(Dt,96,Mt),Dt),$t={null:[wt,Be]},Vt={null:[42,95]},jt={null:[]};var Wt=/[\0\t\n\r]/g;function qt(e,t){var n=Number.parseInt(e,t);return n<9||11===n||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||65535===(65535&n)||65534===(65535&n)||n>1114111?"\ufffd":String.fromCharCode(n)}var Kt=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Xt(e){return e.replace(Kt,Yt)}function Yt(e,t,n){if(t)return t;if(35===n.charCodeAt(0)){var r=n.charCodeAt(1),a=120===r||88===r;return qt(n.slice(a?2:1),a?16:10)}return ht(n)||e}var Zt={}.hasOwnProperty,Qt=function(t,n,r){return"string"!==typeof n&&(r=n,n=void 0),function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Jt({transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:l(ae),autolinkProtocol:N,autolinkEmail:N,atxHeading:l(ee),blockQuote:l(X),characterEscape:N,characterReference:N,codeFenced:l(Y),codeFencedFenceInfo:c,codeFencedFenceMeta:c,codeIndented:l(Y,c),codeText:l(Z,c),codeTextData:N,data:N,codeFlowValue:N,definition:l(Q),definitionDestinationString:c,definitionLabelString:c,definitionTitleString:c,emphasis:l(J),hardBreakEscape:l(te),hardBreakTrailing:l(te),htmlFlow:l(ne,c),htmlFlowData:N,htmlText:l(ne,c),htmlTextData:N,image:l(re),label:c,link:l(ae),listItem:l(oe),listItemValue:h,listOrdered:l(ie,g),listUnordered:l(ie),paragraph:l(le),reference:$,referenceString:c,resourceDestinationString:c,resourceTitleString:c,setextHeading:l(ee),strong:l(ce),thematicBreak:l(de)},exit:{atxHeading:d(),atxHeadingSequence:k,autolink:d(),autolinkEmail:K,autolinkProtocol:q,blockQuote:d(),characterEscapeValue:I,characterReferenceMarkerHexadecimal:j,characterReferenceMarkerNumeric:j,characterReferenceValue:W,codeFenced:d(y),codeFencedFence:E,codeFencedFenceInfo:f,codeFencedFenceMeta:b,codeFlowValue:I,codeIndented:d(T),codeText:d(D),codeTextData:I,data:I,definition:d(),definitionDestinationString:A,definitionLabelString:S,definitionTitleString:v,emphasis:d(),hardBreakEscape:d(O),hardBreakTrailing:d(O),htmlFlow:d(L),htmlFlowData:I,htmlText:d(P),htmlTextData:I,image:d(F),label:B,labelText:U,lineEnding:x,link:d(M),listItem:d(),listOrdered:d(),listUnordered:d(),paragraph:d(),referenceString:V,resourceDestinationString:G,resourceTitleString:H,resource:z,setextHeading:d(C),setextHeadingLineSequence:_,setextHeadingText:w,strong:d(),thematicBreak:d()}},e.mdastExtensions||[]),n={};return r;function r(e){for(var n={type:"root",children:[]},r=[],l=[],d={stack:[n],tokenStack:r,config:t,enter:u,exit:p,buffer:c,resume:m,setData:i,getData:o},g=-1;++g<e.length;){if("listOrdered"===e[g][1].type||"listUnordered"===e[g][1].type)if("enter"===e[g][0])l.push(g);else g=a(e,l.pop(),g)}for(g=-1;++g<e.length;){var h=t[e[g][0]];Zt.call(h,e[g][1].type)&&h[e[g][1].type].call(Object.assign({sliceSerialize:e[g][2].sliceSerialize},d),e[g][1])}if(r.length>0){var f=r[r.length-1];(f[1]||tn).call(d,void 0,f[0])}for(n.position={start:s(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:s(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},g=-1;++g<t.transforms.length;)n=t.transforms[g](n)||n;return n}function a(e,t,n){for(var r,a,i,o,s=t-1,l=-1,c=!1;++s<=n;){var u=e[s];if("listUnordered"===u[1].type||"listOrdered"===u[1].type||"blockQuote"===u[1].type?("enter"===u[0]?l++:l--,o=void 0):"lineEndingBlank"===u[1].type?"enter"===u[0]&&(!r||o||l||i||(i=s),o=void 0):"linePrefix"===u[1].type||"listItemValue"===u[1].type||"listItemMarker"===u[1].type||"listItemPrefix"===u[1].type||"listItemPrefixWhitespace"===u[1].type||(o=void 0),!l&&"enter"===u[0]&&"listItemPrefix"===u[1].type||-1===l&&"exit"===u[0]&&("listUnordered"===u[1].type||"listOrdered"===u[1].type)){if(r){var d=s;for(a=void 0;d--;){var p=e[d];if("lineEnding"===p[1].type||"lineEndingBlank"===p[1].type){if("exit"===p[0])continue;a&&(e[a][1].type="lineEndingBlank",c=!0),p[1].type="lineEnding",a=d}else if("linePrefix"!==p[1].type&&"blockQuotePrefix"!==p[1].type&&"blockQuotePrefixWhitespace"!==p[1].type&&"blockQuoteMarker"!==p[1].type&&"listItemIndent"!==p[1].type)break}i&&(!a||i<a)&&(r._spread=!0),r.end=Object.assign({},a?e[a][1].start:u[1].end),e.splice(a||s,0,["exit",r,u[2]]),s++,n++}"listItemPrefix"===u[1].type&&(r={type:"listItem",_spread:!1,start:Object.assign({},u[1].start)},e.splice(s,0,["enter",r,u[2]]),s++,n++,i=void 0,o=!0)}}return e[t][1]._spread=c,n}function i(e,t){n[e]=t}function o(e){return n[e]}function s(e){return{line:e.line,column:e.column,offset:e.offset}}function l(e,t){return n;function n(n){u.call(this,e(n),n),t&&t.call(this,n)}}function c(){this.stack.push({type:"fragment",children:[]})}function u(e,t,n){return this.stack[this.stack.length-1].children.push(e),this.stack.push(e),this.tokenStack.push([t,n]),e.position={start:s(t.start)},e}function d(e){return t;function t(t){e&&e.call(this,t),p.call(this,t)}}function p(e,t){var n=this.stack.pop(),r=this.tokenStack.pop();if(!r)throw new Error("Cannot close `"+e.type+"` ("+R({start:e.start,end:e.end})+"): it\u2019s not open");return r[0].type!==e.type&&(t?t.call(this,e,r[0]):(r[1]||tn).call(this,e,r[0])),n.position.end=s(e.end),n}function m(){return se(this.stack.pop())}function g(){i("expectingFirstListItemValue",!0)}function h(e){o("expectingFirstListItemValue")&&(this.stack[this.stack.length-2].start=Number.parseInt(this.sliceSerialize(e),10),i("expectingFirstListItemValue"))}function f(){var e=this.resume();this.stack[this.stack.length-1].lang=e}function b(){var e=this.resume();this.stack[this.stack.length-1].meta=e}function E(){o("flowCodeInside")||(this.buffer(),i("flowCodeInside",!0))}function y(){var e=this.resume();this.stack[this.stack.length-1].value=e.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),i("flowCodeInside")}function T(){var e=this.resume();this.stack[this.stack.length-1].value=e.replace(/(\r?\n|\r)$/g,"")}function S(e){var t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=nt(this.sliceSerialize(e)).toLowerCase()}function v(){var e=this.resume();this.stack[this.stack.length-1].title=e}function A(){var e=this.resume();this.stack[this.stack.length-1].url=e}function k(e){var t=this.stack[this.stack.length-1];if(!t.depth){var n=this.sliceSerialize(e).length;t.depth=n}}function w(){i("setextHeadingSlurpLineEnding",!0)}function _(e){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(e).charCodeAt(0)?1:2}function C(){i("setextHeadingSlurpLineEnding")}function N(e){var t=this.stack[this.stack.length-1],n=t.children[t.children.length-1];n&&"text"===n.type||((n=ue()).position={start:s(e.start)},t.children.push(n)),this.stack.push(n)}function I(e){var t=this.stack.pop();t.value+=this.sliceSerialize(e),t.position.end=s(e.end)}function x(e){var n=this.stack[this.stack.length-1];if(o("atHardBreak"))return n.children[n.children.length-1].position.end=s(e.end),void i("atHardBreak");!o("setextHeadingSlurpLineEnding")&&t.canContainEols.includes(n.type)&&(N.call(this,e),I.call(this,e))}function O(){i("atHardBreak",!0)}function L(){var e=this.resume();this.stack[this.stack.length-1].value=e}function P(){var e=this.resume();this.stack[this.stack.length-1].value=e}function D(){var e=this.resume();this.stack[this.stack.length-1].value=e}function M(){var e=this.stack[this.stack.length-1];o("inReference")?(e.type+="Reference",e.referenceType=o("referenceType")||"shortcut",delete e.url,delete e.title):(delete e.identifier,delete e.label),i("referenceType")}function F(){var e=this.stack[this.stack.length-1];o("inReference")?(e.type+="Reference",e.referenceType=o("referenceType")||"shortcut",delete e.url,delete e.title):(delete e.identifier,delete e.label),i("referenceType")}function U(e){var t=this.stack[this.stack.length-2],n=this.sliceSerialize(e);t.label=Xt(n),t.identifier=nt(n).toLowerCase()}function B(){var e=this.stack[this.stack.length-1],t=this.resume(),n=this.stack[this.stack.length-1];i("inReference",!0),"link"===n.type?n.children=e.children:n.alt=t}function G(){var e=this.resume();this.stack[this.stack.length-1].url=e}function H(){var e=this.resume();this.stack[this.stack.length-1].title=e}function z(){i("inReference")}function $(){i("referenceType","collapsed")}function V(e){var t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=nt(this.sliceSerialize(e)).toLowerCase(),i("referenceType","full")}function j(e){i("characterReferenceType",e.type)}function W(e){var t,n=this.sliceSerialize(e),r=o("characterReferenceType");r?(t=qt(n,"characterReferenceMarkerNumeric"===r?10:16),i("characterReferenceType")):t=ht(n);var a=this.stack.pop();a.value+=t,a.position.end=s(e.end)}function q(e){I.call(this,e),this.stack[this.stack.length-1].url=this.sliceSerialize(e)}function K(e){I.call(this,e),this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(e)}function X(){return{type:"blockquote",children:[]}}function Y(){return{type:"code",lang:null,meta:null,value:""}}function Z(){return{type:"inlineCode",value:""}}function Q(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function J(){return{type:"emphasis",children:[]}}function ee(){return{type:"heading",depth:void 0,children:[]}}function te(){return{type:"break"}}function ne(){return{type:"html",value:""}}function re(){return{type:"image",title:null,url:"",alt:null}}function ae(){return{type:"link",title:null,url:"",children:[]}}function ie(e){return{type:"list",ordered:"listOrdered"===e.type,start:null,spread:e._spread,children:[]}}function oe(e){return{type:"listItem",spread:e._spread,checked:null,children:[]}}function le(){return{type:"paragraph",children:[]}}function ce(){return{type:"strong",children:[]}}function ue(){return{type:"text",value:""}}function de(){return{type:"thematicBreak"}}}(r)(function(e){for(;!Pe(e););return e}(function(){var t={defined:[],lazy:{},constructs:me([e].concat((arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).extensions||[])),content:n(xe),document:n(Re),flow:n(Ue),string:n(Ge),text:n(He)};return t;function n(e){return function(n){return We(t,e,n)}}}(r).document().write(function(){var e,t=1,n="",r=!0;return function(a,i,o){var s,l,c,u,d,p=[];for(a=n+a.toString(i),c=0,n="",r&&(65279===a.charCodeAt(0)&&c++,r=void 0);c<a.length;){if(Wt.lastIndex=c,u=(s=Wt.exec(a))&&void 0!==s.index?s.index:a.length,d=a.charCodeAt(u),!s){n=a.slice(c);break}if(10===d&&c===u&&e)p.push(-3),e=void 0;else switch(e&&(p.push(-5),e=void 0),c<u&&(p.push(a.slice(c,u)),t+=u-c),d){case 0:p.push(65533),t++;break;case 9:for(l=4*Math.ceil(t/4),p.push(-2);t++<l;)p.push(-1);break;case 10:p.push(-4),t=1;break;default:e=!0,t=1}c=u+1}return o&&(e&&p.push(-5),n&&p.push(n),p.push(null)),p}}()(t,n,!0))))};function Jt(e,t){for(var n=-1;++n<t.length;){var r=t[n];Array.isArray(r)?Jt(e,r):en(e,r)}return e}function en(e,t){var n;for(n in t)if(Zt.call(t,n)){var r="canContainEols"===n||"transforms"===n,a=(Zt.call(e,n)?e[n]:void 0)||(e[n]=r?[]:{}),i=t[n];i&&(r?e[n]=[].concat(p(a),p(i)):Object.assign(a,i))}}function tn(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+R({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+R({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+R({start:t.start,end:t.end})+") is still open")}var nn=function(e){var t=this;Object.assign(this,{Parser:function(n){var r=t.data("settings");return Qt(n,Object.assign({},r,e,{extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]}))}})};function rn(e){for(var t=[],n=-1,r=0,a=0;++n<e.length;){var i=e.charCodeAt(n),o="";if(37===i&&ye(e.charCodeAt(n+1))&&ye(e.charCodeAt(n+2)))a=2;else if(i<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(i))||(o=String.fromCharCode(i));else if(i>55295&&i<57344){var s=e.charCodeAt(n+1);i<56320&&s>56319&&s<57344?(o=String.fromCharCode(i,s),a=1):o="\ufffd"}else o=String.fromCharCode(i);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+a+1,o=""),a&&(n+=a,a=0)}return t.join("")+e.slice(r)}var an=function(e){if(void 0===e||null===e)return ln;if("string"===typeof e)return function(e){return sn(t);function t(t){return t&&t.type===e}}(e);if("object"===typeof e)return Array.isArray(e)?on(e):function(e){return sn(t);function t(t){var n;for(n in e)if(t[n]!==e[n])return!1;return!0}}(e);if("function"===typeof e)return sn(e);throw new Error("Expected function, string, or object as test")};function on(e){for(var t=[],n=-1;++n<e.length;)t[n]=an(e[n]);return sn((function(){for(var e=-1,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];for(;++e<t.length;){var i;if((i=t[e]).call.apply(i,[this].concat(r)))return!0}return!1}))}function sn(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return Boolean(e.call.apply(e,[this].concat(n)))}}function ln(){return!0}var cn=function(e,t,n,r){"function"===typeof t&&"function"!==typeof n&&(r=n,n=t,t=null);var a=an(t),i=r?-1:1;!function e(o,s,l){var c,u="object"===typeof o&&null!==o?o:{};"string"===typeof u.type&&(c="string"===typeof u.tagName?u.tagName:"string"===typeof u.name?u.name:void 0,Object.defineProperty(d,"name",{value:"node ("+u.type+(c?"<"+c+">":"")+")"}));return d;function d(){var c,u,d,p=[];if((!t||a(o,s,l[l.length-1]||null))&&(p=function(e){if(Array.isArray(e))return e;if("number"===typeof e)return[true,e];return[e]}(n(o,l)),false===p[0]))return p;if(o.children&&"skip"!==p[0])for(u=(r?o.children.length:-1)+i,d=l.concat(o);u>-1&&u<o.children.length;){if(c=e(o.children[u],u,d)(),false===c[0])return c;u="number"===typeof c[1]?c[1]:u+i}return p}}(e,null,[])()};var un=function(e,t,n,r){"function"===typeof t&&"function"!==typeof n&&(r=n,n=t,t=null),cn(e,t,(function(e,t){var r=t[t.length-1];return n(e,r?r.children.indexOf(e):null,r)}),r)},dn=mn("start"),pn=mn("end");function mn(e){return function(t){var n=t&&t.position&&t.position[e]||{};return{line:n.line||null,column:n.column||null,offset:n.offset>-1?n.offset:null}}}var gn={}.hasOwnProperty;function hn(e){return String(e||"").toUpperCase()}function fn(e,t){var n,r=String(t.identifier).toUpperCase(),a=rn(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);-1===i?(e.footnoteOrder.push(r),e.footnoteCounts[r]=1,n=e.footnoteOrder.length):(e.footnoteCounts[r]++,n=i+1);var o=e.footnoteCounts[r],s={type:"element",tagName:"a",properties:{href:"#"+e.clobberPrefix+"fn-"+a,id:e.clobberPrefix+"fnref-"+a+(o>1?"-"+o:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(n)}]};e.patch(t,s);var l={type:"element",tagName:"sup",properties:{},children:[s]};return e.patch(t,l),e.applyData(t,l)}function bn(e,t){var n=t.referenceType,r="]";if("collapsed"===n?r+="[]":"full"===n&&(r+="["+(t.label||t.identifier)+"]"),"imageReference"===t.type)return{type:"text",value:"!["+t.alt+r};var a=e.all(t),i=a[0];i&&"text"===i.type?i.value="["+i.value:a.unshift({type:"text",value:"["});var o=a[a.length-1];return o&&"text"===o.type?o.value+=r:a.push({type:"text",value:r}),a}function En(e){var t=e.spread;return void 0===t||null===t?e.children.length>1:t}function yn(e){for(var t=String(e),n=/\r?\n|\r/g,r=n.exec(t),a=0,i=[];r;)i.push(Tn(t.slice(a,r.index),a>0,!0),r[0]),a=r.index+r[0].length,r=n.exec(t);return i.push(Tn(t.slice(a),a>0,!1)),i.join("")}function Tn(e,t,n){var r=0,a=e.length;if(t)for(var i=e.codePointAt(r);9===i||32===i;)r++,i=e.codePointAt(r);if(n)for(var o=e.codePointAt(a-1);9===o||32===o;)a--,o=e.codePointAt(a-1);return a>r?e.slice(r,a):""}var Sn={blockquote:function(e,t){var n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)},break:function(e,t){var n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:"\n"}]},code:function(e,t){var n=t.value?t.value+"\n":"",r=t.lang?t.lang.match(/^[^ \t]+(?=[ \t]|$)/):null,a={};r&&(a.className=["language-"+r]);var i={type:"element",tagName:"code",properties:a,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i={type:"element",tagName:"pre",properties:{},children:[i=e.applyData(t,i)]},e.patch(t,i),i},delete:function(e,t){var n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},emphasis:function(e,t){var n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},footnoteReference:fn,footnote:function(e,t){for(var n=e.footnoteById,r=1;r in n;)r++;var a=String(r);return n[a]={type:"footnoteDefinition",identifier:a,children:[{type:"paragraph",children:t.children}],position:t.position},fn(e,{type:"footnoteReference",identifier:a,position:t.position})},heading:function(e,t){var n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},html:function(e,t){if(e.dangerous){var n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}return null},imageReference:function(e,t){var n=e.definition(t.identifier);if(!n)return bn(e,t);var r={src:rn(n.url||""),alt:t.alt};null!==n.title&&void 0!==n.title&&(r.title=n.title);var a={type:"element",tagName:"img",properties:r,children:[]};return e.patch(t,a),e.applyData(t,a)},image:function(e,t){var n={src:rn(t.url)};null!==t.alt&&void 0!==t.alt&&(n.alt=t.alt),null!==t.title&&void 0!==t.title&&(n.title=t.title);var r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)},inlineCode:function(e,t){var n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);var r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)},linkReference:function(e,t){var n=e.definition(t.identifier);if(!n)return bn(e,t);var r={href:rn(n.url||"")};null!==n.title&&void 0!==n.title&&(r.title=n.title);var a={type:"element",tagName:"a",properties:r,children:e.all(t)};return e.patch(t,a),e.applyData(t,a)},link:function(e,t){var n={href:rn(t.url)};null!==t.title&&void 0!==t.title&&(n.title=t.title);var r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)},listItem:function(e,t,n){var r=e.all(t),a=n?function(e){var t=!1;if("list"===e.type){t=e.spread||!1;for(var n=e.children,r=-1;!t&&++r<n.length;)t=En(n[r])}return t}(n):En(t),i={},o=[];if("boolean"===typeof t.checked){var s,l=r[0];l&&"element"===l.type&&"p"===l.tagName?s=l:(s={type:"element",tagName:"p",properties:{},children:[]},r.unshift(s)),s.children.length>0&&s.children.unshift({type:"text",value:" "}),s.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}for(var c=-1;++c<r.length;){var u=r[c];(a||0!==c||"element"!==u.type||"p"!==u.tagName)&&o.push({type:"text",value:"\n"}),"element"!==u.type||"p"!==u.tagName||a?o.push(u):o.push.apply(o,p(u.children))}var d=r[r.length-1];d&&(a||"element"!==d.type||"p"!==d.tagName)&&o.push({type:"text",value:"\n"});var m={type:"element",tagName:"li",properties:i,children:o};return e.patch(t,m),e.applyData(t,m)},list:function(e,t){var n={},r=e.all(t),a=-1;for("number"===typeof t.start&&1!==t.start&&(n.start=t.start);++a<r.length;){var i=r[a];if("element"===i.type&&"li"===i.tagName&&i.properties&&Array.isArray(i.properties.className)&&i.properties.className.includes("task-list-item")){n.className=["contains-task-list"];break}}var o={type:"element",tagName:t.ordered?"ol":"ul",properties:n,children:e.wrap(r,!0)};return e.patch(t,o),e.applyData(t,o)},paragraph:function(e,t){var n={type:"element",tagName:"p",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},root:function(e,t){var n={type:"root",children:e.wrap(e.all(t))};return e.patch(t,n),e.applyData(t,n)},strong:function(e,t){var n={type:"element",tagName:"strong",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},table:function(e,t){var n=e.all(t),r=n.shift(),a=[];if(r){var i={type:"element",tagName:"thead",properties:{},children:e.wrap([r],!0)};e.patch(t.children[0],i),a.push(i)}if(n.length>0){var o={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},s=dn(t.children[1]),l=pn(t.children[t.children.length-1]);s.line&&l.line&&(o.position={start:s,end:l}),a.push(o)}var c={type:"element",tagName:"table",properties:{},children:e.wrap(a,!0)};return e.patch(t,c),e.applyData(t,c)},tableCell:function(e,t){var n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},tableRow:function(e,t,n){for(var r=n?n.children:void 0,a=0===(r?r.indexOf(t):1)?"th":"td",i=n&&"table"===n.type?n.align:void 0,o=i?i.length:t.children.length,s=-1,l=[];++s<o;){var c=t.children[s],u={},d=i?i[s]:void 0;d&&(u.align=d);var p={type:"element",tagName:a,properties:u,children:[]};c&&(p.children=e.all(c),e.patch(c,p),p=e.applyData(t,p)),l.push(p)}var m={type:"element",tagName:"tr",properties:{},children:e.wrap(l,!0)};return e.patch(t,m),e.applyData(t,m)},text:function(e,t){var n={type:"text",value:yn(String(t.value))};return e.patch(t,n),e.applyData(t,n)},thematicBreak:function(e,t){var n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)},toml:vn,yaml:vn,definition:vn,footnoteDefinition:vn};function vn(){return null}var An={}.hasOwnProperty;function kn(e,t){var n=t||{},r=n.allowDangerousHtml||!1,a={};return o.dangerous=r,o.clobberPrefix=void 0===n.clobberPrefix||null===n.clobberPrefix?"user-content-":n.clobberPrefix,o.footnoteLabel=n.footnoteLabel||"Footnotes",o.footnoteLabelTagName=n.footnoteLabelTagName||"h2",o.footnoteLabelProperties=n.footnoteLabelProperties||{className:["sr-only"]},o.footnoteBackLabel=n.footnoteBackLabel||"Back to content",o.unknownHandler=n.unknownHandler,o.passThrough=n.passThrough,o.handlers=s(s({},Sn),n.handlers),o.definition=function(e){var t=Object.create(null);if(!e||!e.type)throw new Error("mdast-util-definitions expected node");return un(e,"definition",(function(e){var n=hn(e.identifier);n&&!gn.call(t,n)&&(t[n]=e)})),function(e){var n=hn(e);return n&&gn.call(t,n)?t[n]:null}}(e),o.footnoteById=a,o.footnoteOrder=[],o.footnoteCounts={},o.patch=wn,o.applyData=_n,o.one=function(e,t){return Cn(o,e,t)},o.all=function(e){return Nn(o,e)},o.wrap=In,o.augment=i,un(e,"footnoteDefinition",(function(e){var t=String(e.identifier).toUpperCase();An.call(a,t)||(a[t]=e)})),o;function i(e,t){if(e&&"data"in e&&e.data){var n=e.data;n.hName&&("element"!==t.type&&(t={type:"element",tagName:"",properties:{},children:[]}),t.tagName=n.hName),"element"===t.type&&n.hProperties&&(t.properties=s(s({},t.properties),n.hProperties)),"children"in t&&t.children&&n.hChildren&&(t.children=n.hChildren)}if(e){var r="type"in e?e:{position:e};(a=r)&&a.position&&a.position.start&&a.position.start.line&&a.position.start.column&&a.position.end&&a.position.end.line&&a.position.end.column&&(t.position={start:dn(r),end:pn(r)})}var a;return t}function o(e,t,n,r){return Array.isArray(n)&&(r=n,n={}),i(e,{type:"element",tagName:t,properties:n||{},children:r||[]})}}function wn(e,t){var n;e.position&&(t.position={start:dn(n=e),end:pn(n)})}function _n(e,t){var n=t;if(e&&e.data){var r=e.data.hName,a=e.data.hChildren,i=e.data.hProperties;"string"===typeof r&&("element"===n.type?n.tagName=r:n={type:"element",tagName:r,properties:{},children:[]}),"element"===n.type&&i&&(n.properties=s(s({},n.properties),i)),"children"in n&&n.children&&null!==a&&void 0!==a&&(n.children=a)}return n}function Cn(e,t,n){var r=t&&t.type;if(!r)throw new Error("Expected node, got `"+t+"`");return An.call(e.handlers,r)?e.handlers[r](e,t,n):e.passThrough&&e.passThrough.includes(r)?"children"in t?s(s({},t),{},{children:Nn(e,t)}):t:e.unknownHandler?e.unknownHandler(e,t,n):function(e,t){var n=t.data||{},r=!("value"in t)||An.call(n,"hProperties")||An.call(n,"hChildren")?{type:"element",tagName:"div",properties:{},children:Nn(e,t)}:{type:"text",value:t.value};return e.patch(t,r),e.applyData(t,r)}(e,t)}function Nn(e,t){var n=[];if("children"in t)for(var r=t.children,a=-1;++a<r.length;){var i=Cn(e,r[a],t);if(i){if(a&&"break"===r[a-1].type&&(Array.isArray(i)||"text"!==i.type||(i.value=i.value.replace(/^\s+/,"")),!Array.isArray(i)&&"element"===i.type)){var o=i.children[0];o&&"text"===o.type&&(o.value=o.value.replace(/^\s+/,""))}Array.isArray(i)?n.push.apply(n,p(i)):n.push(i)}}return n}function In(e,t){var n=[],r=-1;for(t&&n.push({type:"text",value:"\n"});++r<e.length;)r&&n.push({type:"text",value:"\n"}),n.push(e[r]);return t&&e.length>0&&n.push({type:"text",value:"\n"}),n}function xn(e,t){var n=kn(e,t),r=n.one(e,null),a=function(e){for(var t=[],n=-1;++n<e.footnoteOrder.length;){var r=e.footnoteById[e.footnoteOrder[n]];if(r){for(var a=e.all(r),i=String(r.identifier).toUpperCase(),o=rn(i.toLowerCase()),l=0,c=[];++l<=e.footnoteCounts[i];){var u={type:"element",tagName:"a",properties:{href:"#"+e.clobberPrefix+"fnref-"+o+(l>1?"-"+l:""),dataFootnoteBackref:!0,className:["data-footnote-backref"],ariaLabel:e.footnoteBackLabel},children:[{type:"text",value:"\u21a9"}]};l>1&&u.children.push({type:"element",tagName:"sup",children:[{type:"text",value:String(l)}]}),c.length>0&&c.push({type:"text",value:" "}),c.push(u)}var d=a[a.length-1];if(d&&"element"===d.type&&"p"===d.tagName){var p,m=d.children[d.children.length-1];m&&"text"===m.type?m.value+=" ":d.children.push({type:"text",value:" "}),(p=d.children).push.apply(p,c)}else a.push.apply(a,c);var g={type:"element",tagName:"li",properties:{id:e.clobberPrefix+"fn-"+o},children:e.wrap(a,!0)};e.patch(r,g),t.push(g)}}if(0!==t.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:e.footnoteLabelTagName,properties:s(s({},JSON.parse(JSON.stringify(e.footnoteLabelProperties))),{},{id:"footnote-label"}),children:[{type:"text",value:e.footnoteLabel}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:e.wrap(t,!0)},{type:"text",value:"\n"}]}}(n);return a&&r.children.push({type:"text",value:"\n"},a),Array.isArray(r)?{type:"root",children:r}:r}var Rn=function(e,t){return e&&"run"in e?function(e,t){return function(n,r,a){e.run(xn(n,t),r,(function(e){a(e)}))}}(e,t):function(e){return function(t){return xn(t,e)}}(e||t)};var On=n(2007),Ln=y((function e(t,n,r){b(this,e),this.property=t,this.normal=n,r&&(this.space=r)}));function Pn(e,t){for(var n={},r={},a=-1;++a<e.length;)Object.assign(n,e[a].property),Object.assign(r,e[a].normal);return new Ln(n,r,t)}function Dn(e){return e.toLowerCase()}Ln.prototype.property={},Ln.prototype.normal={},Ln.prototype.space=null;var Mn=y((function e(t,n){b(this,e),this.property=t,this.attribute=n}));Mn.prototype.space=null,Mn.prototype.boolean=!1,Mn.prototype.booleanish=!1,Mn.prototype.overloadedBoolean=!1,Mn.prototype.number=!1,Mn.prototype.commaSeparated=!1,Mn.prototype.spaceSeparated=!1,Mn.prototype.commaOrSpaceSeparated=!1,Mn.prototype.mustUseProperty=!1,Mn.prototype.defined=!1;var Fn=0,Un=jn(),Bn=jn(),Gn=jn(),Hn=jn(),zn=jn(),$n=jn(),Vn=jn();function jn(){return Math.pow(2,++Fn)}var Wn=Object.keys(t),qn=function(e){v(r,e);var n=N(r);function r(e,a,i,o){var s;b(this,r);var l=-1;if(Kn(_(s=n.call(this,e,a)),"space",o),"number"===typeof i)for(;++l<Wn.length;){var c=Wn[l];Kn(_(s),Wn[l],(i&t[c])===t[c])}return s}return y(r)}(Mn);function Kn(e,t,n){n&&(e[t]=n)}qn.prototype.defined=!0;var Xn={}.hasOwnProperty;function Yn(e){var t,n={},r={};for(t in e.properties)if(Xn.call(e.properties,t)){var a=e.properties[t],i=new qn(t,e.transform(e.attributes||{},t),a,e.space);e.mustUseProperty&&e.mustUseProperty.includes(t)&&(i.mustUseProperty=!0),n[t]=i,r[Dn(t)]=t,r[Dn(i.attribute)]=t}return new Ln(n,r,e.space)}var Zn=Yn({space:"xlink",transform:function(e,t){return"xlink:"+t.slice(5).toLowerCase()},properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null}}),Qn=Yn({space:"xml",transform:function(e,t){return"xml:"+t.slice(3).toLowerCase()},properties:{xmlLang:null,xmlBase:null,xmlSpace:null}});function Jn(e,t){return t in e?e[t]:t}function er(e,t){return Jn(e,t.toLowerCase())}var tr=Yn({space:"xmlns",attributes:{xmlnsxlink:"xmlns:xlink"},transform:er,properties:{xmlns:null,xmlnsXLink:null}}),nr=Yn({transform:function(e,t){return"role"===t?t:"aria-"+t.slice(4).toLowerCase()},properties:{ariaActiveDescendant:null,ariaAtomic:Bn,ariaAutoComplete:null,ariaBusy:Bn,ariaChecked:Bn,ariaColCount:Hn,ariaColIndex:Hn,ariaColSpan:Hn,ariaControls:zn,ariaCurrent:null,ariaDescribedBy:zn,ariaDetails:null,ariaDisabled:Bn,ariaDropEffect:zn,ariaErrorMessage:null,ariaExpanded:Bn,ariaFlowTo:zn,ariaGrabbed:Bn,ariaHasPopup:null,ariaHidden:Bn,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:zn,ariaLevel:Hn,ariaLive:null,ariaModal:Bn,ariaMultiLine:Bn,ariaMultiSelectable:Bn,ariaOrientation:null,ariaOwns:zn,ariaPlaceholder:null,ariaPosInSet:Hn,ariaPressed:Bn,ariaReadOnly:Bn,ariaRelevant:null,ariaRequired:Bn,ariaRoleDescription:zn,ariaRowCount:Hn,ariaRowIndex:Hn,ariaRowSpan:Hn,ariaSelected:Bn,ariaSetSize:Hn,ariaSort:null,ariaValueMax:Hn,ariaValueMin:Hn,ariaValueNow:Hn,ariaValueText:null,role:null}}),rr=Yn({space:"html",attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},transform:er,mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:$n,acceptCharset:zn,accessKey:zn,action:null,allow:null,allowFullScreen:Un,allowPaymentRequest:Un,allowUserMedia:Un,alt:null,as:null,async:Un,autoCapitalize:null,autoComplete:zn,autoFocus:Un,autoPlay:Un,capture:Un,charSet:null,checked:Un,cite:null,className:zn,cols:Hn,colSpan:null,content:null,contentEditable:Bn,controls:Un,controlsList:zn,coords:Hn|$n,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Un,defer:Un,dir:null,dirName:null,disabled:Un,download:Gn,draggable:Bn,encType:null,enterKeyHint:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Un,formTarget:null,headers:zn,height:Hn,hidden:Un,high:Hn,href:null,hrefLang:null,htmlFor:zn,httpEquiv:zn,id:null,imageSizes:null,imageSrcSet:null,inputMode:null,integrity:null,is:null,isMap:Un,itemId:null,itemProp:zn,itemRef:zn,itemScope:Un,itemType:zn,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Un,low:Hn,manifest:null,max:null,maxLength:Hn,media:null,method:null,min:null,minLength:Hn,multiple:Un,muted:Un,name:null,nonce:null,noModule:Un,noValidate:Un,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforePrint:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Un,optimum:Hn,pattern:null,ping:zn,placeholder:null,playsInline:Un,poster:null,preload:null,readOnly:Un,referrerPolicy:null,rel:zn,required:Un,reversed:Un,rows:Hn,rowSpan:Hn,sandbox:zn,scope:null,scoped:Un,seamless:Un,selected:Un,shape:null,size:Hn,sizes:null,slot:null,span:Hn,spellCheck:Bn,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Hn,step:null,style:null,tabIndex:Hn,target:null,title:null,translate:null,type:null,typeMustMatch:Un,useMap:null,value:Bn,width:Hn,wrap:null,align:null,aLink:null,archive:zn,axis:null,background:null,bgColor:null,border:Hn,borderColor:null,bottomMargin:Hn,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Un,declare:Un,event:null,face:null,frame:null,frameBorder:null,hSpace:Hn,leftMargin:Hn,link:null,longDesc:null,lowSrc:null,marginHeight:Hn,marginWidth:Hn,noResize:Un,noHref:Un,noShade:Un,noWrap:Un,object:null,profile:null,prompt:null,rev:null,rightMargin:Hn,rules:null,scheme:null,scrolling:Bn,standby:null,summary:null,text:null,topMargin:Hn,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Hn,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:Un,disableRemotePlayback:Un,prefix:null,property:null,results:Hn,security:null,unselectable:null}}),ar=Yn({space:"svg",attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},transform:Jn,properties:{about:Vn,accentHeight:Hn,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Hn,amplitude:Hn,arabicForm:null,ascent:Hn,attributeName:null,attributeType:null,azimuth:Hn,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Hn,by:null,calcMode:null,capHeight:Hn,className:zn,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Hn,diffuseConstant:Hn,direction:null,display:null,dur:null,divisor:Hn,dominantBaseline:null,download:Un,dx:null,dy:null,edgeMode:null,editable:null,elevation:Hn,enableBackground:null,end:null,event:null,exponent:Hn,externalResourcesRequired:null,fill:null,fillOpacity:Hn,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:$n,g2:$n,glyphName:$n,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Hn,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Hn,horizOriginX:Hn,horizOriginY:Hn,id:null,ideographic:Hn,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Hn,k:Hn,k1:Hn,k2:Hn,k3:Hn,k4:Hn,kernelMatrix:Vn,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Hn,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Hn,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Hn,overlineThickness:Hn,paintOrder:null,panose1:null,path:null,pathLength:Hn,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:zn,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Hn,pointsAtY:Hn,pointsAtZ:Hn,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Vn,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Vn,rev:Vn,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Vn,requiredFeatures:Vn,requiredFonts:Vn,requiredFormats:Vn,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Hn,specularExponent:Hn,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Hn,strikethroughThickness:Hn,string:null,stroke:null,strokeDashArray:Vn,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Hn,strokeOpacity:Hn,strokeWidth:null,style:null,surfaceScale:Hn,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Vn,tabIndex:Hn,tableValues:null,target:null,targetX:Hn,targetY:Hn,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Vn,to:null,transform:null,u1:null,u2:null,underlinePosition:Hn,underlineThickness:Hn,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Hn,values:null,vAlphabetic:Hn,vMathematical:Hn,vectorEffect:null,vHanging:Hn,vIdeographic:Hn,version:null,vertAdvY:Hn,vertOriginX:Hn,vertOriginY:Hn,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Hn,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null}}),ir=Pn([Qn,Zn,tr,nr,rr],"html"),or=Pn([Qn,Zn,tr,nr,ar],"svg");function sr(e){if(e.allowedElements&&e.disallowedElements)throw new TypeError("Only one of `allowedElements` and `disallowedElements` should be defined");if(e.allowedElements||e.disallowedElements||e.allowElement)return function(t){un(t,"element",(function(t,n,r){var a,i=r;if(e.allowedElements?a=!e.allowedElements.includes(t.tagName):e.disallowedElements&&(a=e.disallowedElements.includes(t.tagName)),!a&&e.allowElement&&"number"===typeof n&&(a=!e.allowElement(t,n,i)),a&&"number"===typeof n){var o;if(e.unwrapDisallowed&&t.children)(o=i.children).splice.apply(o,[n,1].concat(p(t.children)));else i.children.splice(n,1);return n}}))}}var lr=n(8599);function cr(e){var t=e&&"object"===typeof e&&"text"===e.type?e.value||"":e;return"string"===typeof t&&""===t.replace(/[ \t\n\f\r]/g,"")}var ur=/^data[-\w.:]+$/i,dr=/-[a-z]/g,pr=/[A-Z]/g;function mr(e,t){var n=Dn(t),r=t,a=Mn;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&"data"===n.slice(0,4)&&ur.test(t)){if("-"===t.charAt(4)){var i=t.slice(5).replace(dr,hr);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{var o=t.slice(4);if(!dr.test(o)){var s=o.replace(pr,gr);"-"!==s.charAt(0)&&(s="-"+s),t="data"+s}}a=qn}return new a(r,t)}function gr(e){return"-"+e.toLowerCase()}function hr(e){return e.charAt(1).toUpperCase()}var fr={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"};function br(e){var t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function Er(e){return e.join(" ").trim()}function yr(e){for(var t,n,r=[],a=String(e||""),i=a.indexOf(","),o=0;!t;)-1===i&&(i=a.length,t=!0),!(n=a.slice(o,i).trim())&&t||r.push(n),o=i+1,i=a.indexOf(",",o);return r}function Tr(e,t){var n=t||{};return""===e[e.length-1]&&(e=e.concat("")),e.join((n.padRight?" ":"")+","+(!1===n.padLeft?"":" ")).trim()}var Sr=n(8171),vr=["http","https","mailto","tel"];function Ar(e){var t=(e||"").trim(),n=t.charAt(0);if("#"===n||"/"===n)return t;var r=t.indexOf(":");if(-1===r)return t;for(var a=-1;++a<vr.length;){var i=vr[a];if(r===i.length&&t.slice(0,i.length).toLowerCase()===i)return t}return-1!==(a=t.indexOf("?"))&&r>a||-1!==(a=t.indexOf("#"))&&r>a?t:"javascript:void(0)"}var kr={}.hasOwnProperty,wr=new Set(["table","thead","tbody","tfoot","tr"]);function _r(e,t){for(var n,r=[],a=-1;++a<t.children.length;)"element"===(n=t.children[a]).type?r.push(Cr(e,n,a,t)):"text"===n.type?"element"===t.type&&wr.has(t.tagName)&&cr(n)||r.push(n.value):"raw"!==n.type||e.options.skipHtml||r.push(n.value);return r}function Cr(e,t,n,a){var i,o=e.options,s=void 0===o.transformLinkUri?Ar:o.transformLinkUri,l=e.schema,c=t.tagName,u={},d=l;if("html"===l.space&&"svg"===c&&(d=or,e.schema=d),t.properties)for(i in t.properties)kr.call(t.properties,i)&&Ir(u,i,t.properties[i],e);"ol"!==c&&"ul"!==c||e.listDepth++;var p=_r(e,t);"ol"!==c&&"ul"!==c||e.listDepth--,e.schema=l;var m,g=t.position||{start:{line:null,column:null,offset:null},end:{line:null,column:null,offset:null}},h=o.components&&kr.call(o.components,c)?o.components[c]:c,f="string"===typeof h||h===r.Fragment;if(!lr.isValidElementType(h))throw new TypeError("Component for name `".concat(c,"` not defined or is not renderable"));if(u.key=[c,g.start.line,g.start.column,n].join("-"),"a"===c&&o.linkTarget&&(u.target="function"===typeof o.linkTarget?o.linkTarget(String(u.href||""),t.children,"string"===typeof u.title?u.title:null):o.linkTarget),"a"===c&&s&&(u.href=s(String(u.href||""),t.children,"string"===typeof u.title?u.title:null)),f||"code"!==c||"element"!==a.type||"pre"===a.tagName||(u.inline=!0),f||"h1"!==c&&"h2"!==c&&"h3"!==c&&"h4"!==c&&"h5"!==c&&"h6"!==c||(u.level=Number.parseInt(c.charAt(1),10)),"img"===c&&o.transformImageUri&&(u.src=o.transformImageUri(String(u.src||""),String(u.alt||""),"string"===typeof u.title?u.title:null)),!f&&"li"===c&&"element"===a.type){var b=function(e){var t=-1;for(;++t<e.children.length;){var n=e.children[t];if("element"===n.type&&"input"===n.tagName)return n}return null}(t);u.checked=b&&b.properties?Boolean(b.properties.checked):null,u.index=Nr(a,t),u.ordered="ol"===a.tagName}return f||"ol"!==c&&"ul"!==c||(u.ordered="ol"===c,u.depth=e.listDepth),"td"!==c&&"th"!==c||(u.align&&(u.style||(u.style={}),u.style.textAlign=u.align,delete u.align),f||(u.isHeader="th"===c)),f||"tr"!==c||"element"!==a.type||(u.isHeader=Boolean("thead"===a.tagName)),o.sourcePos&&(u["data-sourcepos"]=[(m=g).start.line,":",m.start.column,"-",m.end.line,":",m.end.column].map(String).join("")),!f&&o.rawSourcePos&&(u.sourcePosition=t.position),!f&&o.includeElementIndex&&(u.index=Nr(a,t),u.siblingCount=Nr(a)),f||(u.node=t),p.length>0?r.createElement(h,u,p):r.createElement(h,u)}function Nr(e,t){for(var n=-1,r=0;++n<e.children.length&&e.children[n]!==t;)"element"===e.children[n].type&&r++;return r}function Ir(e,t,n,r){var a=mr(r.schema,t),i=n;null!==i&&void 0!==i&&i===i&&(Array.isArray(i)&&(i=a.commaSeparated?Tr(i):Er(i)),"style"===a.property&&"string"===typeof i&&(i=function(e){var t={};try{Sr(e,n)}catch(r){}return t;function n(e,n){var r="-ms-"===e.slice(0,4)?"ms-".concat(e.slice(4)):e;t[r.replace(/-([a-z])/g,xr)]=n}}(i)),a.space&&a.property?e[kr.call(fr,a.property)?fr[a.property]:a.property]=i:a.attribute&&(e[a.attribute]=i))}function xr(e,t){return t.toUpperCase()}var Rr={}.hasOwnProperty,Or={plugins:{to:"remarkPlugins",id:"change-plugins-to-remarkplugins"},renderers:{to:"components",id:"change-renderers-to-components"},astPlugins:{id:"remove-buggy-html-in-markdown-parser"},allowDangerousHtml:{id:"remove-buggy-html-in-markdown-parser"},escapeHtml:{id:"remove-buggy-html-in-markdown-parser"},source:{to:"children",id:"change-source-to-children"},allowNode:{to:"allowElement",id:"replace-allownode-allowedtypes-and-disallowedtypes"},allowedTypes:{to:"allowedElements",id:"replace-allownode-allowedtypes-and-disallowedtypes"},disallowedTypes:{to:"disallowedElements",id:"replace-allownode-allowedtypes-and-disallowedtypes"},includeNodeIndex:{to:"includeElementIndex",id:"change-includenodeindex-to-includeelementindex"}};function Lr(e){for(var t in Or)if(Rr.call(Or,t)&&Rr.call(e,t)){var n=Or[t];console.warn("[react-markdown] Warning: please ".concat(n.to?"use `".concat(n.to,"` instead of"):"remove"," `").concat(t,"` (see <").concat("https://github.com/remarkjs/react-markdown/blob/main/changelog.md","#").concat(n.id,"> for more info)")),delete Or[t]}var a=Q().use(nn).use(e.remarkPlugins||[]).use(Rn,s(s({},e.remarkRehypeOptions),{},{allowDangerousHtml:!0})).use(e.rehypePlugins||[]).use(sr,e),i=new $;"string"===typeof e.children?i.value=e.children:void 0!==e.children&&null!==e.children&&console.warn("[react-markdown] Warning: please pass a string as `children` (not: `".concat(e.children,"`)"));var o=a.runSync(a.parse(i),i);if("root"!==o.type)throw new TypeError("Expected a `root` node");var l=r.createElement(r.Fragment,{},_r({options:e,schema:ir,listDepth:0},o));return e.className&&(l=r.createElement("div",{className:e.className},l)),l}function Pr(){return Pr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Pr.apply(this,arguments)}function Dr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Mr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Dr(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Dr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Lr.propTypes={children:On.string,className:On.string,allowElement:On.func,allowedElements:On.arrayOf(On.string),disallowedElements:On.arrayOf(On.string),unwrapDisallowed:On.bool,remarkPlugins:On.arrayOf(On.oneOfType([On.object,On.func,On.arrayOf(On.oneOfType([On.bool,On.string,On.object,On.func,On.arrayOf(On.any)]))])),rehypePlugins:On.arrayOf(On.oneOfType([On.object,On.func,On.arrayOf(On.oneOfType([On.bool,On.string,On.object,On.func,On.arrayOf(On.any)]))])),sourcePos:On.bool,rawSourcePos:On.bool,skipHtml:On.bool,includeElementIndex:On.bool,transformLinkUri:On.oneOfType([On.func,On.bool]),linkTarget:On.oneOfType([On.func,On.string]),transformImageUri:On.func,components:On.object};var Fr={};function Ur(e){if(0===e.length||1===e.length)return e;var t=e.join(".");return Fr[t]||(Fr[t]=function(e){var t=e.length;return 0===t||1===t?e:2===t?[e[0],e[1],"".concat(e[0],".").concat(e[1]),"".concat(e[1],".").concat(e[0])]:3===t?[e[0],e[1],e[2],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0])]:t>=4?[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]:void 0}(e)),Fr[t]}function Br(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=e.filter((function(e){return"token"!==e})),a=Ur(r);return a.reduce((function(e,t){return Mr(Mr({},e),n[t])}),t)}function Gr(e){return e.join(" ")}function Hr(e){var t=e.node,n=e.stylesheet,a=e.style,i=void 0===a?{}:a,o=e.useInlineStyles,s=e.key,l=t.properties,c=t.type,u=t.tagName,d=t.value;if("text"===c)return d;if(u){var p,m=function(e,t){var n=0;return function(r){return n+=1,r.map((function(r,a){return Hr({node:r,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(a)})}))}}(n,o);if(o){var g=Object.keys(n).reduce((function(e,t){return t.split(".").forEach((function(t){e.includes(t)||e.push(t)})),e}),[]),h=l.className&&l.className.includes("token")?["token"]:[],f=l.className&&h.concat(l.className.filter((function(e){return!g.includes(e)})));p=Mr(Mr({},l),{},{className:Gr(f)||void 0,style:Br(l.className,Object.assign({},l.style,i),n)})}else p=Mr(Mr({},l),{},{className:Gr(l.className)});var b=m(t.children);return r.createElement(u,Pr({key:s},p),b)}}var zr=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function $r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Vr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var jr=/\n/g;function Wr(e){var t=e.codeString,n=e.codeStyle,a=e.containerStyle,i=void 0===a?{float:"left",paddingRight:"10px"}:a,o=e.numberStyle,s=void 0===o?{}:o,l=e.startingLineNumber;return r.createElement("code",{style:Object.assign({},n,i)},function(e){var t=e.lines,n=e.startingLineNumber,a=e.style;return t.map((function(e,t){var i=t+n;return r.createElement("span",{key:"line-".concat(t),className:"react-syntax-highlighter-line-number",style:"function"===typeof a?a(i):a},"".concat(i,"\n"))}))}({lines:t.replace(/\n$/,"").split("\n"),style:s,startingLineNumber:l}))}function qr(e,t){return{type:"element",tagName:"span",properties:{key:"line-number--".concat(e),className:["comment","linenumber","react-syntax-highlighter-line-number"],style:t},children:[{type:"text",value:e}]}}function Kr(e,t,n){var r,a={display:"inline-block",minWidth:(r=n,"".concat(r.toString().length,".25em")),paddingRight:"1em",textAlign:"right",userSelect:"none"},i="function"===typeof e?e(t):e;return Vr(Vr({},a),i)}function Xr(e){var t=e.children,n=e.lineNumber,r=e.lineNumberStyle,a=e.largestLineNumber,i=e.showInlineLineNumbers,o=e.lineProps,s=void 0===o?{}:o,l=e.className,c=void 0===l?[]:l,u=e.showLineNumbers,d=e.wrapLongLines,p="function"===typeof s?s(n):s;if(p.className=c,n&&i){var m=Kr(r,n,a);t.unshift(qr(n,m))}return d&u&&(p.style=Vr(Vr({},p.style),{},{display:"flex"})),{type:"element",tagName:"span",properties:p,children:t}}function Yr(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=0;r<e.length;r++){var a=e[r];if("text"===a.type)n.push(Xr({children:[a],className:p(new Set(t))}));else if(a.children){var i=t.concat(a.properties.className);Yr(a.children,i).forEach((function(e){return n.push(e)}))}}return n}function Zr(e,t,n,r,a,i,o,s,l){var c,u=Yr(e.value),d=[],p=-1,m=0;function g(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return Xr({children:e,lineNumber:t,lineNumberStyle:s,largestLineNumber:o,showInlineLineNumbers:a,lineProps:n,className:i,showLineNumbers:r,wrapLongLines:l})}function h(e,t){if(r&&t&&a){var n=Kr(s,t,o);e.unshift(qr(t,n))}return e}function f(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return t||r.length>0?g(e,n,r):h(e,n)}for(var b=function(){var e=u[m],t=e.children[0].value;if(t.match(jr)){var n=t.split("\n");n.forEach((function(t,a){var o=r&&d.length+i,s={type:"text",value:"".concat(t,"\n")};if(0===a){var l=f(u.slice(p+1,m).concat(Xr({children:[s],className:e.properties.className})),o);d.push(l)}else if(a===n.length-1){var c=u[m+1]&&u[m+1].children&&u[m+1].children[0],g={type:"text",value:"".concat(t)};if(c){var h=Xr({children:[g],className:e.properties.className});u.splice(m+1,0,h)}else{var b=f([g],o,e.properties.className);d.push(b)}}else{var E=f([s],o,e.properties.className);d.push(E)}})),p=m}m++};m<u.length;)b();if(p!==u.length-1){var E=u.slice(p+1,u.length);if(E&&E.length){var y=f(E,r&&d.length+i);d.push(y)}}return t?d:(c=[]).concat.apply(c,d)}function Qr(e){var t=e.rows,n=e.stylesheet,r=e.useInlineStyles;return t.map((function(e,t){return Hr({node:e,stylesheet:n,useInlineStyles:r,key:"code-segement".concat(t)})}))}function Jr(e){return e&&"undefined"!==typeof e.highlightAuto}var ea,ta,na=n(9158),ra=(ea=n.n(na)(),ta={'code[class*="language-"]':{color:"black",background:"none",textShadow:"0 1px white",fontFamily:"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace",fontSize:"1em",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",wordWrap:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]':{color:"black",background:"#f5f2f0",textShadow:"0 1px white",fontFamily:"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace",fontSize:"1em",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",wordWrap:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:".5em 0",overflow:"auto"},'pre[class*="language-"]::-moz-selection':{textShadow:"none",background:"#b3d4fc"},'pre[class*="language-"] ::-moz-selection':{textShadow:"none",background:"#b3d4fc"},'code[class*="language-"]::-moz-selection':{textShadow:"none",background:"#b3d4fc"},'code[class*="language-"] ::-moz-selection':{textShadow:"none",background:"#b3d4fc"},'pre[class*="language-"]::selection':{textShadow:"none",background:"#b3d4fc"},'pre[class*="language-"] ::selection':{textShadow:"none",background:"#b3d4fc"},'code[class*="language-"]::selection':{textShadow:"none",background:"#b3d4fc"},'code[class*="language-"] ::selection':{textShadow:"none",background:"#b3d4fc"},':not(pre) > code[class*="language-"]':{background:"#f5f2f0",padding:".1em",borderRadius:".3em",whiteSpace:"normal"},comment:{color:"slategray"},prolog:{color:"slategray"},doctype:{color:"slategray"},cdata:{color:"slategray"},punctuation:{color:"#999"},namespace:{Opacity:".7"},property:{color:"#905"},tag:{color:"#905"},boolean:{color:"#905"},number:{color:"#905"},constant:{color:"#905"},symbol:{color:"#905"},deleted:{color:"#905"},selector:{color:"#690"},"attr-name":{color:"#690"},string:{color:"#690"},char:{color:"#690"},builtin:{color:"#690"},inserted:{color:"#690"},operator:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},entity:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)",cursor:"help"},url:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},".language-css .token.string":{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},".style .token.string":{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},atrule:{color:"#07a"},"attr-value":{color:"#07a"},keyword:{color:"#07a"},function:{color:"#DD4A68"},"class-name":{color:"#DD4A68"},regex:{color:"#e90"},important:{color:"#e90",fontWeight:"bold"},variable:{color:"#e90"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}},function(e){var t=e.language,n=e.children,a=e.style,i=void 0===a?ta:a,o=e.customStyle,s=void 0===o?{}:o,c=e.codeTagProps,u=void 0===c?{className:t?"language-".concat(t):void 0,style:Vr(Vr({},i['code[class*="language-"]']),i['code[class*="language-'.concat(t,'"]')])}:c,d=e.useInlineStyles,p=void 0===d||d,m=e.showLineNumbers,g=void 0!==m&&m,h=e.showInlineLineNumbers,f=void 0===h||h,b=e.startingLineNumber,E=void 0===b?1:b,y=e.lineNumberContainerStyle,T=e.lineNumberStyle,S=void 0===T?{}:T,v=e.wrapLines,A=e.wrapLongLines,k=void 0!==A&&A,w=e.lineProps,_=void 0===w?{}:w,C=e.renderer,N=e.PreTag,I=void 0===N?"pre":N,x=e.CodeTag,R=void 0===x?"code":x,O=e.code,L=void 0===O?(Array.isArray(n)?n[0]:n)||"":O,P=e.astGenerator,D=l(e,zr);P=P||ea;var M=g?r.createElement(Wr,{containerStyle:y,codeStyle:u.style||{},numberStyle:S,startingLineNumber:E,codeString:L}):null,F=i.hljs||i['pre[class*="language-"]']||{backgroundColor:"#fff"},U=Jr(P)?"hljs":"prismjs",B=p?Object.assign({},D,{style:Object.assign({},F,s)}):Object.assign({},D,{className:D.className?"".concat(U," ").concat(D.className):U,style:Object.assign({},s)});if(u.style=Vr(Vr({},u.style),{},k?{whiteSpace:"pre-wrap"}:{whiteSpace:"pre"}),!P)return r.createElement(I,B,M,r.createElement(R,u,L));(void 0===v&&C||k)&&(v=!0),C=C||Qr;var G=[{type:"text",value:L}],H=function(e){var t=e.astGenerator,n=e.language,r=e.code,a=e.defaultCodeValue;if(Jr(t)){var i=function(e,t){return-1!==e.listLanguages().indexOf(t)}(t,n);return"text"===n?{value:a,language:"text"}:i?t.highlight(n,r):t.highlightAuto(r)}try{return n&&"text"!==n?{value:t.highlight(r,n)}:{value:a}}catch(o){return{value:a}}}({astGenerator:P,language:t,code:L,defaultCodeValue:G});null===H.language&&(H.value=G);var z=Zr(H,v,_,g,f,E,H.value.length+E,S,k);return r.createElement(I,B,r.createElement(R,u,!f&&M,C({rows:z,stylesheet:i,useInlineStyles:p})))});ra.supportedLanguages=["abap","abnf","actionscript","ada","agda","al","antlr4","apacheconf","apex","apl","applescript","aql","arduino","arff","asciidoc","asm6502","asmatmel","aspnet","autohotkey","autoit","avisynth","avro-idl","bash","basic","batch","bbcode","bicep","birb","bison","bnf","brainfuck","brightscript","bro","bsl","c","cfscript","chaiscript","cil","clike","clojure","cmake","cobol","coffeescript","concurnas","coq","cpp","crystal","csharp","cshtml","csp","css-extras","css","csv","cypher","d","dart","dataweave","dax","dhall","diff","django","dns-zone-file","docker","dot","ebnf","editorconfig","eiffel","ejs","elixir","elm","erb","erlang","etlua","excel-formula","factor","false","firestore-security-rules","flow","fortran","fsharp","ftl","gap","gcode","gdscript","gedcom","gherkin","git","glsl","gml","gn","go-module","go","graphql","groovy","haml","handlebars","haskell","haxe","hcl","hlsl","hoon","hpkp","hsts","http","ichigojam","icon","icu-message-format","idris","iecst","ignore","inform7","ini","io","j","java","javadoc","javadoclike","javascript","javastacktrace","jexl","jolie","jq","js-extras","js-templates","jsdoc","json","json5","jsonp","jsstacktrace","jsx","julia","keepalived","keyman","kotlin","kumir","kusto","latex","latte","less","lilypond","liquid","lisp","livescript","llvm","log","lolcode","lua","magma","makefile","markdown","markup-templating","markup","matlab","maxscript","mel","mermaid","mizar","mongodb","monkey","moonscript","n1ql","n4js","nand2tetris-hdl","naniscript","nasm","neon","nevod","nginx","nim","nix","nsis","objectivec","ocaml","opencl","openqasm","oz","parigp","parser","pascal","pascaligo","pcaxis","peoplecode","perl","php-extras","php","phpdoc","plsql","powerquery","powershell","processing","prolog","promql","properties","protobuf","psl","pug","puppet","pure","purebasic","purescript","python","q","qml","qore","qsharp","r","racket","reason","regex","rego","renpy","rest","rip","roboconf","robotframework","ruby","rust","sas","sass","scala","scheme","scss","shell-session","smali","smalltalk","smarty","sml","solidity","solution-file","soy","sparql","splunk-spl","sqf","sql","squirrel","stan","stylus","swift","systemd","t4-cs","t4-templating","t4-vb","tap","tcl","textile","toml","tremor","tsx","tt2","turtle","twig","typescript","typoscript","unrealscript","uorazor","uri","v","vala","vbnet","velocity","verilog","vhdl","vim","visual-basic","warpscript","wasm","web-idl","wiki","wolfram","wren","xeora","xml-doc","xojo","xquery","yaml","yang","zig"];for(var aa=ra,ia={'code[class*="language-"]':{color:"#e3eaf2",background:"none",fontFamily:'Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace',textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",wordWrap:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]':{color:"#e3eaf2",background:"#111b27",fontFamily:'Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace',textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",wordWrap:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:"0.5em 0",overflow:"auto"},'pre[class*="language-"]::-moz-selection':{background:"#3c526d"},'pre[class*="language-"] ::-moz-selection':{background:"#3c526d"},'code[class*="language-"]::-moz-selection':{background:"#3c526d"},'code[class*="language-"] ::-moz-selection':{background:"#3c526d"},'pre[class*="language-"]::selection':{background:"#3c526d"},'pre[class*="language-"] ::selection':{background:"#3c526d"},'code[class*="language-"]::selection':{background:"#3c526d"},'code[class*="language-"] ::selection':{background:"#3c526d"},':not(pre) > code[class*="language-"]':{background:"#111b27",padding:"0.1em 0.3em",borderRadius:"0.3em",whiteSpace:"normal"},comment:{color:"#8da1b9"},prolog:{color:"#8da1b9"},doctype:{color:"#8da1b9"},cdata:{color:"#8da1b9"},punctuation:{color:"#e3eaf2"},"delimiter.important":{color:"#66cccc",fontWeight:"inherit"},"selector.parent":{color:"#66cccc"},tag:{color:"#66cccc"},"tag.punctuation":{color:"#66cccc"},"attr-name":{color:"#e6d37a"},boolean:{color:"#e6d37a"},"boolean.important":{color:"#e6d37a"},number:{color:"#e6d37a"},constant:{color:"#e6d37a"},"selector.attribute":{color:"#e6d37a"},"class-name":{color:"#6cb8e6"},key:{color:"#6cb8e6"},parameter:{color:"#6cb8e6"},property:{color:"#6cb8e6"},"property-access":{color:"#6cb8e6"},variable:{color:"#6cb8e6"},"attr-value":{color:"#91d076"},inserted:{color:"#91d076"},color:{color:"#91d076"},"selector.value":{color:"#91d076"},string:{color:"#91d076"},"string.url-link":{color:"#91d076"},builtin:{color:"#f4adf4"},"keyword-array":{color:"#f4adf4"},package:{color:"#f4adf4"},regex:{color:"#f4adf4"},function:{color:"#c699e3"},"selector.class":{color:"#c699e3"},"selector.id":{color:"#c699e3"},"atrule.rule":{color:"#e9ae7e"},combinator:{color:"#e9ae7e"},keyword:{color:"#e9ae7e"},operator:{color:"#e9ae7e"},"pseudo-class":{color:"#e9ae7e"},"pseudo-element":{color:"#e9ae7e"},selector:{color:"#e9ae7e"},unit:{color:"#e9ae7e"},deleted:{color:"#cd6660"},important:{color:"#cd6660",fontWeight:"bold"},"keyword-this":{color:"#6cb8e6",fontWeight:"bold"},this:{color:"#6cb8e6",fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},entity:{cursor:"help"},".language-markdown .token.title":{color:"#6cb8e6",fontWeight:"bold"},".language-markdown .token.title .token.punctuation":{color:"#6cb8e6",fontWeight:"bold"},".language-markdown .token.blockquote.punctuation":{color:"#f4adf4"},".language-markdown .token.code":{color:"#66cccc"},".language-markdown .token.hr.punctuation":{color:"#6cb8e6"},".language-markdown .token.url .token.content":{color:"#91d076"},".language-markdown .token.url-link":{color:"#e6d37a"},".language-markdown .token.list.punctuation":{color:"#f4adf4"},".language-markdown .token.table-header":{color:"#e3eaf2"},".language-json .token.operator":{color:"#e3eaf2"},".language-scss .token.variable":{color:"#66cccc"},"token.tab:not(:empty):before":{color:"#8da1b9"},"token.cr:before":{color:"#8da1b9"},"token.lf:before":{color:"#8da1b9"},"token.space:before":{color:"#8da1b9"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a":{color:"#111b27",background:"#6cb8e6"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button":{color:"#111b27",background:"#6cb8e6"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover":{color:"#111b27",background:"#6cb8e6da",textDecoration:"none"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus":{color:"#111b27",background:"#6cb8e6da",textDecoration:"none"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover":{color:"#111b27",background:"#6cb8e6da",textDecoration:"none"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus":{color:"#111b27",background:"#6cb8e6da",textDecoration:"none"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span":{color:"#111b27",background:"#8da1b9"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover":{color:"#111b27",background:"#8da1b9"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus":{color:"#111b27",background:"#8da1b9"},".line-highlight.line-highlight":{background:"linear-gradient(to right, #3c526d5f 70%, #3c526d55)"},".line-highlight.line-highlight:before":{backgroundColor:"#8da1b9",color:"#111b27",boxShadow:"0 1px #3c526d"},".line-highlight.line-highlight[data-end]:after":{backgroundColor:"#8da1b9",color:"#111b27",boxShadow:"0 1px #3c526d"},"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before":{backgroundColor:"#8da1b918"},".line-numbers.line-numbers .line-numbers-rows":{borderRight:"1px solid #0b121b",background:"#0b121b7a"},".line-numbers .line-numbers-rows > span:before":{color:"#8da1b9da"},".rainbow-braces .token.token.punctuation.brace-level-1":{color:"#e6d37a"},".rainbow-braces .token.token.punctuation.brace-level-5":{color:"#e6d37a"},".rainbow-braces .token.token.punctuation.brace-level-9":{color:"#e6d37a"},".rainbow-braces .token.token.punctuation.brace-level-2":{color:"#f4adf4"},".rainbow-braces .token.token.punctuation.brace-level-6":{color:"#f4adf4"},".rainbow-braces .token.token.punctuation.brace-level-10":{color:"#f4adf4"},".rainbow-braces .token.token.punctuation.brace-level-3":{color:"#6cb8e6"},".rainbow-braces .token.token.punctuation.brace-level-7":{color:"#6cb8e6"},".rainbow-braces .token.token.punctuation.brace-level-11":{color:"#6cb8e6"},".rainbow-braces .token.token.punctuation.brace-level-4":{color:"#c699e3"},".rainbow-braces .token.token.punctuation.brace-level-8":{color:"#c699e3"},".rainbow-braces .token.token.punctuation.brace-level-12":{color:"#c699e3"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)":{backgroundColor:"#cd66601f"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)":{backgroundColor:"#cd66601f"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)":{backgroundColor:"#91d0761f"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)":{backgroundColor:"#91d0761f"},".command-line .command-line-prompt":{borderRight:"1px solid #0b121b"},".command-line .command-line-prompt > span:before":{color:"#8da1b9da"}},oa={tokenize:function(e,t,n){return function(t){return e.consume(t),r};function r(t){return 87===t||119===t?(e.consume(t),a):n(t)}function a(t){return 87===t||119===t?(e.consume(t),i):n(t)}function i(t){return 46===t?(e.consume(t),o):n(t)}function o(e){return null===e||ke(e)?n(e):t(e)}},partial:!0},sa={tokenize:function(e,t,n){var r,a;return i;function i(t){return 38===t?e.check(ua,s,o)(t):46===t||95===t?e.check(ca,s,o)(t):null===t||ve(t)||_e(t)||45!==t&&Ce(t)?s(t):(e.consume(t),i)}function o(t){return 46===t?(a=r,r=void 0,e.consume(t),i):(95===t&&(r=!0),e.consume(t),i)}function s(e){return a||r?n(e):t(e)}},partial:!0},la={tokenize:function(e,t){var n=0;return r;function r(o){return 38===o?e.check(ua,t,a)(o):(40===o&&n++,41===o?e.check(ca,i,a)(o):Ea(o)?t(o):ba(o)?e.check(ca,t,a)(o):(e.consume(o),r))}function a(t){return e.consume(t),r}function i(e){return--n<0?t(e):a(e)}},partial:!0},ca={tokenize:function(e,t,n){return function(t){return e.consume(t),r};function r(a){return ba(a)?(e.consume(a),r):Ea(a)?t(a):n(a)}},partial:!0},ua={tokenize:function(e,t,n){return function(t){return e.consume(t),r};function r(t){return fe(t)?(e.consume(t),r):59===t?(e.consume(t),a):n(t)}function a(e){return Ea(e)?t(e):n(e)}},partial:!0},da={tokenize:function(e,t,n){var r=this;return function(t){if(87!==t&&119!==t||!Ta(r.previous)||Aa(r.events))return n(t);return e.enter("literalAutolink"),e.enter("literalAutolinkWww"),e.check(oa,e.attempt(sa,e.attempt(la,a),n),n)(t)};function a(n){return e.exit("literalAutolinkWww"),e.exit("literalAutolink"),t(n)}},previous:Ta},pa={tokenize:function(e,t,n){var r=this;return function(t){if(72!==t&&104!==t||!Sa(r.previous)||Aa(r.events))return n(t);return e.enter("literalAutolink"),e.enter("literalAutolinkHttp"),e.consume(t),a};function a(t){return 84===t||116===t?(e.consume(t),i):n(t)}function i(t){return 84===t||116===t?(e.consume(t),o):n(t)}function o(t){return 80===t||112===t?(e.consume(t),s):n(t)}function s(t){return 83===t||115===t?(e.consume(t),l):l(t)}function l(t){return 58===t?(e.consume(t),c):n(t)}function c(t){return 47===t?(e.consume(t),u):n(t)}function u(t){return 47===t?(e.consume(t),d):n(t)}function d(t){return null===t||ve(t)||_e(t)||Ce(t)?n(t):e.attempt(sa,e.attempt(la,p),n)(t)}function p(n){return e.exit("literalAutolinkHttp"),e.exit("literalAutolink"),t(n)}},previous:Sa},ma={tokenize:function(e,t,n){var r,a,i=this;return function(t){if(!ya(t)||!va(i.previous)||Aa(i.events))return n(t);return e.enter("literalAutolink"),e.enter("literalAutolinkEmail"),o(t)};function o(t){return ya(t)?(e.consume(t),o):64===t?(e.consume(t),s):n(t)}function s(t){return 46===t?e.check(ca,d,l)(t):45===t||95===t?e.check(ca,n,c)(t):ye(t)?(!a&&be(t)&&(a=!0),e.consume(t),s):d(t)}function l(t){return e.consume(t),r=!0,a=void 0,s}function c(t){return e.consume(t),u}function u(t){return 46===t?e.check(ca,n,l)(t):s(t)}function d(i){return r&&!a?(e.exit("literalAutolinkEmail"),e.exit("literalAutolink"),t(i)):n(i)}},previous:va},ga={},ha={text:ga},fa=48;fa<123;)ga[fa]=ma,58===++fa?fa=65:91===fa&&(fa=97);function ba(e){return 33===e||34===e||39===e||41===e||42===e||44===e||46===e||58===e||59===e||60===e||63===e||95===e||126===e}function Ea(e){return null===e||60===e||Ae(e)}function ya(e){return 43===e||45===e||46===e||95===e||ye(e)}function Ta(e){return null===e||40===e||42===e||95===e||126===e||Ae(e)}function Sa(e){return null===e||!fe(e)}function va(e){return 47!==e&&Sa(e)}function Aa(e){for(var t=e.length,n=!1;t--;){var r=e[t][1];if(("labelLink"===r.type||"labelImage"===r.type)&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}ga[43]=ma,ga[45]=ma,ga[46]=ma,ga[95]=ma,ga[72]=[ma,pa],ga[104]=[ma,pa],ga[87]=[ma,da],ga[119]=[ma,da];var ka={tokenize:function(e,t,n){var r=this;return Ie(e,(function(e){var a=r.events[r.events.length-1];return a&&"gfmFootnoteDefinitionIndent"===a[1].type&&4===a[2].sliceSerialize(a[1],!0).length?t(e):n(e)}),"gfmFootnoteDefinitionIndent",5)},partial:!0};function wa(){var e;return{document:i({},91,{tokenize:Ia,continuation:{tokenize:xa},exit:Ra}),text:(e={},i(e,91,{tokenize:Na}),i(e,93,{add:"after",tokenize:_a,resolveTo:Ca}),e)}}function _a(e,t,n){for(var r,a=this,i=a.events.length,o=a.parser.gfmFootnotes||(a.parser.gfmFootnotes=[]);i--;){var s=a.events[i][1];if("labelImage"===s.type){r=s;break}if("gfmFootnoteCall"===s.type||"labelLink"===s.type||"label"===s.type||"image"===s.type||"link"===s.type)break}return function(i){if(!r||!r._balanced)return n(i);var s=nt(a.sliceSerialize({start:r.end,end:a.now()}));if(94!==s.charCodeAt(0)||!o.includes(s.slice(1)))return n(i);return e.enter("gfmFootnoteCallLabelMarker"),e.consume(i),e.exit("gfmFootnoteCallLabelMarker"),t(i)}}function Ca(e,t){for(var n=e.length;n--;)if("labelImage"===e[n][1].type&&"enter"===e[n][0]){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";var r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},a={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};a.end.column++,a.end.offset++,a.end._bufferIndex++;var i={type:"gfmFootnoteCallString",start:Object.assign({},a.end),end:Object.assign({},e[e.length-1][1].start)},o={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},s=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",a,t],["exit",a,t],["enter",i,t],["enter",o,t],["exit",o,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice.apply(e,[n,e.length-n+1].concat(s)),e}function Na(e,t,n){var r,a=this,i=a.parser.gfmFootnotes||(a.parser.gfmFootnotes=[]),o=0;return function(t){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(t),e.exit("gfmFootnoteCallLabelMarker"),s};function s(t){return 94!==t?n(t):(e.enter("gfmFootnoteCallMarker"),e.consume(t),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",l)}function l(s){var u;return null===s||91===s||o++>999?n(s):93===s?r?(e.exit("chunkString"),u=e.exit("gfmFootnoteCallString"),i.includes(nt(a.sliceSerialize(u)))?function(n){return e.enter("gfmFootnoteCallLabelMarker"),e.consume(n),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t}(s):n(s)):n(s):(e.consume(s),Ae(s)||(r=!0),92===s?c:l)}function c(t){return 91===t||92===t||93===t?(e.consume(t),o++,l):l(t)}}function Ia(e,t,n){var r,a,i=this,o=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]),s=0;return function(t){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionLabelMarker"),l};function l(t){return 94===t?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),c):n(t)}function c(t){var o;return null===t||91===t||s>999?n(t):93===t?a?(o=e.exit("gfmFootnoteDefinitionLabelString"),r=nt(i.sliceSerialize(o)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),p):n(t):ke(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),s++,c):(e.enter("chunkString").contentType="string",u(t))}function u(t){return null===t||ke(t)||91===t||93===t||s>999?(e.exit("chunkString"),c(t)):(Ae(t)||(a=!0),s++,e.consume(t),92===t?d:u)}function d(t){return 91===t||92===t||93===t?(e.consume(t),s++,u):u(t)}function p(t){return 58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),Ie(e,m,"gfmFootnoteDefinitionWhitespace")):n(t)}function m(e){return o.includes(r)||o.push(r),t(e)}}function xa(e,t,n){return e.check(Le,t,e.attempt(ka,t,n))}function Ra(e){e.exit("gfmFootnoteDefinition")}function Oa(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.singleTilde,n={tokenize:a,resolveAll:r};return null!==t&&void 0!==t||(t=!0),{text:i({},126,n),insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){for(var n=-1;++n<e.length;)if("enter"===e[n][0]&&"strikethroughSequenceTemporary"===e[n][1].type&&e[n][1]._close)for(var r=n;r--;)if("exit"===e[r][0]&&"strikethroughSequenceTemporary"===e[r][1].type&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type="strikethroughSequence",e[r][1].type="strikethroughSequence";var a={type:"strikethrough",start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},i={type:"strikethroughText",start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[["enter",a,t],["enter",e[r][1],t],["exit",e[r][1],t],["enter",i,t]];ue(o,o.length,0,je(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),ue(o,o.length,0,[["exit",i,t],["enter",e[n][1],t],["exit",e[n][1],t],["exit",a,t]]),ue(e,r-1,n-r+3,o),n=r+o.length-2;break}for(n=-1;++n<e.length;)"strikethroughSequenceTemporary"===e[n][1].type&&(e[n][1].type="data");return e}function a(e,n,r){var a=this.previous,i=this.events,o=0;return function(t){if(126===a&&"characterEscape"!==i[i.length-1][1].type)return r(t);return e.enter("strikethroughSequenceTemporary"),s(t)};function s(i){var l=kt(a);if(126===i)return o>1?r(i):(e.consume(i),o++,s);if(o<2&&!t)return r(i);var c=e.exit("strikethroughSequenceTemporary"),u=kt(i);return c._open=!u||2===u&&Boolean(l),c._close=!l||2===l&&Boolean(u),n(i)}}}var La={flow:{null:{tokenize:function(e,t,n){var r,a,i=this,o=[],s=0;return function(t){if(e.enter("table")._align=o,e.enter("tableHead"),e.enter("tableRow"),124===t)return l(t);return s++,e.enter("temporaryTableCellContent"),d(t)};function l(t){return e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),r=!0,c}function c(t){return null===t||ke(t)?function(t){if(null===t)return n(t);e.exit("tableRow"),e.exit("tableHead");var r=i.interrupt;return i.interrupt=!0,e.attempt({tokenize:N,partial:!0},(function(t){return i.interrupt=r,e.enter("tableDelimiterRow"),m(t)}),(function(e){return i.interrupt=r,n(e)}))(t)}(t):we(t)?(e.enter("whitespace"),e.consume(t),u):(r&&(r=void 0,s++),124===t?l(t):(e.enter("temporaryTableCellContent"),d(t)))}function u(t){return we(t)?(e.consume(t),u):(e.exit("whitespace"),c(t))}function d(t){return null===t||124===t||Ae(t)?(e.exit("temporaryTableCellContent"),c(t)):(e.consume(t),92===t?p:d)}function p(t){return 92===t||124===t?(e.consume(t),d):d(t)}function m(t){return null===t||ke(t)?E(t):we(t)?(e.enter("whitespace"),e.consume(t),g):45===t?(e.enter("tableDelimiterFiller"),e.consume(t),a=!0,o.push("none"),h):58===t?(e.enter("tableDelimiterAlignment"),e.consume(t),e.exit("tableDelimiterAlignment"),o.push("left"),f):124===t?(e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),m):n(t)}function g(t){return we(t)?(e.consume(t),g):(e.exit("whitespace"),m(t))}function h(t){return 45===t?(e.consume(t),h):(e.exit("tableDelimiterFiller"),58===t?(e.enter("tableDelimiterAlignment"),e.consume(t),e.exit("tableDelimiterAlignment"),o[o.length-1]="left"===o[o.length-1]?"center":"right",b):m(t))}function f(t){return 45===t?(e.enter("tableDelimiterFiller"),e.consume(t),a=!0,h):n(t)}function b(t){return null===t||ke(t)?E(t):we(t)?(e.enter("whitespace"),e.consume(t),g):124===t?(e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),m):n(t)}function E(t){return e.exit("tableDelimiterRow"),a&&s===o.length?null===t?y(t):e.check(Pa,y,e.attempt({tokenize:N,partial:!0},Ie(e,T,"linePrefix",4),y))(t):n(t)}function y(n){return e.exit("table"),t(n)}function T(t){return e.enter("tableBody"),S(t)}function S(t){return e.enter("tableRow"),124===t?v(t):(e.enter("temporaryTableCellContent"),w(t))}function v(t){return e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),A}function A(t){return null===t||ke(t)?function(t){if(e.exit("tableRow"),null===t)return C(t);return e.check(Pa,C,e.attempt({tokenize:N,partial:!0},Ie(e,S,"linePrefix",4),C))(t)}(t):we(t)?(e.enter("whitespace"),e.consume(t),k):124===t?v(t):(e.enter("temporaryTableCellContent"),w(t))}function k(t){return we(t)?(e.consume(t),k):(e.exit("whitespace"),A(t))}function w(t){return null===t||124===t||Ae(t)?(e.exit("temporaryTableCellContent"),A(t)):(e.consume(t),92===t?_:w)}function _(t){return 92===t||124===t?(e.consume(t),w):w(t)}function C(t){return e.exit("tableBody"),y(t)}function N(e,t,n){return function(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Ie(e,r,"linePrefix")};function r(r){if(i.parser.lazy[i.now().line]||null===r||ke(r))return n(r);var a=i.events[i.events.length-1];return!i.parser.constructs.disable.null.includes("codeIndented")&&a&&"linePrefix"===a[1].type&&a[2].sliceSerialize(a[1],!0).length>=4?n(r):(i._gfmTableDynamicInterruptHack=!0,e.check(i.parser.constructs.flow,(function(e){return i._gfmTableDynamicInterruptHack=!1,n(e)}),(function(e){return i._gfmTableDynamicInterruptHack=!1,t(e)}))(r))}}},resolve:function(e,t){var n,r,a,i,o,s,l,c=-1;for(;++c<e.length;){var u=e[c][1];if(a&&("temporaryTableCellContent"===u.type&&(i=i||c,o=c),("tableCellDivider"===u.type||"tableRow"===u.type)&&o)){var d={type:"tableContent",start:e[i][1].start,end:e[o][1].end},p={type:"chunkText",start:d.start,end:d.end,contentType:"text"};e.splice(i,o-i+1,["enter",d,t],["enter",p,t],["exit",p,t],["exit",d,t]),c-=o-i-3,i=void 0,o=void 0}if("exit"===e[c][0]&&void 0!==s&&s+(l?0:1)<c&&("tableCellDivider"===u.type||"tableRow"===u.type&&(s+3<c||"whitespace"!==e[s][1].type))){var m={type:r?"tableDelimiter":n?"tableHeader":"tableData",start:e[s][1].start,end:e[c][1].end};e.splice(c+("tableCellDivider"===u.type?1:0),0,["exit",m,t]),e.splice(s,0,["enter",m,t]),s=(c+=2)+1,l=!0}"tableRow"===u.type&&(a="enter"===e[c][0])&&(s=c+1,l=!1),"tableDelimiterRow"===u.type&&(r="enter"===e[c][0])&&(s=c+1,l=!1),"tableHead"===u.type&&(n="enter"===e[c][0])}return e}}}},Pa={tokenize:function(e,t,n){var r=0;return function(t){return e.enter("check"),e.consume(t),a};function a(i){return-1===i||32===i?(e.consume(i),4===++r?t:a):null===i||Ae(i)?t(i):n(i)}},partial:!0};var Da={tokenize:function(e,t,n){var r=this;return function(t){if(null!==r.previous||!r._gfmTasklistFirstContentOfListItem)return n(t);return e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(t),e.exit("taskListCheckMarker"),a};function a(t){return Ae(t)?(e.enter("taskListCheckValueUnchecked"),e.consume(t),e.exit("taskListCheckValueUnchecked"),i):88===t||120===t?(e.enter("taskListCheckValueChecked"),e.consume(t),e.exit("taskListCheckValueChecked"),i):n(t)}function i(r){return 93===r?(e.enter("taskListCheckMarker"),e.consume(r),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),e.check({tokenize:Fa},t,n)):n(r)}}},Ma={text:i({},91,Da)};function Fa(e,t,n){var r=this;return Ie(e,(function(e){var a=r.events[r.events.length-1];return(a&&"whitespace"===a[1].type||ke(e))&&null!==e?t(e):n(e)}),"whitespace")}function Ua(e){return me([ha,wa(),Oa(e),La,Ma])}function Ba(e,t){var n=String(e);if("string"!==typeof t)throw new TypeError("Expected character");for(var r=0,a=n.indexOf(t);-1!==a;)r++,a=n.indexOf(t,a+t.length);return r}var Ga={}.hasOwnProperty,Ha=function(e,t,n,r){var a,i;"string"===typeof t||t instanceof RegExp?(i=[[t,n]],a=r):(i=t,a=n),a||(a={});for(var o=an(a.ignore||[]),s=function(e){var t=[];if("object"!==typeof e)throw new TypeError("Expected array or object as schema");if(Array.isArray(e))for(var n=-1;++n<e.length;)t.push([za(e[n][0]),$a(e[n][1])]);else{var r;for(r in e)Ga.call(e,r)&&t.push([za(r),$a(e[r])])}return t}(i),l=-1;++l<s.length;)cn(e,"text",c);return e;function c(e,t){for(var n,r=-1;++r<t.length;){var a=t[r];if(o(a,n?n.children.indexOf(a):void 0,n))return;n=a}if(n)return function(e,t){var n,r=t[t.length-1],a=s[l][0],i=s[l][1],o=0,c=r.children.indexOf(e),u=!1,d=[];a.lastIndex=0;var m=a.exec(e.value);for(;m;){n=m.index;var g={index:m.index,input:m.input,stack:[].concat(p(t),[e])},h=i.apply(void 0,p(m).concat([g]));if("string"===typeof h&&(h=h.length>0?{type:"text",value:h}:void 0),!1!==h){var f;if(o!==n&&d.push({type:"text",value:e.value.slice(o,n)}),Array.isArray(h))(f=d).push.apply(f,p(h));else h&&d.push(h);o=n+m[0].length,u=!0}if(!a.global)break;m=a.exec(e.value)}if(u){var b;o<e.value.length&&d.push({type:"text",value:e.value.slice(o)}),(b=r.children).splice.apply(b,[c,1].concat(p(d)))}else d=[e];return c+d.length}(e,t)}};function za(e){return"string"===typeof e?new RegExp(function(e){if("string"!==typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}(e),"g"):e}function $a(e){return"function"===typeof e?e:function(){return e}}var Va="phrasing",ja=["autolink","link","image","label"],Wa={transforms:[function(e){Ha(e,[[/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi,Xa],[/([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/g,Ya]],{ignore:["link","linkReference"]})}],enter:{literalAutolink:function(e){this.enter({type:"link",title:null,url:"",children:[]},e)},literalAutolinkEmail:Ka,literalAutolinkHttp:Ka,literalAutolinkWww:Ka},exit:{literalAutolink:function(e){this.exit(e)},literalAutolinkEmail:function(e){this.config.exit.autolinkEmail.call(this,e)},literalAutolinkHttp:function(e){this.config.exit.autolinkProtocol.call(this,e)},literalAutolinkWww:function(e){this.config.exit.data.call(this,e),this.stack[this.stack.length-1].url="http://"+this.sliceSerialize(e)}}},qa={unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:Va,notInConstruct:ja},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:Va,notInConstruct:ja},{character:":",before:"[ps]",after:"\\/",inConstruct:Va,notInConstruct:ja}]};function Ka(e){this.config.enter.autolinkProtocol.call(this,e)}function Xa(e,t,n,r,a){var i="";if(!Za(a))return!1;if(/^w/i.test(t)&&(n=t+n,t="",i="http://"),!function(e){var t=e.split(".");if(t.length<2||t[t.length-1]&&(/_/.test(t[t.length-1])||!/[a-zA-Z\d]/.test(t[t.length-1]))||t[t.length-2]&&(/_/.test(t[t.length-2])||!/[a-zA-Z\d]/.test(t[t.length-2])))return!1;return!0}(n))return!1;var o=function(e){var t,n,r,a,i=/[!"&'),.:;<>?\]}]+$/.exec(e);if(i)for(e=e.slice(0,i.index),t=(a=i[0]).indexOf(")"),n=Ba(e,"("),r=Ba(e,")");-1!==t&&n>r;)e+=a.slice(0,t+1),t=(a=a.slice(t+1)).indexOf(")"),r++;return[e,a]}(n+r);if(!o[0])return!1;var s={type:"link",title:null,url:i+t+o[0],children:[{type:"text",value:t+o[0]}]};return o[1]?[s,{type:"text",value:o[1]}]:s}function Ya(e,t,n,r){return!(!Za(r,!0)||/[_-\d]$/.test(n))&&{type:"link",title:null,url:"mailto:"+t+"@"+n,children:[{type:"text",value:t+"@"+n}]}}function Za(e,t){var n=e.input.charCodeAt(e.index-1);return(0===e.index||_e(n)||Ce(n))&&(!t||47!==n)}function Qa(e){return e.label||!e.identifier?e.label||"":Xt(e.identifier)}function Ja(e){var t=e||{},n=t.now||{},r=t.lineShift||0,a=n.line||1,i=n.column||1;return{move:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.split(/\r?\n|\r/g),n=t[t.length-1];return a+=t.length-1,i=1===t.length?i+n.length:1+n.length+r,e},current:function(){return{now:{line:a,column:i},lineShift:r}},shift:function(e){r+=e}}}function ei(e,t,n){var r=t.indexStack,a=e.children||[],i=Ja(n),o=[],l=-1;for(r.push(-1);++l<a.length;){var c=a[l];r[r.length-1]=l,o.push(i.move(t.handle(c,e,t,s({before:"\n",after:"\n"},i.current())))),"list"!==c.type&&(t.bulletLastUsed=void 0),l<a.length-1&&o.push(i.move(u(c,a[l+1])))}return r.pop(),o.join("");function u(n,r){for(var a=t.join.length;a--;){var i=t.join[a](n,r,e,t);if(!0===i||1===i)break;if("number"===typeof i)return"\n".repeat(1+i);if(!1===i)return"\n\n\x3c!----\x3e\n\n"}return"\n\n"}}var ti=/\r?\n|\r/g;function ni(e,t){for(var n,r=[],a=0,i=0;n=ti.exec(e);)o(e.slice(a,n.index)),r.push(n[0]),a=n.index+n[0].length,i++;return o(e.slice(a)),r.join("");function o(e){r.push(t(e,i,!e))}}function ri(e){if(!e._compiled){var t=(e.atBreak?"[\\r\\n][\\t ]*":"")+(e.before?"(?:"+e.before+")":"");e._compiled=new RegExp((t?"("+t+")":"")+(/[|\\{}()[\]^$+*?.-]/.test(e.character)?"\\":"")+e.character+(e.after?"(?:"+e.after+")":""),"g")}return e._compiled}function ai(e,t){return ii(e,t.inConstruct,!0)&&!ii(e,t.notInConstruct,!1)}function ii(e,t,n){if(!t)return n;"string"===typeof t&&(t=[t]);for(var r=-1;++r<t.length;)if(e.includes(t[r]))return!0;return!1}function oi(e,t,n){for(var r=(n.before||"")+(t||"")+(n.after||""),a=[],i=[],o={},s=-1;++s<e.unsafe.length;){var l=e.unsafe[s];if(ai(e.stack,l))for(var c=ri(l),u=void 0;u=c.exec(r);){var d="before"in l||Boolean(l.atBreak),p="after"in l,m=u.index+(d?u[1].length:0);a.includes(m)?(o[m].before&&!d&&(o[m].before=!1),o[m].after&&!p&&(o[m].after=!1)):(a.push(m),o[m]={before:d,after:p})}}a.sort(si);var g=n.before?n.before.length:0,h=r.length-(n.after?n.after.length:0);for(s=-1;++s<a.length;){var f=a[s];f<g||f>=h||(f+1<h&&a[s+1]===f+1&&o[f].after&&!o[f+1].before&&!o[f+1].after||a[s-1]===f-1&&o[f].before&&!o[f-1].before&&!o[f-1].after||(g!==f&&i.push(li(r.slice(g,f),"\\")),g=f,!/[!-/:-@[-`{-~]/.test(r.charAt(f))||n.encode&&n.encode.includes(r.charAt(f))?(i.push("&#x"+r.charCodeAt(f).toString(16).toUpperCase()+";"),g++):i.push("\\")))}return i.push(li(r.slice(g,h),n.after)),i.join("")}function si(e,t){return e-t}function li(e,t){for(var n,r=/\\(?=[!-/:-@[-`{-~])/g,a=[],i=[],o=e+t,s=-1,l=0;n=r.exec(o);)a.push(n.index);for(;++s<a.length;)l!==a[s]&&i.push(e.slice(l,a[s])),i.push("\\"),l=a[s];return i.push(e.slice(l)),i.join("")}function ci(){return e.peek=function(){return"["},{unsafe:[{character:"[",inConstruct:["phrasing","label","reference"]}],handlers:{footnoteDefinition:function(e,t,n,r){var a=Ja(r),i=a.move("[^"),o=n.enter("footnoteDefinition"),l=n.enter("label");return i+=a.move(oi(n,Qa(e),s(s({},a.current()),{},{before:i,after:"]"}))),l(),i+=a.move("]:"+(e.children&&e.children.length>0?" ":"")),a.shift(4),i+=a.move(ni(ei(e,n,a.current()),(function(e,t,n){if(t)return(n?"":"    ")+e;return e}))),o(),i},footnoteReference:e}};function e(e,t,n,r){var a=Ja(r),i=a.move("[^"),o=n.enter("footnoteReference"),l=n.enter("reference");return i+=a.move(oi(n,Qa(e),s(s({},a.current()),{},{before:i,after:"]"}))),l(),o(),i+=a.move("]")}}function ui(e,t,n){var r=t.indexStack,a=e.children||[],i=[],o=-1,l=n.before;r.push(-1);for(var c=Ja(n);++o<a.length;){var u=a[o],d=void 0;if(r[r.length-1]=o,o+1<a.length){var p=t.handle.handlers[a[o+1].type];p&&p.peek&&(p=p.peek),d=p?p(a[o+1],e,t,s({before:"",after:""},c.current())).charAt(0):""}else d=n.after;i.length>0&&("\r"===l||"\n"===l)&&"html"===u.type&&(i[i.length-1]=i[i.length-1].replace(/(\r?\n|\r)$/," "),l=" ",(c=Ja(n)).move(i.join(""))),i.push(c.move(t.handle(u,e,t,s(s({},c.current()),{},{before:l,after:d})))),l=i[i.length-1].slice(-1)}return r.pop(),i.join("")}var di={canContainEols:["delete"],enter:{strikethrough:function(e){this.enter({type:"delete",children:[]},e)}},exit:{strikethrough:function(e){this.exit(e)}}},pi={unsafe:[{character:"~",inConstruct:"phrasing"}],handlers:{delete:mi}};function mi(e,t,n,r){var a=Ja(r),i=n.enter("emphasis"),o=a.move("~~");return o+=ui(e,n,s(s({},a.current()),{},{before:o,after:"~"})),o+=a.move("~~"),i(),o}function gi(e,t,n){for(var r=e.value||"",a="`",i=-1;new RegExp("(^|[^`])"+a+"([^`]|$)").test(r);)a+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i<n.unsafe.length;){var o=n.unsafe[i],s=ri(o),l=void 0;if(o.atBreak)for(;l=s.exec(r);){var c=l.index;10===r.charCodeAt(c)&&13===r.charCodeAt(c-1)&&c--,r=r.slice(0,c)+" "+r.slice(l.index+1)}}return a+r+a}function hi(e){return null===e||void 0===e?"":String(e)}function fi(e){return e.length}function bi(e){var t="string"===typeof e?e.codePointAt(0):0;return 67===t||99===t?99:76===t||108===t?108:82===t||114===t?114:0}mi.peek=function(){return"~"},gi.peek=function(){return"`"};var Ei={enter:{table:function(e){var t=e._align;this.enter({type:"table",align:t.map((function(e){return"none"===e?null:e})),children:[]},e),this.setData("inTable",!0)},tableData:Ti,tableHeader:Ti,tableRow:function(e){this.enter({type:"tableRow",children:[]},e)}},exit:{codeText:function(e){var t=this.resume();this.getData("inTable")&&(t=t.replace(/\\([\\|])/g,Si));this.stack[this.stack.length-1].value=t,this.exit(e)},table:function(e){this.exit(e),this.setData("inTable")},tableData:yi,tableHeader:yi,tableRow:yi}};function yi(e){this.exit(e)}function Ti(e){this.enter({type:"tableCell",children:[]},e)}function Si(e,t){return"|"===t?t:e}function vi(e){var t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,a=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:"\n",inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[\t :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{table:function(e,t,n,r){return l(function(e,t,n){var r=e.children,a=-1,i=[],o=t.enter("table");for(;++a<r.length;)i[a]=c(r[a],t,n);return o(),i}(e,n,r),e.align)},tableRow:function(e,t,n,r){var a=l([c(e,n,r)]);return a.slice(0,a.indexOf("\n"))},tableCell:o,inlineCode:function(e,t,n){var r=gi(e,0,n);n.stack.includes("tableCell")&&(r=r.replace(/\|/g,"\\$&"));return r}}};function o(e,t,n,r){var a=n.enter("tableCell"),o=n.enter("phrasing"),l=ui(e,n,s(s({},r),{},{before:i,after:i}));return o(),a(),l}function l(e,t){return function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(t.align||[]).concat(),r=t.stringLength||fi,a=[],i=[],o=[],s=[],l=0,c=-1;++c<e.length;){var u=[],d=[],p=-1;for(e[c].length>l&&(l=e[c].length);++p<e[c].length;){var m=hi(e[c][p]);if(!1!==t.alignDelimiters){var g=r(m);d[p]=g,(void 0===s[p]||g>s[p])&&(s[p]=g)}u.push(m)}i[c]=u,o[c]=d}var h=-1;if("object"===typeof n&&"length"in n)for(;++h<l;)a[h]=bi(n[h]);else for(var f=bi(n);++h<l;)a[h]=f;h=-1;for(var b=[],E=[];++h<l;){var y=a[h],T="",S="";99===y?(T=":",S=":"):108===y?T=":":114===y&&(S=":");var v=!1===t.alignDelimiters?1:Math.max(1,s[h]-T.length-S.length),A=T+"-".repeat(v)+S;!1!==t.alignDelimiters&&((v=T.length+v+S.length)>s[h]&&(s[h]=v),E[h]=v),b[h]=A}i.splice(1,0,b),o.splice(1,0,E),c=-1;for(var k=[];++c<i.length;){var w=i[c],_=o[c];h=-1;for(var C=[];++h<l;){var N=w[h]||"",I="",x="";if(!1!==t.alignDelimiters){var R=s[h]-(_[h]||0),O=a[h];114===O?I=" ".repeat(R):99===O?R%2?(I=" ".repeat(R/2+.5),x=" ".repeat(R/2-.5)):x=I=" ".repeat(R/2):x=" ".repeat(R)}!1===t.delimiterStart||h||C.push("|"),!1===t.padding||!1===t.alignDelimiters&&""===N||!1===t.delimiterStart&&!h||C.push(" "),!1!==t.alignDelimiters&&C.push(I),C.push(N),!1!==t.alignDelimiters&&C.push(x),!1!==t.padding&&C.push(" "),!1===t.delimiterEnd&&h===l-1||C.push("|")}k.push(!1===t.delimiterEnd?C.join("").replace(/ +$/,""):C.join(""))}return k.join("\n")}(e,{align:t,alignDelimiters:r,padding:n,stringLength:a})}function c(e,t,n){for(var r=e.children,a=-1,i=[],s=t.enter("tableRow");++a<r.length;)i[a]=o(r[a],0,t,n);return s(),i}}function Ai(e,t,n,r){var a=function(e){var t=e.options.listItemIndent||"tab";if(1===t||"1"===t)return"one";if("tab"!==t&&"one"!==t&&"mixed"!==t)throw new Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}(n),i=n.bulletCurrent||function(e){var t=e.options.bullet||"*";if("*"!==t&&"+"!==t&&"-"!==t)throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}(n);t&&"list"===t.type&&t.ordered&&(i=("number"===typeof t.start&&t.start>-1?t.start:1)+(!1===n.options.incrementListMarker?0:t.children.indexOf(e))+i);var o=i.length+1;("tab"===a||"mixed"===a&&(t&&"list"===t.type&&t.spread||e.spread))&&(o=4*Math.ceil(o/4));var s=Ja(r);s.move(i+" ".repeat(o-i.length)),s.shift(o);var l=n.enter("listItem"),c=ni(ei(e,n,s.current()),(function(e,t,n){if(t)return(n?"":" ".repeat(o))+e;return(n?i:i+" ".repeat(o-i.length))+e}));return l(),c}var ki={exit:{taskListCheckValueChecked:_i,taskListCheckValueUnchecked:_i,paragraph:function(e){var t,n=this.stack[this.stack.length-2],r=this.stack[this.stack.length-1],a=n.children,i=r.children[0],o=-1;if(n&&"listItem"===n.type&&"boolean"===typeof n.checked&&i&&"text"===i.type){for(;++o<a.length;){var s=a[o];if("paragraph"===s.type){t=s;break}}t===r&&(i.value=i.value.slice(1),0===i.value.length?r.children.shift():r.position&&i.position&&"number"===typeof i.position.start.offset&&(i.position.start.column++,i.position.start.offset++,r.position.start=Object.assign({},i.position.start)))}this.exit(e)}}},wi={unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:function(e,t,n,r){var a=e.children[0],i="boolean"===typeof e.checked&&a&&"paragraph"===a.type,o="["+(e.checked?"x":" ")+"] ",l=Ja(r);i&&l.move(o);var c=Ai(e,t,n,s(s({},r),l.current()));i&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,(function(e){return e+o})));return c}}};function _i(e){this.stack[this.stack.length-2].checked="taskListCheckValueChecked"===e.type}function Ci(){return[Wa,{enter:{gfmFootnoteDefinition:function(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)},gfmFootnoteDefinitionLabelString:function(){this.buffer()},gfmFootnoteCall:function(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)},gfmFootnoteCallString:function(){this.buffer()}},exit:{gfmFootnoteDefinition:function(e){this.exit(e)},gfmFootnoteDefinitionLabelString:function(e){var t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=nt(this.sliceSerialize(e)).toLowerCase()},gfmFootnoteCall:function(e){this.exit(e)},gfmFootnoteCallString:function(e){var t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=nt(this.sliceSerialize(e)).toLowerCase()}}},di,Ei,ki]}function Ni(e){return{extensions:[qa,ci(),pi,vi(e),wi]}}function Ii(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.data();function n(e,n){(t[e]?t[e]:t[e]=[]).push(n)}n("micromarkExtensions",Ua(e)),n("fromMarkdownExtensions",Ci()),n("toMarkdownExtensions",Ni(e))}var xi=n(8992),Ri=/[#.]/g,Oi=function(e){for(var t,n,r,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"div",i=e||"",o={},s=0;s<i.length;)Ri.lastIndex=s,r=Ri.exec(i),(t=i.slice(s,r?r.index:i.length))&&(n?"#"===n?o.id=t:Array.isArray(o.className)?o.className.push(t):o.className=[t]:a=t,s+=t.length),r&&(n=r[0],s++);return{type:"element",tagName:a,properties:o,children:[]}},Li=new Set(["menu","submit","reset","button"]),Pi={}.hasOwnProperty;function Di(e,t,n){var r=n&&function(e){var t={},n=-1;for(;++n<e.length;)t[e[n].toLowerCase()]=e[n];return t}(n);return function(n,a){for(var i,o,s=-1,l=arguments.length,c=new Array(l>2?l-2:0),u=2;u<l;u++)c[u-2]=arguments[u];if(void 0===n||null===n)i={type:"root",children:[]},c.unshift(a);else if((i=Oi(n,t)).tagName=i.tagName.toLowerCase(),r&&Pi.call(r,i.tagName)&&(i.tagName=r[i.tagName]),Mi(a,i.tagName))for(o in a)Pi.call(a,o)&&Fi(e,i.properties,o,a[o]);else c.unshift(a);for(;++s<c.length;)Ui(i.children,c[s]);return"element"===i.type&&"template"===i.tagName&&(i.content={type:"root",children:i.children},i.children=[]),i}}function Mi(e,t){return null!==e&&void 0!==e&&"object"===typeof e&&!Array.isArray(e)&&("input"===t||!e.type||"string"!==typeof e.type||(!("children"in e)||!Array.isArray(e.children))&&("button"===t?Li.has(e.type.toLowerCase()):!("value"in e)))}function Fi(e,t,n,r){var a,i=mr(e,n),o=-1;if(void 0!==r&&null!==r){if("number"===typeof r){if(Number.isNaN(r))return;a=r}else a="boolean"===typeof r?r:"string"===typeof r?i.spaceSeparated?br(r):i.commaSeparated?yr(r):i.commaOrSpaceSeparated?br(yr(r).join(" ")):Bi(i,i.property,r):Array.isArray(r)?r.concat():"style"===i.property?function(e){var t,n=[];for(t in e)Pi.call(e,t)&&n.push([t,e[t]].join(": "));return n.join("; ")}(r):String(r);if(Array.isArray(a)){for(var s=[];++o<a.length;)s[o]=Bi(i,i.property,a[o]);a=s}"className"===i.property&&Array.isArray(t.className)&&(a=t.className.concat(a)),t[i.property]=a}}function Ui(e,t){var n=-1;if(void 0===t||null===t);else if("string"===typeof t||"number"===typeof t)e.push({type:"text",value:String(t)});else if(Array.isArray(t))for(;++n<t.length;)Ui(e,t[n]);else{if("object"!==typeof t||!("type"in t))throw new Error("Expected node, nodes, or string, got `"+t+"`");"root"===t.type?Ui(e,t.children):e.push(t)}}function Bi(e,t,n){if("string"===typeof n){if(e.number&&n&&!Number.isNaN(Number(n)))return Number(n);if((e.boolean||e.overloadedBoolean)&&(""===n||Dn(n)===Dn(t)))return!0}return n}var Gi=Di(or,"g",["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","solidColor","textArea","textPath"]),Hi=Di(ir,"div");var zi={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},$i={}.hasOwnProperty,Vi={"#document":Wi,"#document-fragment":Wi,"#text":function(e,t){return{type:"text",value:t.value}},"#comment":function(e,t){return{type:"comment",value:t.data}},"#documentType":function(){return{type:"doctype"}}};function ji(e,t){var n,r=e.schema,a=$i.call(Vi,t.nodeName)?Vi[t.nodeName]:qi;"tagName"in t&&(e.schema=t.namespaceURI===zi.svg?or:ir),"childNodes"in t&&(n=function(e,t){var n=-1,r=[];for(;++n<t.length;)r[n]=ji(e,t[n]);return r}(e,t.childNodes));var i=a(e,t,n);if("sourceCodeLocation"in t&&t.sourceCodeLocation&&e.file){var o=function(e,t,n){var r=Ki(n);if("element"===t.type){var a=t.children[t.children.length-1];if(r&&!n.endTag&&a&&a.position&&a.position.end&&(r.end=Object.assign({},a.position.end)),e.verbose){var i,o={};for(i in n.attrs)$i.call(n.attrs,i)&&(o[mr(e.schema,i).property]=Ki(n.attrs[i]));t.data={position:{opening:Ki(n.startTag),closing:n.endTag?Ki(n.endTag):null,properties:o}}}}return r}(e,i,t.sourceCodeLocation);o&&(e.location=!0,i.position=o)}return e.schema=r,i}function Wi(e,t,n){var r={type:"root",children:n,data:{quirksMode:"quirks"===t.mode||"limited-quirks"===t.mode}};if(e.file&&e.location){var a=String(e.file),i=function(e){for(var t=String(e),n=[],r=/\r?\n|\r/g;r.test(t);)n.push(r.lastIndex);return n.push(t.length+1),{toPoint:function(e){var t=-1;if(e>-1&&e<n[n.length-1])for(;++t<n.length;)if(n[t]>e)return{line:t+1,column:e-(n[t-1]||0)+1,offset:e};return{line:void 0,column:void 0,offset:void 0}},toOffset:function(e){var t,r=e&&e.line,a=e&&e.column;return"number"!==typeof r||"number"!==typeof a||Number.isNaN(r)||Number.isNaN(a)||!(r-1 in n)||(t=(n[r-2]||0)+a-1||0),t>-1&&t<n[n.length-1]?t:-1}}}(a);r.position={start:i.toPoint(0),end:i.toPoint(a.length)}}return r}function qi(e,t,n){for(var r="svg"===e.schema.space?Gi:Hi,a=-1,i={};++a<t.attrs.length;){var o=t.attrs[a];i[(o.prefix?o.prefix+":":"")+o.name]=o.value}var s=r(t.tagName,i,n);if("template"===s.tagName&&"content"in t){var l=t.sourceCodeLocation,c=l&&l.startTag&&Ki(l.startTag),u=l&&l.endTag&&Ki(l.endTag),d=ji(e,t.content);c&&u&&e.file&&(d.position={start:c.end,end:u.start}),s.content=d}return s}function Ki(e){var t=Xi({line:e.startLine,column:e.startCol,offset:e.startOffset}),n=Xi({line:e.endLine,column:e.endCol,offset:e.endOffset});return t||n?{start:t,end:n}:null}function Xi(e){return e.line&&e.column?e:null}function Yi(e){return"messages"in e}var Zi=n(6426),Qi=zi,Ji=fr,eo={}.hasOwnProperty,to=an("root"),no=an("element"),ro=an("text");function ao(e,t,n){if("function"!==typeof e)throw new TypeError("h is not a function");var r,a,i=function(e){var t=e("div",{});return Boolean(t&&("_owner"in t||"_store"in t)&&(void 0===t.key||null===t.key))}(e),o=function(e){var t=e("div",{});return Boolean(t&&t.context&&t.context._isVue)}(e),s=function(e){return"VirtualNode"===e("div",{}).type}(e);if("string"===typeof n||"boolean"===typeof n?(r=n,n={}):(n||(n={}),r=n.prefix),to(t))a=1===t.children.length&&no(t.children[0])?t.children[0]:{type:"element",tagName:"div",properties:{},children:t.children};else{if(!no(t))throw new Error("Expected root or element, not `"+(t&&t.type||t)+"`");a=t}return io(e,a,{schema:"svg"===n.space?or:ir,prefix:void 0===r||null===r?i||o||s?"h-":null:"string"===typeof r?r:r?"h-":null,key:0,react:i,vue:o,vdom:s,hyperscript:so(e)})}function io(e,t,n){var r,a=n.schema,i=a,o=t.tagName,s={},l=[],c=-1;for(r in"html"===a.space&&"svg"===o.toLowerCase()&&(i=or,n.schema=i),t.properties)t.properties&&eo.call(t.properties,r)&&oo(s,r,t.properties[r],n,o);if(n.vdom&&("html"===i.space?o=o.toUpperCase():i.space&&(s.namespace=Qi[i.space])),n.prefix&&(n.key++,s.key=n.prefix+n.key),t.children)for(;++c<t.children.length;){var u=t.children[c];no(u)?l.push(io(e,u,n)):ro(u)&&l.push(u.value)}return n.schema=a,l.length>0?e.call(t,o,s,l):e.call(t,o,s)}function oo(e,t,n,r,a){var o,s=mr(r.schema,t);void 0===n||null===n||"number"===typeof n&&Number.isNaN(n)||!1===n&&(r.vue||r.vdom||r.hyperscript)||!n&&s.boolean&&(r.vue||r.vdom||r.hyperscript)||(Array.isArray(n)&&(n=s.commaSeparated?Tr(n):Er(n)),s.boolean&&r.hyperscript&&(n=""),"style"===s.property&&"string"===typeof n&&(r.react||r.vue||r.vdom)&&(n=function(e,t){var n={};try{Zi(e,(function(e,t){"-ms-"===e.slice(0,4)&&(e="ms-"+e.slice(4)),n[e.replace(/-([a-z])/g,(function(e,t){return t.toUpperCase()}))]=t}))}catch(r){throw r.message=t+"[style]"+r.message.slice("undefined".length),r}return n}(n,a)),r.vue?"style"!==s.property&&(o="attrs"):s.mustUseProperty||(r.vdom?"style"!==s.property&&(o="attributes"):r.hyperscript&&(o="attrs")),o?e[o]=Object.assign(e[o]||{},i({},s.attribute,n)):s.space&&r.react?e[Ji[s.property]||s.property]=n:e[s.attribute]=n)}function so(e){return"context"in e&&"cleanup"in e}var lo={}.hasOwnProperty;function co(e,t){var n=t||{};function r(t){var n=r.invalid,a=r.handlers;if(t&&lo.call(t,e)&&(n=lo.call(a,t[e])?a[t[e]]:r.unknown),n)return n.apply(this,arguments)}return r.handlers=n.handlers||{},r.invalid=n.invalid,r.unknown=n.unknown,r}var uo={}.hasOwnProperty,po=co("type",{handlers:{root:function(e,t){var n={nodeName:"#document",mode:(e.data||{}).quirksMode?"quirks":"no-quirks",childNodes:[]};return n.childNodes=mo(e.children,n,t),go(e,n)},element:function(e,t){var n=t.space;return ao((function(n,r){var a,i,o,s,l,c=[];for(o in r)uo.call(r,o)&&!1!==r[o]&&((a=mr(t,o)).boolean&&!r[o]||(i={name:o,value:!0===r[o]?"":String(r[o])},a.space&&"html"!==a.space&&"svg"!==a.space&&((s=o.indexOf(":"))<0?i.prefix="":(i.name=o.slice(s+1),i.prefix=o.slice(0,s)),i.namespace=zi[a.space]),c.push(i)));"html"===t.space&&"svg"===e.tagName&&(t=or);(l=go(e,{nodeName:n,tagName:n,attrs:c,namespaceURI:zi[t.space],childNodes:[],parentNode:void 0})).childNodes=mo(e.children,l,t),"template"===n&&(l.content=function(e,t){var n={nodeName:"#document-fragment",childNodes:[]};return n.childNodes=mo(e.children,n,t),go(e,n)}(e.content,t));return l}),Object.assign({},e,{children:[]}),{space:n})},text:function(e){return go(e,{nodeName:"#text",value:e.value,parentNode:void 0})},comment:function(e){return go(e,{nodeName:"#comment",data:e.value,parentNode:void 0})},doctype:function(e){return go(e,{nodeName:"#documentType",name:"html",publicId:"",systemId:"",parentNode:void 0})}}});function mo(e,t,n){var r,a=-1,i=[];if(e)for(;++a<e.length;)(r=po(e[a],n)).parentNode=t,i.push(r);return i}function go(e,t){var n=e.position;return n&&n.start&&n.end&&(t.sourceCodeLocation={startLine:n.start.line,startCol:n.start.column,startOffset:n.start.offset,endLine:n.end.line,endCol:n.end.column,endOffset:n.end.offset}),t}var ho=["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","isindex","keygen","link","menuitem","meta","nextid","param","source","track","wbr"],fo="END_TAG_TOKEN",bo={sourceCodeLocationInfo:!0,scriptingEnabled:!1},Eo=function e(t,n,r){var a,i,o,l,c,u,d=-1,p=new xi(bo),m=co("type",{handlers:{root:function(e){h(e.children)},element:function(e){E(),p._processToken(yo(e),zi.html),h(e.children),ho.includes(e.tagName)||(E(),p._processToken(function(e){var t=Object.assign(vo(e));return t.startTag=Object.assign({},t),{type:fo,tagName:e.tagName,attrs:[],location:t}}(e)))},text:function(e){E(),p._processToken({type:"CHARACTER_TOKEN",chars:e.value,location:vo(e)})},comment:f,doctype:function(e){E(),p._processToken({type:"DOCTYPE_TOKEN",name:"html",forceQuirks:!1,publicId:"",systemId:"",location:vo(e)})},raw:function(e){var t=dn(e),n=t.line||1,r=t.column||1,a=t.offset||0;if(!o)throw new Error("Expected `preprocessor`");if(!i)throw new Error("Expected `tokenizer`");if(!l)throw new Error("Expected `posTracker`");if(!c)throw new Error("Expected `locationTracker`");o.html=void 0,o.pos=-1,o.lastGapPos=-1,o.lastCharPos=-1,o.gapStack=[],o.skipNextNewLine=!1,o.lastChunkWritten=!1,o.endOfChunkHit=!1,l.isEol=!1,l.lineStartPos=1-r,l.droppedBufferSize=a,l.offset=0,l.col=1,l.line=n,c.currentAttrLocation=void 0,c.ctLoc=vo(e),i.write(e.value),p._runParsingLoop(null),("NAMED_CHARACTER_REFERENCE_STATE"===i.state||"NUMERIC_CHARACTER_REFERENCE_END_STATE"===i.state)&&(o.lastChunkWritten=!0,i[i.state](i._consume()))}},unknown:So});if(u=n,Boolean(u&&!("message"in u&&"messages"in u))&&(r=n,n=void 0),r&&r.passThrough)for(;++d<r.passThrough.length;)m.handlers[r.passThrough[d]]=b;var g=function(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Yi(r)?(n=r,t={}):(n=r.file,t=r),ji({schema:"svg"===t.space?or:ir,file:n,verbose:t.verbose,location:!1},e)}(function(e){var t="root"===e.type?e.children[0]:e;return Boolean(t&&("doctype"===t.type||"element"===t.type&&"html"===t.tagName))}(t)?function(){var e=p.treeAdapter.createDocument();if(p._bootstrap(e,void 0),!(i=p.tokenizer))throw new Error("Expected `tokenizer`");return o=i.preprocessor,c=i.__mixins[0],l=c.posTracker,m(t),E(),e}():function(){var e={nodeName:"template",tagName:"template",attrs:[],namespaceURI:zi.html,childNodes:[]},n={nodeName:"documentmock",tagName:"documentmock",attrs:[],namespaceURI:zi.html,childNodes:[]},r={nodeName:"#document-fragment",childNodes:[]};if(p._bootstrap(n,e),p._pushTmplInsertionMode("IN_TEMPLATE_MODE"),p._initTokenizerForFragmentParsing(),p._insertFakeRootElement(),p._resetInsertionMode(),p._findFormInFragmentContext(),!(i=p.tokenizer))throw new Error("Expected `tokenizer`");return o=i.preprocessor,c=i.__mixins[0],l=c.posTracker,m(t),E(),p._adoptNodes(n.childNodes[0],r),r}(),n);return a&&un(g,"comment",(function(e,t,n){var r=e;if(r.value.stitch&&null!==n&&null!==t)return n.children[t]=r.value.stitch,t})),"root"!==t.type&&"root"===g.type&&1===g.children.length?g.children[0]:g;function h(e){var t=-1;if(e)for(;++t<e.length;)m(e[t])}function f(e){E(),p._processToken({type:"COMMENT_TOKEN",data:e.value,location:vo(e)})}function b(t){a=!0,f({type:"comment",value:{stitch:"children"in t?s(s({},t),{},{children:e({type:"root",children:t.children},n,r).children}):s({},t)}})}function E(){if(!i)throw new Error("Expected `tokenizer`");if(!l)throw new Error("Expected `posTracker`");var e=i.currentCharacterToken;e&&(e.location.endLine=l.line,e.location.endCol=l.col+1,e.location.endOffset=l.offset+1,p._processToken(e)),i.tokenQueue=[],i.state="DATA_STATE",i.returnState="",i.charRefCode=-1,i.tempBuff=[],i.lastStartTagName="",i.consumedAfterSnapshot=-1,i.active=!1,i.currentCharacterToken=void 0,i.currentToken=void 0,i.currentAttr=void 0}};function yo(e){var t=Object.assign(vo(e));return t.startTag=Object.assign({},t),{type:"START_TAG_TOKEN",tagName:e.tagName,selfClosing:!1,attrs:To(e),location:t}}function To(e){return function(e,t){return po(e,"svg"===t?or:ir)}({tagName:e.tagName,type:"element",properties:e.properties,children:[]}).attrs}function So(e){throw new Error("Cannot compile `"+e.type+"` node")}function vo(e){var t=dn(e),n=pn(e);return{startLine:t.line,startCol:t.column,startOffset:t.offset,endLine:n.line,endCol:n.column,endOffset:n.offset}}function Ao(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t,n){return Eo(t,n,e)}}var ko=n(184),wo=function(e){return(0,ko.jsxs)("svg",s(s({height:512,style:{enableBackground:"new 0 0 512 512"},viewBox:"0 0 512 512",width:512,xmlSpace:"preserve",xmlns:"http://www.w3.org/2000/svg",role:"img"},e),{},{children:[(0,ko.jsx)("path",{d:"m184.7 413.1 2.1-1.8 156.5-136c5.3-4.6 8.6-11.5 8.6-19.2 0-7.7-3.4-14.6-8.6-19.2L187.1 101l-2.6-2.3C182 97 179 96 175.8 96c-8.7 0-15.8 7.4-15.8 16.6v286.8c0 9.2 7.1 16.6 15.8 16.6 3.3 0 6.4-1.1 8.9-2.9z"}),(0,ko.jsx)("path",{style:{fill:"#fff",strokeWidth:.498539},d:"M171.101 414.868c-4.514-1.611-8.561-5.771-10.18-10.464-.834-2.42-1.217-288.516-.393-293.894.907-5.921 3.926-10.216 8.895-12.657 3.95-1.94 9.155-1.937 12.793.007 3.343 1.785 161.905 139.906 164.376 143.184 3.021 4.01 4.472 8.2 4.757 13.742.186 3.605.037 5.49-.609 7.727-1.173 4.064-3.454 8.202-5.94 10.774-1.146 1.186-37.704 33.115-81.239 70.955-55.39 48.142-79.907 69.15-81.66 69.97-3.43 1.606-7.454 1.85-10.8.656z"})]}))},_o=function(e){return(0,ko.jsxs)("svg",s(s({height:512,style:{enableBackground:"new 0 0 512 512"},viewBox:"0 0 512 512",width:512,xmlSpace:"preserve",xmlns:"http://www.w3.org/2000/svg",role:"img"},e),{},{children:[(0,ko.jsx)("path",{d:"m98.9 184.7 1.8 2.1 136 156.5c4.6 5.3 11.5 8.6 19.2 8.6 7.7 0 14.6-3.4 19.2-8.6L411 187.1l2.3-2.6c1.7-2.5 2.7-5.5 2.7-8.7 0-8.7-7.4-15.8-16.6-15.8H112.6c-9.2 0-16.6 7.1-16.6 15.8 0 3.3 1.1 6.4 2.9 8.9z"}),(0,ko.jsx)("path",{style:{fill:"#fff",strokeWidth:.498539},d:"M248.273 350.336c-4.083-1.397-7.187-3.22-9.662-5.673-1.064-1.054-32.92-37.549-70.793-81.098-48.133-55.35-69.23-79.958-70.096-81.76-1.803-3.758-1.753-8.546.131-12.382 2.335-4.755 6.517-7.824 12.058-8.848 4.16-.769 288.018-.769 292.178 0 5.54 1.024 9.723 4.093 12.058 8.848 1.847 3.762 1.927 9.146.186 12.495-1.265 2.433-139.44 161.51-142.47 164.02-6.161 5.108-16.1 6.96-23.59 4.398z"})]}))},Co=["node","inline","className","children"];function No(e){var t=e.valueToCopy;return(0,ko.jsx)("button",{onClick:function(){return e=t,void navigator.clipboard.writeText(e);var e},children:"Copy"})}var Io=function(){var e,t=h((0,r.useState)(""),2),n=t[0],a=t[1],i=h((0,r.useState)("all"),2),o=i[0],c=i[1],u=h((0,r.useState)([]),2),d=u[0],m=u[1],g=h((0,r.useState)([]),2),b=g[0],E=g[1],y=(0,r.useCallback)((function(e){var t=d.includes(e)?d.filter((function(t){return t!==e})):[].concat(p(d),[e]);m(t)}),[d]),T=(0,r.useCallback)((function(e){var t=b.includes(e)?b.filter((function(t){return t!==e})):[].concat(p(b),[e]);E(t)}),[b]),S=n.length||"all"!==o?function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"all";if("all"===n&&t.length)return e;var r={};if(r.items="all"!==n?e.items.filter((function(e){return e.type===n})):e.items,t.length)return r;var a={};return a.items=t.length?r.items.filter((function(e){return e.title.toLowerCase().includes(t.toLowerCase())||e.content.toLowerCase().includes(t.toLowerCase())})):r.items,a}(f,n,o):f;return(0,ko.jsxs)("div",{className:"App",children:[(0,ko.jsxs)("div",{className:"inputFilter",children:[(0,ko.jsxs)("span",{align:"center",children:[(0,ko.jsx)("input",{type:"text",onChange:function(e){!function(e,t,n){var r,a=this}(a(e.target.value),300)},value:n})," Search"]}),(0,ko.jsxs)("span",{align:"center",children:[" \udb40\udc5d \udb40\udc5d \udb40\udc5d \udb40\udc5d \udb40\udc5d \udb40\udc5d \udb40\udc5d \udb40\udc5d \udb40\udc5d \udb40\udc5d \udb40\udc5d",(0,ko.jsx)("a",{href:"https://github.com/tteck/Proxmox/blob/main/LICENSE",children:(0,ko.jsx)("img",{alt:"License MIT",src:"https://img.shields.io/badge/license-MIT-blue"})})," ",(0,ko.jsx)("a",{href:"https://github.com/tteck/Proxmox/discussions",children:(0,ko.jsx)("img",{src:"https://img.shields.io/badge/%F0%9F%92%AC-Discussions-teal",alt:"Discussions"})})," ",(0,ko.jsx)("a",{href:"https://github.com/tteck/Proxmox/blob/main/CHANGELOG.md",children:(0,ko.jsx)("img",{src:"https://img.shields.io/badge/\ud83d\udd36-Changelog-maroon",alt:"Changelog"})})," ",(0,ko.jsx)("a",{href:"https://github.com/tteck/Proxmox/blob/main/USER_SUBMITTED_GUIDES.md",children:(0,ko.jsx)("img",{src:"https://img.shields.io/badge/\ud83e\udded-Guides-navy",alt:"Guides"})})," ",(0,ko.jsx)("a",{href:"https://ko-fi.com/D1D7EP4GF",children:(0,ko.jsx)("img",{src:"https://img.shields.io/badge/%E2%98%95-Buy%20me%20a%20coffee-brown",alt:"Buy me a coffee"})})]})]}),0===S.items.length&&(0,ko.jsxs)("div",{children:["No items match your criteria ",(0,ko.jsx)("button",{onClick:function(){a(""),c("all")},children:"Clear Filters"})]}),(0,ko.jsxs)("div",{children:[(0,ko.jsx)("span",{onClick:function(){E(f.categories.map((function(e){return e.title})))},children:"  \udb40\udc20 \udb40\udc20 \udb40\udc20\u2795 \udb40\udc20 \udb40\udc20"}),"  \udb40\udc20 ",(0,ko.jsx)("span",{onClick:function(){m([]),E([])},children:" \udb40\udc20 \udb40\udc20 \udb40\udc20\u2796 \udb40\udc20 \udb40\udc20"})]}),null===(e=S.items)||void 0===e?void 0:e.map((function(e,t){return(0,ko.jsxs)("div",{className:"App-items",children:[(0===t||S.items[0===t?0:t-1].category!==e.category)&&(0,ko.jsxs)("div",{onClick:function(){return T(e.category)},className:"itemCategory",children:[e.category,n&&e.title.toLowerCase().includes(n.toLowerCase())||d.includes(e.title)||b.includes(e.category)?(0,ko.jsx)(_o,{className:"navArrow",alt:"Expanded"}):(0,ko.jsx)(wo,{className:"navArrow",alt:"Collapsed"})," "]}),(n&&e.title.toLowerCase().includes(n.toLowerCase())||d.includes(e.title)||b.includes(e.category))&&(0,ko.jsx)("span",{onClick:function(){return y(e.title)},className:"itemTitle",children:e.title}),(n&&e.title.toLowerCase().includes(n.toLowerCase())||d.includes(e.title))&&(0,ko.jsx)("div",{className:"item",children:(0,ko.jsx)(Lr,{children:e.content,remarkPlugins:[Ii],rehypePlugins:[Ao],components:{code:function(e){e.node;var t=e.inline,n=e.className,r=e.children,a=l(e,Co),i=/language-(\w+)/.exec(n||"");return!t&&i?(0,ko.jsxs)(ko.Fragment,{children:[(0,ko.jsx)(No,{valueToCopy:String(r)}),(0,ko.jsx)(aa,s({children:String(r).replace(/\n$/,""),style:ia,language:i[1],PreTag:"div"},a))]}):(0,ko.jsx)("code",s(s({className:n},a),{},{children:r}))}}})})]},e.title)}))]})};a.createRoot(document.getElementById("root")).render((0,ko.jsx)(r.StrictMode,{children:(0,ko.jsx)(Io,{})}))}()}();
+//# sourceMappingURL=main.12b83e58.js.map
\ No newline at end of file
diff --git a/static/js/main.43ec3d95.js.LICENSE.txt b/static/js/main.12b83e58.js.LICENSE.txt
similarity index 100%
rename from static/js/main.43ec3d95.js.LICENSE.txt
rename to static/js/main.12b83e58.js.LICENSE.txt
diff --git a/static/js/main.43ec3d95.js.map b/static/js/main.12b83e58.js.map
similarity index 99%
rename from static/js/main.43ec3d95.js.map
rename to static/js/main.12b83e58.js.map
index c169ebf3..48fa7cb5 100644
--- a/static/js/main.43ec3d95.js.map
+++ b/static/js/main.12b83e58.js.map
@@ -1 +1 @@
-{"version":3,"file":"static/js/main.43ec3d95.js","mappings":"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AAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,IAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,KAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,M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AAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,KAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,KAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,KAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,KAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,KAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SA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+6E,QAAQ,EACRpB,MAAO,WAET4L,MAAO,CACLvlF,QAASm7E,OACP,YAAY9xE,OACV,MACA,CAEE67E,EACA,wBAAwB77E,OAAS67E,EACjC,6CAA6C77E,OAC3C27E,EACA,MAAM37E,OACN67E,EACF,QAAQ77E,OACN67E,EACA,cAAc77E,OACd27E,EACA,YAAY37E,OACd,SAASA,OACP67E,EACA,cAAc77E,OACd27E,EACA,MAAM37E,OACN67E,EACA,gBAAgB77E,OAChB67E,EACF,QAAQ77E,OACN27E,EACA,MAAM37E,OACN67E,EACA,MACA,UAAU77E,OACV,MACA,WAAWA,OACX27E,EACA,KACA,MAAM37E,OACN67E,EACA,MACFv2F,KAAK,KACP,KAEJ6rF,YAAY,EACZO,QAAQ,EACRC,OAAQ,CACNP,QAAS,QACT+D,OAAQoG,IAGZxG,UAAW,CACTp+E,QACE,wKACFw6E,YAAY,EACZO,QAAQ,EACRC,OAAQ,CACNP,QAAS,QACT+D,OAAQoG,IAGZ75F,MAAO,CACLiV,QAASm7E,OACP,YAAY9xE,OACV,kBAAkBA,OAClB,MACA,QAAQA,OACR,IACA27E,EALF,OAQE,eAAe37E,OACf,IACA27E,EACA,IACAC,EACA,IACAE,EACAH,EACA,MAEJxK,YAAY,EACZO,QAAQ,EACRpB,MAAO,WACPqB,OAAQ,CACNP,QAAS,KACT+D,OAAQoG,IAGZ,oBAAqB,CACnB5kF,QAAS,iBACTw6E,YAAY,EACZb,MAAO,cAGXhB,EAAMY,UAAUiM,MAAQ7M,EAAMY,UAAUsL,MACzC,CA7MA,CA6MElM,EACL,CAtNAxtF,EAAOC,QAAUy5F,EACjBA,EAAOj1F,YAAc,SACrBi1F,EAAOjK,QAAU,CAAC,wCCClB,SAAS6K,EAAI9M,IAWV,SAAWA,GAKV,SAAS5tF,EAAMse,GACb,OAAO8xE,OACL,UAAU9xE,OAAS,MAAQA,EAAS,IAAM,cAAcA,OACxD,IAEJ,CACAsvE,EAAMY,UAAUkM,IAAM,CACpBrH,UAAW,CACTp+E,QACE,6ZACFw6E,YAAY,EACZb,MAAO,YAET90E,OAAQ,CACN7E,QAASjV,EAAM,qB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A,OACA,UACA,MACA,WACA,kBACA,MACA,OACA,YACA,aACA,OACA,WACA,OACA,OACA,QACA,WACA,OACA,QACA,OACA,MACA,IACA,IACA,QACA,QACA,QACA,OACA,kBACA,MACA,SACA,MACA,QACA,OACA,QACA,SACA,OACA,UACA,UACA,OACA,UACA,MACA,gBACA,WACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,QACA,UACA,YACA,OACA,QACA,OACA,SACA,gBACA,SACA,QACA,YACA,WACA,oBACA,kBACA,OACA,YACA,MACA,QACA,MACA,QACA,MACA,iBACA,WAEF,uBAAwB,CAEtB,UACA,YACA,YACA,KACA,SACA,MACA,IACA,WACA,KACA,SACA,QACA,SACA,YACA,aACA,WACA,SACA,UACA,gBACA,oBACA,YACA,UACA,mBACA,KACA,WACA,IACA,KACA,MAEF,oBAAqB,CACnB,aACA,WACA,SACA,mBACA,SACA,aACA,aACA,YACA,mBACA,kBACA,WACA,aACA,OACA,WACA,UACA,aACA,YACA,WACA,OACA,OACA,MACA,WACA,UACA,SACA,UACA,aACA,aACA,SACA,QACA,UACA,oBACA,aACA,cACA,OACA,SACA,gBACA,oBACA,gCACA,iCACA,YACA,UACA,WACA,SACA,aACA,aACA,UACA,SACA,OACA,eACA,eACA,QACA,OACA,SACA,YACA,UACA,QACA,WACA,cACA,WACA,QACA,YACA,aACA,aACA,qBACA,SACA,SACA,WACA,eACA,UACA,aACA,OACA,UACA,QACA,SACA,SACA,OACA,aACA,WACA,YACA,MACA,aACA,UACA,aACA,SACA,cACA,YACA,OACA,YACA,SACA,YACA,iBACA,UACA,eACA,UACA,gBACA,eACA,YACA,mBACA,UACA,SACA,WACA,OACA,aACA,oBACA,YACA,UACA,UACA,YACA,WACA,WACA,aACA,OACA,cACA,iBACA,QACA,UACA,YACA,gBACA,cACA,oBACA,MACA,UACA,OACA,SACA,OACA,sBACA,aACA,aACA,mBACA,UACA,cACA,SACA,aACA,WACA,kBACA,OACA,OACA,QACA,QACA,QACA,YACA,SACA,eACA,eACA,WACA,WACA,MACA,aACA,YACA,WACA,QACA,oBACA,eACA,OACA,cACA,QACA,UACA,UACA,OACA,cACA,SACA,OACA,gBACA,YACA,eAEF,eAAgB,CACd,UACA,kBACA,MACA,cACA,iBACA,aACA,UACA,eACA,UACA,WACA,cACA,MACA,IACA,IACA,cACA,IACA,MACA,IACA,KACA,SACA,cACA,wBACA,OACA,IACA,OACA,IACA,WACA,SACA,cACA,KACA,QACA,aACA,SACA,QACA,SACA,QACA,QACA,QACA,UACA,SACA,UACA,WACA,KACA,iBACA,KACA,MACA,UACA,aACA,KACA,KACA,MACA,QACA,WACA,SACA,KACA,UACA,UACA,MACA,SACA,KACA,SACA,QACA,OACA,WACA,aACA,UACA,WACA,OACA,YACA,cACA,QACA,MACA,iBACA,YACA,yBACA,aACA,QACA,aACA,QACA,UACA,MACA,SACA,wBACA,MACA,OACA,KACA,OACA,WACA,QACA,YACA,cAGJ3gG,OAAOkkC,KAAKy8D,GAAUv8D,SAAQ,SAAUylB,GACtCw2C,EAAOx2C,GAAGpzC,QAAUiqF,EAAiBC,EAAS92C,GAChD,IAyNAw2C,EAAOI,YAAYhqF,QAAUiqF,EAxNX,CAEhB,MACA,QACA,OACA,MACA,OACA,QACA,QACA,OACA,QACA,UACA,MACA,MACA,OACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,QACA,MACA,SACA,KACA,UACA,YACA,MACA,OACA,YACA,QACA,OACA,QACA,OACA,QACA,UACA,KACA,QACA,OACA,SACA,aACA,aACA,WACA,QACA,UACA,OACA,KACA,OACA,SACA,QACA,OACA,SACA,MACA,OACA,SACA,MACA,WACA,YACA,iBACA,kBACA,SACA,YACA,QACA,YACA,YACA,WACA,cACA,UACA,YACA,gBACA,mBACA,SACA,MACA,UACA,cACA,aACA,SACA,cACA,OACA,eACA,YACA,UACA,eACA,eACA,aACA,kBACA,QACA,aACA,SACA,eACA,YACA,eACA,WACA,SACA,WACA,aACA,OACA,YACA,gBACA,eACA,OACA,UACA,UACA,YACA,gBACA,iBACA,kBACA,gBACA,UACA,OACA,YACA,cACA,UACA,cACA,aACA,OACA,aACA,iBACA,aACA,OACA,eACA,cACA,WACA,gBACA,YACA,UACA,QACA,aACA,QACA,OACA,aACA,UACA,aACA,aACA,QACA,OACA,YACA,iBACA,YACA,UACA,eACA,cACA,iBACA,YACA,oBACA,kBACA,QACA,iBACA,eACA,gBACA,kBACA,cACA,gBACA,gBACA,kBACA,cACA,OACA,UACA,YACA,YACA,UACA,eACA,iBACA,aACA,OACA,SACA,cACA,qBACA,SACA,mBACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,gBACA,cACA,iBACA,cACA,eACA,aACA,cACA,WACA,iBACA,oBACA,cACA,qBACA,WACA,eACA,mBACA,oBACA,iBACA,UACA,iBACA,iBACA,cACA,SACA,gBACA,eACA,eACA,aACA,aACA,UACA,oBACA,eACA,YACA,cACA,wBACA,oBAGFtR,EAAMY,UAAUqQ,OAASA,CAC1B,CAr5BA,CAq5BEjR,EACL,CA15BAxtF,EAAOC,QAAUw+F,EACjBA,EAAOh6F,YAAc,SACrBg6F,EAAOhP,QAAU,kCCCjB,SAASuP,EAAOxR,IACb,SAAWA,GAMVA,EAAMY,UAAiB,MAAI,CACzBtvE,QAAS,CACPjK,QAAS,aAEXmuC,OAAQ,CACNnuC,QAAS,UACT+6E,QAAQ,GAEV,iBAAkB,CAChB/6E,QAAS,mBACT25E,MAAO,UAET,iBAAkB,CAChB35E,QAAS,OACT25E,MAAO,aAETvqF,OAAQ,MACRsrF,SAAU,sCACVC,YAAa,QACbY,SAAU,QACV,eAAgB,CACdv7E,QAAS,eACT25E,MAAO,QAGZ,CA/BA,CA+BEhB,EACL,CApCAxtF,EAAOC,QAAU++F,EACjBA,EAAOv6F,YAAc,SACrBu6F,EAAOvP,QAAU,kCCCjB,SAAS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CE,s0BACFqF,UAAW,CACT9/E,QAAS,cACT25E,MAAO,YAET4B,SAAU,aACVnsF,OAAQ,gBACRsrF,SAAU,mBACVC,YAAa,wBAEjB,CAjBAxvF,EAAOC,QAAUswG,EACjBA,EAAM9rG,YAAc,QACpB8rG,EAAM9gB,QAAU,kCCChB,SAAS+gB,EAAQhjB,IACd,SAAWA,GACV,IAAIijB,EAAY,CAEd,MACA,MACA,OACA,MACA,MACA,OACA,MACA,OACA,OACA,OACA,OACA,MACA,UACA,QACA,QACA,cACA,OACA,SACA,QACA,SACA,iBACA,aACA,QACA,cACA,OACA,aACA,QACA,gBACA,cACA,gBACA,cACA,WACA,aACA,QACA,SACA,eACA,OACA,OACA,OACA,OACA,UACA,OACA,eACA,SACA,YACA,OACA,QACA,QACA,WACA,QACA,YACA,SACA,QACA,OACA,aACA,UACA,cACA,aACA,SACA,aACA,SACA,WACA,eACA,SACA,cACA,SACA,qBACA,gBACA,UACA,SACA,SACA,OACA,kBACA,WACA,UACA,eACA,eACA,UACA,OACA,QACA,QACA,eACA,aACA,SACA,UACA,mBACA,OACA,eACA,QACA,SACA,OACA,YACA,mBACA,OACA,kBACA,eACA,iBACA,QACA,SACA,QACA,SACA,SACA,OACA,cACA,YACA,QACA,OACA,UACA,gBACA,QACA,WACA,OACA,iBACA,eACA,kBACA,gBACA,cACA,aACA,aACA,oBACA,UACA,MACA,OACA,UACA,SACA,SACA,YACA,MACA,OACA,QACA,UACA,MACA,gBACA,gBACA,aACA,WACA,YACA,gBACA,WACA,eACA,QACA,QACA,OACA,WACA,MACA,OACA,SACA,MACA,OACA,SACA,OACA,OACA,gBACA,QACA,OACA,eACA,UACA,OACA,SACA,YACA,MACA,OACA,iBACA,MACA,OACA,QACA,oBACA,SACA,UACA,aACA,gBACA,cACA,cACA,cACA,gBACA,SACA,SACA,UACA,iBACA,aACA,mBACA,eACA,YACA,QACA,OACA,SACA,SACA,QACA,aACA,cACA,cA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,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E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","sources":["../node_modules/extend/index.js","../node_modules/hast-util-parse-selector/index.js","../node_modules/hastscript/factory.js","../node_modules/hastscript/html.js","../node_modules/hastscript/index.js","../node_modules/hastscript/node_modules/comma-separated-tokens/index.js","../node_modules/hastscript/node_modules/property-information/find.js","../node_modules/hastscript/node_modules/property-information/html.js","../node_modules/hastscript/node_modules/property-information/lib/aria.js","../node_modules/hastscript/node_modules/property-information/lib/html.js","../node_modules/hastscript/node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/hastscript/node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/hastscript/node_modules/property-information/lib/util/create.js","../node_modules/hastscript/node_modules/property-information/lib/util/defined-info.js","../node_modules/hastscript/node_modules/property-information/lib/util/info.js","../node_modules/hastscript/node_modules/property-information/lib/util/merge.js","../node_modules/hastscript/node_modules/property-information/lib/util/schema.js","../node_modules/hastscript/node_modules/property-information/lib/util/types.js","../node_modules/hastscript/node_modules/property-information/lib/xlink.js","../node_modules/hastscript/node_modules/property-information/lib/xml.js","../node_modules/hastscript/node_modules/property-information/lib/xmlns.js","../node_modules/hastscript/node_modules/property-information/normalize.js","../node_modules/hastscript/node_modules/space-separated-tokens/index.js","../node_modules/inline-style-parser/index.js","../node_modules/is-alphabetical/index.js","../node_modules/is-alphanumerical/index.js","../node_modules/is-buffer/index.js","../node_modules/is-decimal/index.js","../node_modules/is-hexadecimal/index.js","../node_modules/parse-entities/decode-entity.browser.js","../node_modules/parse-entities/index.js","../node_modules/parse5/lib/common/doctype.js","../node_modules/parse5/lib/common/error-codes.js","../node_modules/parse5/lib/common/foreign-content.js","../node_modules/parse5/lib/common/html.js","../node_modules/parse5/lib/common/unicode.js","../node_modules/parse5/lib/extensions/error-reporting/mixin-base.js","../node_modules/parse5/lib/extensions/error-reporting/parser-mixin.js","../node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js","../node_modules/parse5/lib/extensions/error-reporting/tokenizer-mixin.js","../node_modules/parse5/lib/extensions/location-info/open-element-stack-mixin.js","../node_modules/parse5/lib/extensions/location-info/parser-mixin.js","../node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js","../node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js","../node_modules/parse5/lib/parser/formatting-element-list.js","../node_modules/parse5/lib/parser/index.js","../node_modules/parse5/lib/parser/open-element-stack.js","../node_modules/parse5/lib/tokenizer/index.js","../node_modules/parse5/lib/tokenizer/named-entity-data.js","../node_modules/parse5/lib/tokenizer/preprocessor.js","../node_modules/parse5/lib/tree-adapters/default.js","../node_modules/parse5/lib/utils/merge-options.js","../node_modules/parse5/lib/utils/mixin.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-markdown/node_modules/react-is/index.js","../node_modules/react-markdown/node_modules/style-to-object/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/refractor/core.js","../node_modules/refractor/index.js","../node_modules/refractor/lang/abap.js","../node_modules/refractor/lang/abnf.js","../node_modules/refractor/lang/actionscript.js","../node_modules/refractor/lang/ada.js","../node_modules/refractor/lang/agda.js","../node_modules/refractor/lang/al.js","../node_modules/refractor/lang/antlr4.js","../node_modules/refractor/lang/apacheconf.js","../node_modules/refractor/lang/apex.js","../node_modules/refractor/lang/apl.js","../node_modules/refractor/lang/applescript.js","../node_modules/refractor/lang/aql.js","../node_modules/refractor/lang/arduino.js","../node_modules/refractor/lang/arff.js","../node_modules/refractor/lang/asciidoc.js","../node_modules/refractor/lang/asm6502.js","../node_modules/refractor/lang/asmatmel.js","../node_modules/refractor/lang/aspnet.js","../node_modules/refractor/lang/autohotkey.js","../node_modules/refractor/lang/autoit.js","../node_modules/refractor/lang/avisynth.js","../node_modules/refractor/lang/avro-idl.js","../node_modules/refractor/lang/bash.js","../node_modules/refractor/lang/basic.js","../node_modules/refractor/lang/batch.js","../node_modules/refractor/lang/bbcode.js","../node_modules/refractor/lang/bicep.js","../node_modules/refractor/lang/birb.js","../node_modules/refractor/lang/bison.js","../node_modules/refractor/lang/bnf.js","../node_modules/refractor/lang/brainfuck.js","../node_modules/refractor/lang/brightscript.js","../node_modules/refractor/lang/bro.js","../node_modules/refractor/lang/bsl.js","../node_modules/refractor/lang/c.js","../node_modules/refractor/lang/cfscript.js","../node_modules/refractor/lang/chaiscript.js","../node_modules/refractor/lang/cil.js","../node_modules/refractor/lang/clike.js","../node_modules/refractor/lang/clojure.js","../node_modules/refractor/lang/cmake.js","../node_modules/refractor/lang/cobol.js","../node_modules/refractor/lang/coffeescript.js","../node_modules/refractor/lang/concurnas.js","../node_modules/refractor/lang/coq.js","../node_modules/refractor/lang/cpp.js","../node_modules/refractor/lang/crystal.js","../node_modules/refractor/lang/csharp.js","../node_modules/refractor/lang/cshtml.js","../node_modules/refractor/lang/csp.js","../node_modules/refractor/lang/css-extras.js","../node_modules/refractor/lang/css.js","../node_modules/refractor/lang/csv.js","../node_modules/refractor/lang/cypher.js","../node_modules/refractor/lang/d.js","../node_modules/refractor/lang/dart.js","../node_modules/refractor/lang/dataweave.js","../node_modules/refractor/lang/dax.js","../node_modules/refractor/lang/dhall.js","../node_modules/refractor/lang/diff.js","../node_modules/refractor/lang/django.js","../node_modules/refractor/lang/dns-zone-file.js","../node_modules/refractor/lang/docker.js","../node_modules/refractor/lang/dot.js","../node_modules/refractor/lang/ebnf.js","../node_modules/refractor/lang/editorconfig.js","../node_modules/refractor/lang/eiffel.js","../node_modules/refractor/lang/ejs.js","../node_modules/refractor/lang/elixir.js","../node_modules/refractor/lang/elm.js","../node_modules/refractor/lang/erb.js","../node_modules/refractor/lang/erlang.js","../node_modules/refractor/lang/etlua.js","../node_modules/refractor/lang/excel-formula.js","../node_modules/refractor/lang/factor.js","../node_modules/refractor/lang/false.js","../node_modules/refractor/lang/firestore-security-rules.js","../node_modules/refractor/lang/flow.js","../node_modules/refractor/lang/fortran.js","../node_modules/refractor/lang/fsharp.js","../node_modules/refractor/lang/ftl.js","../node_modules/refractor/lang/gap.js","../node_modules/refractor/lang/gcode.js","../node_modules/refractor/lang/gdscript.js","../node_modules/refractor/lang/gedcom.js","../node_modules/refractor/lang/gherkin.js","../node_modules/refractor/lang/git.js","../node_modules/refractor/lang/glsl.js","../node_modules/refractor/lang/gml.js","../node_modules/refractor/lang/gn.js","../node_modules/refractor/lang/go-module.js","../node_modules/refractor/lang/go.js","../node_modules/refractor/lang/graphql.js","../node_modules/refractor/lang/groovy.js","../node_modules/refractor/lang/haml.js","../node_modules/refractor/lang/handlebars.js","../node_modules/refractor/lang/haskell.js","../node_modules/refractor/lang/haxe.js","../node_modules/refractor/lang/hcl.js","../node_modules/refractor/lang/hlsl.js","../node_modules/refractor/lang/hoon.js","../node_modules/refractor/lang/hpkp.js","../node_modules/refractor/lang/hsts.js","../node_modules/refractor/lang/http.js","../node_modules/refractor/lang/ichigojam.js","../node_modules/refractor/lang/icon.js","../node_modules/refractor/lang/icu-message-format.js","../node_modules/refractor/lang/idris.js","../node_modules/refractor/lang/iecst.js","../node_modules/refractor/lang/ignore.js","../node_modules/refractor/lang/inform7.js","../node_modules/refractor/lang/ini.js","../node_modules/refractor/lang/io.js","../node_modules/refractor/lang/j.js","../node_modules/refractor/lang/java.js","../node_modules/refractor/lang/javadoc.js","../node_modules/refractor/lang/javadoclike.js","../node_modules/refractor/lang/javascript.js","../node_modules/refractor/lang/javastacktrace.js","../node_modules/refractor/lang/jexl.js","../node_modules/refractor/lang/jolie.js","../node_modules/refractor/lang/jq.js","../node_modules/refractor/lang/js-extras.js","../node_modules/refractor/lang/js-templates.js","../node_modules/refractor/lang/jsdoc.js","../node_modules/refractor/lang/json.js","../node_modules/refractor/lang/json5.js","../node_modules/refractor/lang/jsonp.js","../node_modules/refractor/lang/jsstacktrace.js","../node_modules/refractor/lang/jsx.js","../node_modules/refractor/lang/julia.js","../node_modules/refractor/lang/keepalived.js","../node_modules/refractor/lang/keyman.js","../node_modules/refractor/lang/kotlin.js","../node_modules/refractor/lang/kumir.js","../node_modules/refractor/lang/kusto.js","../node_modules/refractor/lang/latex.js","../node_modules/refractor/lang/latte.js","../node_modules/refractor/lang/less.js","../node_modules/refractor/lang/lilypond.js","../node_modules/refractor/lang/liquid.js","../node_modules/refractor/lang/lisp.js","../node_modules/refractor/lang/livescript.js","../node_modules/refractor/lang/llvm.js","../node_modules/refractor/lang/log.js","../node_modules/refractor/lang/lolcode.js","../node_modules/refractor/lang/lua.js","../node_modules/refractor/lang/magma.js","../node_modules/refractor/lang/makefile.js","../node_modules/refractor/lang/markdown.js","../node_modules/refractor/lang/markup-templating.js","../node_modules/refractor/lang/markup.js","../node_modules/refractor/lang/matlab.js","../node_modules/refractor/lang/maxscript.js","../node_modules/refractor/lang/mel.js","../node_modules/refractor/lang/mermaid.js","../node_modules/refractor/lang/mizar.js","../node_modules/refractor/lang/mongodb.js","../node_modules/refractor/lang/monkey.js","../node_modules/refractor/lang/moonscript.js","../node_modules/refractor/lang/n1ql.js","../node_modules/refractor/lang/n4js.js","../node_modules/refractor/lang/nand2tetris-hdl.js","../node_modules/refractor/lang/naniscript.js","../node_modules/refractor/lang/nasm.js","../node_modules/refractor/lang/neon.js","../node_modules/refractor/lang/nevod.js","../node_modules/refractor/lang/nginx.js","../node_modules/refractor/lang/nim.js","../node_modules/refractor/lang/nix.js","../node_modules/refractor/lang/nsis.js","../node_modules/refractor/lang/objectivec.js","../node_modules/refractor/lang/ocaml.js","../node_modules/refractor/lang/opencl.js","../node_modules/refractor/lang/openqasm.js","../node_modules/refractor/lang/oz.js","../node_modules/refractor/lang/parigp.js","../node_modules/refractor/lang/parser.js","../node_modules/refractor/lang/pascal.js","../node_modules/refractor/lang/pascaligo.js","../node_modules/refractor/lang/pcaxis.js","../node_modules/refractor/lang/peoplecode.js","../node_modules/refractor/lang/perl.js","../node_modules/refractor/lang/php-extras.js","../node_modules/refractor/lang/php.js","../node_modules/refractor/lang/phpdoc.js","../node_modules/refractor/lang/plsql.js","../node_modules/refractor/lang/powerquery.js","../node_modules/refractor/lang/powershell.js","../node_modules/refractor/lang/processing.js","../node_modules/refractor/lang/prolog.js","../node_modules/refractor/lang/promql.js","../node_modules/refractor/lang/properties.js","../node_modules/refractor/lang/protobuf.js","../node_modules/refractor/lang/psl.js","../node_modules/refractor/lang/pug.js","../node_modules/refractor/lang/puppet.js","../node_modules/refractor/lang/pure.js","../node_modules/refractor/lang/purebasic.js","../node_modules/refractor/lang/purescript.js","../node_modules/refractor/lang/python.js","../node_modules/refractor/lang/q.js","../node_modules/refractor/lang/qml.js","../node_modules/refractor/lang/qore.js","../node_modules/refractor/lang/qsharp.js","../node_modules/refractor/lang/r.js","../node_modules/refractor/lang/racket.js","../node_modules/refractor/lang/reason.js","../node_modules/refractor/lang/regex.js","../node_modules/refractor/lang/rego.js","../node_modules/refractor/lang/renpy.js","../node_modules/refractor/lang/rest.js","../node_modules/refractor/lang/rip.js","../node_modules/refractor/lang/roboconf.js","../node_modules/refractor/lang/robotframework.js","../node_modules/refractor/lang/ruby.js","../node_modules/refractor/lang/rust.js","../node_modules/refractor/lang/sas.js","../node_modules/refractor/lang/sass.js","../node_modules/refractor/lang/scala.js","../node_modules/refractor/lang/scheme.js","../node_modules/refractor/lang/scss.js","../node_modules/refractor/lang/shell-session.js","../node_modules/refractor/lang/smali.js","../node_modules/refractor/lang/smalltalk.js","../node_modules/refractor/lang/smarty.js","../node_modules/refractor/lang/sml.js","../node_modules/refractor/lang/solidity.js","../node_modules/refractor/lang/solution-file.js","../node_modules/refractor/lang/soy.js","../node_modules/refractor/lang/sparql.js","../node_modules/refractor/lang/splunk-spl.js","../node_modules/refractor/lang/sqf.js","../node_modules/refractor/lang/sql.js","../node_modules/refractor/lang/squirrel.js","../node_modules/refractor/lang/stan.js","../node_modules/refractor/lang/stylus.js","../node_modules/refractor/lang/swift.js","../node_modules/refractor/lang/systemd.js","../node_modules/refractor/lang/t4-cs.js","../node_modules/refractor/lang/t4-templating.js","../node_modules/refractor/lang/t4-vb.js","../node_modules/refractor/lang/tap.js","../node_modules/refractor/lang/tcl.js","../node_modules/refractor/lang/textile.js","../node_modules/refractor/lang/toml.js","../node_modules/refractor/lang/tremor.js","../node_modules/refractor/lang/tsx.js","../node_modules/refractor/lang/tt2.js","../node_modules/refractor/lang/turtle.js","../node_modules/refractor/lang/twig.js","../node_modules/refractor/lang/typescript.js","../node_modules/refractor/lang/typoscript.js","../node_modules/refractor/lang/unrealscript.js","../node_modules/refractor/lang/uorazor.js","../node_modules/refractor/lang/uri.js","../node_modules/refractor/lang/v.js","../node_modules/refractor/lang/vala.js","../node_modules/refractor/lang/vbnet.js","../node_modules/refractor/lang/velocity.js","../node_modules/refractor/lang/verilog.js","../node_modules/refractor/lang/vhdl.js","../node_modules/refractor/lang/vim.js","../node_modules/refractor/lang/visual-basic.js","../node_modules/refractor/lang/warpscript.js","../node_modules/refractor/lang/wasm.js","../node_modules/refractor/lang/web-idl.js","../node_modules/refractor/lang/wiki.js","../node_modules/refractor/lang/wolfram.js","../node_modules/refractor/lang/wren.js","../node_modules/refractor/lang/xeora.js","../node_modules/refractor/lang/xml-doc.js","../node_modules/refractor/lang/xojo.js","../node_modules/refractor/lang/xquery.js","../node_modules/refractor/lang/yaml.js","../node_modules/refractor/lang/yang.js","../node_modules/refractor/lang/zig.js","../node_modules/refractor/node_modules/prismjs/components/prism-core.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/style-to-object/index.js","../node_modules/xtend/immutable.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/get.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/superPropBase.js","../node_modules/@babel/runtime/helpers/typeof.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","data.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/unist-util-stringify-position/index.js","../node_modules/vfile-message/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/bail/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/index.js","../node_modules/unified/lib/index.js","../node_modules/mdast-util-to-string/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/parse.js","../node_modules/remark-parse/index.js","../node_modules/remark-parse/lib/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/unist-util-is/index.js","../node_modules/unist-util-visit-parents/index.js","../node_modules/unist-util-visit/index.js","../node_modules/unist-util-position/index.js","../node_modules/mdast-util-definitions/lib/index.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/unist-util-generated/lib/index.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/remark-rehype/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/index.js","../node_modules/react-markdown/lib/rehype-filter.js","../node_modules/hast-util-whitespace/index.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/space-separated-tokens/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/react-markdown/node_modules/style-to-object/index.mjs","../node_modules/react-markdown/lib/uri-transformer.js","../node_modules/react-markdown/lib/ast-to-react.js","../node_modules/react-markdown/lib/react-markdown.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-syntax-highlighter/dist/esm/create-element.js","../node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js","../node_modules/react-syntax-highlighter/dist/esm/highlight.js","../node_modules/react-syntax-highlighter/dist/esm/styles/prism/prism.js","../node_modules/react-syntax-highlighter/dist/esm/prism.js","../node_modules/react-syntax-highlighter/dist/esm/languages/prism/supported-languages.js","../node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","../node_modules/react-syntax-highlighter/dist/esm/styles/prism/coldark-dark.js","../node_modules/micromark-extension-gfm-footnote/lib/syntax.js","../node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","../node_modules/micromark-extension-gfm-table/lib/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","../node_modules/micromark-extension-gfm/index.js","../node_modules/ccount/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-gfm-autolink-literal/index.js","../node_modules/mdast-util-to-markdown/lib/util/association.js","../node_modules/mdast-util-to-markdown/lib/util/track.js","../node_modules/mdast-util-to-markdown/lib/util/container-flow.js","../node_modules/mdast-util-to-markdown/lib/util/indent-lines.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../node_modules/mdast-util-to-markdown/lib/util/safe.js","../node_modules/mdast-util-gfm-footnote/index.js","../node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js","../node_modules/mdast-util-gfm-strikethrough/index.js","../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../node_modules/markdown-table/index.js","../node_modules/mdast-util-gfm-table/lib/index.js","../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../node_modules/mdast-util-gfm-task-list-item/index.js","../node_modules/mdast-util-gfm/lib/index.js","../node_modules/remark-gfm/index.js","../node_modules/hast-util-from-parse5/node_modules/hast-util-parse-selector/index.js","../node_modules/hast-util-from-parse5/node_modules/hastscript/lib/core.js","../node_modules/hast-util-from-parse5/node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","../node_modules/hast-util-from-parse5/node_modules/hastscript/lib/svg.js","../node_modules/hast-util-from-parse5/node_modules/hastscript/lib/html.js","../node_modules/web-namespaces/index.js","../node_modules/hast-util-from-parse5/lib/index.js","../node_modules/vfile-location/index.js","../node_modules/hast-to-hyperscript/index.js","../node_modules/zwitch/index.js","../node_modules/hast-util-to-parse5/lib/index.js","../node_modules/html-void-elements/index.js","../node_modules/hast-util-raw/lib/index.js","../node_modules/rehype-raw/index.js","components/right_arrow.js","components/down_arrow.js","App.js","index.js"],"sourcesContent":["'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","'use strict'\n\nmodule.exports = parse\n\nvar search = /[#.]/g\n\n// Create a hast element from a simple CSS selector.\nfunction parse(selector, defaultTagName) {\n  var value = selector || ''\n  var name = defaultTagName || 'div'\n  var props = {}\n  var start = 0\n  var subvalue\n  var previous\n  var match\n\n  while (start < value.length) {\n    search.lastIndex = start\n    match = search.exec(value)\n    subvalue = value.slice(start, match ? match.index : value.length)\n\n    if (subvalue) {\n      if (!previous) {\n        name = subvalue\n      } else if (previous === '#') {\n        props.id = subvalue\n      } else if (props.className) {\n        props.className.push(subvalue)\n      } else {\n        props.className = [subvalue]\n      }\n\n      start += subvalue.length\n    }\n\n    if (match) {\n      previous = match[0]\n      start++\n    }\n  }\n\n  return {type: 'element', tagName: name, properties: props, children: []}\n}\n","'use strict'\n\nvar find = require('property-information/find')\nvar normalize = require('property-information/normalize')\nvar parseSelector = require('hast-util-parse-selector')\nvar spaces = require('space-separated-tokens').parse\nvar commas = require('comma-separated-tokens').parse\n\nmodule.exports = factory\n\nvar own = {}.hasOwnProperty\n\nfunction factory(schema, defaultTagName, caseSensitive) {\n  var adjust = caseSensitive ? createAdjustMap(caseSensitive) : null\n\n  return h\n\n  // Hyperscript compatible DSL for creating virtual hast trees.\n  function h(selector, properties) {\n    var node = parseSelector(selector, defaultTagName)\n    var children = Array.prototype.slice.call(arguments, 2)\n    var name = node.tagName.toLowerCase()\n    var property\n\n    node.tagName = adjust && own.call(adjust, name) ? adjust[name] : name\n\n    if (properties && isChildren(properties, node)) {\n      children.unshift(properties)\n      properties = null\n    }\n\n    if (properties) {\n      for (property in properties) {\n        addProperty(node.properties, property, properties[property])\n      }\n    }\n\n    addChild(node.children, children)\n\n    if (node.tagName === 'template') {\n      node.content = {type: 'root', children: node.children}\n      node.children = []\n    }\n\n    return node\n  }\n\n  function addProperty(properties, key, value) {\n    var info\n    var property\n    var result\n\n    // Ignore nullish and NaN values.\n    if (value === null || value === undefined || value !== value) {\n      return\n    }\n\n    info = find(schema, key)\n    property = info.property\n    result = value\n\n    // Handle list values.\n    if (typeof result === 'string') {\n      if (info.spaceSeparated) {\n        result = spaces(result)\n      } else if (info.commaSeparated) {\n        result = commas(result)\n      } else if (info.commaOrSpaceSeparated) {\n        result = spaces(commas(result).join(' '))\n      }\n    }\n\n    // Accept `object` on style.\n    if (property === 'style' && typeof value !== 'string') {\n      result = style(result)\n    }\n\n    // Class-names (which can be added both on the `selector` and here).\n    if (property === 'className' && properties.className) {\n      result = properties.className.concat(result)\n    }\n\n    properties[property] = parsePrimitives(info, property, result)\n  }\n}\n\nfunction isChildren(value, node) {\n  return (\n    typeof value === 'string' ||\n    'length' in value ||\n    isNode(node.tagName, value)\n  )\n}\n\nfunction isNode(tagName, value) {\n  var type = value.type\n\n  if (tagName === 'input' || !type || typeof type !== 'string') {\n    return false\n  }\n\n  if (typeof value.children === 'object' && 'length' in value.children) {\n    return true\n  }\n\n  type = type.toLowerCase()\n\n  if (tagName === 'button') {\n    return (\n      type !== 'menu' &&\n      type !== 'submit' &&\n      type !== 'reset' &&\n      type !== 'button'\n    )\n  }\n\n  return 'value' in value\n}\n\nfunction addChild(nodes, value) {\n  var index\n  var length\n\n  if (typeof value === 'string' || typeof value === 'number') {\n    nodes.push({type: 'text', value: String(value)})\n    return\n  }\n\n  if (typeof value === 'object' && 'length' in value) {\n    index = -1\n    length = value.length\n\n    while (++index < length) {\n      addChild(nodes, value[index])\n    }\n\n    return\n  }\n\n  if (typeof value !== 'object' || !('type' in value)) {\n    throw new Error('Expected node, nodes, or string, got `' + value + '`')\n  }\n\n  nodes.push(value)\n}\n\n// Parse a (list of) primitives.\nfunction parsePrimitives(info, name, value) {\n  var index\n  var length\n  var result\n\n  if (typeof value !== 'object' || !('length' in value)) {\n    return parsePrimitive(info, name, value)\n  }\n\n  length = value.length\n  index = -1\n  result = []\n\n  while (++index < length) {\n    result[index] = parsePrimitive(info, name, value[index])\n  }\n\n  return result\n}\n\n// Parse a single primitives.\nfunction parsePrimitive(info, name, value) {\n  var result = value\n\n  if (info.number || info.positiveNumber) {\n    if (!isNaN(result) && result !== '') {\n      result = Number(result)\n    }\n  } else if (info.boolean || info.overloadedBoolean) {\n    // Accept `boolean` and `string`.\n    if (\n      typeof result === 'string' &&\n      (result === '' || normalize(value) === normalize(name))\n    ) {\n      result = true\n    }\n  }\n\n  return result\n}\n\nfunction style(value) {\n  var result = []\n  var key\n\n  for (key in value) {\n    result.push([key, value[key]].join(': '))\n  }\n\n  return result.join('; ')\n}\n\nfunction createAdjustMap(values) {\n  var length = values.length\n  var index = -1\n  var result = {}\n  var value\n\n  while (++index < length) {\n    value = values[index]\n    result[value.toLowerCase()] = value\n  }\n\n  return result\n}\n","'use strict'\n\nvar schema = require('property-information/html')\nvar factory = require('./factory')\n\nvar html = factory(schema, 'div')\nhtml.displayName = 'html'\n\nmodule.exports = html\n","'use strict'\n\nmodule.exports = require('./html')\n","'use strict'\n\nexports.parse = parse\nexports.stringify = stringify\n\nvar comma = ','\nvar space = ' '\nvar empty = ''\n\n// Parse comma-separated tokens to an array.\nfunction parse(value) {\n  var values = []\n  var input = String(value || empty)\n  var index = input.indexOf(comma)\n  var lastIndex = 0\n  var end = false\n  var val\n\n  while (!end) {\n    if (index === -1) {\n      index = input.length\n      end = true\n    }\n\n    val = input.slice(lastIndex, index).trim()\n\n    if (val || !end) {\n      values.push(val)\n    }\n\n    lastIndex = index + 1\n    index = input.indexOf(comma, lastIndex)\n  }\n\n  return values\n}\n\n// Compile an array to comma-separated tokens.\n// `options.padLeft` (default: `true`) pads a space left of each token, and\n// `options.padRight` (default: `false`) pads a space to the right of each token.\nfunction stringify(values, options) {\n  var settings = options || {}\n  var left = settings.padLeft === false ? empty : space\n  var right = settings.padRight ? space : empty\n\n  // Ensure the last empty entry is seen.\n  if (values[values.length - 1] === empty) {\n    values = values.concat(empty)\n  }\n\n  return values.join(right + comma + left).trim()\n}\n","'use strict'\n\nvar normalize = require('./normalize')\nvar DefinedInfo = require('./lib/util/defined-info')\nvar Info = require('./lib/util/info')\n\nvar data = 'data'\n\nmodule.exports = find\n\nvar valid = /^data[-\\w.:]+$/i\nvar dash = /-[a-z]/g\nvar cap = /[A-Z]/g\n\nfunction find(schema, value) {\n  var normal = normalize(value)\n  var prop = value\n  var Type = Info\n\n  if (normal in schema.normal) {\n    return schema.property[schema.normal[normal]]\n  }\n\n  if (normal.length > 4 && normal.slice(0, 4) === data && valid.test(value)) {\n    // Attribute or property.\n    if (value.charAt(4) === '-') {\n      prop = datasetToProperty(value)\n    } else {\n      value = datasetToAttribute(value)\n    }\n\n    Type = DefinedInfo\n  }\n\n  return new Type(prop, value)\n}\n\nfunction datasetToProperty(attribute) {\n  var value = attribute.slice(5).replace(dash, camelcase)\n  return data + value.charAt(0).toUpperCase() + value.slice(1)\n}\n\nfunction datasetToAttribute(property) {\n  var value = property.slice(4)\n\n  if (dash.test(value)) {\n    return property\n  }\n\n  value = value.replace(cap, kebab)\n\n  if (value.charAt(0) !== '-') {\n    value = '-' + value\n  }\n\n  return data + value\n}\n\nfunction kebab($0) {\n  return '-' + $0.toLowerCase()\n}\n\nfunction camelcase($0) {\n  return $0.charAt(1).toUpperCase()\n}\n","'use strict'\n\nvar merge = require('./lib/util/merge')\nvar xlink = require('./lib/xlink')\nvar xml = require('./lib/xml')\nvar xmlns = require('./lib/xmlns')\nvar aria = require('./lib/aria')\nvar html = require('./lib/html')\n\nmodule.exports = merge([xml, xlink, xmlns, aria, html])\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\n\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\n\nmodule.exports = create({\n  transform: ariaTransform,\n  properties: {\n    ariaActiveDescendant: null,\n    ariaAtomic: booleanish,\n    ariaAutoComplete: null,\n    ariaBusy: booleanish,\n    ariaChecked: booleanish,\n    ariaColCount: number,\n    ariaColIndex: number,\n    ariaColSpan: number,\n    ariaControls: spaceSeparated,\n    ariaCurrent: null,\n    ariaDescribedBy: spaceSeparated,\n    ariaDetails: null,\n    ariaDisabled: booleanish,\n    ariaDropEffect: spaceSeparated,\n    ariaErrorMessage: null,\n    ariaExpanded: booleanish,\n    ariaFlowTo: spaceSeparated,\n    ariaGrabbed: booleanish,\n    ariaHasPopup: null,\n    ariaHidden: booleanish,\n    ariaInvalid: null,\n    ariaKeyShortcuts: null,\n    ariaLabel: null,\n    ariaLabelledBy: spaceSeparated,\n    ariaLevel: number,\n    ariaLive: null,\n    ariaModal: booleanish,\n    ariaMultiLine: booleanish,\n    ariaMultiSelectable: booleanish,\n    ariaOrientation: null,\n    ariaOwns: spaceSeparated,\n    ariaPlaceholder: null,\n    ariaPosInSet: number,\n    ariaPressed: booleanish,\n    ariaReadOnly: booleanish,\n    ariaRelevant: null,\n    ariaRequired: booleanish,\n    ariaRoleDescription: spaceSeparated,\n    ariaRowCount: number,\n    ariaRowIndex: number,\n    ariaRowSpan: number,\n    ariaSelected: booleanish,\n    ariaSetSize: number,\n    ariaSort: null,\n    ariaValueMax: number,\n    ariaValueMin: number,\n    ariaValueNow: number,\n    ariaValueText: null,\n    role: null\n  }\n})\n\nfunction ariaTransform(_, prop) {\n  return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n}\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\nvar caseInsensitiveTransform = require('./util/case-insensitive-transform')\n\nvar boolean = types.boolean\nvar overloadedBoolean = types.overloadedBoolean\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\nvar commaSeparated = types.commaSeparated\n\nmodule.exports = create({\n  space: 'html',\n  attributes: {\n    acceptcharset: 'accept-charset',\n    classname: 'class',\n    htmlfor: 'for',\n    httpequiv: 'http-equiv'\n  },\n  transform: caseInsensitiveTransform,\n  mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n  properties: {\n    // Standard Properties.\n    abbr: null,\n    accept: commaSeparated,\n    acceptCharset: spaceSeparated,\n    accessKey: spaceSeparated,\n    action: null,\n    allow: null,\n    allowFullScreen: boolean,\n    allowPaymentRequest: boolean,\n    allowUserMedia: boolean,\n    alt: null,\n    as: null,\n    async: boolean,\n    autoCapitalize: null,\n    autoComplete: spaceSeparated,\n    autoFocus: boolean,\n    autoPlay: boolean,\n    capture: boolean,\n    charSet: null,\n    checked: boolean,\n    cite: null,\n    className: spaceSeparated,\n    cols: number,\n    colSpan: null,\n    content: null,\n    contentEditable: booleanish,\n    controls: boolean,\n    controlsList: spaceSeparated,\n    coords: number | commaSeparated,\n    crossOrigin: null,\n    data: null,\n    dateTime: null,\n    decoding: null,\n    default: boolean,\n    defer: boolean,\n    dir: null,\n    dirName: null,\n    disabled: boolean,\n    download: overloadedBoolean,\n    draggable: booleanish,\n    encType: null,\n    enterKeyHint: null,\n    form: null,\n    formAction: null,\n    formEncType: null,\n    formMethod: null,\n    formNoValidate: boolean,\n    formTarget: null,\n    headers: spaceSeparated,\n    height: number,\n    hidden: boolean,\n    high: number,\n    href: null,\n    hrefLang: null,\n    htmlFor: spaceSeparated,\n    httpEquiv: spaceSeparated,\n    id: null,\n    imageSizes: null,\n    imageSrcSet: commaSeparated,\n    inputMode: null,\n    integrity: null,\n    is: null,\n    isMap: boolean,\n    itemId: null,\n    itemProp: spaceSeparated,\n    itemRef: spaceSeparated,\n    itemScope: boolean,\n    itemType: spaceSeparated,\n    kind: null,\n    label: null,\n    lang: null,\n    language: null,\n    list: null,\n    loading: null,\n    loop: boolean,\n    low: number,\n    manifest: null,\n    max: null,\n    maxLength: number,\n    media: null,\n    method: null,\n    min: null,\n    minLength: number,\n    multiple: boolean,\n    muted: boolean,\n    name: null,\n    nonce: null,\n    noModule: boolean,\n    noValidate: boolean,\n    onAbort: null,\n    onAfterPrint: null,\n    onAuxClick: null,\n    onBeforePrint: null,\n    onBeforeUnload: null,\n    onBlur: null,\n    onCancel: null,\n    onCanPlay: null,\n    onCanPlayThrough: null,\n    onChange: null,\n    onClick: null,\n    onClose: null,\n    onContextMenu: null,\n    onCopy: null,\n    onCueChange: null,\n    onCut: null,\n    onDblClick: null,\n    onDrag: null,\n    onDragEnd: null,\n    onDragEnter: null,\n    onDragExit: null,\n    onDragLeave: null,\n    onDragOver: null,\n    onDragStart: null,\n    onDrop: null,\n    onDurationChange: null,\n    onEmptied: null,\n    onEnded: null,\n    onError: null,\n    onFocus: null,\n    onFormData: null,\n    onHashChange: null,\n    onInput: null,\n    onInvalid: null,\n    onKeyDown: null,\n    onKeyPress: null,\n    onKeyUp: null,\n    onLanguageChange: null,\n    onLoad: null,\n    onLoadedData: null,\n    onLoadedMetadata: null,\n    onLoadEnd: null,\n    onLoadStart: null,\n    onMessage: null,\n    onMessageError: null,\n    onMouseDown: null,\n    onMouseEnter: null,\n    onMouseLeave: null,\n    onMouseMove: null,\n    onMouseOut: null,\n    onMouseOver: null,\n    onMouseUp: null,\n    onOffline: null,\n    onOnline: null,\n    onPageHide: null,\n    onPageShow: null,\n    onPaste: null,\n    onPause: null,\n    onPlay: null,\n    onPlaying: null,\n    onPopState: null,\n    onProgress: null,\n    onRateChange: null,\n    onRejectionHandled: null,\n    onReset: null,\n    onResize: null,\n    onScroll: null,\n    onSecurityPolicyViolation: null,\n    onSeeked: null,\n    onSeeking: null,\n    onSelect: null,\n    onSlotChange: null,\n    onStalled: null,\n    onStorage: null,\n    onSubmit: null,\n    onSuspend: null,\n    onTimeUpdate: null,\n    onToggle: null,\n    onUnhandledRejection: null,\n    onUnload: null,\n    onVolumeChange: null,\n    onWaiting: null,\n    onWheel: null,\n    open: boolean,\n    optimum: number,\n    pattern: null,\n    ping: spaceSeparated,\n    placeholder: null,\n    playsInline: boolean,\n    poster: null,\n    preload: null,\n    readOnly: boolean,\n    referrerPolicy: null,\n    rel: spaceSeparated,\n    required: boolean,\n    reversed: boolean,\n    rows: number,\n    rowSpan: number,\n    sandbox: spaceSeparated,\n    scope: null,\n    scoped: boolean,\n    seamless: boolean,\n    selected: boolean,\n    shape: null,\n    size: number,\n    sizes: null,\n    slot: null,\n    span: number,\n    spellCheck: booleanish,\n    src: null,\n    srcDoc: null,\n    srcLang: null,\n    srcSet: commaSeparated,\n    start: number,\n    step: null,\n    style: null,\n    tabIndex: number,\n    target: null,\n    title: null,\n    translate: null,\n    type: null,\n    typeMustMatch: boolean,\n    useMap: null,\n    value: booleanish,\n    width: number,\n    wrap: null,\n\n    // Legacy.\n    // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n    align: null, // Several. Use CSS `text-align` instead,\n    aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n    archive: spaceSeparated, // `<object>`. List of URIs to archives\n    axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n    background: null, // `<body>`. Use CSS `background-image` instead\n    bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n    border: number, // `<table>`. Use CSS `border-width` instead,\n    borderColor: null, // `<table>`. Use CSS `border-color` instead,\n    bottomMargin: number, // `<body>`\n    cellPadding: null, // `<table>`\n    cellSpacing: null, // `<table>`\n    char: null, // Several table elements. When `align=char`, sets the character to align on\n    charOff: null, // Several table elements. When `char`, offsets the alignment\n    classId: null, // `<object>`\n    clear: null, // `<br>`. Use CSS `clear` instead\n    code: null, // `<object>`\n    codeBase: null, // `<object>`\n    codeType: null, // `<object>`\n    color: null, // `<font>` and `<hr>`. Use CSS instead\n    compact: boolean, // Lists. Use CSS to reduce space between items instead\n    declare: boolean, // `<object>`\n    event: null, // `<script>`\n    face: null, // `<font>`. Use CSS instead\n    frame: null, // `<table>`\n    frameBorder: null, // `<iframe>`. Use CSS `border` instead\n    hSpace: number, // `<img>` and `<object>`\n    leftMargin: number, // `<body>`\n    link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n    longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n    lowSrc: null, // `<img>`. Use a `<picture>`\n    marginHeight: number, // `<body>`\n    marginWidth: number, // `<body>`\n    noResize: boolean, // `<frame>`\n    noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n    noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n    noWrap: boolean, // `<td>` and `<th>`\n    object: null, // `<applet>`\n    profile: null, // `<head>`\n    prompt: null, // `<isindex>`\n    rev: null, // `<link>`\n    rightMargin: number, // `<body>`\n    rules: null, // `<table>`\n    scheme: null, // `<meta>`\n    scrolling: booleanish, // `<frame>`. Use overflow in the child context\n    standby: null, // `<object>`\n    summary: null, // `<table>`\n    text: null, // `<body>`. Use CSS `color` instead\n    topMargin: number, // `<body>`\n    valueType: null, // `<param>`\n    version: null, // `<html>`. Use a doctype.\n    vAlign: null, // Several. Use CSS `vertical-align` instead\n    vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n    vSpace: number, // `<img>` and `<object>`\n\n    // Non-standard Properties.\n    allowTransparency: null,\n    autoCorrect: null,\n    autoSave: null,\n    disablePictureInPicture: boolean,\n    disableRemotePlayback: boolean,\n    prefix: null,\n    property: null,\n    results: number,\n    security: null,\n    unselectable: null\n  }\n})\n","'use strict'\n\nvar caseSensitiveTransform = require('./case-sensitive-transform')\n\nmodule.exports = caseInsensitiveTransform\n\nfunction caseInsensitiveTransform(attributes, property) {\n  return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","'use strict'\n\nmodule.exports = caseSensitiveTransform\n\nfunction caseSensitiveTransform(attributes, attribute) {\n  return attribute in attributes ? attributes[attribute] : attribute\n}\n","'use strict'\n\nvar normalize = require('../../normalize')\nvar Schema = require('./schema')\nvar DefinedInfo = require('./defined-info')\n\nmodule.exports = create\n\nfunction create(definition) {\n  var space = definition.space\n  var mustUseProperty = definition.mustUseProperty || []\n  var attributes = definition.attributes || {}\n  var props = definition.properties\n  var transform = definition.transform\n  var property = {}\n  var normal = {}\n  var prop\n  var info\n\n  for (prop in props) {\n    info = new DefinedInfo(\n      prop,\n      transform(attributes, prop),\n      props[prop],\n      space\n    )\n\n    if (mustUseProperty.indexOf(prop) !== -1) {\n      info.mustUseProperty = true\n    }\n\n    property[prop] = info\n\n    normal[normalize(prop)] = prop\n    normal[normalize(info.attribute)] = prop\n  }\n\n  return new Schema(property, normal, space)\n}\n","'use strict'\n\nvar Info = require('./info')\nvar types = require('./types')\n\nmodule.exports = DefinedInfo\n\nDefinedInfo.prototype = new Info()\nDefinedInfo.prototype.defined = true\n\nvar checks = [\n  'boolean',\n  'booleanish',\n  'overloadedBoolean',\n  'number',\n  'commaSeparated',\n  'spaceSeparated',\n  'commaOrSpaceSeparated'\n]\nvar checksLength = checks.length\n\nfunction DefinedInfo(property, attribute, mask, space) {\n  var index = -1\n  var check\n\n  mark(this, 'space', space)\n\n  Info.call(this, property, attribute)\n\n  while (++index < checksLength) {\n    check = checks[index]\n    mark(this, check, (mask & types[check]) === types[check])\n  }\n}\n\nfunction mark(values, key, value) {\n  if (value) {\n    values[key] = value\n  }\n}\n","'use strict'\n\nmodule.exports = Info\n\nvar proto = Info.prototype\n\nproto.space = null\nproto.attribute = null\nproto.property = null\nproto.boolean = false\nproto.booleanish = false\nproto.overloadedBoolean = false\nproto.number = false\nproto.commaSeparated = false\nproto.spaceSeparated = false\nproto.commaOrSpaceSeparated = false\nproto.mustUseProperty = false\nproto.defined = false\n\nfunction Info(property, attribute) {\n  this.property = property\n  this.attribute = attribute\n}\n","'use strict'\n\nvar xtend = require('xtend')\nvar Schema = require('./schema')\n\nmodule.exports = merge\n\nfunction merge(definitions) {\n  var length = definitions.length\n  var property = []\n  var normal = []\n  var index = -1\n  var info\n  var space\n\n  while (++index < length) {\n    info = definitions[index]\n    property.push(info.property)\n    normal.push(info.normal)\n    space = info.space\n  }\n\n  return new Schema(\n    xtend.apply(null, property),\n    xtend.apply(null, normal),\n    space\n  )\n}\n","'use strict'\n\nmodule.exports = Schema\n\nvar proto = Schema.prototype\n\nproto.space = null\nproto.normal = {}\nproto.property = {}\n\nfunction Schema(property, normal, space) {\n  this.property = property\n  this.normal = normal\n\n  if (space) {\n    this.space = space\n  }\n}\n","'use strict'\n\nvar powers = 0\n\nexports.boolean = increment()\nexports.booleanish = increment()\nexports.overloadedBoolean = increment()\nexports.number = increment()\nexports.spaceSeparated = increment()\nexports.commaSeparated = increment()\nexports.commaOrSpaceSeparated = increment()\n\nfunction increment() {\n  return Math.pow(2, ++powers)\n}\n","'use strict'\n\nvar create = require('./util/create')\n\nmodule.exports = create({\n  space: 'xlink',\n  transform: xlinkTransform,\n  properties: {\n    xLinkActuate: null,\n    xLinkArcRole: null,\n    xLinkHref: null,\n    xLinkRole: null,\n    xLinkShow: null,\n    xLinkTitle: null,\n    xLinkType: null\n  }\n})\n\nfunction xlinkTransform(_, prop) {\n  return 'xlink:' + prop.slice(5).toLowerCase()\n}\n","'use strict'\n\nvar create = require('./util/create')\n\nmodule.exports = create({\n  space: 'xml',\n  transform: xmlTransform,\n  properties: {\n    xmlLang: null,\n    xmlBase: null,\n    xmlSpace: null\n  }\n})\n\nfunction xmlTransform(_, prop) {\n  return 'xml:' + prop.slice(3).toLowerCase()\n}\n","'use strict'\n\nvar create = require('./util/create')\nvar caseInsensitiveTransform = require('./util/case-insensitive-transform')\n\nmodule.exports = create({\n  space: 'xmlns',\n  attributes: {\n    xmlnsxlink: 'xmlns:xlink'\n  },\n  transform: caseInsensitiveTransform,\n  properties: {\n    xmlns: null,\n    xmlnsXLink: null\n  }\n})\n","'use strict'\n\nmodule.exports = normalize\n\nfunction normalize(value) {\n  return value.toLowerCase()\n}\n","'use strict'\n\nexports.parse = parse\nexports.stringify = stringify\n\nvar empty = ''\nvar space = ' '\nvar whiteSpace = /[ \\t\\n\\r\\f]+/g\n\nfunction parse(value) {\n  var input = String(value || empty).trim()\n  return input === empty ? [] : input.split(whiteSpace)\n}\n\nfunction stringify(values) {\n  return values.join(space).trim()\n}\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n  if (typeof style !== 'string') {\n    throw new TypeError('First argument must be a string');\n  }\n\n  if (!style) return [];\n\n  options = options || {};\n\n  /**\n   * Positional.\n   */\n  var lineno = 1;\n  var column = 1;\n\n  /**\n   * Update lineno and column based on `str`.\n   *\n   * @param {String} str\n   */\n  function updatePosition(str) {\n    var lines = str.match(NEWLINE_REGEX);\n    if (lines) lineno += lines.length;\n    var i = str.lastIndexOf(NEWLINE);\n    column = ~i ? str.length - i : column + str.length;\n  }\n\n  /**\n   * Mark position and patch `node.position`.\n   *\n   * @return {Function}\n   */\n  function position() {\n    var start = { line: lineno, column: column };\n    return function(node) {\n      node.position = new Position(start);\n      whitespace();\n      return node;\n    };\n  }\n\n  /**\n   * Store position information for a node.\n   *\n   * @constructor\n   * @property {Object} start\n   * @property {Object} end\n   * @property {undefined|String} source\n   */\n  function Position(start) {\n    this.start = start;\n    this.end = { line: lineno, column: column };\n    this.source = options.source;\n  }\n\n  /**\n   * Non-enumerable source string.\n   */\n  Position.prototype.content = style;\n\n  var errorsList = [];\n\n  /**\n   * Error `msg`.\n   *\n   * @param {String} msg\n   * @throws {Error}\n   */\n  function error(msg) {\n    var err = new Error(\n      options.source + ':' + lineno + ':' + column + ': ' + msg\n    );\n    err.reason = msg;\n    err.filename = options.source;\n    err.line = lineno;\n    err.column = column;\n    err.source = style;\n\n    if (options.silent) {\n      errorsList.push(err);\n    } else {\n      throw err;\n    }\n  }\n\n  /**\n   * Match `re` and return captures.\n   *\n   * @param {RegExp} re\n   * @return {undefined|Array}\n   */\n  function match(re) {\n    var m = re.exec(style);\n    if (!m) return;\n    var str = m[0];\n    updatePosition(str);\n    style = style.slice(str.length);\n    return m;\n  }\n\n  /**\n   * Parse whitespace.\n   */\n  function whitespace() {\n    match(WHITESPACE_REGEX);\n  }\n\n  /**\n   * Parse comments.\n   *\n   * @param {Object[]} [rules]\n   * @return {Object[]}\n   */\n  function comments(rules) {\n    var c;\n    rules = rules || [];\n    while ((c = comment())) {\n      if (c !== false) {\n        rules.push(c);\n      }\n    }\n    return rules;\n  }\n\n  /**\n   * Parse comment.\n   *\n   * @return {Object}\n   * @throws {Error}\n   */\n  function comment() {\n    var pos = position();\n    if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n    var i = 2;\n    while (\n      EMPTY_STRING != style.charAt(i) &&\n      (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n    ) {\n      ++i;\n    }\n    i += 2;\n\n    if (EMPTY_STRING === style.charAt(i - 1)) {\n      return error('End of comment missing');\n    }\n\n    var str = style.slice(2, i - 2);\n    column += 2;\n    updatePosition(str);\n    style = style.slice(i);\n    column += 2;\n\n    return pos({\n      type: TYPE_COMMENT,\n      comment: str\n    });\n  }\n\n  /**\n   * Parse declaration.\n   *\n   * @return {Object}\n   * @throws {Error}\n   */\n  function declaration() {\n    var pos = position();\n\n    // prop\n    var prop = match(PROPERTY_REGEX);\n    if (!prop) return;\n    comment();\n\n    // :\n    if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n    // val\n    var val = match(VALUE_REGEX);\n\n    var ret = pos({\n      type: TYPE_DECLARATION,\n      property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n      value: val\n        ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n        : EMPTY_STRING\n    });\n\n    // ;\n    match(SEMICOLON_REGEX);\n\n    return ret;\n  }\n\n  /**\n   * Parse declarations.\n   *\n   * @return {Object[]}\n   */\n  function declarations() {\n    var decls = [];\n\n    comments(decls);\n\n    // declarations\n    var decl;\n    while ((decl = declaration())) {\n      if (decl !== false) {\n        decls.push(decl);\n        comments(decls);\n      }\n    }\n\n    return decls;\n  }\n\n  whitespace();\n  return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n  return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","'use strict'\n\nmodule.exports = alphabetical\n\n// Check if the given character code, or the character code at the first\n// character, is alphabetical.\nfunction alphabetical(character) {\n  var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n  return (\n    (code >= 97 && code <= 122) /* a-z */ ||\n    (code >= 65 && code <= 90) /* A-Z */\n  )\n}\n","'use strict'\n\nvar alphabetical = require('is-alphabetical')\nvar decimal = require('is-decimal')\n\nmodule.exports = alphanumerical\n\n// Check if the given character code, or the character code at the first\n// character, is alphanumerical.\nfunction alphanumerical(character) {\n  return alphabetical(character) || decimal(character)\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n  return obj != null && obj.constructor != null &&\n    typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict'\n\nmodule.exports = decimal\n\n// Check if the given character code, or the character code at the first\n// character, is decimal.\nfunction decimal(character) {\n  var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n  return code >= 48 && code <= 57 /* 0-9 */\n}\n","'use strict'\n\nmodule.exports = hexadecimal\n\n// Check if the given character code, or the character code at the first\n// character, is hexadecimal.\nfunction hexadecimal(character) {\n  var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n  return (\n    (code >= 97 /* a */ && code <= 102) /* z */ ||\n    (code >= 65 /* A */ && code <= 70) /* Z */ ||\n    (code >= 48 /* A */ && code <= 57) /* Z */\n  )\n}\n","'use strict'\n\n/* eslint-env browser */\n\nvar el\n\nvar semicolon = 59 //  ';'\n\nmodule.exports = decodeEntity\n\nfunction decodeEntity(characters) {\n  var entity = '&' + characters + ';'\n  var char\n\n  el = el || document.createElement('i')\n  el.innerHTML = entity\n  char = el.textContent\n\n  // Some entities do not require the closing semicolon (`&not` - for instance),\n  // which leads to situations where parsing the assumed entity of &notit; 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 (`&semi;`), we can\n  // assume that the matching was incomplete\n  if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n    return false\n  }\n\n  // If the decoded string is equal to the input, the entity was not valid\n  return char === entity ? false : char\n}\n","'use strict'\n\nvar legacy = require('character-entities-legacy')\nvar invalid = require('character-reference-invalid')\nvar decimal = require('is-decimal')\nvar hexadecimal = require('is-hexadecimal')\nvar alphanumerical = require('is-alphanumerical')\nvar decodeEntity = require('./decode-entity')\n\nmodule.exports = parseEntities\n\nvar own = {}.hasOwnProperty\nvar fromCharCode = String.fromCharCode\nvar noop = Function.prototype\n\n// Default settings.\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}\n\n// Characters.\nvar tab = 9 // '\\t'\nvar lineFeed = 10 // '\\n'\nvar formFeed = 12 // '\\f'\nvar space = 32 // ' '\nvar ampersand = 38 // '&'\nvar semicolon = 59 // ';'\nvar lessThan = 60 // '<'\nvar equalsTo = 61 // '='\nvar numberSign = 35 // '#'\nvar uppercaseX = 88 // 'X'\nvar lowercaseX = 120 // 'x'\nvar replacementCharacter = 65533 // '�'\n\n// Reference types.\nvar name = 'named'\nvar hexa = 'hexadecimal'\nvar deci = 'decimal'\n\n// Map of bases.\nvar bases = {}\n\nbases[hexa] = 16\nbases[deci] = 10\n\n// 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).\nvar tests = {}\n\ntests[name] = alphanumerical\ntests[deci] = decimal\ntests[hexa] = hexadecimal\n\n// Warning types.\nvar namedNotTerminated = 1\nvar numericNotTerminated = 2\nvar namedEmpty = 3\nvar numericEmpty = 4\nvar namedUnknown = 5\nvar numericDisallowed = 6\nvar numericProhibited = 7\n\n// Warning messages.\nvar messages = {}\n\nmessages[namedNotTerminated] =\n  'Named character references must be terminated by a semicolon'\nmessages[numericNotTerminated] =\n  '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] =\n  'Numeric character references cannot be disallowed'\nmessages[numericProhibited] =\n  'Numeric character references cannot be outside the permissible Unicode range'\n\n// Wrap to ensure clean parameters are given to `parse`.\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] =\n      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}\n\n// Parse entities.\n// eslint-disable-next-line complexity\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  }\n\n  // Cache the current point.\n  prev = now()\n\n  // Wrap `handleWarning`.\n  warning = handleWarning ? parseError : noop\n\n  // Ensure the algorithm walks over the first character and the end\n  // (inclusive).\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)\n\n      // The behaviour depends on the identity of the next character.\n      if (\n        following === tab ||\n        following === lineFeed ||\n        following === formFeed ||\n        following === space ||\n        following === ampersand ||\n        following === lessThan ||\n        following !== following ||\n        (additional && following === additional)\n      ) {\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\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\n\n        // The behaviour further depends on the next character.\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)\n\n        // 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        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\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) {\n        // 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          }\n\n          // If the reference is not terminated, warn.\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        }\n\n        // When terminated and number, parse as either hexadecimal or decimal.\n        reference = parseInt(characters, bases[type])\n\n        // Trigger a warning when the parsed number is prohibited, and replace\n        // with replacement character.\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 = ''\n\n          // Trigger a warning when the parsed number should not be used.\n          if (disallowed(reference)) {\n            warning(numericDisallowed, diff)\n          }\n\n          // Stringify the number.\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      }\n\n      // Found it!\n      // First eat the queued characters as normal text, then eat an entity.\n      if (reference) {\n        flush()\n\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(\n            referenceContext,\n            reference,\n            {start: prev, end: next},\n            value.slice(start - 1, end)\n          )\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 (\n        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  }\n\n  // Return the reduced nodes.\n  return result.join('')\n\n  // Get current position.\n  function now() {\n    return {\n      line: line,\n      column: column,\n      offset: index + (pos.offset || 0)\n    }\n  }\n\n  // “Throw” a parse-error: a warning.\n  function parseError(code, offset) {\n    var position = now()\n\n    position.column += offset\n    position.offset += offset\n\n    handleWarning.call(warningContext, messages[code], position, code)\n  }\n\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  function flush() {\n    if (queue) {\n      result.push(queue)\n\n      if (handleText) {\n        handleText.call(textContext, queue, {start: prev, end: now()})\n      }\n\n      queue = ''\n    }\n  }\n}\n\n// Check if `character` is outside the permissible unicode range.\nfunction prohibited(code) {\n  return (code >= 0xd800 && code <= 0xdfff) || code > 0x10ffff\n}\n\n// Check if `character` is disallowed.\nfunction disallowed(code) {\n  return (\n    (code >= 0x0001 && code <= 0x0008) ||\n    code === 0x000b ||\n    (code >= 0x000d && code <= 0x001f) ||\n    (code >= 0x007f && code <= 0x009f) ||\n    (code >= 0xfdd0 && code <= 0xfdef) ||\n    (code & 0xffff) === 0xffff ||\n    (code & 0xffff) === 0xfffe\n  )\n}\n","'use strict';\n\nconst { DOCUMENT_MODE } = require('./html');\n\n//Const\nconst VALID_DOCTYPE_NAME = 'html';\nconst VALID_SYSTEM_ID = 'about:legacy-compat';\nconst QUIRKS_MODE_SYSTEM_ID = 'http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd';\n\nconst QUIRKS_MODE_PUBLIC_ID_PREFIXES = [\n    '+//silmaril//dtd html pro v0r11 19970101//',\n    '-//as//dtd html 3.0 aswedit + extensions//',\n    '-//advasoft ltd//dtd html 3.0 aswedit + extensions//',\n    '-//ietf//dtd html 2.0 level 1//',\n    '-//ietf//dtd html 2.0 level 2//',\n    '-//ietf//dtd html 2.0 strict level 1//',\n    '-//ietf//dtd html 2.0 strict level 2//',\n    '-//ietf//dtd html 2.0 strict//',\n    '-//ietf//dtd html 2.0//',\n    '-//ietf//dtd html 2.1e//',\n    '-//ietf//dtd html 3.0//',\n    '-//ietf//dtd html 3.2 final//',\n    '-//ietf//dtd html 3.2//',\n    '-//ietf//dtd html 3//',\n    '-//ietf//dtd html level 0//',\n    '-//ietf//dtd html level 1//',\n    '-//ietf//dtd html level 2//',\n    '-//ietf//dtd html level 3//',\n    '-//ietf//dtd html strict level 0//',\n    '-//ietf//dtd html strict level 1//',\n    '-//ietf//dtd html strict level 2//',\n    '-//ietf//dtd html strict level 3//',\n    '-//ietf//dtd html strict//',\n    '-//ietf//dtd html//',\n    '-//metrius//dtd metrius presentational//',\n    '-//microsoft//dtd internet explorer 2.0 html strict//',\n    '-//microsoft//dtd internet explorer 2.0 html//',\n    '-//microsoft//dtd internet explorer 2.0 tables//',\n    '-//microsoft//dtd internet explorer 3.0 html strict//',\n    '-//microsoft//dtd internet explorer 3.0 html//',\n    '-//microsoft//dtd internet explorer 3.0 tables//',\n    '-//netscape comm. corp.//dtd html//',\n    '-//netscape comm. corp.//dtd strict html//',\n    \"-//o'reilly and associates//dtd html 2.0//\",\n    \"-//o'reilly and associates//dtd html extended 1.0//\",\n    \"-//o'reilly and associates//dtd html extended relaxed 1.0//\",\n    '-//sq//dtd html 2.0 hotmetal + extensions//',\n    '-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//',\n    '-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//',\n    '-//spyglass//dtd html 2.0 extended//',\n    '-//sun microsystems corp.//dtd hotjava html//',\n    '-//sun microsystems corp.//dtd hotjava strict html//',\n    '-//w3c//dtd html 3 1995-03-24//',\n    '-//w3c//dtd html 3.2 draft//',\n    '-//w3c//dtd html 3.2 final//',\n    '-//w3c//dtd html 3.2//',\n    '-//w3c//dtd html 3.2s draft//',\n    '-//w3c//dtd html 4.0 frameset//',\n    '-//w3c//dtd html 4.0 transitional//',\n    '-//w3c//dtd html experimental 19960712//',\n    '-//w3c//dtd html experimental 970421//',\n    '-//w3c//dtd w3 html//',\n    '-//w3o//dtd w3 html 3.0//',\n    '-//webtechs//dtd mozilla html 2.0//',\n    '-//webtechs//dtd mozilla html//'\n];\n\nconst QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = QUIRKS_MODE_PUBLIC_ID_PREFIXES.concat([\n    '-//w3c//dtd html 4.01 frameset//',\n    '-//w3c//dtd html 4.01 transitional//'\n]);\n\nconst QUIRKS_MODE_PUBLIC_IDS = ['-//w3o//dtd w3 html strict 3.0//en//', '-/w3c/dtd html 4.0 transitional/en', 'html'];\nconst LIMITED_QUIRKS_PUBLIC_ID_PREFIXES = ['-//w3c//dtd xhtml 1.0 frameset//', '-//w3c//dtd xhtml 1.0 transitional//'];\n\nconst LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES = LIMITED_QUIRKS_PUBLIC_ID_PREFIXES.concat([\n    '-//w3c//dtd html 4.01 frameset//',\n    '-//w3c//dtd html 4.01 transitional//'\n]);\n\n//Utils\nfunction enquoteDoctypeId(id) {\n    const quote = id.indexOf('\"') !== -1 ? \"'\" : '\"';\n\n    return quote + id + quote;\n}\n\nfunction hasPrefix(publicId, prefixes) {\n    for (let i = 0; i < prefixes.length; i++) {\n        if (publicId.indexOf(prefixes[i]) === 0) {\n            return true;\n        }\n    }\n\n    return false;\n}\n\n//API\nexports.isConforming = function(token) {\n    return (\n        token.name === VALID_DOCTYPE_NAME &&\n        token.publicId === null &&\n        (token.systemId === null || token.systemId === VALID_SYSTEM_ID)\n    );\n};\n\nexports.getDocumentMode = function(token) {\n    if (token.name !== VALID_DOCTYPE_NAME) {\n        return DOCUMENT_MODE.QUIRKS;\n    }\n\n    const systemId = token.systemId;\n\n    if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID) {\n        return DOCUMENT_MODE.QUIRKS;\n    }\n\n    let publicId = token.publicId;\n\n    if (publicId !== null) {\n        publicId = publicId.toLowerCase();\n\n        if (QUIRKS_MODE_PUBLIC_IDS.indexOf(publicId) > -1) {\n            return DOCUMENT_MODE.QUIRKS;\n        }\n\n        let prefixes = systemId === null ? QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES : QUIRKS_MODE_PUBLIC_ID_PREFIXES;\n\n        if (hasPrefix(publicId, prefixes)) {\n            return DOCUMENT_MODE.QUIRKS;\n        }\n\n        prefixes =\n            systemId === null ? LIMITED_QUIRKS_PUBLIC_ID_PREFIXES : LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES;\n\n        if (hasPrefix(publicId, prefixes)) {\n            return DOCUMENT_MODE.LIMITED_QUIRKS;\n        }\n    }\n\n    return DOCUMENT_MODE.NO_QUIRKS;\n};\n\nexports.serializeContent = function(name, publicId, systemId) {\n    let str = '!DOCTYPE ';\n\n    if (name) {\n        str += name;\n    }\n\n    if (publicId) {\n        str += ' PUBLIC ' + enquoteDoctypeId(publicId);\n    } else if (systemId) {\n        str += ' SYSTEM';\n    }\n\n    if (systemId !== null) {\n        str += ' ' + enquoteDoctypeId(systemId);\n    }\n\n    return str;\n};\n","'use strict';\n\nmodule.exports = {\n    controlCharacterInInputStream: 'control-character-in-input-stream',\n    noncharacterInInputStream: 'noncharacter-in-input-stream',\n    surrogateInInputStream: 'surrogate-in-input-stream',\n    nonVoidHtmlElementStartTagWithTrailingSolidus: 'non-void-html-element-start-tag-with-trailing-solidus',\n    endTagWithAttributes: 'end-tag-with-attributes',\n    endTagWithTrailingSolidus: 'end-tag-with-trailing-solidus',\n    unexpectedSolidusInTag: 'unexpected-solidus-in-tag',\n    unexpectedNullCharacter: 'unexpected-null-character',\n    unexpectedQuestionMarkInsteadOfTagName: 'unexpected-question-mark-instead-of-tag-name',\n    invalidFirstCharacterOfTagName: 'invalid-first-character-of-tag-name',\n    unexpectedEqualsSignBeforeAttributeName: 'unexpected-equals-sign-before-attribute-name',\n    missingEndTagName: 'missing-end-tag-name',\n    unexpectedCharacterInAttributeName: 'unexpected-character-in-attribute-name',\n    unknownNamedCharacterReference: 'unknown-named-character-reference',\n    missingSemicolonAfterCharacterReference: 'missing-semicolon-after-character-reference',\n    unexpectedCharacterAfterDoctypeSystemIdentifier: 'unexpected-character-after-doctype-system-identifier',\n    unexpectedCharacterInUnquotedAttributeValue: 'unexpected-character-in-unquoted-attribute-value',\n    eofBeforeTagName: 'eof-before-tag-name',\n    eofInTag: 'eof-in-tag',\n    missingAttributeValue: 'missing-attribute-value',\n    missingWhitespaceBetweenAttributes: 'missing-whitespace-between-attributes',\n    missingWhitespaceAfterDoctypePublicKeyword: 'missing-whitespace-after-doctype-public-keyword',\n    missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers:\n        'missing-whitespace-between-doctype-public-and-system-identifiers',\n    missingWhitespaceAfterDoctypeSystemKeyword: 'missing-whitespace-after-doctype-system-keyword',\n    missingQuoteBeforeDoctypePublicIdentifier: 'missing-quote-before-doctype-public-identifier',\n    missingQuoteBeforeDoctypeSystemIdentifier: 'missing-quote-before-doctype-system-identifier',\n    missingDoctypePublicIdentifier: 'missing-doctype-public-identifier',\n    missingDoctypeSystemIdentifier: 'missing-doctype-system-identifier',\n    abruptDoctypePublicIdentifier: 'abrupt-doctype-public-identifier',\n    abruptDoctypeSystemIdentifier: 'abrupt-doctype-system-identifier',\n    cdataInHtmlContent: 'cdata-in-html-content',\n    incorrectlyOpenedComment: 'incorrectly-opened-comment',\n    eofInScriptHtmlCommentLikeText: 'eof-in-script-html-comment-like-text',\n    eofInDoctype: 'eof-in-doctype',\n    nestedComment: 'nested-comment',\n    abruptClosingOfEmptyComment: 'abrupt-closing-of-empty-comment',\n    eofInComment: 'eof-in-comment',\n    incorrectlyClosedComment: 'incorrectly-closed-comment',\n    eofInCdata: 'eof-in-cdata',\n    absenceOfDigitsInNumericCharacterReference: 'absence-of-digits-in-numeric-character-reference',\n    nullCharacterReference: 'null-character-reference',\n    surrogateCharacterReference: 'surrogate-character-reference',\n    characterReferenceOutsideUnicodeRange: 'character-reference-outside-unicode-range',\n    controlCharacterReference: 'control-character-reference',\n    noncharacterCharacterReference: 'noncharacter-character-reference',\n    missingWhitespaceBeforeDoctypeName: 'missing-whitespace-before-doctype-name',\n    missingDoctypeName: 'missing-doctype-name',\n    invalidCharacterSequenceAfterDoctypeName: 'invalid-character-sequence-after-doctype-name',\n    duplicateAttribute: 'duplicate-attribute',\n    nonConformingDoctype: 'non-conforming-doctype',\n    missingDoctype: 'missing-doctype',\n    misplacedDoctype: 'misplaced-doctype',\n    endTagWithoutMatchingOpenElement: 'end-tag-without-matching-open-element',\n    closingOfElementWithOpenChildElements: 'closing-of-element-with-open-child-elements',\n    disallowedContentInNoscriptInHead: 'disallowed-content-in-noscript-in-head',\n    openElementsLeftAfterEof: 'open-elements-left-after-eof',\n    abandonedHeadElementChild: 'abandoned-head-element-child',\n    misplacedStartTagForHeadElement: 'misplaced-start-tag-for-head-element',\n    nestedNoscriptInHead: 'nested-noscript-in-head',\n    eofInElementThatCanContainOnlyText: 'eof-in-element-that-can-contain-only-text'\n};\n","'use strict';\n\nconst Tokenizer = require('../tokenizer');\nconst HTML = require('./html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\nconst ATTRS = HTML.ATTRS;\n\n//MIME types\nconst MIME_TYPES = {\n    TEXT_HTML: 'text/html',\n    APPLICATION_XML: 'application/xhtml+xml'\n};\n\n//Attributes\nconst DEFINITION_URL_ATTR = 'definitionurl';\nconst ADJUSTED_DEFINITION_URL_ATTR = 'definitionURL';\nconst SVG_ATTRS_ADJUSTMENT_MAP = {\n    attributename: 'attributeName',\n    attributetype: 'attributeType',\n    basefrequency: 'baseFrequency',\n    baseprofile: 'baseProfile',\n    calcmode: 'calcMode',\n    clippathunits: 'clipPathUnits',\n    diffuseconstant: 'diffuseConstant',\n    edgemode: 'edgeMode',\n    filterunits: 'filterUnits',\n    glyphref: 'glyphRef',\n    gradienttransform: 'gradientTransform',\n    gradientunits: 'gradientUnits',\n    kernelmatrix: 'kernelMatrix',\n    kernelunitlength: 'kernelUnitLength',\n    keypoints: 'keyPoints',\n    keysplines: 'keySplines',\n    keytimes: 'keyTimes',\n    lengthadjust: 'lengthAdjust',\n    limitingconeangle: 'limitingConeAngle',\n    markerheight: 'markerHeight',\n    markerunits: 'markerUnits',\n    markerwidth: 'markerWidth',\n    maskcontentunits: 'maskContentUnits',\n    maskunits: 'maskUnits',\n    numoctaves: 'numOctaves',\n    pathlength: 'pathLength',\n    patterncontentunits: 'patternContentUnits',\n    patterntransform: 'patternTransform',\n    patternunits: 'patternUnits',\n    pointsatx: 'pointsAtX',\n    pointsaty: 'pointsAtY',\n    pointsatz: 'pointsAtZ',\n    preservealpha: 'preserveAlpha',\n    preserveaspectratio: 'preserveAspectRatio',\n    primitiveunits: 'primitiveUnits',\n    refx: 'refX',\n    refy: 'refY',\n    repeatcount: 'repeatCount',\n    repeatdur: 'repeatDur',\n    requiredextensions: 'requiredExtensions',\n    requiredfeatures: 'requiredFeatures',\n    specularconstant: 'specularConstant',\n    specularexponent: 'specularExponent',\n    spreadmethod: 'spreadMethod',\n    startoffset: 'startOffset',\n    stddeviation: 'stdDeviation',\n    stitchtiles: 'stitchTiles',\n    surfacescale: 'surfaceScale',\n    systemlanguage: 'systemLanguage',\n    tablevalues: 'tableValues',\n    targetx: 'targetX',\n    targety: 'targetY',\n    textlength: 'textLength',\n    viewbox: 'viewBox',\n    viewtarget: 'viewTarget',\n    xchannelselector: 'xChannelSelector',\n    ychannelselector: 'yChannelSelector',\n    zoomandpan: 'zoomAndPan'\n};\n\nconst XML_ATTRS_ADJUSTMENT_MAP = {\n    'xlink:actuate': { prefix: 'xlink', name: 'actuate', namespace: NS.XLINK },\n    'xlink:arcrole': { prefix: 'xlink', name: 'arcrole', namespace: NS.XLINK },\n    'xlink:href': { prefix: 'xlink', name: 'href', namespace: NS.XLINK },\n    'xlink:role': { prefix: 'xlink', name: 'role', namespace: NS.XLINK },\n    'xlink:show': { prefix: 'xlink', name: 'show', namespace: NS.XLINK },\n    'xlink:title': { prefix: 'xlink', name: 'title', namespace: NS.XLINK },\n    'xlink:type': { prefix: 'xlink', name: 'type', namespace: NS.XLINK },\n    'xml:base': { prefix: 'xml', name: 'base', namespace: NS.XML },\n    'xml:lang': { prefix: 'xml', name: 'lang', namespace: NS.XML },\n    'xml:space': { prefix: 'xml', name: 'space', namespace: NS.XML },\n    xmlns: { prefix: '', name: 'xmlns', namespace: NS.XMLNS },\n    'xmlns:xlink': { prefix: 'xmlns', name: 'xlink', namespace: NS.XMLNS }\n};\n\n//SVG tag names adjustment map\nconst SVG_TAG_NAMES_ADJUSTMENT_MAP = (exports.SVG_TAG_NAMES_ADJUSTMENT_MAP = {\n    altglyph: 'altGlyph',\n    altglyphdef: 'altGlyphDef',\n    altglyphitem: 'altGlyphItem',\n    animatecolor: 'animateColor',\n    animatemotion: 'animateMotion',\n    animatetransform: 'animateTransform',\n    clippath: 'clipPath',\n    feblend: 'feBlend',\n    fecolormatrix: 'feColorMatrix',\n    fecomponenttransfer: 'feComponentTransfer',\n    fecomposite: 'feComposite',\n    feconvolvematrix: 'feConvolveMatrix',\n    fediffuselighting: 'feDiffuseLighting',\n    fedisplacementmap: 'feDisplacementMap',\n    fedistantlight: 'feDistantLight',\n    feflood: 'feFlood',\n    fefunca: 'feFuncA',\n    fefuncb: 'feFuncB',\n    fefuncg: 'feFuncG',\n    fefuncr: 'feFuncR',\n    fegaussianblur: 'feGaussianBlur',\n    feimage: 'feImage',\n    femerge: 'feMerge',\n    femergenode: 'feMergeNode',\n    femorphology: 'feMorphology',\n    feoffset: 'feOffset',\n    fepointlight: 'fePointLight',\n    fespecularlighting: 'feSpecularLighting',\n    fespotlight: 'feSpotLight',\n    fetile: 'feTile',\n    feturbulence: 'feTurbulence',\n    foreignobject: 'foreignObject',\n    glyphref: 'glyphRef',\n    lineargradient: 'linearGradient',\n    radialgradient: 'radialGradient',\n    textpath: 'textPath'\n});\n\n//Tags that causes exit from foreign content\nconst EXITS_FOREIGN_CONTENT = {\n    [$.B]: true,\n    [$.BIG]: true,\n    [$.BLOCKQUOTE]: true,\n    [$.BODY]: true,\n    [$.BR]: true,\n    [$.CENTER]: true,\n    [$.CODE]: true,\n    [$.DD]: true,\n    [$.DIV]: true,\n    [$.DL]: true,\n    [$.DT]: true,\n    [$.EM]: true,\n    [$.EMBED]: true,\n    [$.H1]: true,\n    [$.H2]: true,\n    [$.H3]: true,\n    [$.H4]: true,\n    [$.H5]: true,\n    [$.H6]: true,\n    [$.HEAD]: true,\n    [$.HR]: true,\n    [$.I]: true,\n    [$.IMG]: true,\n    [$.LI]: true,\n    [$.LISTING]: true,\n    [$.MENU]: true,\n    [$.META]: true,\n    [$.NOBR]: true,\n    [$.OL]: true,\n    [$.P]: true,\n    [$.PRE]: true,\n    [$.RUBY]: true,\n    [$.S]: true,\n    [$.SMALL]: true,\n    [$.SPAN]: true,\n    [$.STRONG]: true,\n    [$.STRIKE]: true,\n    [$.SUB]: true,\n    [$.SUP]: true,\n    [$.TABLE]: true,\n    [$.TT]: true,\n    [$.U]: true,\n    [$.UL]: true,\n    [$.VAR]: true\n};\n\n//Check exit from foreign content\nexports.causesExit = function(startTagToken) {\n    const tn = startTagToken.tagName;\n    const isFontWithAttrs =\n        tn === $.FONT &&\n        (Tokenizer.getTokenAttr(startTagToken, ATTRS.COLOR) !== null ||\n            Tokenizer.getTokenAttr(startTagToken, ATTRS.SIZE) !== null ||\n            Tokenizer.getTokenAttr(startTagToken, ATTRS.FACE) !== null);\n\n    return isFontWithAttrs ? true : EXITS_FOREIGN_CONTENT[tn];\n};\n\n//Token adjustments\nexports.adjustTokenMathMLAttrs = function(token) {\n    for (let i = 0; i < token.attrs.length; i++) {\n        if (token.attrs[i].name === DEFINITION_URL_ATTR) {\n            token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR;\n            break;\n        }\n    }\n};\n\nexports.adjustTokenSVGAttrs = function(token) {\n    for (let i = 0; i < token.attrs.length; i++) {\n        const adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name];\n\n        if (adjustedAttrName) {\n            token.attrs[i].name = adjustedAttrName;\n        }\n    }\n};\n\nexports.adjustTokenXMLAttrs = function(token) {\n    for (let i = 0; i < token.attrs.length; i++) {\n        const adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name];\n\n        if (adjustedAttrEntry) {\n            token.attrs[i].prefix = adjustedAttrEntry.prefix;\n            token.attrs[i].name = adjustedAttrEntry.name;\n            token.attrs[i].namespace = adjustedAttrEntry.namespace;\n        }\n    }\n};\n\nexports.adjustTokenSVGTagName = function(token) {\n    const adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP[token.tagName];\n\n    if (adjustedTagName) {\n        token.tagName = adjustedTagName;\n    }\n};\n\n//Integration points\nfunction isMathMLTextIntegrationPoint(tn, ns) {\n    return ns === NS.MATHML && (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS || tn === $.MTEXT);\n}\n\nfunction isHtmlIntegrationPoint(tn, ns, attrs) {\n    if (ns === NS.MATHML && tn === $.ANNOTATION_XML) {\n        for (let i = 0; i < attrs.length; i++) {\n            if (attrs[i].name === ATTRS.ENCODING) {\n                const value = attrs[i].value.toLowerCase();\n\n                return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML;\n            }\n        }\n    }\n\n    return ns === NS.SVG && (tn === $.FOREIGN_OBJECT || tn === $.DESC || tn === $.TITLE);\n}\n\nexports.isIntegrationPoint = function(tn, ns, attrs, foreignNS) {\n    if ((!foreignNS || foreignNS === NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs)) {\n        return true;\n    }\n\n    if ((!foreignNS || foreignNS === NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns)) {\n        return true;\n    }\n\n    return false;\n};\n","'use strict';\n\nconst NS = (exports.NAMESPACES = {\n    HTML: 'http://www.w3.org/1999/xhtml',\n    MATHML: 'http://www.w3.org/1998/Math/MathML',\n    SVG: 'http://www.w3.org/2000/svg',\n    XLINK: 'http://www.w3.org/1999/xlink',\n    XML: 'http://www.w3.org/XML/1998/namespace',\n    XMLNS: 'http://www.w3.org/2000/xmlns/'\n});\n\nexports.ATTRS = {\n    TYPE: 'type',\n    ACTION: 'action',\n    ENCODING: 'encoding',\n    PROMPT: 'prompt',\n    NAME: 'name',\n    COLOR: 'color',\n    FACE: 'face',\n    SIZE: 'size'\n};\n\nexports.DOCUMENT_MODE = {\n    NO_QUIRKS: 'no-quirks',\n    QUIRKS: 'quirks',\n    LIMITED_QUIRKS: 'limited-quirks'\n};\n\nconst $ = (exports.TAG_NAMES = {\n    A: 'a',\n    ADDRESS: 'address',\n    ANNOTATION_XML: 'annotation-xml',\n    APPLET: 'applet',\n    AREA: 'area',\n    ARTICLE: 'article',\n    ASIDE: 'aside',\n\n    B: 'b',\n    BASE: 'base',\n    BASEFONT: 'basefont',\n    BGSOUND: 'bgsound',\n    BIG: 'big',\n    BLOCKQUOTE: 'blockquote',\n    BODY: 'body',\n    BR: 'br',\n    BUTTON: 'button',\n\n    CAPTION: 'caption',\n    CENTER: 'center',\n    CODE: 'code',\n    COL: 'col',\n    COLGROUP: 'colgroup',\n\n    DD: 'dd',\n    DESC: 'desc',\n    DETAILS: 'details',\n    DIALOG: 'dialog',\n    DIR: 'dir',\n    DIV: 'div',\n    DL: 'dl',\n    DT: 'dt',\n\n    EM: 'em',\n    EMBED: 'embed',\n\n    FIELDSET: 'fieldset',\n    FIGCAPTION: 'figcaption',\n    FIGURE: 'figure',\n    FONT: 'font',\n    FOOTER: 'footer',\n    FOREIGN_OBJECT: 'foreignObject',\n    FORM: 'form',\n    FRAME: 'frame',\n    FRAMESET: 'frameset',\n\n    H1: 'h1',\n    H2: 'h2',\n    H3: 'h3',\n    H4: 'h4',\n    H5: 'h5',\n    H6: 'h6',\n    HEAD: 'head',\n    HEADER: 'header',\n    HGROUP: 'hgroup',\n    HR: 'hr',\n    HTML: 'html',\n\n    I: 'i',\n    IMG: 'img',\n    IMAGE: 'image',\n    INPUT: 'input',\n    IFRAME: 'iframe',\n\n    KEYGEN: 'keygen',\n\n    LABEL: 'label',\n    LI: 'li',\n    LINK: 'link',\n    LISTING: 'listing',\n\n    MAIN: 'main',\n    MALIGNMARK: 'malignmark',\n    MARQUEE: 'marquee',\n    MATH: 'math',\n    MENU: 'menu',\n    META: 'meta',\n    MGLYPH: 'mglyph',\n    MI: 'mi',\n    MO: 'mo',\n    MN: 'mn',\n    MS: 'ms',\n    MTEXT: 'mtext',\n\n    NAV: 'nav',\n    NOBR: 'nobr',\n    NOFRAMES: 'noframes',\n    NOEMBED: 'noembed',\n    NOSCRIPT: 'noscript',\n\n    OBJECT: 'object',\n    OL: 'ol',\n    OPTGROUP: 'optgroup',\n    OPTION: 'option',\n\n    P: 'p',\n    PARAM: 'param',\n    PLAINTEXT: 'plaintext',\n    PRE: 'pre',\n\n    RB: 'rb',\n    RP: 'rp',\n    RT: 'rt',\n    RTC: 'rtc',\n    RUBY: 'ruby',\n\n    S: 's',\n    SCRIPT: 'script',\n    SECTION: 'section',\n    SELECT: 'select',\n    SOURCE: 'source',\n    SMALL: 'small',\n    SPAN: 'span',\n    STRIKE: 'strike',\n    STRONG: 'strong',\n    STYLE: 'style',\n    SUB: 'sub',\n    SUMMARY: 'summary',\n    SUP: 'sup',\n\n    TABLE: 'table',\n    TBODY: 'tbody',\n    TEMPLATE: 'template',\n    TEXTAREA: 'textarea',\n    TFOOT: 'tfoot',\n    TD: 'td',\n    TH: 'th',\n    THEAD: 'thead',\n    TITLE: 'title',\n    TR: 'tr',\n    TRACK: 'track',\n    TT: 'tt',\n\n    U: 'u',\n    UL: 'ul',\n\n    SVG: 'svg',\n\n    VAR: 'var',\n\n    WBR: 'wbr',\n\n    XMP: 'xmp'\n});\n\nexports.SPECIAL_ELEMENTS = {\n    [NS.HTML]: {\n        [$.ADDRESS]: true,\n        [$.APPLET]: true,\n        [$.AREA]: true,\n        [$.ARTICLE]: true,\n        [$.ASIDE]: true,\n        [$.BASE]: true,\n        [$.BASEFONT]: true,\n        [$.BGSOUND]: true,\n        [$.BLOCKQUOTE]: true,\n        [$.BODY]: true,\n        [$.BR]: true,\n        [$.BUTTON]: true,\n        [$.CAPTION]: true,\n        [$.CENTER]: true,\n        [$.COL]: true,\n        [$.COLGROUP]: true,\n        [$.DD]: true,\n        [$.DETAILS]: true,\n        [$.DIR]: true,\n        [$.DIV]: true,\n        [$.DL]: true,\n        [$.DT]: true,\n        [$.EMBED]: true,\n        [$.FIELDSET]: true,\n        [$.FIGCAPTION]: true,\n        [$.FIGURE]: true,\n        [$.FOOTER]: true,\n        [$.FORM]: true,\n        [$.FRAME]: true,\n        [$.FRAMESET]: true,\n        [$.H1]: true,\n        [$.H2]: true,\n        [$.H3]: true,\n        [$.H4]: true,\n        [$.H5]: true,\n        [$.H6]: true,\n        [$.HEAD]: true,\n        [$.HEADER]: true,\n        [$.HGROUP]: true,\n        [$.HR]: true,\n        [$.HTML]: true,\n        [$.IFRAME]: true,\n        [$.IMG]: true,\n        [$.INPUT]: true,\n        [$.LI]: true,\n        [$.LINK]: true,\n        [$.LISTING]: true,\n        [$.MAIN]: true,\n        [$.MARQUEE]: true,\n        [$.MENU]: true,\n        [$.META]: true,\n        [$.NAV]: true,\n        [$.NOEMBED]: true,\n        [$.NOFRAMES]: true,\n        [$.NOSCRIPT]: true,\n        [$.OBJECT]: true,\n        [$.OL]: true,\n        [$.P]: true,\n        [$.PARAM]: true,\n        [$.PLAINTEXT]: true,\n        [$.PRE]: true,\n        [$.SCRIPT]: true,\n        [$.SECTION]: true,\n        [$.SELECT]: true,\n        [$.SOURCE]: true,\n        [$.STYLE]: true,\n        [$.SUMMARY]: true,\n        [$.TABLE]: true,\n        [$.TBODY]: true,\n        [$.TD]: true,\n        [$.TEMPLATE]: true,\n        [$.TEXTAREA]: true,\n        [$.TFOOT]: true,\n        [$.TH]: true,\n        [$.THEAD]: true,\n        [$.TITLE]: true,\n        [$.TR]: true,\n        [$.TRACK]: true,\n        [$.UL]: true,\n        [$.WBR]: true,\n        [$.XMP]: true\n    },\n    [NS.MATHML]: {\n        [$.MI]: true,\n        [$.MO]: true,\n        [$.MN]: true,\n        [$.MS]: true,\n        [$.MTEXT]: true,\n        [$.ANNOTATION_XML]: true\n    },\n    [NS.SVG]: {\n        [$.TITLE]: true,\n        [$.FOREIGN_OBJECT]: true,\n        [$.DESC]: true\n    }\n};\n","'use strict';\n\nconst UNDEFINED_CODE_POINTS = [\n    0xfffe,\n    0xffff,\n    0x1fffe,\n    0x1ffff,\n    0x2fffe,\n    0x2ffff,\n    0x3fffe,\n    0x3ffff,\n    0x4fffe,\n    0x4ffff,\n    0x5fffe,\n    0x5ffff,\n    0x6fffe,\n    0x6ffff,\n    0x7fffe,\n    0x7ffff,\n    0x8fffe,\n    0x8ffff,\n    0x9fffe,\n    0x9ffff,\n    0xafffe,\n    0xaffff,\n    0xbfffe,\n    0xbffff,\n    0xcfffe,\n    0xcffff,\n    0xdfffe,\n    0xdffff,\n    0xefffe,\n    0xeffff,\n    0xffffe,\n    0xfffff,\n    0x10fffe,\n    0x10ffff\n];\n\nexports.REPLACEMENT_CHARACTER = '\\uFFFD';\n\nexports.CODE_POINTS = {\n    EOF: -1,\n    NULL: 0x00,\n    TABULATION: 0x09,\n    CARRIAGE_RETURN: 0x0d,\n    LINE_FEED: 0x0a,\n    FORM_FEED: 0x0c,\n    SPACE: 0x20,\n    EXCLAMATION_MARK: 0x21,\n    QUOTATION_MARK: 0x22,\n    NUMBER_SIGN: 0x23,\n    AMPERSAND: 0x26,\n    APOSTROPHE: 0x27,\n    HYPHEN_MINUS: 0x2d,\n    SOLIDUS: 0x2f,\n    DIGIT_0: 0x30,\n    DIGIT_9: 0x39,\n    SEMICOLON: 0x3b,\n    LESS_THAN_SIGN: 0x3c,\n    EQUALS_SIGN: 0x3d,\n    GREATER_THAN_SIGN: 0x3e,\n    QUESTION_MARK: 0x3f,\n    LATIN_CAPITAL_A: 0x41,\n    LATIN_CAPITAL_F: 0x46,\n    LATIN_CAPITAL_X: 0x58,\n    LATIN_CAPITAL_Z: 0x5a,\n    RIGHT_SQUARE_BRACKET: 0x5d,\n    GRAVE_ACCENT: 0x60,\n    LATIN_SMALL_A: 0x61,\n    LATIN_SMALL_F: 0x66,\n    LATIN_SMALL_X: 0x78,\n    LATIN_SMALL_Z: 0x7a,\n    REPLACEMENT_CHARACTER: 0xfffd\n};\n\nexports.CODE_POINT_SEQUENCES = {\n    DASH_DASH_STRING: [0x2d, 0x2d], //--\n    DOCTYPE_STRING: [0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45], //DOCTYPE\n    CDATA_START_STRING: [0x5b, 0x43, 0x44, 0x41, 0x54, 0x41, 0x5b], //[CDATA[\n    SCRIPT_STRING: [0x73, 0x63, 0x72, 0x69, 0x70, 0x74], //script\n    PUBLIC_STRING: [0x50, 0x55, 0x42, 0x4c, 0x49, 0x43], //PUBLIC\n    SYSTEM_STRING: [0x53, 0x59, 0x53, 0x54, 0x45, 0x4d] //SYSTEM\n};\n\n//Surrogates\nexports.isSurrogate = function(cp) {\n    return cp >= 0xd800 && cp <= 0xdfff;\n};\n\nexports.isSurrogatePair = function(cp) {\n    return cp >= 0xdc00 && cp <= 0xdfff;\n};\n\nexports.getSurrogatePairCodePoint = function(cp1, cp2) {\n    return (cp1 - 0xd800) * 0x400 + 0x2400 + cp2;\n};\n\n//NOTE: excluding NULL and ASCII whitespace\nexports.isControlCodePoint = function(cp) {\n    return (\n        (cp !== 0x20 && cp !== 0x0a && cp !== 0x0d && cp !== 0x09 && cp !== 0x0c && cp >= 0x01 && cp <= 0x1f) ||\n        (cp >= 0x7f && cp <= 0x9f)\n    );\n};\n\nexports.isUndefinedCodePoint = function(cp) {\n    return (cp >= 0xfdd0 && cp <= 0xfdef) || UNDEFINED_CODE_POINTS.indexOf(cp) > -1;\n};\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingMixinBase extends Mixin {\n    constructor(host, opts) {\n        super(host);\n\n        this.posTracker = null;\n        this.onParseError = opts.onParseError;\n    }\n\n    _setErrorLocation(err) {\n        err.startLine = err.endLine = this.posTracker.line;\n        err.startCol = err.endCol = this.posTracker.col;\n        err.startOffset = err.endOffset = this.posTracker.offset;\n    }\n\n    _reportError(code) {\n        const err = {\n            code: code,\n            startLine: -1,\n            startCol: -1,\n            startOffset: -1,\n            endLine: -1,\n            endCol: -1,\n            endOffset: -1\n        };\n\n        this._setErrorLocation(err);\n        this.onParseError(err);\n    }\n\n    _getOverriddenMethods(mxn) {\n        return {\n            _err(code) {\n                mxn._reportError(code);\n            }\n        };\n    }\n}\n\nmodule.exports = ErrorReportingMixinBase;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst ErrorReportingTokenizerMixin = require('./tokenizer-mixin');\nconst LocationInfoTokenizerMixin = require('../location-info/tokenizer-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingParserMixin extends ErrorReportingMixinBase {\n    constructor(parser, opts) {\n        super(parser, opts);\n\n        this.opts = opts;\n        this.ctLoc = null;\n        this.locBeforeToken = false;\n    }\n\n    _setErrorLocation(err) {\n        if (this.ctLoc) {\n            err.startLine = this.ctLoc.startLine;\n            err.startCol = this.ctLoc.startCol;\n            err.startOffset = this.ctLoc.startOffset;\n\n            err.endLine = this.locBeforeToken ? this.ctLoc.startLine : this.ctLoc.endLine;\n            err.endCol = this.locBeforeToken ? this.ctLoc.startCol : this.ctLoc.endCol;\n            err.endOffset = this.locBeforeToken ? this.ctLoc.startOffset : this.ctLoc.endOffset;\n        }\n    }\n\n    _getOverriddenMethods(mxn, orig) {\n        return {\n            _bootstrap(document, fragmentContext) {\n                orig._bootstrap.call(this, document, fragmentContext);\n\n                Mixin.install(this.tokenizer, ErrorReportingTokenizerMixin, mxn.opts);\n                Mixin.install(this.tokenizer, LocationInfoTokenizerMixin);\n            },\n\n            _processInputToken(token) {\n                mxn.ctLoc = token.location;\n\n                orig._processInputToken.call(this, token);\n            },\n\n            _err(code, options) {\n                mxn.locBeforeToken = options && options.beforeToken;\n                mxn._reportError(code);\n            }\n        };\n    }\n}\n\nmodule.exports = ErrorReportingParserMixin;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst PositionTrackingPreprocessorMixin = require('../position-tracking/preprocessor-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingPreprocessorMixin extends ErrorReportingMixinBase {\n    constructor(preprocessor, opts) {\n        super(preprocessor, opts);\n\n        this.posTracker = Mixin.install(preprocessor, PositionTrackingPreprocessorMixin);\n        this.lastErrOffset = -1;\n    }\n\n    _reportError(code) {\n        //NOTE: avoid reporting error twice on advance/retreat\n        if (this.lastErrOffset !== this.posTracker.offset) {\n            this.lastErrOffset = this.posTracker.offset;\n            super._reportError(code);\n        }\n    }\n}\n\nmodule.exports = ErrorReportingPreprocessorMixin;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst ErrorReportingPreprocessorMixin = require('./preprocessor-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingTokenizerMixin extends ErrorReportingMixinBase {\n    constructor(tokenizer, opts) {\n        super(tokenizer, opts);\n\n        const preprocessorMixin = Mixin.install(tokenizer.preprocessor, ErrorReportingPreprocessorMixin, opts);\n\n        this.posTracker = preprocessorMixin.posTracker;\n    }\n}\n\nmodule.exports = ErrorReportingTokenizerMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass LocationInfoOpenElementStackMixin extends Mixin {\n    constructor(stack, opts) {\n        super(stack);\n\n        this.onItemPop = opts.onItemPop;\n    }\n\n    _getOverriddenMethods(mxn, orig) {\n        return {\n            pop() {\n                mxn.onItemPop(this.current);\n                orig.pop.call(this);\n            },\n\n            popAllUpToHtmlElement() {\n                for (let i = this.stackTop; i > 0; i--) {\n                    mxn.onItemPop(this.items[i]);\n                }\n\n                orig.popAllUpToHtmlElement.call(this);\n            },\n\n            remove(element) {\n                mxn.onItemPop(this.current);\n                orig.remove.call(this, element);\n            }\n        };\n    }\n}\n\nmodule.exports = LocationInfoOpenElementStackMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\nconst Tokenizer = require('../../tokenizer');\nconst LocationInfoTokenizerMixin = require('./tokenizer-mixin');\nconst LocationInfoOpenElementStackMixin = require('./open-element-stack-mixin');\nconst HTML = require('../../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\n\nclass LocationInfoParserMixin extends Mixin {\n    constructor(parser) {\n        super(parser);\n\n        this.parser = parser;\n        this.treeAdapter = this.parser.treeAdapter;\n        this.posTracker = null;\n        this.lastStartTagToken = null;\n        this.lastFosterParentingLocation = null;\n        this.currentToken = null;\n    }\n\n    _setStartLocation(element) {\n        let loc = null;\n\n        if (this.lastStartTagToken) {\n            loc = Object.assign({}, this.lastStartTagToken.location);\n            loc.startTag = this.lastStartTagToken.location;\n        }\n\n        this.treeAdapter.setNodeSourceCodeLocation(element, loc);\n    }\n\n    _setEndLocation(element, closingToken) {\n        const loc = this.treeAdapter.getNodeSourceCodeLocation(element);\n\n        if (loc) {\n            if (closingToken.location) {\n                const ctLoc = closingToken.location;\n                const tn = this.treeAdapter.getTagName(element);\n\n                // NOTE: For cases like <p> <p> </p> - First 'p' closes without a closing\n                // tag and for cases like <td> <p> </td> - 'p' closes without a closing tag.\n                const isClosingEndTag = closingToken.type === Tokenizer.END_TAG_TOKEN && tn === closingToken.tagName;\n                const endLoc = {};\n                if (isClosingEndTag) {\n                    endLoc.endTag = Object.assign({}, ctLoc);\n                    endLoc.endLine = ctLoc.endLine;\n                    endLoc.endCol = ctLoc.endCol;\n                    endLoc.endOffset = ctLoc.endOffset;\n                } else {\n                    endLoc.endLine = ctLoc.startLine;\n                    endLoc.endCol = ctLoc.startCol;\n                    endLoc.endOffset = ctLoc.startOffset;\n                }\n\n                this.treeAdapter.updateNodeSourceCodeLocation(element, endLoc);\n            }\n        }\n    }\n\n    _getOverriddenMethods(mxn, orig) {\n        return {\n            _bootstrap(document, fragmentContext) {\n                orig._bootstrap.call(this, document, fragmentContext);\n\n                mxn.lastStartTagToken = null;\n                mxn.lastFosterParentingLocation = null;\n                mxn.currentToken = null;\n\n                const tokenizerMixin = Mixin.install(this.tokenizer, LocationInfoTokenizerMixin);\n\n                mxn.posTracker = tokenizerMixin.posTracker;\n\n                Mixin.install(this.openElements, LocationInfoOpenElementStackMixin, {\n                    onItemPop: function(element) {\n                        mxn._setEndLocation(element, mxn.currentToken);\n                    }\n                });\n            },\n\n            _runParsingLoop(scriptHandler) {\n                orig._runParsingLoop.call(this, scriptHandler);\n\n                // NOTE: generate location info for elements\n                // that remains on open element stack\n                for (let i = this.openElements.stackTop; i >= 0; i--) {\n                    mxn._setEndLocation(this.openElements.items[i], mxn.currentToken);\n                }\n            },\n\n            //Token processing\n            _processTokenInForeignContent(token) {\n                mxn.currentToken = token;\n                orig._processTokenInForeignContent.call(this, token);\n            },\n\n            _processToken(token) {\n                mxn.currentToken = token;\n                orig._processToken.call(this, token);\n\n                //NOTE: <body> and <html> are never popped from the stack, so we need to updated\n                //their end location explicitly.\n                const requireExplicitUpdate =\n                    token.type === Tokenizer.END_TAG_TOKEN &&\n                    (token.tagName === $.HTML || (token.tagName === $.BODY && this.openElements.hasInScope($.BODY)));\n\n                if (requireExplicitUpdate) {\n                    for (let i = this.openElements.stackTop; i >= 0; i--) {\n                        const element = this.openElements.items[i];\n\n                        if (this.treeAdapter.getTagName(element) === token.tagName) {\n                            mxn._setEndLocation(element, token);\n                            break;\n                        }\n                    }\n                }\n            },\n\n            //Doctype\n            _setDocumentType(token) {\n                orig._setDocumentType.call(this, token);\n\n                const documentChildren = this.treeAdapter.getChildNodes(this.document);\n                const cnLength = documentChildren.length;\n\n                for (let i = 0; i < cnLength; i++) {\n                    const node = documentChildren[i];\n\n                    if (this.treeAdapter.isDocumentTypeNode(node)) {\n                        this.treeAdapter.setNodeSourceCodeLocation(node, token.location);\n                        break;\n                    }\n                }\n            },\n\n            //Elements\n            _attachElementToTree(element) {\n                //NOTE: _attachElementToTree is called from _appendElement, _insertElement and _insertTemplate methods.\n                //So we will use token location stored in this methods for the element.\n                mxn._setStartLocation(element);\n                mxn.lastStartTagToken = null;\n                orig._attachElementToTree.call(this, element);\n            },\n\n            _appendElement(token, namespaceURI) {\n                mxn.lastStartTagToken = token;\n                orig._appendElement.call(this, token, namespaceURI);\n            },\n\n            _insertElement(token, namespaceURI) {\n                mxn.lastStartTagToken = token;\n                orig._insertElement.call(this, token, namespaceURI);\n            },\n\n            _insertTemplate(token) {\n                mxn.lastStartTagToken = token;\n                orig._insertTemplate.call(this, token);\n\n                const tmplContent = this.treeAdapter.getTemplateContent(this.openElements.current);\n\n                this.treeAdapter.setNodeSourceCodeLocation(tmplContent, null);\n            },\n\n            _insertFakeRootElement() {\n                orig._insertFakeRootElement.call(this);\n                this.treeAdapter.setNodeSourceCodeLocation(this.openElements.current, null);\n            },\n\n            //Comments\n            _appendCommentNode(token, parent) {\n                orig._appendCommentNode.call(this, token, parent);\n\n                const children = this.treeAdapter.getChildNodes(parent);\n                const commentNode = children[children.length - 1];\n\n                this.treeAdapter.setNodeSourceCodeLocation(commentNode, token.location);\n            },\n\n            //Text\n            _findFosterParentingLocation() {\n                //NOTE: store last foster parenting location, so we will be able to find inserted text\n                //in case of foster parenting\n                mxn.lastFosterParentingLocation = orig._findFosterParentingLocation.call(this);\n\n                return mxn.lastFosterParentingLocation;\n            },\n\n            _insertCharacters(token) {\n                orig._insertCharacters.call(this, token);\n\n                const hasFosterParent = this._shouldFosterParentOnInsertion();\n\n                const parent =\n                    (hasFosterParent && mxn.lastFosterParentingLocation.parent) ||\n                    this.openElements.currentTmplContent ||\n                    this.openElements.current;\n\n                const siblings = this.treeAdapter.getChildNodes(parent);\n\n                const textNodeIdx =\n                    hasFosterParent && mxn.lastFosterParentingLocation.beforeElement\n                        ? siblings.indexOf(mxn.lastFosterParentingLocation.beforeElement) - 1\n                        : siblings.length - 1;\n\n                const textNode = siblings[textNodeIdx];\n\n                //NOTE: if we have location assigned by another token, then just update end position\n                const tnLoc = this.treeAdapter.getNodeSourceCodeLocation(textNode);\n\n                if (tnLoc) {\n                    const { endLine, endCol, endOffset } = token.location;\n                    this.treeAdapter.updateNodeSourceCodeLocation(textNode, { endLine, endCol, endOffset });\n                } else {\n                    this.treeAdapter.setNodeSourceCodeLocation(textNode, token.location);\n                }\n            }\n        };\n    }\n}\n\nmodule.exports = LocationInfoParserMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\nconst Tokenizer = require('../../tokenizer');\nconst PositionTrackingPreprocessorMixin = require('../position-tracking/preprocessor-mixin');\n\nclass LocationInfoTokenizerMixin extends Mixin {\n    constructor(tokenizer) {\n        super(tokenizer);\n\n        this.tokenizer = tokenizer;\n        this.posTracker = Mixin.install(tokenizer.preprocessor, PositionTrackingPreprocessorMixin);\n        this.currentAttrLocation = null;\n        this.ctLoc = null;\n    }\n\n    _getCurrentLocation() {\n        return {\n            startLine: this.posTracker.line,\n            startCol: this.posTracker.col,\n            startOffset: this.posTracker.offset,\n            endLine: -1,\n            endCol: -1,\n            endOffset: -1\n        };\n    }\n\n    _attachCurrentAttrLocationInfo() {\n        this.currentAttrLocation.endLine = this.posTracker.line;\n        this.currentAttrLocation.endCol = this.posTracker.col;\n        this.currentAttrLocation.endOffset = this.posTracker.offset;\n\n        const currentToken = this.tokenizer.currentToken;\n        const currentAttr = this.tokenizer.currentAttr;\n\n        if (!currentToken.location.attrs) {\n            currentToken.location.attrs = Object.create(null);\n        }\n\n        currentToken.location.attrs[currentAttr.name] = this.currentAttrLocation;\n    }\n\n    _getOverriddenMethods(mxn, orig) {\n        const methods = {\n            _createStartTagToken() {\n                orig._createStartTagToken.call(this);\n                this.currentToken.location = mxn.ctLoc;\n            },\n\n            _createEndTagToken() {\n                orig._createEndTagToken.call(this);\n                this.currentToken.location = mxn.ctLoc;\n            },\n\n            _createCommentToken() {\n                orig._createCommentToken.call(this);\n                this.currentToken.location = mxn.ctLoc;\n            },\n\n            _createDoctypeToken(initialName) {\n                orig._createDoctypeToken.call(this, initialName);\n                this.currentToken.location = mxn.ctLoc;\n            },\n\n            _createCharacterToken(type, ch) {\n                orig._createCharacterToken.call(this, type, ch);\n                this.currentCharacterToken.location = mxn.ctLoc;\n            },\n\n            _createEOFToken() {\n                orig._createEOFToken.call(this);\n                this.currentToken.location = mxn._getCurrentLocation();\n            },\n\n            _createAttr(attrNameFirstCh) {\n                orig._createAttr.call(this, attrNameFirstCh);\n                mxn.currentAttrLocation = mxn._getCurrentLocation();\n            },\n\n            _leaveAttrName(toState) {\n                orig._leaveAttrName.call(this, toState);\n                mxn._attachCurrentAttrLocationInfo();\n            },\n\n            _leaveAttrValue(toState) {\n                orig._leaveAttrValue.call(this, toState);\n                mxn._attachCurrentAttrLocationInfo();\n            },\n\n            _emitCurrentToken() {\n                const ctLoc = this.currentToken.location;\n\n                //NOTE: if we have pending character token make it's end location equal to the\n                //current token's start location.\n                if (this.currentCharacterToken) {\n                    this.currentCharacterToken.location.endLine = ctLoc.startLine;\n                    this.currentCharacterToken.location.endCol = ctLoc.startCol;\n                    this.currentCharacterToken.location.endOffset = ctLoc.startOffset;\n                }\n\n                if (this.currentToken.type === Tokenizer.EOF_TOKEN) {\n                    ctLoc.endLine = ctLoc.startLine;\n                    ctLoc.endCol = ctLoc.startCol;\n                    ctLoc.endOffset = ctLoc.startOffset;\n                } else {\n                    ctLoc.endLine = mxn.posTracker.line;\n                    ctLoc.endCol = mxn.posTracker.col + 1;\n                    ctLoc.endOffset = mxn.posTracker.offset + 1;\n                }\n\n                orig._emitCurrentToken.call(this);\n            },\n\n            _emitCurrentCharacterToken() {\n                const ctLoc = this.currentCharacterToken && this.currentCharacterToken.location;\n\n                //NOTE: if we have character token and it's location wasn't set in the _emitCurrentToken(),\n                //then set it's location at the current preprocessor position.\n                //We don't need to increment preprocessor position, since character token\n                //emission is always forced by the start of the next character token here.\n                //So, we already have advanced position.\n                if (ctLoc && ctLoc.endOffset === -1) {\n                    ctLoc.endLine = mxn.posTracker.line;\n                    ctLoc.endCol = mxn.posTracker.col;\n                    ctLoc.endOffset = mxn.posTracker.offset;\n                }\n\n                orig._emitCurrentCharacterToken.call(this);\n            }\n        };\n\n        //NOTE: patch initial states for each mode to obtain token start position\n        Object.keys(Tokenizer.MODE).forEach(modeName => {\n            const state = Tokenizer.MODE[modeName];\n\n            methods[state] = function(cp) {\n                mxn.ctLoc = mxn._getCurrentLocation();\n                orig[state].call(this, cp);\n            };\n        });\n\n        return methods;\n    }\n}\n\nmodule.exports = LocationInfoTokenizerMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass PositionTrackingPreprocessorMixin extends Mixin {\n    constructor(preprocessor) {\n        super(preprocessor);\n\n        this.preprocessor = preprocessor;\n        this.isEol = false;\n        this.lineStartPos = 0;\n        this.droppedBufferSize = 0;\n\n        this.offset = 0;\n        this.col = 0;\n        this.line = 1;\n    }\n\n    _getOverriddenMethods(mxn, orig) {\n        return {\n            advance() {\n                const pos = this.pos + 1;\n                const ch = this.html[pos];\n\n                //NOTE: LF should be in the last column of the line\n                if (mxn.isEol) {\n                    mxn.isEol = false;\n                    mxn.line++;\n                    mxn.lineStartPos = pos;\n                }\n\n                if (ch === '\\n' || (ch === '\\r' && this.html[pos + 1] !== '\\n')) {\n                    mxn.isEol = true;\n                }\n\n                mxn.col = pos - mxn.lineStartPos + 1;\n                mxn.offset = mxn.droppedBufferSize + pos;\n\n                return orig.advance.call(this);\n            },\n\n            retreat() {\n                orig.retreat.call(this);\n\n                mxn.isEol = false;\n                mxn.col = this.pos - mxn.lineStartPos + 1;\n            },\n\n            dropParsedChunk() {\n                const prevPos = this.pos;\n\n                orig.dropParsedChunk.call(this);\n\n                const reduction = prevPos - this.pos;\n\n                mxn.lineStartPos -= reduction;\n                mxn.droppedBufferSize += reduction;\n                mxn.offset = mxn.droppedBufferSize + this.pos;\n            }\n        };\n    }\n}\n\nmodule.exports = PositionTrackingPreprocessorMixin;\n","'use strict';\n\n//Const\nconst NOAH_ARK_CAPACITY = 3;\n\n//List of formatting elements\nclass FormattingElementList {\n    constructor(treeAdapter) {\n        this.length = 0;\n        this.entries = [];\n        this.treeAdapter = treeAdapter;\n        this.bookmark = null;\n    }\n\n    //Noah Ark's condition\n    //OPTIMIZATION: at first we try to find possible candidates for exclusion using\n    //lightweight heuristics without thorough attributes check.\n    _getNoahArkConditionCandidates(newElement) {\n        const candidates = [];\n\n        if (this.length >= NOAH_ARK_CAPACITY) {\n            const neAttrsLength = this.treeAdapter.getAttrList(newElement).length;\n            const neTagName = this.treeAdapter.getTagName(newElement);\n            const neNamespaceURI = this.treeAdapter.getNamespaceURI(newElement);\n\n            for (let i = this.length - 1; i >= 0; i--) {\n                const entry = this.entries[i];\n\n                if (entry.type === FormattingElementList.MARKER_ENTRY) {\n                    break;\n                }\n\n                const element = entry.element;\n                const elementAttrs = this.treeAdapter.getAttrList(element);\n\n                const isCandidate =\n                    this.treeAdapter.getTagName(element) === neTagName &&\n                    this.treeAdapter.getNamespaceURI(element) === neNamespaceURI &&\n                    elementAttrs.length === neAttrsLength;\n\n                if (isCandidate) {\n                    candidates.push({ idx: i, attrs: elementAttrs });\n                }\n            }\n        }\n\n        return candidates.length < NOAH_ARK_CAPACITY ? [] : candidates;\n    }\n\n    _ensureNoahArkCondition(newElement) {\n        const candidates = this._getNoahArkConditionCandidates(newElement);\n        let cLength = candidates.length;\n\n        if (cLength) {\n            const neAttrs = this.treeAdapter.getAttrList(newElement);\n            const neAttrsLength = neAttrs.length;\n            const neAttrsMap = Object.create(null);\n\n            //NOTE: build attrs map for the new element so we can perform fast lookups\n            for (let i = 0; i < neAttrsLength; i++) {\n                const neAttr = neAttrs[i];\n\n                neAttrsMap[neAttr.name] = neAttr.value;\n            }\n\n            for (let i = 0; i < neAttrsLength; i++) {\n                for (let j = 0; j < cLength; j++) {\n                    const cAttr = candidates[j].attrs[i];\n\n                    if (neAttrsMap[cAttr.name] !== cAttr.value) {\n                        candidates.splice(j, 1);\n                        cLength--;\n                    }\n\n                    if (candidates.length < NOAH_ARK_CAPACITY) {\n                        return;\n                    }\n                }\n            }\n\n            //NOTE: remove bottommost candidates until Noah's Ark condition will not be met\n            for (let i = cLength - 1; i >= NOAH_ARK_CAPACITY - 1; i--) {\n                this.entries.splice(candidates[i].idx, 1);\n                this.length--;\n            }\n        }\n    }\n\n    //Mutations\n    insertMarker() {\n        this.entries.push({ type: FormattingElementList.MARKER_ENTRY });\n        this.length++;\n    }\n\n    pushElement(element, token) {\n        this._ensureNoahArkCondition(element);\n\n        this.entries.push({\n            type: FormattingElementList.ELEMENT_ENTRY,\n            element: element,\n            token: token\n        });\n\n        this.length++;\n    }\n\n    insertElementAfterBookmark(element, token) {\n        let bookmarkIdx = this.length - 1;\n\n        for (; bookmarkIdx >= 0; bookmarkIdx--) {\n            if (this.entries[bookmarkIdx] === this.bookmark) {\n                break;\n            }\n        }\n\n        this.entries.splice(bookmarkIdx + 1, 0, {\n            type: FormattingElementList.ELEMENT_ENTRY,\n            element: element,\n            token: token\n        });\n\n        this.length++;\n    }\n\n    removeEntry(entry) {\n        for (let i = this.length - 1; i >= 0; i--) {\n            if (this.entries[i] === entry) {\n                this.entries.splice(i, 1);\n                this.length--;\n                break;\n            }\n        }\n    }\n\n    clearToLastMarker() {\n        while (this.length) {\n            const entry = this.entries.pop();\n\n            this.length--;\n\n            if (entry.type === FormattingElementList.MARKER_ENTRY) {\n                break;\n            }\n        }\n    }\n\n    //Search\n    getElementEntryInScopeWithTagName(tagName) {\n        for (let i = this.length - 1; i >= 0; i--) {\n            const entry = this.entries[i];\n\n            if (entry.type === FormattingElementList.MARKER_ENTRY) {\n                return null;\n            }\n\n            if (this.treeAdapter.getTagName(entry.element) === tagName) {\n                return entry;\n            }\n        }\n\n        return null;\n    }\n\n    getElementEntry(element) {\n        for (let i = this.length - 1; i >= 0; i--) {\n            const entry = this.entries[i];\n\n            if (entry.type === FormattingElementList.ELEMENT_ENTRY && entry.element === element) {\n                return entry;\n            }\n        }\n\n        return null;\n    }\n}\n\n//Entry types\nFormattingElementList.MARKER_ENTRY = 'MARKER_ENTRY';\nFormattingElementList.ELEMENT_ENTRY = 'ELEMENT_ENTRY';\n\nmodule.exports = FormattingElementList;\n","'use strict';\n\nconst Tokenizer = require('../tokenizer');\nconst OpenElementStack = require('./open-element-stack');\nconst FormattingElementList = require('./formatting-element-list');\nconst LocationInfoParserMixin = require('../extensions/location-info/parser-mixin');\nconst ErrorReportingParserMixin = require('../extensions/error-reporting/parser-mixin');\nconst Mixin = require('../utils/mixin');\nconst defaultTreeAdapter = require('../tree-adapters/default');\nconst mergeOptions = require('../utils/merge-options');\nconst doctype = require('../common/doctype');\nconst foreignContent = require('../common/foreign-content');\nconst ERR = require('../common/error-codes');\nconst unicode = require('../common/unicode');\nconst HTML = require('../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\nconst ATTRS = HTML.ATTRS;\n\nconst DEFAULT_OPTIONS = {\n    scriptingEnabled: true,\n    sourceCodeLocationInfo: false,\n    onParseError: null,\n    treeAdapter: defaultTreeAdapter\n};\n\n//Misc constants\nconst HIDDEN_INPUT_TYPE = 'hidden';\n\n//Adoption agency loops iteration count\nconst AA_OUTER_LOOP_ITER = 8;\nconst AA_INNER_LOOP_ITER = 3;\n\n//Insertion modes\nconst INITIAL_MODE = 'INITIAL_MODE';\nconst BEFORE_HTML_MODE = 'BEFORE_HTML_MODE';\nconst BEFORE_HEAD_MODE = 'BEFORE_HEAD_MODE';\nconst IN_HEAD_MODE = 'IN_HEAD_MODE';\nconst IN_HEAD_NO_SCRIPT_MODE = 'IN_HEAD_NO_SCRIPT_MODE';\nconst AFTER_HEAD_MODE = 'AFTER_HEAD_MODE';\nconst IN_BODY_MODE = 'IN_BODY_MODE';\nconst TEXT_MODE = 'TEXT_MODE';\nconst IN_TABLE_MODE = 'IN_TABLE_MODE';\nconst IN_TABLE_TEXT_MODE = 'IN_TABLE_TEXT_MODE';\nconst IN_CAPTION_MODE = 'IN_CAPTION_MODE';\nconst IN_COLUMN_GROUP_MODE = 'IN_COLUMN_GROUP_MODE';\nconst IN_TABLE_BODY_MODE = 'IN_TABLE_BODY_MODE';\nconst IN_ROW_MODE = 'IN_ROW_MODE';\nconst IN_CELL_MODE = 'IN_CELL_MODE';\nconst IN_SELECT_MODE = 'IN_SELECT_MODE';\nconst IN_SELECT_IN_TABLE_MODE = 'IN_SELECT_IN_TABLE_MODE';\nconst IN_TEMPLATE_MODE = 'IN_TEMPLATE_MODE';\nconst AFTER_BODY_MODE = 'AFTER_BODY_MODE';\nconst IN_FRAMESET_MODE = 'IN_FRAMESET_MODE';\nconst AFTER_FRAMESET_MODE = 'AFTER_FRAMESET_MODE';\nconst AFTER_AFTER_BODY_MODE = 'AFTER_AFTER_BODY_MODE';\nconst AFTER_AFTER_FRAMESET_MODE = 'AFTER_AFTER_FRAMESET_MODE';\n\n//Insertion mode reset map\nconst INSERTION_MODE_RESET_MAP = {\n    [$.TR]: IN_ROW_MODE,\n    [$.TBODY]: IN_TABLE_BODY_MODE,\n    [$.THEAD]: IN_TABLE_BODY_MODE,\n    [$.TFOOT]: IN_TABLE_BODY_MODE,\n    [$.CAPTION]: IN_CAPTION_MODE,\n    [$.COLGROUP]: IN_COLUMN_GROUP_MODE,\n    [$.TABLE]: IN_TABLE_MODE,\n    [$.BODY]: IN_BODY_MODE,\n    [$.FRAMESET]: IN_FRAMESET_MODE\n};\n\n//Template insertion mode switch map\nconst TEMPLATE_INSERTION_MODE_SWITCH_MAP = {\n    [$.CAPTION]: IN_TABLE_MODE,\n    [$.COLGROUP]: IN_TABLE_MODE,\n    [$.TBODY]: IN_TABLE_MODE,\n    [$.TFOOT]: IN_TABLE_MODE,\n    [$.THEAD]: IN_TABLE_MODE,\n    [$.COL]: IN_COLUMN_GROUP_MODE,\n    [$.TR]: IN_TABLE_BODY_MODE,\n    [$.TD]: IN_ROW_MODE,\n    [$.TH]: IN_ROW_MODE\n};\n\n//Token handlers map for insertion modes\nconst TOKEN_HANDLERS = {\n    [INITIAL_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenInInitialMode,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInInitialMode,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: doctypeInInitialMode,\n        [Tokenizer.START_TAG_TOKEN]: tokenInInitialMode,\n        [Tokenizer.END_TAG_TOKEN]: tokenInInitialMode,\n        [Tokenizer.EOF_TOKEN]: tokenInInitialMode\n    },\n    [BEFORE_HTML_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenBeforeHtml,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenBeforeHtml,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagBeforeHtml,\n        [Tokenizer.END_TAG_TOKEN]: endTagBeforeHtml,\n        [Tokenizer.EOF_TOKEN]: tokenBeforeHtml\n    },\n    [BEFORE_HEAD_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenBeforeHead,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenBeforeHead,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n        [Tokenizer.START_TAG_TOKEN]: startTagBeforeHead,\n        [Tokenizer.END_TAG_TOKEN]: endTagBeforeHead,\n        [Tokenizer.EOF_TOKEN]: tokenBeforeHead\n    },\n    [IN_HEAD_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenInHead,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInHead,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n        [Tokenizer.START_TAG_TOKEN]: startTagInHead,\n        [Tokenizer.END_TAG_TOKEN]: endTagInHead,\n        [Tokenizer.EOF_TOKEN]: tokenInHead\n    },\n    [IN_HEAD_NO_SCRIPT_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenInHeadNoScript,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInHeadNoScript,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n        [Tokenizer.START_TAG_TOKEN]: startTagInHeadNoScript,\n        [Tokenizer.END_TAG_TOKEN]: endTagInHeadNoScript,\n        [Tokenizer.EOF_TOKEN]: tokenInHeadNoScript\n    },\n    [AFTER_HEAD_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenAfterHead,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterHead,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n        [Tokenizer.START_TAG_TOKEN]: startTagAfterHead,\n        [Tokenizer.END_TAG_TOKEN]: endTagAfterHead,\n        [Tokenizer.EOF_TOKEN]: tokenAfterHead\n    },\n    [IN_BODY_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInBody,\n        [Tokenizer.END_TAG_TOKEN]: endTagInBody,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [TEXT_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: ignoreToken,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: ignoreToken,\n        [Tokenizer.END_TAG_TOKEN]: endTagInText,\n        [Tokenizer.EOF_TOKEN]: eofInText\n    },\n    [IN_TABLE_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInTable,\n        [Tokenizer.END_TAG_TOKEN]: endTagInTable,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [IN_TABLE_TEXT_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: characterInTableText,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInTableText,\n        [Tokenizer.COMMENT_TOKEN]: tokenInTableText,\n        [Tokenizer.DOCTYPE_TOKEN]: tokenInTableText,\n        [Tokenizer.START_TAG_TOKEN]: tokenInTableText,\n        [Tokenizer.END_TAG_TOKEN]: tokenInTableText,\n        [Tokenizer.EOF_TOKEN]: tokenInTableText\n    },\n    [IN_CAPTION_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInCaption,\n        [Tokenizer.END_TAG_TOKEN]: endTagInCaption,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [IN_COLUMN_GROUP_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenInColumnGroup,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInColumnGroup,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInColumnGroup,\n        [Tokenizer.END_TAG_TOKEN]: endTagInColumnGroup,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [IN_TABLE_BODY_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInTableBody,\n        [Tokenizer.END_TAG_TOKEN]: endTagInTableBody,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [IN_ROW_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInRow,\n        [Tokenizer.END_TAG_TOKEN]: endTagInRow,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [IN_CELL_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInCell,\n        [Tokenizer.END_TAG_TOKEN]: endTagInCell,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [IN_SELECT_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInSelect,\n        [Tokenizer.END_TAG_TOKEN]: endTagInSelect,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [IN_SELECT_IN_TABLE_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInSelectInTable,\n        [Tokenizer.END_TAG_TOKEN]: endTagInSelectInTable,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [IN_TEMPLATE_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInTemplate,\n        [Tokenizer.END_TAG_TOKEN]: endTagInTemplate,\n        [Tokenizer.EOF_TOKEN]: eofInTemplate\n    },\n    [AFTER_BODY_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenAfterBody,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterBody,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n        [Tokenizer.COMMENT_TOKEN]: appendCommentToRootHtmlElement,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagAfterBody,\n        [Tokenizer.END_TAG_TOKEN]: endTagAfterBody,\n        [Tokenizer.EOF_TOKEN]: stopParsing\n    },\n    [IN_FRAMESET_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInFrameset,\n        [Tokenizer.END_TAG_TOKEN]: endTagInFrameset,\n        [Tokenizer.EOF_TOKEN]: stopParsing\n    },\n    [AFTER_FRAMESET_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagAfterFrameset,\n        [Tokenizer.END_TAG_TOKEN]: endTagAfterFrameset,\n        [Tokenizer.EOF_TOKEN]: stopParsing\n    },\n    [AFTER_AFTER_BODY_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenAfterAfterBody,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterAfterBody,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n        [Tokenizer.COMMENT_TOKEN]: appendCommentToDocument,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagAfterAfterBody,\n        [Tokenizer.END_TAG_TOKEN]: tokenAfterAfterBody,\n        [Tokenizer.EOF_TOKEN]: stopParsing\n    },\n    [AFTER_AFTER_FRAMESET_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n        [Tokenizer.COMMENT_TOKEN]: appendCommentToDocument,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagAfterAfterFrameset,\n        [Tokenizer.END_TAG_TOKEN]: ignoreToken,\n        [Tokenizer.EOF_TOKEN]: stopParsing\n    }\n};\n\n//Parser\nclass Parser {\n    constructor(options) {\n        this.options = mergeOptions(DEFAULT_OPTIONS, options);\n\n        this.treeAdapter = this.options.treeAdapter;\n        this.pendingScript = null;\n\n        if (this.options.sourceCodeLocationInfo) {\n            Mixin.install(this, LocationInfoParserMixin);\n        }\n\n        if (this.options.onParseError) {\n            Mixin.install(this, ErrorReportingParserMixin, { onParseError: this.options.onParseError });\n        }\n    }\n\n    // API\n    parse(html) {\n        const document = this.treeAdapter.createDocument();\n\n        this._bootstrap(document, null);\n        this.tokenizer.write(html, true);\n        this._runParsingLoop(null);\n\n        return document;\n    }\n\n    parseFragment(html, fragmentContext) {\n        //NOTE: use <template> element as a fragment context if context element was not provided,\n        //so we will parse in \"forgiving\" manner\n        if (!fragmentContext) {\n            fragmentContext = this.treeAdapter.createElement($.TEMPLATE, NS.HTML, []);\n        }\n\n        //NOTE: create fake element which will be used as 'document' for fragment parsing.\n        //This is important for jsdom there 'document' can't be recreated, therefore\n        //fragment parsing causes messing of the main `document`.\n        const documentMock = this.treeAdapter.createElement('documentmock', NS.HTML, []);\n\n        this._bootstrap(documentMock, fragmentContext);\n\n        if (this.treeAdapter.getTagName(fragmentContext) === $.TEMPLATE) {\n            this._pushTmplInsertionMode(IN_TEMPLATE_MODE);\n        }\n\n        this._initTokenizerForFragmentParsing();\n        this._insertFakeRootElement();\n        this._resetInsertionMode();\n        this._findFormInFragmentContext();\n        this.tokenizer.write(html, true);\n        this._runParsingLoop(null);\n\n        const rootElement = this.treeAdapter.getFirstChild(documentMock);\n        const fragment = this.treeAdapter.createDocumentFragment();\n\n        this._adoptNodes(rootElement, fragment);\n\n        return fragment;\n    }\n\n    //Bootstrap parser\n    _bootstrap(document, fragmentContext) {\n        this.tokenizer = new Tokenizer(this.options);\n\n        this.stopped = false;\n\n        this.insertionMode = INITIAL_MODE;\n        this.originalInsertionMode = '';\n\n        this.document = document;\n        this.fragmentContext = fragmentContext;\n\n        this.headElement = null;\n        this.formElement = null;\n\n        this.openElements = new OpenElementStack(this.document, this.treeAdapter);\n        this.activeFormattingElements = new FormattingElementList(this.treeAdapter);\n\n        this.tmplInsertionModeStack = [];\n        this.tmplInsertionModeStackTop = -1;\n        this.currentTmplInsertionMode = null;\n\n        this.pendingCharacterTokens = [];\n        this.hasNonWhitespacePendingCharacterToken = false;\n\n        this.framesetOk = true;\n        this.skipNextNewLine = false;\n        this.fosterParentingEnabled = false;\n    }\n\n    //Errors\n    _err() {\n        // NOTE: err reporting is noop by default. Enabled by mixin.\n    }\n\n    //Parsing loop\n    _runParsingLoop(scriptHandler) {\n        while (!this.stopped) {\n            this._setupTokenizerCDATAMode();\n\n            const token = this.tokenizer.getNextToken();\n\n            if (token.type === Tokenizer.HIBERNATION_TOKEN) {\n                break;\n            }\n\n            if (this.skipNextNewLine) {\n                this.skipNextNewLine = false;\n\n                if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN && token.chars[0] === '\\n') {\n                    if (token.chars.length === 1) {\n                        continue;\n                    }\n\n                    token.chars = token.chars.substr(1);\n                }\n            }\n\n            this._processInputToken(token);\n\n            if (scriptHandler && this.pendingScript) {\n                break;\n            }\n        }\n    }\n\n    runParsingLoopForCurrentChunk(writeCallback, scriptHandler) {\n        this._runParsingLoop(scriptHandler);\n\n        if (scriptHandler && this.pendingScript) {\n            const script = this.pendingScript;\n\n            this.pendingScript = null;\n\n            scriptHandler(script);\n\n            return;\n        }\n\n        if (writeCallback) {\n            writeCallback();\n        }\n    }\n\n    //Text parsing\n    _setupTokenizerCDATAMode() {\n        const current = this._getAdjustedCurrentElement();\n\n        this.tokenizer.allowCDATA =\n            current &&\n            current !== this.document &&\n            this.treeAdapter.getNamespaceURI(current) !== NS.HTML &&\n            !this._isIntegrationPoint(current);\n    }\n\n    _switchToTextParsing(currentToken, nextTokenizerState) {\n        this._insertElement(currentToken, NS.HTML);\n        this.tokenizer.state = nextTokenizerState;\n        this.originalInsertionMode = this.insertionMode;\n        this.insertionMode = TEXT_MODE;\n    }\n\n    switchToPlaintextParsing() {\n        this.insertionMode = TEXT_MODE;\n        this.originalInsertionMode = IN_BODY_MODE;\n        this.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n    }\n\n    //Fragment parsing\n    _getAdjustedCurrentElement() {\n        return this.openElements.stackTop === 0 && this.fragmentContext\n            ? this.fragmentContext\n            : this.openElements.current;\n    }\n\n    _findFormInFragmentContext() {\n        let node = this.fragmentContext;\n\n        do {\n            if (this.treeAdapter.getTagName(node) === $.FORM) {\n                this.formElement = node;\n                break;\n            }\n\n            node = this.treeAdapter.getParentNode(node);\n        } while (node);\n    }\n\n    _initTokenizerForFragmentParsing() {\n        if (this.treeAdapter.getNamespaceURI(this.fragmentContext) === NS.HTML) {\n            const tn = this.treeAdapter.getTagName(this.fragmentContext);\n\n            if (tn === $.TITLE || tn === $.TEXTAREA) {\n                this.tokenizer.state = Tokenizer.MODE.RCDATA;\n            } else if (\n                tn === $.STYLE ||\n                tn === $.XMP ||\n                tn === $.IFRAME ||\n                tn === $.NOEMBED ||\n                tn === $.NOFRAMES ||\n                tn === $.NOSCRIPT\n            ) {\n                this.tokenizer.state = Tokenizer.MODE.RAWTEXT;\n            } else if (tn === $.SCRIPT) {\n                this.tokenizer.state = Tokenizer.MODE.SCRIPT_DATA;\n            } else if (tn === $.PLAINTEXT) {\n                this.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n            }\n        }\n    }\n\n    //Tree mutation\n    _setDocumentType(token) {\n        const name = token.name || '';\n        const publicId = token.publicId || '';\n        const systemId = token.systemId || '';\n\n        this.treeAdapter.setDocumentType(this.document, name, publicId, systemId);\n    }\n\n    _attachElementToTree(element) {\n        if (this._shouldFosterParentOnInsertion()) {\n            this._fosterParentElement(element);\n        } else {\n            const parent = this.openElements.currentTmplContent || this.openElements.current;\n\n            this.treeAdapter.appendChild(parent, element);\n        }\n    }\n\n    _appendElement(token, namespaceURI) {\n        const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n\n        this._attachElementToTree(element);\n    }\n\n    _insertElement(token, namespaceURI) {\n        const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n\n        this._attachElementToTree(element);\n        this.openElements.push(element);\n    }\n\n    _insertFakeElement(tagName) {\n        const element = this.treeAdapter.createElement(tagName, NS.HTML, []);\n\n        this._attachElementToTree(element);\n        this.openElements.push(element);\n    }\n\n    _insertTemplate(token) {\n        const tmpl = this.treeAdapter.createElement(token.tagName, NS.HTML, token.attrs);\n        const content = this.treeAdapter.createDocumentFragment();\n\n        this.treeAdapter.setTemplateContent(tmpl, content);\n        this._attachElementToTree(tmpl);\n        this.openElements.push(tmpl);\n    }\n\n    _insertFakeRootElement() {\n        const element = this.treeAdapter.createElement($.HTML, NS.HTML, []);\n\n        this.treeAdapter.appendChild(this.openElements.current, element);\n        this.openElements.push(element);\n    }\n\n    _appendCommentNode(token, parent) {\n        const commentNode = this.treeAdapter.createCommentNode(token.data);\n\n        this.treeAdapter.appendChild(parent, commentNode);\n    }\n\n    _insertCharacters(token) {\n        if (this._shouldFosterParentOnInsertion()) {\n            this._fosterParentText(token.chars);\n        } else {\n            const parent = this.openElements.currentTmplContent || this.openElements.current;\n\n            this.treeAdapter.insertText(parent, token.chars);\n        }\n    }\n\n    _adoptNodes(donor, recipient) {\n        for (let child = this.treeAdapter.getFirstChild(donor); child; child = this.treeAdapter.getFirstChild(donor)) {\n            this.treeAdapter.detachNode(child);\n            this.treeAdapter.appendChild(recipient, child);\n        }\n    }\n\n    //Token processing\n    _shouldProcessTokenInForeignContent(token) {\n        const current = this._getAdjustedCurrentElement();\n\n        if (!current || current === this.document) {\n            return false;\n        }\n\n        const ns = this.treeAdapter.getNamespaceURI(current);\n\n        if (ns === NS.HTML) {\n            return false;\n        }\n\n        if (\n            this.treeAdapter.getTagName(current) === $.ANNOTATION_XML &&\n            ns === NS.MATHML &&\n            token.type === Tokenizer.START_TAG_TOKEN &&\n            token.tagName === $.SVG\n        ) {\n            return false;\n        }\n\n        const isCharacterToken =\n            token.type === Tokenizer.CHARACTER_TOKEN ||\n            token.type === Tokenizer.NULL_CHARACTER_TOKEN ||\n            token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN;\n\n        const isMathMLTextStartTag =\n            token.type === Tokenizer.START_TAG_TOKEN && token.tagName !== $.MGLYPH && token.tagName !== $.MALIGNMARK;\n\n        if ((isMathMLTextStartTag || isCharacterToken) && this._isIntegrationPoint(current, NS.MATHML)) {\n            return false;\n        }\n\n        if (\n            (token.type === Tokenizer.START_TAG_TOKEN || isCharacterToken) &&\n            this._isIntegrationPoint(current, NS.HTML)\n        ) {\n            return false;\n        }\n\n        return token.type !== Tokenizer.EOF_TOKEN;\n    }\n\n    _processToken(token) {\n        TOKEN_HANDLERS[this.insertionMode][token.type](this, token);\n    }\n\n    _processTokenInBodyMode(token) {\n        TOKEN_HANDLERS[IN_BODY_MODE][token.type](this, token);\n    }\n\n    _processTokenInForeignContent(token) {\n        if (token.type === Tokenizer.CHARACTER_TOKEN) {\n            characterInForeignContent(this, token);\n        } else if (token.type === Tokenizer.NULL_CHARACTER_TOKEN) {\n            nullCharacterInForeignContent(this, token);\n        } else if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN) {\n            insertCharacters(this, token);\n        } else if (token.type === Tokenizer.COMMENT_TOKEN) {\n            appendComment(this, token);\n        } else if (token.type === Tokenizer.START_TAG_TOKEN) {\n            startTagInForeignContent(this, token);\n        } else if (token.type === Tokenizer.END_TAG_TOKEN) {\n            endTagInForeignContent(this, token);\n        }\n    }\n\n    _processInputToken(token) {\n        if (this._shouldProcessTokenInForeignContent(token)) {\n            this._processTokenInForeignContent(token);\n        } else {\n            this._processToken(token);\n        }\n\n        if (token.type === Tokenizer.START_TAG_TOKEN && token.selfClosing && !token.ackSelfClosing) {\n            this._err(ERR.nonVoidHtmlElementStartTagWithTrailingSolidus);\n        }\n    }\n\n    //Integration points\n    _isIntegrationPoint(element, foreignNS) {\n        const tn = this.treeAdapter.getTagName(element);\n        const ns = this.treeAdapter.getNamespaceURI(element);\n        const attrs = this.treeAdapter.getAttrList(element);\n\n        return foreignContent.isIntegrationPoint(tn, ns, attrs, foreignNS);\n    }\n\n    //Active formatting elements reconstruction\n    _reconstructActiveFormattingElements() {\n        const listLength = this.activeFormattingElements.length;\n\n        if (listLength) {\n            let unopenIdx = listLength;\n            let entry = null;\n\n            do {\n                unopenIdx--;\n                entry = this.activeFormattingElements.entries[unopenIdx];\n\n                if (entry.type === FormattingElementList.MARKER_ENTRY || this.openElements.contains(entry.element)) {\n                    unopenIdx++;\n                    break;\n                }\n            } while (unopenIdx > 0);\n\n            for (let i = unopenIdx; i < listLength; i++) {\n                entry = this.activeFormattingElements.entries[i];\n                this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));\n                entry.element = this.openElements.current;\n            }\n        }\n    }\n\n    //Close elements\n    _closeTableCell() {\n        this.openElements.generateImpliedEndTags();\n        this.openElements.popUntilTableCellPopped();\n        this.activeFormattingElements.clearToLastMarker();\n        this.insertionMode = IN_ROW_MODE;\n    }\n\n    _closePElement() {\n        this.openElements.generateImpliedEndTagsWithExclusion($.P);\n        this.openElements.popUntilTagNamePopped($.P);\n    }\n\n    //Insertion modes\n    _resetInsertionMode() {\n        for (let i = this.openElements.stackTop, last = false; i >= 0; i--) {\n            let element = this.openElements.items[i];\n\n            if (i === 0) {\n                last = true;\n\n                if (this.fragmentContext) {\n                    element = this.fragmentContext;\n                }\n            }\n\n            const tn = this.treeAdapter.getTagName(element);\n            const newInsertionMode = INSERTION_MODE_RESET_MAP[tn];\n\n            if (newInsertionMode) {\n                this.insertionMode = newInsertionMode;\n                break;\n            } else if (!last && (tn === $.TD || tn === $.TH)) {\n                this.insertionMode = IN_CELL_MODE;\n                break;\n            } else if (!last && tn === $.HEAD) {\n                this.insertionMode = IN_HEAD_MODE;\n                break;\n            } else if (tn === $.SELECT) {\n                this._resetInsertionModeForSelect(i);\n                break;\n            } else if (tn === $.TEMPLATE) {\n                this.insertionMode = this.currentTmplInsertionMode;\n                break;\n            } else if (tn === $.HTML) {\n                this.insertionMode = this.headElement ? AFTER_HEAD_MODE : BEFORE_HEAD_MODE;\n                break;\n            } else if (last) {\n                this.insertionMode = IN_BODY_MODE;\n                break;\n            }\n        }\n    }\n\n    _resetInsertionModeForSelect(selectIdx) {\n        if (selectIdx > 0) {\n            for (let i = selectIdx - 1; i > 0; i--) {\n                const ancestor = this.openElements.items[i];\n                const tn = this.treeAdapter.getTagName(ancestor);\n\n                if (tn === $.TEMPLATE) {\n                    break;\n                } else if (tn === $.TABLE) {\n                    this.insertionMode = IN_SELECT_IN_TABLE_MODE;\n                    return;\n                }\n            }\n        }\n\n        this.insertionMode = IN_SELECT_MODE;\n    }\n\n    _pushTmplInsertionMode(mode) {\n        this.tmplInsertionModeStack.push(mode);\n        this.tmplInsertionModeStackTop++;\n        this.currentTmplInsertionMode = mode;\n    }\n\n    _popTmplInsertionMode() {\n        this.tmplInsertionModeStack.pop();\n        this.tmplInsertionModeStackTop--;\n        this.currentTmplInsertionMode = this.tmplInsertionModeStack[this.tmplInsertionModeStackTop];\n    }\n\n    //Foster parenting\n    _isElementCausesFosterParenting(element) {\n        const tn = this.treeAdapter.getTagName(element);\n\n        return tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR;\n    }\n\n    _shouldFosterParentOnInsertion() {\n        return this.fosterParentingEnabled && this._isElementCausesFosterParenting(this.openElements.current);\n    }\n\n    _findFosterParentingLocation() {\n        const location = {\n            parent: null,\n            beforeElement: null\n        };\n\n        for (let i = this.openElements.stackTop; i >= 0; i--) {\n            const openElement = this.openElements.items[i];\n            const tn = this.treeAdapter.getTagName(openElement);\n            const ns = this.treeAdapter.getNamespaceURI(openElement);\n\n            if (tn === $.TEMPLATE && ns === NS.HTML) {\n                location.parent = this.treeAdapter.getTemplateContent(openElement);\n                break;\n            } else if (tn === $.TABLE) {\n                location.parent = this.treeAdapter.getParentNode(openElement);\n\n                if (location.parent) {\n                    location.beforeElement = openElement;\n                } else {\n                    location.parent = this.openElements.items[i - 1];\n                }\n\n                break;\n            }\n        }\n\n        if (!location.parent) {\n            location.parent = this.openElements.items[0];\n        }\n\n        return location;\n    }\n\n    _fosterParentElement(element) {\n        const location = this._findFosterParentingLocation();\n\n        if (location.beforeElement) {\n            this.treeAdapter.insertBefore(location.parent, element, location.beforeElement);\n        } else {\n            this.treeAdapter.appendChild(location.parent, element);\n        }\n    }\n\n    _fosterParentText(chars) {\n        const location = this._findFosterParentingLocation();\n\n        if (location.beforeElement) {\n            this.treeAdapter.insertTextBefore(location.parent, chars, location.beforeElement);\n        } else {\n            this.treeAdapter.insertText(location.parent, chars);\n        }\n    }\n\n    //Special elements\n    _isSpecialElement(element) {\n        const tn = this.treeAdapter.getTagName(element);\n        const ns = this.treeAdapter.getNamespaceURI(element);\n\n        return HTML.SPECIAL_ELEMENTS[ns][tn];\n    }\n}\n\nmodule.exports = Parser;\n\n//Adoption agency algorithm\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#adoptionAgency)\n//------------------------------------------------------------------\n\n//Steps 5-8 of the algorithm\nfunction aaObtainFormattingElementEntry(p, token) {\n    let formattingElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(token.tagName);\n\n    if (formattingElementEntry) {\n        if (!p.openElements.contains(formattingElementEntry.element)) {\n            p.activeFormattingElements.removeEntry(formattingElementEntry);\n            formattingElementEntry = null;\n        } else if (!p.openElements.hasInScope(token.tagName)) {\n            formattingElementEntry = null;\n        }\n    } else {\n        genericEndTagInBody(p, token);\n    }\n\n    return formattingElementEntry;\n}\n\n//Steps 9 and 10 of the algorithm\nfunction aaObtainFurthestBlock(p, formattingElementEntry) {\n    let furthestBlock = null;\n\n    for (let i = p.openElements.stackTop; i >= 0; i--) {\n        const element = p.openElements.items[i];\n\n        if (element === formattingElementEntry.element) {\n            break;\n        }\n\n        if (p._isSpecialElement(element)) {\n            furthestBlock = element;\n        }\n    }\n\n    if (!furthestBlock) {\n        p.openElements.popUntilElementPopped(formattingElementEntry.element);\n        p.activeFormattingElements.removeEntry(formattingElementEntry);\n    }\n\n    return furthestBlock;\n}\n\n//Step 13 of the algorithm\nfunction aaInnerLoop(p, furthestBlock, formattingElement) {\n    let lastElement = furthestBlock;\n    let nextElement = p.openElements.getCommonAncestor(furthestBlock);\n\n    for (let i = 0, element = nextElement; element !== formattingElement; i++, element = nextElement) {\n        //NOTE: store next element for the next loop iteration (it may be deleted from the stack by step 9.5)\n        nextElement = p.openElements.getCommonAncestor(element);\n\n        const elementEntry = p.activeFormattingElements.getElementEntry(element);\n        const counterOverflow = elementEntry && i >= AA_INNER_LOOP_ITER;\n        const shouldRemoveFromOpenElements = !elementEntry || counterOverflow;\n\n        if (shouldRemoveFromOpenElements) {\n            if (counterOverflow) {\n                p.activeFormattingElements.removeEntry(elementEntry);\n            }\n\n            p.openElements.remove(element);\n        } else {\n            element = aaRecreateElementFromEntry(p, elementEntry);\n\n            if (lastElement === furthestBlock) {\n                p.activeFormattingElements.bookmark = elementEntry;\n            }\n\n            p.treeAdapter.detachNode(lastElement);\n            p.treeAdapter.appendChild(element, lastElement);\n            lastElement = element;\n        }\n    }\n\n    return lastElement;\n}\n\n//Step 13.7 of the algorithm\nfunction aaRecreateElementFromEntry(p, elementEntry) {\n    const ns = p.treeAdapter.getNamespaceURI(elementEntry.element);\n    const newElement = p.treeAdapter.createElement(elementEntry.token.tagName, ns, elementEntry.token.attrs);\n\n    p.openElements.replace(elementEntry.element, newElement);\n    elementEntry.element = newElement;\n\n    return newElement;\n}\n\n//Step 14 of the algorithm\nfunction aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) {\n    if (p._isElementCausesFosterParenting(commonAncestor)) {\n        p._fosterParentElement(lastElement);\n    } else {\n        const tn = p.treeAdapter.getTagName(commonAncestor);\n        const ns = p.treeAdapter.getNamespaceURI(commonAncestor);\n\n        if (tn === $.TEMPLATE && ns === NS.HTML) {\n            commonAncestor = p.treeAdapter.getTemplateContent(commonAncestor);\n        }\n\n        p.treeAdapter.appendChild(commonAncestor, lastElement);\n    }\n}\n\n//Steps 15-19 of the algorithm\nfunction aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry) {\n    const ns = p.treeAdapter.getNamespaceURI(formattingElementEntry.element);\n    const token = formattingElementEntry.token;\n    const newElement = p.treeAdapter.createElement(token.tagName, ns, token.attrs);\n\n    p._adoptNodes(furthestBlock, newElement);\n    p.treeAdapter.appendChild(furthestBlock, newElement);\n\n    p.activeFormattingElements.insertElementAfterBookmark(newElement, formattingElementEntry.token);\n    p.activeFormattingElements.removeEntry(formattingElementEntry);\n\n    p.openElements.remove(formattingElementEntry.element);\n    p.openElements.insertAfter(furthestBlock, newElement);\n}\n\n//Algorithm entry point\nfunction callAdoptionAgency(p, token) {\n    let formattingElementEntry;\n\n    for (let i = 0; i < AA_OUTER_LOOP_ITER; i++) {\n        formattingElementEntry = aaObtainFormattingElementEntry(p, token, formattingElementEntry);\n\n        if (!formattingElementEntry) {\n            break;\n        }\n\n        const furthestBlock = aaObtainFurthestBlock(p, formattingElementEntry);\n\n        if (!furthestBlock) {\n            break;\n        }\n\n        p.activeFormattingElements.bookmark = formattingElementEntry;\n\n        const lastElement = aaInnerLoop(p, furthestBlock, formattingElementEntry.element);\n        const commonAncestor = p.openElements.getCommonAncestor(formattingElementEntry.element);\n\n        p.treeAdapter.detachNode(lastElement);\n        aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement);\n        aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry);\n    }\n}\n\n//Generic token handlers\n//------------------------------------------------------------------\nfunction ignoreToken() {\n    //NOTE: do nothing =)\n}\n\nfunction misplacedDoctype(p) {\n    p._err(ERR.misplacedDoctype);\n}\n\nfunction appendComment(p, token) {\n    p._appendCommentNode(token, p.openElements.currentTmplContent || p.openElements.current);\n}\n\nfunction appendCommentToRootHtmlElement(p, token) {\n    p._appendCommentNode(token, p.openElements.items[0]);\n}\n\nfunction appendCommentToDocument(p, token) {\n    p._appendCommentNode(token, p.document);\n}\n\nfunction insertCharacters(p, token) {\n    p._insertCharacters(token);\n}\n\nfunction stopParsing(p) {\n    p.stopped = true;\n}\n\n// The \"initial\" insertion mode\n//------------------------------------------------------------------\nfunction doctypeInInitialMode(p, token) {\n    p._setDocumentType(token);\n\n    const mode = token.forceQuirks ? HTML.DOCUMENT_MODE.QUIRKS : doctype.getDocumentMode(token);\n\n    if (!doctype.isConforming(token)) {\n        p._err(ERR.nonConformingDoctype);\n    }\n\n    p.treeAdapter.setDocumentMode(p.document, mode);\n\n    p.insertionMode = BEFORE_HTML_MODE;\n}\n\nfunction tokenInInitialMode(p, token) {\n    p._err(ERR.missingDoctype, { beforeToken: true });\n    p.treeAdapter.setDocumentMode(p.document, HTML.DOCUMENT_MODE.QUIRKS);\n    p.insertionMode = BEFORE_HTML_MODE;\n    p._processToken(token);\n}\n\n// The \"before html\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHtml(p, token) {\n    if (token.tagName === $.HTML) {\n        p._insertElement(token, NS.HTML);\n        p.insertionMode = BEFORE_HEAD_MODE;\n    } else {\n        tokenBeforeHtml(p, token);\n    }\n}\n\nfunction endTagBeforeHtml(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML || tn === $.HEAD || tn === $.BODY || tn === $.BR) {\n        tokenBeforeHtml(p, token);\n    }\n}\n\nfunction tokenBeforeHtml(p, token) {\n    p._insertFakeRootElement();\n    p.insertionMode = BEFORE_HEAD_MODE;\n    p._processToken(token);\n}\n\n// The \"before head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHead(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (tn === $.HEAD) {\n        p._insertElement(token, NS.HTML);\n        p.headElement = p.openElements.current;\n        p.insertionMode = IN_HEAD_MODE;\n    } else {\n        tokenBeforeHead(p, token);\n    }\n}\n\nfunction endTagBeforeHead(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HEAD || tn === $.BODY || tn === $.HTML || tn === $.BR) {\n        tokenBeforeHead(p, token);\n    } else {\n        p._err(ERR.endTagWithoutMatchingOpenElement);\n    }\n}\n\nfunction tokenBeforeHead(p, token) {\n    p._insertFakeElement($.HEAD);\n    p.headElement = p.openElements.current;\n    p.insertionMode = IN_HEAD_MODE;\n    p._processToken(token);\n}\n\n// The \"in head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHead(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (tn === $.BASE || tn === $.BASEFONT || tn === $.BGSOUND || tn === $.LINK || tn === $.META) {\n        p._appendElement(token, NS.HTML);\n        token.ackSelfClosing = true;\n    } else if (tn === $.TITLE) {\n        p._switchToTextParsing(token, Tokenizer.MODE.RCDATA);\n    } else if (tn === $.NOSCRIPT) {\n        if (p.options.scriptingEnabled) {\n            p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n        } else {\n            p._insertElement(token, NS.HTML);\n            p.insertionMode = IN_HEAD_NO_SCRIPT_MODE;\n        }\n    } else if (tn === $.NOFRAMES || tn === $.STYLE) {\n        p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n    } else if (tn === $.SCRIPT) {\n        p._switchToTextParsing(token, Tokenizer.MODE.SCRIPT_DATA);\n    } else if (tn === $.TEMPLATE) {\n        p._insertTemplate(token, NS.HTML);\n        p.activeFormattingElements.insertMarker();\n        p.framesetOk = false;\n        p.insertionMode = IN_TEMPLATE_MODE;\n        p._pushTmplInsertionMode(IN_TEMPLATE_MODE);\n    } else if (tn === $.HEAD) {\n        p._err(ERR.misplacedStartTagForHeadElement);\n    } else {\n        tokenInHead(p, token);\n    }\n}\n\nfunction endTagInHead(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HEAD) {\n        p.openElements.pop();\n        p.insertionMode = AFTER_HEAD_MODE;\n    } else if (tn === $.BODY || tn === $.BR || tn === $.HTML) {\n        tokenInHead(p, token);\n    } else if (tn === $.TEMPLATE) {\n        if (p.openElements.tmplCount > 0) {\n            p.openElements.generateImpliedEndTagsThoroughly();\n\n            if (p.openElements.currentTagName !== $.TEMPLATE) {\n                p._err(ERR.closingOfElementWithOpenChildElements);\n            }\n\n            p.openElements.popUntilTagNamePopped($.TEMPLATE);\n            p.activeFormattingElements.clearToLastMarker();\n            p._popTmplInsertionMode();\n            p._resetInsertionMode();\n        } else {\n            p._err(ERR.endTagWithoutMatchingOpenElement);\n        }\n    } else {\n        p._err(ERR.endTagWithoutMatchingOpenElement);\n    }\n}\n\nfunction tokenInHead(p, token) {\n    p.openElements.pop();\n    p.insertionMode = AFTER_HEAD_MODE;\n    p._processToken(token);\n}\n\n// The \"in head no script\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHeadNoScript(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (\n        tn === $.BASEFONT ||\n        tn === $.BGSOUND ||\n        tn === $.HEAD ||\n        tn === $.LINK ||\n        tn === $.META ||\n        tn === $.NOFRAMES ||\n        tn === $.STYLE\n    ) {\n        startTagInHead(p, token);\n    } else if (tn === $.NOSCRIPT) {\n        p._err(ERR.nestedNoscriptInHead);\n    } else {\n        tokenInHeadNoScript(p, token);\n    }\n}\n\nfunction endTagInHeadNoScript(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.NOSCRIPT) {\n        p.openElements.pop();\n        p.insertionMode = IN_HEAD_MODE;\n    } else if (tn === $.BR) {\n        tokenInHeadNoScript(p, token);\n    } else {\n        p._err(ERR.endTagWithoutMatchingOpenElement);\n    }\n}\n\nfunction tokenInHeadNoScript(p, token) {\n    const errCode =\n        token.type === Tokenizer.EOF_TOKEN ? ERR.openElementsLeftAfterEof : ERR.disallowedContentInNoscriptInHead;\n\n    p._err(errCode);\n    p.openElements.pop();\n    p.insertionMode = IN_HEAD_MODE;\n    p._processToken(token);\n}\n\n// The \"after head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterHead(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (tn === $.BODY) {\n        p._insertElement(token, NS.HTML);\n        p.framesetOk = false;\n        p.insertionMode = IN_BODY_MODE;\n    } else if (tn === $.FRAMESET) {\n        p._insertElement(token, NS.HTML);\n        p.insertionMode = IN_FRAMESET_MODE;\n    } else if (\n        tn === $.BASE ||\n        tn === $.BASEFONT ||\n        tn === $.BGSOUND ||\n        tn === $.LINK ||\n        tn === $.META ||\n        tn === $.NOFRAMES ||\n        tn === $.SCRIPT ||\n        tn === $.STYLE ||\n        tn === $.TEMPLATE ||\n        tn === $.TITLE\n    ) {\n        p._err(ERR.abandonedHeadElementChild);\n        p.openElements.push(p.headElement);\n        startTagInHead(p, token);\n        p.openElements.remove(p.headElement);\n    } else if (tn === $.HEAD) {\n        p._err(ERR.misplacedStartTagForHeadElement);\n    } else {\n        tokenAfterHead(p, token);\n    }\n}\n\nfunction endTagAfterHead(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.BODY || tn === $.HTML || tn === $.BR) {\n        tokenAfterHead(p, token);\n    } else if (tn === $.TEMPLATE) {\n        endTagInHead(p, token);\n    } else {\n        p._err(ERR.endTagWithoutMatchingOpenElement);\n    }\n}\n\nfunction tokenAfterHead(p, token) {\n    p._insertFakeElement($.BODY);\n    p.insertionMode = IN_BODY_MODE;\n    p._processToken(token);\n}\n\n// The \"in body\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n    p._insertCharacters(token);\n}\n\nfunction characterInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n    p._insertCharacters(token);\n    p.framesetOk = false;\n}\n\nfunction htmlStartTagInBody(p, token) {\n    if (p.openElements.tmplCount === 0) {\n        p.treeAdapter.adoptAttributes(p.openElements.items[0], token.attrs);\n    }\n}\n\nfunction bodyStartTagInBody(p, token) {\n    const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n\n    if (bodyElement && p.openElements.tmplCount === 0) {\n        p.framesetOk = false;\n        p.treeAdapter.adoptAttributes(bodyElement, token.attrs);\n    }\n}\n\nfunction framesetStartTagInBody(p, token) {\n    const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n\n    if (p.framesetOk && bodyElement) {\n        p.treeAdapter.detachNode(bodyElement);\n        p.openElements.popAllUpToHtmlElement();\n        p._insertElement(token, NS.HTML);\n        p.insertionMode = IN_FRAMESET_MODE;\n    }\n}\n\nfunction addressStartTagInBody(p, token) {\n    if (p.openElements.hasInButtonScope($.P)) {\n        p._closePElement();\n    }\n\n    p._insertElement(token, NS.HTML);\n}\n\nfunction numberedHeaderStartTagInBody(p, token) {\n    if (p.openElements.hasInButtonScope($.P)) {\n        p._closePElement();\n    }\n\n    const tn = p.openElements.currentTagName;\n\n    if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n        p.openElements.pop();\n    }\n\n    p._insertElement(token, NS.HTML);\n}\n\nfunction preStartTagInBody(p, token) {\n    if (p.openElements.hasInButtonScope($.P)) {\n        p._closePElement();\n    }\n\n    p._insertElement(token, NS.HTML);\n    //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n    //on to the next one. (Newlines at the start of pre blocks are ignored as an authoring convenience.)\n    p.skipNextNewLine = true;\n    p.framesetOk = false;\n}\n\nfunction formStartTagInBody(p, token) {\n    const inTemplate = p.openElements.tmplCount > 0;\n\n    if (!p.formElement || inTemplate) {\n        if (p.openElements.hasInButtonScope($.P)) {\n            p._closePElement();\n        }\n\n        p._insertElement(token, NS.HTML);\n\n        if (!inTemplate) {\n            p.formElement = p.openElements.current;\n        }\n    }\n}\n\nfunction listItemStartTagInBody(p, token) {\n    p.framesetOk = false;\n\n    const tn = token.tagName;\n\n    for (let i = p.openElements.stackTop; i >= 0; i--) {\n        const element = p.openElements.items[i];\n        const elementTn = p.treeAdapter.getTagName(element);\n        let closeTn = null;\n\n        if (tn === $.LI && elementTn === $.LI) {\n            closeTn = $.LI;\n        } else if ((tn === $.DD || tn === $.DT) && (elementTn === $.DD || elementTn === $.DT)) {\n            closeTn = elementTn;\n        }\n\n        if (closeTn) {\n            p.openElements.generateImpliedEndTagsWithExclusion(closeTn);\n            p.openElements.popUntilTagNamePopped(closeTn);\n            break;\n        }\n\n        if (elementTn !== $.ADDRESS && elementTn !== $.DIV && elementTn !== $.P && p._isSpecialElement(element)) {\n            break;\n        }\n    }\n\n    if (p.openElements.hasInButtonScope($.P)) {\n        p._closePElement();\n    }\n\n    p._insertElement(token, NS.HTML);\n}\n\nfunction plaintextStartTagInBody(p, token) {\n    if (p.openElements.hasInButtonScope($.P)) {\n        p._closePElement();\n    }\n\n    p._insertElement(token, NS.HTML);\n    p.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n}\n\nfunction buttonStartTagInBody(p, token) {\n    if (p.openElements.hasInScope($.BUTTON)) {\n        p.openElements.generateImpliedEndTags();\n        p.openElements.popUntilTagNamePopped($.BUTTON);\n    }\n\n    p._reconstructActiveFormattingElements();\n    p._insertElement(token, NS.HTML);\n    p.framesetOk = false;\n}\n\nfunction aStartTagInBody(p, token) {\n    const activeElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName($.A);\n\n    if (activeElementEntry) {\n        callAdoptionAgency(p, token);\n        p.openElements.remove(activeElementEntry.element);\n        p.activeFormattingElements.removeEntry(activeElementEntry);\n    }\n\n    p._reconstructActiveFormattingElements();\n    p._insertElement(token, NS.HTML);\n    p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction bStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n    p._insertElement(token, NS.HTML);\n    p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction nobrStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n\n    if (p.openElements.hasInScope($.NOBR)) {\n        callAdoptionAgency(p, token);\n        p._reconstructActiveFormattingElements();\n    }\n\n    p._insertElement(token, NS.HTML);\n    p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction appletStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n    p._insertElement(token, NS.HTML);\n    p.activeFormattingElements.insertMarker();\n    p.framesetOk = false;\n}\n\nfunction tableStartTagInBody(p, token) {\n    if (\n        p.treeAdapter.getDocumentMode(p.document) !== HTML.DOCUMENT_MODE.QUIRKS &&\n        p.openElements.hasInButtonScope($.P)\n    ) {\n        p._closePElement();\n    }\n\n    p._insertElement(token, NS.HTML);\n    p.framesetOk = false;\n    p.insertionMode = IN_TABLE_MODE;\n}\n\nfunction areaStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n    p._appendElement(token, NS.HTML);\n    p.framesetOk = false;\n    token.ackSelfClosing = true;\n}\n\nfunction inputStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n    p._appendElement(token, NS.HTML);\n\n    const inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);\n\n    if (!inputType || inputType.toLowerCase() !== HIDDEN_INPUT_TYPE) {\n        p.framesetOk = false;\n    }\n\n    token.ackSelfClosing = true;\n}\n\nfunction paramStartTagInBody(p, token) {\n    p._appendElement(token, NS.HTML);\n    token.ackSelfClosing = true;\n}\n\nfunction hrStartTagInBody(p, token) {\n    if (p.openElements.hasInButtonScope($.P)) {\n        p._closePElement();\n    }\n\n    p._appendElement(token, NS.HTML);\n    p.framesetOk = false;\n    token.ackSelfClosing = true;\n}\n\nfunction imageStartTagInBody(p, token) {\n    token.tagName = $.IMG;\n    areaStartTagInBody(p, token);\n}\n\nfunction textareaStartTagInBody(p, token) {\n    p._insertElement(token, NS.HTML);\n    //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n    //on to the next one. (Newlines at the start of textarea elements are ignored as an authoring convenience.)\n    p.skipNextNewLine = true;\n    p.tokenizer.state = Tokenizer.MODE.RCDATA;\n    p.originalInsertionMode = p.insertionMode;\n    p.framesetOk = false;\n    p.insertionMode = TEXT_MODE;\n}\n\nfunction xmpStartTagInBody(p, token) {\n    if (p.openElements.hasInButtonScope($.P)) {\n        p._closePElement();\n    }\n\n    p._reconstructActiveFormattingElements();\n    p.framesetOk = false;\n    p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\nfunction iframeStartTagInBody(p, token) {\n    p.framesetOk = false;\n    p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\n//NOTE: here we assume that we always act as an user agent with enabled plugins, so we parse\n//<noembed> as a rawtext.\nfunction noembedStartTagInBody(p, token) {\n    p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\nfunction selectStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n    p._insertElement(token, NS.HTML);\n    p.framesetOk = false;\n\n    if (\n        p.insertionMode === IN_TABLE_MODE ||\n        p.insertionMode === IN_CAPTION_MODE ||\n        p.insertionMode === IN_TABLE_BODY_MODE ||\n        p.insertionMode === IN_ROW_MODE ||\n        p.insertionMode === IN_CELL_MODE\n    ) {\n        p.insertionMode = IN_SELECT_IN_TABLE_MODE;\n    } else {\n        p.insertionMode = IN_SELECT_MODE;\n    }\n}\n\nfunction optgroupStartTagInBody(p, token) {\n    if (p.openElements.currentTagName === $.OPTION) {\n        p.openElements.pop();\n    }\n\n    p._reconstructActiveFormattingElements();\n    p._insertElement(token, NS.HTML);\n}\n\nfunction rbStartTagInBody(p, token) {\n    if (p.openElements.hasInScope($.RUBY)) {\n        p.openElements.generateImpliedEndTags();\n    }\n\n    p._insertElement(token, NS.HTML);\n}\n\nfunction rtStartTagInBody(p, token) {\n    if (p.openElements.hasInScope($.RUBY)) {\n        p.openElements.generateImpliedEndTagsWithExclusion($.RTC);\n    }\n\n    p._insertElement(token, NS.HTML);\n}\n\nfunction menuStartTagInBody(p, token) {\n    if (p.openElements.hasInButtonScope($.P)) {\n        p._closePElement();\n    }\n\n    p._insertElement(token, NS.HTML);\n}\n\nfunction mathStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n\n    foreignContent.adjustTokenMathMLAttrs(token);\n    foreignContent.adjustTokenXMLAttrs(token);\n\n    if (token.selfClosing) {\n        p._appendElement(token, NS.MATHML);\n    } else {\n        p._insertElement(token, NS.MATHML);\n    }\n\n    token.ackSelfClosing = true;\n}\n\nfunction svgStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n\n    foreignContent.adjustTokenSVGAttrs(token);\n    foreignContent.adjustTokenXMLAttrs(token);\n\n    if (token.selfClosing) {\n        p._appendElement(token, NS.SVG);\n    } else {\n        p._insertElement(token, NS.SVG);\n    }\n\n    token.ackSelfClosing = true;\n}\n\nfunction genericStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n    p._insertElement(token, NS.HTML);\n}\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction startTagInBody(p, token) {\n    const tn = token.tagName;\n\n    switch (tn.length) {\n        case 1:\n            if (tn === $.I || tn === $.S || tn === $.B || tn === $.U) {\n                bStartTagInBody(p, token);\n            } else if (tn === $.P) {\n                addressStartTagInBody(p, token);\n            } else if (tn === $.A) {\n                aStartTagInBody(p, token);\n            } else {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 2:\n            if (tn === $.DL || tn === $.OL || tn === $.UL) {\n                addressStartTagInBody(p, token);\n            } else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n                numberedHeaderStartTagInBody(p, token);\n            } else if (tn === $.LI || tn === $.DD || tn === $.DT) {\n                listItemStartTagInBody(p, token);\n            } else if (tn === $.EM || tn === $.TT) {\n                bStartTagInBody(p, token);\n            } else if (tn === $.BR) {\n                areaStartTagInBody(p, token);\n            } else if (tn === $.HR) {\n                hrStartTagInBody(p, token);\n            } else if (tn === $.RB) {\n                rbStartTagInBody(p, token);\n            } else if (tn === $.RT || tn === $.RP) {\n                rtStartTagInBody(p, token);\n            } else if (tn !== $.TH && tn !== $.TD && tn !== $.TR) {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 3:\n            if (tn === $.DIV || tn === $.DIR || tn === $.NAV) {\n                addressStartTagInBody(p, token);\n            } else if (tn === $.PRE) {\n                preStartTagInBody(p, token);\n            } else if (tn === $.BIG) {\n                bStartTagInBody(p, token);\n            } else if (tn === $.IMG || tn === $.WBR) {\n                areaStartTagInBody(p, token);\n            } else if (tn === $.XMP) {\n                xmpStartTagInBody(p, token);\n            } else if (tn === $.SVG) {\n                svgStartTagInBody(p, token);\n            } else if (tn === $.RTC) {\n                rbStartTagInBody(p, token);\n            } else if (tn !== $.COL) {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 4:\n            if (tn === $.HTML) {\n                htmlStartTagInBody(p, token);\n            } else if (tn === $.BASE || tn === $.LINK || tn === $.META) {\n                startTagInHead(p, token);\n            } else if (tn === $.BODY) {\n                bodyStartTagInBody(p, token);\n            } else if (tn === $.MAIN || tn === $.MENU) {\n                addressStartTagInBody(p, token);\n            } else if (tn === $.FORM) {\n                formStartTagInBody(p, token);\n            } else if (tn === $.CODE || tn === $.FONT) {\n                bStartTagInBody(p, token);\n            } else if (tn === $.NOBR) {\n                nobrStartTagInBody(p, token);\n            } else if (tn === $.AREA) {\n                areaStartTagInBody(p, token);\n            } else if (tn === $.MATH) {\n                mathStartTagInBody(p, token);\n            } else if (tn === $.MENU) {\n                menuStartTagInBody(p, token);\n            } else if (tn !== $.HEAD) {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 5:\n            if (tn === $.STYLE || tn === $.TITLE) {\n                startTagInHead(p, token);\n            } else if (tn === $.ASIDE) {\n                addressStartTagInBody(p, token);\n            } else if (tn === $.SMALL) {\n                bStartTagInBody(p, token);\n            } else if (tn === $.TABLE) {\n                tableStartTagInBody(p, token);\n            } else if (tn === $.EMBED) {\n                areaStartTagInBody(p, token);\n            } else if (tn === $.INPUT) {\n                inputStartTagInBody(p, token);\n            } else if (tn === $.PARAM || tn === $.TRACK) {\n                paramStartTagInBody(p, token);\n            } else if (tn === $.IMAGE) {\n                imageStartTagInBody(p, token);\n            } else if (tn !== $.FRAME && tn !== $.TBODY && tn !== $.TFOOT && tn !== $.THEAD) {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 6:\n            if (tn === $.SCRIPT) {\n                startTagInHead(p, token);\n            } else if (\n                tn === $.CENTER ||\n                tn === $.FIGURE ||\n                tn === $.FOOTER ||\n                tn === $.HEADER ||\n                tn === $.HGROUP ||\n                tn === $.DIALOG\n            ) {\n                addressStartTagInBody(p, token);\n            } else if (tn === $.BUTTON) {\n                buttonStartTagInBody(p, token);\n            } else if (tn === $.STRIKE || tn === $.STRONG) {\n                bStartTagInBody(p, token);\n            } else if (tn === $.APPLET || tn === $.OBJECT) {\n                appletStartTagInBody(p, token);\n            } else if (tn === $.KEYGEN) {\n                areaStartTagInBody(p, token);\n            } else if (tn === $.SOURCE) {\n                paramStartTagInBody(p, token);\n            } else if (tn === $.IFRAME) {\n                iframeStartTagInBody(p, token);\n            } else if (tn === $.SELECT) {\n                selectStartTagInBody(p, token);\n            } else if (tn === $.OPTION) {\n                optgroupStartTagInBody(p, token);\n            } else {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 7:\n            if (tn === $.BGSOUND) {\n                startTagInHead(p, token);\n            } else if (\n                tn === $.DETAILS ||\n                tn === $.ADDRESS ||\n                tn === $.ARTICLE ||\n                tn === $.SECTION ||\n                tn === $.SUMMARY\n            ) {\n                addressStartTagInBody(p, token);\n            } else if (tn === $.LISTING) {\n                preStartTagInBody(p, token);\n            } else if (tn === $.MARQUEE) {\n                appletStartTagInBody(p, token);\n            } else if (tn === $.NOEMBED) {\n                noembedStartTagInBody(p, token);\n            } else if (tn !== $.CAPTION) {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 8:\n            if (tn === $.BASEFONT) {\n                startTagInHead(p, token);\n            } else if (tn === $.FRAMESET) {\n                framesetStartTagInBody(p, token);\n            } else if (tn === $.FIELDSET) {\n                addressStartTagInBody(p, token);\n            } else if (tn === $.TEXTAREA) {\n                textareaStartTagInBody(p, token);\n            } else if (tn === $.TEMPLATE) {\n                startTagInHead(p, token);\n            } else if (tn === $.NOSCRIPT) {\n                if (p.options.scriptingEnabled) {\n                    noembedStartTagInBody(p, token);\n                } else {\n                    genericStartTagInBody(p, token);\n                }\n            } else if (tn === $.OPTGROUP) {\n                optgroupStartTagInBody(p, token);\n            } else if (tn !== $.COLGROUP) {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 9:\n            if (tn === $.PLAINTEXT) {\n                plaintextStartTagInBody(p, token);\n            } else {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 10:\n            if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION) {\n                addressStartTagInBody(p, token);\n            } else {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        default:\n            genericStartTagInBody(p, token);\n    }\n}\n\nfunction bodyEndTagInBody(p) {\n    if (p.openElements.hasInScope($.BODY)) {\n        p.insertionMode = AFTER_BODY_MODE;\n    }\n}\n\nfunction htmlEndTagInBody(p, token) {\n    if (p.openElements.hasInScope($.BODY)) {\n        p.insertionMode = AFTER_BODY_MODE;\n        p._processToken(token);\n    }\n}\n\nfunction addressEndTagInBody(p, token) {\n    const tn = token.tagName;\n\n    if (p.openElements.hasInScope(tn)) {\n        p.openElements.generateImpliedEndTags();\n        p.openElements.popUntilTagNamePopped(tn);\n    }\n}\n\nfunction formEndTagInBody(p) {\n    const inTemplate = p.openElements.tmplCount > 0;\n    const formElement = p.formElement;\n\n    if (!inTemplate) {\n        p.formElement = null;\n    }\n\n    if ((formElement || inTemplate) && p.openElements.hasInScope($.FORM)) {\n        p.openElements.generateImpliedEndTags();\n\n        if (inTemplate) {\n            p.openElements.popUntilTagNamePopped($.FORM);\n        } else {\n            p.openElements.remove(formElement);\n        }\n    }\n}\n\nfunction pEndTagInBody(p) {\n    if (!p.openElements.hasInButtonScope($.P)) {\n        p._insertFakeElement($.P);\n    }\n\n    p._closePElement();\n}\n\nfunction liEndTagInBody(p) {\n    if (p.openElements.hasInListItemScope($.LI)) {\n        p.openElements.generateImpliedEndTagsWithExclusion($.LI);\n        p.openElements.popUntilTagNamePopped($.LI);\n    }\n}\n\nfunction ddEndTagInBody(p, token) {\n    const tn = token.tagName;\n\n    if (p.openElements.hasInScope(tn)) {\n        p.openElements.generateImpliedEndTagsWithExclusion(tn);\n        p.openElements.popUntilTagNamePopped(tn);\n    }\n}\n\nfunction numberedHeaderEndTagInBody(p) {\n    if (p.openElements.hasNumberedHeaderInScope()) {\n        p.openElements.generateImpliedEndTags();\n        p.openElements.popUntilNumberedHeaderPopped();\n    }\n}\n\nfunction appletEndTagInBody(p, token) {\n    const tn = token.tagName;\n\n    if (p.openElements.hasInScope(tn)) {\n        p.openElements.generateImpliedEndTags();\n        p.openElements.popUntilTagNamePopped(tn);\n        p.activeFormattingElements.clearToLastMarker();\n    }\n}\n\nfunction brEndTagInBody(p) {\n    p._reconstructActiveFormattingElements();\n    p._insertFakeElement($.BR);\n    p.openElements.pop();\n    p.framesetOk = false;\n}\n\nfunction genericEndTagInBody(p, token) {\n    const tn = token.tagName;\n\n    for (let i = p.openElements.stackTop; i > 0; i--) {\n        const element = p.openElements.items[i];\n\n        if (p.treeAdapter.getTagName(element) === tn) {\n            p.openElements.generateImpliedEndTagsWithExclusion(tn);\n            p.openElements.popUntilElementPopped(element);\n            break;\n        }\n\n        if (p._isSpecialElement(element)) {\n            break;\n        }\n    }\n}\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction endTagInBody(p, token) {\n    const tn = token.tagName;\n\n    switch (tn.length) {\n        case 1:\n            if (tn === $.A || tn === $.B || tn === $.I || tn === $.S || tn === $.U) {\n                callAdoptionAgency(p, token);\n            } else if (tn === $.P) {\n                pEndTagInBody(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        case 2:\n            if (tn === $.DL || tn === $.UL || tn === $.OL) {\n                addressEndTagInBody(p, token);\n            } else if (tn === $.LI) {\n                liEndTagInBody(p, token);\n            } else if (tn === $.DD || tn === $.DT) {\n                ddEndTagInBody(p, token);\n            } else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n                numberedHeaderEndTagInBody(p, token);\n            } else if (tn === $.BR) {\n                brEndTagInBody(p, token);\n            } else if (tn === $.EM || tn === $.TT) {\n                callAdoptionAgency(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        case 3:\n            if (tn === $.BIG) {\n                callAdoptionAgency(p, token);\n            } else if (tn === $.DIR || tn === $.DIV || tn === $.NAV || tn === $.PRE) {\n                addressEndTagInBody(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        case 4:\n            if (tn === $.BODY) {\n                bodyEndTagInBody(p, token);\n            } else if (tn === $.HTML) {\n                htmlEndTagInBody(p, token);\n            } else if (tn === $.FORM) {\n                formEndTagInBody(p, token);\n            } else if (tn === $.CODE || tn === $.FONT || tn === $.NOBR) {\n                callAdoptionAgency(p, token);\n            } else if (tn === $.MAIN || tn === $.MENU) {\n                addressEndTagInBody(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        case 5:\n            if (tn === $.ASIDE) {\n                addressEndTagInBody(p, token);\n            } else if (tn === $.SMALL) {\n                callAdoptionAgency(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        case 6:\n            if (\n                tn === $.CENTER ||\n                tn === $.FIGURE ||\n                tn === $.FOOTER ||\n                tn === $.HEADER ||\n                tn === $.HGROUP ||\n                tn === $.DIALOG\n            ) {\n                addressEndTagInBody(p, token);\n            } else if (tn === $.APPLET || tn === $.OBJECT) {\n                appletEndTagInBody(p, token);\n            } else if (tn === $.STRIKE || tn === $.STRONG) {\n                callAdoptionAgency(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        case 7:\n            if (\n                tn === $.ADDRESS ||\n                tn === $.ARTICLE ||\n                tn === $.DETAILS ||\n                tn === $.SECTION ||\n                tn === $.SUMMARY ||\n                tn === $.LISTING\n            ) {\n                addressEndTagInBody(p, token);\n            } else if (tn === $.MARQUEE) {\n                appletEndTagInBody(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        case 8:\n            if (tn === $.FIELDSET) {\n                addressEndTagInBody(p, token);\n            } else if (tn === $.TEMPLATE) {\n                endTagInHead(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        case 10:\n            if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION) {\n                addressEndTagInBody(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        default:\n            genericEndTagInBody(p, token);\n    }\n}\n\nfunction eofInBody(p, token) {\n    if (p.tmplInsertionModeStackTop > -1) {\n        eofInTemplate(p, token);\n    } else {\n        p.stopped = true;\n    }\n}\n\n// The \"text\" insertion mode\n//------------------------------------------------------------------\nfunction endTagInText(p, token) {\n    if (token.tagName === $.SCRIPT) {\n        p.pendingScript = p.openElements.current;\n    }\n\n    p.openElements.pop();\n    p.insertionMode = p.originalInsertionMode;\n}\n\nfunction eofInText(p, token) {\n    p._err(ERR.eofInElementThatCanContainOnlyText);\n    p.openElements.pop();\n    p.insertionMode = p.originalInsertionMode;\n    p._processToken(token);\n}\n\n// The \"in table\" insertion mode\n//------------------------------------------------------------------\nfunction characterInTable(p, token) {\n    const curTn = p.openElements.currentTagName;\n\n    if (curTn === $.TABLE || curTn === $.TBODY || curTn === $.TFOOT || curTn === $.THEAD || curTn === $.TR) {\n        p.pendingCharacterTokens = [];\n        p.hasNonWhitespacePendingCharacterToken = false;\n        p.originalInsertionMode = p.insertionMode;\n        p.insertionMode = IN_TABLE_TEXT_MODE;\n        p._processToken(token);\n    } else {\n        tokenInTable(p, token);\n    }\n}\n\nfunction captionStartTagInTable(p, token) {\n    p.openElements.clearBackToTableContext();\n    p.activeFormattingElements.insertMarker();\n    p._insertElement(token, NS.HTML);\n    p.insertionMode = IN_CAPTION_MODE;\n}\n\nfunction colgroupStartTagInTable(p, token) {\n    p.openElements.clearBackToTableContext();\n    p._insertElement(token, NS.HTML);\n    p.insertionMode = IN_COLUMN_GROUP_MODE;\n}\n\nfunction colStartTagInTable(p, token) {\n    p.openElements.clearBackToTableContext();\n    p._insertFakeElement($.COLGROUP);\n    p.insertionMode = IN_COLUMN_GROUP_MODE;\n    p._processToken(token);\n}\n\nfunction tbodyStartTagInTable(p, token) {\n    p.openElements.clearBackToTableContext();\n    p._insertElement(token, NS.HTML);\n    p.insertionMode = IN_TABLE_BODY_MODE;\n}\n\nfunction tdStartTagInTable(p, token) {\n    p.openElements.clearBackToTableContext();\n    p._insertFakeElement($.TBODY);\n    p.insertionMode = IN_TABLE_BODY_MODE;\n    p._processToken(token);\n}\n\nfunction tableStartTagInTable(p, token) {\n    if (p.openElements.hasInTableScope($.TABLE)) {\n        p.openElements.popUntilTagNamePopped($.TABLE);\n        p._resetInsertionMode();\n        p._processToken(token);\n    }\n}\n\nfunction inputStartTagInTable(p, token) {\n    const inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);\n\n    if (inputType && inputType.toLowerCase() === HIDDEN_INPUT_TYPE) {\n        p._appendElement(token, NS.HTML);\n    } else {\n        tokenInTable(p, token);\n    }\n\n    token.ackSelfClosing = true;\n}\n\nfunction formStartTagInTable(p, token) {\n    if (!p.formElement && p.openElements.tmplCount === 0) {\n        p._insertElement(token, NS.HTML);\n        p.formElement = p.openElements.current;\n        p.openElements.pop();\n    }\n}\n\nfunction startTagInTable(p, token) {\n    const tn = token.tagName;\n\n    switch (tn.length) {\n        case 2:\n            if (tn === $.TD || tn === $.TH || tn === $.TR) {\n                tdStartTagInTable(p, token);\n            } else {\n                tokenInTable(p, token);\n            }\n\n            break;\n\n        case 3:\n            if (tn === $.COL) {\n                colStartTagInTable(p, token);\n            } else {\n                tokenInTable(p, token);\n            }\n\n            break;\n\n        case 4:\n            if (tn === $.FORM) {\n                formStartTagInTable(p, token);\n            } else {\n                tokenInTable(p, token);\n            }\n\n            break;\n\n        case 5:\n            if (tn === $.TABLE) {\n                tableStartTagInTable(p, token);\n            } else if (tn === $.STYLE) {\n                startTagInHead(p, token);\n            } else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n                tbodyStartTagInTable(p, token);\n            } else if (tn === $.INPUT) {\n                inputStartTagInTable(p, token);\n            } else {\n                tokenInTable(p, token);\n            }\n\n            break;\n\n        case 6:\n            if (tn === $.SCRIPT) {\n                startTagInHead(p, token);\n            } else {\n                tokenInTable(p, token);\n            }\n\n            break;\n\n        case 7:\n            if (tn === $.CAPTION) {\n                captionStartTagInTable(p, token);\n            } else {\n                tokenInTable(p, token);\n            }\n\n            break;\n\n        case 8:\n            if (tn === $.COLGROUP) {\n                colgroupStartTagInTable(p, token);\n            } else if (tn === $.TEMPLATE) {\n                startTagInHead(p, token);\n            } else {\n                tokenInTable(p, token);\n            }\n\n            break;\n\n        default:\n            tokenInTable(p, token);\n    }\n}\n\nfunction endTagInTable(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.TABLE) {\n        if (p.openElements.hasInTableScope($.TABLE)) {\n            p.openElements.popUntilTagNamePopped($.TABLE);\n            p._resetInsertionMode();\n        }\n    } else if (tn === $.TEMPLATE) {\n        endTagInHead(p, token);\n    } else if (\n        tn !== $.BODY &&\n        tn !== $.CAPTION &&\n        tn !== $.COL &&\n        tn !== $.COLGROUP &&\n        tn !== $.HTML &&\n        tn !== $.TBODY &&\n        tn !== $.TD &&\n        tn !== $.TFOOT &&\n        tn !== $.TH &&\n        tn !== $.THEAD &&\n        tn !== $.TR\n    ) {\n        tokenInTable(p, token);\n    }\n}\n\nfunction tokenInTable(p, token) {\n    const savedFosterParentingState = p.fosterParentingEnabled;\n\n    p.fosterParentingEnabled = true;\n    p._processTokenInBodyMode(token);\n    p.fosterParentingEnabled = savedFosterParentingState;\n}\n\n// The \"in table text\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInTableText(p, token) {\n    p.pendingCharacterTokens.push(token);\n}\n\nfunction characterInTableText(p, token) {\n    p.pendingCharacterTokens.push(token);\n    p.hasNonWhitespacePendingCharacterToken = true;\n}\n\nfunction tokenInTableText(p, token) {\n    let i = 0;\n\n    if (p.hasNonWhitespacePendingCharacterToken) {\n        for (; i < p.pendingCharacterTokens.length; i++) {\n            tokenInTable(p, p.pendingCharacterTokens[i]);\n        }\n    } else {\n        for (; i < p.pendingCharacterTokens.length; i++) {\n            p._insertCharacters(p.pendingCharacterTokens[i]);\n        }\n    }\n\n    p.insertionMode = p.originalInsertionMode;\n    p._processToken(token);\n}\n\n// The \"in caption\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCaption(p, token) {\n    const tn = token.tagName;\n\n    if (\n        tn === $.CAPTION ||\n        tn === $.COL ||\n        tn === $.COLGROUP ||\n        tn === $.TBODY ||\n        tn === $.TD ||\n        tn === $.TFOOT ||\n        tn === $.TH ||\n        tn === $.THEAD ||\n        tn === $.TR\n    ) {\n        if (p.openElements.hasInTableScope($.CAPTION)) {\n            p.openElements.generateImpliedEndTags();\n            p.openElements.popUntilTagNamePopped($.CAPTION);\n            p.activeFormattingElements.clearToLastMarker();\n            p.insertionMode = IN_TABLE_MODE;\n            p._processToken(token);\n        }\n    } else {\n        startTagInBody(p, token);\n    }\n}\n\nfunction endTagInCaption(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.CAPTION || tn === $.TABLE) {\n        if (p.openElements.hasInTableScope($.CAPTION)) {\n            p.openElements.generateImpliedEndTags();\n            p.openElements.popUntilTagNamePopped($.CAPTION);\n            p.activeFormattingElements.clearToLastMarker();\n            p.insertionMode = IN_TABLE_MODE;\n\n            if (tn === $.TABLE) {\n                p._processToken(token);\n            }\n        }\n    } else if (\n        tn !== $.BODY &&\n        tn !== $.COL &&\n        tn !== $.COLGROUP &&\n        tn !== $.HTML &&\n        tn !== $.TBODY &&\n        tn !== $.TD &&\n        tn !== $.TFOOT &&\n        tn !== $.TH &&\n        tn !== $.THEAD &&\n        tn !== $.TR\n    ) {\n        endTagInBody(p, token);\n    }\n}\n\n// The \"in column group\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInColumnGroup(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (tn === $.COL) {\n        p._appendElement(token, NS.HTML);\n        token.ackSelfClosing = true;\n    } else if (tn === $.TEMPLATE) {\n        startTagInHead(p, token);\n    } else {\n        tokenInColumnGroup(p, token);\n    }\n}\n\nfunction endTagInColumnGroup(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.COLGROUP) {\n        if (p.openElements.currentTagName === $.COLGROUP) {\n            p.openElements.pop();\n            p.insertionMode = IN_TABLE_MODE;\n        }\n    } else if (tn === $.TEMPLATE) {\n        endTagInHead(p, token);\n    } else if (tn !== $.COL) {\n        tokenInColumnGroup(p, token);\n    }\n}\n\nfunction tokenInColumnGroup(p, token) {\n    if (p.openElements.currentTagName === $.COLGROUP) {\n        p.openElements.pop();\n        p.insertionMode = IN_TABLE_MODE;\n        p._processToken(token);\n    }\n}\n\n// The \"in table body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTableBody(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.TR) {\n        p.openElements.clearBackToTableBodyContext();\n        p._insertElement(token, NS.HTML);\n        p.insertionMode = IN_ROW_MODE;\n    } else if (tn === $.TH || tn === $.TD) {\n        p.openElements.clearBackToTableBodyContext();\n        p._insertFakeElement($.TR);\n        p.insertionMode = IN_ROW_MODE;\n        p._processToken(token);\n    } else if (\n        tn === $.CAPTION ||\n        tn === $.COL ||\n        tn === $.COLGROUP ||\n        tn === $.TBODY ||\n        tn === $.TFOOT ||\n        tn === $.THEAD\n    ) {\n        if (p.openElements.hasTableBodyContextInTableScope()) {\n            p.openElements.clearBackToTableBodyContext();\n            p.openElements.pop();\n            p.insertionMode = IN_TABLE_MODE;\n            p._processToken(token);\n        }\n    } else {\n        startTagInTable(p, token);\n    }\n}\n\nfunction endTagInTableBody(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n        if (p.openElements.hasInTableScope(tn)) {\n            p.openElements.clearBackToTableBodyContext();\n            p.openElements.pop();\n            p.insertionMode = IN_TABLE_MODE;\n        }\n    } else if (tn === $.TABLE) {\n        if (p.openElements.hasTableBodyContextInTableScope()) {\n            p.openElements.clearBackToTableBodyContext();\n            p.openElements.pop();\n            p.insertionMode = IN_TABLE_MODE;\n            p._processToken(token);\n        }\n    } else if (\n        (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP) ||\n        (tn !== $.HTML && tn !== $.TD && tn !== $.TH && tn !== $.TR)\n    ) {\n        endTagInTable(p, token);\n    }\n}\n\n// The \"in row\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInRow(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.TH || tn === $.TD) {\n        p.openElements.clearBackToTableRowContext();\n        p._insertElement(token, NS.HTML);\n        p.insertionMode = IN_CELL_MODE;\n        p.activeFormattingElements.insertMarker();\n    } else if (\n        tn === $.CAPTION ||\n        tn === $.COL ||\n        tn === $.COLGROUP ||\n        tn === $.TBODY ||\n        tn === $.TFOOT ||\n        tn === $.THEAD ||\n        tn === $.TR\n    ) {\n        if (p.openElements.hasInTableScope($.TR)) {\n            p.openElements.clearBackToTableRowContext();\n            p.openElements.pop();\n            p.insertionMode = IN_TABLE_BODY_MODE;\n            p._processToken(token);\n        }\n    } else {\n        startTagInTable(p, token);\n    }\n}\n\nfunction endTagInRow(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.TR) {\n        if (p.openElements.hasInTableScope($.TR)) {\n            p.openElements.clearBackToTableRowContext();\n            p.openElements.pop();\n            p.insertionMode = IN_TABLE_BODY_MODE;\n        }\n    } else if (tn === $.TABLE) {\n        if (p.openElements.hasInTableScope($.TR)) {\n            p.openElements.clearBackToTableRowContext();\n            p.openElements.pop();\n            p.insertionMode = IN_TABLE_BODY_MODE;\n            p._processToken(token);\n        }\n    } else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n        if (p.openElements.hasInTableScope(tn) || p.openElements.hasInTableScope($.TR)) {\n            p.openElements.clearBackToTableRowContext();\n            p.openElements.pop();\n            p.insertionMode = IN_TABLE_BODY_MODE;\n            p._processToken(token);\n        }\n    } else if (\n        (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP) ||\n        (tn !== $.HTML && tn !== $.TD && tn !== $.TH)\n    ) {\n        endTagInTable(p, token);\n    }\n}\n\n// The \"in cell\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCell(p, token) {\n    const tn = token.tagName;\n\n    if (\n        tn === $.CAPTION ||\n        tn === $.COL ||\n        tn === $.COLGROUP ||\n        tn === $.TBODY ||\n        tn === $.TD ||\n        tn === $.TFOOT ||\n        tn === $.TH ||\n        tn === $.THEAD ||\n        tn === $.TR\n    ) {\n        if (p.openElements.hasInTableScope($.TD) || p.openElements.hasInTableScope($.TH)) {\n            p._closeTableCell();\n            p._processToken(token);\n        }\n    } else {\n        startTagInBody(p, token);\n    }\n}\n\nfunction endTagInCell(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.TD || tn === $.TH) {\n        if (p.openElements.hasInTableScope(tn)) {\n            p.openElements.generateImpliedEndTags();\n            p.openElements.popUntilTagNamePopped(tn);\n            p.activeFormattingElements.clearToLastMarker();\n            p.insertionMode = IN_ROW_MODE;\n        }\n    } else if (tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR) {\n        if (p.openElements.hasInTableScope(tn)) {\n            p._closeTableCell();\n            p._processToken(token);\n        }\n    } else if (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP && tn !== $.HTML) {\n        endTagInBody(p, token);\n    }\n}\n\n// The \"in select\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelect(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (tn === $.OPTION) {\n        if (p.openElements.currentTagName === $.OPTION) {\n            p.openElements.pop();\n        }\n\n        p._insertElement(token, NS.HTML);\n    } else if (tn === $.OPTGROUP) {\n        if (p.openElements.currentTagName === $.OPTION) {\n            p.openElements.pop();\n        }\n\n        if (p.openElements.currentTagName === $.OPTGROUP) {\n            p.openElements.pop();\n        }\n\n        p._insertElement(token, NS.HTML);\n    } else if (tn === $.INPUT || tn === $.KEYGEN || tn === $.TEXTAREA || tn === $.SELECT) {\n        if (p.openElements.hasInSelectScope($.SELECT)) {\n            p.openElements.popUntilTagNamePopped($.SELECT);\n            p._resetInsertionMode();\n\n            if (tn !== $.SELECT) {\n                p._processToken(token);\n            }\n        }\n    } else if (tn === $.SCRIPT || tn === $.TEMPLATE) {\n        startTagInHead(p, token);\n    }\n}\n\nfunction endTagInSelect(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.OPTGROUP) {\n        const prevOpenElement = p.openElements.items[p.openElements.stackTop - 1];\n        const prevOpenElementTn = prevOpenElement && p.treeAdapter.getTagName(prevOpenElement);\n\n        if (p.openElements.currentTagName === $.OPTION && prevOpenElementTn === $.OPTGROUP) {\n            p.openElements.pop();\n        }\n\n        if (p.openElements.currentTagName === $.OPTGROUP) {\n            p.openElements.pop();\n        }\n    } else if (tn === $.OPTION) {\n        if (p.openElements.currentTagName === $.OPTION) {\n            p.openElements.pop();\n        }\n    } else if (tn === $.SELECT && p.openElements.hasInSelectScope($.SELECT)) {\n        p.openElements.popUntilTagNamePopped($.SELECT);\n        p._resetInsertionMode();\n    } else if (tn === $.TEMPLATE) {\n        endTagInHead(p, token);\n    }\n}\n\n//12.2.5.4.17 The \"in select in table\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelectInTable(p, token) {\n    const tn = token.tagName;\n\n    if (\n        tn === $.CAPTION ||\n        tn === $.TABLE ||\n        tn === $.TBODY ||\n        tn === $.TFOOT ||\n        tn === $.THEAD ||\n        tn === $.TR ||\n        tn === $.TD ||\n        tn === $.TH\n    ) {\n        p.openElements.popUntilTagNamePopped($.SELECT);\n        p._resetInsertionMode();\n        p._processToken(token);\n    } else {\n        startTagInSelect(p, token);\n    }\n}\n\nfunction endTagInSelectInTable(p, token) {\n    const tn = token.tagName;\n\n    if (\n        tn === $.CAPTION ||\n        tn === $.TABLE ||\n        tn === $.TBODY ||\n        tn === $.TFOOT ||\n        tn === $.THEAD ||\n        tn === $.TR ||\n        tn === $.TD ||\n        tn === $.TH\n    ) {\n        if (p.openElements.hasInTableScope(tn)) {\n            p.openElements.popUntilTagNamePopped($.SELECT);\n            p._resetInsertionMode();\n            p._processToken(token);\n        }\n    } else {\n        endTagInSelect(p, token);\n    }\n}\n\n// The \"in template\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTemplate(p, token) {\n    const tn = token.tagName;\n\n    if (\n        tn === $.BASE ||\n        tn === $.BASEFONT ||\n        tn === $.BGSOUND ||\n        tn === $.LINK ||\n        tn === $.META ||\n        tn === $.NOFRAMES ||\n        tn === $.SCRIPT ||\n        tn === $.STYLE ||\n        tn === $.TEMPLATE ||\n        tn === $.TITLE\n    ) {\n        startTagInHead(p, token);\n    } else {\n        const newInsertionMode = TEMPLATE_INSERTION_MODE_SWITCH_MAP[tn] || IN_BODY_MODE;\n\n        p._popTmplInsertionMode();\n        p._pushTmplInsertionMode(newInsertionMode);\n        p.insertionMode = newInsertionMode;\n        p._processToken(token);\n    }\n}\n\nfunction endTagInTemplate(p, token) {\n    if (token.tagName === $.TEMPLATE) {\n        endTagInHead(p, token);\n    }\n}\n\nfunction eofInTemplate(p, token) {\n    if (p.openElements.tmplCount > 0) {\n        p.openElements.popUntilTagNamePopped($.TEMPLATE);\n        p.activeFormattingElements.clearToLastMarker();\n        p._popTmplInsertionMode();\n        p._resetInsertionMode();\n        p._processToken(token);\n    } else {\n        p.stopped = true;\n    }\n}\n\n// The \"after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterBody(p, token) {\n    if (token.tagName === $.HTML) {\n        startTagInBody(p, token);\n    } else {\n        tokenAfterBody(p, token);\n    }\n}\n\nfunction endTagAfterBody(p, token) {\n    if (token.tagName === $.HTML) {\n        if (!p.fragmentContext) {\n            p.insertionMode = AFTER_AFTER_BODY_MODE;\n        }\n    } else {\n        tokenAfterBody(p, token);\n    }\n}\n\nfunction tokenAfterBody(p, token) {\n    p.insertionMode = IN_BODY_MODE;\n    p._processToken(token);\n}\n\n// The \"in frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInFrameset(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (tn === $.FRAMESET) {\n        p._insertElement(token, NS.HTML);\n    } else if (tn === $.FRAME) {\n        p._appendElement(token, NS.HTML);\n        token.ackSelfClosing = true;\n    } else if (tn === $.NOFRAMES) {\n        startTagInHead(p, token);\n    }\n}\n\nfunction endTagInFrameset(p, token) {\n    if (token.tagName === $.FRAMESET && !p.openElements.isRootHtmlElementCurrent()) {\n        p.openElements.pop();\n\n        if (!p.fragmentContext && p.openElements.currentTagName !== $.FRAMESET) {\n            p.insertionMode = AFTER_FRAMESET_MODE;\n        }\n    }\n}\n\n// The \"after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterFrameset(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (tn === $.NOFRAMES) {\n        startTagInHead(p, token);\n    }\n}\n\nfunction endTagAfterFrameset(p, token) {\n    if (token.tagName === $.HTML) {\n        p.insertionMode = AFTER_AFTER_FRAMESET_MODE;\n    }\n}\n\n// The \"after after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterBody(p, token) {\n    if (token.tagName === $.HTML) {\n        startTagInBody(p, token);\n    } else {\n        tokenAfterAfterBody(p, token);\n    }\n}\n\nfunction tokenAfterAfterBody(p, token) {\n    p.insertionMode = IN_BODY_MODE;\n    p._processToken(token);\n}\n\n// The \"after after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterFrameset(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (tn === $.NOFRAMES) {\n        startTagInHead(p, token);\n    }\n}\n\n// The rules for parsing tokens in foreign content\n//------------------------------------------------------------------\nfunction nullCharacterInForeignContent(p, token) {\n    token.chars = unicode.REPLACEMENT_CHARACTER;\n    p._insertCharacters(token);\n}\n\nfunction characterInForeignContent(p, token) {\n    p._insertCharacters(token);\n    p.framesetOk = false;\n}\n\nfunction startTagInForeignContent(p, token) {\n    if (foreignContent.causesExit(token) && !p.fragmentContext) {\n        while (\n            p.treeAdapter.getNamespaceURI(p.openElements.current) !== NS.HTML &&\n            !p._isIntegrationPoint(p.openElements.current)\n        ) {\n            p.openElements.pop();\n        }\n\n        p._processToken(token);\n    } else {\n        const current = p._getAdjustedCurrentElement();\n        const currentNs = p.treeAdapter.getNamespaceURI(current);\n\n        if (currentNs === NS.MATHML) {\n            foreignContent.adjustTokenMathMLAttrs(token);\n        } else if (currentNs === NS.SVG) {\n            foreignContent.adjustTokenSVGTagName(token);\n            foreignContent.adjustTokenSVGAttrs(token);\n        }\n\n        foreignContent.adjustTokenXMLAttrs(token);\n\n        if (token.selfClosing) {\n            p._appendElement(token, currentNs);\n        } else {\n            p._insertElement(token, currentNs);\n        }\n\n        token.ackSelfClosing = true;\n    }\n}\n\nfunction endTagInForeignContent(p, token) {\n    for (let i = p.openElements.stackTop; i > 0; i--) {\n        const element = p.openElements.items[i];\n\n        if (p.treeAdapter.getNamespaceURI(element) === NS.HTML) {\n            p._processToken(token);\n            break;\n        }\n\n        if (p.treeAdapter.getTagName(element).toLowerCase() === token.tagName) {\n            p.openElements.popUntilElementPopped(element);\n            break;\n        }\n    }\n}\n","'use strict';\n\nconst HTML = require('../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\n\n//Element utils\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction isImpliedEndTagRequired(tn) {\n    switch (tn.length) {\n        case 1:\n            return tn === $.P;\n\n        case 2:\n            return tn === $.RB || tn === $.RP || tn === $.RT || tn === $.DD || tn === $.DT || tn === $.LI;\n\n        case 3:\n            return tn === $.RTC;\n\n        case 6:\n            return tn === $.OPTION;\n\n        case 8:\n            return tn === $.OPTGROUP;\n    }\n\n    return false;\n}\n\nfunction isImpliedEndTagRequiredThoroughly(tn) {\n    switch (tn.length) {\n        case 1:\n            return tn === $.P;\n\n        case 2:\n            return (\n                tn === $.RB ||\n                tn === $.RP ||\n                tn === $.RT ||\n                tn === $.DD ||\n                tn === $.DT ||\n                tn === $.LI ||\n                tn === $.TD ||\n                tn === $.TH ||\n                tn === $.TR\n            );\n\n        case 3:\n            return tn === $.RTC;\n\n        case 5:\n            return tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD;\n\n        case 6:\n            return tn === $.OPTION;\n\n        case 7:\n            return tn === $.CAPTION;\n\n        case 8:\n            return tn === $.OPTGROUP || tn === $.COLGROUP;\n    }\n\n    return false;\n}\n\nfunction isScopingElement(tn, ns) {\n    switch (tn.length) {\n        case 2:\n            if (tn === $.TD || tn === $.TH) {\n                return ns === NS.HTML;\n            } else if (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS) {\n                return ns === NS.MATHML;\n            }\n\n            break;\n\n        case 4:\n            if (tn === $.HTML) {\n                return ns === NS.HTML;\n            } else if (tn === $.DESC) {\n                return ns === NS.SVG;\n            }\n\n            break;\n\n        case 5:\n            if (tn === $.TABLE) {\n                return ns === NS.HTML;\n            } else if (tn === $.MTEXT) {\n                return ns === NS.MATHML;\n            } else if (tn === $.TITLE) {\n                return ns === NS.SVG;\n            }\n\n            break;\n\n        case 6:\n            return (tn === $.APPLET || tn === $.OBJECT) && ns === NS.HTML;\n\n        case 7:\n            return (tn === $.CAPTION || tn === $.MARQUEE) && ns === NS.HTML;\n\n        case 8:\n            return tn === $.TEMPLATE && ns === NS.HTML;\n\n        case 13:\n            return tn === $.FOREIGN_OBJECT && ns === NS.SVG;\n\n        case 14:\n            return tn === $.ANNOTATION_XML && ns === NS.MATHML;\n    }\n\n    return false;\n}\n\n//Stack of open elements\nclass OpenElementStack {\n    constructor(document, treeAdapter) {\n        this.stackTop = -1;\n        this.items = [];\n        this.current = document;\n        this.currentTagName = null;\n        this.currentTmplContent = null;\n        this.tmplCount = 0;\n        this.treeAdapter = treeAdapter;\n    }\n\n    //Index of element\n    _indexOf(element) {\n        let idx = -1;\n\n        for (let i = this.stackTop; i >= 0; i--) {\n            if (this.items[i] === element) {\n                idx = i;\n                break;\n            }\n        }\n        return idx;\n    }\n\n    //Update current element\n    _isInTemplate() {\n        return this.currentTagName === $.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === NS.HTML;\n    }\n\n    _updateCurrentElement() {\n        this.current = this.items[this.stackTop];\n        this.currentTagName = this.current && this.treeAdapter.getTagName(this.current);\n\n        this.currentTmplContent = this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : null;\n    }\n\n    //Mutations\n    push(element) {\n        this.items[++this.stackTop] = element;\n        this._updateCurrentElement();\n\n        if (this._isInTemplate()) {\n            this.tmplCount++;\n        }\n    }\n\n    pop() {\n        this.stackTop--;\n\n        if (this.tmplCount > 0 && this._isInTemplate()) {\n            this.tmplCount--;\n        }\n\n        this._updateCurrentElement();\n    }\n\n    replace(oldElement, newElement) {\n        const idx = this._indexOf(oldElement);\n\n        this.items[idx] = newElement;\n\n        if (idx === this.stackTop) {\n            this._updateCurrentElement();\n        }\n    }\n\n    insertAfter(referenceElement, newElement) {\n        const insertionIdx = this._indexOf(referenceElement) + 1;\n\n        this.items.splice(insertionIdx, 0, newElement);\n\n        if (insertionIdx === ++this.stackTop) {\n            this._updateCurrentElement();\n        }\n    }\n\n    popUntilTagNamePopped(tagName) {\n        while (this.stackTop > -1) {\n            const tn = this.currentTagName;\n            const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n            this.pop();\n\n            if (tn === tagName && ns === NS.HTML) {\n                break;\n            }\n        }\n    }\n\n    popUntilElementPopped(element) {\n        while (this.stackTop > -1) {\n            const poppedElement = this.current;\n\n            this.pop();\n\n            if (poppedElement === element) {\n                break;\n            }\n        }\n    }\n\n    popUntilNumberedHeaderPopped() {\n        while (this.stackTop > -1) {\n            const tn = this.currentTagName;\n            const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n            this.pop();\n\n            if (\n                tn === $.H1 ||\n                tn === $.H2 ||\n                tn === $.H3 ||\n                tn === $.H4 ||\n                tn === $.H5 ||\n                (tn === $.H6 && ns === NS.HTML)\n            ) {\n                break;\n            }\n        }\n    }\n\n    popUntilTableCellPopped() {\n        while (this.stackTop > -1) {\n            const tn = this.currentTagName;\n            const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n            this.pop();\n\n            if (tn === $.TD || (tn === $.TH && ns === NS.HTML)) {\n                break;\n            }\n        }\n    }\n\n    popAllUpToHtmlElement() {\n        //NOTE: here we assume that root <html> element is always first in the open element stack, so\n        //we perform this fast stack clean up.\n        this.stackTop = 0;\n        this._updateCurrentElement();\n    }\n\n    clearBackToTableContext() {\n        while (\n            (this.currentTagName !== $.TABLE && this.currentTagName !== $.TEMPLATE && this.currentTagName !== $.HTML) ||\n            this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n        ) {\n            this.pop();\n        }\n    }\n\n    clearBackToTableBodyContext() {\n        while (\n            (this.currentTagName !== $.TBODY &&\n                this.currentTagName !== $.TFOOT &&\n                this.currentTagName !== $.THEAD &&\n                this.currentTagName !== $.TEMPLATE &&\n                this.currentTagName !== $.HTML) ||\n            this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n        ) {\n            this.pop();\n        }\n    }\n\n    clearBackToTableRowContext() {\n        while (\n            (this.currentTagName !== $.TR && this.currentTagName !== $.TEMPLATE && this.currentTagName !== $.HTML) ||\n            this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n        ) {\n            this.pop();\n        }\n    }\n\n    remove(element) {\n        for (let i = this.stackTop; i >= 0; i--) {\n            if (this.items[i] === element) {\n                this.items.splice(i, 1);\n                this.stackTop--;\n                this._updateCurrentElement();\n                break;\n            }\n        }\n    }\n\n    //Search\n    tryPeekProperlyNestedBodyElement() {\n        //Properly nested <body> element (should be second element in stack).\n        const element = this.items[1];\n\n        return element && this.treeAdapter.getTagName(element) === $.BODY ? element : null;\n    }\n\n    contains(element) {\n        return this._indexOf(element) > -1;\n    }\n\n    getCommonAncestor(element) {\n        let elementIdx = this._indexOf(element);\n\n        return --elementIdx >= 0 ? this.items[elementIdx] : null;\n    }\n\n    isRootHtmlElementCurrent() {\n        return this.stackTop === 0 && this.currentTagName === $.HTML;\n    }\n\n    //Element in scope\n    hasInScope(tagName) {\n        for (let i = this.stackTop; i >= 0; i--) {\n            const tn = this.treeAdapter.getTagName(this.items[i]);\n            const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n            if (tn === tagName && ns === NS.HTML) {\n                return true;\n            }\n\n            if (isScopingElement(tn, ns)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    hasNumberedHeaderInScope() {\n        for (let i = this.stackTop; i >= 0; i--) {\n            const tn = this.treeAdapter.getTagName(this.items[i]);\n            const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n            if (\n                (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) &&\n                ns === NS.HTML\n            ) {\n                return true;\n            }\n\n            if (isScopingElement(tn, ns)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    hasInListItemScope(tagName) {\n        for (let i = this.stackTop; i >= 0; i--) {\n            const tn = this.treeAdapter.getTagName(this.items[i]);\n            const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n            if (tn === tagName && ns === NS.HTML) {\n                return true;\n            }\n\n            if (((tn === $.UL || tn === $.OL) && ns === NS.HTML) || isScopingElement(tn, ns)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    hasInButtonScope(tagName) {\n        for (let i = this.stackTop; i >= 0; i--) {\n            const tn = this.treeAdapter.getTagName(this.items[i]);\n            const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n            if (tn === tagName && ns === NS.HTML) {\n                return true;\n            }\n\n            if ((tn === $.BUTTON && ns === NS.HTML) || isScopingElement(tn, ns)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    hasInTableScope(tagName) {\n        for (let i = this.stackTop; i >= 0; i--) {\n            const tn = this.treeAdapter.getTagName(this.items[i]);\n            const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n            if (ns !== NS.HTML) {\n                continue;\n            }\n\n            if (tn === tagName) {\n                return true;\n            }\n\n            if (tn === $.TABLE || tn === $.TEMPLATE || tn === $.HTML) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    hasTableBodyContextInTableScope() {\n        for (let i = this.stackTop; i >= 0; i--) {\n            const tn = this.treeAdapter.getTagName(this.items[i]);\n            const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n            if (ns !== NS.HTML) {\n                continue;\n            }\n\n            if (tn === $.TBODY || tn === $.THEAD || tn === $.TFOOT) {\n                return true;\n            }\n\n            if (tn === $.TABLE || tn === $.HTML) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    hasInSelectScope(tagName) {\n        for (let i = this.stackTop; i >= 0; i--) {\n            const tn = this.treeAdapter.getTagName(this.items[i]);\n            const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n            if (ns !== NS.HTML) {\n                continue;\n            }\n\n            if (tn === tagName) {\n                return true;\n            }\n\n            if (tn !== $.OPTION && tn !== $.OPTGROUP) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    //Implied end tags\n    generateImpliedEndTags() {\n        while (isImpliedEndTagRequired(this.currentTagName)) {\n            this.pop();\n        }\n    }\n\n    generateImpliedEndTagsThoroughly() {\n        while (isImpliedEndTagRequiredThoroughly(this.currentTagName)) {\n            this.pop();\n        }\n    }\n\n    generateImpliedEndTagsWithExclusion(exclusionTagName) {\n        while (isImpliedEndTagRequired(this.currentTagName) && this.currentTagName !== exclusionTagName) {\n            this.pop();\n        }\n    }\n}\n\nmodule.exports = OpenElementStack;\n","'use strict';\n\nconst Preprocessor = require('./preprocessor');\nconst unicode = require('../common/unicode');\nconst neTree = require('./named-entity-data');\nconst ERR = require('../common/error-codes');\n\n//Aliases\nconst $ = unicode.CODE_POINTS;\nconst $$ = unicode.CODE_POINT_SEQUENCES;\n\n//C1 Unicode control character reference replacements\nconst C1_CONTROLS_REFERENCE_REPLACEMENTS = {\n    0x80: 0x20ac,\n    0x82: 0x201a,\n    0x83: 0x0192,\n    0x84: 0x201e,\n    0x85: 0x2026,\n    0x86: 0x2020,\n    0x87: 0x2021,\n    0x88: 0x02c6,\n    0x89: 0x2030,\n    0x8a: 0x0160,\n    0x8b: 0x2039,\n    0x8c: 0x0152,\n    0x8e: 0x017d,\n    0x91: 0x2018,\n    0x92: 0x2019,\n    0x93: 0x201c,\n    0x94: 0x201d,\n    0x95: 0x2022,\n    0x96: 0x2013,\n    0x97: 0x2014,\n    0x98: 0x02dc,\n    0x99: 0x2122,\n    0x9a: 0x0161,\n    0x9b: 0x203a,\n    0x9c: 0x0153,\n    0x9e: 0x017e,\n    0x9f: 0x0178\n};\n\n// Named entity tree flags\nconst HAS_DATA_FLAG = 1 << 0;\nconst DATA_DUPLET_FLAG = 1 << 1;\nconst HAS_BRANCHES_FLAG = 1 << 2;\nconst MAX_BRANCH_MARKER_VALUE = HAS_DATA_FLAG | DATA_DUPLET_FLAG | HAS_BRANCHES_FLAG;\n\n//States\nconst DATA_STATE = 'DATA_STATE';\nconst RCDATA_STATE = 'RCDATA_STATE';\nconst RAWTEXT_STATE = 'RAWTEXT_STATE';\nconst SCRIPT_DATA_STATE = 'SCRIPT_DATA_STATE';\nconst PLAINTEXT_STATE = 'PLAINTEXT_STATE';\nconst TAG_OPEN_STATE = 'TAG_OPEN_STATE';\nconst END_TAG_OPEN_STATE = 'END_TAG_OPEN_STATE';\nconst TAG_NAME_STATE = 'TAG_NAME_STATE';\nconst RCDATA_LESS_THAN_SIGN_STATE = 'RCDATA_LESS_THAN_SIGN_STATE';\nconst RCDATA_END_TAG_OPEN_STATE = 'RCDATA_END_TAG_OPEN_STATE';\nconst RCDATA_END_TAG_NAME_STATE = 'RCDATA_END_TAG_NAME_STATE';\nconst RAWTEXT_LESS_THAN_SIGN_STATE = 'RAWTEXT_LESS_THAN_SIGN_STATE';\nconst RAWTEXT_END_TAG_OPEN_STATE = 'RAWTEXT_END_TAG_OPEN_STATE';\nconst RAWTEXT_END_TAG_NAME_STATE = 'RAWTEXT_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_END_TAG_OPEN_STATE = 'SCRIPT_DATA_END_TAG_OPEN_STATE';\nconst SCRIPT_DATA_END_TAG_NAME_STATE = 'SCRIPT_DATA_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_ESCAPE_START_STATE = 'SCRIPT_DATA_ESCAPE_START_STATE';\nconst SCRIPT_DATA_ESCAPE_START_DASH_STATE = 'SCRIPT_DATA_ESCAPE_START_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_STATE = 'SCRIPT_DATA_ESCAPED_STATE';\nconst SCRIPT_DATA_ESCAPED_DASH_STATE = 'SCRIPT_DATA_ESCAPED_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_DASH_DASH_STATE = 'SCRIPT_DATA_ESCAPED_DASH_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE = 'SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE';\nconst SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE = 'SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE';\nconst BEFORE_ATTRIBUTE_NAME_STATE = 'BEFORE_ATTRIBUTE_NAME_STATE';\nconst ATTRIBUTE_NAME_STATE = 'ATTRIBUTE_NAME_STATE';\nconst AFTER_ATTRIBUTE_NAME_STATE = 'AFTER_ATTRIBUTE_NAME_STATE';\nconst BEFORE_ATTRIBUTE_VALUE_STATE = 'BEFORE_ATTRIBUTE_VALUE_STATE';\nconst ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE = 'ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE';\nconst ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE = 'ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE';\nconst ATTRIBUTE_VALUE_UNQUOTED_STATE = 'ATTRIBUTE_VALUE_UNQUOTED_STATE';\nconst AFTER_ATTRIBUTE_VALUE_QUOTED_STATE = 'AFTER_ATTRIBUTE_VALUE_QUOTED_STATE';\nconst SELF_CLOSING_START_TAG_STATE = 'SELF_CLOSING_START_TAG_STATE';\nconst BOGUS_COMMENT_STATE = 'BOGUS_COMMENT_STATE';\nconst MARKUP_DECLARATION_OPEN_STATE = 'MARKUP_DECLARATION_OPEN_STATE';\nconst COMMENT_START_STATE = 'COMMENT_START_STATE';\nconst COMMENT_START_DASH_STATE = 'COMMENT_START_DASH_STATE';\nconst COMMENT_STATE = 'COMMENT_STATE';\nconst COMMENT_LESS_THAN_SIGN_STATE = 'COMMENT_LESS_THAN_SIGN_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE';\nconst COMMENT_END_DASH_STATE = 'COMMENT_END_DASH_STATE';\nconst COMMENT_END_STATE = 'COMMENT_END_STATE';\nconst COMMENT_END_BANG_STATE = 'COMMENT_END_BANG_STATE';\nconst DOCTYPE_STATE = 'DOCTYPE_STATE';\nconst BEFORE_DOCTYPE_NAME_STATE = 'BEFORE_DOCTYPE_NAME_STATE';\nconst DOCTYPE_NAME_STATE = 'DOCTYPE_NAME_STATE';\nconst AFTER_DOCTYPE_NAME_STATE = 'AFTER_DOCTYPE_NAME_STATE';\nconst AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE = 'AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE';\nconst BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE = 'BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE';\nconst DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE = 'DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE';\nconst DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE = 'DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE';\nconst AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE = 'AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE';\nconst BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE = 'BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE';\nconst AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE = 'AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE';\nconst BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE = 'BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE';\nconst DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE = 'DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE';\nconst DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE = 'DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE';\nconst AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE = 'AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE';\nconst BOGUS_DOCTYPE_STATE = 'BOGUS_DOCTYPE_STATE';\nconst CDATA_SECTION_STATE = 'CDATA_SECTION_STATE';\nconst CDATA_SECTION_BRACKET_STATE = 'CDATA_SECTION_BRACKET_STATE';\nconst CDATA_SECTION_END_STATE = 'CDATA_SECTION_END_STATE';\nconst CHARACTER_REFERENCE_STATE = 'CHARACTER_REFERENCE_STATE';\nconst NAMED_CHARACTER_REFERENCE_STATE = 'NAMED_CHARACTER_REFERENCE_STATE';\nconst AMBIGUOUS_AMPERSAND_STATE = 'AMBIGUOS_AMPERSAND_STATE';\nconst NUMERIC_CHARACTER_REFERENCE_STATE = 'NUMERIC_CHARACTER_REFERENCE_STATE';\nconst HEXADEMICAL_CHARACTER_REFERENCE_START_STATE = 'HEXADEMICAL_CHARACTER_REFERENCE_START_STATE';\nconst DECIMAL_CHARACTER_REFERENCE_START_STATE = 'DECIMAL_CHARACTER_REFERENCE_START_STATE';\nconst HEXADEMICAL_CHARACTER_REFERENCE_STATE = 'HEXADEMICAL_CHARACTER_REFERENCE_STATE';\nconst DECIMAL_CHARACTER_REFERENCE_STATE = 'DECIMAL_CHARACTER_REFERENCE_STATE';\nconst NUMERIC_CHARACTER_REFERENCE_END_STATE = 'NUMERIC_CHARACTER_REFERENCE_END_STATE';\n\n//Utils\n\n//OPTIMIZATION: these utility functions should not be moved out of this module. V8 Crankshaft will not inline\n//this functions if they will be situated in another module due to context switch.\n//Always perform inlining check before modifying this functions ('node --trace-inlining').\nfunction isWhitespace(cp) {\n    return cp === $.SPACE || cp === $.LINE_FEED || cp === $.TABULATION || cp === $.FORM_FEED;\n}\n\nfunction isAsciiDigit(cp) {\n    return cp >= $.DIGIT_0 && cp <= $.DIGIT_9;\n}\n\nfunction isAsciiUpper(cp) {\n    return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_Z;\n}\n\nfunction isAsciiLower(cp) {\n    return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_Z;\n}\n\nfunction isAsciiLetter(cp) {\n    return isAsciiLower(cp) || isAsciiUpper(cp);\n}\n\nfunction isAsciiAlphaNumeric(cp) {\n    return isAsciiLetter(cp) || isAsciiDigit(cp);\n}\n\nfunction isAsciiUpperHexDigit(cp) {\n    return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_F;\n}\n\nfunction isAsciiLowerHexDigit(cp) {\n    return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_F;\n}\n\nfunction isAsciiHexDigit(cp) {\n    return isAsciiDigit(cp) || isAsciiUpperHexDigit(cp) || isAsciiLowerHexDigit(cp);\n}\n\nfunction toAsciiLowerCodePoint(cp) {\n    return cp + 0x0020;\n}\n\n//NOTE: String.fromCharCode() function can handle only characters from BMP subset.\n//So, we need to workaround this manually.\n//(see: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/fromCharCode#Getting_it_to_work_with_higher_values)\nfunction toChar(cp) {\n    if (cp <= 0xffff) {\n        return String.fromCharCode(cp);\n    }\n\n    cp -= 0x10000;\n    return String.fromCharCode(((cp >>> 10) & 0x3ff) | 0xd800) + String.fromCharCode(0xdc00 | (cp & 0x3ff));\n}\n\nfunction toAsciiLowerChar(cp) {\n    return String.fromCharCode(toAsciiLowerCodePoint(cp));\n}\n\nfunction findNamedEntityTreeBranch(nodeIx, cp) {\n    const branchCount = neTree[++nodeIx];\n    let lo = ++nodeIx;\n    let hi = lo + branchCount - 1;\n\n    while (lo <= hi) {\n        const mid = (lo + hi) >>> 1;\n        const midCp = neTree[mid];\n\n        if (midCp < cp) {\n            lo = mid + 1;\n        } else if (midCp > cp) {\n            hi = mid - 1;\n        } else {\n            return neTree[mid + branchCount];\n        }\n    }\n\n    return -1;\n}\n\n//Tokenizer\nclass Tokenizer {\n    constructor() {\n        this.preprocessor = new Preprocessor();\n\n        this.tokenQueue = [];\n\n        this.allowCDATA = false;\n\n        this.state = DATA_STATE;\n        this.returnState = '';\n\n        this.charRefCode = -1;\n        this.tempBuff = [];\n        this.lastStartTagName = '';\n\n        this.consumedAfterSnapshot = -1;\n        this.active = false;\n\n        this.currentCharacterToken = null;\n        this.currentToken = null;\n        this.currentAttr = null;\n    }\n\n    //Errors\n    _err() {\n        // NOTE: err reporting is noop by default. Enabled by mixin.\n    }\n\n    _errOnNextCodePoint(err) {\n        this._consume();\n        this._err(err);\n        this._unconsume();\n    }\n\n    //API\n    getNextToken() {\n        while (!this.tokenQueue.length && this.active) {\n            this.consumedAfterSnapshot = 0;\n\n            const cp = this._consume();\n\n            if (!this._ensureHibernation()) {\n                this[this.state](cp);\n            }\n        }\n\n        return this.tokenQueue.shift();\n    }\n\n    write(chunk, isLastChunk) {\n        this.active = true;\n        this.preprocessor.write(chunk, isLastChunk);\n    }\n\n    insertHtmlAtCurrentPos(chunk) {\n        this.active = true;\n        this.preprocessor.insertHtmlAtCurrentPos(chunk);\n    }\n\n    //Hibernation\n    _ensureHibernation() {\n        if (this.preprocessor.endOfChunkHit) {\n            for (; this.consumedAfterSnapshot > 0; this.consumedAfterSnapshot--) {\n                this.preprocessor.retreat();\n            }\n\n            this.active = false;\n            this.tokenQueue.push({ type: Tokenizer.HIBERNATION_TOKEN });\n\n            return true;\n        }\n\n        return false;\n    }\n\n    //Consumption\n    _consume() {\n        this.consumedAfterSnapshot++;\n        return this.preprocessor.advance();\n    }\n\n    _unconsume() {\n        this.consumedAfterSnapshot--;\n        this.preprocessor.retreat();\n    }\n\n    _reconsumeInState(state) {\n        this.state = state;\n        this._unconsume();\n    }\n\n    _consumeSequenceIfMatch(pattern, startCp, caseSensitive) {\n        let consumedCount = 0;\n        let isMatch = true;\n        const patternLength = pattern.length;\n        let patternPos = 0;\n        let cp = startCp;\n        let patternCp = void 0;\n\n        for (; patternPos < patternLength; patternPos++) {\n            if (patternPos > 0) {\n                cp = this._consume();\n                consumedCount++;\n            }\n\n            if (cp === $.EOF) {\n                isMatch = false;\n                break;\n            }\n\n            patternCp = pattern[patternPos];\n\n            if (cp !== patternCp && (caseSensitive || cp !== toAsciiLowerCodePoint(patternCp))) {\n                isMatch = false;\n                break;\n            }\n        }\n\n        if (!isMatch) {\n            while (consumedCount--) {\n                this._unconsume();\n            }\n        }\n\n        return isMatch;\n    }\n\n    //Temp buffer\n    _isTempBufferEqualToScriptString() {\n        if (this.tempBuff.length !== $$.SCRIPT_STRING.length) {\n            return false;\n        }\n\n        for (let i = 0; i < this.tempBuff.length; i++) {\n            if (this.tempBuff[i] !== $$.SCRIPT_STRING[i]) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    //Token creation\n    _createStartTagToken() {\n        this.currentToken = {\n            type: Tokenizer.START_TAG_TOKEN,\n            tagName: '',\n            selfClosing: false,\n            ackSelfClosing: false,\n            attrs: []\n        };\n    }\n\n    _createEndTagToken() {\n        this.currentToken = {\n            type: Tokenizer.END_TAG_TOKEN,\n            tagName: '',\n            selfClosing: false,\n            attrs: []\n        };\n    }\n\n    _createCommentToken() {\n        this.currentToken = {\n            type: Tokenizer.COMMENT_TOKEN,\n            data: ''\n        };\n    }\n\n    _createDoctypeToken(initialName) {\n        this.currentToken = {\n            type: Tokenizer.DOCTYPE_TOKEN,\n            name: initialName,\n            forceQuirks: false,\n            publicId: null,\n            systemId: null\n        };\n    }\n\n    _createCharacterToken(type, ch) {\n        this.currentCharacterToken = {\n            type: type,\n            chars: ch\n        };\n    }\n\n    _createEOFToken() {\n        this.currentToken = { type: Tokenizer.EOF_TOKEN };\n    }\n\n    //Tag attributes\n    _createAttr(attrNameFirstCh) {\n        this.currentAttr = {\n            name: attrNameFirstCh,\n            value: ''\n        };\n    }\n\n    _leaveAttrName(toState) {\n        if (Tokenizer.getTokenAttr(this.currentToken, this.currentAttr.name) === null) {\n            this.currentToken.attrs.push(this.currentAttr);\n        } else {\n            this._err(ERR.duplicateAttribute);\n        }\n\n        this.state = toState;\n    }\n\n    _leaveAttrValue(toState) {\n        this.state = toState;\n    }\n\n    //Token emission\n    _emitCurrentToken() {\n        this._emitCurrentCharacterToken();\n\n        const ct = this.currentToken;\n\n        this.currentToken = null;\n\n        //NOTE: store emited start tag's tagName to determine is the following end tag token is appropriate.\n        if (ct.type === Tokenizer.START_TAG_TOKEN) {\n            this.lastStartTagName = ct.tagName;\n        } else if (ct.type === Tokenizer.END_TAG_TOKEN) {\n            if (ct.attrs.length > 0) {\n                this._err(ERR.endTagWithAttributes);\n            }\n\n            if (ct.selfClosing) {\n                this._err(ERR.endTagWithTrailingSolidus);\n            }\n        }\n\n        this.tokenQueue.push(ct);\n    }\n\n    _emitCurrentCharacterToken() {\n        if (this.currentCharacterToken) {\n            this.tokenQueue.push(this.currentCharacterToken);\n            this.currentCharacterToken = null;\n        }\n    }\n\n    _emitEOFToken() {\n        this._createEOFToken();\n        this._emitCurrentToken();\n    }\n\n    //Characters emission\n\n    //OPTIMIZATION: specification uses only one type of character tokens (one token per character).\n    //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters.\n    //If we have a sequence of characters that belong to the same group, parser can process it\n    //as a single solid character token.\n    //So, there are 3 types of character tokens in parse5:\n    //1)NULL_CHARACTER_TOKEN - \\u0000-character sequences (e.g. '\\u0000\\u0000\\u0000')\n    //2)WHITESPACE_CHARACTER_TOKEN - any whitespace/new-line character sequences (e.g. '\\n  \\r\\t   \\f')\n    //3)CHARACTER_TOKEN - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^')\n    _appendCharToCurrentCharacterToken(type, ch) {\n        if (this.currentCharacterToken && this.currentCharacterToken.type !== type) {\n            this._emitCurrentCharacterToken();\n        }\n\n        if (this.currentCharacterToken) {\n            this.currentCharacterToken.chars += ch;\n        } else {\n            this._createCharacterToken(type, ch);\n        }\n    }\n\n    _emitCodePoint(cp) {\n        let type = Tokenizer.CHARACTER_TOKEN;\n\n        if (isWhitespace(cp)) {\n            type = Tokenizer.WHITESPACE_CHARACTER_TOKEN;\n        } else if (cp === $.NULL) {\n            type = Tokenizer.NULL_CHARACTER_TOKEN;\n        }\n\n        this._appendCharToCurrentCharacterToken(type, toChar(cp));\n    }\n\n    _emitSeveralCodePoints(codePoints) {\n        for (let i = 0; i < codePoints.length; i++) {\n            this._emitCodePoint(codePoints[i]);\n        }\n    }\n\n    //NOTE: used then we emit character explicitly. This is always a non-whitespace and a non-null character.\n    //So we can avoid additional checks here.\n    _emitChars(ch) {\n        this._appendCharToCurrentCharacterToken(Tokenizer.CHARACTER_TOKEN, ch);\n    }\n\n    // Character reference helpers\n    _matchNamedCharacterReference(startCp) {\n        let result = null;\n        let excess = 1;\n        let i = findNamedEntityTreeBranch(0, startCp);\n\n        this.tempBuff.push(startCp);\n\n        while (i > -1) {\n            const current = neTree[i];\n            const inNode = current < MAX_BRANCH_MARKER_VALUE;\n            const nodeWithData = inNode && current & HAS_DATA_FLAG;\n\n            if (nodeWithData) {\n                //NOTE: we use greedy search, so we continue lookup at this point\n                result = current & DATA_DUPLET_FLAG ? [neTree[++i], neTree[++i]] : [neTree[++i]];\n                excess = 0;\n            }\n\n            const cp = this._consume();\n\n            this.tempBuff.push(cp);\n            excess++;\n\n            if (cp === $.EOF) {\n                break;\n            }\n\n            if (inNode) {\n                i = current & HAS_BRANCHES_FLAG ? findNamedEntityTreeBranch(i, cp) : -1;\n            } else {\n                i = cp === current ? ++i : -1;\n            }\n        }\n\n        while (excess--) {\n            this.tempBuff.pop();\n            this._unconsume();\n        }\n\n        return result;\n    }\n\n    _isCharacterReferenceInAttribute() {\n        return (\n            this.returnState === ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE ||\n            this.returnState === ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE ||\n            this.returnState === ATTRIBUTE_VALUE_UNQUOTED_STATE\n        );\n    }\n\n    _isCharacterReferenceAttributeQuirk(withSemicolon) {\n        if (!withSemicolon && this._isCharacterReferenceInAttribute()) {\n            const nextCp = this._consume();\n\n            this._unconsume();\n\n            return nextCp === $.EQUALS_SIGN || isAsciiAlphaNumeric(nextCp);\n        }\n\n        return false;\n    }\n\n    _flushCodePointsConsumedAsCharacterReference() {\n        if (this._isCharacterReferenceInAttribute()) {\n            for (let i = 0; i < this.tempBuff.length; i++) {\n                this.currentAttr.value += toChar(this.tempBuff[i]);\n            }\n        } else {\n            this._emitSeveralCodePoints(this.tempBuff);\n        }\n\n        this.tempBuff = [];\n    }\n\n    // State machine\n\n    // Data state\n    //------------------------------------------------------------------\n    [DATA_STATE](cp) {\n        this.preprocessor.dropParsedChunk();\n\n        if (cp === $.LESS_THAN_SIGN) {\n            this.state = TAG_OPEN_STATE;\n        } else if (cp === $.AMPERSAND) {\n            this.returnState = DATA_STATE;\n            this.state = CHARACTER_REFERENCE_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this._emitCodePoint(cp);\n        } else if (cp === $.EOF) {\n            this._emitEOFToken();\n        } else {\n            this._emitCodePoint(cp);\n        }\n    }\n\n    //  RCDATA state\n    //------------------------------------------------------------------\n    [RCDATA_STATE](cp) {\n        this.preprocessor.dropParsedChunk();\n\n        if (cp === $.AMPERSAND) {\n            this.returnState = RCDATA_STATE;\n            this.state = CHARACTER_REFERENCE_STATE;\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.state = RCDATA_LESS_THAN_SIGN_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._emitEOFToken();\n        } else {\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // RAWTEXT state\n    //------------------------------------------------------------------\n    [RAWTEXT_STATE](cp) {\n        this.preprocessor.dropParsedChunk();\n\n        if (cp === $.LESS_THAN_SIGN) {\n            this.state = RAWTEXT_LESS_THAN_SIGN_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._emitEOFToken();\n        } else {\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // Script data state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_STATE](cp) {\n        this.preprocessor.dropParsedChunk();\n\n        if (cp === $.LESS_THAN_SIGN) {\n            this.state = SCRIPT_DATA_LESS_THAN_SIGN_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._emitEOFToken();\n        } else {\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // PLAINTEXT state\n    //------------------------------------------------------------------\n    [PLAINTEXT_STATE](cp) {\n        this.preprocessor.dropParsedChunk();\n\n        if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._emitEOFToken();\n        } else {\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // Tag open state\n    //------------------------------------------------------------------\n    [TAG_OPEN_STATE](cp) {\n        if (cp === $.EXCLAMATION_MARK) {\n            this.state = MARKUP_DECLARATION_OPEN_STATE;\n        } else if (cp === $.SOLIDUS) {\n            this.state = END_TAG_OPEN_STATE;\n        } else if (isAsciiLetter(cp)) {\n            this._createStartTagToken();\n            this._reconsumeInState(TAG_NAME_STATE);\n        } else if (cp === $.QUESTION_MARK) {\n            this._err(ERR.unexpectedQuestionMarkInsteadOfTagName);\n            this._createCommentToken();\n            this._reconsumeInState(BOGUS_COMMENT_STATE);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofBeforeTagName);\n            this._emitChars('<');\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.invalidFirstCharacterOfTagName);\n            this._emitChars('<');\n            this._reconsumeInState(DATA_STATE);\n        }\n    }\n\n    // End tag open state\n    //------------------------------------------------------------------\n    [END_TAG_OPEN_STATE](cp) {\n        if (isAsciiLetter(cp)) {\n            this._createEndTagToken();\n            this._reconsumeInState(TAG_NAME_STATE);\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.missingEndTagName);\n            this.state = DATA_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofBeforeTagName);\n            this._emitChars('</');\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.invalidFirstCharacterOfTagName);\n            this._createCommentToken();\n            this._reconsumeInState(BOGUS_COMMENT_STATE);\n        }\n    }\n\n    // Tag name state\n    //------------------------------------------------------------------\n    [TAG_NAME_STATE](cp) {\n        if (isWhitespace(cp)) {\n            this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n        } else if (cp === $.SOLIDUS) {\n            this.state = SELF_CLOSING_START_TAG_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (isAsciiUpper(cp)) {\n            this.currentToken.tagName += toAsciiLowerChar(cp);\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentToken.tagName += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInTag);\n            this._emitEOFToken();\n        } else {\n            this.currentToken.tagName += toChar(cp);\n        }\n    }\n\n    // RCDATA less-than sign state\n    //------------------------------------------------------------------\n    [RCDATA_LESS_THAN_SIGN_STATE](cp) {\n        if (cp === $.SOLIDUS) {\n            this.tempBuff = [];\n            this.state = RCDATA_END_TAG_OPEN_STATE;\n        } else {\n            this._emitChars('<');\n            this._reconsumeInState(RCDATA_STATE);\n        }\n    }\n\n    // RCDATA end tag open state\n    //------------------------------------------------------------------\n    [RCDATA_END_TAG_OPEN_STATE](cp) {\n        if (isAsciiLetter(cp)) {\n            this._createEndTagToken();\n            this._reconsumeInState(RCDATA_END_TAG_NAME_STATE);\n        } else {\n            this._emitChars('</');\n            this._reconsumeInState(RCDATA_STATE);\n        }\n    }\n\n    // RCDATA end tag name state\n    //------------------------------------------------------------------\n    [RCDATA_END_TAG_NAME_STATE](cp) {\n        if (isAsciiUpper(cp)) {\n            this.currentToken.tagName += toAsciiLowerChar(cp);\n            this.tempBuff.push(cp);\n        } else if (isAsciiLower(cp)) {\n            this.currentToken.tagName += toChar(cp);\n            this.tempBuff.push(cp);\n        } else {\n            if (this.lastStartTagName === this.currentToken.tagName) {\n                if (isWhitespace(cp)) {\n                    this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n                    return;\n                }\n\n                if (cp === $.SOLIDUS) {\n                    this.state = SELF_CLOSING_START_TAG_STATE;\n                    return;\n                }\n\n                if (cp === $.GREATER_THAN_SIGN) {\n                    this.state = DATA_STATE;\n                    this._emitCurrentToken();\n                    return;\n                }\n            }\n\n            this._emitChars('</');\n            this._emitSeveralCodePoints(this.tempBuff);\n            this._reconsumeInState(RCDATA_STATE);\n        }\n    }\n\n    // RAWTEXT less-than sign state\n    //------------------------------------------------------------------\n    [RAWTEXT_LESS_THAN_SIGN_STATE](cp) {\n        if (cp === $.SOLIDUS) {\n            this.tempBuff = [];\n            this.state = RAWTEXT_END_TAG_OPEN_STATE;\n        } else {\n            this._emitChars('<');\n            this._reconsumeInState(RAWTEXT_STATE);\n        }\n    }\n\n    // RAWTEXT end tag open state\n    //------------------------------------------------------------------\n    [RAWTEXT_END_TAG_OPEN_STATE](cp) {\n        if (isAsciiLetter(cp)) {\n            this._createEndTagToken();\n            this._reconsumeInState(RAWTEXT_END_TAG_NAME_STATE);\n        } else {\n            this._emitChars('</');\n            this._reconsumeInState(RAWTEXT_STATE);\n        }\n    }\n\n    // RAWTEXT end tag name state\n    //------------------------------------------------------------------\n    [RAWTEXT_END_TAG_NAME_STATE](cp) {\n        if (isAsciiUpper(cp)) {\n            this.currentToken.tagName += toAsciiLowerChar(cp);\n            this.tempBuff.push(cp);\n        } else if (isAsciiLower(cp)) {\n            this.currentToken.tagName += toChar(cp);\n            this.tempBuff.push(cp);\n        } else {\n            if (this.lastStartTagName === this.currentToken.tagName) {\n                if (isWhitespace(cp)) {\n                    this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n                    return;\n                }\n\n                if (cp === $.SOLIDUS) {\n                    this.state = SELF_CLOSING_START_TAG_STATE;\n                    return;\n                }\n\n                if (cp === $.GREATER_THAN_SIGN) {\n                    this._emitCurrentToken();\n                    this.state = DATA_STATE;\n                    return;\n                }\n            }\n\n            this._emitChars('</');\n            this._emitSeveralCodePoints(this.tempBuff);\n            this._reconsumeInState(RAWTEXT_STATE);\n        }\n    }\n\n    // Script data less-than sign state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_LESS_THAN_SIGN_STATE](cp) {\n        if (cp === $.SOLIDUS) {\n            this.tempBuff = [];\n            this.state = SCRIPT_DATA_END_TAG_OPEN_STATE;\n        } else if (cp === $.EXCLAMATION_MARK) {\n            this.state = SCRIPT_DATA_ESCAPE_START_STATE;\n            this._emitChars('<!');\n        } else {\n            this._emitChars('<');\n            this._reconsumeInState(SCRIPT_DATA_STATE);\n        }\n    }\n\n    // Script data end tag open state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_END_TAG_OPEN_STATE](cp) {\n        if (isAsciiLetter(cp)) {\n            this._createEndTagToken();\n            this._reconsumeInState(SCRIPT_DATA_END_TAG_NAME_STATE);\n        } else {\n            this._emitChars('</');\n            this._reconsumeInState(SCRIPT_DATA_STATE);\n        }\n    }\n\n    // Script data end tag name state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_END_TAG_NAME_STATE](cp) {\n        if (isAsciiUpper(cp)) {\n            this.currentToken.tagName += toAsciiLowerChar(cp);\n            this.tempBuff.push(cp);\n        } else if (isAsciiLower(cp)) {\n            this.currentToken.tagName += toChar(cp);\n            this.tempBuff.push(cp);\n        } else {\n            if (this.lastStartTagName === this.currentToken.tagName) {\n                if (isWhitespace(cp)) {\n                    this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n                    return;\n                } else if (cp === $.SOLIDUS) {\n                    this.state = SELF_CLOSING_START_TAG_STATE;\n                    return;\n                } else if (cp === $.GREATER_THAN_SIGN) {\n                    this._emitCurrentToken();\n                    this.state = DATA_STATE;\n                    return;\n                }\n            }\n\n            this._emitChars('</');\n            this._emitSeveralCodePoints(this.tempBuff);\n            this._reconsumeInState(SCRIPT_DATA_STATE);\n        }\n    }\n\n    // Script data escape start state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_ESCAPE_START_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = SCRIPT_DATA_ESCAPE_START_DASH_STATE;\n            this._emitChars('-');\n        } else {\n            this._reconsumeInState(SCRIPT_DATA_STATE);\n        }\n    }\n\n    // Script data escape start dash state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_ESCAPE_START_DASH_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = SCRIPT_DATA_ESCAPED_DASH_DASH_STATE;\n            this._emitChars('-');\n        } else {\n            this._reconsumeInState(SCRIPT_DATA_STATE);\n        }\n    }\n\n    // Script data escaped state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_ESCAPED_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = SCRIPT_DATA_ESCAPED_DASH_STATE;\n            this._emitChars('-');\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInScriptHtmlCommentLikeText);\n            this._emitEOFToken();\n        } else {\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // Script data escaped dash state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_ESCAPED_DASH_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = SCRIPT_DATA_ESCAPED_DASH_DASH_STATE;\n            this._emitChars('-');\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.state = SCRIPT_DATA_ESCAPED_STATE;\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInScriptHtmlCommentLikeText);\n            this._emitEOFToken();\n        } else {\n            this.state = SCRIPT_DATA_ESCAPED_STATE;\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // Script data escaped dash dash state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_ESCAPED_DASH_DASH_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this._emitChars('-');\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this.state = SCRIPT_DATA_STATE;\n            this._emitChars('>');\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.state = SCRIPT_DATA_ESCAPED_STATE;\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInScriptHtmlCommentLikeText);\n            this._emitEOFToken();\n        } else {\n            this.state = SCRIPT_DATA_ESCAPED_STATE;\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // Script data escaped less-than sign state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE](cp) {\n        if (cp === $.SOLIDUS) {\n            this.tempBuff = [];\n            this.state = SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE;\n        } else if (isAsciiLetter(cp)) {\n            this.tempBuff = [];\n            this._emitChars('<');\n            this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE);\n        } else {\n            this._emitChars('<');\n            this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n        }\n    }\n\n    // Script data escaped end tag open state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE](cp) {\n        if (isAsciiLetter(cp)) {\n            this._createEndTagToken();\n            this._reconsumeInState(SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE);\n        } else {\n            this._emitChars('</');\n            this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n        }\n    }\n\n    // Script data escaped end tag name state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE](cp) {\n        if (isAsciiUpper(cp)) {\n            this.currentToken.tagName += toAsciiLowerChar(cp);\n            this.tempBuff.push(cp);\n        } else if (isAsciiLower(cp)) {\n            this.currentToken.tagName += toChar(cp);\n            this.tempBuff.push(cp);\n        } else {\n            if (this.lastStartTagName === this.currentToken.tagName) {\n                if (isWhitespace(cp)) {\n                    this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n                    return;\n                }\n\n                if (cp === $.SOLIDUS) {\n                    this.state = SELF_CLOSING_START_TAG_STATE;\n                    return;\n                }\n\n                if (cp === $.GREATER_THAN_SIGN) {\n                    this._emitCurrentToken();\n                    this.state = DATA_STATE;\n                    return;\n                }\n            }\n\n            this._emitChars('</');\n            this._emitSeveralCodePoints(this.tempBuff);\n            this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n        }\n    }\n\n    // Script data double escape start state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE](cp) {\n        if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN) {\n            this.state = this._isTempBufferEqualToScriptString()\n                ? SCRIPT_DATA_DOUBLE_ESCAPED_STATE\n                : SCRIPT_DATA_ESCAPED_STATE;\n            this._emitCodePoint(cp);\n        } else if (isAsciiUpper(cp)) {\n            this.tempBuff.push(toAsciiLowerCodePoint(cp));\n            this._emitCodePoint(cp);\n        } else if (isAsciiLower(cp)) {\n            this.tempBuff.push(cp);\n            this._emitCodePoint(cp);\n        } else {\n            this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n        }\n    }\n\n    // Script data double escaped state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_DOUBLE_ESCAPED_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE;\n            this._emitChars('-');\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n            this._emitChars('<');\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInScriptHtmlCommentLikeText);\n            this._emitEOFToken();\n        } else {\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // Script data double escaped dash state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE;\n            this._emitChars('-');\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n            this._emitChars('<');\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInScriptHtmlCommentLikeText);\n            this._emitEOFToken();\n        } else {\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // Script data double escaped dash dash state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this._emitChars('-');\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n            this._emitChars('<');\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this.state = SCRIPT_DATA_STATE;\n            this._emitChars('>');\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInScriptHtmlCommentLikeText);\n            this._emitEOFToken();\n        } else {\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // Script data double escaped less-than sign state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE](cp) {\n        if (cp === $.SOLIDUS) {\n            this.tempBuff = [];\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE;\n            this._emitChars('/');\n        } else {\n            this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPED_STATE);\n        }\n    }\n\n    // Script data double escape end state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE](cp) {\n        if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN) {\n            this.state = this._isTempBufferEqualToScriptString()\n                ? SCRIPT_DATA_ESCAPED_STATE\n                : SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n\n            this._emitCodePoint(cp);\n        } else if (isAsciiUpper(cp)) {\n            this.tempBuff.push(toAsciiLowerCodePoint(cp));\n            this._emitCodePoint(cp);\n        } else if (isAsciiLower(cp)) {\n            this.tempBuff.push(cp);\n            this._emitCodePoint(cp);\n        } else {\n            this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPED_STATE);\n        }\n    }\n\n    // Before attribute name state\n    //------------------------------------------------------------------\n    [BEFORE_ATTRIBUTE_NAME_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN || cp === $.EOF) {\n            this._reconsumeInState(AFTER_ATTRIBUTE_NAME_STATE);\n        } else if (cp === $.EQUALS_SIGN) {\n            this._err(ERR.unexpectedEqualsSignBeforeAttributeName);\n            this._createAttr('=');\n            this.state = ATTRIBUTE_NAME_STATE;\n        } else {\n            this._createAttr('');\n            this._reconsumeInState(ATTRIBUTE_NAME_STATE);\n        }\n    }\n\n    // Attribute name state\n    //------------------------------------------------------------------\n    [ATTRIBUTE_NAME_STATE](cp) {\n        if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN || cp === $.EOF) {\n            this._leaveAttrName(AFTER_ATTRIBUTE_NAME_STATE);\n            this._unconsume();\n        } else if (cp === $.EQUALS_SIGN) {\n            this._leaveAttrName(BEFORE_ATTRIBUTE_VALUE_STATE);\n        } else if (isAsciiUpper(cp)) {\n            this.currentAttr.name += toAsciiLowerChar(cp);\n        } else if (cp === $.QUOTATION_MARK || cp === $.APOSTROPHE || cp === $.LESS_THAN_SIGN) {\n            this._err(ERR.unexpectedCharacterInAttributeName);\n            this.currentAttr.name += toChar(cp);\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentAttr.name += unicode.REPLACEMENT_CHARACTER;\n        } else {\n            this.currentAttr.name += toChar(cp);\n        }\n    }\n\n    // After attribute name state\n    //------------------------------------------------------------------\n    [AFTER_ATTRIBUTE_NAME_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (cp === $.SOLIDUS) {\n            this.state = SELF_CLOSING_START_TAG_STATE;\n        } else if (cp === $.EQUALS_SIGN) {\n            this.state = BEFORE_ATTRIBUTE_VALUE_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInTag);\n            this._emitEOFToken();\n        } else {\n            this._createAttr('');\n            this._reconsumeInState(ATTRIBUTE_NAME_STATE);\n        }\n    }\n\n    // Before attribute value state\n    //------------------------------------------------------------------\n    [BEFORE_ATTRIBUTE_VALUE_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (cp === $.QUOTATION_MARK) {\n            this.state = ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE;\n        } else if (cp === $.APOSTROPHE) {\n            this.state = ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.missingAttributeValue);\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else {\n            this._reconsumeInState(ATTRIBUTE_VALUE_UNQUOTED_STATE);\n        }\n    }\n\n    // Attribute value (double-quoted) state\n    //------------------------------------------------------------------\n    [ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE](cp) {\n        if (cp === $.QUOTATION_MARK) {\n            this.state = AFTER_ATTRIBUTE_VALUE_QUOTED_STATE;\n        } else if (cp === $.AMPERSAND) {\n            this.returnState = ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE;\n            this.state = CHARACTER_REFERENCE_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInTag);\n            this._emitEOFToken();\n        } else {\n            this.currentAttr.value += toChar(cp);\n        }\n    }\n\n    // Attribute value (single-quoted) state\n    //------------------------------------------------------------------\n    [ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE](cp) {\n        if (cp === $.APOSTROPHE) {\n            this.state = AFTER_ATTRIBUTE_VALUE_QUOTED_STATE;\n        } else if (cp === $.AMPERSAND) {\n            this.returnState = ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE;\n            this.state = CHARACTER_REFERENCE_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInTag);\n            this._emitEOFToken();\n        } else {\n            this.currentAttr.value += toChar(cp);\n        }\n    }\n\n    // Attribute value (unquoted) state\n    //------------------------------------------------------------------\n    [ATTRIBUTE_VALUE_UNQUOTED_STATE](cp) {\n        if (isWhitespace(cp)) {\n            this._leaveAttrValue(BEFORE_ATTRIBUTE_NAME_STATE);\n        } else if (cp === $.AMPERSAND) {\n            this.returnState = ATTRIBUTE_VALUE_UNQUOTED_STATE;\n            this.state = CHARACTER_REFERENCE_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._leaveAttrValue(DATA_STATE);\n            this._emitCurrentToken();\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n        } else if (\n            cp === $.QUOTATION_MARK ||\n            cp === $.APOSTROPHE ||\n            cp === $.LESS_THAN_SIGN ||\n            cp === $.EQUALS_SIGN ||\n            cp === $.GRAVE_ACCENT\n        ) {\n            this._err(ERR.unexpectedCharacterInUnquotedAttributeValue);\n            this.currentAttr.value += toChar(cp);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInTag);\n            this._emitEOFToken();\n        } else {\n            this.currentAttr.value += toChar(cp);\n        }\n    }\n\n    // After attribute value (quoted) state\n    //------------------------------------------------------------------\n    [AFTER_ATTRIBUTE_VALUE_QUOTED_STATE](cp) {\n        if (isWhitespace(cp)) {\n            this._leaveAttrValue(BEFORE_ATTRIBUTE_NAME_STATE);\n        } else if (cp === $.SOLIDUS) {\n            this._leaveAttrValue(SELF_CLOSING_START_TAG_STATE);\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._leaveAttrValue(DATA_STATE);\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInTag);\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.missingWhitespaceBetweenAttributes);\n            this._reconsumeInState(BEFORE_ATTRIBUTE_NAME_STATE);\n        }\n    }\n\n    // Self-closing start tag state\n    //------------------------------------------------------------------\n    [SELF_CLOSING_START_TAG_STATE](cp) {\n        if (cp === $.GREATER_THAN_SIGN) {\n            this.currentToken.selfClosing = true;\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInTag);\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.unexpectedSolidusInTag);\n            this._reconsumeInState(BEFORE_ATTRIBUTE_NAME_STATE);\n        }\n    }\n\n    // Bogus comment state\n    //------------------------------------------------------------------\n    [BOGUS_COMMENT_STATE](cp) {\n        if (cp === $.GREATER_THAN_SIGN) {\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentToken.data += unicode.REPLACEMENT_CHARACTER;\n        } else {\n            this.currentToken.data += toChar(cp);\n        }\n    }\n\n    // Markup declaration open state\n    //------------------------------------------------------------------\n    [MARKUP_DECLARATION_OPEN_STATE](cp) {\n        if (this._consumeSequenceIfMatch($$.DASH_DASH_STRING, cp, true)) {\n            this._createCommentToken();\n            this.state = COMMENT_START_STATE;\n        } else if (this._consumeSequenceIfMatch($$.DOCTYPE_STRING, cp, false)) {\n            this.state = DOCTYPE_STATE;\n        } else if (this._consumeSequenceIfMatch($$.CDATA_START_STRING, cp, true)) {\n            if (this.allowCDATA) {\n                this.state = CDATA_SECTION_STATE;\n            } else {\n                this._err(ERR.cdataInHtmlContent);\n                this._createCommentToken();\n                this.currentToken.data = '[CDATA[';\n                this.state = BOGUS_COMMENT_STATE;\n            }\n        }\n\n        //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n        //results are no longer valid and we will need to start over.\n        else if (!this._ensureHibernation()) {\n            this._err(ERR.incorrectlyOpenedComment);\n            this._createCommentToken();\n            this._reconsumeInState(BOGUS_COMMENT_STATE);\n        }\n    }\n\n    // Comment start state\n    //------------------------------------------------------------------\n    [COMMENT_START_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = COMMENT_START_DASH_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.abruptClosingOfEmptyComment);\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else {\n            this._reconsumeInState(COMMENT_STATE);\n        }\n    }\n\n    // Comment start dash state\n    //------------------------------------------------------------------\n    [COMMENT_START_DASH_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = COMMENT_END_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.abruptClosingOfEmptyComment);\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInComment);\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.data += '-';\n            this._reconsumeInState(COMMENT_STATE);\n        }\n    }\n\n    // Comment state\n    //------------------------------------------------------------------\n    [COMMENT_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = COMMENT_END_DASH_STATE;\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.currentToken.data += '<';\n            this.state = COMMENT_LESS_THAN_SIGN_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentToken.data += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInComment);\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.data += toChar(cp);\n        }\n    }\n\n    // Comment less-than sign state\n    //------------------------------------------------------------------\n    [COMMENT_LESS_THAN_SIGN_STATE](cp) {\n        if (cp === $.EXCLAMATION_MARK) {\n            this.currentToken.data += '!';\n            this.state = COMMENT_LESS_THAN_SIGN_BANG_STATE;\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.currentToken.data += '!';\n        } else {\n            this._reconsumeInState(COMMENT_STATE);\n        }\n    }\n\n    // Comment less-than sign bang state\n    //------------------------------------------------------------------\n    [COMMENT_LESS_THAN_SIGN_BANG_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE;\n        } else {\n            this._reconsumeInState(COMMENT_STATE);\n        }\n    }\n\n    // Comment less-than sign bang dash state\n    //------------------------------------------------------------------\n    [COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE;\n        } else {\n            this._reconsumeInState(COMMENT_END_DASH_STATE);\n        }\n    }\n\n    // Comment less-than sign bang dash dash state\n    //------------------------------------------------------------------\n    [COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE](cp) {\n        if (cp !== $.GREATER_THAN_SIGN && cp !== $.EOF) {\n            this._err(ERR.nestedComment);\n        }\n\n        this._reconsumeInState(COMMENT_END_STATE);\n    }\n\n    // Comment end dash state\n    //------------------------------------------------------------------\n    [COMMENT_END_DASH_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = COMMENT_END_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInComment);\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.data += '-';\n            this._reconsumeInState(COMMENT_STATE);\n        }\n    }\n\n    // Comment end state\n    //------------------------------------------------------------------\n    [COMMENT_END_STATE](cp) {\n        if (cp === $.GREATER_THAN_SIGN) {\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EXCLAMATION_MARK) {\n            this.state = COMMENT_END_BANG_STATE;\n        } else if (cp === $.HYPHEN_MINUS) {\n            this.currentToken.data += '-';\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInComment);\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.data += '--';\n            this._reconsumeInState(COMMENT_STATE);\n        }\n    }\n\n    // Comment end bang state\n    //------------------------------------------------------------------\n    [COMMENT_END_BANG_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.currentToken.data += '--!';\n            this.state = COMMENT_END_DASH_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.incorrectlyClosedComment);\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInComment);\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.data += '--!';\n            this._reconsumeInState(COMMENT_STATE);\n        }\n    }\n\n    // DOCTYPE state\n    //------------------------------------------------------------------\n    [DOCTYPE_STATE](cp) {\n        if (isWhitespace(cp)) {\n            this.state = BEFORE_DOCTYPE_NAME_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._reconsumeInState(BEFORE_DOCTYPE_NAME_STATE);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this._createDoctypeToken(null);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.missingWhitespaceBeforeDoctypeName);\n            this._reconsumeInState(BEFORE_DOCTYPE_NAME_STATE);\n        }\n    }\n\n    // Before DOCTYPE name state\n    //------------------------------------------------------------------\n    [BEFORE_DOCTYPE_NAME_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (isAsciiUpper(cp)) {\n            this._createDoctypeToken(toAsciiLowerChar(cp));\n            this.state = DOCTYPE_NAME_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this._createDoctypeToken(unicode.REPLACEMENT_CHARACTER);\n            this.state = DOCTYPE_NAME_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.missingDoctypeName);\n            this._createDoctypeToken(null);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this.state = DATA_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this._createDoctypeToken(null);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._createDoctypeToken(toChar(cp));\n            this.state = DOCTYPE_NAME_STATE;\n        }\n    }\n\n    // DOCTYPE name state\n    //------------------------------------------------------------------\n    [DOCTYPE_NAME_STATE](cp) {\n        if (isWhitespace(cp)) {\n            this.state = AFTER_DOCTYPE_NAME_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (isAsciiUpper(cp)) {\n            this.currentToken.name += toAsciiLowerChar(cp);\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentToken.name += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.name += toChar(cp);\n        }\n    }\n\n    // After DOCTYPE name state\n    //------------------------------------------------------------------\n    [AFTER_DOCTYPE_NAME_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (cp === $.GREATER_THAN_SIGN) {\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else if (this._consumeSequenceIfMatch($$.PUBLIC_STRING, cp, false)) {\n            this.state = AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE;\n        } else if (this._consumeSequenceIfMatch($$.SYSTEM_STRING, cp, false)) {\n            this.state = AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE;\n        }\n        //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n        //results are no longer valid and we will need to start over.\n        else if (!this._ensureHibernation()) {\n            this._err(ERR.invalidCharacterSequenceAfterDoctypeName);\n            this.currentToken.forceQuirks = true;\n            this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n        }\n    }\n\n    // After DOCTYPE public keyword state\n    //------------------------------------------------------------------\n    [AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE](cp) {\n        if (isWhitespace(cp)) {\n            this.state = BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n        } else if (cp === $.QUOTATION_MARK) {\n            this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n            this.currentToken.publicId = '';\n            this.state = DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE;\n        } else if (cp === $.APOSTROPHE) {\n            this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n            this.currentToken.publicId = '';\n            this.state = DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.missingDoctypePublicIdentifier);\n            this.currentToken.forceQuirks = true;\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n        }\n    }\n\n    // Before DOCTYPE public identifier state\n    //------------------------------------------------------------------\n    [BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (cp === $.QUOTATION_MARK) {\n            this.currentToken.publicId = '';\n            this.state = DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE;\n        } else if (cp === $.APOSTROPHE) {\n            this.currentToken.publicId = '';\n            this.state = DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.missingDoctypePublicIdentifier);\n            this.currentToken.forceQuirks = true;\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n        }\n    }\n\n    // DOCTYPE public identifier (double-quoted) state\n    //------------------------------------------------------------------\n    [DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE](cp) {\n        if (cp === $.QUOTATION_MARK) {\n            this.state = AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentToken.publicId += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.abruptDoctypePublicIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this.state = DATA_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.publicId += toChar(cp);\n        }\n    }\n\n    // DOCTYPE public identifier (single-quoted) state\n    //------------------------------------------------------------------\n    [DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE](cp) {\n        if (cp === $.APOSTROPHE) {\n            this.state = AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentToken.publicId += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.abruptDoctypePublicIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this.state = DATA_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.publicId += toChar(cp);\n        }\n    }\n\n    // After DOCTYPE public identifier state\n    //------------------------------------------------------------------\n    [AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE](cp) {\n        if (isWhitespace(cp)) {\n            this.state = BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.QUOTATION_MARK) {\n            this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n            this.currentToken.systemId = '';\n            this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n        } else if (cp === $.APOSTROPHE) {\n            this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n            this.currentToken.systemId = '';\n            this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n        }\n    }\n\n    // Between DOCTYPE public and system identifiers state\n    //------------------------------------------------------------------\n    [BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (cp === $.GREATER_THAN_SIGN) {\n            this._emitCurrentToken();\n            this.state = DATA_STATE;\n        } else if (cp === $.QUOTATION_MARK) {\n            this.currentToken.systemId = '';\n            this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n        } else if (cp === $.APOSTROPHE) {\n            this.currentToken.systemId = '';\n            this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n        }\n    }\n\n    // After DOCTYPE system keyword state\n    //------------------------------------------------------------------\n    [AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE](cp) {\n        if (isWhitespace(cp)) {\n            this.state = BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n        } else if (cp === $.QUOTATION_MARK) {\n            this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n            this.currentToken.systemId = '';\n            this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n        } else if (cp === $.APOSTROPHE) {\n            this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n            this.currentToken.systemId = '';\n            this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.missingDoctypeSystemIdentifier);\n            this.currentToken.forceQuirks = true;\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n        }\n    }\n\n    // Before DOCTYPE system identifier state\n    //------------------------------------------------------------------\n    [BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (cp === $.QUOTATION_MARK) {\n            this.currentToken.systemId = '';\n            this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n        } else if (cp === $.APOSTROPHE) {\n            this.currentToken.systemId = '';\n            this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.missingDoctypeSystemIdentifier);\n            this.currentToken.forceQuirks = true;\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n        }\n    }\n\n    // DOCTYPE system identifier (double-quoted) state\n    //------------------------------------------------------------------\n    [DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE](cp) {\n        if (cp === $.QUOTATION_MARK) {\n            this.state = AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentToken.systemId += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.abruptDoctypeSystemIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this.state = DATA_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.systemId += toChar(cp);\n        }\n    }\n\n    // DOCTYPE system identifier (single-quoted) state\n    //------------------------------------------------------------------\n    [DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE](cp) {\n        if (cp === $.APOSTROPHE) {\n            this.state = AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentToken.systemId += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.abruptDoctypeSystemIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this.state = DATA_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.systemId += toChar(cp);\n        }\n    }\n\n    // After DOCTYPE system identifier state\n    //------------------------------------------------------------------\n    [AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (cp === $.GREATER_THAN_SIGN) {\n            this._emitCurrentToken();\n            this.state = DATA_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.unexpectedCharacterAfterDoctypeSystemIdentifier);\n            this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n        }\n    }\n\n    // Bogus DOCTYPE state\n    //------------------------------------------------------------------\n    [BOGUS_DOCTYPE_STATE](cp) {\n        if (cp === $.GREATER_THAN_SIGN) {\n            this._emitCurrentToken();\n            this.state = DATA_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n        } else if (cp === $.EOF) {\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        }\n    }\n\n    // CDATA section state\n    //------------------------------------------------------------------\n    [CDATA_SECTION_STATE](cp) {\n        if (cp === $.RIGHT_SQUARE_BRACKET) {\n            this.state = CDATA_SECTION_BRACKET_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInCdata);\n            this._emitEOFToken();\n        } else {\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // CDATA section bracket state\n    //------------------------------------------------------------------\n    [CDATA_SECTION_BRACKET_STATE](cp) {\n        if (cp === $.RIGHT_SQUARE_BRACKET) {\n            this.state = CDATA_SECTION_END_STATE;\n        } else {\n            this._emitChars(']');\n            this._reconsumeInState(CDATA_SECTION_STATE);\n        }\n    }\n\n    // CDATA section end state\n    //------------------------------------------------------------------\n    [CDATA_SECTION_END_STATE](cp) {\n        if (cp === $.GREATER_THAN_SIGN) {\n            this.state = DATA_STATE;\n        } else if (cp === $.RIGHT_SQUARE_BRACKET) {\n            this._emitChars(']');\n        } else {\n            this._emitChars(']]');\n            this._reconsumeInState(CDATA_SECTION_STATE);\n        }\n    }\n\n    // Character reference state\n    //------------------------------------------------------------------\n    [CHARACTER_REFERENCE_STATE](cp) {\n        this.tempBuff = [$.AMPERSAND];\n\n        if (cp === $.NUMBER_SIGN) {\n            this.tempBuff.push(cp);\n            this.state = NUMERIC_CHARACTER_REFERENCE_STATE;\n        } else if (isAsciiAlphaNumeric(cp)) {\n            this._reconsumeInState(NAMED_CHARACTER_REFERENCE_STATE);\n        } else {\n            this._flushCodePointsConsumedAsCharacterReference();\n            this._reconsumeInState(this.returnState);\n        }\n    }\n\n    // Named character reference state\n    //------------------------------------------------------------------\n    [NAMED_CHARACTER_REFERENCE_STATE](cp) {\n        const matchResult = this._matchNamedCharacterReference(cp);\n\n        //NOTE: matching can be abrupted by hibernation. In that case match\n        //results are no longer valid and we will need to start over.\n        if (this._ensureHibernation()) {\n            this.tempBuff = [$.AMPERSAND];\n        } else if (matchResult) {\n            const withSemicolon = this.tempBuff[this.tempBuff.length - 1] === $.SEMICOLON;\n\n            if (!this._isCharacterReferenceAttributeQuirk(withSemicolon)) {\n                if (!withSemicolon) {\n                    this._errOnNextCodePoint(ERR.missingSemicolonAfterCharacterReference);\n                }\n\n                this.tempBuff = matchResult;\n            }\n\n            this._flushCodePointsConsumedAsCharacterReference();\n            this.state = this.returnState;\n        } else {\n            this._flushCodePointsConsumedAsCharacterReference();\n            this.state = AMBIGUOUS_AMPERSAND_STATE;\n        }\n    }\n\n    // Ambiguos ampersand state\n    //------------------------------------------------------------------\n    [AMBIGUOUS_AMPERSAND_STATE](cp) {\n        if (isAsciiAlphaNumeric(cp)) {\n            if (this._isCharacterReferenceInAttribute()) {\n                this.currentAttr.value += toChar(cp);\n            } else {\n                this._emitCodePoint(cp);\n            }\n        } else {\n            if (cp === $.SEMICOLON) {\n                this._err(ERR.unknownNamedCharacterReference);\n            }\n\n            this._reconsumeInState(this.returnState);\n        }\n    }\n\n    // Numeric character reference state\n    //------------------------------------------------------------------\n    [NUMERIC_CHARACTER_REFERENCE_STATE](cp) {\n        this.charRefCode = 0;\n\n        if (cp === $.LATIN_SMALL_X || cp === $.LATIN_CAPITAL_X) {\n            this.tempBuff.push(cp);\n            this.state = HEXADEMICAL_CHARACTER_REFERENCE_START_STATE;\n        } else {\n            this._reconsumeInState(DECIMAL_CHARACTER_REFERENCE_START_STATE);\n        }\n    }\n\n    // Hexademical character reference start state\n    //------------------------------------------------------------------\n    [HEXADEMICAL_CHARACTER_REFERENCE_START_STATE](cp) {\n        if (isAsciiHexDigit(cp)) {\n            this._reconsumeInState(HEXADEMICAL_CHARACTER_REFERENCE_STATE);\n        } else {\n            this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n            this._flushCodePointsConsumedAsCharacterReference();\n            this._reconsumeInState(this.returnState);\n        }\n    }\n\n    // Decimal character reference start state\n    //------------------------------------------------------------------\n    [DECIMAL_CHARACTER_REFERENCE_START_STATE](cp) {\n        if (isAsciiDigit(cp)) {\n            this._reconsumeInState(DECIMAL_CHARACTER_REFERENCE_STATE);\n        } else {\n            this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n            this._flushCodePointsConsumedAsCharacterReference();\n            this._reconsumeInState(this.returnState);\n        }\n    }\n\n    // Hexademical character reference state\n    //------------------------------------------------------------------\n    [HEXADEMICAL_CHARACTER_REFERENCE_STATE](cp) {\n        if (isAsciiUpperHexDigit(cp)) {\n            this.charRefCode = this.charRefCode * 16 + cp - 0x37;\n        } else if (isAsciiLowerHexDigit(cp)) {\n            this.charRefCode = this.charRefCode * 16 + cp - 0x57;\n        } else if (isAsciiDigit(cp)) {\n            this.charRefCode = this.charRefCode * 16 + cp - 0x30;\n        } else if (cp === $.SEMICOLON) {\n            this.state = NUMERIC_CHARACTER_REFERENCE_END_STATE;\n        } else {\n            this._err(ERR.missingSemicolonAfterCharacterReference);\n            this._reconsumeInState(NUMERIC_CHARACTER_REFERENCE_END_STATE);\n        }\n    }\n\n    // Decimal character reference state\n    //------------------------------------------------------------------\n    [DECIMAL_CHARACTER_REFERENCE_STATE](cp) {\n        if (isAsciiDigit(cp)) {\n            this.charRefCode = this.charRefCode * 10 + cp - 0x30;\n        } else if (cp === $.SEMICOLON) {\n            this.state = NUMERIC_CHARACTER_REFERENCE_END_STATE;\n        } else {\n            this._err(ERR.missingSemicolonAfterCharacterReference);\n            this._reconsumeInState(NUMERIC_CHARACTER_REFERENCE_END_STATE);\n        }\n    }\n\n    // Numeric character reference end state\n    //------------------------------------------------------------------\n    [NUMERIC_CHARACTER_REFERENCE_END_STATE]() {\n        if (this.charRefCode === $.NULL) {\n            this._err(ERR.nullCharacterReference);\n            this.charRefCode = $.REPLACEMENT_CHARACTER;\n        } else if (this.charRefCode > 0x10ffff) {\n            this._err(ERR.characterReferenceOutsideUnicodeRange);\n            this.charRefCode = $.REPLACEMENT_CHARACTER;\n        } else if (unicode.isSurrogate(this.charRefCode)) {\n            this._err(ERR.surrogateCharacterReference);\n            this.charRefCode = $.REPLACEMENT_CHARACTER;\n        } else if (unicode.isUndefinedCodePoint(this.charRefCode)) {\n            this._err(ERR.noncharacterCharacterReference);\n        } else if (unicode.isControlCodePoint(this.charRefCode) || this.charRefCode === $.CARRIAGE_RETURN) {\n            this._err(ERR.controlCharacterReference);\n\n            const replacement = C1_CONTROLS_REFERENCE_REPLACEMENTS[this.charRefCode];\n\n            if (replacement) {\n                this.charRefCode = replacement;\n            }\n        }\n\n        this.tempBuff = [this.charRefCode];\n\n        this._flushCodePointsConsumedAsCharacterReference();\n        this._reconsumeInState(this.returnState);\n    }\n}\n\n//Token types\nTokenizer.CHARACTER_TOKEN = 'CHARACTER_TOKEN';\nTokenizer.NULL_CHARACTER_TOKEN = 'NULL_CHARACTER_TOKEN';\nTokenizer.WHITESPACE_CHARACTER_TOKEN = 'WHITESPACE_CHARACTER_TOKEN';\nTokenizer.START_TAG_TOKEN = 'START_TAG_TOKEN';\nTokenizer.END_TAG_TOKEN = 'END_TAG_TOKEN';\nTokenizer.COMMENT_TOKEN = 'COMMENT_TOKEN';\nTokenizer.DOCTYPE_TOKEN = 'DOCTYPE_TOKEN';\nTokenizer.EOF_TOKEN = 'EOF_TOKEN';\nTokenizer.HIBERNATION_TOKEN = 'HIBERNATION_TOKEN';\n\n//Tokenizer initial states for different modes\nTokenizer.MODE = {\n    DATA: DATA_STATE,\n    RCDATA: RCDATA_STATE,\n    RAWTEXT: RAWTEXT_STATE,\n    SCRIPT_DATA: SCRIPT_DATA_STATE,\n    PLAINTEXT: PLAINTEXT_STATE\n};\n\n//Static\nTokenizer.getTokenAttr = function(token, attrName) {\n    for (let i = token.attrs.length - 1; i >= 0; i--) {\n        if (token.attrs[i].name === attrName) {\n            return token.attrs[i].value;\n        }\n    }\n\n    return null;\n};\n\nmodule.exports = Tokenizer;\n","'use strict';\n\n//NOTE: this file contains auto-generated array mapped radix tree that is used for the named entity references consumption\n//(details: https://github.com/inikulin/parse5/tree/master/scripts/generate-named-entity-data/README.md)\nmodule.exports = new Uint16Array([4,52,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,106,303,412,810,1432,1701,1796,1987,2114,2360,2420,2484,3170,3251,4140,4393,4575,4610,5106,5512,5728,6117,6274,6315,6345,6427,6516,7002,7910,8733,9323,9870,10170,10631,10893,11318,11386,11467,12773,13092,14474,14922,15448,15542,16419,17666,18166,18611,19004,19095,19298,19397,4,16,69,77,97,98,99,102,103,108,109,110,111,112,114,115,116,117,140,150,158,169,176,194,199,210,216,222,226,242,256,266,283,294,108,105,103,5,198,1,59,148,1,198,80,5,38,1,59,156,1,38,99,117,116,101,5,193,1,59,167,1,193,114,101,118,101,59,1,258,4,2,105,121,182,191,114,99,5,194,1,59,189,1,194,59,1,1040,114,59,3,55349,56580,114,97,118,101,5,192,1,59,208,1,192,112,104,97,59,1,913,97,99,114,59,1,256,100,59,1,10835,4,2,103,112,232,237,111,110,59,1,260,102,59,3,55349,56632,112,108,121,70,117,110,99,116,105,111,110,59,1,8289,105,110,103,5,197,1,59,264,1,197,4,2,99,115,272,277,114,59,3,55349,56476,105,103,110,59,1,8788,105,108,100,101,5,195,1,59,292,1,195,109,108,5,196,1,59,301,1,196,4,8,97,99,101,102,111,114,115,117,321,350,354,383,388,394,400,405,4,2,99,114,327,336,107,115,108,97,115,104,59,1,8726,4,2,118,119,342,345,59,1,10983,101,100,59,1,8966,121,59,1,1041,4,3,99,114,116,362,369,379,97,117,115,101,59,1,8757,110,111,117,108,108,105,115,59,1,8492,97,59,1,914,114,59,3,55349,56581,112,102,59,3,55349,56633,101,118,101,59,1,728,99,114,59,1,8492,109,112,101,113,59,1,8782,4,14,72,79,97,99,100,101,102,104,105,108,111,114,115,117,442,447,456,504,542,547,569,573,577,616,678,784,790,796,99,121,59,1,1063,80,89,5,169,1,59,454,1,169,4,3,99,112,121,464,470,497,117,116,101,59,1,262,4,2,59,105,476,478,1,8914,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59,1,8517,108,101,121,115,59,1,8493,4,4,97,101,105,111,514,520,530,535,114,111,110,59,1,268,100,105,108,5,199,1,59,528,1,199,114,99,59,1,264,110,105,110,116,59,1,8752,111,116,59,1,266,4,2,100,110,553,560,105,108,108,97,59,1,184,116,101,114,68,111,116,59,1,183,114,59,1,8493,105,59,1,935,114,99,108,101,4,4,68,77,80,84,591,596,603,609,111,116,59,1,8857,105,110,117,115,59,1,8854,108,117,115,59,1,8853,105,109,101,115,59,1,8855,111,4,2,99,115,623,646,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8754,101,67,117,114,108,121,4,2,68,81,658,671,111,117,98,108,101,81,117,111,116,101,59,1,8221,117,111,116,101,59,1,8217,4,4,108,110,112,117,688,701,736,753,111,110,4,2,59,101,696,698,1,8759,59,1,10868,4,3,103,105,116,709,717,722,114,117,101,110,116,59,1,8801,110,116,59,1,8751,111,117,114,73,110,116,101,103,114,97,108,59,1,8750,4,2,102,114,742,745,59,1,8450,111,100,117,99,116,59,1,8720,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8755,111,115,115,59,1,10799,99,114,59,3,55349,56478,112,4,2,59,67,803,805,1,8915,97,112,59,1,8781,4,11,68,74,83,90,97,99,101,102,105,111,115,834,850,855,860,865,888,903,916,921,1011,1415,4,2,59,111,840,842,1,8517,116,114,97,104,100,59,1,10513,99,121,59,1,1026,99,121,59,1,1029,99,121,59,1,1039,4,3,103,114,115,873,879,883,103,101,114,59,1,8225,114,59,1,8609,104,118,59,1,10980,4,2,97,121,894,900,114,111,110,59,1,270,59,1,1044,108,4,2,59,116,910,912,1,8711,97,59,1,916,114,59,3,55349,56583,4,2,97,102,927,998,4,2,99,109,933,992,114,105,116,105,99,97,108,4,4,65,68,71,84,950,957,978,985,99,117,116,101,59,1,180,111,4,2,116,117,964,967,59,1,729,98,108,101,65,99,117,116,101,59,1,733,114,97,118,101,59,1,96,105,108,100,101,59,1,732,111,110,100,59,1,8900,102,101,114,101,110,116,105,97,108,68,59,1,8518,4,4,112,116,117,119,1021,1026,1048,1249,102,59,3,55349,56635,4,3,59,68,69,1034,1036,1041,1,168,111,116,59,1,8412,113,117,97,108,59,1,8784,98,108,101,4,6,67,68,76,82,85,86,1065,1082,1101,1189,1211,1236,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8751,111,4,2,116,119,1089,1092,59,1,168,110,65,114,114,111,119,59,1,8659,4,2,101,111,1107,1141,102,116,4,3,65,82,84,1117,1124,1136,114,114,111,119,59,1,8656,105,103,104,116,65,114,114,111,119,59,1,8660,101,101,59,1,10980,110,103,4,2,76,82,1149,1177,101,102,116,4,2,65,82,1158,1165,114,114,111,119,59,1,10232,105,103,104,116,65,114,114,111,119,59,1,10234,105,103,104,116,65,114,114,111,119,59,1,10233,105,103,104,116,4,2,65,84,1199,1206,114,114,111,119,59,1,8658,101,101,59,1,8872,112,4,2,65,68,1218,1225,114,114,111,119,59,1,8657,111,119,110,65,114,114,111,119,59,1,8661,101,114,116,105,99,97,108,66,97,114,59,1,8741,110,4,6,65,66,76,82,84,97,1264,1292,1299,1352,1391,1408,114,114,111,119,4,3,59,66,85,1276,1278,1283,1,8595,97,114,59,1,10515,112,65,114,114,111,119,59,1,8693,114,101,118,101,59,1,785,101,102,116,4,3,82,84,86,1310,1323,1334,105,103,104,116,86,101,99,116,111,114,59,1,10576,101,101,86,101,99,116,111,114,59,1,10590,101,99,116,111,114,4,2,59,66,1345,1347,1,8637,97,114,59,1,10582,105,103,104,116,4,2,84,86,1362,1373,101,101,86,101,99,116,111,114,59,1,10591,101,99,116,111,114,4,2,59,66,1384,1386,1,8641,97,114,59,1,10583,101,101,4,2,59,65,1399,1401,1,8868,114,114,111,119,59,1,8615,114,114,111,119,59,1,8659,4,2,99,116,1421,1426,114,59,3,55349,56479,114,111,107,59,1,272,4,16,78,84,97,99,100,102,103,108,109,111,112,113,115,116,117,120,1466,1470,1478,1489,1515,1520,1525,1536,1544,1593,1609,1617,1650,1664,1668,1677,71,59,1,330,72,5,208,1,59,1476,1,208,99,117,116,101,5,201,1,59,1487,1,201,4,3,97,105,121,1497,1503,1512,114,111,110,59,1,282,114,99,5,202,1,59,1510,1,202,59,1,1069,111,116,59,1,278,114,59,3,55349,56584,114,97,118,101,5,200,1,59,1534,1,200,101,109,101,110,116,59,1,8712,4,2,97,112,1550,1555,99,114,59,1,274,116,121,4,2,83,86,1563,1576,109,97,108,108,83,113,117,97,114,101,59,1,9723,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9643,4,2,103,112,1599,1604,111,110,59,1,280,102,59,3,55349,56636,115,105,108,111,110,59,1,917,117,4,2,97,105,1624,1640,108,4,2,59,84,1631,1633,1,10869,105,108,100,101,59,1,8770,108,105,98,114,105,117,109,59,1,8652,4,2,99,105,1656,1660,114,59,1,8496,109,59,1,10867,97,59,1,919,109,108,5,203,1,59,1675,1,203,4,2,105,112,1683,1689,115,116,115,59,1,8707,111,110,101,110,116,105,97,108,69,59,1,8519,4,5,99,102,105,111,115,1713,1717,1722,1762,1791,121,59,1,1060,114,59,3,55349,56585,108,108,101,100,4,2,83,86,1732,1745,109,97,108,108,83,113,117,97,114,101,59,1,9724,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9642,4,3,112,114,117,1770,1775,1781,102,59,3,55349,56637,65,108,108,59,1,8704,114,105,101,114,116,114,102,59,1,8497,99,114,59,1,8497,4,12,74,84,97,98,99,100,102,103,111,114,115,116,1822,1827,1834,1848,1855,1877,1882,1887,1890,1896,1978,1984,99,121,59,1,1027,5,62,1,59,1832,1,62,109,109,97,4,2,59,100,1843,1845,1,915,59,1,988,114,101,118,101,59,1,286,4,3,101,105,121,1863,1869,1874,100,105,108,59,1,290,114,99,59,1,284,59,1,1043,111,116,59,1,288,114,59,3,55349,56586,59,1,8921,112,102,59,3,55349,56638,101,97,116,101,114,4,6,69,70,71,76,83,84,1915,1933,1944,1953,1959,1971,113,117,97,108,4,2,59,76,1925,1927,1,8805,101,115,115,59,1,8923,117,108,108,69,113,117,97,108,59,1,8807,114,101,97,116,101,114,59,1,10914,101,115,115,59,1,8823,108,97,110,116,69,113,117,97,108,59,1,10878,105,108,100,101,59,1,8819,99,114,59,3,55349,56482,59,1,8811,4,8,65,97,99,102,105,111,115,117,2005,2012,2026,2032,2036,2049,2073,2089,82,68,99,121,59,1,1066,4,2,99,116,2018,2023,101,107,59,1,711,59,1,94,105,114,99,59,1,292,114,59,1,8460,108,98,101,114,116,83,112,97,99,101,59,1,8459,4,2,112,114,2055,2059,102,59,1,8461,105,122,111,110,116,97,108,76,105,110,101,59,1,9472,4,2,99,116,2079,2083,114,59,1,8459,114,111,107,59,1,294,109,112,4,2,68,69,2097,2107,111,119,110,72,117,109,112,59,1,8782,113,117,97,108,59,1,8783,4,14,69,74,79,97,99,100,102,103,109,110,111,115,116,117,2144,2149,2155,2160,2171,2189,2194,2198,2209,2245,2307,2329,2334,2341,99,121,59,1,1045,108,105,103,59,1,306,99,121,59,1,1025,99,117,116,101,5,205,1,59,2169,1,205,4,2,105,121,2177,2186,114,99,5,206,1,59,2184,1,206,59,1,1048,111,116,59,1,304,114,59,1,8465,114,97,118,101,5,204,1,59,2207,1,204,4,3,59,97,112,2217,2219,2238,1,8465,4,2,99,103,2225,2229,114,59,1,298,105,110,97,114,121,73,59,1,8520,108,105,101,115,59,1,8658,4,2,116,118,2251,2281,4,2,59,101,2257,2259,1,8748,4,2,103,114,2265,2271,114,97,108,59,1,8747,115,101,99,116,105,111,110,59,1,8898,105,115,105,98,108,101,4,2,67,84,2293,2300,111,109,109,97,59,1,8291,105,109,101,115,59,1,8290,4,3,103,112,116,2315,2320,2325,111,110,59,1,302,102,59,3,55349,56640,97,59,1,921,99,114,59,1,8464,105,108,100,101,59,1,296,4,2,107,109,2347,2352,99,121,59,1,1030,108,5,207,1,59,2358,1,207,4,5,99,102,111,115,117,2372,2386,2391,2397,2414,4,2,105,121,2378,2383,114,99,59,1,308,59,1,1049,114,59,3,55349,56589,112,102,59,3,55349,56641,4,2,99,101,2403,2408,114,59,3,55349,56485,114,99,121,59,1,1032,107,99,121,59,1,1028,4,7,72,74,97,99,102,111,115,2436,2441,2446,2452,2467,2472,2478,99,121,59,1,1061,99,121,59,1,1036,112,112,97,59,1,922,4,2,101,121,2458,2464,100,105,108,59,1,310,59,1,1050,114,59,3,55349,56590,112,102,59,3,55349,56642,99,114,59,3,55349,56486,4,11,74,84,97,99,101,102,108,109,111,115,116,2508,2513,2520,2562,2585,2981,2986,3004,3011,3146,3167,99,121,59,1,1033,5,60,1,59,2518,1,60,4,5,99,109,110,112,114,2532,2538,2544,2548,2558,117,116,101,59,1,313,98,100,97,59,1,923,103,59,1,10218,108,97,99,101,116,114,102,59,1,8466,114,59,1,8606,4,3,97,101,121,2570,2576,2582,114,111,110,59,1,317,100,105,108,59,1,315,59,1,1051,4,2,102,115,2591,2907,116,4,10,65,67,68,70,82,84,85,86,97,114,2614,2663,2672,2728,2735,2760,2820,2870,2888,2895,4,2,110,114,2620,2633,103,108,101,66,114,97,99,107,101,116,59,1,10216,114,111,119,4,3,59,66,82,2644,2646,2651,1,8592,97,114,59,1,8676,105,103,104,116,65,114,114,111,119,59,1,8646,101,105,108,105,110,103,59,1,8968,111,4,2,117,119,2679,2692,98,108,101,66,114,97,99,107,101,116,59,1,10214,110,4,2,84,86,2699,2710,101,101,86,101,99,116,111,114,59,1,10593,101,99,116,111,114,4,2,59,66,2721,2723,1,8643,97,114,59,1,10585,108,111,111,114,59,1,8970,105,103,104,116,4,2,65,86,2745,2752,114,114,111,119,59,1,8596,101,99,116,111,114,59,1,10574,4,2,101,114,2766,2792,101,4,3,59,65,86,2775,2777,2784,1,8867,114,114,111,119,59,1,8612,101,99,116,111,114,59,1,10586,105,97,110,103,108,101,4,3,59,66,69,2806,2808,2813,1,8882,97,114,59,1,10703,113,117,97,108,59,1,8884,112,4,3,68,84,86,2829,2841,2852,111,119,110,86,101,99,116,111,114,59,1,10577,101,101,86,101,99,116,111,114,59,1,10592,101,99,116,111,114,4,2,59,66,2863,2865,1,8639,97,114,59,1,10584,101,99,116,111,114,4,2,59,66,2881,2883,1,8636,97,114,59,1,10578,114,114,111,119,59,1,8656,105,103,104,116,97,114,114,111,119,59,1,8660,115,4,6,69,70,71,76,83,84,2922,2936,2947,2956,2962,2974,113,117,97,108,71,114,101,97,116,101,114,59,1,8922,117,108,108,69,113,117,97,108,59,1,8806,114,101,97,116,101,114,59,1,8822,101,115,115,59,1,10913,108,97,110,116,69,113,117,97,108,59,1,10877,105,108,100,101,59,1,8818,114,59,3,55349,56591,4,2,59,101,2992,2994,1,8920,102,116,97,114,114,111,119,59,1,8666,105,100,111,116,59,1,319,4,3,110,112,119,3019,3110,3115,103,4,4,76,82,108,114,3030,3058,3070,3098,101,102,116,4,2,65,82,3039,3046,114,114,111,119,59,1,10229,105,103,104,116,65,114,114,111,119,59,1,10231,105,103,104,116,65,114,114,111,119,59,1,10230,101,102,116,4,2,97,114,3079,3086,114,114,111,119,59,1,10232,105,103,104,116,97,114,114,111,119,59,1,10234,105,103,104,116,97,114,114,111,119,59,1,10233,102,59,3,55349,56643,101,114,4,2,76,82,3123,3134,101,102,116,65,114,114,111,119,59,1,8601,105,103,104,116,65,114,114,111,119,59,1,8600,4,3,99,104,116,3154,3158,3161,114,59,1,8466,59,1,8624,114,111,107,59,1,321,59,1,8810,4,8,97,99,101,102,105,111,115,117,3188,3192,3196,3222,3227,3237,3243,3248,112,59,1,10501,121,59,1,1052,4,2,100,108,3202,3213,105,117,109,83,112,97,99,101,59,1,8287,108,105,110,116,114,102,59,1,8499,114,59,3,55349,56592,110,117,115,80,108,117,115,59,1,8723,112,102,59,3,55349,56644,99,114,59,1,8499,59,1,924,4,9,74,97,99,101,102,111,115,116,117,3271,3276,3283,3306,3422,3427,4120,4126,4137,99,121,59,1,1034,99,117,116,101,59,1,323,4,3,97,101,121,3291,3297,3303,114,111,110,59,1,327,100,105,108,59,1,325,59,1,1053,4,3,103,115,119,3314,3380,3415,97,116,105,118,101,4,3,77,84,86,3327,3340,3365,101,100,105,117,109,83,112,97,99,101,59,1,8203,104,105,4,2,99,110,3348,3357,107,83,112,97,99,101,59,1,8203,83,112,97,99,101,59,1,8203,101,114,121,84,104,105,110,83,112,97,99,101,59,1,8203,116,101,100,4,2,71,76,3389,3405,114,101,97,116,101,114,71,114,101,97,116,101,114,59,1,8811,101,115,115,76,101,115,115,59,1,8810,76,105,110,101,59,1,10,114,59,3,55349,56593,4,4,66,110,112,116,3437,3444,3460,3464,114,101,97,107,59,1,8288,66,114,101,97,107,105,110,103,83,112,97,99,101,59,1,160,102,59,1,8469,4,13,59,67,68,69,71,72,76,78,80,82,83,84,86,3492,3494,3517,3536,3578,3657,3685,3784,3823,3860,3915,4066,4107,1,10988,4,2,111,117,3500,3510,110,103,114,117,101,110,116,59,1,8802,112,67,97,112,59,1,8813,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59,1,8742,4,3,108,113,120,3544,3552,3571,101,109,101,110,116,59,1,8713,117,97,108,4,2,59,84,3561,3563,1,8800,105,108,100,101,59,3,8770,824,105,115,116,115,59,1,8708,114,101,97,116,101,114,4,7,59,69,70,71,76,83,84,3600,3602,3609,3621,3631,3637,3650,1,8815,113,117,97,108,59,1,8817,117,108,108,69,113,117,97,108,59,3,8807,824,114,101,97,116,101,114,59,3,8811,824,101,115,115,59,1,8825,108,97,110,116,69,113,117,97,108,59,3,10878,824,105,108,100,101,59,1,8821,117,109,112,4,2,68,69,3666,3677,111,119,110,72,117,109,112,59,3,8782,824,113,117,97,108,59,3,8783,824,101,4,2,102,115,3692,3724,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3709,3711,3717,1,8938,97,114,59,3,10703,824,113,117,97,108,59,1,8940,115,4,6,59,69,71,76,83,84,3739,3741,3748,3757,3764,3777,1,8814,113,117,97,108,59,1,8816,114,101,97,116,101,114,59,1,8824,101,115,115,59,3,8810,824,108,97,110,116,69,113,117,97,108,59,3,10877,824,105,108,100,101,59,1,8820,101,115,116,101,100,4,2,71,76,3795,3812,114,101,97,116,101,114,71,114,101,97,116,101,114,59,3,10914,824,101,115,115,76,101,115,115,59,3,10913,824,114,101,99,101,100,101,115,4,3,59,69,83,3838,3840,3848,1,8832,113,117,97,108,59,3,10927,824,108,97,110,116,69,113,117,97,108,59,1,8928,4,2,101,105,3866,3881,118,101,114,115,101,69,108,101,109,101,110,116,59,1,8716,103,104,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3900,3902,3908,1,8939,97,114,59,3,10704,824,113,117,97,108,59,1,8941,4,2,113,117,3921,3973,117,97,114,101,83,117,4,2,98,112,3933,3952,115,101,116,4,2,59,69,3942,3945,3,8847,824,113,117,97,108,59,1,8930,101,114,115,101,116,4,2,59,69,3963,3966,3,8848,824,113,117,97,108,59,1,8931,4,3,98,99,112,3981,4000,4045,115,101,116,4,2,59,69,3990,3993,3,8834,8402,113,117,97,108,59,1,8840,99,101,101,100,115,4,4,59,69,83,84,4015,4017,4025,4037,1,8833,113,117,97,108,59,3,10928,824,108,97,110,116,69,113,117,97,108,59,1,8929,105,108,100,101,59,3,8831,824,101,114,115,101,116,4,2,59,69,4056,4059,3,8835,8402,113,117,97,108,59,1,8841,105,108,100,101,4,4,59,69,70,84,4080,4082,4089,4100,1,8769,113,117,97,108,59,1,8772,117,108,108,69,113,117,97,108,59,1,8775,105,108,100,101,59,1,8777,101,114,116,105,99,97,108,66,97,114,59,1,8740,99,114,59,3,55349,56489,105,108,100,101,5,209,1,59,4135,1,209,59,1,925,4,14,69,97,99,100,102,103,109,111,112,114,115,116,117,118,4170,4176,4187,4205,4212,4217,4228,4253,4259,4292,4295,4316,4337,4346,108,105,103,59,1,338,99,117,116,101,5,211,1,59,4185,1,211,4,2,105,121,4193,4202,114,99,5,212,1,59,4200,1,212,59,1,1054,98,108,97,99,59,1,336,114,59,3,55349,56594,114,97,118,101,5,210,1,59,4226,1,210,4,3,97,101,105,4236,4241,4246,99,114,59,1,332,103,97,59,1,937,99,114,111,110,59,1,927,112,102,59,3,55349,56646,101,110,67,117,114,108,121,4,2,68,81,4272,4285,111,117,98,108,101,81,117,111,116,101,59,1,8220,117,111,116,101,59,1,8216,59,1,10836,4,2,99,108,4301,4306,114,59,3,55349,56490,97,115,104,5,216,1,59,4314,1,216,105,4,2,108,109,4323,4332,100,101,5,213,1,59,4330,1,213,101,115,59,1,10807,109,108,5,214,1,59,4344,1,214,101,114,4,2,66,80,4354,4380,4,2,97,114,4360,4364,114,59,1,8254,97,99,4,2,101,107,4372,4375,59,1,9182,101,116,59,1,9140,97,114,101,110,116,104,101,115,105,115,59,1,9180,4,9,97,99,102,104,105,108,111,114,115,4413,4422,4426,4431,4435,4438,4448,4471,4561,114,116,105,97,108,68,59,1,8706,121,59,1,1055,114,59,3,55349,56595,105,59,1,934,59,1,928,117,115,77,105,110,117,115,59,1,177,4,2,105,112,4454,4467,110,99,97,114,101,112,108,97,110,101,59,1,8460,102,59,1,8473,4,4,59,101,105,111,4481,4483,4526,4531,1,10939,99,101,100,101,115,4,4,59,69,83,84,4498,4500,4507,4519,1,8826,113,117,97,108,59,1,10927,108,97,110,116,69,113,117,97,108,59,1,8828,105,108,100,101,59,1,8830,109,101,59,1,8243,4,2,100,112,4537,4543,117,99,116,59,1,8719,111,114,116,105,111,110,4,2,59,97,4555,4557,1,8759,108,59,1,8733,4,2,99,105,4567,4572,114,59,3,55349,56491,59,1,936,4,4,85,102,111,115,4585,4594,4599,4604,79,84,5,34,1,59,4592,1,34,114,59,3,55349,56596,112,102,59,1,8474,99,114,59,3,55349,56492,4,12,66,69,97,99,101,102,104,105,111,114,115,117,4636,4642,4650,4681,4704,4763,4767,4771,5047,5069,5081,5094,97,114,114,59,1,10512,71,5,174,1,59,4648,1,174,4,3,99,110,114,4658,4664,4668,117,116,101,59,1,340,103,59,1,10219,114,4,2,59,116,4675,4677,1,8608,108,59,1,10518,4,3,97,101,121,4689,4695,4701,114,111,110,59,1,344,100,105,108,59,1,342,59,1,1056,4,2,59,118,4710,4712,1,8476,101,114,115,101,4,2,69,85,4722,4748,4,2,108,113,4728,4736,101,109,101,110,116,59,1,8715,117,105,108,105,98,114,105,117,109,59,1,8651,112,69,113,117,105,108,105,98,114,105,117,109,59,1,10607,114,59,1,8476,111,59,1,929,103,104,116,4,8,65,67,68,70,84,85,86,97,4792,4840,4849,4905,4912,4972,5022,5040,4,2,110,114,4798,4811,103,108,101,66,114,97,99,107,101,116,59,1,10217,114,111,119,4,3,59,66,76,4822,4824,4829,1,8594,97,114,59,1,8677,101,102,116,65,114,114,111,119,59,1,8644,101,105,108,105,110,103,59,1,8969,111,4,2,117,119,4856,4869,98,108,101,66,114,97,99,107,101,116,59,1,10215,110,4,2,84,86,4876,4887,101,101,86,101,99,116,111,114,59,1,10589,101,99,116,111,114,4,2,59,66,4898,4900,1,8642,97,114,59,1,10581,108,111,111,114,59,1,8971,4,2,101,114,4918,4944,101,4,3,59,65,86,4927,4929,4936,1,8866,114,114,111,119,59,1,8614,101,99,116,111,114,59,1,10587,105,97,110,103,108,101,4,3,59,66,69,4958,4960,4965,1,8883,97,114,59,1,10704,113,117,97,108,59,1,8885,112,4,3,68,84,86,4981,4993,5004,111,119,110,86,101,99,116,111,114,59,1,10575,101,101,86,101,99,116,111,114,59,1,10588,101,99,116,111,114,4,2,59,66,5015,5017,1,8638,97,114,59,1,10580,101,99,116,111,114,4,2,59,66,5033,5035,1,8640,97,114,59,1,10579,114,114,111,119,59,1,8658,4,2,112,117,5053,5057,102,59,1,8477,110,100,73,109,112,108,105,101,115,59,1,10608,105,103,104,116,97,114,114,111,119,59,1,8667,4,2,99,104,5087,5091,114,59,1,8475,59,1,8625,108,101,68,101,108,97,121,101,100,59,1,10740,4,13,72,79,97,99,102,104,105,109,111,113,115,116,117,5134,5150,5157,5164,5198,5203,5259,5265,5277,5283,5374,5380,5385,4,2,67,99,5140,5146,72,99,121,59,1,1065,121,59,1,1064,70,84,99,121,59,1,1068,99,117,116,101,59,1,346,4,5,59,97,101,105,121,5176,5178,5184,5190,5195,1,10940,114,111,110,59,1,352,100,105,108,59,1,350,114,99,59,1,348,59,1,1057,114,59,3,55349,56598,111,114,116,4,4,68,76,82,85,5216,5227,5238,5250,111,119,110,65,114,114,111,119,59,1,8595,101,102,116,65,114,114,111,119,59,1,8592,105,103,104,116,65,114,114,111,119,59,1,8594,112,65,114,114,111,119,59,1,8593,103,109,97,59,1,931,97,108,108,67,105,114,99,108,101,59,1,8728,112,102,59,3,55349,56650,4,2,114,117,5289,5293,116,59,1,8730,97,114,101,4,4,59,73,83,85,5306,5308,5322,5367,1,9633,110,116,101,114,115,101,99,116,105,111,110,59,1,8851,117,4,2,98,112,5329,5347,115,101,116,4,2,59,69,5338,5340,1,8847,113,117,97,108,59,1,8849,101,114,115,101,116,4,2,59,69,5358,5360,1,8848,113,117,97,108,59,1,8850,110,105,111,110,59,1,8852,99,114,59,3,55349,56494,97,114,59,1,8902,4,4,98,99,109,112,5395,5420,5475,5478,4,2,59,115,5401,5403,1,8912,101,116,4,2,59,69,5411,5413,1,8912,113,117,97,108,59,1,8838,4,2,99,104,5426,5468,101,101,100,115,4,4,59,69,83,84,5440,5442,5449,5461,1,8827,113,117,97,108,59,1,10928,108,97,110,116,69,113,117,97,108,59,1,8829,105,108,100,101,59,1,8831,84,104,97,116,59,1,8715,59,1,8721,4,3,59,101,115,5486,5488,5507,1,8913,114,115,101,116,4,2,59,69,5498,5500,1,8835,113,117,97,108,59,1,8839,101,116,59,1,8913,4,11,72,82,83,97,99,102,104,105,111,114,115,5536,5546,5552,5567,5579,5602,5607,5655,5695,5701,5711,79,82,78,5,222,1,59,5544,1,222,65,68,69,59,1,8482,4,2,72,99,5558,5563,99,121,59,1,1035,121,59,1,1062,4,2,98,117,5573,5576,59,1,9,59,1,932,4,3,97,101,121,5587,5593,5599,114,111,110,59,1,356,100,105,108,59,1,354,59,1,1058,114,59,3,55349,56599,4,2,101,105,5613,5631,4,2,114,116,5619,5627,101,102,111,114,101,59,1,8756,97,59,1,920,4,2,99,110,5637,5647,107,83,112,97,99,101,59,3,8287,8202,83,112,97,99,101,59,1,8201,108,100,101,4,4,59,69,70,84,5668,5670,5677,5688,1,8764,113,117,97,108,59,1,8771,117,108,108,69,113,117,97,108,59,1,8773,105,108,100,101,59,1,8776,112,102,59,3,55349,56651,105,112,108,101,68,111,116,59,1,8411,4,2,99,116,5717,5722,114,59,3,55349,56495,114,111,107,59,1,358,4,14,97,98,99,100,102,103,109,110,111,112,114,115,116,117,5758,5789,5805,5823,5830,5835,5846,5852,5921,5937,6089,6095,6101,6108,4,2,99,114,5764,5774,117,116,101,5,218,1,59,5772,1,218,114,4,2,59,111,5781,5783,1,8607,99,105,114,59,1,10569,114,4,2,99,101,5796,5800,121,59,1,1038,118,101,59,1,364,4,2,105,121,5811,5820,114,99,5,219,1,59,5818,1,219,59,1,1059,98,108,97,99,59,1,368,114,59,3,55349,56600,114,97,118,101,5,217,1,59,5844,1,217,97,99,114,59,1,362,4,2,100,105,5858,5905,101,114,4,2,66,80,5866,5892,4,2,97,114,5872,5876,114,59,1,95,97,99,4,2,101,107,5884,5887,59,1,9183,101,116,59,1,9141,97,114,101,110,116,104,101,115,105,115,59,1,9181,111,110,4,2,59,80,5913,5915,1,8899,108,117,115,59,1,8846,4,2,103,112,5927,5932,111,110,59,1,370,102,59,3,55349,56652,4,8,65,68,69,84,97,100,112,115,5955,5985,5996,6009,6026,6033,6044,6075,114,114,111,119,4,3,59,66,68,5967,5969,5974,1,8593,97,114,59,1,10514,111,119,110,65,114,114,111,119,59,1,8645,111,119,110,65,114,114,111,119,59,1,8597,113,117,105,108,105,98,114,105,117,109,59,1,10606,101,101,4,2,59,65,6017,6019,1,8869,114,114,111,119,59,1,8613,114,114,111,119,59,1,8657,111,119,110,97,114,114,111,119,59,1,8661,101,114,4,2,76,82,6052,6063,101,102,116,65,114,114,111,119,59,1,8598,105,103,104,116,65,114,114,111,119,59,1,8599,105,4,2,59,108,6082,6084,1,978,111,110,59,1,933,105,110,103,59,1,366,99,114,59,3,55349,56496,105,108,100,101,59,1,360,109,108,5,220,1,59,6115,1,220,4,9,68,98,99,100,101,102,111,115,118,6137,6143,6148,6152,6166,6250,6255,6261,6267,97,115,104,59,1,8875,97,114,59,1,10987,121,59,1,1042,97,115,104,4,2,59,108,6161,6163,1,8873,59,1,10982,4,2,101,114,6172,6175,59,1,8897,4,3,98,116,121,6183,6188,6238,97,114,59,1,8214,4,2,59,105,6194,6196,1,8214,99,97,108,4,4,66,76,83,84,6209,6214,6220,6231,97,114,59,1,8739,105,110,101,59,1,124,101,112,97,114,97,116,111,114,59,1,10072,105,108,100,101,59,1,8768,84,104,105,110,83,112,97,99,101,59,1,8202,114,59,3,55349,56601,112,102,59,3,55349,56653,99,114,59,3,55349,56497,100,97,115,104,59,1,8874,4,5,99,101,102,111,115,6286,6292,6298,6303,6309,105,114,99,59,1,372,100,103,101,59,1,8896,114,59,3,55349,56602,112,102,59,3,55349,56654,99,114,59,3,55349,56498,4,4,102,105,111,115,6325,6330,6333,6339,114,59,3,55349,56603,59,1,926,112,102,59,3,55349,56655,99,114,59,3,55349,56499,4,9,65,73,85,97,99,102,111,115,117,6365,6370,6375,6380,6391,6405,6410,6416,6422,99,121,59,1,1071,99,121,59,1,1031,99,121,59,1,1070,99,117,116,101,5,221,1,59,6389,1,221,4,2,105,121,6397,6402,114,99,59,1,374,59,1,1067,114,59,3,55349,56604,112,102,59,3,55349,56656,99,114,59,3,55349,56500,109,108,59,1,376,4,8,72,97,99,100,101,102,111,115,6445,6450,6457,6472,6477,6501,6505,6510,99,121,59,1,1046,99,117,116,101,59,1,377,4,2,97,121,6463,6469,114,111,110,59,1,381,59,1,1047,111,116,59,1,379,4,2,114,116,6483,6497,111,87,105,100,116,104,83,112,97,99,101,59,1,8203,97,59,1,918,114,59,1,8488,112,102,59,1,8484,99,114,59,3,55349,56501,4,16,97,98,99,101,102,103,108,109,110,111,112,114,115,116,117,119,6550,6561,6568,6612,6622,6634,6645,6672,6699,6854,6870,6923,6933,6963,6974,6983,99,117,116,101,5,225,1,59,6559,1,225,114,101,118,101,59,1,259,4,6,59,69,100,105,117,121,6582,6584,6588,6591,6600,6609,1,8766,59,3,8766,819,59,1,8767,114,99,5,226,1,59,6598,1,226,116,101,5,180,1,59,6607,1,180,59,1,1072,108,105,103,5,230,1,59,6620,1,230,4,2,59,114,6628,6630,1,8289,59,3,55349,56606,114,97,118,101,5,224,1,59,6643,1,224,4,2,101,112,6651,6667,4,2,102,112,6657,6663,115,121,109,59,1,8501,104,59,1,8501,104,97,59,1,945,4,2,97,112,6678,6692,4,2,99,108,6684,6688,114,59,1,257,103,59,1,10815,5,38,1,59,6697,1,38,4,2,100,103,6705,6737,4,5,59,97,100,115,118,6717,6719,6724,6727,6734,1,8743,110,100,59,1,10837,59,1,10844,108,111,112,101,59,1,10840,59,1,10842,4,7,59,101,108,109,114,115,122,6753,6755,6758,6762,6814,6835,6848,1,8736,59,1,10660,101,59,1,8736,115,100,4,2,59,97,6770,6772,1,8737,4,8,97,98,99,100,101,102,103,104,6790,6793,6796,6799,6802,6805,6808,6811,59,1,10664,59,1,10665,59,1,10666,59,1,10667,59,1,10668,59,1,10669,59,1,10670,59,1,10671,116,4,2,59,118,6821,6823,1,8735,98,4,2,59,100,6830,6832,1,8894,59,1,10653,4,2,112,116,6841,6845,104,59,1,8738,59,1,197,97,114,114,59,1,9084,4,2,103,112,6860,6865,111,110,59,1,261,102,59,3,55349,56658,4,7,59,69,97,101,105,111,112,6886,6888,6891,6897,6900,6904,6908,1,8776,59,1,10864,99,105,114,59,1,10863,59,1,8778,100,59,1,8779,115,59,1,39,114,111,120,4,2,59,101,6917,6919,1,8776,113,59,1,8778,105,110,103,5,229,1,59,6931,1,229,4,3,99,116,121,6941,6946,6949,114,59,3,55349,56502,59,1,42,109,112,4,2,59,101,6957,6959,1,8776,113,59,1,8781,105,108,100,101,5,227,1,59,6972,1,227,109,108,5,228,1,59,6981,1,228,4,2,99,105,6989,6997,111,110,105,110,116,59,1,8755,110,116,59,1,10769,4,16,78,97,98,99,100,101,102,105,107,108,110,111,112,114,115,117,7036,7041,7119,7135,7149,7155,7219,7224,7347,7354,7463,7489,7786,7793,7814,7866,111,116,59,1,10989,4,2,99,114,7047,7094,107,4,4,99,101,112,115,7058,7064,7073,7080,111,110,103,59,1,8780,112,115,105,108,111,110,59,1,1014,114,105,109,101,59,1,8245,105,109,4,2,59,101,7088,7090,1,8765,113,59,1,8909,4,2,118,119,7100,7105,101,101,59,1,8893,101,100,4,2,59,103,7113,7115,1,8965,101,59,1,8965,114,107,4,2,59,116,7127,7129,1,9141,98,114,107,59,1,9142,4,2,111,121,7141,7146,110,103,59,1,8780,59,1,1073,113,117,111,59,1,8222,4,5,99,109,112,114,116,7167,7181,7188,7193,7199,97,117,115,4,2,59,101,7176,7178,1,8757,59,1,8757,112,116,121,118,59,1,10672,115,105,59,1,1014,110,111,117,59,1,8492,4,3,97,104,119,7207,7210,7213,59,1,946,59,1,8502,101,101,110,59,1,8812,114,59,3,55349,56607,103,4,7,99,111,115,116,117,118,119,7241,7262,7288,7305,7328,7335,7340,4,3,97,105,117,7249,7253,7258,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,4,3,100,112,116,7270,7275,7281,111,116,59,1,10752,108,117,115,59,1,10753,105,109,101,115,59,1,10754,4,2,113,116,7294,7300,99,117,112,59,1,10758,97,114,59,1,9733,114,105,97,110,103,108,101,4,2,100,117,7318,7324,111,119,110,59,1,9661,112,59,1,9651,112,108,117,115,59,1,10756,101,101,59,1,8897,101,100,103,101,59,1,8896,97,114,111,119,59,1,10509,4,3,97,107,111,7362,7436,7458,4,2,99,110,7368,7432,107,4,3,108,115,116,7377,7386,7394,111,122,101,110,103,101,59,1,10731,113,117,97,114,101,59,1,9642,114,105,97,110,103,108,101,4,4,59,100,108,114,7411,7413,7419,7425,1,9652,111,119,110,59,1,9662,101,102,116,59,1,9666,105,103,104,116,59,1,9656,107,59,1,9251,4,2,49,51,7442,7454,4,2,50,52,7448,7451,59,1,9618,59,1,9617,52,59,1,9619,99,107,59,1,9608,4,2,101,111,7469,7485,4,2,59,113,7475,7478,3,61,8421,117,105,118,59,3,8801,8421,116,59,1,8976,4,4,112,116,119,120,7499,7504,7517,7523,102,59,3,55349,56659,4,2,59,116,7510,7512,1,8869,111,109,59,1,8869,116,105,101,59,1,8904,4,12,68,72,85,86,98,100,104,109,112,116,117,118,7549,7571,7597,7619,7655,7660,7682,7708,7715,7721,7728,7750,4,4,76,82,108,114,7559,7562,7565,7568,59,1,9559,59,1,9556,59,1,9558,59,1,9555,4,5,59,68,85,100,117,7583,7585,7588,7591,7594,1,9552,59,1,9574,59,1,9577,59,1,9572,59,1,9575,4,4,76,82,108,114,7607,7610,7613,7616,59,1,9565,59,1,9562,59,1,9564,59,1,9561,4,7,59,72,76,82,104,108,114,7635,7637,7640,7643,7646,7649,7652,1,9553,59,1,9580,59,1,9571,59,1,9568,59,1,9579,59,1,9570,59,1,9567,111,120,59,1,10697,4,4,76,82,108,114,7670,7673,7676,7679,59,1,9557,59,1,9554,59,1,9488,59,1,9484,4,5,59,68,85,100,117,7694,7696,7699,7702,7705,1,9472,59,1,9573,59,1,9576,59,1,9516,59,1,9524,105,110,117,115,59,1,8863,108,117,115,59,1,8862,105,109,101,115,59,1,8864,4,4,76,82,108,114,7738,7741,7744,7747,59,1,9563,59,1,9560,59,1,9496,59,1,9492,4,7,59,72,76,82,104,108,114,7766,7768,7771,7774,7777,7780,7783,1,9474,59,1,9578,59,1,9569,59,1,9566,59,1,9532,59,1,9508,59,1,9500,114,105,109,101,59,1,8245,4,2,101,118,7799,7804,118,101,59,1,728,98,97,114,5,166,1,59,7812,1,166,4,4,99,101,105,111,7824,7829,7834,7846,114,59,3,55349,56503,109,105,59,1,8271,109,4,2,59,101,7841,7843,1,8765,59,1,8909,108,4,3,59,98,104,7855,7857,7860,1,92,59,1,10693,115,117,98,59,1,10184,4,2,108,109,7872,7885,108,4,2,59,101,7879,7881,1,8226,116,59,1,8226,112,4,3,59,69,101,7894,7896,7899,1,8782,59,1,10926,4,2,59,113,7905,7907,1,8783,59,1,8783,4,15,97,99,100,101,102,104,105,108,111,114,115,116,117,119,121,7942,8021,8075,8080,8121,8126,8157,8279,8295,8430,8446,8485,8491,8707,8726,4,3,99,112,114,7950,7956,8007,117,116,101,59,1,263,4,6,59,97,98,99,100,115,7970,7972,7977,7984,7998,8003,1,8745,110,100,59,1,10820,114,99,117,112,59,1,10825,4,2,97,117,7990,7994,112,59,1,10827,112,59,1,10823,111,116,59,1,10816,59,3,8745,65024,4,2,101,111,8013,8017,116,59,1,8257,110,59,1,711,4,4,97,101,105,117,8031,8046,8056,8061,4,2,112,114,8037,8041,115,59,1,10829,111,110,59,1,269,100,105,108,5,231,1,59,8054,1,231,114,99,59,1,265,112,115,4,2,59,115,8069,8071,1,10828,109,59,1,10832,111,116,59,1,267,4,3,100,109,110,8088,8097,8104,105,108,5,184,1,59,8095,1,184,112,116,121,118,59,1,10674,116,5,162,2,59,101,8112,8114,1,162,114,100,111,116,59,1,183,114,59,3,55349,56608,4,3,99,101,105,8134,8138,8154,121,59,1,1095,99,107,4,2,59,109,8146,8148,1,10003,97,114,107,59,1,10003,59,1,967,114,4,7,59,69,99,101,102,109,115,8174,8176,8179,8258,8261,8268,8273,1,9675,59,1,10691,4,3,59,101,108,8187,8189,8193,1,710,113,59,1,8791,101,4,2,97,100,8200,8223,114,114,111,119,4,2,108,114,8210,8216,101,102,116,59,1,8634,105,103,104,116,59,1,8635,4,5,82,83,97,99,100,8235,8238,8241,8246,8252,59,1,174,59,1,9416,115,116,59,1,8859,105,114,99,59,1,8858,97,115,104,59,1,8861,59,1,8791,110,105,110,116,59,1,10768,105,100,59,1,10991,99,105,114,59,1,10690,117,98,115,4,2,59,117,8288,8290,1,9827,105,116,59,1,9827,4,4,108,109,110,112,8305,8326,8376,8400,111,110,4,2,59,101,8313,8315,1,58,4,2,59,113,8321,8323,1,8788,59,1,8788,4,2,109,112,8332,8344,97,4,2,59,116,8339,8341,1,44,59,1,64,4,3,59,102,108,8352,8354,8358,1,8705,110,59,1,8728,101,4,2,109,120,8365,8371,101,110,116,59,1,8705,101,115,59,1,8450,4,2,103,105,8382,8395,4,2,59,100,8388,8390,1,8773,111,116,59,1,10861,110,116,59,1,8750,4,3,102,114,121,8408,8412,8417,59,3,55349,56660,111,100,59,1,8720,5,169,2,59,115,8424,8426,1,169,114,59,1,8471,4,2,97,111,8436,8441,114,114,59,1,8629,115,115,59,1,10007,4,2,99,117,8452,8457,114,59,3,55349,56504,4,2,98,112,8463,8474,4,2,59,101,8469,8471,1,10959,59,1,10961,4,2,59,101,8480,8482,1,10960,59,1,10962,100,111,116,59,1,8943,4,7,100,101,108,112,114,118,119,8507,8522,8536,8550,8600,8697,8702,97,114,114,4,2,108,114,8516,8519,59,1,10552,59,1,10549,4,2,112,115,8528,8532,114,59,1,8926,99,59,1,8927,97,114,114,4,2,59,112,8545,8547,1,8630,59,1,10557,4,6,59,98,99,100,111,115,8564,8566,8573,8587,8592,8596,1,8746,114,99,97,112,59,1,10824,4,2,97,117,8579,8583,112,59,1,10822,112,59,1,10826,111,116,59,1,8845,114,59,1,10821,59,3,8746,65024,4,4,97,108,114,118,8610,8623,8663,8672,114,114,4,2,59,109,8618,8620,1,8631,59,1,10556,121,4,3,101,118,119,8632,8651,8656,113,4,2,112,115,8639,8645,114,101,99,59,1,8926,117,99,99,59,1,8927,101,101,59,1,8910,101,100,103,101,59,1,8911,101,110,5,164,1,59,8670,1,164,101,97,114,114,111,119,4,2,108,114,8684,8690,101,102,116,59,1,8630,105,103,104,116,59,1,8631,101,101,59,1,8910,101,100,59,1,8911,4,2,99,105,8713,8721,111,110,105,110,116,59,1,8754,110,116,59,1,8753,108,99,116,121,59,1,9005,4,19,65,72,97,98,99,100,101,102,104,105,106,108,111,114,115,116,117,119,122,8773,8778,8783,8821,8839,8854,8887,8914,8930,8944,9036,9041,9058,9197,9227,9258,9281,9297,9305,114,114,59,1,8659,97,114,59,1,10597,4,4,103,108,114,115,8793,8799,8805,8809,103,101,114,59,1,8224,101,116,104,59,1,8504,114,59,1,8595,104,4,2,59,118,8816,8818,1,8208,59,1,8867,4,2,107,108,8827,8834,97,114,111,119,59,1,10511,97,99,59,1,733,4,2,97,121,8845,8851,114,111,110,59,1,271,59,1,1076,4,3,59,97,111,8862,8864,8880,1,8518,4,2,103,114,8870,8876,103,101,114,59,1,8225,114,59,1,8650,116,115,101,113,59,1,10871,4,3,103,108,109,8895,8902,8907,5,176,1,59,8900,1,176,116,97,59,1,948,112,116,121,118,59,1,10673,4,2,105,114,8920,8926,115,104,116,59,1,10623,59,3,55349,56609,97,114,4,2,108,114,8938,8941,59,1,8643,59,1,8642,4,5,97,101,103,115,118,8956,8986,8989,8996,9001,109,4,3,59,111,115,8965,8967,8983,1,8900,110,100,4,2,59,115,8975,8977,1,8900,117,105,116,59,1,9830,59,1,9830,59,1,168,97,109,109,97,59,1,989,105,110,59,1,8946,4,3,59,105,111,9009,9011,9031,1,247,100,101,5,247,2,59,111,9020,9022,1,247,110,116,105,109,101,115,59,1,8903,110,120,59,1,8903,99,121,59,1,1106,99,4,2,111,114,9048,9053,114,110,59,1,8990,111,112,59,1,8973,4,5,108,112,116,117,119,9070,9076,9081,9130,9144,108,97,114,59,1,36,102,59,3,55349,56661,4,5,59,101,109,112,115,9093,9095,9109,9116,9122,1,729,113,4,2,59,100,9102,9104,1,8784,111,116,59,1,8785,105,110,117,115,59,1,8760,108,117,115,59,1,8724,113,117,97,114,101,59,1,8865,98,108,101,98,97,114,119,101,100,103,101,59,1,8966,110,4,3,97,100,104,9153,9160,9172,114,114,111,119,59,1,8595,111,119,110,97,114,114,111,119,115,59,1,8650,97,114,112,111,111,110,4,2,108,114,9184,9190,101,102,116,59,1,8643,105,103,104,116,59,1,8642,4,2,98,99,9203,9211,107,97,114,111,119,59,1,10512,4,2,111,114,9217,9222,114,110,59,1,8991,111,112,59,1,8972,4,3,99,111,116,9235,9248,9252,4,2,114,121,9241,9245,59,3,55349,56505,59,1,1109,108,59,1,10742,114,111,107,59,1,273,4,2,100,114,9264,9269,111,116,59,1,8945,105,4,2,59,102,9276,9278,1,9663,59,1,9662,4,2,97,104,9287,9292,114,114,59,1,8693,97,114,59,1,10607,97,110,103,108,101,59,1,10662,4,2,99,105,9311,9315,121,59,1,1119,103,114,97,114,114,59,1,10239,4,18,68,97,99,100,101,102,103,108,109,110,111,112,113,114,115,116,117,120,9361,9376,9398,9439,9444,9447,9462,9495,9531,9585,9598,9614,9659,9755,9771,9792,9808,9826,4,2,68,111,9367,9372,111,116,59,1,10871,116,59,1,8785,4,2,99,115,9382,9392,117,116,101,5,233,1,59,9390,1,233,116,101,114,59,1,10862,4,4,97,105,111,121,9408,9414,9430,9436,114,111,110,59,1,283,114,4,2,59,99,9421,9423,1,8790,5,234,1,59,9428,1,234,108,111,110,59,1,8789,59,1,1101,111,116,59,1,279,59,1,8519,4,2,68,114,9453,9458,111,116,59,1,8786,59,3,55349,56610,4,3,59,114,115,9470,9472,9482,1,10906,97,118,101,5,232,1,59,9480,1,232,4,2,59,100,9488,9490,1,10902,111,116,59,1,10904,4,4,59,105,108,115,9505,9507,9515,9518,1,10905,110,116,101,114,115,59,1,9191,59,1,8467,4,2,59,100,9524,9526,1,10901,111,116,59,1,10903,4,3,97,112,115,9539,9544,9564,99,114,59,1,275,116,121,4,3,59,115,118,9554,9556,9561,1,8709,101,116,59,1,8709,59,1,8709,112,4,2,49,59,9571,9583,4,2,51,52,9577,9580,59,1,8196,59,1,8197,1,8195,4,2,103,115,9591,9594,59,1,331,112,59,1,8194,4,2,103,112,9604,9609,111,110,59,1,281,102,59,3,55349,56662,4,3,97,108,115,9622,9635,9640,114,4,2,59,115,9629,9631,1,8917,108,59,1,10723,117,115,59,1,10865,105,4,3,59,108,118,9649,9651,9656,1,949,111,110,59,1,949,59,1,1013,4,4,99,115,117,118,9669,9686,9716,9747,4,2,105,111,9675,9680,114,99,59,1,8790,108,111,110,59,1,8789,4,2,105,108,9692,9696,109,59,1,8770,97,110,116,4,2,103,108,9705,9710,116,114,59,1,10902,101,115,115,59,1,10901,4,3,97,101,105,9724,9729,9734,108,115,59,1,61,115,116,59,1,8799,118,4,2,59,68,9741,9743,1,8801,68,59,1,10872,112,97,114,115,108,59,1,10725,4,2,68,97,9761,9766,111,116,59,1,8787,114,114,59,1,10609,4,3,99,100,105,9779,9783,9788,114,59,1,8495,111,116,59,1,8784,109,59,1,8770,4,2,97,104,9798,9801,59,1,951,5,240,1,59,9806,1,240,4,2,109,114,9814,9822,108,5,235,1,59,9820,1,235,111,59,1,8364,4,3,99,105,112,9834,9838,9843,108,59,1,33,115,116,59,1,8707,4,2,101,111,9849,9859,99,116,97,116,105,111,110,59,1,8496,110,101,110,116,105,97,108,101,59,1,8519,4,12,97,99,101,102,105,106,108,110,111,112,114,115,9896,9910,9914,9921,9954,9960,9967,9989,9994,10027,10036,10164,108,108,105,110,103,100,111,116,115,101,113,59,1,8786,121,59,1,1092,109,97,108,101,59,1,9792,4,3,105,108,114,9929,9935,9950,108,105,103,59,1,64259,4,2,105,108,9941,9945,103,59,1,64256,105,103,59,1,64260,59,3,55349,56611,108,105,103,59,1,64257,108,105,103,59,3,102,106,4,3,97,108,116,9975,9979,9984,116,59,1,9837,105,103,59,1,64258,110,115,59,1,9649,111,102,59,1,402,4,2,112,114,10000,10005,102,59,3,55349,56663,4,2,97,107,10011,10016,108,108,59,1,8704,4,2,59,118,10022,10024,1,8916,59,1,10969,97,114,116,105,110,116,59,1,10765,4,2,97,111,10042,10159,4,2,99,115,10048,10155,4,6,49,50,51,52,53,55,10062,10102,10114,10135,10139,10151,4,6,50,51,52,53,54,56,10076,10083,10086,10093,10096,10099,5,189,1,59,10081,1,189,59,1,8531,5,188,1,59,10091,1,188,59,1,8533,59,1,8537,59,1,8539,4,2,51,53,10108,10111,59,1,8532,59,1,8534,4,3,52,53,56,10122,10129,10132,5,190,1,59,10127,1,190,59,1,8535,59,1,8540,53,59,1,8536,4,2,54,56,10145,10148,59,1,8538,59,1,8541,56,59,1,8542,108,59,1,8260,119,110,59,1,8994,99,114,59,3,55349,56507,4,17,69,97,98,99,100,101,102,103,105,106,108,110,111,114,115,116,118,10206,10217,10247,10254,10268,10273,10358,10363,10374,10380,10385,10406,10458,10464,10470,10497,10610,4,2,59,108,10212,10214,1,8807,59,1,10892,4,3,99,109,112,10225,10231,10244,117,116,101,59,1,501,109,97,4,2,59,100,10239,10241,1,947,59,1,989,59,1,10886,114,101,118,101,59,1,287,4,2,105,121,10260,10265,114,99,59,1,285,59,1,1075,111,116,59,1,289,4,4,59,108,113,115,10283,10285,10288,10308,1,8805,59,1,8923,4,3,59,113,115,10296,10298,10301,1,8805,59,1,8807,108,97,110,116,59,1,10878,4,4,59,99,100,108,10318,10320,10324,10345,1,10878,99,59,1,10921,111,116,4,2,59,111,10332,10334,1,10880,4,2,59,108,10340,10342,1,10882,59,1,10884,4,2,59,101,10351,10354,3,8923,65024,115,59,1,10900,114,59,3,55349,56612,4,2,59,103,10369,10371,1,8811,59,1,8921,109,101,108,59,1,8503,99,121,59,1,1107,4,4,59,69,97,106,10395,10397,10400,10403,1,8823,59,1,10898,59,1,10917,59,1,10916,4,4,69,97,101,115,10416,10419,10434,10453,59,1,8809,112,4,2,59,112,10426,10428,1,10890,114,111,120,59,1,10890,4,2,59,113,10440,10442,1,10888,4,2,59,113,10448,10450,1,10888,59,1,8809,105,109,59,1,8935,112,102,59,3,55349,56664,97,118,101,59,1,96,4,2,99,105,10476,10480,114,59,1,8458,109,4,3,59,101,108,10489,10491,10494,1,8819,59,1,10894,59,1,10896,5,62,6,59,99,100,108,113,114,10512,10514,10527,10532,10538,10545,1,62,4,2,99,105,10520,10523,59,1,10919,114,59,1,10874,111,116,59,1,8919,80,97,114,59,1,10645,117,101,115,116,59,1,10876,4,5,97,100,101,108,115,10557,10574,10579,10599,10605,4,2,112,114,10563,10570,112,114,111,120,59,1,10886,114,59,1,10616,111,116,59,1,8919,113,4,2,108,113,10586,10592,101,115,115,59,1,8923,108,101,115,115,59,1,10892,101,115,115,59,1,8823,105,109,59,1,8819,4,2,101,110,10616,10626,114,116,110,101,113,113,59,3,8809,65024,69,59,3,8809,65024,4,10,65,97,98,99,101,102,107,111,115,121,10653,10658,10713,10718,10724,10760,10765,10786,10850,10875,114,114,59,1,8660,4,4,105,108,109,114,10668,10674,10678,10684,114,115,112,59,1,8202,102,59,1,189,105,108,116,59,1,8459,4,2,100,114,10690,10695,99,121,59,1,1098,4,3,59,99,119,10703,10705,10710,1,8596,105,114,59,1,10568,59,1,8621,97,114,59,1,8463,105,114,99,59,1,293,4,3,97,108,114,10732,10748,10754,114,116,115,4,2,59,117,10741,10743,1,9829,105,116,59,1,9829,108,105,112,59,1,8230,99,111,110,59,1,8889,114,59,3,55349,56613,115,4,2,101,119,10772,10779,97,114,111,119,59,1,10533,97,114,111,119,59,1,10534,4,5,97,109,111,112,114,10798,10803,10809,10839,10844,114,114,59,1,8703,116,104,116,59,1,8763,107,4,2,108,114,10816,10827,101,102,116,97,114,114,111,119,59,1,8617,105,103,104,116,97,114,114,111,119,59,1,8618,102,59,3,55349,56665,98,97,114,59,1,8213,4,3,99,108,116,10858,10863,10869,114,59,3,55349,56509,97,115,104,59,1,8463,114,111,107,59,1,295,4,2,98,112,10881,10887,117,108,108,59,1,8259,104,101,110,59,1,8208,4,15,97,99,101,102,103,105,106,109,110,111,112,113,115,116,117,10925,10936,10958,10977,10990,11001,11039,11045,11101,11192,11220,11226,11237,11285,11299,99,117,116,101,5,237,1,59,10934,1,237,4,3,59,105,121,10944,10946,10955,1,8291,114,99,5,238,1,59,10953,1,238,59,1,1080,4,2,99,120,10964,10968,121,59,1,1077,99,108,5,161,1,59,10975,1,161,4,2,102,114,10983,10986,59,1,8660,59,3,55349,56614,114,97,118,101,5,236,1,59,10999,1,236,4,4,59,105,110,111,11011,11013,11028,11034,1,8520,4,2,105,110,11019,11024,110,116,59,1,10764,116,59,1,8749,102,105,110,59,1,10716,116,97,59,1,8489,108,105,103,59,1,307,4,3,97,111,112,11053,11092,11096,4,3,99,103,116,11061,11065,11088,114,59,1,299,4,3,101,108,112,11073,11076,11082,59,1,8465,105,110,101,59,1,8464,97,114,116,59,1,8465,104,59,1,305,102,59,1,8887,101,100,59,1,437,4,5,59,99,102,111,116,11113,11115,11121,11136,11142,1,8712,97,114,101,59,1,8453,105,110,4,2,59,116,11129,11131,1,8734,105,101,59,1,10717,100,111,116,59,1,305,4,5,59,99,101,108,112,11154,11156,11161,11179,11186,1,8747,97,108,59,1,8890,4,2,103,114,11167,11173,101,114,115,59,1,8484,99,97,108,59,1,8890,97,114,104,107,59,1,10775,114,111,100,59,1,10812,4,4,99,103,112,116,11202,11206,11211,11216,121,59,1,1105,111,110,59,1,303,102,59,3,55349,56666,97,59,1,953,114,111,100,59,1,10812,117,101,115,116,5,191,1,59,11235,1,191,4,2,99,105,11243,11248,114,59,3,55349,56510,110,4,5,59,69,100,115,118,11261,11263,11266,11271,11282,1,8712,59,1,8953,111,116,59,1,8949,4,2,59,118,11277,11279,1,8948,59,1,8947,59,1,8712,4,2,59,105,11291,11293,1,8290,108,100,101,59,1,297,4,2,107,109,11305,11310,99,121,59,1,1110,108,5,239,1,59,11316,1,239,4,6,99,102,109,111,115,117,11332,11346,11351,11357,11363,11380,4,2,105,121,11338,11343,114,99,59,1,309,59,1,1081,114,59,3,55349,56615,97,116,104,59,1,567,112,102,59,3,55349,56667,4,2,99,101,11369,11374,114,59,3,55349,56511,114,99,121,59,1,1112,107,99,121,59,1,1108,4,8,97,99,102,103,104,106,111,115,11404,11418,11433,11438,11445,11450,11455,11461,112,112,97,4,2,59,118,11413,11415,1,954,59,1,1008,4,2,101,121,11424,11430,100,105,108,59,1,311,59,1,1082,114,59,3,55349,56616,114,101,101,110,59,1,312,99,121,59,1,1093,99,121,59,1,1116,112,102,59,3,55349,56668,99,114,59,3,55349,56512,4,23,65,66,69,72,97,98,99,100,101,102,103,104,106,108,109,110,111,112,114,115,116,117,118,11515,11538,11544,11555,11560,11721,11780,11818,11868,12136,12160,12171,12203,12208,12246,12275,12327,12509,12523,12569,12641,12732,12752,4,3,97,114,116,11523,11528,11532,114,114,59,1,8666,114,59,1,8656,97,105,108,59,1,10523,97,114,114,59,1,10510,4,2,59,103,11550,11552,1,8806,59,1,10891,97,114,59,1,10594,4,9,99,101,103,109,110,112,113,114,116,11580,11586,11594,11600,11606,11624,11627,11636,11694,117,116,101,59,1,314,109,112,116,121,118,59,1,10676,114,97,110,59,1,8466,98,100,97,59,1,955,103,4,3,59,100,108,11615,11617,11620,1,10216,59,1,10641,101,59,1,10216,59,1,10885,117,111,5,171,1,59,11634,1,171,114,4,8,59,98,102,104,108,112,115,116,11655,11657,11669,11673,11677,11681,11685,11690,1,8592,4,2,59,102,11663,11665,1,8676,115,59,1,10527,115,59,1,10525,107,59,1,8617,112,59,1,8619,108,59,1,10553,105,109,59,1,10611,108,59,1,8610,4,3,59,97,101,11702,11704,11709,1,10923,105,108,59,1,10521,4,2,59,115,11715,11717,1,10925,59,3,10925,65024,4,3,97,98,114,11729,11734,11739,114,114,59,1,10508,114,107,59,1,10098,4,2,97,107,11745,11758,99,4,2,101,107,11752,11755,59,1,123,59,1,91,4,2,101,115,11764,11767,59,1,10635,108,4,2,100,117,11774,11777,59,1,10639,59,1,10637,4,4,97,101,117,121,11790,11796,11811,11815,114,111,110,59,1,318,4,2,100,105,11802,11807,105,108,59,1,316,108,59,1,8968,98,59,1,123,59,1,1083,4,4,99,113,114,115,11828,11832,11845,11864,97,59,1,10550,117,111,4,2,59,114,11840,11842,1,8220,59,1,8222,4,2,100,117,11851,11857,104,97,114,59,1,10599,115,104,97,114,59,1,10571,104,59,1,8626,4,5,59,102,103,113,115,11880,11882,12008,12011,12031,1,8804,116,4,5,97,104,108,114,116,11895,11913,11935,11947,11996,114,114,111,119,4,2,59,116,11905,11907,1,8592,97,105,108,59,1,8610,97,114,112,111,111,110,4,2,100,117,11925,11931,111,119,110,59,1,8637,112,59,1,8636,101,102,116,97,114,114,111,119,115,59,1,8647,105,103,104,116,4,3,97,104,115,11959,11974,11984,114,114,111,119,4,2,59,115,11969,11971,1,8596,59,1,8646,97,114,112,111,111,110,115,59,1,8651,113,117,105,103,97,114,114,111,119,59,1,8621,104,114,101,101,116,105,109,101,115,59,1,8907,59,1,8922,4,3,59,113,115,12019,12021,12024,1,8804,59,1,8806,108,97,110,116,59,1,10877,4,5,59,99,100,103,115,12043,12045,12049,12070,12083,1,10877,99,59,1,10920,111,116,4,2,59,111,12057,12059,1,10879,4,2,59,114,12065,12067,1,10881,59,1,10883,4,2,59,101,12076,12079,3,8922,65024,115,59,1,10899,4,5,97,100,101,103,115,12095,12103,12108,12126,12131,112,112,114,111,120,59,1,10885,111,116,59,1,8918,113,4,2,103,113,12115,12120,116,114,59,1,8922,103,116,114,59,1,10891,116,114,59,1,8822,105,109,59,1,8818,4,3,105,108,114,12144,12150,12156,115,104,116,59,1,10620,111,111,114,59,1,8970,59,3,55349,56617,4,2,59,69,12166,12168,1,8822,59,1,10897,4,2,97,98,12177,12198,114,4,2,100,117,12184,12187,59,1,8637,4,2,59,108,12193,12195,1,8636,59,1,10602,108,107,59,1,9604,99,121,59,1,1113,4,5,59,97,99,104,116,12220,12222,12227,12235,12241,1,8810,114,114,59,1,8647,111,114,110,101,114,59,1,8990,97,114,100,59,1,10603,114,105,59,1,9722,4,2,105,111,12252,12258,100,111,116,59,1,320,117,115,116,4,2,59,97,12267,12269,1,9136,99,104,101,59,1,9136,4,4,69,97,101,115,12285,12288,12303,12322,59,1,8808,112,4,2,59,112,12295,12297,1,10889,114,111,120,59,1,10889,4,2,59,113,12309,12311,1,10887,4,2,59,113,12317,12319,1,10887,59,1,8808,105,109,59,1,8934,4,8,97,98,110,111,112,116,119,122,12345,12359,12364,12421,12446,12467,12474,12490,4,2,110,114,12351,12355,103,59,1,10220,114,59,1,8701,114,107,59,1,10214,103,4,3,108,109,114,12373,12401,12409,101,102,116,4,2,97,114,12382,12389,114,114,111,119,59,1,10229,105,103,104,116,97,114,114,111,119,59,1,10231,97,112,115,116,111,59,1,10236,105,103,104,116,97,114,114,111,119,59,1,10230,112,97,114,114,111,119,4,2,108,114,12433,12439,101,102,116,59,1,8619,105,103,104,116,59,1,8620,4,3,97,102,108,12454,12458,12462,114,59,1,10629,59,3,55349,56669,117,115,59,1,10797,105,109,101,115,59,1,10804,4,2,97,98,12480,12485,115,116,59,1,8727,97,114,59,1,95,4,3,59,101,102,12498,12500,12506,1,9674,110,103,101,59,1,9674,59,1,10731,97,114,4,2,59,108,12517,12519,1,40,116,59,1,10643,4,5,97,99,104,109,116,12535,12540,12548,12561,12564,114,114,59,1,8646,111,114,110,101,114,59,1,8991,97,114,4,2,59,100,12556,12558,1,8651,59,1,10605,59,1,8206,114,105,59,1,8895,4,6,97,99,104,105,113,116,12583,12589,12594,12597,12614,12635,113,117,111,59,1,8249,114,59,3,55349,56513,59,1,8624,109,4,3,59,101,103,12606,12608,12611,1,8818,59,1,10893,59,1,10895,4,2,98,117,12620,12623,59,1,91,111,4,2,59,114,12630,12632,1,8216,59,1,8218,114,111,107,59,1,322,5,60,8,59,99,100,104,105,108,113,114,12660,12662,12675,12680,12686,12692,12698,12705,1,60,4,2,99,105,12668,12671,59,1,10918,114,59,1,10873,111,116,59,1,8918,114,101,101,59,1,8907,109,101,115,59,1,8905,97,114,114,59,1,10614,117,101,115,116,59,1,10875,4,2,80,105,12711,12716,97,114,59,1,10646,4,3,59,101,102,12724,12726,12729,1,9667,59,1,8884,59,1,9666,114,4,2,100,117,12739,12746,115,104,97,114,59,1,10570,104,97,114,59,1,10598,4,2,101,110,12758,12768,114,116,110,101,113,113,59,3,8808,65024,69,59,3,8808,65024,4,14,68,97,99,100,101,102,104,105,108,110,111,112,115,117,12803,12809,12893,12908,12914,12928,12933,12937,13011,13025,13032,13049,13052,13069,68,111,116,59,1,8762,4,4,99,108,112,114,12819,12827,12849,12887,114,5,175,1,59,12825,1,175,4,2,101,116,12833,12836,59,1,9794,4,2,59,101,12842,12844,1,10016,115,101,59,1,10016,4,2,59,115,12855,12857,1,8614,116,111,4,4,59,100,108,117,12869,12871,12877,12883,1,8614,111,119,110,59,1,8615,101,102,116,59,1,8612,112,59,1,8613,107,101,114,59,1,9646,4,2,111,121,12899,12905,109,109,97,59,1,10793,59,1,1084,97,115,104,59,1,8212,97,115,117,114,101,100,97,110,103,108,101,59,1,8737,114,59,3,55349,56618,111,59,1,8487,4,3,99,100,110,12945,12954,12985,114,111,5,181,1,59,12952,1,181,4,4,59,97,99,100,12964,12966,12971,12976,1,8739,115,116,59,1,42,105,114,59,1,10992,111,116,5,183,1,59,12983,1,183,117,115,4,3,59,98,100,12995,12997,13000,1,8722,59,1,8863,4,2,59,117,13006,13008,1,8760,59,1,10794,4,2,99,100,13017,13021,112,59,1,10971,114,59,1,8230,112,108,117,115,59,1,8723,4,2,100,112,13038,13044,101,108,115,59,1,8871,102,59,3,55349,56670,59,1,8723,4,2,99,116,13058,13063,114,59,3,55349,56514,112,111,115,59,1,8766,4,3,59,108,109,13077,13079,13087,1,956,116,105,109,97,112,59,1,8888,97,112,59,1,8888,4,24,71,76,82,86,97,98,99,100,101,102,103,104,105,106,108,109,111,112,114,115,116,117,118,119,13142,13165,13217,13229,13247,13330,13359,13414,13420,13508,13513,13579,13602,13626,13631,13762,13767,13855,13936,13995,14214,14285,14312,14432,4,2,103,116,13148,13152,59,3,8921,824,4,2,59,118,13158,13161,3,8811,8402,59,3,8811,824,4,3,101,108,116,13173,13200,13204,102,116,4,2,97,114,13181,13188,114,114,111,119,59,1,8653,105,103,104,116,97,114,114,111,119,59,1,8654,59,3,8920,824,4,2,59,118,13210,13213,3,8810,8402,59,3,8810,824,105,103,104,116,97,114,114,111,119,59,1,8655,4,2,68,100,13235,13241,97,115,104,59,1,8879,97,115,104,59,1,8878,4,5,98,99,110,112,116,13259,13264,13270,13275,13308,108,97,59,1,8711,117,116,101,59,1,324,103,59,3,8736,8402,4,5,59,69,105,111,112,13287,13289,13293,13298,13302,1,8777,59,3,10864,824,100,59,3,8779,824,115,59,1,329,114,111,120,59,1,8777,117,114,4,2,59,97,13316,13318,1,9838,108,4,2,59,115,13325,13327,1,9838,59,1,8469,4,2,115,117,13336,13344,112,5,160,1,59,13342,1,160,109,112,4,2,59,101,13352,13355,3,8782,824,59,3,8783,824,4,5,97,101,111,117,121,13371,13385,13391,13407,13411,4,2,112,114,13377,13380,59,1,10819,111,110,59,1,328,100,105,108,59,1,326,110,103,4,2,59,100,13399,13401,1,8775,111,116,59,3,10861,824,112,59,1,10818,59,1,1085,97,115,104,59,1,8211,4,7,59,65,97,100,113,115,120,13436,13438,13443,13466,13472,13478,13494,1,8800,114,114,59,1,8663,114,4,2,104,114,13450,13454,107,59,1,10532,4,2,59,111,13460,13462,1,8599,119,59,1,8599,111,116,59,3,8784,824,117,105,118,59,1,8802,4,2,101,105,13484,13489,97,114,59,1,10536,109,59,3,8770,824,105,115,116,4,2,59,115,13503,13505,1,8708,59,1,8708,114,59,3,55349,56619,4,4,69,101,115,116,13523,13527,13563,13568,59,3,8807,824,4,3,59,113,115,13535,13537,13559,1,8817,4,3,59,113,115,13545,13547,13551,1,8817,59,3,8807,824,108,97,110,116,59,3,10878,824,59,3,10878,824,105,109,59,1,8821,4,2,59,114,13574,13576,1,8815,59,1,8815,4,3,65,97,112,13587,13592,13597,114,114,59,1,8654,114,114,59,1,8622,97,114,59,1,10994,4,3,59,115,118,13610,13612,13623,1,8715,4,2,59,100,13618,13620,1,8956,59,1,8954,59,1,8715,99,121,59,1,1114,4,7,65,69,97,100,101,115,116,13647,13652,13656,13661,13665,13737,13742,114,114,59,1,8653,59,3,8806,824,114,114,59,1,8602,114,59,1,8229,4,4,59,102,113,115,13675,13677,13703,13725,1,8816,116,4,2,97,114,13684,13691,114,114,111,119,59,1,8602,105,103,104,116,97,114,114,111,119,59,1,8622,4,3,59,113,115,13711,13713,13717,1,8816,59,3,8806,824,108,97,110,116,59,3,10877,824,4,2,59,115,13731,13734,3,10877,824,59,1,8814,105,109,59,1,8820,4,2,59,114,13748,13750,1,8814,105,4,2,59,101,13757,13759,1,8938,59,1,8940,105,100,59,1,8740,4,2,112,116,13773,13778,102,59,3,55349,56671,5,172,3,59,105,110,13787,13789,13829,1,172,110,4,4,59,69,100,118,13800,13802,13806,13812,1,8713,59,3,8953,824,111,116,59,3,8949,824,4,3,97,98,99,13820,13823,13826,59,1,8713,59,1,8951,59,1,8950,105,4,2,59,118,13836,13838,1,8716,4,3,97,98,99,13846,13849,13852,59,1,8716,59,1,8958,59,1,8957,4,3,97,111,114,13863,13892,13899,114,4,4,59,97,115,116,13874,13876,13883,13888,1,8742,108,108,101,108,59,1,8742,108,59,3,11005,8421,59,3,8706,824,108,105,110,116,59,1,10772,4,3,59,99,101,13907,13909,13914,1,8832,117,101,59,1,8928,4,2,59,99,13920,13923,3,10927,824,4,2,59,101,13929,13931,1,8832,113,59,3,10927,824,4,4,65,97,105,116,13946,13951,13971,13982,114,114,59,1,8655,114,114,4,3,59,99,119,13961,13963,13967,1,8603,59,3,10547,824,59,3,8605,824,103,104,116,97,114,114,111,119,59,1,8603,114,105,4,2,59,101,13990,13992,1,8939,59,1,8941,4,7,99,104,105,109,112,113,117,14011,14036,14060,14080,14085,14090,14106,4,4,59,99,101,114,14021,14023,14028,14032,1,8833,117,101,59,1,8929,59,3,10928,824,59,3,55349,56515,111,114,116,4,2,109,112,14045,14050,105,100,59,1,8740,97,114,97,108,108,101,108,59,1,8742,109,4,2,59,101,14067,14069,1,8769,4,2,59,113,14075,14077,1,8772,59,1,8772,105,100,59,1,8740,97,114,59,1,8742,115,117,4,2,98,112,14098,14102,101,59,1,8930,101,59,1,8931,4,3,98,99,112,14114,14157,14171,4,4,59,69,101,115,14124,14126,14130,14133,1,8836,59,3,10949,824,59,1,8840,101,116,4,2,59,101,14141,14144,3,8834,8402,113,4,2,59,113,14151,14153,1,8840,59,3,10949,824,99,4,2,59,101,14164,14166,1,8833,113,59,3,10928,824,4,4,59,69,101,115,14181,14183,14187,14190,1,8837,59,3,10950,824,59,1,8841,101,116,4,2,59,101,14198,14201,3,8835,8402,113,4,2,59,113,14208,14210,1,8841,59,3,10950,824,4,4,103,105,108,114,14224,14228,14238,14242,108,59,1,8825,108,100,101,5,241,1,59,14236,1,241,103,59,1,8824,105,97,110,103,108,101,4,2,108,114,14254,14269,101,102,116,4,2,59,101,14263,14265,1,8938,113,59,1,8940,105,103,104,116,4,2,59,101,14279,14281,1,8939,113,59,1,8941,4,2,59,109,14291,14293,1,957,4,3,59,101,115,14301,14303,14308,1,35,114,111,59,1,8470,112,59,1,8199,4,9,68,72,97,100,103,105,108,114,115,14332,14338,14344,14349,14355,14369,14376,14408,14426,97,115,104,59,1,8877,97,114,114,59,1,10500,112,59,3,8781,8402,97,115,104,59,1,8876,4,2,101,116,14361,14365,59,3,8805,8402,59,3,62,8402,110,102,105,110,59,1,10718,4,3,65,101,116,14384,14389,14393,114,114,59,1,10498,59,3,8804,8402,4,2,59,114,14399,14402,3,60,8402,105,101,59,3,8884,8402,4,2,65,116,14414,14419,114,114,59,1,10499,114,105,101,59,3,8885,8402,105,109,59,3,8764,8402,4,3,65,97,110,14440,14445,14468,114,114,59,1,8662,114,4,2,104,114,14452,14456,107,59,1,10531,4,2,59,111,14462,14464,1,8598,119,59,1,8598,101,97,114,59,1,10535,4,18,83,97,99,100,101,102,103,104,105,108,109,111,112,114,115,116,117,118,14512,14515,14535,14560,14597,14603,14618,14643,14657,14662,14701,14741,14747,14769,14851,14877,14907,14916,59,1,9416,4,2,99,115,14521,14531,117,116,101,5,243,1,59,14529,1,243,116,59,1,8859,4,2,105,121,14541,14557,114,4,2,59,99,14548,14550,1,8858,5,244,1,59,14555,1,244,59,1,1086,4,5,97,98,105,111,115,14572,14577,14583,14587,14591,115,104,59,1,8861,108,97,99,59,1,337,118,59,1,10808,116,59,1,8857,111,108,100,59,1,10684,108,105,103,59,1,339,4,2,99,114,14609,14614,105,114,59,1,10687,59,3,55349,56620,4,3,111,114,116,14626,14630,14640,110,59,1,731,97,118,101,5,242,1,59,14638,1,242,59,1,10689,4,2,98,109,14649,14654,97,114,59,1,10677,59,1,937,110,116,59,1,8750,4,4,97,99,105,116,14672,14677,14693,14698,114,114,59,1,8634,4,2,105,114,14683,14687,114,59,1,10686,111,115,115,59,1,10683,110,101,59,1,8254,59,1,10688,4,3,97,101,105,14709,14714,14719,99,114,59,1,333,103,97,59,1,969,4,3,99,100,110,14727,14733,14736,114,111,110,59,1,959,59,1,10678,117,115,59,1,8854,112,102,59,3,55349,56672,4,3,97,101,108,14755,14759,14764,114,59,1,10679,114,112,59,1,10681,117,115,59,1,8853,4,7,59,97,100,105,111,115,118,14785,14787,14792,14831,14837,14841,14848,1,8744,114,114,59,1,8635,4,4,59,101,102,109,14802,14804,14817,14824,1,10845,114,4,2,59,111,14811,14813,1,8500,102,59,1,8500,5,170,1,59,14822,1,170,5,186,1,59,14829,1,186,103,111,102,59,1,8886,114,59,1,10838,108,111,112,101,59,1,10839,59,1,10843,4,3,99,108,111,14859,14863,14873,114,59,1,8500,97,115,104,5,248,1,59,14871,1,248,108,59,1,8856,105,4,2,108,109,14884,14893,100,101,5,245,1,59,14891,1,245,101,115,4,2,59,97,14901,14903,1,8855,115,59,1,10806,109,108,5,246,1,59,14914,1,246,98,97,114,59,1,9021,4,12,97,99,101,102,104,105,108,109,111,114,115,117,14948,14992,14996,15033,15038,15068,15090,15189,15192,15222,15427,15441,114,4,4,59,97,115,116,14959,14961,14976,14989,1,8741,5,182,2,59,108,14968,14970,1,182,108,101,108,59,1,8741,4,2,105,108,14982,14986,109,59,1,10995,59,1,11005,59,1,8706,121,59,1,1087,114,4,5,99,105,109,112,116,15009,15014,15019,15024,15027,110,116,59,1,37,111,100,59,1,46,105,108,59,1,8240,59,1,8869,101,110,107,59,1,8241,114,59,3,55349,56621,4,3,105,109,111,15046,15057,15063,4,2,59,118,15052,15054,1,966,59,1,981,109,97,116,59,1,8499,110,101,59,1,9742,4,3,59,116,118,15076,15078,15087,1,960,99,104,102,111,114,107,59,1,8916,59,1,982,4,2,97,117,15096,15119,110,4,2,99,107,15103,15115,107,4,2,59,104,15110,15112,1,8463,59,1,8462,118,59,1,8463,115,4,9,59,97,98,99,100,101,109,115,116,15140,15142,15148,15151,15156,15168,15171,15179,15184,1,43,99,105,114,59,1,10787,59,1,8862,105,114,59,1,10786,4,2,111,117,15162,15165,59,1,8724,59,1,10789,59,1,10866,110,5,177,1,59,15177,1,177,105,109,59,1,10790,119,111,59,1,10791,59,1,177,4,3,105,112,117,15200,15208,15213,110,116,105,110,116,59,1,10773,102,59,3,55349,56673,110,100,5,163,1,59,15220,1,163,4,10,59,69,97,99,101,105,110,111,115,117,15244,15246,15249,15253,15258,15334,15347,15367,15416,15421,1,8826,59,1,10931,112,59,1,10935,117,101,59,1,8828,4,2,59,99,15264,15266,1,10927,4,6,59,97,99,101,110,115,15280,15282,15290,15299,15303,15329,1,8826,112,112,114,111,120,59,1,10935,117,114,108,121,101,113,59,1,8828,113,59,1,10927,4,3,97,101,115,15311,15319,15324,112,112,114,111,120,59,1,10937,113,113,59,1,10933,105,109,59,1,8936,105,109,59,1,8830,109,101,4,2,59,115,15342,15344,1,8242,59,1,8473,4,3,69,97,115,15355,15358,15362,59,1,10933,112,59,1,10937,105,109,59,1,8936,4,3,100,102,112,15375,15378,15404,59,1,8719,4,3,97,108,115,15386,15392,15398,108,97,114,59,1,9006,105,110,101,59,1,8978,117,114,102,59,1,8979,4,2,59,116,15410,15412,1,8733,111,59,1,8733,105,109,59,1,8830,114,101,108,59,1,8880,4,2,99,105,15433,15438,114,59,3,55349,56517,59,1,968,110,99,115,112,59,1,8200,4,6,102,105,111,112,115,117,15462,15467,15472,15478,15485,15491,114,59,3,55349,56622,110,116,59,1,10764,112,102,59,3,55349,56674,114,105,109,101,59,1,8279,99,114,59,3,55349,56518,4,3,97,101,111,15499,15520,15534,116,4,2,101,105,15506,15515,114,110,105,111,110,115,59,1,8461,110,116,59,1,10774,115,116,4,2,59,101,15528,15530,1,63,113,59,1,8799,116,5,34,1,59,15540,1,34,4,21,65,66,72,97,98,99,100,101,102,104,105,108,109,110,111,112,114,115,116,117,120,15586,15609,15615,15620,15796,15855,15893,15931,15977,16001,16039,16183,16204,16222,16228,16285,16312,16318,16363,16408,16416,4,3,97,114,116,15594,15599,15603,114,114,59,1,8667,114,59,1,8658,97,105,108,59,1,10524,97,114,114,59,1,10511,97,114,59,1,10596,4,7,99,100,101,110,113,114,116,15636,15651,15656,15664,15687,15696,15770,4,2,101,117,15642,15646,59,3,8765,817,116,101,59,1,341,105,99,59,1,8730,109,112,116,121,118,59,1,10675,103,4,4,59,100,101,108,15675,15677,15680,15683,1,10217,59,1,10642,59,1,10661,101,59,1,10217,117,111,5,187,1,59,15694,1,187,114,4,11,59,97,98,99,102,104,108,112,115,116,119,15721,15723,15727,15739,15742,15746,15750,15754,15758,15763,15767,1,8594,112,59,1,10613,4,2,59,102,15733,15735,1,8677,115,59,1,10528,59,1,10547,115,59,1,10526,107,59,1,8618,112,59,1,8620,108,59,1,10565,105,109,59,1,10612,108,59,1,8611,59,1,8605,4,2,97,105,15776,15781,105,108,59,1,10522,111,4,2,59,110,15788,15790,1,8758,97,108,115,59,1,8474,4,3,97,98,114,15804,15809,15814,114,114,59,1,10509,114,107,59,1,10099,4,2,97,107,15820,15833,99,4,2,101,107,15827,15830,59,1,125,59,1,93,4,2,101,115,15839,15842,59,1,10636,108,4,2,100,117,15849,15852,59,1,10638,59,1,10640,4,4,97,101,117,121,15865,15871,15886,15890,114,111,110,59,1,345,4,2,100,105,15877,15882,105,108,59,1,343,108,59,1,8969,98,59,1,125,59,1,1088,4,4,99,108,113,115,15903,15907,15914,15927,97,59,1,10551,100,104,97,114,59,1,10601,117,111,4,2,59,114,15922,15924,1,8221,59,1,8221,104,59,1,8627,4,3,97,99,103,15939,15966,15970,108,4,4,59,105,112,115,15950,15952,15957,15963,1,8476,110,101,59,1,8475,97,114,116,59,1,8476,59,1,8477,116,59,1,9645,5,174,1,59,15975,1,174,4,3,105,108,114,15985,15991,15997,115,104,116,59,1,10621,111,111,114,59,1,8971,59,3,55349,56623,4,2,97,111,16007,16028,114,4,2,100,117,16014,16017,59,1,8641,4,2,59,108,16023,16025,1,8640,59,1,10604,4,2,59,118,16034,16036,1,961,59,1,1009,4,3,103,110,115,16047,16167,16171,104,116,4,6,97,104,108,114,115,116,16063,16081,16103,16130,16143,16155,114,114,111,119,4,2,59,116,16073,16075,1,8594,97,105,108,59,1,8611,97,114,112,111,111,110,4,2,100,117,16093,16099,111,119,110,59,1,8641,112,59,1,8640,101,102,116,4,2,97,104,16112,16120,114,114,111,119,115,59,1,8644,97,114,112,111,111,110,115,59,1,8652,105,103,104,116,97,114,114,111,119,115,59,1,8649,113,117,105,103,97,114,114,111,119,59,1,8605,104,114,101,101,116,105,109,101,115,59,1,8908,103,59,1,730,105,110,103,100,111,116,115,101,113,59,1,8787,4,3,97,104,109,16191,16196,16201,114,114,59,1,8644,97,114,59,1,8652,59,1,8207,111,117,115,116,4,2,59,97,16214,16216,1,9137,99,104,101,59,1,9137,109,105,100,59,1,10990,4,4,97,98,112,116,16238,16252,16257,16278,4,2,110,114,16244,16248,103,59,1,10221,114,59,1,8702,114,107,59,1,10215,4,3,97,102,108,16265,16269,16273,114,59,1,10630,59,3,55349,56675,117,115,59,1,10798,105,109,101,115,59,1,10805,4,2,97,112,16291,16304,114,4,2,59,103,16298,16300,1,41,116,59,1,10644,111,108,105,110,116,59,1,10770,97,114,114,59,1,8649,4,4,97,99,104,113,16328,16334,16339,16342,113,117,111,59,1,8250,114,59,3,55349,56519,59,1,8625,4,2,98,117,16348,16351,59,1,93,111,4,2,59,114,16358,16360,1,8217,59,1,8217,4,3,104,105,114,16371,16377,16383,114,101,101,59,1,8908,109,101,115,59,1,8906,105,4,4,59,101,102,108,16394,16396,16399,16402,1,9657,59,1,8885,59,1,9656,116,114,105,59,1,10702,108,117,104,97,114,59,1,10600,59,1,8478,4,19,97,98,99,100,101,102,104,105,108,109,111,112,113,114,115,116,117,119,122,16459,16466,16472,16572,16590,16672,16687,16746,16844,16850,16924,16963,16988,17115,17121,17154,17206,17614,17656,99,117,116,101,59,1,347,113,117,111,59,1,8218,4,10,59,69,97,99,101,105,110,112,115,121,16494,16496,16499,16513,16518,16531,16536,16556,16564,16569,1,8827,59,1,10932,4,2,112,114,16505,16508,59,1,10936,111,110,59,1,353,117,101,59,1,8829,4,2,59,100,16524,16526,1,10928,105,108,59,1,351,114,99,59,1,349,4,3,69,97,115,16544,16547,16551,59,1,10934,112,59,1,10938,105,109,59,1,8937,111,108,105,110,116,59,1,10771,105,109,59,1,8831,59,1,1089,111,116,4,3,59,98,101,16582,16584,16587,1,8901,59,1,8865,59,1,10854,4,7,65,97,99,109,115,116,120,16606,16611,16634,16642,16646,16652,16668,114,114,59,1,8664,114,4,2,104,114,16618,16622,107,59,1,10533,4,2,59,111,16628,16630,1,8600,119,59,1,8600,116,5,167,1,59,16640,1,167,105,59,1,59,119,97,114,59,1,10537,109,4,2,105,110,16659,16665,110,117,115,59,1,8726,59,1,8726,116,59,1,10038,114,4,2,59,111,16679,16682,3,55349,56624,119,110,59,1,8994,4,4,97,99,111,121,16697,16702,16716,16739,114,112,59,1,9839,4,2,104,121,16708,16713,99,121,59,1,1097,59,1,1096,114,116,4,2,109,112,16724,16729,105,100,59,1,8739,97,114,97,108,108,101,108,59,1,8741,5,173,1,59,16744,1,173,4,2,103,109,16752,16770,109,97,4,3,59,102,118,16762,16764,16767,1,963,59,1,962,59,1,962,4,8,59,100,101,103,108,110,112,114,16788,16790,16795,16806,16817,16828,16832,16838,1,8764,111,116,59,1,10858,4,2,59,113,16801,16803,1,8771,59,1,8771,4,2,59,69,16812,16814,1,10910,59,1,10912,4,2,59,69,16823,16825,1,10909,59,1,10911,101,59,1,8774,108,117,115,59,1,10788,97,114,114,59,1,10610,97,114,114,59,1,8592,4,4,97,101,105,116,16860,16883,16891,16904,4,2,108,115,16866,16878,108,115,101,116,109,105,110,117,115,59,1,8726,104,112,59,1,10803,112,97,114,115,108,59,1,10724,4,2,100,108,16897,16900,59,1,8739,101,59,1,8995,4,2,59,101,16910,16912,1,10922,4,2,59,115,16918,16920,1,10924,59,3,10924,65024,4,3,102,108,112,16932,16938,16958,116,99,121,59,1,1100,4,2,59,98,16944,16946,1,47,4,2,59,97,16952,16954,1,10692,114,59,1,9023,102,59,3,55349,56676,97,4,2,100,114,16970,16985,101,115,4,2,59,117,16978,16980,1,9824,105,116,59,1,9824,59,1,8741,4,3,99,115,117,16996,17028,17089,4,2,97,117,17002,17015,112,4,2,59,115,17009,17011,1,8851,59,3,8851,65024,112,4,2,59,115,17022,17024,1,8852,59,3,8852,65024,117,4,2,98,112,17035,17062,4,3,59,101,115,17043,17045,17048,1,8847,59,1,8849,101,116,4,2,59,101,17056,17058,1,8847,113,59,1,8849,4,3,59,101,115,17070,17072,17075,1,8848,59,1,8850,101,116,4,2,59,101,17083,17085,1,8848,113,59,1,8850,4,3,59,97,102,17097,17099,17112,1,9633,114,4,2,101,102,17106,17109,59,1,9633,59,1,9642,59,1,9642,97,114,114,59,1,8594,4,4,99,101,109,116,17131,17136,17142,17148,114,59,3,55349,56520,116,109,110,59,1,8726,105,108,101,59,1,8995,97,114,102,59,1,8902,4,2,97,114,17160,17172,114,4,2,59,102,17167,17169,1,9734,59,1,9733,4,2,97,110,17178,17202,105,103,104,116,4,2,101,112,17188,17197,112,115,105,108,111,110,59,1,1013,104,105,59,1,981,115,59,1,175,4,5,98,99,109,110,112,17218,17351,17420,17423,17427,4,9,59,69,100,101,109,110,112,114,115,17238,17240,17243,17248,17261,17267,17279,17285,17291,1,8834,59,1,10949,111,116,59,1,10941,4,2,59,100,17254,17256,1,8838,111,116,59,1,10947,117,108,116,59,1,10945,4,2,69,101,17273,17276,59,1,10955,59,1,8842,108,117,115,59,1,10943,97,114,114,59,1,10617,4,3,101,105,117,17299,17335,17339,116,4,3,59,101,110,17308,17310,17322,1,8834,113,4,2,59,113,17317,17319,1,8838,59,1,10949,101,113,4,2,59,113,17330,17332,1,8842,59,1,10955,109,59,1,10951,4,2,98,112,17345,17348,59,1,10965,59,1,10963,99,4,6,59,97,99,101,110,115,17366,17368,17376,17385,17389,17415,1,8827,112,112,114,111,120,59,1,10936,117,114,108,121,101,113,59,1,8829,113,59,1,10928,4,3,97,101,115,17397,17405,17410,112,112,114,111,120,59,1,10938,113,113,59,1,10934,105,109,59,1,8937,105,109,59,1,8831,59,1,8721,103,59,1,9834,4,13,49,50,51,59,69,100,101,104,108,109,110,112,115,17455,17462,17469,17476,17478,17481,17496,17509,17524,17530,17536,17548,17554,5,185,1,59,17460,1,185,5,178,1,59,17467,1,178,5,179,1,59,17474,1,179,1,8835,59,1,10950,4,2,111,115,17487,17491,116,59,1,10942,117,98,59,1,10968,4,2,59,100,17502,17504,1,8839,111,116,59,1,10948,115,4,2,111,117,17516,17520,108,59,1,10185,98,59,1,10967,97,114,114,59,1,10619,117,108,116,59,1,10946,4,2,69,101,17542,17545,59,1,10956,59,1,8843,108,117,115,59,1,10944,4,3,101,105,117,17562,17598,17602,116,4,3,59,101,110,17571,17573,17585,1,8835,113,4,2,59,113,17580,17582,1,8839,59,1,10950,101,113,4,2,59,113,17593,17595,1,8843,59,1,10956,109,59,1,10952,4,2,98,112,17608,17611,59,1,10964,59,1,10966,4,3,65,97,110,17622,17627,17650,114,114,59,1,8665,114,4,2,104,114,17634,17638,107,59,1,10534,4,2,59,111,17644,17646,1,8601,119,59,1,8601,119,97,114,59,1,10538,108,105,103,5,223,1,59,17664,1,223,4,13,97,98,99,100,101,102,104,105,111,112,114,115,119,17694,17709,17714,17737,17742,17749,17754,17860,17905,17957,17964,18090,18122,4,2,114,117,17700,17706,103,101,116,59,1,8982,59,1,964,114,107,59,1,9140,4,3,97,101,121,17722,17728,17734,114,111,110,59,1,357,100,105,108,59,1,355,59,1,1090,111,116,59,1,8411,108,114,101,99,59,1,8981,114,59,3,55349,56625,4,4,101,105,107,111,17764,17805,17836,17851,4,2,114,116,17770,17786,101,4,2,52,102,17777,17780,59,1,8756,111,114,101,59,1,8756,97,4,3,59,115,118,17795,17797,17802,1,952,121,109,59,1,977,59,1,977,4,2,99,110,17811,17831,107,4,2,97,115,17818,17826,112,112,114,111,120,59,1,8776,105,109,59,1,8764,115,112,59,1,8201,4,2,97,115,17842,17846,112,59,1,8776,105,109,59,1,8764,114,110,5,254,1,59,17858,1,254,4,3,108,109,110,17868,17873,17901,100,101,59,1,732,101,115,5,215,3,59,98,100,17884,17886,17898,1,215,4,2,59,97,17892,17894,1,8864,114,59,1,10801,59,1,10800,116,59,1,8749,4,3,101,112,115,17913,17917,17953,97,59,1,10536,4,4,59,98,99,102,17927,17929,17934,17939,1,8868,111,116,59,1,9014,105,114,59,1,10993,4,2,59,111,17945,17948,3,55349,56677,114,107,59,1,10970,97,59,1,10537,114,105,109,101,59,1,8244,4,3,97,105,112,17972,17977,18082,100,101,59,1,8482,4,7,97,100,101,109,112,115,116,17993,18051,18056,18059,18066,18072,18076,110,103,108,101,4,5,59,100,108,113,114,18009,18011,18017,18032,18035,1,9653,111,119,110,59,1,9663,101,102,116,4,2,59,101,18026,18028,1,9667,113,59,1,8884,59,1,8796,105,103,104,116,4,2,59,101,18045,18047,1,9657,113,59,1,8885,111,116,59,1,9708,59,1,8796,105,110,117,115,59,1,10810,108,117,115,59,1,10809,98,59,1,10701,105,109,101,59,1,10811,101,122,105,117,109,59,1,9186,4,3,99,104,116,18098,18111,18116,4,2,114,121,18104,18108,59,3,55349,56521,59,1,1094,99,121,59,1,1115,114,111,107,59,1,359,4,2,105,111,18128,18133,120,116,59,1,8812,104,101,97,100,4,2,108,114,18143,18154,101,102,116,97,114,114,111,119,59,1,8606,105,103,104,116,97,114,114,111,119,59,1,8608,4,18,65,72,97,98,99,100,102,103,104,108,109,111,112,114,115,116,117,119,18204,18209,18214,18234,18250,18268,18292,18308,18319,18343,18379,18397,18413,18504,18547,18553,18584,18603,114,114,59,1,8657,97,114,59,1,10595,4,2,99,114,18220,18230,117,116,101,5,250,1,59,18228,1,250,114,59,1,8593,114,4,2,99,101,18241,18245,121,59,1,1118,118,101,59,1,365,4,2,105,121,18256,18265,114,99,5,251,1,59,18263,1,251,59,1,1091,4,3,97,98,104,18276,18281,18287,114,114,59,1,8645,108,97,99,59,1,369,97,114,59,1,10606,4,2,105,114,18298,18304,115,104,116,59,1,10622,59,3,55349,56626,114,97,118,101,5,249,1,59,18317,1,249,4,2,97,98,18325,18338,114,4,2,108,114,18332,18335,59,1,8639,59,1,8638,108,107,59,1,9600,4,2,99,116,18349,18374,4,2,111,114,18355,18369,114,110,4,2,59,101,18363,18365,1,8988,114,59,1,8988,111,112,59,1,8975,114,105,59,1,9720,4,2,97,108,18385,18390,99,114,59,1,363,5,168,1,59,18395,1,168,4,2,103,112,18403,18408,111,110,59,1,371,102,59,3,55349,56678,4,6,97,100,104,108,115,117,18427,18434,18445,18470,18475,18494,114,114,111,119,59,1,8593,111,119,110,97,114,114,111,119,59,1,8597,97,114,112,111,111,110,4,2,108,114,18457,18463,101,102,116,59,1,8639,105,103,104,116,59,1,8638,117,115,59,1,8846,105,4,3,59,104,108,18484,18486,18489,1,965,59,1,978,111,110,59,1,965,112,97,114,114,111,119,115,59,1,8648,4,3,99,105,116,18512,18537,18542,4,2,111,114,18518,18532,114,110,4,2,59,101,18526,18528,1,8989,114,59,1,8989,111,112,59,1,8974,110,103,59,1,367,114,105,59,1,9721,99,114,59,3,55349,56522,4,3,100,105,114,18561,18566,18572,111,116,59,1,8944,108,100,101,59,1,361,105,4,2,59,102,18579,18581,1,9653,59,1,9652,4,2,97,109,18590,18595,114,114,59,1,8648,108,5,252,1,59,18601,1,252,97,110,103,108,101,59,1,10663,4,15,65,66,68,97,99,100,101,102,108,110,111,112,114,115,122,18643,18648,18661,18667,18847,18851,18857,18904,18909,18915,18931,18937,18943,18949,18996,114,114,59,1,8661,97,114,4,2,59,118,18656,18658,1,10984,59,1,10985,97,115,104,59,1,8872,4,2,110,114,18673,18679,103,114,116,59,1,10652,4,7,101,107,110,112,114,115,116,18695,18704,18711,18720,18742,18754,18810,112,115,105,108,111,110,59,1,1013,97,112,112,97,59,1,1008,111,116,104,105,110,103,59,1,8709,4,3,104,105,114,18728,18732,18735,105,59,1,981,59,1,982,111,112,116,111,59,1,8733,4,2,59,104,18748,18750,1,8597,111,59,1,1009,4,2,105,117,18760,18766,103,109,97,59,1,962,4,2,98,112,18772,18791,115,101,116,110,101,113,4,2,59,113,18784,18787,3,8842,65024,59,3,10955,65024,115,101,116,110,101,113,4,2,59,113,18803,18806,3,8843,65024,59,3,10956,65024,4,2,104,114,18816,18822,101,116,97,59,1,977,105,97,110,103,108,101,4,2,108,114,18834,18840,101,102,116,59,1,8882,105,103,104,116,59,1,8883,121,59,1,1074,97,115,104,59,1,8866,4,3,101,108,114,18865,18884,18890,4,3,59,98,101,18873,18875,18880,1,8744,97,114,59,1,8891,113,59,1,8794,108,105,112,59,1,8942,4,2,98,116,18896,18901,97,114,59,1,124,59,1,124,114,59,3,55349,56627,116,114,105,59,1,8882,115,117,4,2,98,112,18923,18927,59,3,8834,8402,59,3,8835,8402,112,102,59,3,55349,56679,114,111,112,59,1,8733,116,114,105,59,1,8883,4,2,99,117,18955,18960,114,59,3,55349,56523,4,2,98,112,18966,18981,110,4,2,69,101,18973,18977,59,3,10955,65024,59,3,8842,65024,110,4,2,69,101,18988,18992,59,3,10956,65024,59,3,8843,65024,105,103,122,97,103,59,1,10650,4,7,99,101,102,111,112,114,115,19020,19026,19061,19066,19072,19075,19089,105,114,99,59,1,373,4,2,100,105,19032,19055,4,2,98,103,19038,19043,97,114,59,1,10847,101,4,2,59,113,19050,19052,1,8743,59,1,8793,101,114,112,59,1,8472,114,59,3,55349,56628,112,102,59,3,55349,56680,59,1,8472,4,2,59,101,19081,19083,1,8768,97,116,104,59,1,8768,99,114,59,3,55349,56524,4,14,99,100,102,104,105,108,109,110,111,114,115,117,118,119,19125,19146,19152,19157,19173,19176,19192,19197,19202,19236,19252,19269,19286,19291,4,3,97,105,117,19133,19137,19142,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,116,114,105,59,1,9661,114,59,3,55349,56629,4,2,65,97,19163,19168,114,114,59,1,10234,114,114,59,1,10231,59,1,958,4,2,65,97,19182,19187,114,114,59,1,10232,114,114,59,1,10229,97,112,59,1,10236,105,115,59,1,8955,4,3,100,112,116,19210,19215,19230,111,116,59,1,10752,4,2,102,108,19221,19225,59,3,55349,56681,117,115,59,1,10753,105,109,101,59,1,10754,4,2,65,97,19242,19247,114,114,59,1,10233,114,114,59,1,10230,4,2,99,113,19258,19263,114,59,3,55349,56525,99,117,112,59,1,10758,4,2,112,116,19275,19281,108,117,115,59,1,10756,114,105,59,1,9651,101,101,59,1,8897,101,100,103,101,59,1,8896,4,8,97,99,101,102,105,111,115,117,19316,19335,19349,19357,19362,19367,19373,19379,99,4,2,117,121,19323,19332,116,101,5,253,1,59,19330,1,253,59,1,1103,4,2,105,121,19341,19346,114,99,59,1,375,59,1,1099,110,5,165,1,59,19355,1,165,114,59,3,55349,56630,99,121,59,1,1111,112,102,59,3,55349,56682,99,114,59,3,55349,56526,4,2,99,109,19385,19389,121,59,1,1102,108,5,255,1,59,19395,1,255,4,10,97,99,100,101,102,104,105,111,115,119,19419,19426,19441,19446,19462,19467,19472,19480,19486,19492,99,117,116,101,59,1,378,4,2,97,121,19432,19438,114,111,110,59,1,382,59,1,1079,111,116,59,1,380,4,2,101,116,19452,19458,116,114,102,59,1,8488,97,59,1,950,114,59,3,55349,56631,99,121,59,1,1078,103,114,97,114,114,59,1,8669,112,102,59,3,55349,56683,99,114,59,3,55349,56527,4,2,106,110,19498,19501,59,1,8205,106,59,1,8204]);","'use strict';\n\nconst unicode = require('../common/unicode');\nconst ERR = require('../common/error-codes');\n\n//Aliases\nconst $ = unicode.CODE_POINTS;\n\n//Const\nconst DEFAULT_BUFFER_WATERLINE = 1 << 16;\n\n//Preprocessor\n//NOTE: HTML input preprocessing\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#preprocessing-the-input-stream)\nclass Preprocessor {\n    constructor() {\n        this.html = null;\n\n        this.pos = -1;\n        this.lastGapPos = -1;\n        this.lastCharPos = -1;\n\n        this.gapStack = [];\n\n        this.skipNextNewLine = false;\n\n        this.lastChunkWritten = false;\n        this.endOfChunkHit = false;\n        this.bufferWaterline = DEFAULT_BUFFER_WATERLINE;\n    }\n\n    _err() {\n        // NOTE: err reporting is noop by default. Enabled by mixin.\n    }\n\n    _addGap() {\n        this.gapStack.push(this.lastGapPos);\n        this.lastGapPos = this.pos;\n    }\n\n    _processSurrogate(cp) {\n        //NOTE: try to peek a surrogate pair\n        if (this.pos !== this.lastCharPos) {\n            const nextCp = this.html.charCodeAt(this.pos + 1);\n\n            if (unicode.isSurrogatePair(nextCp)) {\n                //NOTE: we have a surrogate pair. Peek pair character and recalculate code point.\n                this.pos++;\n\n                //NOTE: add gap that should be avoided during retreat\n                this._addGap();\n\n                return unicode.getSurrogatePairCodePoint(cp, nextCp);\n            }\n        }\n\n        //NOTE: we are at the end of a chunk, therefore we can't infer surrogate pair yet.\n        else if (!this.lastChunkWritten) {\n            this.endOfChunkHit = true;\n            return $.EOF;\n        }\n\n        //NOTE: isolated surrogate\n        this._err(ERR.surrogateInInputStream);\n\n        return cp;\n    }\n\n    dropParsedChunk() {\n        if (this.pos > this.bufferWaterline) {\n            this.lastCharPos -= this.pos;\n            this.html = this.html.substring(this.pos);\n            this.pos = 0;\n            this.lastGapPos = -1;\n            this.gapStack = [];\n        }\n    }\n\n    write(chunk, isLastChunk) {\n        if (this.html) {\n            this.html += chunk;\n        } else {\n            this.html = chunk;\n        }\n\n        this.lastCharPos = this.html.length - 1;\n        this.endOfChunkHit = false;\n        this.lastChunkWritten = isLastChunk;\n    }\n\n    insertHtmlAtCurrentPos(chunk) {\n        this.html = this.html.substring(0, this.pos + 1) + chunk + this.html.substring(this.pos + 1, this.html.length);\n\n        this.lastCharPos = this.html.length - 1;\n        this.endOfChunkHit = false;\n    }\n\n    advance() {\n        this.pos++;\n\n        if (this.pos > this.lastCharPos) {\n            this.endOfChunkHit = !this.lastChunkWritten;\n            return $.EOF;\n        }\n\n        let cp = this.html.charCodeAt(this.pos);\n\n        //NOTE: any U+000A LINE FEED (LF) characters that immediately follow a U+000D CARRIAGE RETURN (CR) character\n        //must be ignored.\n        if (this.skipNextNewLine && cp === $.LINE_FEED) {\n            this.skipNextNewLine = false;\n            this._addGap();\n            return this.advance();\n        }\n\n        //NOTE: all U+000D CARRIAGE RETURN (CR) characters must be converted to U+000A LINE FEED (LF) characters\n        if (cp === $.CARRIAGE_RETURN) {\n            this.skipNextNewLine = true;\n            return $.LINE_FEED;\n        }\n\n        this.skipNextNewLine = false;\n\n        if (unicode.isSurrogate(cp)) {\n            cp = this._processSurrogate(cp);\n        }\n\n        //OPTIMIZATION: first check if code point is in the common allowed\n        //range (ASCII alphanumeric, whitespaces, big chunk of BMP)\n        //before going into detailed performance cost validation.\n        const isCommonValidRange =\n            (cp > 0x1f && cp < 0x7f) || cp === $.LINE_FEED || cp === $.CARRIAGE_RETURN || (cp > 0x9f && cp < 0xfdd0);\n\n        if (!isCommonValidRange) {\n            this._checkForProblematicCharacters(cp);\n        }\n\n        return cp;\n    }\n\n    _checkForProblematicCharacters(cp) {\n        if (unicode.isControlCodePoint(cp)) {\n            this._err(ERR.controlCharacterInInputStream);\n        } else if (unicode.isUndefinedCodePoint(cp)) {\n            this._err(ERR.noncharacterInInputStream);\n        }\n    }\n\n    retreat() {\n        if (this.pos === this.lastGapPos) {\n            this.lastGapPos = this.gapStack.pop();\n            this.pos--;\n        }\n\n        this.pos--;\n    }\n}\n\nmodule.exports = Preprocessor;\n","'use strict';\n\nconst { DOCUMENT_MODE } = require('../common/html');\n\n//Node construction\nexports.createDocument = function() {\n    return {\n        nodeName: '#document',\n        mode: DOCUMENT_MODE.NO_QUIRKS,\n        childNodes: []\n    };\n};\n\nexports.createDocumentFragment = function() {\n    return {\n        nodeName: '#document-fragment',\n        childNodes: []\n    };\n};\n\nexports.createElement = function(tagName, namespaceURI, attrs) {\n    return {\n        nodeName: tagName,\n        tagName: tagName,\n        attrs: attrs,\n        namespaceURI: namespaceURI,\n        childNodes: [],\n        parentNode: null\n    };\n};\n\nexports.createCommentNode = function(data) {\n    return {\n        nodeName: '#comment',\n        data: data,\n        parentNode: null\n    };\n};\n\nconst createTextNode = function(value) {\n    return {\n        nodeName: '#text',\n        value: value,\n        parentNode: null\n    };\n};\n\n//Tree mutation\nconst appendChild = (exports.appendChild = function(parentNode, newNode) {\n    parentNode.childNodes.push(newNode);\n    newNode.parentNode = parentNode;\n});\n\nconst insertBefore = (exports.insertBefore = function(parentNode, newNode, referenceNode) {\n    const insertionIdx = parentNode.childNodes.indexOf(referenceNode);\n\n    parentNode.childNodes.splice(insertionIdx, 0, newNode);\n    newNode.parentNode = parentNode;\n});\n\nexports.setTemplateContent = function(templateElement, contentElement) {\n    templateElement.content = contentElement;\n};\n\nexports.getTemplateContent = function(templateElement) {\n    return templateElement.content;\n};\n\nexports.setDocumentType = function(document, name, publicId, systemId) {\n    let doctypeNode = null;\n\n    for (let i = 0; i < document.childNodes.length; i++) {\n        if (document.childNodes[i].nodeName === '#documentType') {\n            doctypeNode = document.childNodes[i];\n            break;\n        }\n    }\n\n    if (doctypeNode) {\n        doctypeNode.name = name;\n        doctypeNode.publicId = publicId;\n        doctypeNode.systemId = systemId;\n    } else {\n        appendChild(document, {\n            nodeName: '#documentType',\n            name: name,\n            publicId: publicId,\n            systemId: systemId\n        });\n    }\n};\n\nexports.setDocumentMode = function(document, mode) {\n    document.mode = mode;\n};\n\nexports.getDocumentMode = function(document) {\n    return document.mode;\n};\n\nexports.detachNode = function(node) {\n    if (node.parentNode) {\n        const idx = node.parentNode.childNodes.indexOf(node);\n\n        node.parentNode.childNodes.splice(idx, 1);\n        node.parentNode = null;\n    }\n};\n\nexports.insertText = function(parentNode, text) {\n    if (parentNode.childNodes.length) {\n        const prevNode = parentNode.childNodes[parentNode.childNodes.length - 1];\n\n        if (prevNode.nodeName === '#text') {\n            prevNode.value += text;\n            return;\n        }\n    }\n\n    appendChild(parentNode, createTextNode(text));\n};\n\nexports.insertTextBefore = function(parentNode, text, referenceNode) {\n    const prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1];\n\n    if (prevNode && prevNode.nodeName === '#text') {\n        prevNode.value += text;\n    } else {\n        insertBefore(parentNode, createTextNode(text), referenceNode);\n    }\n};\n\nexports.adoptAttributes = function(recipient, attrs) {\n    const recipientAttrsMap = [];\n\n    for (let i = 0; i < recipient.attrs.length; i++) {\n        recipientAttrsMap.push(recipient.attrs[i].name);\n    }\n\n    for (let j = 0; j < attrs.length; j++) {\n        if (recipientAttrsMap.indexOf(attrs[j].name) === -1) {\n            recipient.attrs.push(attrs[j]);\n        }\n    }\n};\n\n//Tree traversing\nexports.getFirstChild = function(node) {\n    return node.childNodes[0];\n};\n\nexports.getChildNodes = function(node) {\n    return node.childNodes;\n};\n\nexports.getParentNode = function(node) {\n    return node.parentNode;\n};\n\nexports.getAttrList = function(element) {\n    return element.attrs;\n};\n\n//Node data\nexports.getTagName = function(element) {\n    return element.tagName;\n};\n\nexports.getNamespaceURI = function(element) {\n    return element.namespaceURI;\n};\n\nexports.getTextNodeContent = function(textNode) {\n    return textNode.value;\n};\n\nexports.getCommentNodeContent = function(commentNode) {\n    return commentNode.data;\n};\n\nexports.getDocumentTypeNodeName = function(doctypeNode) {\n    return doctypeNode.name;\n};\n\nexports.getDocumentTypeNodePublicId = function(doctypeNode) {\n    return doctypeNode.publicId;\n};\n\nexports.getDocumentTypeNodeSystemId = function(doctypeNode) {\n    return doctypeNode.systemId;\n};\n\n//Node types\nexports.isTextNode = function(node) {\n    return node.nodeName === '#text';\n};\n\nexports.isCommentNode = function(node) {\n    return node.nodeName === '#comment';\n};\n\nexports.isDocumentTypeNode = function(node) {\n    return node.nodeName === '#documentType';\n};\n\nexports.isElementNode = function(node) {\n    return !!node.tagName;\n};\n\n// Source code location\nexports.setNodeSourceCodeLocation = function(node, location) {\n    node.sourceCodeLocation = location;\n};\n\nexports.getNodeSourceCodeLocation = function(node) {\n    return node.sourceCodeLocation;\n};\n\nexports.updateNodeSourceCodeLocation = function(node, endLocation) {\n    node.sourceCodeLocation = Object.assign(node.sourceCodeLocation, endLocation);\n};\n","'use strict';\n\nmodule.exports = function mergeOptions(defaults, options) {\n    options = options || Object.create(null);\n\n    return [defaults, options].reduce((merged, optObj) => {\n        Object.keys(optObj).forEach(key => {\n            merged[key] = optObj[key];\n        });\n\n        return merged;\n    }, Object.create(null));\n};\n","'use strict';\n\nclass Mixin {\n    constructor(host) {\n        const originalMethods = {};\n        const overriddenMethods = this._getOverriddenMethods(this, originalMethods);\n\n        for (const key of Object.keys(overriddenMethods)) {\n            if (typeof overriddenMethods[key] === 'function') {\n                originalMethods[key] = host[key];\n                host[key] = overriddenMethods[key];\n            }\n        }\n    }\n\n    _getOverriddenMethods() {\n        throw new Error('Not implemented');\n    }\n}\n\nMixin.install = function(host, Ctor, opts) {\n    if (!host.__mixins) {\n        host.__mixins = [];\n    }\n\n    for (let i = 0; i < host.__mixins.length; i++) {\n        if (host.__mixins[i].constructor === Ctor) {\n            return host.__mixins[i];\n        }\n    }\n\n    const mixin = new Ctor(host, opts);\n\n    host.__mixins.push(mixin);\n\n    return mixin;\n};\n\nmodule.exports = Mixin;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bigint: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;function Lg(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Mg=Uf(null),Ng=null,Og=null,Pg=null;function Qg(){Pg=Og=Ng=null}function Rg(a){var b=Mg.current;E(Mg);a._currentValue=b}\nfunction Sg(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}function Tg(a,b){Ng=a;Pg=Og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(Ug=!0),a.firstContext=null)}\nfunction Vg(a){var b=a._currentValue;if(Pg!==a)if(a={context:a,memoizedValue:b,next:null},null===Og){if(null===Ng)throw Error(p(308));Og=a;Ng.dependencies={lanes:0,firstContext:a}}else Og=Og.next=a;return b}var Wg=null;function Xg(a){null===Wg?Wg=[a]:Wg.push(a)}function Yg(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,Xg(b)):(c.next=e.next,e.next=c);b.interleaved=c;return Zg(a,d)}\nfunction Zg(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var $g=!1;function ah(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function ch(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction dh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return Zg(a,c)}e=d.interleaved;null===e?(b.next=b,Xg(d)):(b.next=e.next,e.next=b);d.interleaved=b;return Zg(a,c)}function eh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction fh(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction gh(a,b,c,d){var e=a.updateQueue;$g=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:$g=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);hh|=g;a.lanes=g;a.memoizedState=q}}\nfunction ih(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var jh=(new aa.Component).refs;function kh(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar nh={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=L(),d=\nlh(a),e=ch(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=dh(a,e,d);null!==b&&(mh(b,a,d,c),eh(b,a,d))}};function oh(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction ph(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=Vg(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=nh;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction qh(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&nh.enqueueReplaceState(b,b.state,null)}\nfunction rh(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jh;ah(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=Vg(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(kh(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&nh.enqueueReplaceState(e,e.state,null),gh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}\nfunction sh(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===jh&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction th(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function uh(a){var b=a._init;return b(a._payload)}\nfunction vh(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=wh(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=xh(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&uh(f)===b.type))return d=e(b,c.props),d.ref=sh(a,b,c),d.return=a,d;d=yh(c.type,c.key,c.props,null,a.mode,d);d.ref=sh(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=zh(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Ah(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=xh(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=yh(b.type,b.key,b.props,null,a.mode,c),\nc.ref=sh(a,null,b),c.return=a,c;case wa:return b=zh(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Ah(b,a.mode,c,null),b.return=a,b;th(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);th(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);th(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;a<Nh.length;a++)Nh[a]._workInProgressVersionPrimary=null;Nh.length=0}var Ph=ua.ReactCurrentDispatcher,Qh=ua.ReactCurrentBatchConfig,Rh=0,N=null,O=null,P=null,Sh=!1,Th=!1,Uh=0,Vh=0;function Q(){throw Error(p(321));}function Wh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Xh(a,b,c,d,e,f){Rh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Ph.current=null===a||null===a.memoizedState?Yh:Zh;a=c(d,e);if(Th){f=0;do{Th=!1;Uh=0;if(25<=f)throw Error(p(301));f+=1;P=O=null;b.updateQueue=null;Ph.current=$h;a=c(d,e)}while(Th)}Ph.current=ai;b=null!==O&&null!==O.next;Rh=0;P=O=N=null;Sh=!1;if(b)throw Error(p(300));return a}function bi(){var a=0!==Uh;Uh=0;return a}\nfunction ci(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function di(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(p(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction ei(a,b){return\"function\"===typeof b?b(a):b}\nfunction fi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Rh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;N.lanes|=m;hh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(Ug=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,N.lanes|=f,hh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction gi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(Ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function hi(){}\nfunction ii(a,b){var c=N,d=di(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,Ug=!0);d=d.queue;ji(ki.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==P&&P.memoizedState.tag&1){c.flags|=2048;li(9,mi.bind(null,c,d,e,b),void 0,null);if(null===R)throw Error(p(349));0!==(Rh&30)||ni(c,b,e)}return e}function ni(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction mi(a,b,c,d){b.value=c;b.getSnapshot=d;oi(b)&&pi(a)}function ki(a,b,c){return c(function(){oi(b)&&pi(a)})}function oi(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function pi(a){var b=Zg(a,1);null!==b&&mh(b,a,1,-1)}\nfunction qi(a){var b=ci();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ei,lastRenderedState:a};b.queue=a;a=a.dispatch=ri.bind(null,N,a);return[b.memoizedState,a]}\nfunction li(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function si(){return di().memoizedState}function ti(a,b,c,d){var e=ci();N.flags|=a;e.memoizedState=li(1|b,c,void 0,void 0===d?null:d)}\nfunction ui(a,b,c,d){var e=di();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Wh(d,g.deps)){e.memoizedState=li(b,c,f,d);return}}N.flags|=a;e.memoizedState=li(1|b,c,f,d)}function vi(a,b){return ti(8390656,8,a,b)}function ji(a,b){return ui(2048,8,a,b)}function wi(a,b){return ui(4,2,a,b)}function xi(a,b){return ui(4,4,a,b)}\nfunction yi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function zi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ui(4,4,yi.bind(null,b,a),c)}function Ai(){}function Bi(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Ci(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Di(a,b,c){if(0===(Rh&21))return a.baseState&&(a.baseState=!1,Ug=!0),a.memoizedState=c;He(c,b)||(c=yc(),N.lanes|=c,hh|=c,a.baseState=!0);return b}function Ei(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Vh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Zh={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)},\nuseDebugValue:Ai,useDeferredValue:function(a){var b=di();return Di(b,O.memoizedState,a)},useTransition:function(){var a=fi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},$h={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var b=di();return null===\nO?b.memoizedState=a:Di(b,O.memoizedState,a)},useTransition:function(){var a=gi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}function Li(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}\nfunction Mi(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Ni=\"function\"===typeof WeakMap?WeakMap:Map;function Oi(a,b,c){c=ch(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Pi||(Pi=!0,Qi=d);Mi(a,b)};return c}\nfunction Ri(a,b,c){c=ch(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Mi(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Mi(a,b);\"function\"!==typeof d&&(null===Si?Si=new Set([this]):Si.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Ti(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Ni;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ui.bind(null,a,b,c),b.then(a,a))}function Vi(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Wi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=ch(-1,1),b.tag=2,dh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Xi=ua.ReactCurrentOwner,Ug=!1;function Yi(a,b,c,d){b.child=null===a?Ch(b,null,c,d):Bh(b,a.child,c,d)}\nfunction Zi(a,b,c,d,e){c=c.render;var f=b.ref;Tg(b,e);d=Xh(a,b,c,d,f,e);c=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&c&&vg(b);b.flags|=1;Yi(a,b,d,e);return b.child}\nfunction aj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!bj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,cj(a,b,f,d,e);a=yh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return $i(a,b,e)}b.flags|=1;a=wh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction cj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(Ug=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(Ug=!0);else return b.lanes=a.lanes,$i(a,b,e)}return dj(a,b,c,d,e)}\nfunction ej(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(fj,gj),gj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(fj,gj),gj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(fj,gj);gj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(fj,gj),gj|=d;Yi(a,b,e,c);return b.child}function hj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function dj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);Tg(b,e);c=Xh(a,b,c,d,f,e);d=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&d&&vg(b);b.flags|=1;Yi(a,b,c,e);return b.child}\nfunction ij(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;Tg(b,e);if(null===b.stateNode)jj(a,b),ph(b,c,d),rh(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=Vg(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&qh(b,g,d,l);$g=!1;var r=b.memoizedState;g.state=r;gh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||$g?(\"function\"===typeof m&&(kh(b,c,m,d),k=b.memoizedState),(h=$g||oh(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Lg(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=Vg(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&qh(b,g,d,k);$g=!1;r=b.memoizedState;g.state=r;gh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||$g?(\"function\"===typeof y&&(kh(b,c,y,d),n=b.memoizedState),(l=$g||oh(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return kj(a,b,c,d,f,e)}\nfunction kj(a,b,c,d,e,f){hj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),$i(a,b,f);d=b.stateNode;Xi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Bh(b,a.child,null,f),b.child=Bh(b,null,h,f)):Yi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function lj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);Ih(a,b.containerInfo)}\nfunction mj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Yi(a,b,c,d);return b.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction pj(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(M,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=qj(g,d,0,null),a=Ah(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=oj(c),b.memoizedState=nj,a):rj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return sj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=wh(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=wh(h,f):(f=Ah(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?oj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=nj;return d}f=a.child;a=f.sibling;d=wh(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction rj(a,b){b=qj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function tj(a,b,c,d){null!==d&&Jg(d);Bh(b,a.child,null,c);a=rj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction sj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Li(Error(p(422))),tj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=qj({mode:\"visible\",children:d.children},e,0,null);f=Ah(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Bh(b,a.child,null,g);b.child.memoizedState=oj(g);b.memoizedState=nj;return f}if(0===(b.mode&1))return tj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Li(f,d,void 0);return tj(a,b,g,d)}h=0!==(g&a.childLanes);if(Ug||h){d=R;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,Zg(a,e),mh(d,a,e,-1))}uj();d=Li(Error(p(421)));return tj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=vj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=rj(b,d.children);b.flags|=4096;return b}function wj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);Sg(a.return,b,c)}\nfunction xj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction yj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Yi(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&wj(a,c,b);else if(19===a.tag)wj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(M,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Mh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);xj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Mh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}xj(b,!0,c,null,f);break;case \"together\":xj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction jj(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function $i(a,b,c){null!==a&&(b.dependencies=a.dependencies);hh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=wh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=wh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction zj(a,b,c){switch(b.tag){case 3:lj(b);Ig();break;case 5:Kh(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:Ih(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Mg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(M,M.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return pj(a,b,c);G(M,M.current&1);a=$i(a,b,c);return null!==a?a.sibling:null}G(M,M.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return yj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(M,M.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,ej(a,b,c)}return $i(a,b,c)}var Aj,Bj,Cj,Dj;\nAj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Bj=function(){};\nCj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;Hh(Eh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Dj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Ej(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Fj(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;Jh();E(Wf);E(H);Oh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Gj(zg),zg=null));Bj(a,b);S(b);return null;case 5:Lh(b);var e=Hh(Gh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Cj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Dj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=Hh(Gh.current);Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(M);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Gj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(M.current&1)?0===T&&(T=3):uj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return Jh(),\nBj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return Rg(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(M);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Ej(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Mh(a);if(null!==g){b.flags|=128;Ej(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(M,M.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Hj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Yj=!1;break a;case 3:X=h.stateNode.containerInfo;Yj=!0;break a;case 4:X=h.stateNode.containerInfo;Yj=!0;break a}h=h.return}if(null===X)throw Error(p(160));ak(f,g,e);X=null;Yj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)ek(b,a),b=b.sibling}\nfunction ek(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:dk(b,a);fk(a);if(d&4){try{Qj(3,a,a.return),Rj(3,a)}catch(t){W(a,a.return,t)}try{Qj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);break;case 5:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:dk(b,a);fk(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:dk(b,a);fk(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:dk(b,a);fk(a);break;case 13:dk(b,a);fk(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(gk=B()));d&4&&bk(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,dk(b,a),U=l):dk(b,a);fk(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Qj(4,r,r.return);break;case 1:Mj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Mj(r,r.return);break;case 22:if(null!==r.memoizedState){hk(q);continue}}null!==y?(y.return=r,V=y):hk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:dk(b,a);fk(a);d&4&&bk(a);break;case 21:break;default:dk(b,\na),fk(a)}}function fk(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Uj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Vj(a);Xj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Vj(a);Wj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function ik(a,b,c){V=a;jk(a,b,c)}\nfunction jk(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Kj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Kj;var l=U;Kj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?kk(e):null!==k?(k.return=g,V=k):kk(e);for(;null!==f;)V=f,jk(f,b,c),f=f.sibling;V=e;Kj=h;U=l}lk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):lk(a,b,c)}}\nfunction lk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Rj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Lg(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&ih(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}ih(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Sj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function hk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction kk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Rj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Sj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Sj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar mk=Math.ceil,nk=ua.ReactCurrentDispatcher,ok=ua.ReactCurrentOwner,pk=ua.ReactCurrentBatchConfig,K=0,R=null,Y=null,Z=0,gj=0,fj=Uf(0),T=0,qk=null,hh=0,rk=0,sk=0,tk=null,uk=null,gk=0,Hj=Infinity,vk=null,Pi=!1,Qi=null,Si=null,wk=!1,xk=null,yk=0,zk=0,Ak=null,Bk=-1,Ck=0;function L(){return 0!==(K&6)?B():-1!==Bk?Bk:Bk=B()}\nfunction lh(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Ck&&(Ck=yc()),Ck;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function mh(a,b,c,d){if(50<zk)throw zk=0,Ak=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==R)a===R&&(0===(K&2)&&(rk|=c),4===T&&Dk(a,Z)),Ek(a,d),1===c&&0===K&&0===(b.mode&1)&&(Hj=B()+500,fg&&jg())}\nfunction Ek(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===R?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Fk.bind(null,a)):hg(Fk.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Gk(c,Hk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Hk(a,b){Bk=-1;Ck=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Ik()&&a.callbackNode!==c)return null;var d=uc(a,a===R?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Jk(a,d);else{b=d;var e=K;K|=2;var f=Kk();if(R!==a||Z!==b)vk=null,Hj=B()+500,Lk(a,b);do try{Mk();break}catch(h){Nk(a,h)}while(1);Qg();nk.current=f;K=e;null!==Y?b=0:(R=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Ok(a,e)));if(1===b)throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;if(6===b)Dk(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Pk(e)&&(b=Jk(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Ok(a,f))),1===b))throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Qk(a,uk,vk);break;case 3:Dk(a,d);if((d&130023424)===d&&(b=gk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){L();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),b);break}Qk(a,uk,vk);break;case 4:Dk(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),d);break}Qk(a,uk,vk);break;case 5:Qk(a,uk,vk);break;default:throw Error(p(329));}}}Ek(a,B());return a.callbackNode===c?Hk.bind(null,a):null}\nfunction Ok(a,b){var c=tk;a.current.memoizedState.isDehydrated&&(Lk(a,b).flags|=256);a=Jk(a,b);2!==a&&(b=uk,uk=c,null!==b&&Gj(b));return a}function Gj(a){null===uk?uk=a:uk.push.apply(uk,a)}\nfunction Pk(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Dk(a,b){b&=~sk;b&=~rk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Fk(a){if(0!==(K&6))throw Error(p(327));Ik();var b=uc(a,0);if(0===(b&1))return Ek(a,B()),null;var c=Jk(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Ok(a,d))}if(1===c)throw c=qk,Lk(a,0),Dk(a,b),Ek(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Qk(a,uk,vk);Ek(a,B());return null}\nfunction Rk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Hj=B()+500,fg&&jg())}}function Sk(a){null!==xk&&0===xk.tag&&0===(K&6)&&Ik();var b=K;K|=1;var c=pk.transition,d=C;try{if(pk.transition=null,C=1,a)return a()}finally{C=d,pk.transition=c,K=b,0===(K&6)&&jg()}}function Ij(){gj=fj.current;E(fj)}\nfunction Lk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:Jh();E(Wf);E(H);Oh();break;case 5:Lh(d);break;case 4:Jh();break;case 13:E(M);break;case 19:E(M);break;case 10:Rg(d.type._context);break;case 22:case 23:Ij()}c=c.return}R=a;Y=a=wh(a.current,null);Z=gj=b;T=0;qk=null;sk=rk=hh=0;uk=tk=null;if(null!==Wg){for(b=\n0;b<Wg.length;b++)if(c=Wg[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}Wg=null}return a}\nfunction Nk(a,b){do{var c=Y;try{Qg();Ph.current=ai;if(Sh){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Sh=!1}Rh=0;P=O=N=null;Th=!1;Uh=0;ok.current=null;if(null===c||null===c.return){T=1;qk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Vi(g);if(null!==y){y.flags&=-257;Wi(y,g,h,f,b);y.mode&1&&Ti(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Ti(f,l,b);uj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Vi(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Wi(J,g,h,f,b);Jg(Ki(k,h));break a}}f=k=Ki(k,h);4!==T&&(T=2);null===tk?tk=[f]:tk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Oi(f,k,b);fh(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Si||!Si.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Ri(f,h,b);fh(f,F);break a}}f=f.return}while(null!==f)}Tk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Kk(){var a=nk.current;nk.current=ai;return null===a?ai:a}\nfunction uj(){if(0===T||3===T||2===T)T=4;null===R||0===(hh&268435455)&&0===(rk&268435455)||Dk(R,Z)}function Jk(a,b){var c=K;K|=2;var d=Kk();if(R!==a||Z!==b)vk=null,Lk(a,b);do try{Uk();break}catch(e){Nk(a,e)}while(1);Qg();K=c;nk.current=d;if(null!==Y)throw Error(p(261));R=null;Z=0;return T}function Uk(){for(;null!==Y;)Vk(Y)}function Mk(){for(;null!==Y&&!cc();)Vk(Y)}function Vk(a){var b=Wk(a.alternate,a,gj);a.memoizedProps=a.pendingProps;null===b?Tk(a):Y=b;ok.current=null}\nfunction Tk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Fj(c,b,gj),null!==c){Y=c;return}}else{c=Jj(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Qk(a,b,c){var d=C,e=pk.transition;try{pk.transition=null,C=1,Xk(a,b,c,d)}finally{pk.transition=e,C=d}return null}\nfunction Xk(a,b,c,d){do Ik();while(null!==xk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===R&&(Y=R=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||wk||(wk=!0,Gk(hc,function(){Ik();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=pk.transition;pk.transition=null;\nvar g=C;C=1;var h=K;K|=4;ok.current=null;Pj(a,c);ek(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;ik(c,a,e);dc();K=h;C=g;pk.transition=f}else a.current=c;wk&&(wk=!1,xk=a,yk=e);f=a.pendingLanes;0===f&&(Si=null);mc(c.stateNode,d);Ek(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Pi)throw Pi=!1,a=Qi,Qi=null,a;0!==(yk&1)&&0!==a.tag&&Ik();f=a.pendingLanes;0!==(f&1)?a===Ak?zk++:(zk=0,Ak=a):zk=0;jg();return null}\nfunction Ik(){if(null!==xk){var a=Dc(yk),b=pk.transition,c=C;try{pk.transition=null;C=16>a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Qj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Tj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Qj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Rj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,pk.transition=b}}return!1}function Yk(a,b,c){b=Ki(c,b);b=Oi(a,b,1);a=dh(a,b,1);b=L();null!==a&&(Ac(a,1,b),Ek(a,b))}\nfunction W(a,b,c){if(3===a.tag)Yk(a,a,c);else for(;null!==b;){if(3===b.tag){Yk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Si||!Si.has(d))){a=Ki(c,a);a=Ri(b,a,1);b=dh(b,a,1);a=L();null!==b&&(Ac(b,1,a),Ek(b,a));break}}b=b.return}}\nfunction Ui(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=L();a.pingedLanes|=a.suspendedLanes&c;R===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction el(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction fl(a,b,c,d,e,f,g,h,k){a=cl(c,d,!0,a,e,f,g,h,k);a.context=el(null);c=a.current;d=L();e=lh(c);f=ch(d,e);f.callback=void 0!==b&&null!==b?b:null;dh(c,f,e);a.current.lanes=e;Ac(a,e,d);Ek(a,d);return a}function gl(a,b,c,d){var e=b.current,f=L(),g=lh(e);c=el(c);null===b.context?b.context=c:b.pendingContext=c;b=ch(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=dh(e,b,g);null!==a&&(mh(a,e,g,f),eh(a,e,g));return g}\nfunction hl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function il(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function jl(a,b){il(a,b);(a=a.alternate)&&il(a,b)}function kl(){return null}var ll=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ml(a){this._internalRoot=a}\nnl.prototype.render=ml.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));gl(a,b,null,null)};nl.prototype.unmount=ml.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Sk(function(){gl(null,a,null,null)});b[uf]=null}};function nl(a){this._internalRoot=a}\nnl.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function pl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function ql(){}\nfunction rl(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=hl(g);f.call(a)}}var g=fl(b,d,a,0,null,!1,!1,\"\",ql);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Sk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=hl(k);h.call(a)}}var k=cl(a,0,!1,null,null,!1,!1,\"\",ql);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Sk(function(){gl(b,k,c,d)});return k}\nfunction sl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=hl(g);h.call(a)}}gl(b,g,a,e)}else g=rl(c,b,a,e,d);return hl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Ek(b,B()),0===(K&6)&&(Hj=B()+500,jg()))}break;case 13:Sk(function(){var b=Zg(a,1);if(null!==b){var c=L();mh(b,a,1,c)}}),jl(a,1)}};\nFc=function(a){if(13===a.tag){var b=Zg(a,134217728);if(null!==b){var c=L();mh(b,a,134217728,c)}jl(a,134217728)}};Gc=function(a){if(13===a.tag){var b=lh(a),c=Zg(a,b);if(null!==c){var d=L();mh(c,a,b,d)}jl(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Rk;Hb=Sk;\nvar tl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Rk]},ul={findFiberByHostInstance:Wc,bundleType:0,version:\"18.2.0\",rendererPackageName:\"react-dom\"};\nvar vl={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance||\nkl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.2.0-next-9e3b772b8-20220608\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var wl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!wl.isDisabled&&wl.supportsFiber)try{kc=wl.inject(vl),lc=wl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(b))throw Error(p(200));return dl(a,b,null,c)};exports.createRoot=function(a,b){if(!ol(a))throw Error(p(299));var c=!1,d=\"\",e=ll;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=cl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ml(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Sk(a)};exports.hydrate=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!ol(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=ll;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=fl(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new nl(b)};exports.render=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!pl(a))throw Error(p(40));return a._reactRootContainer?(Sk(function(){sl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Rk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!pl(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return sl(a,b,c,!1,d)};exports.version=\"18.2.0-next-9e3b772b8-20220608\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n  exports.createRoot = m.createRoot;\n  exports.hydrateRoot = m.hydrateRoot;\n} else {\n  var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n  exports.createRoot = function(c, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.createRoot(c, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n  exports.hydrateRoot = function(c, h, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.hydrateRoot(c, h, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n}\n","'use strict';\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n  ) {\n    return;\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  try {\n    // Verify that the code above has been dead code eliminated (DCE'd).\n    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n  } catch (err) {\n    // DevTools shouldn't crash React, no matter what.\n    // We should still report in case we break this code.\n    console.error(err);\n  }\n}\n\nif (process.env.NODE_ENV === 'production') {\n  // DCE check should happen before ReactDOM bundle executes so that\n  // DevTools can report bad minification during injection.\n  checkDCE();\n  module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n  module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * @license React\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';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'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}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param  {String}      style      - The inline style.\n * @param  {Function}    [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n  var output = null;\n  if (!style || typeof style !== 'string') {\n    return output;\n  }\n\n  var declaration;\n  var declarations = parse(style);\n  var hasIterator = typeof iterator === 'function';\n  var property;\n  var value;\n\n  for (var i = 0, len = declarations.length; i < len; i++) {\n    declaration = declarations[i];\n    property = declaration.property;\n    value = declaration.value;\n\n    if (hasIterator) {\n      iterator(property, value, declaration);\n    } else if (value) {\n      output || (output = {});\n      output[property] = value;\n    }\n  }\n\n  return output;\n}\n\nmodule.exports = StyleToObject;\nmodule.exports.default = StyleToObject; // ESM support\n","/**\n * @license React\n * react-jsx-runtime.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';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.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';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n  module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict'\n\n/* global window, self */\n\n// istanbul ignore next - Don't allow Prism to run on page load in browser or\n// to start messaging from workers.\nvar ctx =\n  typeof globalThis === 'object'\n    ? globalThis\n    : typeof self === 'object'\n    ? self\n    : typeof window === 'object'\n    ? window\n    : typeof global === 'object'\n    ? global\n    : {}\n\nvar restore = capture()\n\nctx.Prism = {manual: true, disableWorkerMessageHandler: true}\n\n// Load all stuff in `prism.js` itself, except for `prism-file-highlight.js`.\n// The wrapped non-leaky grammars are loaded instead of Prism’s originals.\nvar h = require('hastscript')\nvar decode = require('parse-entities')\nvar Prism = require('prismjs/components/prism-core')\nvar markup = require('./lang/markup')\nvar css = require('./lang/css')\nvar clike = require('./lang/clike')\nvar js = require('./lang/javascript')\n\nrestore()\n\nvar own = {}.hasOwnProperty\n\n// Inherit.\nfunction Refractor() {}\n\nRefractor.prototype = Prism\n\n// Construct.\nvar refract = new Refractor()\n\n// Expose.\nmodule.exports = refract\n\n// Create.\nrefract.highlight = highlight\nrefract.register = register\nrefract.alias = alias\nrefract.registered = registered\nrefract.listLanguages = listLanguages\n\n// Register bundled grammars.\nregister(markup)\nregister(css)\nregister(clike)\nregister(js)\n\nrefract.util.encode = encode\nrefract.Token.stringify = stringify\n\nfunction register(grammar) {\n  if (typeof grammar !== 'function' || !grammar.displayName) {\n    throw new Error('Expected `function` for `grammar`, got `' + grammar + '`')\n  }\n\n  // Do not duplicate registrations.\n  if (refract.languages[grammar.displayName] === undefined) {\n    grammar(refract)\n  }\n}\n\nfunction alias(name, alias) {\n  var languages = refract.languages\n  var map = name\n  var key\n  var list\n  var length\n  var index\n\n  if (alias) {\n    map = {}\n    map[name] = alias\n  }\n\n  for (key in map) {\n    list = map[key]\n    list = typeof list === 'string' ? [list] : list\n    length = list.length\n    index = -1\n\n    while (++index < length) {\n      languages[list[index]] = languages[key]\n    }\n  }\n}\n\nfunction highlight(value, name) {\n  var sup = Prism.highlight\n  var grammar\n\n  if (typeof value !== 'string') {\n    throw new Error('Expected `string` for `value`, got `' + value + '`')\n  }\n\n  // `name` is a grammar object.\n  if (refract.util.type(name) === 'Object') {\n    grammar = name\n    name = null\n  } else {\n    if (typeof name !== 'string') {\n      throw new Error('Expected `string` for `name`, got `' + name + '`')\n    }\n\n    if (own.call(refract.languages, name)) {\n      grammar = refract.languages[name]\n    } else {\n      throw new Error('Unknown language: `' + name + '` is not registered')\n    }\n  }\n\n  return sup.call(this, value, grammar, name)\n}\n\nfunction registered(language) {\n  if (typeof language !== 'string') {\n    throw new Error('Expected `string` for `language`, got `' + language + '`')\n  }\n\n  return own.call(refract.languages, language)\n}\n\nfunction listLanguages() {\n  var languages = refract.languages\n  var list = []\n  var language\n\n  for (language in languages) {\n    if (\n      own.call(languages, language) &&\n      typeof languages[language] === 'object'\n    ) {\n      list.push(language)\n    }\n  }\n\n  return list\n}\n\nfunction stringify(value, language, parent) {\n  var env\n\n  if (typeof value === 'string') {\n    return {type: 'text', value: value}\n  }\n\n  if (refract.util.type(value) === 'Array') {\n    return stringifyAll(value, language)\n  }\n\n  env = {\n    type: value.type,\n    content: refract.Token.stringify(value.content, language, parent),\n    tag: 'span',\n    classes: ['token', value.type],\n    attributes: {},\n    language: language,\n    parent: parent\n  }\n\n  if (value.alias) {\n    env.classes = env.classes.concat(value.alias)\n  }\n\n  refract.hooks.run('wrap', env)\n\n  return h(\n    env.tag + '.' + env.classes.join('.'),\n    attributes(env.attributes),\n    env.content\n  )\n}\n\nfunction stringifyAll(values, language) {\n  var result = []\n  var length = values.length\n  var index = -1\n  var value\n\n  while (++index < length) {\n    value = values[index]\n\n    if (value !== '' && value !== null && value !== undefined) {\n      result.push(value)\n    }\n  }\n\n  index = -1\n  length = result.length\n\n  while (++index < length) {\n    value = result[index]\n    result[index] = refract.Token.stringify(value, language, result)\n  }\n\n  return result\n}\n\nfunction encode(tokens) {\n  return tokens\n}\n\nfunction attributes(attrs) {\n  var key\n\n  for (key in attrs) {\n    attrs[key] = decode(attrs[key])\n  }\n\n  return attrs\n}\n\nfunction capture() {\n  var defined = 'Prism' in ctx\n  /* istanbul ignore next */\n  var current = defined ? ctx.Prism : undefined\n\n  return restore\n\n  function restore() {\n    /* istanbul ignore else - Clean leaks after Prism. */\n    if (defined) {\n      ctx.Prism = current\n    } else {\n      delete ctx.Prism\n    }\n\n    defined = undefined\n    current = undefined\n  }\n}\n","'use strict'\n\nvar refractor = require('./core.js')\n\nmodule.exports = refractor\n\nrefractor.register(require('./lang/abap.js'))\nrefractor.register(require('./lang/abnf.js'))\nrefractor.register(require('./lang/actionscript.js'))\nrefractor.register(require('./lang/ada.js'))\nrefractor.register(require('./lang/agda.js'))\nrefractor.register(require('./lang/al.js'))\nrefractor.register(require('./lang/antlr4.js'))\nrefractor.register(require('./lang/apacheconf.js'))\nrefractor.register(require('./lang/apex.js'))\nrefractor.register(require('./lang/apl.js'))\nrefractor.register(require('./lang/applescript.js'))\nrefractor.register(require('./lang/aql.js'))\nrefractor.register(require('./lang/arduino.js'))\nrefractor.register(require('./lang/arff.js'))\nrefractor.register(require('./lang/asciidoc.js'))\nrefractor.register(require('./lang/asm6502.js'))\nrefractor.register(require('./lang/asmatmel.js'))\nrefractor.register(require('./lang/aspnet.js'))\nrefractor.register(require('./lang/autohotkey.js'))\nrefractor.register(require('./lang/autoit.js'))\nrefractor.register(require('./lang/avisynth.js'))\nrefractor.register(require('./lang/avro-idl.js'))\nrefractor.register(require('./lang/bash.js'))\nrefractor.register(require('./lang/basic.js'))\nrefractor.register(require('./lang/batch.js'))\nrefractor.register(require('./lang/bbcode.js'))\nrefractor.register(require('./lang/bicep.js'))\nrefractor.register(require('./lang/birb.js'))\nrefractor.register(require('./lang/bison.js'))\nrefractor.register(require('./lang/bnf.js'))\nrefractor.register(require('./lang/brainfuck.js'))\nrefractor.register(require('./lang/brightscript.js'))\nrefractor.register(require('./lang/bro.js'))\nrefractor.register(require('./lang/bsl.js'))\nrefractor.register(require('./lang/c.js'))\nrefractor.register(require('./lang/cfscript.js'))\nrefractor.register(require('./lang/chaiscript.js'))\nrefractor.register(require('./lang/cil.js'))\nrefractor.register(require('./lang/clojure.js'))\nrefractor.register(require('./lang/cmake.js'))\nrefractor.register(require('./lang/cobol.js'))\nrefractor.register(require('./lang/coffeescript.js'))\nrefractor.register(require('./lang/concurnas.js'))\nrefractor.register(require('./lang/coq.js'))\nrefractor.register(require('./lang/cpp.js'))\nrefractor.register(require('./lang/crystal.js'))\nrefractor.register(require('./lang/csharp.js'))\nrefractor.register(require('./lang/cshtml.js'))\nrefractor.register(require('./lang/csp.js'))\nrefractor.register(require('./lang/css-extras.js'))\nrefractor.register(require('./lang/csv.js'))\nrefractor.register(require('./lang/cypher.js'))\nrefractor.register(require('./lang/d.js'))\nrefractor.register(require('./lang/dart.js'))\nrefractor.register(require('./lang/dataweave.js'))\nrefractor.register(require('./lang/dax.js'))\nrefractor.register(require('./lang/dhall.js'))\nrefractor.register(require('./lang/diff.js'))\nrefractor.register(require('./lang/django.js'))\nrefractor.register(require('./lang/dns-zone-file.js'))\nrefractor.register(require('./lang/docker.js'))\nrefractor.register(require('./lang/dot.js'))\nrefractor.register(require('./lang/ebnf.js'))\nrefractor.register(require('./lang/editorconfig.js'))\nrefractor.register(require('./lang/eiffel.js'))\nrefractor.register(require('./lang/ejs.js'))\nrefractor.register(require('./lang/elixir.js'))\nrefractor.register(require('./lang/elm.js'))\nrefractor.register(require('./lang/erb.js'))\nrefractor.register(require('./lang/erlang.js'))\nrefractor.register(require('./lang/etlua.js'))\nrefractor.register(require('./lang/excel-formula.js'))\nrefractor.register(require('./lang/factor.js'))\nrefractor.register(require('./lang/false.js'))\nrefractor.register(require('./lang/firestore-security-rules.js'))\nrefractor.register(require('./lang/flow.js'))\nrefractor.register(require('./lang/fortran.js'))\nrefractor.register(require('./lang/fsharp.js'))\nrefractor.register(require('./lang/ftl.js'))\nrefractor.register(require('./lang/gap.js'))\nrefractor.register(require('./lang/gcode.js'))\nrefractor.register(require('./lang/gdscript.js'))\nrefractor.register(require('./lang/gedcom.js'))\nrefractor.register(require('./lang/gherkin.js'))\nrefractor.register(require('./lang/git.js'))\nrefractor.register(require('./lang/glsl.js'))\nrefractor.register(require('./lang/gml.js'))\nrefractor.register(require('./lang/gn.js'))\nrefractor.register(require('./lang/go-module.js'))\nrefractor.register(require('./lang/go.js'))\nrefractor.register(require('./lang/graphql.js'))\nrefractor.register(require('./lang/groovy.js'))\nrefractor.register(require('./lang/haml.js'))\nrefractor.register(require('./lang/handlebars.js'))\nrefractor.register(require('./lang/haskell.js'))\nrefractor.register(require('./lang/haxe.js'))\nrefractor.register(require('./lang/hcl.js'))\nrefractor.register(require('./lang/hlsl.js'))\nrefractor.register(require('./lang/hoon.js'))\nrefractor.register(require('./lang/hpkp.js'))\nrefractor.register(require('./lang/hsts.js'))\nrefractor.register(require('./lang/http.js'))\nrefractor.register(require('./lang/ichigojam.js'))\nrefractor.register(require('./lang/icon.js'))\nrefractor.register(require('./lang/icu-message-format.js'))\nrefractor.register(require('./lang/idris.js'))\nrefractor.register(require('./lang/iecst.js'))\nrefractor.register(require('./lang/ignore.js'))\nrefractor.register(require('./lang/inform7.js'))\nrefractor.register(require('./lang/ini.js'))\nrefractor.register(require('./lang/io.js'))\nrefractor.register(require('./lang/j.js'))\nrefractor.register(require('./lang/java.js'))\nrefractor.register(require('./lang/javadoc.js'))\nrefractor.register(require('./lang/javadoclike.js'))\nrefractor.register(require('./lang/javastacktrace.js'))\nrefractor.register(require('./lang/jexl.js'))\nrefractor.register(require('./lang/jolie.js'))\nrefractor.register(require('./lang/jq.js'))\nrefractor.register(require('./lang/js-extras.js'))\nrefractor.register(require('./lang/js-templates.js'))\nrefractor.register(require('./lang/jsdoc.js'))\nrefractor.register(require('./lang/json.js'))\nrefractor.register(require('./lang/json5.js'))\nrefractor.register(require('./lang/jsonp.js'))\nrefractor.register(require('./lang/jsstacktrace.js'))\nrefractor.register(require('./lang/jsx.js'))\nrefractor.register(require('./lang/julia.js'))\nrefractor.register(require('./lang/keepalived.js'))\nrefractor.register(require('./lang/keyman.js'))\nrefractor.register(require('./lang/kotlin.js'))\nrefractor.register(require('./lang/kumir.js'))\nrefractor.register(require('./lang/kusto.js'))\nrefractor.register(require('./lang/latex.js'))\nrefractor.register(require('./lang/latte.js'))\nrefractor.register(require('./lang/less.js'))\nrefractor.register(require('./lang/lilypond.js'))\nrefractor.register(require('./lang/liquid.js'))\nrefractor.register(require('./lang/lisp.js'))\nrefractor.register(require('./lang/livescript.js'))\nrefractor.register(require('./lang/llvm.js'))\nrefractor.register(require('./lang/log.js'))\nrefractor.register(require('./lang/lolcode.js'))\nrefractor.register(require('./lang/lua.js'))\nrefractor.register(require('./lang/magma.js'))\nrefractor.register(require('./lang/makefile.js'))\nrefractor.register(require('./lang/markdown.js'))\nrefractor.register(require('./lang/markup-templating.js'))\nrefractor.register(require('./lang/matlab.js'))\nrefractor.register(require('./lang/maxscript.js'))\nrefractor.register(require('./lang/mel.js'))\nrefractor.register(require('./lang/mermaid.js'))\nrefractor.register(require('./lang/mizar.js'))\nrefractor.register(require('./lang/mongodb.js'))\nrefractor.register(require('./lang/monkey.js'))\nrefractor.register(require('./lang/moonscript.js'))\nrefractor.register(require('./lang/n1ql.js'))\nrefractor.register(require('./lang/n4js.js'))\nrefractor.register(require('./lang/nand2tetris-hdl.js'))\nrefractor.register(require('./lang/naniscript.js'))\nrefractor.register(require('./lang/nasm.js'))\nrefractor.register(require('./lang/neon.js'))\nrefractor.register(require('./lang/nevod.js'))\nrefractor.register(require('./lang/nginx.js'))\nrefractor.register(require('./lang/nim.js'))\nrefractor.register(require('./lang/nix.js'))\nrefractor.register(require('./lang/nsis.js'))\nrefractor.register(require('./lang/objectivec.js'))\nrefractor.register(require('./lang/ocaml.js'))\nrefractor.register(require('./lang/opencl.js'))\nrefractor.register(require('./lang/openqasm.js'))\nrefractor.register(require('./lang/oz.js'))\nrefractor.register(require('./lang/parigp.js'))\nrefractor.register(require('./lang/parser.js'))\nrefractor.register(require('./lang/pascal.js'))\nrefractor.register(require('./lang/pascaligo.js'))\nrefractor.register(require('./lang/pcaxis.js'))\nrefractor.register(require('./lang/peoplecode.js'))\nrefractor.register(require('./lang/perl.js'))\nrefractor.register(require('./lang/php-extras.js'))\nrefractor.register(require('./lang/php.js'))\nrefractor.register(require('./lang/phpdoc.js'))\nrefractor.register(require('./lang/plsql.js'))\nrefractor.register(require('./lang/powerquery.js'))\nrefractor.register(require('./lang/powershell.js'))\nrefractor.register(require('./lang/processing.js'))\nrefractor.register(require('./lang/prolog.js'))\nrefractor.register(require('./lang/promql.js'))\nrefractor.register(require('./lang/properties.js'))\nrefractor.register(require('./lang/protobuf.js'))\nrefractor.register(require('./lang/psl.js'))\nrefractor.register(require('./lang/pug.js'))\nrefractor.register(require('./lang/puppet.js'))\nrefractor.register(require('./lang/pure.js'))\nrefractor.register(require('./lang/purebasic.js'))\nrefractor.register(require('./lang/purescript.js'))\nrefractor.register(require('./lang/python.js'))\nrefractor.register(require('./lang/q.js'))\nrefractor.register(require('./lang/qml.js'))\nrefractor.register(require('./lang/qore.js'))\nrefractor.register(require('./lang/qsharp.js'))\nrefractor.register(require('./lang/r.js'))\nrefractor.register(require('./lang/racket.js'))\nrefractor.register(require('./lang/reason.js'))\nrefractor.register(require('./lang/regex.js'))\nrefractor.register(require('./lang/rego.js'))\nrefractor.register(require('./lang/renpy.js'))\nrefractor.register(require('./lang/rest.js'))\nrefractor.register(require('./lang/rip.js'))\nrefractor.register(require('./lang/roboconf.js'))\nrefractor.register(require('./lang/robotframework.js'))\nrefractor.register(require('./lang/ruby.js'))\nrefractor.register(require('./lang/rust.js'))\nrefractor.register(require('./lang/sas.js'))\nrefractor.register(require('./lang/sass.js'))\nrefractor.register(require('./lang/scala.js'))\nrefractor.register(require('./lang/scheme.js'))\nrefractor.register(require('./lang/scss.js'))\nrefractor.register(require('./lang/shell-session.js'))\nrefractor.register(require('./lang/smali.js'))\nrefractor.register(require('./lang/smalltalk.js'))\nrefractor.register(require('./lang/smarty.js'))\nrefractor.register(require('./lang/sml.js'))\nrefractor.register(require('./lang/solidity.js'))\nrefractor.register(require('./lang/solution-file.js'))\nrefractor.register(require('./lang/soy.js'))\nrefractor.register(require('./lang/sparql.js'))\nrefractor.register(require('./lang/splunk-spl.js'))\nrefractor.register(require('./lang/sqf.js'))\nrefractor.register(require('./lang/sql.js'))\nrefractor.register(require('./lang/squirrel.js'))\nrefractor.register(require('./lang/stan.js'))\nrefractor.register(require('./lang/stylus.js'))\nrefractor.register(require('./lang/swift.js'))\nrefractor.register(require('./lang/systemd.js'))\nrefractor.register(require('./lang/t4-cs.js'))\nrefractor.register(require('./lang/t4-templating.js'))\nrefractor.register(require('./lang/t4-vb.js'))\nrefractor.register(require('./lang/tap.js'))\nrefractor.register(require('./lang/tcl.js'))\nrefractor.register(require('./lang/textile.js'))\nrefractor.register(require('./lang/toml.js'))\nrefractor.register(require('./lang/tremor.js'))\nrefractor.register(require('./lang/tsx.js'))\nrefractor.register(require('./lang/tt2.js'))\nrefractor.register(require('./lang/turtle.js'))\nrefractor.register(require('./lang/twig.js'))\nrefractor.register(require('./lang/typescript.js'))\nrefractor.register(require('./lang/typoscript.js'))\nrefractor.register(require('./lang/unrealscript.js'))\nrefractor.register(require('./lang/uorazor.js'))\nrefractor.register(require('./lang/uri.js'))\nrefractor.register(require('./lang/v.js'))\nrefractor.register(require('./lang/vala.js'))\nrefractor.register(require('./lang/vbnet.js'))\nrefractor.register(require('./lang/velocity.js'))\nrefractor.register(require('./lang/verilog.js'))\nrefractor.register(require('./lang/vhdl.js'))\nrefractor.register(require('./lang/vim.js'))\nrefractor.register(require('./lang/visual-basic.js'))\nrefractor.register(require('./lang/warpscript.js'))\nrefractor.register(require('./lang/wasm.js'))\nrefractor.register(require('./lang/web-idl.js'))\nrefractor.register(require('./lang/wiki.js'))\nrefractor.register(require('./lang/wolfram.js'))\nrefractor.register(require('./lang/wren.js'))\nrefractor.register(require('./lang/xeora.js'))\nrefractor.register(require('./lang/xml-doc.js'))\nrefractor.register(require('./lang/xojo.js'))\nrefractor.register(require('./lang/xquery.js'))\nrefractor.register(require('./lang/yaml.js'))\nrefractor.register(require('./lang/yang.js'))\nrefractor.register(require('./lang/zig.js'))\n","'use strict'\n\nmodule.exports = abap\nabap.displayName = 'abap'\nabap.aliases = []\nfunction abap(Prism) {\n  Prism.languages.abap = {\n    comment: /^\\*.*/m,\n    string: /(`|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n    'string-template': {\n      pattern: /([|}])(?:\\\\.|[^\\\\|{\\r\\n])*(?=[|{])/,\n      lookbehind: true,\n      alias: 'string'\n    },\n    /* End Of Line comments should not interfere with strings when the\nquote character occurs within them. We assume a string being highlighted\ninside an EOL comment is more acceptable than the opposite.\n*/\n    'eol-comment': {\n      pattern: /(^|\\s)\".*/m,\n      lookbehind: true,\n      alias: 'comment'\n    },\n    keyword: {\n      pattern:\n        /(\\s|\\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\\/MM\\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\\/DD\\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\\/MM\\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\\/DD\\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\\b/i,\n      lookbehind: true\n    },\n    /* Numbers can be only integers. Decimal or Hex appear only as strings */\n    number: /\\b\\d+\\b/,\n    /* Operators must always be surrounded by whitespace, they cannot be put\nadjacent to operands.\n*/\n    operator: {\n      pattern: /(\\s)(?:\\*\\*?|<[=>]?|>=?|\\?=|[-+\\/=])(?=\\s)/,\n      lookbehind: true\n    },\n    'string-operator': {\n      pattern: /(\\s)&&?(?=\\s)/,\n      lookbehind: true,\n      /* The official editor highlights */\n      alias: 'keyword'\n    },\n    'token-operator': [\n      {\n        /* Special operators used to access structure components, class methods/attributes, etc. */\n        pattern: /(\\w)(?:->?|=>|[~|{}])(?=\\w)/,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      {\n        /* Special tokens used do delimit string templates */\n        pattern: /[|{}]/,\n        alias: 'punctuation'\n      }\n    ],\n    punctuation: /[,.:()]/\n  }\n}\n","'use strict'\n\nmodule.exports = abnf\nabnf.displayName = 'abnf'\nabnf.aliases = []\nfunction abnf(Prism) {\n  ;(function (Prism) {\n    var coreRules =\n      '(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)'\n    Prism.languages.abnf = {\n      comment: /;.*/,\n      string: {\n        pattern: /(?:%[is])?\"[^\"\\n\\r]*\"/,\n        greedy: true,\n        inside: {\n          punctuation: /^%[is]/\n        }\n      },\n      range: {\n        pattern: /%(?:b[01]+-[01]+|d\\d+-\\d+|x[A-F\\d]+-[A-F\\d]+)/i,\n        alias: 'number'\n      },\n      terminal: {\n        pattern:\n          /%(?:b[01]+(?:\\.[01]+)*|d\\d+(?:\\.\\d+)*|x[A-F\\d]+(?:\\.[A-F\\d]+)*)/i,\n        alias: 'number'\n      },\n      repetition: {\n        pattern: /(^|[^\\w-])(?:\\d*\\*\\d*|\\d+)/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      definition: {\n        pattern: /(^[ \\t]*)(?:[a-z][\\w-]*|<[^<>\\r\\n]*>)(?=\\s*=)/m,\n        lookbehind: true,\n        alias: 'keyword',\n        inside: {\n          punctuation: /<|>/\n        }\n      },\n      'core-rule': {\n        pattern: RegExp(\n          '(?:(^|[^<\\\\w-])' + coreRules + '|<' + coreRules + '>)(?![\\\\w-])',\n          'i'\n        ),\n        lookbehind: true,\n        alias: ['rule', 'constant'],\n        inside: {\n          punctuation: /<|>/\n        }\n      },\n      rule: {\n        pattern: /(^|[^<\\w-])[a-z][\\w-]*|<[^<>\\r\\n]*>/i,\n        lookbehind: true,\n        inside: {\n          punctuation: /<|>/\n        }\n      },\n      operator: /=\\/?|\\//,\n      punctuation: /[()\\[\\]]/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = actionscript\nactionscript.displayName = 'actionscript'\nactionscript.aliases = []\nfunction actionscript(Prism) {\n  Prism.languages.actionscript = Prism.languages.extend('javascript', {\n    keyword:\n      /\\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\\b/,\n    operator: /\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/\n  })\n  Prism.languages.actionscript['class-name'].alias = 'function' // doesn't work with AS because AS is too complex\n  delete Prism.languages.actionscript['parameter']\n  delete Prism.languages.actionscript['literal-property']\n  if (Prism.languages.markup) {\n    Prism.languages.insertBefore('actionscript', 'string', {\n      xml: {\n        pattern:\n          /(^|[^.])<\\/?\\w+(?:\\s+[^\\s>\\/=]+=(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2)*\\s*\\/?>/,\n        lookbehind: true,\n        inside: Prism.languages.markup\n      }\n    })\n  }\n}\n","'use strict'\n\nmodule.exports = ada\nada.displayName = 'ada'\nada.aliases = []\nfunction ada(Prism) {\n  Prism.languages.ada = {\n    comment: /--.*/,\n    string: /\"(?:\"\"|[^\"\\r\\f\\n])*\"/,\n    number: [\n      {\n        pattern:\n          /\\b\\d(?:_?\\d)*#[\\dA-F](?:_?[\\dA-F])*(?:\\.[\\dA-F](?:_?[\\dA-F])*)?#(?:E[+-]?\\d(?:_?\\d)*)?/i\n      },\n      {\n        pattern: /\\b\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:E[+-]?\\d(?:_?\\d)*)?\\b/i\n      }\n    ],\n    'attr-name': /\\b'\\w+/,\n    keyword:\n      /\\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|new|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|return|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\\b/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    operator: /<[=>]?|>=?|=>?|:=|\\/=?|\\*\\*?|[&+-]/,\n    punctuation: /\\.\\.?|[,;():]/,\n    char: /'.'/,\n    variable: /\\b[a-z](?:\\w)*\\b/i\n  }\n}\n","'use strict'\n\nmodule.exports = agda\nagda.displayName = 'agda'\nagda.aliases = []\nfunction agda(Prism) {\n  ;(function (Prism) {\n    Prism.languages.agda = {\n      comment: /\\{-[\\s\\S]*?(?:-\\}|$)|--.*/,\n      string: {\n        pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n        greedy: true\n      },\n      punctuation: /[(){}⦃⦄.;@]/,\n      'class-name': {\n        pattern: /((?:data|record) +)\\S+/,\n        lookbehind: true\n      },\n      function: {\n        pattern: /(^[ \\t]*)(?!\\s)[^:\\r\\n]+(?=:)/m,\n        lookbehind: true\n      },\n      operator: {\n        pattern: /(^\\s*|\\s)(?:[=|:∀→λ\\\\?_]|->)(?=\\s)/,\n        lookbehind: true\n      },\n      keyword:\n        /\\b(?:Set|abstract|constructor|data|eta-equality|field|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\\b/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = al\nal.displayName = 'al'\nal.aliases = []\nfunction al(Prism) {\n  // based on https://github.com/microsoft/AL/blob/master/grammar/alsyntax.tmlanguage\n  Prism.languages.al = {\n    comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n    string: {\n      pattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n      greedy: true\n    },\n    function: {\n      pattern:\n        /(\\b(?:event|procedure|trigger)\\s+|(?:^|[^.])\\.\\s*)[a-z_]\\w*(?=\\s*\\()/i,\n      lookbehind: true\n    },\n    keyword: [\n      // keywords\n      /\\b(?:array|asserterror|begin|break|case|do|downto|else|end|event|exit|for|foreach|function|if|implements|in|indataset|interface|internal|local|of|procedure|program|protected|repeat|runonclient|securityfiltering|suppressdispose|temporary|then|to|trigger|until|var|while|with|withevents)\\b/i, // objects and metadata that are used like keywords\n      /\\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\\b/i\n    ],\n    number:\n      /\\b(?:0x[\\da-f]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)(?:F|LL?|U(?:LL?)?)?\\b/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    variable: /\\b(?:Curr(?:FieldNo|Page|Report)|x?Rec|RequestOptionsPage)\\b/,\n    'class-name':\n      /\\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\\b/i,\n    operator: /\\.\\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\\b(?:and|div|mod|not|or|xor)\\b/i,\n    punctuation: /[()\\[\\]{}:.;,]/\n  }\n}\n","'use strict'\n\nmodule.exports = antlr4\nantlr4.displayName = 'antlr4'\nantlr4.aliases = ['g4']\nfunction antlr4(Prism) {\n  Prism.languages.antlr4 = {\n    comment: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n    string: {\n      pattern: /'(?:\\\\.|[^\\\\'\\r\\n])*'/,\n      greedy: true\n    },\n    'character-class': {\n      pattern: /\\[(?:\\\\.|[^\\\\\\]\\r\\n])*\\]/,\n      greedy: true,\n      alias: 'regex',\n      inside: {\n        range: {\n          pattern: /([^[]|(?:^|[^\\\\])(?:\\\\\\\\)*\\\\\\[)-(?!\\])/,\n          lookbehind: true,\n          alias: 'punctuation'\n        },\n        escape:\n          /\\\\(?:u(?:[a-fA-F\\d]{4}|\\{[a-fA-F\\d]+\\})|[pP]\\{[=\\w-]+\\}|[^\\r\\nupP])/,\n        punctuation: /[\\[\\]]/\n      }\n    },\n    action: {\n      pattern: /\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\}/,\n      greedy: true,\n      inside: {\n        content: {\n          // this might be C, C++, Python, Java, C#, or any other language ANTLR4 compiles to\n          pattern: /(\\{)[\\s\\S]+(?=\\})/,\n          lookbehind: true\n        },\n        punctuation: /[{}]/\n      }\n    },\n    command: {\n      pattern:\n        /(->\\s*(?!\\s))(?:\\s*(?:,\\s*)?\\b[a-z]\\w*(?:\\s*\\([^()\\r\\n]*\\))?)+(?=\\s*;)/i,\n      lookbehind: true,\n      inside: {\n        function: /\\b\\w+(?=\\s*(?:[,(]|$))/,\n        punctuation: /[,()]/\n      }\n    },\n    annotation: {\n      pattern: /@\\w+(?:::\\w+)*/,\n      alias: 'keyword'\n    },\n    label: {\n      pattern: /#[ \\t]*\\w+/,\n      alias: 'punctuation'\n    },\n    keyword:\n      /\\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\\b/,\n    definition: [\n      {\n        pattern: /\\b[a-z]\\w*(?=\\s*:)/,\n        alias: ['rule', 'class-name']\n      },\n      {\n        pattern: /\\b[A-Z]\\w*(?=\\s*:)/,\n        alias: ['token', 'constant']\n      }\n    ],\n    constant: /\\b[A-Z][A-Z_]*\\b/,\n    operator: /\\.\\.|->|[|~]|[*+?]\\??/,\n    punctuation: /[;:()=]/\n  }\n  Prism.languages.g4 = Prism.languages.antlr4\n}\n","'use strict'\n\nmodule.exports = apacheconf\napacheconf.displayName = 'apacheconf'\napacheconf.aliases = []\nfunction apacheconf(Prism) {\n  Prism.languages.apacheconf = {\n    comment: /#.*/,\n    'directive-inline': {\n      pattern:\n        /(^[\\t ]*)\\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|Type|UserFile|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|Limit(?:InternalRecursion|Request(?:Body|Fields|FieldSize|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|SRPUnknownUserSeed|SRPVerifierFile|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UserName|UseStapling|VerifyClient|VerifyDepth)|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\\b/im,\n      lookbehind: true,\n      alias: 'property'\n    },\n    'directive-block': {\n      pattern:\n        /<\\/?\\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\\b.*>/i,\n      inside: {\n        'directive-block': {\n          pattern: /^<\\/?\\w+/,\n          inside: {\n            punctuation: /^<\\/?/\n          },\n          alias: 'tag'\n        },\n        'directive-block-parameter': {\n          pattern: /.*[^>]/,\n          inside: {\n            punctuation: /:/,\n            string: {\n              pattern: /(\"|').*\\1/,\n              inside: {\n                variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n              }\n            }\n          },\n          alias: 'attr-value'\n        },\n        punctuation: />/\n      },\n      alias: 'tag'\n    },\n    'directive-flags': {\n      pattern: /\\[(?:[\\w=],?)+\\]/,\n      alias: 'keyword'\n    },\n    string: {\n      pattern: /(\"|').*\\1/,\n      inside: {\n        variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n      }\n    },\n    variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/,\n    regex: /\\^?.*\\$|\\^.*\\$?/\n  }\n}\n","'use strict'\nvar refractorSql = require('./sql.js')\nmodule.exports = apex\napex.displayName = 'apex'\napex.aliases = []\nfunction apex(Prism) {\n  Prism.register(refractorSql)\n  ;(function (Prism) {\n    var keywords =\n      /\\b(?:(?:after|before)(?=\\s+[a-z])|abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|get(?=\\s*[{};])|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|(?:inherited|with|without)\\s+sharing)\\b/i\n    var className =\n      /\\b(?:(?=[a-z_]\\w*\\s*[<\\[])|(?!<keyword>))[A-Z_]\\w*(?:\\s*\\.\\s*[A-Z_]\\w*)*\\b(?:\\s*(?:\\[\\s*\\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source.replace(\n        /<keyword>/g,\n        function () {\n          return keywords.source\n        }\n      )\n    /** @param {string} pattern */\n    function insertClassName(pattern) {\n      return RegExp(\n        pattern.replace(/<CLASS-NAME>/g, function () {\n          return className\n        }),\n        'i'\n      )\n    }\n    var classNameInside = {\n      keyword: keywords,\n      punctuation: /[()\\[\\]{};,:.<>]/\n    }\n    Prism.languages.apex = {\n      comment: Prism.languages.clike.comment,\n      string: Prism.languages.clike.string,\n      sql: {\n        pattern: /((?:[=,({:]|\\breturn)\\s*)\\[[^\\[\\]]*\\]/i,\n        lookbehind: true,\n        greedy: true,\n        alias: 'language-sql',\n        inside: Prism.languages.sql\n      },\n      annotation: {\n        pattern: /@\\w+\\b/,\n        alias: 'punctuation'\n      },\n      'class-name': [\n        {\n          pattern: insertClassName(\n            /(\\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\\s+\\w+\\s+on)\\s+)<CLASS-NAME>/\n              .source\n          ),\n          lookbehind: true,\n          inside: classNameInside\n        },\n        {\n          // cast\n          pattern: insertClassName(\n            /(\\(\\s*)<CLASS-NAME>(?=\\s*\\)\\s*[\\w(])/.source\n          ),\n          lookbehind: true,\n          inside: classNameInside\n        },\n        {\n          // variable/parameter declaration and return types\n          pattern: insertClassName(/<CLASS-NAME>(?=\\s*\\w+\\s*[;=,(){:])/.source),\n          inside: classNameInside\n        }\n      ],\n      trigger: {\n        pattern: /(\\btrigger\\s+)\\w+\\b/i,\n        lookbehind: true,\n        alias: 'class-name'\n      },\n      keyword: keywords,\n      function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n      boolean: /\\b(?:false|true)\\b/i,\n      number: /(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d+|L)?)\\b/i,\n      operator:\n        /[!=](?:==?)?|\\?\\.?|&&|\\|\\||--|\\+\\+|[-+*/^&|]=?|:|<<?=?|>{1,3}=?/,\n      punctuation: /[()\\[\\]{};,.]/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = apl\napl.displayName = 'apl'\napl.aliases = []\nfunction apl(Prism) {\n  Prism.languages.apl = {\n    comment: /(?:⍝|#[! ]).*$/m,\n    string: {\n      pattern: /'(?:[^'\\r\\n]|'')*'/,\n      greedy: true\n    },\n    number:\n      /¯?(?:\\d*\\.?\\b\\d+(?:e[+¯]?\\d+)?|¯|∞)(?:j¯?(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+¯]?\\d+)?|¯|∞))?/i,\n    statement: /:[A-Z][a-z][A-Za-z]*\\b/,\n    'system-function': {\n      pattern: /⎕[A-Z]+/i,\n      alias: 'function'\n    },\n    constant: /[⍬⌾#⎕⍞]/,\n    function: /[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/,\n    'monadic-operator': {\n      pattern: /[\\\\\\/⌿⍀¨⍨⌶&∥]/,\n      alias: 'operator'\n    },\n    'dyadic-operator': {\n      pattern: /[.⍣⍠⍤∘⌸@⌺⍥]/,\n      alias: 'operator'\n    },\n    assignment: {\n      pattern: /←/,\n      alias: 'keyword'\n    },\n    punctuation: /[\\[;\\]()◇⋄]/,\n    dfn: {\n      pattern: /[{}⍺⍵⍶⍹∇⍫:]/,\n      alias: 'builtin'\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = applescript\napplescript.displayName = 'applescript'\napplescript.aliases = []\nfunction applescript(Prism) {\n  Prism.languages.applescript = {\n    comment: [\n      // Allow one level of nesting\n      /\\(\\*(?:\\(\\*(?:[^*]|\\*(?!\\)))*\\*\\)|(?!\\(\\*)[\\s\\S])*?\\*\\)/,\n      /--.+/,\n      /#.+/\n    ],\n    string: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?\\b/i,\n    operator: [\n      /[&=≠≤≥*+\\-\\/÷^]|[<>]=?/,\n      /\\b(?:(?:begin|end|start)s? with|(?:contains?|(?:does not|doesn't) contain)|(?:is|isn't|is not) (?:contained by|in)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:comes|(?:does not|doesn't) come) (?:after|before)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equal to|equals|is not|isn't)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|as|div|mod|not|or))\\b/\n    ],\n    keyword:\n      /\\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\b/,\n    'class-name':\n      /\\b(?:POSIX file|RGB color|alias|application|boolean|centimeters|centimetres|class|constant|cubic centimeters|cubic centimetres|cubic feet|cubic inches|cubic meters|cubic metres|cubic yards|date|degrees Celsius|degrees Fahrenheit|degrees Kelvin|feet|file|gallons|grams|inches|integer|kilograms|kilometers|kilometres|list|liters|litres|meters|metres|miles|number|ounces|pounds|quarts|real|record|reference|script|square feet|square kilometers|square kilometres|square meters|square metres|square miles|square yards|text|yards)\\b/,\n    punctuation: /[{}():,¬«»《》]/\n  }\n}\n","'use strict'\n\nmodule.exports = aql\naql.displayName = 'aql'\naql.aliases = []\nfunction aql(Prism) {\n  Prism.languages.aql = {\n    comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n    property: {\n      pattern:\n        /([{,]\\s*)(?:(?!\\d)\\w+|([\"'´`])(?:(?!\\2)[^\\\\\\r\\n]|\\\\.)*\\2)(?=\\s*:)/,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\.)*\\1/,\n      greedy: true\n    },\n    identifier: {\n      pattern: /([´`])(?:(?!\\1)[^\\\\\\r\\n]|\\\\.)*\\1/,\n      greedy: true\n    },\n    variable: /@@?\\w+/,\n    keyword: [\n      {\n        pattern: /(\\bWITH\\s+)COUNT(?=\\s+INTO\\b)/i,\n        lookbehind: true\n      },\n      /\\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_PATHS|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WINDOW|WITH)\\b/i, // pseudo keywords get a lookbehind to avoid false positives\n      {\n        pattern: /(^|[^\\w.[])(?:KEEP|PRUNE|SEARCH|TO)\\b/i,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|[^\\w.[])(?:CURRENT|NEW|OLD)\\b/,\n        lookbehind: true\n      },\n      {\n        pattern: /\\bOPTIONS(?=\\s*\\{)/i\n      }\n    ],\n    function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n    boolean: /\\b(?:false|true)\\b/i,\n    range: {\n      pattern: /\\.\\./,\n      alias: 'operator'\n    },\n    number: [\n      /\\b0b[01]+/i,\n      /\\b0x[0-9a-f]+/i,\n      /(?:\\B\\.\\d+|\\b(?:0|[1-9]\\d*)(?:\\.\\d+)?)(?:e[+-]?\\d+)?/i\n    ],\n    operator: /\\*{2,}|[=!]~|[!=<>]=?|&&|\\|\\||[-+*/%]/,\n    punctuation: /::|[?.:,;()[\\]{}]/\n  }\n}\n","'use strict'\nvar refractorCpp = require('./cpp.js')\nmodule.exports = arduino\narduino.displayName = 'arduino'\narduino.aliases = ['ino']\nfunction arduino(Prism) {\n  Prism.register(refractorCpp)\n  Prism.languages.arduino = Prism.languages.extend('cpp', {\n    keyword:\n      /\\b(?:String|array|bool|boolean|break|byte|case|catch|continue|default|do|double|else|finally|for|function|goto|if|in|instanceof|int|integer|long|loop|new|null|return|setup|string|switch|throw|try|void|while|word)\\b/,\n    constant:\n      /\\b(?:ANALOG_MESSAGE|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FIRMATA_STRING|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL2V56|LED_BUILTIN|LOW|OUTPUT|REPORT_ANALOG|REPORT_DIGITAL|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET)\\b/,\n    builtin:\n      /\\b(?:Audio|BSSID|Bridge|Client|Console|EEPROM|Esplora|EsploraTFT|Ethernet|EthernetClient|EthernetServer|EthernetUDP|File|FileIO|FileSystem|Firmata|GPRS|GSM|GSMBand|GSMClient|GSMModem|GSMPIN|GSMScanner|GSMServer|GSMVoiceCall|GSM_SMS|HttpClient|IPAddress|IRread|Keyboard|KeyboardController|LiquidCrystal|LiquidCrystal_I2C|Mailbox|Mouse|MouseController|PImage|Process|RSSI|RobotControl|RobotMotor|SD|SPI|SSID|Scheduler|Serial|Server|Servo|SoftwareSerial|Stepper|Stream|TFT|Task|USBHost|WiFi|WiFiClient|WiFiServer|WiFiUDP|Wire|YunClient|YunServer|abs|addParameter|analogRead|analogReadResolution|analogReference|analogWrite|analogWriteResolution|answerCall|attach|attachGPRS|attachInterrupt|attached|autoscroll|available|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|bitClear|bitRead|bitSet|bitWrite|blink|blinkVersion|buffer|changePIN|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compassRead|config|connect|connected|constrain|cos|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|delay|delayMicroseconds|detach|detachInterrupt|digitalRead|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endTransmission|endWrite|exists|exitValue|fill|find|findUntil|flush|gatewayIP|get|getAsynchronously|getBand|getButton|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|home|image|interrupts|isActionDone|isDirectory|isListening|isPIN|isPressed|isValid|keyPressed|keyReleased|keyboardRead|knobRead|leftToRight|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|lowByte|macAddress|maintain|map|max|messageAvailable|micros|millis|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|noListenOnLocalhost|noStroke|noTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|pinMode|playFile|playMelody|point|pointTo|position|pow|prepare|press|print|printFirmwareVersion|printVersion|println|process|processInput|pulseIn|put|random|randomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|run|runAsynchronously|runShellCommand|runShellCommandAsynchronously|running|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|serialEvent|setBand|setBitOrder|setClockDivider|setCursor|setDNS|setDataMode|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|shiftIn|shiftOut|shutdown|sin|size|sqrt|startLoop|step|stop|stroke|subnetMask|switchPIN|tan|tempoWrite|text|tone|transfer|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRGB|writeRed|yield)\\b/\n  })\n  Prism.languages.ino = Prism.languages.arduino\n}\n","'use strict'\n\nmodule.exports = arff\narff.displayName = 'arff'\narff.aliases = []\nfunction arff(Prism) {\n  Prism.languages.arff = {\n    comment: /%.*/,\n    string: {\n      pattern: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    keyword: /@(?:attribute|data|end|relation)\\b/i,\n    number: /\\b\\d+(?:\\.\\d+)?\\b/,\n    punctuation: /[{},]/\n  }\n}\n","'use strict'\n\nmodule.exports = asciidoc\nasciidoc.displayName = 'asciidoc'\nasciidoc.aliases = ['adoc']\nfunction asciidoc(Prism) {\n  ;(function (Prism) {\n    var attributes = {\n      pattern:\n        /(^[ \\t]*)\\[(?!\\[)(?:([\"'$`])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\[(?:[^\\[\\]\\\\]|\\\\.)*\\]|[^\\[\\]\\\\\"'$`]|\\\\.)*\\]/m,\n      lookbehind: true,\n      inside: {\n        quoted: {\n          pattern: /([$`])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n          inside: {\n            punctuation: /^[$`]|[$`]$/\n          }\n        },\n        interpreted: {\n          pattern: /'(?:[^'\\\\]|\\\\.)*'/,\n          inside: {\n            punctuation: /^'|'$/ // See rest below\n          }\n        },\n        string: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n        variable: /\\w+(?==)/,\n        punctuation: /^\\[|\\]$|,/,\n        operator: /=/,\n        // The negative look-ahead prevents blank matches\n        'attr-value': /(?!^\\s+$).+/\n      }\n    }\n    var asciidoc = (Prism.languages.asciidoc = {\n      'comment-block': {\n        pattern: /^(\\/{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1/m,\n        alias: 'comment'\n      },\n      table: {\n        pattern: /^\\|={3,}(?:(?:\\r?\\n|\\r(?!\\n)).*)*?(?:\\r?\\n|\\r)\\|={3,}$/m,\n        inside: {\n          specifiers: {\n            pattern:\n              /(?:(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)[+*](?:[<^>](?:\\.[<^>])?|\\.[<^>])?|[<^>](?:\\.[<^>])?|\\.[<^>])[a-z]*|[a-z]+)(?=\\|)/,\n            alias: 'attr-value'\n          },\n          punctuation: {\n            pattern: /(^|[^\\\\])[|!]=*/,\n            lookbehind: true\n          } // See rest below\n        }\n      },\n      'passthrough-block': {\n        pattern: /^(\\+{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n        inside: {\n          punctuation: /^\\++|\\++$/ // See rest below\n        }\n      },\n      // Literal blocks and listing blocks\n      'literal-block': {\n        pattern: /^(-{4,}|\\.{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n        inside: {\n          punctuation: /^(?:-+|\\.+)|(?:-+|\\.+)$/ // See rest below\n        }\n      },\n      // Sidebar blocks, quote blocks, example blocks and open blocks\n      'other-block': {\n        pattern:\n          /^(--|\\*{4,}|_{4,}|={4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n        inside: {\n          punctuation: /^(?:-+|\\*+|_+|=+)|(?:-+|\\*+|_+|=+)$/ // See rest below\n        }\n      },\n      // list-punctuation and list-label must appear before indented-block\n      'list-punctuation': {\n        pattern:\n          /(^[ \\t]*)(?:-|\\*{1,5}|\\.{1,5}|(?:[a-z]|\\d+)\\.|[xvi]+\\))(?= )/im,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      'list-label': {\n        pattern: /(^[ \\t]*)[a-z\\d].+(?::{2,4}|;;)(?=\\s)/im,\n        lookbehind: true,\n        alias: 'symbol'\n      },\n      'indented-block': {\n        pattern: /((\\r?\\n|\\r)\\2)([ \\t]+)\\S.*(?:(?:\\r?\\n|\\r)\\3.+)*(?=\\2{2}|$)/,\n        lookbehind: true\n      },\n      comment: /^\\/\\/.*/m,\n      title: {\n        pattern:\n          /^.+(?:\\r?\\n|\\r)(?:={3,}|-{3,}|~{3,}|\\^{3,}|\\+{3,})$|^={1,5} .+|^\\.(?![\\s.]).*/m,\n        alias: 'important',\n        inside: {\n          punctuation: /^(?:\\.|=+)|(?:=+|-+|~+|\\^+|\\++)$/ // See rest below\n        }\n      },\n      'attribute-entry': {\n        pattern: /^:[^:\\r\\n]+:(?: .*?(?: \\+(?:\\r?\\n|\\r).*?)*)?$/m,\n        alias: 'tag'\n      },\n      attributes: attributes,\n      hr: {\n        pattern: /^'{3,}$/m,\n        alias: 'punctuation'\n      },\n      'page-break': {\n        pattern: /^<{3,}$/m,\n        alias: 'punctuation'\n      },\n      admonition: {\n        pattern: /^(?:CAUTION|IMPORTANT|NOTE|TIP|WARNING):/m,\n        alias: 'keyword'\n      },\n      callout: [\n        {\n          pattern: /(^[ \\t]*)<?\\d*>/m,\n          lookbehind: true,\n          alias: 'symbol'\n        },\n        {\n          pattern: /<\\d+>/,\n          alias: 'symbol'\n        }\n      ],\n      macro: {\n        pattern:\n          /\\b[a-z\\d][a-z\\d-]*::?(?:[^\\s\\[\\]]*\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n        inside: {\n          function: /^[a-z\\d-]+(?=:)/,\n          punctuation: /^::?/,\n          attributes: {\n            pattern: /(?:\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n            inside: attributes.inside\n          }\n        }\n      },\n      inline: {\n        /*\nThe initial look-behind prevents the highlighting of escaped quoted text.\nQuoted text can be multi-line but cannot span an empty line.\nAll quoted text can have attributes before [foobar, 'foobar', baz=\"bar\"].\nFirst, we handle the constrained quotes.\nThose must be bounded by non-word chars and cannot have spaces between the delimiter and the first char.\nThey are, in order: _emphasis_, ``double quotes'', `single quotes', `monospace`, 'emphasis', *strong*, +monospace+ and #unquoted#\nThen we handle the unconstrained quotes.\nThose do not have the restrictions of the constrained quotes.\nThey are, in order: __emphasis__, **strong**, ++monospace++, +++passthrough+++, ##unquoted##, $$passthrough$$, ~subscript~, ^superscript^, {attribute-reference}, [[anchor]], [[[bibliography anchor]]], <<xref>>, (((indexes))) and ((indexes))\n*/\n        pattern:\n          /(^|[^\\\\])(?:(?:\\B\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\\\.)*\\])?(?:\\b_(?!\\s)(?: _|[^_\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: _|[^_\\\\\\r\\n]|\\\\.)+)*_\\b|\\B``(?!\\s).+?(?:(?:\\r?\\n|\\r).+?)*''\\B|\\B`(?!\\s)(?:[^`'\\s]|\\s+\\S)+['`]\\B|\\B(['*+#])(?!\\s)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+)*\\3\\B)|(?:\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\4)[^\\\\]|\\\\.)*\\4|\\\\.)*\\])?(?:(__|\\*\\*|\\+\\+\\+?|##|\\$\\$|[~^]).+?(?:(?:\\r?\\n|\\r).+?)*\\5|\\{[^}\\r\\n]+\\}|\\[\\[\\[?.+?(?:(?:\\r?\\n|\\r).+?)*\\]?\\]\\]|<<.+?(?:(?:\\r?\\n|\\r).+?)*>>|\\(\\(\\(?.+?(?:(?:\\r?\\n|\\r).+?)*\\)?\\)\\)))/m,\n        lookbehind: true,\n        inside: {\n          attributes: attributes,\n          url: {\n            pattern: /^(?:\\[\\[\\[?.+?\\]?\\]\\]|<<.+?>>)$/,\n            inside: {\n              punctuation: /^(?:\\[\\[\\[?|<<)|(?:\\]\\]\\]?|>>)$/\n            }\n          },\n          'attribute-ref': {\n            pattern: /^\\{.+\\}$/,\n            inside: {\n              variable: {\n                pattern: /(^\\{)[a-z\\d,+_-]+/,\n                lookbehind: true\n              },\n              operator: /^[=?!#%@$]|!(?=[:}])/,\n              punctuation: /^\\{|\\}$|::?/\n            }\n          },\n          italic: {\n            pattern: /^(['_])[\\s\\S]+\\1$/,\n            inside: {\n              punctuation: /^(?:''?|__?)|(?:''?|__?)$/\n            }\n          },\n          bold: {\n            pattern: /^\\*[\\s\\S]+\\*$/,\n            inside: {\n              punctuation: /^\\*\\*?|\\*\\*?$/\n            }\n          },\n          punctuation:\n            /^(?:``?|\\+{1,3}|##?|\\$\\$|[~^]|\\(\\(\\(?)|(?:''?|\\+{1,3}|##?|\\$\\$|[~^`]|\\)?\\)\\))$/\n        }\n      },\n      replacement: {\n        pattern: /\\((?:C|R|TM)\\)/,\n        alias: 'builtin'\n      },\n      entity: /&#?[\\da-z]{1,8};/i,\n      'line-continuation': {\n        pattern: /(^| )\\+$/m,\n        lookbehind: true,\n        alias: 'punctuation'\n      }\n    }) // Allow some nesting. There is no recursion though, so cloning should not be needed.\n    function copyFromAsciiDoc(keys) {\n      keys = keys.split(' ')\n      var o = {}\n      for (var i = 0, l = keys.length; i < l; i++) {\n        o[keys[i]] = asciidoc[keys[i]]\n      }\n      return o\n    }\n    attributes.inside['interpreted'].inside.rest = copyFromAsciiDoc(\n      'macro inline replacement entity'\n    )\n    asciidoc['passthrough-block'].inside.rest = copyFromAsciiDoc('macro')\n    asciidoc['literal-block'].inside.rest = copyFromAsciiDoc('callout')\n    asciidoc['table'].inside.rest = copyFromAsciiDoc(\n      'comment-block passthrough-block literal-block other-block list-punctuation indented-block comment title attribute-entry attributes hr page-break admonition list-label callout macro inline replacement entity line-continuation'\n    )\n    asciidoc['other-block'].inside.rest = copyFromAsciiDoc(\n      'table list-punctuation indented-block comment attribute-entry attributes hr page-break admonition list-label macro inline replacement entity line-continuation'\n    )\n    asciidoc['title'].inside.rest = copyFromAsciiDoc(\n      'macro inline replacement entity'\n    ) // Plugin to make entity title show the real entity, idea by Roman Komarov\n    Prism.hooks.add('wrap', function (env) {\n      if (env.type === 'entity') {\n        env.attributes['title'] = env.content.value.replace(/&amp;/, '&')\n      }\n    })\n    Prism.languages.adoc = Prism.languages.asciidoc\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = asm6502\nasm6502.displayName = 'asm6502'\nasm6502.aliases = []\nfunction asm6502(Prism) {\n  Prism.languages.asm6502 = {\n    comment: /;.*/,\n    directive: {\n      pattern: /\\.\\w+(?= )/,\n      alias: 'property'\n    },\n    string: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n    'op-code': {\n      pattern:\n        /\\b(?:ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA|adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya)\\b/,\n      alias: 'keyword'\n    },\n    'hex-number': {\n      pattern: /#?\\$[\\da-f]{1,4}\\b/i,\n      alias: 'number'\n    },\n    'binary-number': {\n      pattern: /#?%[01]+\\b/,\n      alias: 'number'\n    },\n    'decimal-number': {\n      pattern: /#?\\b\\d+\\b/,\n      alias: 'number'\n    },\n    register: {\n      pattern: /\\b[xya]\\b/i,\n      alias: 'variable'\n    },\n    punctuation: /[(),:]/\n  }\n}\n","'use strict'\n\nmodule.exports = asmatmel\nasmatmel.displayName = 'asmatmel'\nasmatmel.aliases = []\nfunction asmatmel(Prism) {\n  Prism.languages.asmatmel = {\n    comment: {\n      pattern: /;.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    constant: /\\b(?:PORT[A-Z]|DDR[A-Z]|(?:DD|P)[A-Z](?:\\d|[0-2]\\d|3[01]))\\b/,\n    directive: {\n      pattern: /\\.\\w+(?= )/,\n      alias: 'property'\n    },\n    'r-register': {\n      pattern: /\\br(?:\\d|[12]\\d|3[01])\\b/,\n      alias: 'variable'\n    },\n    'op-code': {\n      pattern:\n        /\\b(?:ADC|ADD|ADIW|AND|ANDI|ASR|BCLR|BLD|BRBC|BRBS|BRCC|BRCS|BREAK|BREQ|BRGE|BRHC|BRHS|BRID|BRIE|BRLO|BRLT|BRMI|BRNE|BRPL|BRSH|BRTC|BRTS|BRVC|BRVS|BSET|BST|CALL|CBI|CBR|CLC|CLH|CLI|CLN|CLR|CLS|CLT|CLV|CLZ|COM|CP|CPC|CPI|CPSE|DEC|DES|EICALL|EIJMP|ELPM|EOR|FMUL|FMULS|FMULSU|ICALL|IJMP|IN|INC|JMP|LAC|LAS|LAT|LD|LD[A-Za-z0-9]|LPM|LSL|LSR|MOV|MOVW|MUL|MULS|MULSU|NEG|NOP|OR|ORI|OUT|POP|PUSH|RCALL|RET|RETI|RJMP|ROL|ROR|SBC|SBCI|SBI|SBIC|SBIS|SBIW|SBR|SBRC|SBRS|SEC|SEH|SEI|SEN|SER|SES|SET|SEV|SEZ|SLEEP|SPM|ST|ST[A-Z0-9]|SUB|SUBI|SWAP|TST|WDR|XCH|adc|add|adiw|and|andi|asr|bclr|bld|brbc|brbs|brcc|brcs|break|breq|brge|brhc|brhs|brid|brie|brlo|brlt|brmi|brne|brpl|brsh|brtc|brts|brvc|brvs|bset|bst|call|cbi|cbr|clc|clh|cli|cln|clr|cls|clt|clv|clz|com|cp|cpc|cpi|cpse|dec|des|eicall|eijmp|elpm|eor|fmul|fmuls|fmulsu|icall|ijmp|in|inc|jmp|lac|las|lat|ld|ld[a-z0-9]|lpm|lsl|lsr|mov|movw|mul|muls|mulsu|neg|nop|or|ori|out|pop|push|rcall|ret|reti|rjmp|rol|ror|sbc|sbci|sbi|sbic|sbis|sbiw|sbr|sbrc|sbrs|sec|seh|sei|sen|ser|ses|set|sev|sez|sleep|spm|st|st[a-zA-Z0-9]|sub|subi|swap|tst|wdr|xch)\\b/,\n      alias: 'keyword'\n    },\n    'hex-number': {\n      pattern: /#?\\$[\\da-f]{2,4}\\b/i,\n      alias: 'number'\n    },\n    'binary-number': {\n      pattern: /#?%[01]+\\b/,\n      alias: 'number'\n    },\n    'decimal-number': {\n      pattern: /#?\\b\\d+\\b/,\n      alias: 'number'\n    },\n    register: {\n      pattern: /\\b[acznvshtixy]\\b/i,\n      alias: 'variable'\n    },\n    operator: />>=?|<<=?|&&?|\\|\\|?|[-+*/%&|^!=<>?]=?/,\n    punctuation: /[(),:]/\n  }\n}\n","'use strict'\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = aspnet\naspnet.displayName = 'aspnet'\naspnet.aliases = []\nfunction aspnet(Prism) {\n  Prism.register(refractorCsharp)\n  Prism.languages.aspnet = Prism.languages.extend('markup', {\n    'page-directive': {\n      pattern: /<%\\s*@.*%>/,\n      alias: 'tag',\n      inside: {\n        'page-directive': {\n          pattern:\n            /<%\\s*@\\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,\n          alias: 'tag'\n        },\n        rest: Prism.languages.markup.tag.inside\n      }\n    },\n    directive: {\n      pattern: /<%.*%>/,\n      alias: 'tag',\n      inside: {\n        directive: {\n          pattern: /<%\\s*?[$=%#:]{0,2}|%>/,\n          alias: 'tag'\n        },\n        rest: Prism.languages.csharp\n      }\n    }\n  }) // Regexp copied from prism-markup, with a negative look-ahead added\n  Prism.languages.aspnet.tag.pattern =\n    /<(?!%)\\/?[^\\s>\\/]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/ // match directives of attribute value foo=\"<% Bar %>\"\n  Prism.languages.insertBefore(\n    'inside',\n    'punctuation',\n    {\n      directive: Prism.languages.aspnet['directive']\n    },\n    Prism.languages.aspnet.tag.inside['attr-value']\n  )\n  Prism.languages.insertBefore('aspnet', 'comment', {\n    'asp-comment': {\n      pattern: /<%--[\\s\\S]*?--%>/,\n      alias: ['asp', 'comment']\n    }\n  }) // script runat=\"server\" contains csharp, not javascript\n  Prism.languages.insertBefore(\n    'aspnet',\n    Prism.languages.javascript ? 'script' : 'tag',\n    {\n      'asp-script': {\n        pattern:\n          /(<script(?=.*runat=['\"]?server\\b)[^>]*>)[\\s\\S]*?(?=<\\/script>)/i,\n        lookbehind: true,\n        alias: ['asp', 'script'],\n        inside: Prism.languages.csharp || {}\n      }\n    }\n  )\n}\n","'use strict'\n\nmodule.exports = autohotkey\nautohotkey.displayName = 'autohotkey'\nautohotkey.aliases = []\nfunction autohotkey(Prism) {\n  // NOTES - follows first-first highlight method, block is locked after highlight, different from SyntaxHl\n  Prism.languages.autohotkey = {\n    comment: [\n      {\n        pattern: /(^|\\s);.*/,\n        lookbehind: true\n      },\n      {\n        pattern:\n          /(^[\\t ]*)\\/\\*(?:[\\r\\n](?![ \\t]*\\*\\/)|[^\\r\\n])*(?:[\\r\\n][ \\t]*\\*\\/)?/m,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    tag: {\n      // labels\n      pattern: /^([ \\t]*)[^\\s,`\":]+(?=:[ \\t]*$)/m,\n      lookbehind: true\n    },\n    string: /\"(?:[^\"\\n\\r]|\"\")*\"/,\n    variable: /%\\w+%/,\n    number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n    operator:\n      /\\?|\\/\\/?=?|:=|\\|[=|]?|&[=&]?|\\+[=+]?|-[=-]?|\\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\\b(?:AND|NOT|OR)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    selector:\n      /\\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\\b/i,\n    constant:\n      /\\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guicontrol|a_guicontrolevent|a_guievent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel|programfiles)\\b/i,\n    builtin:\n      /\\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|isfunc|islabel|IsObject|ln|log|ltrim|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|numget|numput|onmessage|regexmatch|regexreplace|registercallback|round|rtrim|sb_seticon|sb_setparts|sb_settext|sin|sqrt|strlen|strreplace|strsplit|substr|tan|tv_add|tv_delete|tv_get|tv_getchild|tv_getcount|tv_getnext|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__Call|__Get|__New|__Set)\\b/i,\n    symbol:\n      /\\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\\b/i,\n    important:\n      /#\\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|DerefChar|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|If|IfTimeout|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InputLevel|InstallKeybdHook|InstallMouseHook|KeyHistory|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|MenuMaskKey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|Warn|WinActivateForce)\\b/i,\n    keyword:\n      /\\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Catch|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|Finally|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|Region|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Throw|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|Try|TryAgain|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\\b/i,\n    function: /[^(); \\t,\\n+*\\-=?>:\\\\\\/<&%\\[\\]]+(?=\\()/,\n    punctuation: /[{}[\\]():,]/\n  }\n}\n","'use strict'\n\nmodule.exports = autoit\nautoit.displayName = 'autoit'\nautoit.aliases = []\nfunction autoit(Prism) {\n  Prism.languages.autoit = {\n    comment: [\n      /;.*/,\n      {\n        // The multi-line comments delimiters can actually be commented out with \";\"\n        pattern:\n          /(^[\\t ]*)#(?:comments-start|cs)[\\s\\S]*?^[ \\t]*#(?:ce|comments-end)/m,\n        lookbehind: true\n      }\n    ],\n    url: {\n      pattern: /(^[\\t ]*#include\\s+)(?:<[^\\r\\n>]+>|\"[^\\r\\n\"]+\")/m,\n      lookbehind: true\n    },\n    string: {\n      pattern: /([\"'])(?:\\1\\1|(?!\\1)[^\\r\\n])*\\1/,\n      greedy: true,\n      inside: {\n        variable: /([%$@])\\w+\\1/\n      }\n    },\n    directive: {\n      pattern: /(^[\\t ]*)#[\\w-]+/m,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    function: /\\b\\w+(?=\\()/,\n    // Variables and macros\n    variable: /[$@]\\w+/,\n    keyword:\n      /\\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\\b/i,\n    number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\n    boolean: /\\b(?:False|True)\\b/i,\n    operator: /<[=>]?|[-+*\\/=&>]=?|[?^]|\\b(?:And|Not|Or)\\b/i,\n    punctuation: /[\\[\\]().,:]/\n  }\n}\n","'use strict'\n\nmodule.exports = avisynth\navisynth.displayName = 'avisynth'\navisynth.aliases = ['avs']\nfunction avisynth(Prism) {\n  // http://avisynth.nl/index.php/The_full_AviSynth_grammar\n  ;(function (Prism) {\n    function replace(pattern, replacements) {\n      return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n        return replacements[+index]\n      })\n    }\n    function re(pattern, replacements, flags) {\n      return RegExp(replace(pattern, replacements), flags || '')\n    }\n    var types = /bool|clip|float|int|string|val/.source\n    var internals = [\n      // bools\n      /is(?:bool|clip|float|int|string)|defined|(?:(?:internal)?function|var)?exists?/\n        .source, // control\n      /apply|assert|default|eval|import|nop|select|undefined/.source, // global\n      /opt_(?:allowfloataudio|avipadscanlines|dwchannelmask|enable_(?:b64a|planartopackedrgb|v210|y3_10_10|y3_10_16)|usewaveextensible|vdubplanarhack)|set(?:cachemode|maxcpu|memorymax|planarlegacyalignment|workingdir)/\n        .source, // conv\n      /hex(?:value)?|value/.source, // numeric\n      /abs|ceil|continued(?:denominator|numerator)?|exp|floor|fmod|frac|log(?:10)?|max|min|muldiv|pi|pow|rand|round|sign|spline|sqrt/\n        .source, // trig\n      /a?sinh?|a?cosh?|a?tan[2h]?/.source, // bit\n      /(?:bit(?:and|not|x?or|[lr]?shift[aslu]?|sh[lr]|sa[lr]|[lr]rotatel?|ro[rl]|te?st|set(?:count)?|cl(?:ea)?r|ch(?:an)?ge?))/\n        .source, // runtime\n      /average(?:[bgr]|chroma[uv]|luma)|(?:[rgb]|chroma[uv]|luma|rgb|[yuv](?=difference(?:fromprevious|tonext)))difference(?:fromprevious|tonext)?|[yuvrgb]plane(?:median|min|max|minmaxdifference)/\n        .source, // script\n      /getprocessinfo|logmsg|script(?:dir(?:utf8)?|file(?:utf8)?|name(?:utf8)?)|setlogparams/\n        .source, // string\n      /chr|(?:fill|find|left|mid|replace|rev|right)str|format|[lu]case|ord|str(?:cmpi?|fromutf8|len|toutf8)|time|trim(?:all|left|right)/\n        .source, // version\n      /isversionorgreater|version(?:number|string)/.source, // helper\n      /buildpixeltype|colorspacenametopixeltype/.source, // avsplus\n      /addautoloaddir|on(?:cpu|cuda)|prefetch|setfiltermtmode/.source\n    ].join('|')\n    var properties = [\n      // content\n      /has(?:audio|video)/.source, // resolution\n      /height|width/.source, // framerate\n      /frame(?:count|rate)|framerate(?:denominator|numerator)/.source, // interlacing\n      /getparity|is(?:field|frame)based/.source, // color format\n      /bitspercomponent|componentsize|hasalpha|is(?:planar(?:rgba?)?|interleaved|rgb(?:24|32|48|64)?|y(?:8|u(?:va?|y2))?|yv(?:12|16|24|411)|420|422|444|packedrgb)|numcomponents|pixeltype/\n        .source, // audio\n      /audio(?:bits|channels|duration|length(?:[fs]|hi|lo)?|rate)|isaudio(?:float|int)/\n        .source\n    ].join('|')\n    var filters = [\n      // source\n      /avi(?:file)?source|directshowsource|image(?:reader|source|sourceanim)|opendmlsource|segmented(?:avisource|directshowsource)|wavsource/\n        .source, // color\n      /coloryuv|convertbacktoyuy2|convertto(?:RGB(?:24|32|48|64)|(?:planar)?RGBA?|Y8?|YV(?:12|16|24|411)|YUVA?(?:411|420|422|444)|YUY2)|fixluminance|gr[ae]yscale|invert|levels|limiter|mergea?rgb|merge(?:chroma|luma)|rgbadjust|show(?:alpha|blue|green|red)|swapuv|tweak|[uv]toy8?|ytouv/\n        .source, // overlay\n      /(?:colorkey|reset)mask|layer|mask(?:hs)?|merge|overlay|subtract/.source, // geometry\n      /addborders|(?:bicubic|bilinear|blackman|gauss|lanczos4|lanczos|point|sinc|spline(?:16|36|64))resize|crop(?:bottom)?|flip(?:horizontal|vertical)|(?:horizontal|vertical)?reduceby2|letterbox|skewrows|turn(?:180|left|right)/\n        .source, // pixel\n      /blur|fixbrokenchromaupsampling|generalconvolution|(?:spatial|temporal)soften|sharpen/\n        .source, // timeline\n      /trim|(?:un)?alignedsplice|(?:assume|assumescaled|change|convert)FPS|(?:delete|duplicate)frame|dissolve|fade(?:in|io|out)[02]?|freezeframe|interleave|loop|reverse|select(?:even|odd|(?:range)?every)/\n        .source, // interlace\n      /assume[bt]ff|assume(?:field|frame)based|bob|complementparity|doubleweave|peculiarblend|pulldown|separate(?:columns|fields|rows)|swapfields|weave(?:columns|rows)?/\n        .source, // audio\n      /amplify(?:db)?|assumesamplerate|audiodub(?:ex)?|audiotrim|convertaudioto(?:(?:8|16|24|32)bit|float)|converttomono|delayaudio|ensurevbrmp3sync|get(?:left|right)?channel|kill(?:audio|video)|mergechannels|mixaudio|monotostereo|normalize|resampleaudio|ssrc|supereq|timestretch/\n        .source, // conditional\n      /animate|applyrange|conditional(?:filter|reader|select)|frameevaluate|scriptclip|tcp(?:server|source)|writefile(?:end|if|start)?/\n        .source, // export\n      /imagewriter/.source, // debug\n      /blackness|blankclip|colorbars(?:hd)?|compare|dumpfiltergraph|echo|histogram|info|messageclip|preroll|setgraphanalysis|show(?:framenumber|smpte|time)|showfiveversions|stack(?:horizontal|vertical)|subtitle|tone|version/\n        .source\n    ].join('|')\n    var allinternals = [internals, properties, filters].join('|')\n    Prism.languages.avisynth = {\n      comment: [\n        {\n          // Matches [* *] nestable block comments, but only supports 1 level of nested comments\n          // /\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\])|<self>)*\\*\\]/\n          pattern:\n            /(^|[^\\\\])\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\])|\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\]))*\\*\\])*\\*\\]/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          // Matches /* */ block comments\n          pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          // Matches # comments\n          pattern: /(^|[^\\\\$])#.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      // Handle before strings because optional arguments are surrounded by double quotes\n      argument: {\n        pattern: re(/\\b(?:<<0>>)\\s+(\"?)\\w+\\1/.source, [types], 'i'),\n        inside: {\n          keyword: /^\\w+/\n        }\n      },\n      // Optional argument assignment\n      'argument-label': {\n        pattern: /([,(][\\s\\\\]*)\\w+\\s*=(?!=)/,\n        lookbehind: true,\n        inside: {\n          'argument-name': {\n            pattern: /^\\w+/,\n            alias: 'punctuation'\n          },\n          punctuation: /=$/\n        }\n      },\n      string: [\n        {\n          // triple double-quoted\n          pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n          greedy: true\n        },\n        {\n          // single double-quoted\n          pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n          greedy: true,\n          inside: {\n            constant: {\n              // These *are* case-sensitive!\n              pattern:\n                /\\b(?:DEFAULT_MT_MODE|(?:MAINSCRIPT|PROGRAM|SCRIPT)DIR|(?:MACHINE|USER)_(?:CLASSIC|PLUS)_PLUGINS)\\b/\n            }\n          }\n        }\n      ],\n      // The special \"last\" variable that takes the value of the last implicitly returned clip\n      variable: /\\b(?:last)\\b/i,\n      boolean: /\\b(?:false|no|true|yes)\\b/i,\n      keyword:\n        /\\b(?:catch|else|for|function|global|if|return|try|while|__END__)\\b/i,\n      constant: /\\bMT_(?:MULTI_INSTANCE|NICE_FILTER|SERIALIZED|SPECIAL_MT)\\b/,\n      // AviSynth's internal functions, filters, and properties\n      'builtin-function': {\n        pattern: re(/\\b(?:<<0>>)\\b/.source, [allinternals], 'i'),\n        alias: 'function'\n      },\n      'type-cast': {\n        pattern: re(/\\b(?:<<0>>)(?=\\s*\\()/.source, [types], 'i'),\n        alias: 'keyword'\n      },\n      // External/user-defined filters\n      function: {\n        pattern: /\\b[a-z_]\\w*(?=\\s*\\()|(\\.)[a-z_]\\w*\\b/i,\n        lookbehind: true\n      },\n      // Matches a \\ as the first or last character on a line\n      'line-continuation': {\n        pattern: /(^[ \\t]*)\\\\|\\\\(?=[ \\t]*$)/m,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      number:\n        /\\B\\$(?:[\\da-f]{6}|[\\da-f]{8})\\b|(?:(?:\\b|\\B-)\\d+(?:\\.\\d*)?\\b|\\B\\.\\d+\\b)/i,\n      operator: /\\+\\+?|[!=<>]=?|&&|\\|\\||[?:*/%-]/,\n      punctuation: /[{}\\[\\]();,.]/\n    }\n    Prism.languages.avs = Prism.languages.avisynth\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = avroIdl\navroIdl.displayName = 'avroIdl'\navroIdl.aliases = []\nfunction avroIdl(Prism) {\n  // GitHub: https://github.com/apache/avro\n  // Docs: https://avro.apache.org/docs/current/idl.html\n  Prism.languages['avro-idl'] = {\n    comment: {\n      pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n      greedy: true\n    },\n    string: {\n      pattern: /(^|[^\\\\])\"(?:[^\\r\\n\"\\\\]|\\\\.)*\"/,\n      lookbehind: true,\n      greedy: true\n    },\n    annotation: {\n      pattern: /@(?:[$\\w.-]|`[^\\r\\n`]+`)+/,\n      greedy: true,\n      alias: 'function'\n    },\n    'function-identifier': {\n      pattern: /`[^\\r\\n`]+`(?=\\s*\\()/,\n      greedy: true,\n      alias: 'function'\n    },\n    identifier: {\n      pattern: /`[^\\r\\n`]+`/,\n      greedy: true\n    },\n    'class-name': {\n      pattern: /(\\b(?:enum|error|protocol|record|throws)\\b\\s+)[$\\w]+/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:array|boolean|bytes|date|decimal|double|enum|error|false|fixed|float|idl|import|int|local_timestamp_ms|long|map|null|oneway|protocol|record|schema|string|throws|time_ms|timestamp_ms|true|union|uuid|void)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    number: [\n      {\n        pattern:\n          /(^|[^\\w.])-?(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|0x(?:[a-f0-9]+(?:\\.[a-f0-9]*)?|\\.[a-f0-9]+)(?:p[+-]?\\d+)?)[dfl]?(?![\\w.])/i,\n        lookbehind: true\n      },\n      /-?\\b(?:Infinity|NaN)\\b/\n    ],\n    operator: /=/,\n    punctuation: /[()\\[\\]{}<>.:,;-]/\n  }\n  Prism.languages.avdl = Prism.languages['avro-idl']\n}\n","'use strict'\n\nmodule.exports = bash\nbash.displayName = 'bash'\nbash.aliases = ['shell']\nfunction bash(Prism) {\n  ;(function (Prism) {\n    // $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n    // + LC_ALL, RANDOM, REPLY, SECONDS.\n    // + make sure PS1..4 are here as they are not always set,\n    // - some useless things.\n    var envVars =\n      '\\\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\\\b'\n    var commandAfterHeredoc = {\n      pattern: /(^([\"']?)\\w+\\2)[ \\t]+\\S.*/,\n      lookbehind: true,\n      alias: 'punctuation',\n      // this looks reasonably well in all themes\n      inside: null // see below\n    }\n    var insideString = {\n      bash: commandAfterHeredoc,\n      environment: {\n        pattern: RegExp('\\\\$' + envVars),\n        alias: 'constant'\n      },\n      variable: [\n        // [0]: Arithmetic Environment\n        {\n          pattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n          greedy: true,\n          inside: {\n            // If there is a $ sign at the beginning highlight $(( and )) as variable\n            variable: [\n              {\n                pattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n                lookbehind: true\n              },\n              /^\\$\\(\\(/\n            ],\n            number:\n              /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n            // Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n            operator:\n              /--|\\+\\+|\\*\\*=?|<<=?|>>=?|&&|\\|\\||[=!+\\-*/%<>^&|]=?|[?~:]/,\n            // If there is no $ sign at the beginning highlight (( and )) as punctuation\n            punctuation: /\\(\\(?|\\)\\)?|,|;/\n          }\n        }, // [1]: Command Substitution\n        {\n          pattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n          greedy: true,\n          inside: {\n            variable: /^\\$\\(|^`|\\)$|`$/\n          }\n        }, // [2]: Brace expansion\n        {\n          pattern: /\\$\\{[^}]+\\}/,\n          greedy: true,\n          inside: {\n            operator: /:[-=?+]?|[!\\/]|##?|%%?|\\^\\^?|,,?/,\n            punctuation: /[\\[\\]]/,\n            environment: {\n              pattern: RegExp('(\\\\{)' + envVars),\n              lookbehind: true,\n              alias: 'constant'\n            }\n          }\n        },\n        /\\$(?:\\w+|[#?*!@$])/\n      ],\n      // Escape sequences from echo and printf's manuals, and escaped quotes.\n      entity:\n        /\\\\(?:[abceEfnrtv\\\\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/\n    }\n    Prism.languages.bash = {\n      shebang: {\n        pattern: /^#!\\s*\\/.*/,\n        alias: 'important'\n      },\n      comment: {\n        pattern: /(^|[^\"{\\\\$])#.*/,\n        lookbehind: true\n      },\n      'function-name': [\n        // a) function foo {\n        // b) foo() {\n        // c) function foo() {\n        // but not “foo {”\n        {\n          // a) and c)\n          pattern: /(\\bfunction\\s+)[\\w-]+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n          lookbehind: true,\n          alias: 'function'\n        },\n        {\n          // b)\n          pattern: /\\b[\\w-]+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n          alias: 'function'\n        }\n      ],\n      // Highlight variable names as variables in for and select beginnings.\n      'for-or-select': {\n        pattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n        alias: 'variable',\n        lookbehind: true\n      },\n      // Highlight variable names as variables in the left-hand part\n      // of assignments (“=” and “+=”).\n      'assign-left': {\n        pattern: /(^|[\\s;|&]|[<>]\\()\\w+(?=\\+?=)/,\n        inside: {\n          environment: {\n            pattern: RegExp('(^|[\\\\s;|&]|[<>]\\\\()' + envVars),\n            lookbehind: true,\n            alias: 'constant'\n          }\n        },\n        alias: 'variable',\n        lookbehind: true\n      },\n      string: [\n        // Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n        {\n          pattern: /((?:^|[^<])<<-?\\s*)(\\w+)\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\2/,\n          lookbehind: true,\n          greedy: true,\n          inside: insideString\n        }, // Here-document with quotes around the tag\n        // → No expansion (so no “inside”).\n        {\n          pattern: /((?:^|[^<])<<-?\\s*)([\"'])(\\w+)\\2\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\3/,\n          lookbehind: true,\n          greedy: true,\n          inside: {\n            bash: commandAfterHeredoc\n          }\n        }, // “Normal” string\n        {\n          // https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html\n          pattern:\n            /(^|[^\\\\](?:\\\\\\\\)*)\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/,\n          lookbehind: true,\n          greedy: true,\n          inside: insideString\n        },\n        {\n          // https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html\n          pattern: /(^|[^$\\\\])'[^']*'/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          // https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html\n          pattern: /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n          greedy: true,\n          inside: {\n            entity: insideString.entity\n          }\n        }\n      ],\n      environment: {\n        pattern: RegExp('\\\\$?' + envVars),\n        alias: 'constant'\n      },\n      variable: insideString.variable,\n      function: {\n        pattern:\n          /(^|[\\s;|&]|[<>]\\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\\s;|&])/,\n        lookbehind: true\n      },\n      keyword: {\n        pattern:\n          /(^|[\\s;|&]|[<>]\\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\\s;|&])/,\n        lookbehind: true\n      },\n      // https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n      builtin: {\n        pattern:\n          /(^|[\\s;|&]|[<>]\\()(?:\\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\\s;|&])/,\n        lookbehind: true,\n        // Alias added to make those easier to distinguish from strings.\n        alias: 'class-name'\n      },\n      boolean: {\n        pattern: /(^|[\\s;|&]|[<>]\\()(?:false|true)(?=$|[)\\s;|&])/,\n        lookbehind: true\n      },\n      'file-descriptor': {\n        pattern: /\\B&\\d\\b/,\n        alias: 'important'\n      },\n      operator: {\n        // Lots of redirections here, but not just that.\n        pattern:\n          /\\d?<>|>\\||\\+=|=[=~]?|!=?|<<[<-]?|[&\\d]?>>|\\d[<>]&?|[<>][&=]?|&[>&]?|\\|[&|]?/,\n        inside: {\n          'file-descriptor': {\n            pattern: /^\\d/,\n            alias: 'important'\n          }\n        }\n      },\n      punctuation: /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];\\\\]/,\n      number: {\n        pattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n        lookbehind: true\n      }\n    }\n    commandAfterHeredoc.inside = Prism.languages.bash\n    /* Patterns in command substitution. */\n    var toBeCopied = [\n      'comment',\n      'function-name',\n      'for-or-select',\n      'assign-left',\n      'string',\n      'environment',\n      'function',\n      'keyword',\n      'builtin',\n      'boolean',\n      'file-descriptor',\n      'operator',\n      'punctuation',\n      'number'\n    ]\n    var inside = insideString.variable[1].inside\n    for (var i = 0; i < toBeCopied.length; i++) {\n      inside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]]\n    }\n    Prism.languages.shell = Prism.languages.bash\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = basic\nbasic.displayName = 'basic'\nbasic.aliases = []\nfunction basic(Prism) {\n  Prism.languages.basic = {\n    comment: {\n      pattern: /(?:!|REM\\b).+/i,\n      inside: {\n        keyword: /^REM/i\n      }\n    },\n    string: {\n      pattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^\\w +\\-.])*\"/,\n      greedy: true\n    },\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n    keyword:\n      /\\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SELECT CASE|SHARED|SHELL|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\\$|\\b)/i,\n    function:\n      /\\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\\$|\\b)/i,\n    operator: /<[=>]?|>=?|[+\\-*\\/^=&]|\\b(?:AND|EQV|IMP|NOT|OR|XOR)\\b/i,\n    punctuation: /[,;:()]/\n  }\n}\n","'use strict'\n\nmodule.exports = batch\nbatch.displayName = 'batch'\nbatch.aliases = []\nfunction batch(Prism) {\n  ;(function (Prism) {\n    var variable = /%%?[~:\\w]+%?|!\\S+!/\n    var parameter = {\n      pattern: /\\/[a-z?]+(?=[ :]|$):?|-[a-z]\\b|--[a-z-]+\\b/im,\n      alias: 'attr-name',\n      inside: {\n        punctuation: /:/\n      }\n    }\n    var string = /\"(?:[\\\\\"]\"|[^\"])*\"(?!\")/\n    var number = /(?:\\b|-)\\d+\\b/\n    Prism.languages.batch = {\n      comment: [\n        /^::.*/m,\n        {\n          pattern: /((?:^|[&(])[ \\t]*)rem\\b(?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n          lookbehind: true\n        }\n      ],\n      label: {\n        pattern: /^:.*/m,\n        alias: 'property'\n      },\n      command: [\n        {\n          // FOR command\n          pattern:\n            /((?:^|[&(])[ \\t]*)for(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* \\S+ in \\([^)]+\\) do/im,\n          lookbehind: true,\n          inside: {\n            keyword: /\\b(?:do|in)\\b|^for\\b/i,\n            string: string,\n            parameter: parameter,\n            variable: variable,\n            number: number,\n            punctuation: /[()',]/\n          }\n        },\n        {\n          // IF command\n          pattern:\n            /((?:^|[&(])[ \\t]*)if(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:not )?(?:cmdextversion \\d+|defined \\w+|errorlevel \\d+|exist \\S+|(?:\"[^\"]*\"|(?!\")(?:(?!==)\\S)+)?(?:==| (?:equ|geq|gtr|leq|lss|neq) )(?:\"[^\"]*\"|[^\\s\"]\\S*))/im,\n          lookbehind: true,\n          inside: {\n            keyword:\n              /\\b(?:cmdextversion|defined|errorlevel|exist|not)\\b|^if\\b/i,\n            string: string,\n            parameter: parameter,\n            variable: variable,\n            number: number,\n            operator: /\\^|==|\\b(?:equ|geq|gtr|leq|lss|neq)\\b/i\n          }\n        },\n        {\n          // ELSE command\n          pattern: /((?:^|[&()])[ \\t]*)else\\b/im,\n          lookbehind: true,\n          inside: {\n            keyword: /^else\\b/i\n          }\n        },\n        {\n          // SET command\n          pattern:\n            /((?:^|[&(])[ \\t]*)set(?: \\/[a-z](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n          lookbehind: true,\n          inside: {\n            keyword: /^set\\b/i,\n            string: string,\n            parameter: parameter,\n            variable: [variable, /\\w+(?=(?:[*\\/%+\\-&^|]|<<|>>)?=)/],\n            number: number,\n            operator: /[*\\/%+\\-&^|]=?|<<=?|>>=?|[!~_=]/,\n            punctuation: /[()',]/\n          }\n        },\n        {\n          // Other commands\n          pattern:\n            /((?:^|[&(])[ \\t]*@?)\\w+\\b(?:\"(?:[\\\\\"]\"|[^\"])*\"(?!\")|[^\"^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/m,\n          lookbehind: true,\n          inside: {\n            keyword: /^\\w+\\b/,\n            string: string,\n            parameter: parameter,\n            label: {\n              pattern: /(^\\s*):\\S+/m,\n              lookbehind: true,\n              alias: 'property'\n            },\n            variable: variable,\n            number: number,\n            operator: /\\^/\n          }\n        }\n      ],\n      operator: /[&@]/,\n      punctuation: /[()']/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = bbcode\nbbcode.displayName = 'bbcode'\nbbcode.aliases = ['shortcode']\nfunction bbcode(Prism) {\n  Prism.languages.bbcode = {\n    tag: {\n      pattern:\n        /\\[\\/?[^\\s=\\]]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))?(?:\\s+[^\\s=\\]]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))*\\s*\\]/,\n      inside: {\n        tag: {\n          pattern: /^\\[\\/?[^\\s=\\]]+/,\n          inside: {\n            punctuation: /^\\[\\/?/\n          }\n        },\n        'attr-value': {\n          pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+)/,\n          inside: {\n            punctuation: [\n              /^=/,\n              {\n                pattern: /^(\\s*)[\"']|[\"']$/,\n                lookbehind: true\n              }\n            ]\n          }\n        },\n        punctuation: /\\]/,\n        'attr-name': /[^\\s=\\]]+/\n      }\n    }\n  }\n  Prism.languages.shortcode = Prism.languages.bbcode\n}\n","'use strict'\n\nmodule.exports = bicep\nbicep.displayName = 'bicep'\nbicep.aliases = []\nfunction bicep(Prism) {\n  // based loosely upon: https://github.com/Azure/bicep/blob/main/src/textmate/bicep.tmlanguage\n  Prism.languages.bicep = {\n    comment: [\n      {\n        // multiline comments eg /* ASDF */\n        pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n        lookbehind: true,\n        greedy: true\n      },\n      {\n        // singleline comments eg // ASDF\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    property: [\n      {\n        pattern: /([\\r\\n][ \\t]*)[a-z_]\\w*(?=[ \\t]*:)/i,\n        lookbehind: true\n      },\n      {\n        pattern: /([\\r\\n][ \\t]*)'(?:\\\\.|\\$(?!\\{)|[^'\\\\\\r\\n$])*'(?=[ \\t]*:)/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: [\n      {\n        pattern: /'''[^'][\\s\\S]*?'''/,\n        greedy: true\n      },\n      {\n        pattern: /(^|[^\\\\'])'(?:\\\\.|\\$(?!\\{)|[^'\\\\\\r\\n$])*'/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    'interpolated-string': {\n      pattern: /(^|[^\\\\'])'(?:\\\\.|\\$(?:(?!\\{)|\\{[^{}\\r\\n]*\\})|[^'\\\\\\r\\n$])*'/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /\\$\\{[^{}\\r\\n]*\\}/,\n          inside: {\n            expression: {\n              pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n              lookbehind: true\n            },\n            punctuation: /^\\$\\{|\\}$/\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    },\n    datatype: {\n      pattern: /(\\b(?:output|param)\\b[ \\t]+\\w+[ \\t]+)\\w+\\b/,\n      lookbehind: true,\n      alias: 'class-name'\n    },\n    boolean: /\\b(?:false|true)\\b/,\n    // https://github.com/Azure/bicep/blob/114a3251b4e6e30082a58729f19a8cc4e374ffa6/src/textmate/bicep.tmlanguage#L184\n    keyword:\n      /\\b(?:existing|for|if|in|module|null|output|param|resource|targetScope|var)\\b/,\n    decorator: /@\\w+\\b/,\n    function: /\\b[a-z_]\\w*(?=[ \\t]*\\()/i,\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n    operator:\n      /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/,\n    punctuation: /[{}[\\];(),.:]/\n  }\n  Prism.languages.bicep['interpolated-string'].inside['interpolation'].inside[\n    'expression'\n  ].inside = Prism.languages.bicep\n}\n","'use strict'\n\nmodule.exports = birb\nbirb.displayName = 'birb'\nbirb.aliases = []\nfunction birb(Prism) {\n  Prism.languages.birb = Prism.languages.extend('clike', {\n    string: {\n      pattern: /r?(\"|')(?:\\\\.|(?!\\1)[^\\\\])*\\1/,\n      greedy: true\n    },\n    'class-name': [\n      /\\b[A-Z](?:[\\d_]*[a-zA-Z]\\w*)?\\b/, // matches variable and function return types (parameters as well).\n      /\\b(?:[A-Z]\\w*|(?!(?:var|void)\\b)[a-z]\\w*)(?=\\s+\\w+\\s*[;,=()])/\n    ],\n    keyword:\n      /\\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|new|next|noSeeb|return|static|switch|throw|var|void|while)\\b/,\n    operator: /\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?|:/,\n    variable: /\\b[a-z_]\\w*\\b/\n  })\n  Prism.languages.insertBefore('birb', 'function', {\n    metadata: {\n      pattern: /<\\w+>/,\n      greedy: true,\n      alias: 'symbol'\n    }\n  })\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = bison\nbison.displayName = 'bison'\nbison.aliases = []\nfunction bison(Prism) {\n  Prism.register(refractorC)\n  Prism.languages.bison = Prism.languages.extend('c', {})\n  Prism.languages.insertBefore('bison', 'comment', {\n    bison: {\n      // This should match all the beginning of the file\n      // including the prologue(s), the bison declarations and\n      // the grammar rules.\n      pattern: /^(?:[^%]|%(?!%))*%%[\\s\\S]*?%%/,\n      inside: {\n        c: {\n          // Allow for one level of nested braces\n          pattern: /%\\{[\\s\\S]*?%\\}|\\{(?:\\{[^}]*\\}|[^{}])*\\}/,\n          inside: {\n            delimiter: {\n              pattern: /^%?\\{|%?\\}$/,\n              alias: 'punctuation'\n            },\n            'bison-variable': {\n              pattern: /[$@](?:<[^\\s>]+>)?[\\w$]+/,\n              alias: 'variable',\n              inside: {\n                punctuation: /<|>/\n              }\n            },\n            rest: Prism.languages.c\n          }\n        },\n        comment: Prism.languages.c.comment,\n        string: Prism.languages.c.string,\n        property: /\\S+(?=:)/,\n        keyword: /%\\w+/,\n        number: {\n          pattern: /(^|[^@])\\b(?:0x[\\da-f]+|\\d+)/i,\n          lookbehind: true\n        },\n        punctuation: /%[%?]|[|:;\\[\\]<>]/\n      }\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = bnf\nbnf.displayName = 'bnf'\nbnf.aliases = ['rbnf']\nfunction bnf(Prism) {\n  Prism.languages.bnf = {\n    string: {\n      pattern: /\"[^\\r\\n\"]*\"|'[^\\r\\n']*'/\n    },\n    definition: {\n      pattern: /<[^<>\\r\\n\\t]+>(?=\\s*::=)/,\n      alias: ['rule', 'keyword'],\n      inside: {\n        punctuation: /^<|>$/\n      }\n    },\n    rule: {\n      pattern: /<[^<>\\r\\n\\t]+>/,\n      inside: {\n        punctuation: /^<|>$/\n      }\n    },\n    operator: /::=|[|()[\\]{}*+?]|\\.{3}/\n  }\n  Prism.languages.rbnf = Prism.languages.bnf\n}\n","'use strict'\n\nmodule.exports = brainfuck\nbrainfuck.displayName = 'brainfuck'\nbrainfuck.aliases = []\nfunction brainfuck(Prism) {\n  Prism.languages.brainfuck = {\n    pointer: {\n      pattern: /<|>/,\n      alias: 'keyword'\n    },\n    increment: {\n      pattern: /\\+/,\n      alias: 'inserted'\n    },\n    decrement: {\n      pattern: /-/,\n      alias: 'deleted'\n    },\n    branching: {\n      pattern: /\\[|\\]/,\n      alias: 'important'\n    },\n    operator: /[.,]/,\n    comment: /\\S+/\n  }\n}\n","'use strict'\n\nmodule.exports = brightscript\nbrightscript.displayName = 'brightscript'\nbrightscript.aliases = []\nfunction brightscript(Prism) {\n  Prism.languages.brightscript = {\n    comment: /(?:\\brem|').*/i,\n    'directive-statement': {\n      pattern: /(^[\\t ]*)#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if).*/im,\n      lookbehind: true,\n      alias: 'property',\n      inside: {\n        'error-message': {\n          pattern: /(^#error).+/,\n          lookbehind: true\n        },\n        directive: {\n          pattern: /^#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if)/,\n          alias: 'keyword'\n        },\n        expression: {\n          pattern: /[\\s\\S]+/,\n          inside: null // see below\n        }\n      }\n    },\n    property: {\n      pattern:\n        /([\\r\\n{,][\\t ]*)(?:(?!\\d)\\w+|\"(?:[^\"\\r\\n]|\"\")*\"(?!\"))(?=[ \\t]*:)/,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n      greedy: true\n    },\n    'class-name': {\n      pattern: /(\\bAs[\\t ]+)\\w+/i,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\\b/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    function: /\\b(?!\\d)\\w+(?=[\\t ]*\\()/,\n    number: /(?:\\b\\d+(?:\\.\\d+)?(?:[ed][+-]\\d+)?|&h[a-f\\d]+)\\b[%&!#]?/i,\n    operator:\n      /--|\\+\\+|>>=?|<<=?|<>|[-+*/\\\\<>]=?|[:^=?]|\\b(?:and|mod|not|or)\\b/i,\n    punctuation: /[.,;()[\\]{}]/,\n    constant: /\\b(?:LINE_NUM)\\b/i\n  }\n  Prism.languages.brightscript['directive-statement'].inside.expression.inside =\n    Prism.languages.brightscript\n}\n","'use strict'\n\nmodule.exports = bro\nbro.displayName = 'bro'\nbro.aliases = []\nfunction bro(Prism) {\n  Prism.languages.bro = {\n    comment: {\n      pattern: /(^|[^\\\\$])#.*/,\n      lookbehind: true,\n      inside: {\n        italic: /\\b(?:FIXME|TODO|XXX)\\b/\n      }\n    },\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    boolean: /\\b[TF]\\b/,\n    function: {\n      pattern: /(\\b(?:event|function|hook)[ \\t]+)\\w+(?:::\\w+)?/,\n      lookbehind: true\n    },\n    builtin:\n      /(?:@(?:load(?:-(?:plugin|sigs))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:add_func|create_expire|default|delete_func|encrypt|error_handler|expire_func|group|log|mergeable|optional|persistent|priority|raw_output|read_expire|redef|rotate_interval|rotate_size|synchronized|type_column|write_expire))/,\n    constant: {\n      pattern: /(\\bconst[ \\t]+)\\w+/i,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:add|addr|alarm|any|bool|break|const|continue|count|delete|double|else|enum|event|export|file|for|function|global|hook|if|in|int|interval|local|module|next|of|opaque|pattern|port|print|record|return|schedule|set|string|subnet|table|time|timeout|using|vector|when)\\b/,\n    operator: /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,\n    number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n    punctuation: /[{}[\\];(),.:]/\n  }\n}\n","'use strict'\n\nmodule.exports = bsl\nbsl.displayName = 'bsl'\nbsl.aliases = []\nfunction bsl(Prism) {\n  /* eslint-disable no-misleading-character-class */\n  // 1C:Enterprise\n  // https://github.com/Diversus23/\n  //\n  Prism.languages.bsl = {\n    comment: /\\/\\/.*/,\n    string: [\n      // Строки\n      // Strings\n      {\n        pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n        greedy: true\n      }, // Дата и время\n      // Date & time\n      {\n        pattern: /'(?:[^'\\r\\n\\\\]|\\\\.)*'/\n      }\n    ],\n    keyword: [\n      {\n        // RU\n        pattern:\n          /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:пока|для|новый|прервать|попытка|исключение|вызватьисключение|иначе|конецпопытки|неопределено|функция|перем|возврат|конецфункции|если|иначеесли|процедура|конецпроцедуры|тогда|знач|экспорт|конецесли|из|каждого|истина|ложь|по|цикл|конеццикла|выполнить)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n        lookbehind: true\n      },\n      {\n        // EN\n        pattern:\n          /\\b(?:break|do|each|else|elseif|enddo|endfunction|endif|endprocedure|endtry|except|execute|export|false|for|function|if|in|new|null|procedure|raise|return|then|to|true|try|undefined|val|var|while)\\b/i\n      }\n    ],\n    number: {\n      pattern:\n        /(^(?=\\d)|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:E[+-]?\\d+)?/i,\n      lookbehind: true\n    },\n    operator: [\n      /[<>+\\-*/]=?|[%=]/, // RU\n      {\n        pattern:\n          /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:и|или|не)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n        lookbehind: true\n      }, // EN\n      {\n        pattern: /\\b(?:and|not|or)\\b/i\n      }\n    ],\n    punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.]/,\n    directive: [\n      // Теги препроцессора вида &Клиент, &Сервер, ...\n      // Preprocessor tags of the type &Client, &Server, ...\n      {\n        pattern: /^([ \\t]*)&.*/m,\n        lookbehind: true,\n        greedy: true,\n        alias: 'important'\n      }, // Инструкции препроцессора вида:\n      // #Если Сервер Тогда\n      // ...\n      // #КонецЕсли\n      // Preprocessor instructions of the form:\n      // #If Server Then\n      // ...\n      // #EndIf\n      {\n        pattern: /^([ \\t]*)#.*/gm,\n        lookbehind: true,\n        greedy: true,\n        alias: 'important'\n      }\n    ]\n  }\n  Prism.languages.oscript = Prism.languages['bsl']\n}\n","'use strict'\n\nmodule.exports = c\nc.displayName = 'c'\nc.aliases = []\nfunction c(Prism) {\n  Prism.languages.c = Prism.languages.extend('clike', {\n    comment: {\n      pattern:\n        /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n      greedy: true\n    },\n    string: {\n      // https://en.cppreference.com/w/c/language/string_literal\n      pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n      greedy: true\n    },\n    'class-name': {\n      pattern:\n        /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    number:\n      /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i,\n    operator: />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/\n  })\n  Prism.languages.insertBefore('c', 'string', {\n    char: {\n      // https://en.cppreference.com/w/c/language/character_constant\n      pattern: /'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n]){0,32}'/,\n      greedy: true\n    }\n  })\n  Prism.languages.insertBefore('c', 'string', {\n    macro: {\n      // allow for multiline macro definitions\n      // spaces after the # character compile fine with gcc\n      pattern:\n        /(^[\\t ]*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property',\n      inside: {\n        string: [\n          {\n            // highlight the path of the include statement as a string\n            pattern: /^(#\\s*include\\s*)<[^>]+>/,\n            lookbehind: true\n          },\n          Prism.languages.c['string']\n        ],\n        char: Prism.languages.c['char'],\n        comment: Prism.languages.c['comment'],\n        'macro-name': [\n          {\n            pattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i,\n            lookbehind: true\n          },\n          {\n            pattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i,\n            lookbehind: true,\n            alias: 'function'\n          }\n        ],\n        // highlight macro directives as keywords\n        directive: {\n          pattern: /^(#\\s*)[a-z]+/,\n          lookbehind: true,\n          alias: 'keyword'\n        },\n        'directive-hash': /^#/,\n        punctuation: /##|\\\\(?=[\\r\\n])/,\n        expression: {\n          pattern: /\\S[\\s\\S]*/,\n          inside: Prism.languages.c\n        }\n      }\n    }\n  })\n  Prism.languages.insertBefore('c', 'function', {\n    // highlight predefined macros as constants\n    constant:\n      /\\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\\b/\n  })\n  delete Prism.languages.c['boolean']\n}\n","'use strict'\n\nmodule.exports = cfscript\ncfscript.displayName = 'cfscript'\ncfscript.aliases = []\nfunction cfscript(Prism) {\n  // https://cfdocs.org/script\n  Prism.languages.cfscript = Prism.languages.extend('clike', {\n    comment: [\n      {\n        pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n        lookbehind: true,\n        inside: {\n          annotation: {\n            pattern: /(?:^|[^.])@[\\w\\.]+/,\n            alias: 'punctuation'\n          }\n        }\n      },\n      {\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    keyword:\n      /\\b(?:abstract|break|catch|component|continue|default|do|else|extends|final|finally|for|function|if|in|include|package|private|property|public|remote|required|rethrow|return|static|switch|throw|try|var|while|xml)\\b(?!\\s*=)/,\n    operator: [\n      /\\+\\+|--|&&|\\|\\||::|=>|[!=]==|<=?|>=?|[-+*/%&|^!=<>]=?|\\?(?:\\.|:)?|[?:]/,\n      /\\b(?:and|contains|eq|equal|eqv|gt|gte|imp|is|lt|lte|mod|not|or|xor)\\b/\n    ],\n    scope: {\n      pattern:\n        /\\b(?:application|arguments|cgi|client|cookie|local|session|super|this|variables)\\b/,\n      alias: 'global'\n    },\n    type: {\n      pattern:\n        /\\b(?:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|void|xml)\\b/,\n      alias: 'builtin'\n    }\n  })\n  Prism.languages.insertBefore('cfscript', 'keyword', {\n    // This must be declared before keyword because we use \"function\" inside the lookahead\n    'function-variable': {\n      pattern:\n        /[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n      alias: 'function'\n    }\n  })\n  delete Prism.languages.cfscript['class-name']\n  Prism.languages.cfc = Prism.languages['cfscript']\n}\n","'use strict'\nvar refractorCpp = require('./cpp.js')\nmodule.exports = chaiscript\nchaiscript.displayName = 'chaiscript'\nchaiscript.aliases = []\nfunction chaiscript(Prism) {\n  Prism.register(refractorCpp)\n  Prism.languages.chaiscript = Prism.languages.extend('clike', {\n    string: {\n      pattern: /(^|[^\\\\])'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n      lookbehind: true,\n      greedy: true\n    },\n    'class-name': [\n      {\n        // e.g. class Rectangle { ... }\n        pattern: /(\\bclass\\s+)\\w+/,\n        lookbehind: true\n      },\n      {\n        // e.g. attr Rectangle::height, def Rectangle::area() { ... }\n        pattern: /(\\b(?:attr|def)\\s+)\\w+(?=\\s*::)/,\n        lookbehind: true\n      }\n    ],\n    keyword:\n      /\\b(?:attr|auto|break|case|catch|class|continue|def|default|else|finally|for|fun|global|if|return|switch|this|try|var|while)\\b/,\n    number: [Prism.languages.cpp.number, /\\b(?:Infinity|NaN)\\b/],\n    operator:\n      />>=?|<<=?|\\|\\||&&|:[:=]?|--|\\+\\+|[=!<>+\\-*/%|&^]=?|[?~]|`[^`\\r\\n]{1,4}`/\n  })\n  Prism.languages.insertBefore('chaiscript', 'operator', {\n    'parameter-type': {\n      // e.g. def foo(int x, Vector y) {...}\n      pattern: /([,(]\\s*)\\w+(?=\\s+\\w)/,\n      lookbehind: true,\n      alias: 'class-name'\n    }\n  })\n  Prism.languages.insertBefore('chaiscript', 'string', {\n    'string-interpolation': {\n      pattern:\n        /(^|[^\\\\])\"(?:[^\"$\\\\]|\\\\[\\s\\S]|\\$(?!\\{)|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\"/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern:\n            /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\}/,\n          lookbehind: true,\n          inside: {\n            'interpolation-expression': {\n              pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n              lookbehind: true,\n              inside: Prism.languages.chaiscript\n            },\n            'interpolation-punctuation': {\n              pattern: /^\\$\\{|\\}$/,\n              alias: 'punctuation'\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = cil\ncil.displayName = 'cil'\ncil.aliases = []\nfunction cil(Prism) {\n  Prism.languages.cil = {\n    comment: /\\/\\/.*/,\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    directive: {\n      pattern: /(^|\\W)\\.[a-z]+(?=\\s)/,\n      lookbehind: true,\n      alias: 'class-name'\n    },\n    // Actually an assembly reference\n    variable: /\\[[\\w\\.]+\\]/,\n    keyword:\n      /\\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|u?int(?:8|16|32|64)?|iant|idispatch|implements|import|initonly|instance|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\\b/,\n    function:\n      /\\b(?:(?:constrained|no|readonly|tail|unaligned|volatile)\\.)?(?:conv\\.(?:[iu][1248]?|ovf\\.[iu][1248]?(?:\\.un)?|r\\.un|r4|r8)|ldc\\.(?:i4(?:\\.\\d+|\\.[mM]1|\\.s)?|i8|r4|r8)|ldelem(?:\\.[iu][1248]?|\\.r[48]|\\.ref|a)?|ldind\\.(?:[iu][1248]?|r[48]|ref)|stelem\\.?(?:i[1248]?|r[48]|ref)?|stind\\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\\.[0-3s]|a(?:\\.s)?)?|ldloc(?:\\.\\d+|\\.s)?|sub(?:\\.ovf(?:\\.un)?)?|mul(?:\\.ovf(?:\\.un)?)?|add(?:\\.ovf(?:\\.un)?)?|stloc(?:\\.[0-3s])?|refany(?:type|val)|blt(?:\\.un)?(?:\\.s)?|ble(?:\\.un)?(?:\\.s)?|bgt(?:\\.un)?(?:\\.s)?|bge(?:\\.un)?(?:\\.s)?|unbox(?:\\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\\.s)?|bne\\.un(?:\\.s)?|ldloca(?:\\.s)?|brzero(?:\\.s)?|brtrue(?:\\.s)?|brnull(?:\\.s)?|brinst(?:\\.s)?|starg(?:\\.s)?|leave(?:\\.s)?|shr(?:\\.un)?|rem(?:\\.un)?|div(?:\\.un)?|clt(?:\\.un)?|alignment|castclass|ldvirtftn|beq(?:\\.s)?|ckfinite|ldsflda|ldtoken|localloc|mkrefany|rethrow|cgt\\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    number: /\\b-?(?:0x[0-9a-f]+|\\d+)(?:\\.[0-9a-f]+)?\\b/i,\n    punctuation: /[{}[\\];(),:=]|IL_[0-9A-Za-z]+/\n  }\n}\n","'use strict'\n\nmodule.exports = clike\nclike.displayName = 'clike'\nclike.aliases = []\nfunction clike(Prism) {\n  Prism.languages.clike = {\n    comment: [\n      {\n        pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n        lookbehind: true,\n        greedy: true\n      },\n      {\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    'class-name': {\n      pattern:\n        /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n      lookbehind: true,\n      inside: {\n        punctuation: /[.\\\\]/\n      }\n    },\n    keyword:\n      /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    function: /\\b\\w+(?=\\()/,\n    number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n    operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n    punctuation: /[{}[\\];(),.:]/\n  }\n}\n","'use strict'\n\nmodule.exports = clojure\nclojure.displayName = 'clojure'\nclojure.aliases = []\nfunction clojure(Prism) {\n  // Copied from https://github.com/jeluard/prism-clojure\n  Prism.languages.clojure = {\n    comment: {\n      pattern: /;.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n      greedy: true\n    },\n    char: /\\\\\\w+/,\n    symbol: {\n      pattern: /(^|[\\s()\\[\\]{},])::?[\\w*+!?'<>=/.-]+/,\n      lookbehind: true\n    },\n    keyword: {\n      pattern:\n        /(\\()(?:-|->|->>|\\.|\\.\\.|\\*|\\/|\\+|<|<=|=|==|>|>=|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|cond|conj|cons|constantly|construct-proxy|contains\\?|count|create-ns|create-struct|cycle|dec|declare|def|def-|definline|definterface|defmacro|defmethod|defmulti|defn|defn-|defonce|defproject|defprotocol|defrecord|defstruct|deftype|deref|difference|disj|dissoc|distinct|do|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\\?|ensure|eval|every\\?|false\\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|fn|fnseq|for|frest|gensym|get|get-proxy-class|hash-map|hash-set|identical\\?|identity|if|if-let|if-not|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\\?|last|lazy-cat|lazy-cons|left|lefts|let|line-seq|list|list\\*|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|monitor-enter|name|namespace|neg\\?|new|newline|next|nil\\?|node|not|not-any\\?|not-every\\?|not=|ns|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|quote|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|recur|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\\?|set|set!|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\\?|split-at|split-with|str|string\\?|struct|struct-map|subs|subvec|symbol|symbol\\?|sync|take|take-nth|take-while|test|throw|time|to-array|to-array-2d|tree-seq|true\\?|try|union|up|update-proxy|val|vals|var|var-get|var-set|var\\?|vector|vector-zip|vector\\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\\?|zipmap|zipper)(?=[\\s)]|$)/,\n      lookbehind: true\n    },\n    boolean: /\\b(?:false|nil|true)\\b/,\n    number: {\n      pattern:\n        /(^|[^\\w$@])(?:\\d+(?:[/.]\\d+)?(?:e[+-]?\\d+)?|0x[a-f0-9]+|[1-9]\\d?r[a-z0-9]+)[lmn]?(?![\\w$@])/i,\n      lookbehind: true\n    },\n    function: {\n      pattern: /((?:^|[^'])\\()[\\w*+!?'<>=/.-]+(?=[\\s)]|$)/,\n      lookbehind: true\n    },\n    operator: /[#@^`~]/,\n    punctuation: /[{}\\[\\](),]/\n  }\n}\n","'use strict'\n\nmodule.exports = cmake\ncmake.displayName = 'cmake'\ncmake.aliases = []\nfunction cmake(Prism) {\n  Prism.languages.cmake = {\n    comment: /#.*/,\n    string: {\n      pattern: /\"(?:[^\\\\\"]|\\\\.)*\"/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /\\$\\{(?:[^{}$]|\\$\\{[^{}$]*\\})*\\}/,\n          inside: {\n            punctuation: /\\$\\{|\\}/,\n            variable: /\\w+/\n          }\n        }\n      }\n    },\n    variable:\n      /\\b(?:CMAKE_\\w+|\\w+_(?:(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT|VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?)|(?:ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_(?:BINARY_DIR|DESCRIPTION|HOMEPAGE_URL|NAME|SOURCE_DIR|VERSION|VERSION_(?:MAJOR|MINOR|PATCH|TWEAK))|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE|XCODE_VERSION))\\b/,\n    property:\n      /\\b(?:cxx_\\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\\w+|\\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|GLOBAL_KEYWORD|GLOBAL_PROJECT_TYPES|GLOBAL_ROOTNAMESPACE|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\\b/,\n    keyword:\n      /\\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\\s*\\()\\b/,\n    boolean: /\\b(?:FALSE|OFF|ON|TRUE)\\b/,\n    namespace:\n      /\\b(?:INTERFACE|PRIVATE|PROPERTIES|PUBLIC|SHARED|STATIC|TARGET_OBJECTS)\\b/,\n    operator:\n      /\\b(?:AND|DEFINED|EQUAL|GREATER|LESS|MATCHES|NOT|OR|STREQUAL|STRGREATER|STRLESS|VERSION_EQUAL|VERSION_GREATER|VERSION_LESS)\\b/,\n    inserted: {\n      pattern: /\\b\\w+::\\w+\\b/,\n      alias: 'class-name'\n    },\n    number: /\\b\\d+(?:\\.\\d+)*\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()\\b/i,\n    punctuation: /[()>}]|\\$[<{]/\n  }\n}\n","'use strict'\n\nmodule.exports = cobol\ncobol.displayName = 'cobol'\ncobol.aliases = []\nfunction cobol(Prism) {\n  Prism.languages.cobol = {\n    comment: {\n      pattern: /\\*>.*|(^[ \\t]*)\\*.*/m,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /[xzgn]?(?:\"(?:[^\\r\\n\"]|\"\")*\"(?!\")|'(?:[^\\r\\n']|'')*'(?!'))/i,\n      greedy: true\n    },\n    level: {\n      pattern: /(^[ \\t]*)\\d+\\b/m,\n      lookbehind: true,\n      greedy: true,\n      alias: 'number'\n    },\n    'class-name': {\n      // https://github.com/antlr/grammars-v4/blob/42edd5b687d183b5fa679e858a82297bd27141e7/cobol85/Cobol85.g4#L1015\n      pattern:\n        /(\\bpic(?:ture)?\\s+)(?:(?:[-\\w$/,:*+<>]|\\.(?!\\s|$))(?:\\(\\d+\\))?)+/i,\n      lookbehind: true,\n      inside: {\n        number: {\n          pattern: /(\\()\\d+/,\n          lookbehind: true\n        },\n        punctuation: /[()]/\n      }\n    },\n    keyword: {\n      pattern:\n        /(^|[^\\w-])(?:ABORT|ACCEPT|ACCESS|ADD|ADDRESS|ADVANCING|AFTER|ALIGNED|ALL|ALPHABET|ALPHABETIC|ALPHABETIC-LOWER|ALPHABETIC-UPPER|ALPHANUMERIC|ALPHANUMERIC-EDITED|ALSO|ALTER|ALTERNATE|ANY|ARE|AREA|AREAS|AS|ASCENDING|ASCII|ASSIGN|ASSOCIATED-DATA|ASSOCIATED-DATA-LENGTH|AT|ATTRIBUTE|AUTHOR|AUTO|AUTO-SKIP|BACKGROUND-COLOR|BACKGROUND-COLOUR|BASIS|BEEP|BEFORE|BEGINNING|BELL|BINARY|BIT|BLANK|BLINK|BLOCK|BOTTOM|BOUNDS|BY|BYFUNCTION|BYTITLE|CALL|CANCEL|CAPABLE|CCSVERSION|CD|CF|CH|CHAINING|CHANGED|CHANNEL|CHARACTER|CHARACTERS|CLASS|CLASS-ID|CLOCK-UNITS|CLOSE|CLOSE-DISPOSITION|COBOL|CODE|CODE-SET|COL|COLLATING|COLUMN|COM-REG|COMMA|COMMITMENT|COMMON|COMMUNICATION|COMP|COMP-1|COMP-2|COMP-3|COMP-4|COMP-5|COMPUTATIONAL|COMPUTATIONAL-1|COMPUTATIONAL-2|COMPUTATIONAL-3|COMPUTATIONAL-4|COMPUTATIONAL-5|COMPUTE|CONFIGURATION|CONTAINS|CONTENT|CONTINUE|CONTROL|CONTROL-POINT|CONTROLS|CONVENTION|CONVERTING|COPY|CORR|CORRESPONDING|COUNT|CRUNCH|CURRENCY|CURSOR|DATA|DATA-BASE|DATE|DATE-COMPILED|DATE-WRITTEN|DAY|DAY-OF-WEEK|DBCS|DE|DEBUG-CONTENTS|DEBUG-ITEM|DEBUG-LINE|DEBUG-NAME|DEBUG-SUB-1|DEBUG-SUB-2|DEBUG-SUB-3|DEBUGGING|DECIMAL-POINT|DECLARATIVES|DEFAULT|DEFAULT-DISPLAY|DEFINITION|DELETE|DELIMITED|DELIMITER|DEPENDING|DESCENDING|DESTINATION|DETAIL|DFHRESP|DFHVALUE|DISABLE|DISK|DISPLAY|DISPLAY-1|DIVIDE|DIVISION|DONTCARE|DOUBLE|DOWN|DUPLICATES|DYNAMIC|EBCDIC|EGCS|EGI|ELSE|EMI|EMPTY-CHECK|ENABLE|END|END-ACCEPT|END-ADD|END-CALL|END-COMPUTE|END-DELETE|END-DIVIDE|END-EVALUATE|END-IF|END-MULTIPLY|END-OF-PAGE|END-PERFORM|END-READ|END-RECEIVE|END-RETURN|END-REWRITE|END-SEARCH|END-START|END-STRING|END-SUBTRACT|END-UNSTRING|END-WRITE|ENDING|ENTER|ENTRY|ENTRY-PROCEDURE|ENVIRONMENT|EOL|EOP|EOS|ERASE|ERROR|ESCAPE|ESI|EVALUATE|EVENT|EVERY|EXCEPTION|EXCLUSIVE|EXHIBIT|EXIT|EXPORT|EXTEND|EXTENDED|EXTERNAL|FD|FILE|FILE-CONTROL|FILLER|FINAL|FIRST|FOOTING|FOR|FOREGROUND-COLOR|FOREGROUND-COLOUR|FROM|FULL|FUNCTION|FUNCTION-POINTER|FUNCTIONNAME|GENERATE|GIVING|GLOBAL|GO|GOBACK|GRID|GROUP|HEADING|HIGH-VALUE|HIGH-VALUES|HIGHLIGHT|I-O|I-O-CONTROL|ID|IDENTIFICATION|IF|IMPLICIT|IMPORT|IN|INDEX|INDEXED|INDICATE|INITIAL|INITIALIZE|INITIATE|INPUT|INPUT-OUTPUT|INSPECT|INSTALLATION|INTEGER|INTO|INVALID|INVOKE|IS|JUST|JUSTIFIED|KANJI|KEPT|KEY|KEYBOARD|LABEL|LANGUAGE|LAST|LB|LD|LEADING|LEFT|LEFTLINE|LENGTH|LENGTH-CHECK|LIBACCESS|LIBPARAMETER|LIBRARY|LIMIT|LIMITS|LINAGE|LINAGE-COUNTER|LINE|LINE-COUNTER|LINES|LINKAGE|LIST|LOCAL|LOCAL-STORAGE|LOCK|LONG-DATE|LONG-TIME|LOW-VALUE|LOW-VALUES|LOWER|LOWLIGHT|MEMORY|MERGE|MESSAGE|MMDDYYYY|MODE|MODULES|MORE-LABELS|MOVE|MULTIPLE|MULTIPLY|NAMED|NATIONAL|NATIONAL-EDITED|NATIVE|NEGATIVE|NETWORK|NEXT|NO|NO-ECHO|NULL|NULLS|NUMBER|NUMERIC|NUMERIC-DATE|NUMERIC-EDITED|NUMERIC-TIME|OBJECT-COMPUTER|OCCURS|ODT|OF|OFF|OMITTED|ON|OPEN|OPTIONAL|ORDER|ORDERLY|ORGANIZATION|OTHER|OUTPUT|OVERFLOW|OVERLINE|OWN|PACKED-DECIMAL|PADDING|PAGE|PAGE-COUNTER|PASSWORD|PERFORM|PF|PH|PIC|PICTURE|PLUS|POINTER|PORT|POSITION|POSITIVE|PRINTER|PRINTING|PRIVATE|PROCEDURE|PROCEDURE-POINTER|PROCEDURES|PROCEED|PROCESS|PROGRAM|PROGRAM-ID|PROGRAM-LIBRARY|PROMPT|PURGE|QUEUE|QUOTE|QUOTES|RANDOM|RD|READ|READER|REAL|RECEIVE|RECEIVED|RECORD|RECORDING|RECORDS|RECURSIVE|REDEFINES|REEL|REF|REFERENCE|REFERENCES|RELATIVE|RELEASE|REMAINDER|REMARKS|REMOTE|REMOVAL|REMOVE|RENAMES|REPLACE|REPLACING|REPORT|REPORTING|REPORTS|REQUIRED|RERUN|RESERVE|RESET|RETURN|RETURN-CODE|RETURNING|REVERSE-VIDEO|REVERSED|REWIND|REWRITE|RF|RH|RIGHT|ROUNDED|RUN|SAME|SAVE|SCREEN|SD|SEARCH|SECTION|SECURE|SECURITY|SEGMENT|SEGMENT-LIMIT|SELECT|SEND|SENTENCE|SEPARATE|SEQUENCE|SEQUENTIAL|SET|SHARED|SHAREDBYALL|SHAREDBYRUNUNIT|SHARING|SHIFT-IN|SHIFT-OUT|SHORT-DATE|SIGN|SIZE|SORT|SORT-CONTROL|SORT-CORE-SIZE|SORT-FILE-SIZE|SORT-MERGE|SORT-MESSAGE|SORT-MODE-SIZE|SORT-RETURN|SOURCE|SOURCE-COMPUTER|SPACE|SPACES|SPECIAL-NAMES|STANDARD|STANDARD-1|STANDARD-2|START|STATUS|STOP|STRING|SUB-QUEUE-1|SUB-QUEUE-2|SUB-QUEUE-3|SUBTRACT|SUM|SUPPRESS|SYMBOL|SYMBOLIC|SYNC|SYNCHRONIZED|TABLE|TALLY|TALLYING|TAPE|TASK|TERMINAL|TERMINATE|TEST|TEXT|THEN|THREAD|THREAD-LOCAL|THROUGH|THRU|TIME|TIMER|TIMES|TITLE|TO|TODAYS-DATE|TODAYS-NAME|TOP|TRAILING|TRUNCATED|TYPE|TYPEDEF|UNDERLINE|UNIT|UNSTRING|UNTIL|UP|UPON|USAGE|USE|USING|VALUE|VALUES|VARYING|VIRTUAL|WAIT|WHEN|WHEN-COMPILED|WITH|WORDS|WORKING-STORAGE|WRITE|YEAR|YYYYDDD|YYYYMMDD|ZERO-FILL|ZEROES|ZEROS)(?![\\w-])/i,\n      lookbehind: true\n    },\n    boolean: {\n      pattern: /(^|[^\\w-])(?:false|true)(?![\\w-])/i,\n      lookbehind: true\n    },\n    number: {\n      pattern:\n        /(^|[^\\w-])(?:[+-]?(?:(?:\\d+(?:[.,]\\d+)?|[.,]\\d+)(?:e[+-]?\\d+)?|zero))(?![\\w-])/i,\n      lookbehind: true\n    },\n    operator: [\n      /<>|[<>]=?|[=+*/&]/,\n      {\n        pattern: /(^|[^\\w-])(?:-|and|equal|greater|less|not|or|than)(?![\\w-])/i,\n        lookbehind: true\n      }\n    ],\n    punctuation: /[.:,()]/\n  }\n}\n","'use strict'\n\nmodule.exports = coffeescript\ncoffeescript.displayName = 'coffeescript'\ncoffeescript.aliases = ['coffee']\nfunction coffeescript(Prism) {\n  ;(function (Prism) {\n    // Ignore comments starting with { to privilege string interpolation highlighting\n    var comment = /#(?!\\{).+/\n    var interpolation = {\n      pattern: /#\\{[^}]+\\}/,\n      alias: 'variable'\n    }\n    Prism.languages.coffeescript = Prism.languages.extend('javascript', {\n      comment: comment,\n      string: [\n        // Strings are multiline\n        {\n          pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n          greedy: true\n        },\n        {\n          // Strings are multiline\n          pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n          greedy: true,\n          inside: {\n            interpolation: interpolation\n          }\n        }\n      ],\n      keyword:\n        /\\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\\b/,\n      'class-member': {\n        pattern: /@(?!\\d)\\w+/,\n        alias: 'variable'\n      }\n    })\n    Prism.languages.insertBefore('coffeescript', 'comment', {\n      'multiline-comment': {\n        pattern: /###[\\s\\S]+?###/,\n        alias: 'comment'\n      },\n      // Block regexp can contain comments and interpolation\n      'block-regex': {\n        pattern: /\\/{3}[\\s\\S]*?\\/{3}/,\n        alias: 'regex',\n        inside: {\n          comment: comment,\n          interpolation: interpolation\n        }\n      }\n    })\n    Prism.languages.insertBefore('coffeescript', 'string', {\n      'inline-javascript': {\n        pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n        inside: {\n          delimiter: {\n            pattern: /^`|`$/,\n            alias: 'punctuation'\n          },\n          script: {\n            pattern: /[\\s\\S]+/,\n            alias: 'language-javascript',\n            inside: Prism.languages.javascript\n          }\n        }\n      },\n      // Block strings\n      'multiline-string': [\n        {\n          pattern: /'''[\\s\\S]*?'''/,\n          greedy: true,\n          alias: 'string'\n        },\n        {\n          pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n          greedy: true,\n          alias: 'string',\n          inside: {\n            interpolation: interpolation\n          }\n        }\n      ]\n    })\n    Prism.languages.insertBefore('coffeescript', 'keyword', {\n      // Object property\n      property: /(?!\\d)\\w+(?=\\s*:(?!:))/\n    })\n    delete Prism.languages.coffeescript['template-string']\n    Prism.languages.coffee = Prism.languages.coffeescript\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = concurnas\nconcurnas.displayName = 'concurnas'\nconcurnas.aliases = ['conc']\nfunction concurnas(Prism) {\n  Prism.languages.concurnas = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\/\\/.*)/,\n      lookbehind: true,\n      greedy: true\n    },\n    langext: {\n      pattern: /\\b\\w+\\s*\\|\\|[\\s\\S]+?\\|\\|/,\n      greedy: true,\n      inside: {\n        'class-name': /^\\w+/,\n        string: {\n          pattern: /(^\\s*\\|\\|)[\\s\\S]+(?=\\|\\|$)/,\n          lookbehind: true\n        },\n        punctuation: /\\|\\|/\n      }\n    },\n    function: {\n      pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    number:\n      /\\b0b[01][01_]*L?\\b|\\b0x(?:[\\da-f_]*\\.)?[\\da-f_p+-]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfls]?/i,\n    punctuation: /[{}[\\];(),.:]/,\n    operator:\n      /<==|>==|=>|->|<-|<>|&==|&<>|\\?:?|\\.\\?|\\+\\+|--|[-+*/=<>]=?|[!^~]|\\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\\b=?/,\n    annotation: {\n      pattern: /@(?:\\w+:)?(?:\\w+|\\[[^\\]]+\\])?/,\n      alias: 'builtin'\n    }\n  }\n  Prism.languages.insertBefore('concurnas', 'langext', {\n    'regex-literal': {\n      pattern: /\\br(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern:\n            /((?:^|[^\\\\])(?:\\\\{2})*)\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n          lookbehind: true,\n          inside: Prism.languages.concurnas\n        },\n        regex: /[\\s\\S]+/\n      }\n    },\n    'string-literal': {\n      pattern: /(?:\\B|\\bs)(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern:\n            /((?:^|[^\\\\])(?:\\\\{2})*)\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n          lookbehind: true,\n          inside: Prism.languages.concurnas\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n  })\n  Prism.languages.conc = Prism.languages.concurnas\n}\n","'use strict'\n\nmodule.exports = coq\ncoq.displayName = 'coq'\ncoq.aliases = []\nfunction coq(Prism) {\n  ;(function (Prism) {\n    // https://github.com/coq/coq\n    var commentSource = /\\(\\*(?:[^(*]|\\((?!\\*)|\\*(?!\\))|<self>)*\\*\\)/.source\n    for (var i = 0; i < 2; i++) {\n      commentSource = commentSource.replace(/<self>/g, function () {\n        return commentSource\n      })\n    }\n    commentSource = commentSource.replace(/<self>/g, '[]')\n    Prism.languages.coq = {\n      comment: RegExp(commentSource),\n      string: {\n        pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n        greedy: true\n      },\n      attribute: [\n        {\n          pattern: RegExp(\n            /#\\[(?:[^\\[\\](\"]|\"(?:[^\"]|\"\")*\"(?!\")|\\((?!\\*)|<comment>)*\\]/.source.replace(\n              /<comment>/g,\n              function () {\n                return commentSource\n              }\n            )\n          ),\n          greedy: true,\n          alias: 'attr-name',\n          inside: {\n            comment: RegExp(commentSource),\n            string: {\n              pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n              greedy: true\n            },\n            operator: /=/,\n            punctuation: /^#\\[|\\]$|[,()]/\n          }\n        },\n        {\n          pattern:\n            /\\b(?:Cumulative|Global|Local|Monomorphic|NonCumulative|Polymorphic|Private|Program)\\b/,\n          alias: 'attr-name'\n        }\n      ],\n      keyword:\n        /\\b(?:Abort|About|Add|Admit|Admitted|All|Arguments|As|Assumptions|Axiom|Axioms|Back|BackTo|Backtrace|BinOp|BinOpSpec|BinRel|Bind|Blacklist|Canonical|Case|Cd|Check|Class|Classes|Close|CoFixpoint|CoInductive|Coercion|Coercions|Collection|Combined|Compute|Conjecture|Conjectures|Constant|Constants|Constraint|Constructors|Context|Corollary|Create|CstOp|Custom|Cut|Debug|Declare|Defined|Definition|Delimit|Dependencies|Dependent|Derive|Diffs|Drop|Elimination|End|Entry|Equality|Eval|Example|Existential|Existentials|Existing|Export|Extern|Extraction|Fact|Fail|Field|File|Firstorder|Fixpoint|Flags|Focus|From|Funclass|Function|Functional|GC|Generalizable|Goal|Grab|Grammar|Graph|Guarded|Haskell|Heap|Hide|Hint|HintDb|Hints|Hypotheses|Hypothesis|IF|Identity|Immediate|Implicit|Implicits|Import|Include|Induction|Inductive|Infix|Info|Initial|InjTyp|Inline|Inspect|Instance|Instances|Intro|Intros|Inversion|Inversion_clear|JSON|Language|Left|Lemma|Let|Lia|Libraries|Library|Load|LoadPath|Locate|Ltac|Ltac2|ML|Match|Method|Minimality|Module|Modules|Morphism|Next|NoInline|Notation|Number|OCaml|Obligation|Obligations|Opaque|Open|Optimize|Parameter|Parameters|Parametric|Path|Paths|Prenex|Preterm|Primitive|Print|Profile|Projections|Proof|Prop|PropBinOp|PropOp|PropUOp|Property|Proposition|Pwd|Qed|Quit|Rec|Record|Recursive|Redirect|Reduction|Register|Relation|Remark|Remove|Require|Reserved|Reset|Resolve|Restart|Rewrite|Right|Ring|Rings|SProp|Saturate|Save|Scheme|Scope|Scopes|Search|SearchHead|SearchPattern|SearchRewrite|Section|Separate|Set|Setoid|Show|Signatures|Solve|Solver|Sort|Sortclass|Sorted|Spec|Step|Strategies|Strategy|String|Structure|SubClass|Subgraph|SuchThat|Tactic|Term|TestCompile|Theorem|Time|Timeout|To|Transparent|Type|Typeclasses|Types|Typing|UnOp|UnOpSpec|Undelimit|Undo|Unfocus|Unfocused|Unfold|Universe|Universes|Unshelve|Variable|Variables|Variant|Verbose|View|Visibility|Zify|_|apply|as|at|by|cofix|else|end|exists|exists2|fix|for|forall|fun|if|in|let|match|measure|move|removed|return|struct|then|using|wf|where|with)\\b/,\n      number:\n        /\\b(?:0x[a-f0-9][a-f0-9_]*(?:\\.[a-f0-9_]+)?(?:p[+-]?\\d[\\d_]*)?|\\d[\\d_]*(?:\\.[\\d_]+)?(?:e[+-]?\\d[\\d_]*)?)\\b/i,\n      punct: {\n        pattern: /@\\{|\\{\\||\\[=|:>/,\n        alias: 'punctuation'\n      },\n      operator:\n        /\\/\\\\|\\\\\\/|\\.{2,3}|:{1,2}=|\\*\\*|[-=]>|<(?:->?|[+:=>]|<:)|>(?:=|->)|\\|[-|]?|[-!%&*+/<=>?@^~']/,\n      punctuation: /\\.\\(|`\\(|@\\{|`\\{|\\{\\||\\[=|:>|[:.,;(){}\\[\\]]/\n    }\n  })(Prism)\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = cpp\ncpp.displayName = 'cpp'\ncpp.aliases = []\nfunction cpp(Prism) {\n  Prism.register(refractorC)\n  ;(function (Prism) {\n    var keyword =\n      /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/\n    var modName = /\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b/.source.replace(\n      /<keyword>/g,\n      function () {\n        return keyword.source\n      }\n    )\n    Prism.languages.cpp = Prism.languages.extend('c', {\n      'class-name': [\n        {\n          pattern: RegExp(\n            /(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+/.source.replace(\n              /<keyword>/g,\n              function () {\n                return keyword.source\n              }\n            )\n          ),\n          lookbehind: true\n        }, // This is intended to capture the class name of method implementations like:\n        //   void foo::bar() const {}\n        // However! The `foo` in the above example could also be a namespace, so we only capture the class name if\n        // it starts with an uppercase letter. This approximation should give decent results.\n        /\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/, // This will capture the class name before destructors like:\n        //   Foo::~Foo() {}\n        /\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i, // This also intends to capture the class name of method implementations but here the class has template\n        // parameters, so it can't be a namespace (until C++ adds generic namespaces).\n        /\\b\\w+(?=\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\\s*::\\s*\\w+\\s*\\()/\n      ],\n      keyword: keyword,\n      number: {\n        pattern:\n          /(?:\\b0b[01']+|\\b0x(?:[\\da-f']+(?:\\.[\\da-f']*)?|\\.[\\da-f']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/i,\n        greedy: true\n      },\n      operator:\n        />>=?|<<=?|->|--|\\+\\+|&&|\\|\\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/,\n      boolean: /\\b(?:false|true)\\b/\n    })\n    Prism.languages.insertBefore('cpp', 'string', {\n      module: {\n        // https://en.cppreference.com/w/cpp/language/modules\n        pattern: RegExp(\n          /(\\b(?:import|module)\\s+)/.source +\n            '(?:' + // header-name\n            /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|<[^<>\\r\\n]*>/.source +\n            '|' + // module name or partition or both\n            /<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>/.source.replace(\n              /<mod-name>/g,\n              function () {\n                return modName\n              }\n            ) +\n            ')'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          string: /^[<\"][\\s\\S]+/,\n          operator: /:/,\n          punctuation: /\\./\n        }\n      },\n      'raw-string': {\n        pattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/,\n        alias: 'string',\n        greedy: true\n      }\n    })\n    Prism.languages.insertBefore('cpp', 'keyword', {\n      'generic-function': {\n        pattern: /\\b(?!operator\\b)[a-z_]\\w*\\s*<(?:[^<>]|<[^<>]*>)*>(?=\\s*\\()/i,\n        inside: {\n          function: /^\\w+/,\n          generic: {\n            pattern: /<[\\s\\S]+/,\n            alias: 'class-name',\n            inside: Prism.languages.cpp\n          }\n        }\n      }\n    })\n    Prism.languages.insertBefore('cpp', 'operator', {\n      'double-colon': {\n        pattern: /::/,\n        alias: 'punctuation'\n      }\n    })\n    Prism.languages.insertBefore('cpp', 'class-name', {\n      // the base clause is an optional list of parent classes\n      // https://en.cppreference.com/w/cpp/language/class\n      'base-clause': {\n        pattern:\n          /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/,\n        lookbehind: true,\n        greedy: true,\n        inside: Prism.languages.extend('cpp', {})\n      }\n    })\n    Prism.languages.insertBefore(\n      'inside',\n      'double-colon',\n      {\n        // All untokenized words that are not namespaces should be class names\n        'class-name': /\\b[a-z_]\\w*\\b(?!\\s*::)/i\n      },\n      Prism.languages.cpp['base-clause']\n    )\n  })(Prism)\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nmodule.exports = crystal\ncrystal.displayName = 'crystal'\ncrystal.aliases = []\nfunction crystal(Prism) {\n  Prism.register(refractorRuby)\n  ;(function (Prism) {\n    Prism.languages.crystal = Prism.languages.extend('ruby', {\n      keyword: [\n        /\\b(?:__DIR__|__END_LINE__|__FILE__|__LINE__|abstract|alias|annotation|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|ifdef|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|ptr|require|rescue|return|select|self|sizeof|struct|super|then|type|typeof|undef|uninitialized|union|unless|until|when|while|with|yield)\\b/,\n        {\n          pattern: /(\\.\\s*)(?:is_a|responds_to)\\?/,\n          lookbehind: true\n        }\n      ],\n      number:\n        /\\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\\da-fA-F_]*[\\da-fA-F]|(?:\\d(?:[\\d_]*\\d)?)(?:\\.[\\d_]*\\d)?(?:[eE][+-]?[\\d_]*\\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\\b/,\n      operator: [/->/, Prism.languages.ruby.operator],\n      punctuation: /[(){}[\\].,;\\\\]/\n    })\n    Prism.languages.insertBefore('crystal', 'string-literal', {\n      attribute: {\n        pattern: /@\\[.*?\\]/,\n        inside: {\n          delimiter: {\n            pattern: /^@\\[|\\]$/,\n            alias: 'punctuation'\n          },\n          attribute: {\n            pattern: /^(\\s*)\\w+/,\n            lookbehind: true,\n            alias: 'class-name'\n          },\n          args: {\n            pattern: /\\S(?:[\\s\\S]*\\S)?/,\n            inside: Prism.languages.crystal\n          }\n        }\n      },\n      expansion: {\n        pattern: /\\{(?:\\{.*?\\}|%.*?%)\\}/,\n        inside: {\n          content: {\n            pattern: /^(\\{.)[\\s\\S]+(?=.\\}$)/,\n            lookbehind: true,\n            inside: Prism.languages.crystal\n          },\n          delimiter: {\n            pattern: /^\\{[\\{%]|[\\}%]\\}$/,\n            alias: 'operator'\n          }\n        }\n      },\n      char: {\n        pattern:\n          /'(?:[^\\\\\\r\\n]{1,2}|\\\\(?:.|u(?:[A-Fa-f0-9]{1,4}|\\{[A-Fa-f0-9]{1,6}\\})))'/,\n        greedy: true\n      }\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = csharp\ncsharp.displayName = 'csharp'\ncsharp.aliases = ['dotnet', 'cs']\nfunction csharp(Prism) {\n  ;(function (Prism) {\n    /**\n     * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (zero based).\n     *\n     * Note: This is a simple text based replacement. Be careful when using backreferences!\n     *\n     * @param {string} pattern the given pattern.\n     * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n     * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n     * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n     */\n    function replace(pattern, replacements) {\n      return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n        return '(?:' + replacements[+index] + ')'\n      })\n    }\n    /**\n     * @param {string} pattern\n     * @param {string[]} replacements\n     * @param {string} [flags]\n     * @returns {RegExp}\n     */\n    function re(pattern, replacements, flags) {\n      return RegExp(replace(pattern, replacements), flags || '')\n    }\n    /**\n     * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n     *\n     * @param {string} pattern\n     * @param {number} depthLog2\n     * @returns {string}\n     */\n    function nested(pattern, depthLog2) {\n      for (var i = 0; i < depthLog2; i++) {\n        pattern = pattern.replace(/<<self>>/g, function () {\n          return '(?:' + pattern + ')'\n        })\n      }\n      return pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]')\n    } // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\n    var keywordKinds = {\n      // keywords which represent a return or variable type\n      type: 'bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void',\n      // keywords which are used to declare a type\n      typeDeclaration: 'class enum interface record struct',\n      // contextual keywords\n      // (\"var\" and \"dynamic\" are missing because they are used like types)\n      contextual:\n        'add alias and ascending async await by descending from(?=\\\\s*(?:\\\\w|$)) get global group into init(?=\\\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\\\s*{)',\n      // all other keywords\n      other:\n        'abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield'\n    } // keywords\n    function keywordsToPattern(words) {\n      return '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b'\n    }\n    var typeDeclarationKeywords = keywordsToPattern(\n      keywordKinds.typeDeclaration\n    )\n    var keywords = RegExp(\n      keywordsToPattern(\n        keywordKinds.type +\n          ' ' +\n          keywordKinds.typeDeclaration +\n          ' ' +\n          keywordKinds.contextual +\n          ' ' +\n          keywordKinds.other\n      )\n    )\n    var nonTypeKeywords = keywordsToPattern(\n      keywordKinds.typeDeclaration +\n        ' ' +\n        keywordKinds.contextual +\n        ' ' +\n        keywordKinds.other\n    )\n    var nonContextualKeywords = keywordsToPattern(\n      keywordKinds.type +\n        ' ' +\n        keywordKinds.typeDeclaration +\n        ' ' +\n        keywordKinds.other\n    ) // types\n    var generic = nested(/<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>/.source, 2) // the idea behind the other forbidden characters is to prevent false positives. Same for tupleElement.\n    var nestedRound = nested(/\\((?:[^()]|<<self>>)*\\)/.source, 2)\n    var name = /@?\\b[A-Za-z_]\\w*\\b/.source\n    var genericName = replace(/<<0>>(?:\\s*<<1>>)?/.source, [name, generic])\n    var identifier = replace(/(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*/.source, [\n      nonTypeKeywords,\n      genericName\n    ])\n    var array = /\\[\\s*(?:,\\s*)*\\]/.source\n    var typeExpressionWithoutTuple = replace(\n      /<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?/.source,\n      [identifier, array]\n    )\n    var tupleElement = replace(\n      /[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,\n      [generic, nestedRound, array]\n    )\n    var tuple = replace(/\\(<<0>>+(?:,<<0>>+)+\\)/.source, [tupleElement])\n    var typeExpression = replace(\n      /(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?/.source,\n      [tuple, identifier, array]\n    )\n    var typeInside = {\n      keyword: keywords,\n      punctuation: /[<>()?,.:[\\]]/\n    } // strings & characters\n    // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#character-literals\n    // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#string-literals\n    var character = /'(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'/.source // simplified pattern\n    var regularString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/.source\n    var verbatimString = /@\"(?:\"\"|\\\\[\\s\\S]|[^\\\\\"])*\"(?!\")/.source\n    Prism.languages.csharp = Prism.languages.extend('clike', {\n      string: [\n        {\n          pattern: re(/(^|[^$\\\\])<<0>>/.source, [verbatimString]),\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          pattern: re(/(^|[^@$\\\\])<<0>>/.source, [regularString]),\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      'class-name': [\n        {\n          // Using static\n          // using static System.Math;\n          pattern: re(/(\\busing\\s+static\\s+)<<0>>(?=\\s*;)/.source, [\n            identifier\n          ]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // Using alias (type)\n          // using Project = PC.MyCompany.Project;\n          pattern: re(/(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)/.source, [\n            name,\n            typeExpression\n          ]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // Using alias (alias)\n          // using Project = PC.MyCompany.Project;\n          pattern: re(/(\\busing\\s+)<<0>>(?=\\s*=)/.source, [name]),\n          lookbehind: true\n        },\n        {\n          // Type declarations\n          // class Foo<A, B>\n          // interface Foo<out A, B>\n          pattern: re(/(\\b<<0>>\\s+)<<1>>/.source, [\n            typeDeclarationKeywords,\n            genericName\n          ]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // Single catch exception declaration\n          // catch(Foo)\n          // (things like catch(Foo e) is covered by variable declaration)\n          pattern: re(/(\\bcatch\\s*\\(\\s*)<<0>>/.source, [identifier]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // Name of the type parameter of generic constraints\n          // where Foo : class\n          pattern: re(/(\\bwhere\\s+)<<0>>/.source, [name]),\n          lookbehind: true\n        },\n        {\n          // Casts and checks via as and is.\n          // as Foo<A>, is Bar<B>\n          // (things like if(a is Foo b) is covered by variable declaration)\n          pattern: re(/(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>/.source, [\n            typeExpressionWithoutTuple\n          ]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // Variable, field and parameter declaration\n          // (Foo bar, Bar baz, Foo[,,] bay, Foo<Bar, FooBar<Bar>> bax)\n          pattern: re(\n            /\\b<<0>>(?=\\s+(?!<<1>>|with\\s*\\{)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))/\n              .source,\n            [typeExpression, nonContextualKeywords, name]\n          ),\n          inside: typeInside\n        }\n      ],\n      keyword: keywords,\n      // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#literals\n      number:\n        /(?:\\b0(?:x[\\da-f_]*[\\da-f]|b[01_]*[01])|(?:\\B\\.\\d+(?:_+\\d+)*|\\b\\d+(?:_+\\d+)*(?:\\.\\d+(?:_+\\d+)*)?)(?:e[-+]?\\d+(?:_+\\d+)*)?)(?:[dflmu]|lu|ul)?\\b/i,\n      operator: />>=?|<<=?|[-=]>|([-+&|])\\1|~|\\?\\?=?|[-+*/%&|^!=<>]=?/,\n      punctuation: /\\?\\.?|::|[{}[\\];(),.:]/\n    })\n    Prism.languages.insertBefore('csharp', 'number', {\n      range: {\n        pattern: /\\.\\./,\n        alias: 'operator'\n      }\n    })\n    Prism.languages.insertBefore('csharp', 'punctuation', {\n      'named-parameter': {\n        pattern: re(/([(,]\\s*)<<0>>(?=\\s*:)/.source, [name]),\n        lookbehind: true,\n        alias: 'punctuation'\n      }\n    })\n    Prism.languages.insertBefore('csharp', 'class-name', {\n      namespace: {\n        // namespace Foo.Bar {}\n        // using Foo.Bar;\n        pattern: re(\n          /(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])/.source,\n          [name]\n        ),\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      'type-expression': {\n        // default(Foo), typeof(Foo<Bar>), sizeof(int)\n        pattern: re(\n          /(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))/\n            .source,\n          [nestedRound]\n        ),\n        lookbehind: true,\n        alias: 'class-name',\n        inside: typeInside\n      },\n      'return-type': {\n        // Foo<Bar> ForBar(); Foo IFoo.Bar() => 0\n        // int this[int index] => 0; T IReadOnlyList<T>.this[int index] => this[index];\n        // int Foo => 0; int Foo { get; set } = 0;\n        pattern: re(\n          /<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))/.source,\n          [typeExpression, identifier]\n        ),\n        inside: typeInside,\n        alias: 'class-name'\n      },\n      'constructor-invocation': {\n        // new List<Foo<Bar[]>> { }\n        pattern: re(/(\\bnew\\s+)<<0>>(?=\\s*[[({])/.source, [typeExpression]),\n        lookbehind: true,\n        inside: typeInside,\n        alias: 'class-name'\n      },\n      /*'explicit-implementation': {\n// int IFoo<Foo>.Bar => 0; void IFoo<Foo<Foo>>.Foo<T>();\npattern: replace(/\\b<<0>>(?=\\.<<1>>)/, className, methodOrPropertyDeclaration),\ninside: classNameInside,\nalias: 'class-name'\n},*/\n      'generic-method': {\n        // foo<Bar>()\n        pattern: re(/<<0>>\\s*<<1>>(?=\\s*\\()/.source, [name, generic]),\n        inside: {\n          function: re(/^<<0>>/.source, [name]),\n          generic: {\n            pattern: RegExp(generic),\n            alias: 'class-name',\n            inside: typeInside\n          }\n        }\n      },\n      'type-list': {\n        // The list of types inherited or of generic constraints\n        // class Foo<F> : Bar, IList<FooBar>\n        // where F : Bar, IList<int>\n        pattern: re(\n          /\\b((?:<<0>>\\s+<<1>>|record\\s+<<1>>\\s*<<5>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>|<<1>>\\s*<<5>>|<<6>>)(?:\\s*,\\s*(?:<<3>>|<<4>>|<<6>>))*(?=\\s*(?:where|[{;]|=>|$))/\n            .source,\n          [\n            typeDeclarationKeywords,\n            genericName,\n            name,\n            typeExpression,\n            keywords.source,\n            nestedRound,\n            /\\bnew\\s*\\(\\s*\\)/.source\n          ]\n        ),\n        lookbehind: true,\n        inside: {\n          'record-arguments': {\n            pattern: re(/(^(?!new\\s*\\()<<0>>\\s*)<<1>>/.source, [\n              genericName,\n              nestedRound\n            ]),\n            lookbehind: true,\n            greedy: true,\n            inside: Prism.languages.csharp\n          },\n          keyword: keywords,\n          'class-name': {\n            pattern: RegExp(typeExpression),\n            greedy: true,\n            inside: typeInside\n          },\n          punctuation: /[,()]/\n        }\n      },\n      preprocessor: {\n        pattern: /(^[\\t ]*)#.*/m,\n        lookbehind: true,\n        alias: 'property',\n        inside: {\n          // highlight preprocessor directives as keywords\n          directive: {\n            pattern:\n              /(#)\\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\\b/,\n            lookbehind: true,\n            alias: 'keyword'\n          }\n        }\n      }\n    }) // attributes\n    var regularStringOrCharacter = regularString + '|' + character\n    var regularStringCharacterOrComment = replace(\n      /\\/(?![*/])|\\/\\/[^\\r\\n]*[\\r\\n]|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>/.source,\n      [regularStringOrCharacter]\n    )\n    var roundExpression = nested(\n      replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [\n        regularStringCharacterOrComment\n      ]),\n      2\n    ) // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets\n    var attrTarget =\n      /\\b(?:assembly|event|field|method|module|param|property|return|type)\\b/\n        .source\n    var attr = replace(/<<0>>(?:\\s*\\(<<1>>*\\))?/.source, [\n      identifier,\n      roundExpression\n    ])\n    Prism.languages.insertBefore('csharp', 'class-name', {\n      attribute: {\n        // Attributes\n        // [Foo], [Foo(1), Bar(2, Prop = \"foo\")], [return: Foo(1), Bar(2)], [assembly: Foo(Bar)]\n        pattern: re(\n          /((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])/\n            .source,\n          [attrTarget, attr]\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          target: {\n            pattern: re(/^<<0>>(?=\\s*:)/.source, [attrTarget]),\n            alias: 'keyword'\n          },\n          'attribute-arguments': {\n            pattern: re(/\\(<<0>>*\\)/.source, [roundExpression]),\n            inside: Prism.languages.csharp\n          },\n          'class-name': {\n            pattern: RegExp(identifier),\n            inside: {\n              punctuation: /\\./\n            }\n          },\n          punctuation: /[:,]/\n        }\n      }\n    }) // string interpolation\n    var formatString = /:[^}\\r\\n]+/.source // multi line\n    var mInterpolationRound = nested(\n      replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [\n        regularStringCharacterOrComment\n      ]),\n      2\n    )\n    var mInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n      mInterpolationRound,\n      formatString\n    ]) // single line\n    var sInterpolationRound = nested(\n      replace(\n        /[^\"'/()]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>|\\(<<self>>*\\)/\n          .source,\n        [regularStringOrCharacter]\n      ),\n      2\n    )\n    var sInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n      sInterpolationRound,\n      formatString\n    ])\n    function createInterpolationInside(interpolation, interpolationRound) {\n      return {\n        interpolation: {\n          pattern: re(/((?:^|[^{])(?:\\{\\{)*)<<0>>/.source, [interpolation]),\n          lookbehind: true,\n          inside: {\n            'format-string': {\n              pattern: re(/(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)/.source, [\n                interpolationRound,\n                formatString\n              ]),\n              lookbehind: true,\n              inside: {\n                punctuation: /^:/\n              }\n            },\n            punctuation: /^\\{|\\}$/,\n            expression: {\n              pattern: /[\\s\\S]+/,\n              alias: 'language-csharp',\n              inside: Prism.languages.csharp\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n    Prism.languages.insertBefore('csharp', 'string', {\n      'interpolation-string': [\n        {\n          pattern: re(\n            /(^|[^\\\\])(?:\\$@|@\\$)\"(?:\"\"|\\\\[\\s\\S]|\\{\\{|<<0>>|[^\\\\{\"])*\"/.source,\n            [mInterpolation]\n          ),\n          lookbehind: true,\n          greedy: true,\n          inside: createInterpolationInside(mInterpolation, mInterpolationRound)\n        },\n        {\n          pattern: re(/(^|[^@\\\\])\\$\"(?:\\\\.|\\{\\{|<<0>>|[^\\\\\"{])*\"/.source, [\n            sInterpolation\n          ]),\n          lookbehind: true,\n          greedy: true,\n          inside: createInterpolationInside(sInterpolation, sInterpolationRound)\n        }\n      ],\n      char: {\n        pattern: RegExp(character),\n        greedy: true\n      }\n    })\n    Prism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp\n  })(Prism)\n}\n","'use strict'\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = cshtml\ncshtml.displayName = 'cshtml'\ncshtml.aliases = ['razor']\nfunction cshtml(Prism) {\n  Prism.register(refractorCsharp)\n  // Docs:\n  // https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-5.0&tabs=visual-studio\n  // https://docs.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-5.0\n  ;(function (Prism) {\n    var commentLike = /\\/(?![/*])|\\/\\/.*[\\r\\n]|\\/\\*[^*]*(?:\\*(?!\\/)[^*]*)*\\*\\//\n      .source\n    var stringLike =\n      /@(?!\")|\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|@\"(?:[^\\\\\"]|\"\"|\\\\[\\s\\S])*\"(?!\")/.source +\n      '|' +\n      /'(?:(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'|(?=[^\\\\](?!')))/.source\n    /**\n     * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n     *\n     * @param {string} pattern\n     * @param {number} depthLog2\n     * @returns {string}\n     */\n    function nested(pattern, depthLog2) {\n      for (var i = 0; i < depthLog2; i++) {\n        pattern = pattern.replace(/<self>/g, function () {\n          return '(?:' + pattern + ')'\n        })\n      }\n      return pattern\n        .replace(/<self>/g, '[^\\\\s\\\\S]')\n        .replace(/<str>/g, '(?:' + stringLike + ')')\n        .replace(/<comment>/g, '(?:' + commentLike + ')')\n    }\n    var round = nested(/\\((?:[^()'\"@/]|<str>|<comment>|<self>)*\\)/.source, 2)\n    var square = nested(/\\[(?:[^\\[\\]'\"@/]|<str>|<comment>|<self>)*\\]/.source, 2)\n    var curly = nested(/\\{(?:[^{}'\"@/]|<str>|<comment>|<self>)*\\}/.source, 2)\n    var angle = nested(/<(?:[^<>'\"@/]|<str>|<comment>|<self>)*>/.source, 2) // Note about the above bracket patterns:\n    // They all ignore HTML expressions that might be in the C# code. This is a problem because HTML (like strings and\n    // comments) is parsed differently. This is a huge problem because HTML might contain brackets and quotes which\n    // messes up the bracket and string counting implemented by the above patterns.\n    //\n    // This problem is not fixable because 1) HTML expression are highly context sensitive and very difficult to detect\n    // and 2) they require one capturing group at every nested level. See the `tagRegion` pattern to admire the\n    // complexity of an HTML expression.\n    //\n    // To somewhat alleviate the problem a bit, the patterns for characters (e.g. 'a') is very permissive, it also\n    // allows invalid characters to support HTML expressions like this: <p>That's it!</p>.\n    var tagAttrs =\n      /(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?/\n        .source\n    var tagContent = /(?!\\d)[^\\s>\\/=$<%]+/.source + tagAttrs + /\\s*\\/?>/.source\n    var tagRegion =\n      /\\B@?/.source +\n      '(?:' +\n      /<([a-zA-Z][\\w:]*)/.source +\n      tagAttrs +\n      /\\s*>/.source +\n      '(?:' +\n      (/[^<]/.source +\n        '|' + // all tags that are not the start tag\n        // eslint-disable-next-line regexp/strict\n        /<\\/?(?!\\1\\b)/.source +\n        tagContent +\n        '|' + // nested start tag\n        nested(\n          // eslint-disable-next-line regexp/strict\n          /<\\1/.source +\n            tagAttrs +\n            /\\s*>/.source +\n            '(?:' +\n            (/[^<]/.source +\n              '|' + // all tags that are not the start tag\n              // eslint-disable-next-line regexp/strict\n              /<\\/?(?!\\1\\b)/.source +\n              tagContent +\n              '|' +\n              '<self>') +\n            ')*' + // eslint-disable-next-line regexp/strict\n            /<\\/\\1\\s*>/.source,\n          2\n        )) +\n      ')*' + // eslint-disable-next-line regexp/strict\n      /<\\/\\1\\s*>/.source +\n      '|' +\n      /</.source +\n      tagContent +\n      ')' // Now for the actual language definition(s):\n    //\n    // Razor as a language has 2 parts:\n    //  1) CSHTML: A markup-like language that has been extended with inline C# code expressions and blocks.\n    //  2) C#+HTML: A variant of C# that can contain CSHTML tags as expressions.\n    //\n    // In the below code, both CSHTML and C#+HTML will be create as separate language definitions that reference each\n    // other. However, only CSHTML will be exported via `Prism.languages`.\n    Prism.languages.cshtml = Prism.languages.extend('markup', {})\n    var csharpWithHtml = Prism.languages.insertBefore(\n      'csharp',\n      'string',\n      {\n        html: {\n          pattern: RegExp(tagRegion),\n          greedy: true,\n          inside: Prism.languages.cshtml\n        }\n      },\n      {\n        csharp: Prism.languages.extend('csharp', {})\n      }\n    )\n    var cs = {\n      pattern: /\\S[\\s\\S]*/,\n      alias: 'language-csharp',\n      inside: csharpWithHtml\n    }\n    Prism.languages.insertBefore('cshtml', 'prolog', {\n      'razor-comment': {\n        pattern: /@\\*[\\s\\S]*?\\*@/,\n        greedy: true,\n        alias: 'comment'\n      },\n      block: {\n        pattern: RegExp(\n          /(^|[^@])@/.source +\n            '(?:' +\n            [\n              // @{ ... }\n              curly, // @code{ ... }\n              /(?:code|functions)\\s*/.source + curly, // @for (...) { ... }\n              /(?:for|foreach|lock|switch|using|while)\\s*/.source +\n                round +\n                /\\s*/.source +\n                curly, // @do { ... } while (...);\n              /do\\s*/.source +\n                curly +\n                /\\s*while\\s*/.source +\n                round +\n                /(?:\\s*;)?/.source, // @try { ... } catch (...) { ... } finally { ... }\n              /try\\s*/.source +\n                curly +\n                /\\s*catch\\s*/.source +\n                round +\n                /\\s*/.source +\n                curly +\n                /\\s*finally\\s*/.source +\n                curly, // @if (...) {...} else if (...) {...} else {...}\n              /if\\s*/.source +\n                round +\n                /\\s*/.source +\n                curly +\n                '(?:' +\n                /\\s*else/.source +\n                '(?:' +\n                /\\s+if\\s*/.source +\n                round +\n                ')?' +\n                /\\s*/.source +\n                curly +\n                ')*'\n            ].join('|') +\n            ')'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          keyword: /^@\\w*/,\n          csharp: cs\n        }\n      },\n      directive: {\n        pattern:\n          /^([ \\t]*)@(?:addTagHelper|attribute|implements|inherits|inject|layout|model|namespace|page|preservewhitespace|removeTagHelper|section|tagHelperPrefix|using)(?=\\s).*/m,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          keyword: /^@\\w+/,\n          csharp: cs\n        }\n      },\n      value: {\n        pattern: RegExp(\n          /(^|[^@])@/.source +\n            /(?:await\\b\\s*)?/.source +\n            '(?:' +\n            /\\w+\\b/.source +\n            '|' +\n            round +\n            ')' +\n            '(?:' +\n            /[?!]?\\.\\w+\\b/.source +\n            '|' +\n            round +\n            '|' +\n            square +\n            '|' +\n            angle +\n            round +\n            ')*'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'variable',\n        inside: {\n          keyword: /^@/,\n          csharp: cs\n        }\n      },\n      'delegate-operator': {\n        pattern: /(^|[^@])@(?=<)/,\n        lookbehind: true,\n        alias: 'operator'\n      }\n    })\n    Prism.languages.razor = Prism.languages.cshtml\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = csp\ncsp.displayName = 'csp'\ncsp.aliases = []\nfunction csp(Prism) {\n  /**\n   * Original by Scott Helme.\n   *\n   * Reference: https://scotthelme.co.uk/csp-cheat-sheet/\n   *\n   * Supports the following:\n   *  - https://www.w3.org/TR/CSP1/\n   *  - https://www.w3.org/TR/CSP2/\n   *  - https://www.w3.org/TR/CSP3/\n   */\n  ;(function (Prism) {\n    /**\n     * @param {string} source\n     * @returns {RegExp}\n     */\n    function value(source) {\n      return RegExp(\n        /([ \\t])/.source + '(?:' + source + ')' + /(?=[\\s;]|$)/.source,\n        'i'\n      )\n    }\n    Prism.languages.csp = {\n      directive: {\n        pattern:\n          /(^|[\\s;])(?:base-uri|block-all-mixed-content|(?:child|connect|default|font|frame|img|manifest|media|object|prefetch|script|style|worker)-src|disown-opener|form-action|frame-(?:ancestors|options)|input-protection(?:-(?:clip|selectors))?|navigate-to|plugin-types|policy-uri|referrer|reflected-xss|report-(?:to|uri)|require-sri-for|sandbox|(?:script|style)-src-(?:attr|elem)|upgrade-insecure-requests)(?=[\\s;]|$)/i,\n        lookbehind: true,\n        alias: 'property'\n      },\n      scheme: {\n        pattern: value(/[a-z][a-z0-9.+-]*:/.source),\n        lookbehind: true\n      },\n      none: {\n        pattern: value(/'none'/.source),\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      nonce: {\n        pattern: value(/'nonce-[-+/\\w=]+'/.source),\n        lookbehind: true,\n        alias: 'number'\n      },\n      hash: {\n        pattern: value(/'sha(?:256|384|512)-[-+/\\w=]+'/.source),\n        lookbehind: true,\n        alias: 'number'\n      },\n      host: {\n        pattern: value(\n          /[a-z][a-z0-9.+-]*:\\/\\/[^\\s;,']*/.source +\n            '|' +\n            /\\*[^\\s;,']*/.source +\n            '|' +\n            /[a-z0-9-]+(?:\\.[a-z0-9-]+)+(?::[\\d*]+)?(?:\\/[^\\s;,']*)?/.source\n        ),\n        lookbehind: true,\n        alias: 'url',\n        inside: {\n          important: /\\*/\n        }\n      },\n      keyword: [\n        {\n          pattern: value(/'unsafe-[a-z-]+'/.source),\n          lookbehind: true,\n          alias: 'unsafe'\n        },\n        {\n          pattern: value(/'[a-z-]+'/.source),\n          lookbehind: true,\n          alias: 'safe'\n        }\n      ],\n      punctuation: /;/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = cssExtras\ncssExtras.displayName = 'cssExtras'\ncssExtras.aliases = []\nfunction cssExtras(Prism) {\n  ;(function (Prism) {\n    var string = /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/\n    var selectorInside\n    Prism.languages.css.selector = {\n      pattern: Prism.languages.css.selector.pattern,\n      lookbehind: true,\n      inside: (selectorInside = {\n        'pseudo-element':\n          /:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/,\n        'pseudo-class': /:[-\\w]+/,\n        class: /\\.[-\\w]+/,\n        id: /#[-\\w]+/,\n        attribute: {\n          pattern: RegExp('\\\\[(?:[^[\\\\]\"\\']|' + string.source + ')*\\\\]'),\n          greedy: true,\n          inside: {\n            punctuation: /^\\[|\\]$/,\n            'case-sensitivity': {\n              pattern: /(\\s)[si]$/i,\n              lookbehind: true,\n              alias: 'keyword'\n            },\n            namespace: {\n              pattern: /^(\\s*)(?:(?!\\s)[-*\\w\\xA0-\\uFFFF])*\\|(?!=)/,\n              lookbehind: true,\n              inside: {\n                punctuation: /\\|$/\n              }\n            },\n            'attr-name': {\n              pattern: /^(\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+/,\n              lookbehind: true\n            },\n            'attr-value': [\n              string,\n              {\n                pattern: /(=\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+(?=\\s*$)/,\n                lookbehind: true\n              }\n            ],\n            operator: /[|~*^$]?=/\n          }\n        },\n        'n-th': [\n          {\n            pattern: /(\\(\\s*)[+-]?\\d*[\\dn](?:\\s*[+-]\\s*\\d+)?(?=\\s*\\))/,\n            lookbehind: true,\n            inside: {\n              number: /[\\dn]+/,\n              operator: /[+-]/\n            }\n          },\n          {\n            pattern: /(\\(\\s*)(?:even|odd)(?=\\s*\\))/i,\n            lookbehind: true\n          }\n        ],\n        combinator: />|\\+|~|\\|\\|/,\n        // the `tag` token has been existed and removed.\n        // because we can't find a perfect tokenize to match it.\n        // if you want to add it, please read https://github.com/PrismJS/prism/pull/2373 first.\n        punctuation: /[(),]/\n      })\n    }\n    Prism.languages.css['atrule'].inside['selector-function-argument'].inside =\n      selectorInside\n    Prism.languages.insertBefore('css', 'property', {\n      variable: {\n        pattern:\n          /(^|[^-\\w\\xA0-\\uFFFF])--(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*/i,\n        lookbehind: true\n      }\n    })\n    var unit = {\n      pattern: /(\\b\\d+)(?:%|[a-z]+(?![\\w-]))/,\n      lookbehind: true\n    } // 123 -123 .123 -.123 12.3 -12.3\n    var number = {\n      pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n      lookbehind: true\n    }\n    Prism.languages.insertBefore('css', 'function', {\n      operator: {\n        pattern: /(\\s)[+\\-*\\/](?=\\s)/,\n        lookbehind: true\n      },\n      // CAREFUL!\n      // Previewers and Inline color use hexcode and color.\n      hexcode: {\n        pattern: /\\B#[\\da-f]{3,8}\\b/i,\n        alias: 'color'\n      },\n      color: [\n        {\n          pattern:\n            /(^|[^\\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\\w-])/i,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i,\n          inside: {\n            unit: unit,\n            number: number,\n            function: /[\\w-]+(?=\\()/,\n            punctuation: /[(),]/\n          }\n        }\n      ],\n      // it's important that there is no boundary assertion after the hex digits\n      entity: /\\\\[\\da-f]{1,8}/i,\n      unit: unit,\n      number: number\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = css\ncss.displayName = 'css'\ncss.aliases = []\nfunction css(Prism) {\n  ;(function (Prism) {\n    var string =\n      /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/\n    Prism.languages.css = {\n      comment: /\\/\\*[\\s\\S]*?\\*\\//,\n      atrule: {\n        pattern: /@[\\w-](?:[^;{\\s]|\\s+(?![\\s{]))*(?:;|(?=\\s*\\{))/,\n        inside: {\n          rule: /^@[\\w-]+/,\n          'selector-function-argument': {\n            pattern:\n              /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n            lookbehind: true,\n            alias: 'selector'\n          },\n          keyword: {\n            pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n            lookbehind: true\n          } // See rest below\n        }\n      },\n      url: {\n        // https://drafts.csswg.org/css-values-3/#urls\n        pattern: RegExp(\n          '\\\\burl\\\\((?:' +\n            string.source +\n            '|' +\n            /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source +\n            ')\\\\)',\n          'i'\n        ),\n        greedy: true,\n        inside: {\n          function: /^url/i,\n          punctuation: /^\\(|\\)$/,\n          string: {\n            pattern: RegExp('^' + string.source + '$'),\n            alias: 'url'\n          }\n        }\n      },\n      selector: {\n        pattern: RegExp(\n          '(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' +\n            string.source +\n            ')*(?=\\\\s*\\\\{)'\n        ),\n        lookbehind: true\n      },\n      string: {\n        pattern: string,\n        greedy: true\n      },\n      property: {\n        pattern:\n          /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n        lookbehind: true\n      },\n      important: /!important\\b/i,\n      function: {\n        pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n        lookbehind: true\n      },\n      punctuation: /[(){};:,]/\n    }\n    Prism.languages.css['atrule'].inside.rest = Prism.languages.css\n    var markup = Prism.languages.markup\n    if (markup) {\n      markup.tag.addInlined('style', 'css')\n      markup.tag.addAttribute('style', 'css')\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = csv\ncsv.displayName = 'csv'\ncsv.aliases = []\nfunction csv(Prism) {\n  // https://tools.ietf.org/html/rfc4180\n  Prism.languages.csv = {\n    value: /[^\\r\\n,\"]+|\"(?:[^\"]|\"\")*\"(?!\")/,\n    punctuation: /,/\n  }\n}\n","'use strict'\n\nmodule.exports = cypher\ncypher.displayName = 'cypher'\ncypher.aliases = []\nfunction cypher(Prism) {\n  Prism.languages.cypher = {\n    // https://neo4j.com/docs/cypher-manual/current/syntax/comments/\n    comment: /\\/\\/.*/,\n    string: {\n      pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n      greedy: true\n    },\n    'class-name': {\n      pattern: /(:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)(?=\\s*[{):])/,\n      lookbehind: true,\n      greedy: true\n    },\n    relationship: {\n      pattern:\n        /(-\\[\\s*(?:\\w+\\s*|`(?:[^`\\\\\\r\\n])*`\\s*)?:\\s*|\\|\\s*:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)/,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property'\n    },\n    identifier: {\n      pattern: /`(?:[^`\\\\\\r\\n])*`/,\n      greedy: true\n    },\n    variable: /\\$\\w+/,\n    // https://neo4j.com/docs/cypher-manual/current/syntax/reserved/\n    keyword:\n      /\\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\\b/i,\n    function: /\\b\\w+\\b(?=\\s*\\()/,\n    boolean: /\\b(?:false|null|true)\\b/i,\n    number: /\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)\\b/,\n    // https://neo4j.com/docs/cypher-manual/current/syntax/operators/\n    operator: /:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\\.\\.\\.?/,\n    punctuation: /[()[\\]{},;.]/\n  }\n}\n","'use strict'\n\nmodule.exports = d\nd.displayName = 'd'\nd.aliases = []\nfunction d(Prism) {\n  Prism.languages.d = Prism.languages.extend('clike', {\n    comment: [\n      {\n        // Shebang\n        pattern: /^\\s*#!.+/,\n        greedy: true\n      },\n      {\n        pattern: RegExp(\n          /(^|[^\\\\])/.source +\n            '(?:' +\n            [\n              // /+ comment +/\n              // Allow one level of nesting\n              /\\/\\+(?:\\/\\+(?:[^+]|\\+(?!\\/))*\\+\\/|(?!\\/\\+)[\\s\\S])*?\\+\\//.source, // // comment\n              /\\/\\/.*/.source, // /* comment */\n              /\\/\\*[\\s\\S]*?\\*\\//.source\n            ].join('|') +\n            ')'\n        ),\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: [\n      {\n        pattern: RegExp(\n          [\n            // r\"\", x\"\"\n            /\\b[rx]\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"[cwd]?/.source, // q\"[]\", q\"()\", q\"<>\", q\"{}\"\n            /\\bq\"(?:\\[[\\s\\S]*?\\]|\\([\\s\\S]*?\\)|<[\\s\\S]*?>|\\{[\\s\\S]*?\\})\"/.source, // q\"IDENT\n            // ...\n            // IDENT\"\n            /\\bq\"((?!\\d)\\w+)$[\\s\\S]*?^\\1\"/.source, // q\"//\", q\"||\", etc.\n            // eslint-disable-next-line regexp/strict\n            /\\bq\"(.)[\\s\\S]*?\\2\"/.source, // eslint-disable-next-line regexp/strict\n            /([\"`])(?:\\\\[\\s\\S]|(?!\\3)[^\\\\])*\\3[cwd]?/.source\n          ].join('|'),\n          'm'\n        ),\n        greedy: true\n      },\n      {\n        pattern: /\\bq\\{(?:\\{[^{}]*\\}|[^{}])*\\}/,\n        greedy: true,\n        alias: 'token-string'\n      }\n    ],\n    // In order: $, keywords and special tokens, globally defined symbols\n    keyword:\n      /\\$|\\b(?:__(?:(?:DATE|EOF|FILE|FUNCTION|LINE|MODULE|PRETTY_FUNCTION|TIMESTAMP|TIME|VENDOR|VERSION)__|gshared|parameters|traits|vector)|abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|dstring|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|ptrdiff_t|public|pure|real|ref|return|scope|shared|short|size_t|static|string|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|wstring)\\b/,\n    number: [\n      // The lookbehind and the negative look-ahead try to prevent bad highlighting of the .. operator\n      // Hexadecimal numbers must be handled separately to avoid problems with exponent \"e\"\n      /\\b0x\\.?[a-f\\d_]+(?:(?!\\.\\.)\\.[a-f\\d_]*)?(?:p[+-]?[a-f\\d_]+)?[ulfi]{0,4}/i,\n      {\n        pattern:\n          /((?:\\.\\.)?)(?:\\b0b\\.?|\\b|\\.)\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?[ulfi]{0,4}/i,\n        lookbehind: true\n      }\n    ],\n    operator:\n      /\\|[|=]?|&[&=]?|\\+[+=]?|-[-=]?|\\.?\\.\\.|=[>=]?|!(?:i[ns]\\b|<>?=?|>=?|=)?|\\bi[ns]\\b|(?:<[<>]?|>>?>?|\\^\\^|[*\\/%^~])=?/\n  })\n  Prism.languages.insertBefore('d', 'string', {\n    // Characters\n    // 'a', '\\\\', '\\n', '\\xFF', '\\377', '\\uFFFF', '\\U0010FFFF', '\\quot'\n    char: /'(?:\\\\(?:\\W|\\w+)|[^\\\\])'/\n  })\n  Prism.languages.insertBefore('d', 'keyword', {\n    property: /\\B@\\w*/\n  })\n  Prism.languages.insertBefore('d', 'function', {\n    register: {\n      // Iasm registers\n      pattern:\n        /\\b(?:[ABCD][LHX]|E?(?:BP|DI|SI|SP)|[BS]PL|[ECSDGF]S|CR[0234]|[DS]IL|DR[012367]|E[ABCD]X|X?MM[0-7]|R(?:1[0-5]|[89])[BWD]?|R[ABCD]X|R[BS]P|R[DS]I|TR[3-7]|XMM(?:1[0-5]|[89])|YMM(?:1[0-5]|\\d))\\b|\\bST(?:\\([0-7]\\)|\\b)/,\n      alias: 'variable'\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = dart\ndart.displayName = 'dart'\ndart.aliases = []\nfunction dart(Prism) {\n  ;(function (Prism) {\n    var keywords = [\n      /\\b(?:async|sync|yield)\\*/,\n      /\\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extends|extension|external|factory|final|finally|for|get|hide|if|implements|import|in|interface|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\\b/\n    ] // Handles named imports, such as http.Client\n    var packagePrefix = /(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/\n      .source // based on the dart naming conventions\n    var className = {\n      pattern: RegExp(packagePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n      lookbehind: true,\n      inside: {\n        namespace: {\n          pattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n          inside: {\n            punctuation: /\\./\n          }\n        }\n      }\n    }\n    Prism.languages.dart = Prism.languages.extend('clike', {\n      'class-name': [\n        className,\n        {\n          // variables and parameters\n          // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n          pattern: RegExp(\n            packagePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()])/.source\n          ),\n          lookbehind: true,\n          inside: className.inside\n        }\n      ],\n      keyword: keywords,\n      operator:\n        /\\bis!|\\b(?:as|is)\\b|\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?/\n    })\n    Prism.languages.insertBefore('dart', 'string', {\n      'string-literal': {\n        pattern:\n          /r?(?:(\"\"\"|''')[\\s\\S]*?\\1|([\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2(?!\\2))/,\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern:\n              /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\w+|\\{(?:[^{}]|\\{[^{}]*\\})*\\})/,\n            lookbehind: true,\n            inside: {\n              punctuation: /^\\$\\{?|\\}$/,\n              expression: {\n                pattern: /[\\s\\S]+/,\n                inside: Prism.languages.dart\n              }\n            }\n          },\n          string: /[\\s\\S]+/\n        }\n      },\n      string: undefined\n    })\n    Prism.languages.insertBefore('dart', 'class-name', {\n      metadata: {\n        pattern: /@\\w+/,\n        alias: 'function'\n      }\n    })\n    Prism.languages.insertBefore('dart', 'class-name', {\n      generics: {\n        pattern:\n          /<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<[\\w\\s,.&?]*>)*>)*>)*>/,\n        inside: {\n          'class-name': className,\n          keyword: keywords,\n          punctuation: /[<>(),.:]/,\n          operator: /[?&|]/\n        }\n      }\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = dataweave\ndataweave.displayName = 'dataweave'\ndataweave.aliases = []\nfunction dataweave(Prism) {\n  ;(function (Prism) {\n    Prism.languages.dataweave = {\n      url: /\\b[A-Za-z]+:\\/\\/[\\w/:.?=&-]+|\\burn:[\\w:.?=&-]+/,\n      property: {\n        pattern: /(?:\\b\\w+#)?(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|\\b\\w+)(?=\\s*[:@])/,\n        greedy: true\n      },\n      string: {\n        pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n        greedy: true\n      },\n      'mime-type':\n        /\\b(?:application|audio|image|multipart|text|video)\\/[\\w+-]+/,\n      date: {\n        pattern: /\\|[\\w:+-]+\\|/,\n        greedy: true\n      },\n      comment: [\n        {\n          pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          pattern: /(^|[^\\\\:])\\/\\/.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      regex: {\n        pattern: /\\/(?:[^\\\\\\/\\r\\n]|\\\\[^\\r\\n])+\\//,\n        greedy: true\n      },\n      keyword:\n        /\\b(?:and|as|at|case|do|else|fun|if|input|is|match|not|ns|null|or|output|type|unless|update|using|var)\\b/,\n      function: /\\b[A-Z_]\\w*(?=\\s*\\()/i,\n      number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n      punctuation: /[{}[\\];(),.:@]/,\n      operator: /<<|>>|->|[<>~=]=?|!=|--?-?|\\+\\+?|!|\\?/,\n      boolean: /\\b(?:false|true)\\b/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = dax\ndax.displayName = 'dax'\ndax.aliases = []\nfunction dax(Prism) {\n  Prism.languages.dax = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/).*)/,\n      lookbehind: true\n    },\n    'data-field': {\n      pattern:\n        /'(?:[^']|'')*'(?!')(?:\\[[ \\w\\xA0-\\uFFFF]+\\])?|\\w+\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n      alias: 'symbol'\n    },\n    measure: {\n      pattern: /\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n      alias: 'constant'\n    },\n    string: {\n      pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n      greedy: true\n    },\n    function:\n      /\\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\\.DIST|BETA\\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\\.DIST|CHISQ\\.DIST\\.RT|CHISQ\\.INV|CHISQ\\.INV\\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\\.NORM|CONFIDENCE\\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\\.DIST|NORM\\.INV|NORM\\.S\\.DIST|NORM\\.S\\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\\.EXC|PERCENTILE\\.INC|PERCENTILEX\\.EXC|PERCENTILEX\\.INC|PERMUT|PI|POISSON\\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\\.P|STDEV\\.S|STDEVX\\.P|STDEVX\\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\\.DIST|T\\.DIST\\.2T|T\\.DIST\\.RT|T\\.INV|T\\.INV\\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\\.P|VAR\\.S|VARX\\.P|VARX\\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\\s*\\()/i,\n    keyword:\n      /\\b(?:DEFINE|EVALUATE|MEASURE|ORDER\\s+BY|RETURN|VAR|START\\s+AT|ASC|DESC)\\b/i,\n    boolean: {\n      pattern: /\\b(?:FALSE|NULL|TRUE)\\b/i,\n      alias: 'constant'\n    },\n    number: /\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/,\n    operator: /:=|[-+*\\/=^]|&&?|\\|\\||<(?:=>?|<|>)?|>[>=]?|\\b(?:IN|NOT)\\b/i,\n    punctuation: /[;\\[\\](){}`,.]/\n  }\n}\n","'use strict'\n\nmodule.exports = dhall\ndhall.displayName = 'dhall'\ndhall.aliases = []\nfunction dhall(Prism) {\n  // ABNF grammar:\n  // https://github.com/dhall-lang/dhall-lang/blob/master/standard/dhall.abnf\n  Prism.languages.dhall = {\n    // Multi-line comments can be nested. E.g. {- foo {- bar -} -}\n    // The multi-line pattern is essentially this:\n    //   \\{-(?:[^-{]|-(?!\\})|\\{(?!-)|<SELF>)*-\\}\n    comment:\n      /--.*|\\{-(?:[^-{]|-(?!\\})|\\{(?!-)|\\{-(?:[^-{]|-(?!\\})|\\{(?!-))*-\\})*-\\}/,\n    string: {\n      pattern: /\"(?:[^\"\\\\]|\\\\.)*\"|''(?:[^']|'(?!')|'''|''\\$\\{)*''(?!'|\\$)/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /\\$\\{[^{}]*\\}/,\n          inside: {\n            expression: {\n              pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n              lookbehind: true,\n              alias: 'language-dhall',\n              inside: null // see blow\n            },\n            punctuation: /\\$\\{|\\}/\n          }\n        }\n      }\n    },\n    label: {\n      pattern: /`[^`]*`/,\n      greedy: true\n    },\n    url: {\n      // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L596\n      pattern:\n        /\\bhttps?:\\/\\/[\\w.:%!$&'*+;=@~-]+(?:\\/[\\w.:%!$&'*+;=@~-]*)*(?:\\?[/?\\w.:%!$&'*+;=@~-]*)?/,\n      greedy: true\n    },\n    env: {\n      // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L661\n      pattern: /\\benv:(?:(?!\\d)\\w+|\"(?:[^\"\\\\=]|\\\\.)*\")/,\n      greedy: true,\n      inside: {\n        function: /^env/,\n        operator: /^:/,\n        variable: /[\\s\\S]+/\n      }\n    },\n    hash: {\n      // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L725\n      pattern: /\\bsha256:[\\da-fA-F]{64}\\b/,\n      inside: {\n        function: /sha256/,\n        operator: /:/,\n        number: /[\\da-fA-F]{64}/\n      }\n    },\n    // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L359\n    keyword:\n      /\\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\\b|\\u2200/,\n    builtin: /\\b(?:None|Some)\\b/,\n    boolean: /\\b(?:False|True)\\b/,\n    number:\n      /\\bNaN\\b|-?\\bInfinity\\b|[+-]?\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/,\n    operator:\n      /\\/\\\\|\\/\\/\\\\\\\\|&&|\\|\\||===|[!=]=|\\/\\/|->|\\+\\+|::|[+*#@=:?<>|\\\\\\u2227\\u2a53\\u2261\\u2afd\\u03bb\\u2192]/,\n    punctuation: /\\.\\.|[{}\\[\\](),./]/,\n    // we'll just assume that every capital word left is a type name\n    'class-name': /\\b[A-Z]\\w*\\b/\n  }\n  Prism.languages.dhall.string.inside.interpolation.inside.expression.inside =\n    Prism.languages.dhall\n}\n","'use strict'\n\nmodule.exports = diff\ndiff.displayName = 'diff'\ndiff.aliases = []\nfunction diff(Prism) {\n  ;(function (Prism) {\n    Prism.languages.diff = {\n      coord: [\n        // Match all kinds of coord lines (prefixed by \"+++\", \"---\" or \"***\").\n        /^(?:\\*{3}|-{3}|\\+{3}).*$/m, // Match \"@@ ... @@\" coord lines in unified diff.\n        /^@@.*@@$/m, // Match coord lines in normal diff (starts with a number).\n        /^\\d.*$/m\n      ] // deleted, inserted, unchanged, diff\n    }\n    /**\n     * A map from the name of a block to its line prefix.\n     *\n     * @type {Object<string, string>}\n     */\n    var PREFIXES = {\n      'deleted-sign': '-',\n      'deleted-arrow': '<',\n      'inserted-sign': '+',\n      'inserted-arrow': '>',\n      unchanged: ' ',\n      diff: '!'\n    } // add a token for each prefix\n    Object.keys(PREFIXES).forEach(function (name) {\n      var prefix = PREFIXES[name]\n      var alias = []\n      if (!/^\\w+$/.test(name)) {\n        // \"deleted-sign\" -> \"deleted\"\n        alias.push(/\\w+/.exec(name)[0])\n      }\n      if (name === 'diff') {\n        alias.push('bold')\n      }\n      Prism.languages.diff[name] = {\n        pattern: RegExp(\n          '^(?:[' + prefix + '].*(?:\\r\\n?|\\n|(?![\\\\s\\\\S])))+',\n          'm'\n        ),\n        alias: alias,\n        inside: {\n          line: {\n            pattern: /(.)(?=[\\s\\S]).*(?:\\r\\n?|\\n)?/,\n            lookbehind: true\n          },\n          prefix: {\n            pattern: /[\\s\\S]/,\n            alias: /\\w+/.exec(name)[0]\n          }\n        }\n      }\n    }) // make prefixes available to Diff plugin\n    Object.defineProperty(Prism.languages.diff, 'PREFIXES', {\n      value: PREFIXES\n    })\n  })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = django\ndjango.displayName = 'django'\ndjango.aliases = ['jinja2']\nfunction django(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  // Django/Jinja2 syntax definition for Prism.js <http://prismjs.com> syntax highlighter.\n  // Mostly it works OK but can paint code incorrectly on complex html/template tag combinations.\n  ;(function (Prism) {\n    Prism.languages.django = {\n      comment: /^\\{#[\\s\\S]*?#\\}$/,\n      tag: {\n        pattern: /(^\\{%[+-]?\\s*)\\w+/,\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      delimiter: {\n        pattern: /^\\{[{%][+-]?|[+-]?[}%]\\}$/,\n        alias: 'punctuation'\n      },\n      string: {\n        pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n        greedy: true\n      },\n      filter: {\n        pattern: /(\\|)\\w+/,\n        lookbehind: true,\n        alias: 'function'\n      },\n      test: {\n        pattern: /(\\bis\\s+(?:not\\s+)?)(?!not\\b)\\w+/,\n        lookbehind: true,\n        alias: 'function'\n      },\n      function: /\\b[a-z_]\\w+(?=\\s*\\()/i,\n      keyword:\n        /\\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\\b/,\n      operator: /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n      number: /\\b\\d+(?:\\.\\d+)?\\b/,\n      boolean: /[Ff]alse|[Nn]one|[Tt]rue/,\n      variable: /\\b\\w+\\b/,\n      punctuation: /[{}[\\](),.:;]/\n    }\n    var pattern = /\\{\\{[\\s\\S]*?\\}\\}|\\{%[\\s\\S]*?%\\}|\\{#[\\s\\S]*?#\\}/g\n    var markupTemplating = Prism.languages['markup-templating']\n    Prism.hooks.add('before-tokenize', function (env) {\n      markupTemplating.buildPlaceholders(env, 'django', pattern)\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      markupTemplating.tokenizePlaceholders(env, 'django')\n    }) // Add an Jinja2 alias\n    Prism.languages.jinja2 = Prism.languages.django\n    Prism.hooks.add('before-tokenize', function (env) {\n      markupTemplating.buildPlaceholders(env, 'jinja2', pattern)\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      markupTemplating.tokenizePlaceholders(env, 'jinja2')\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = dnsZoneFile\ndnsZoneFile.displayName = 'dnsZoneFile'\ndnsZoneFile.aliases = []\nfunction dnsZoneFile(Prism) {\n  Prism.languages['dns-zone-file'] = {\n    comment: /;.*/,\n    string: {\n      pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n      greedy: true\n    },\n    variable: [\n      {\n        pattern: /(^\\$ORIGIN[ \\t]+)\\S+/m,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|\\s)@(?=\\s|$)/,\n        lookbehind: true\n      }\n    ],\n    keyword: /^\\$(?:INCLUDE|ORIGIN|TTL)(?=\\s|$)/m,\n    class: {\n      // https://tools.ietf.org/html/rfc1035#page-13\n      pattern: /(^|\\s)(?:CH|CS|HS|IN)(?=\\s|$)/,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    type: {\n      // https://en.wikipedia.org/wiki/List_of_DNS_record_types\n      pattern:\n        /(^|\\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\\s|$)/,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    punctuation: /[()]/\n  }\n  Prism.languages['dns-zone'] = Prism.languages['dns-zone-file']\n}\n","'use strict'\n\nmodule.exports = docker\ndocker.displayName = 'docker'\ndocker.aliases = ['dockerfile']\nfunction docker(Prism) {\n  ;(function (Prism) {\n    // Many of the following regexes will contain negated lookaheads like `[ \\t]+(?![ \\t])`. This is a trick to ensure\n    // that quantifiers behave *atomically*. Atomic quantifiers are necessary to prevent exponential backtracking.\n    var spaceAfterBackSlash =\n      /\\\\[\\r\\n](?:\\s|\\\\[\\r\\n]|#.*(?!.))*(?![\\s#]|\\\\[\\r\\n])/.source // At least one space, comment, or line break\n    var space = /(?:[ \\t]+(?![ \\t])(?:<SP_BS>)?|<SP_BS>)/.source.replace(\n      /<SP_BS>/g,\n      function () {\n        return spaceAfterBackSlash\n      }\n    )\n    var string =\n      /\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"|'(?:[^'\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*'/\n        .source\n    var option = /--[\\w-]+=(?:<STR>|(?![\"'])(?:[^\\s\\\\]|\\\\.)+)/.source.replace(\n      /<STR>/g,\n      function () {\n        return string\n      }\n    )\n    var stringRule = {\n      pattern: RegExp(string),\n      greedy: true\n    }\n    var commentRule = {\n      pattern: /(^[ \\t]*)#.*/m,\n      lookbehind: true,\n      greedy: true\n    }\n    /**\n     * @param {string} source\n     * @param {string} flags\n     * @returns {RegExp}\n     */\n    function re(source, flags) {\n      source = source\n        .replace(/<OPT>/g, function () {\n          return option\n        })\n        .replace(/<SP>/g, function () {\n          return space\n        })\n      return RegExp(source, flags)\n    }\n    Prism.languages.docker = {\n      instruction: {\n        pattern:\n          /(^[ \\t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\\s)(?:\\\\.|[^\\r\\n\\\\])*(?:\\\\$(?:\\s|#.*$)*(?![\\s#])(?:\\\\.|[^\\r\\n\\\\])*)*/im,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          options: {\n            pattern: re(\n              /(^(?:ONBUILD<SP>)?\\w+<SP>)<OPT>(?:<SP><OPT>)*/.source,\n              'i'\n            ),\n            lookbehind: true,\n            greedy: true,\n            inside: {\n              property: {\n                pattern: /(^|\\s)--[\\w-]+/,\n                lookbehind: true\n              },\n              string: [\n                stringRule,\n                {\n                  pattern: /(=)(?![\"'])(?:[^\\s\\\\]|\\\\.)+/,\n                  lookbehind: true\n                }\n              ],\n              operator: /\\\\$/m,\n              punctuation: /=/\n            }\n          },\n          keyword: [\n            {\n              // https://docs.docker.com/engine/reference/builder/#healthcheck\n              pattern: re(\n                /(^(?:ONBUILD<SP>)?HEALTHCHECK<SP>(?:<OPT><SP>)*)(?:CMD|NONE)\\b/\n                  .source,\n                'i'\n              ),\n              lookbehind: true,\n              greedy: true\n            },\n            {\n              // https://docs.docker.com/engine/reference/builder/#from\n              pattern: re(\n                /(^(?:ONBUILD<SP>)?FROM<SP>(?:<OPT><SP>)*(?!--)[^ \\t\\\\]+<SP>)AS/\n                  .source,\n                'i'\n              ),\n              lookbehind: true,\n              greedy: true\n            },\n            {\n              // https://docs.docker.com/engine/reference/builder/#onbuild\n              pattern: re(/(^ONBUILD<SP>)\\w+/.source, 'i'),\n              lookbehind: true,\n              greedy: true\n            },\n            {\n              pattern: /^\\w+/,\n              greedy: true\n            }\n          ],\n          comment: commentRule,\n          string: stringRule,\n          variable: /\\$(?:\\w+|\\{[^{}\"'\\\\]*\\})/,\n          operator: /\\\\$/m\n        }\n      },\n      comment: commentRule\n    }\n    Prism.languages.dockerfile = Prism.languages.docker\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = dot\ndot.displayName = 'dot'\ndot.aliases = ['gv']\nfunction dot(Prism) {\n  // https://www.graphviz.org/doc/info/lang.html\n  ;(function (Prism) {\n    var ID =\n      '(?:' +\n      [\n        // an identifier\n        /[a-zA-Z_\\x80-\\uFFFF][\\w\\x80-\\uFFFF]*/.source, // a number\n        /-?(?:\\.\\d+|\\d+(?:\\.\\d*)?)/.source, // a double-quoted string\n        /\"[^\"\\\\]*(?:\\\\[\\s\\S][^\"\\\\]*)*\"/.source, // HTML-like string\n        /<(?:[^<>]|(?!<!--)<(?:[^<>\"']|\"[^\"]*\"|'[^']*')+>|<!--(?:[^-]|-(?!->))*-->)*>/\n          .source\n      ].join('|') +\n      ')'\n    var IDInside = {\n      markup: {\n        pattern: /(^<)[\\s\\S]+(?=>$)/,\n        lookbehind: true,\n        alias: ['language-markup', 'language-html', 'language-xml'],\n        inside: Prism.languages.markup\n      }\n    }\n    /**\n     * @param {string} source\n     * @param {string} flags\n     * @returns {RegExp}\n     */\n    function withID(source, flags) {\n      return RegExp(\n        source.replace(/<ID>/g, function () {\n          return ID\n        }),\n        flags\n      )\n    }\n    Prism.languages.dot = {\n      comment: {\n        pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\/|^#.*/m,\n        greedy: true\n      },\n      'graph-name': {\n        pattern: withID(\n          /(\\b(?:digraph|graph|subgraph)[ \\t\\r\\n]+)<ID>/.source,\n          'i'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'class-name',\n        inside: IDInside\n      },\n      'attr-value': {\n        pattern: withID(/(=[ \\t\\r\\n]*)<ID>/.source),\n        lookbehind: true,\n        greedy: true,\n        inside: IDInside\n      },\n      'attr-name': {\n        pattern: withID(/([\\[;, \\t\\r\\n])<ID>(?=[ \\t\\r\\n]*=)/.source),\n        lookbehind: true,\n        greedy: true,\n        inside: IDInside\n      },\n      keyword: /\\b(?:digraph|edge|graph|node|strict|subgraph)\\b/i,\n      'compass-point': {\n        pattern: /(:[ \\t\\r\\n]*)(?:[ewc_]|[ns][ew]?)(?![\\w\\x80-\\uFFFF])/,\n        lookbehind: true,\n        alias: 'builtin'\n      },\n      node: {\n        pattern: withID(/(^|[^-.\\w\\x80-\\uFFFF\\\\])<ID>/.source),\n        lookbehind: true,\n        greedy: true,\n        inside: IDInside\n      },\n      operator: /[=:]|-[->]/,\n      punctuation: /[\\[\\]{};,]/\n    }\n    Prism.languages.gv = Prism.languages.dot\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = ebnf\nebnf.displayName = 'ebnf'\nebnf.aliases = []\nfunction ebnf(Prism) {\n  Prism.languages.ebnf = {\n    comment: /\\(\\*[\\s\\S]*?\\*\\)/,\n    string: {\n      pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n      greedy: true\n    },\n    special: {\n      pattern: /\\?[^?\\r\\n]*\\?/,\n      greedy: true,\n      alias: 'class-name'\n    },\n    definition: {\n      pattern: /^([\\t ]*)[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*(?=\\s*=)/im,\n      lookbehind: true,\n      alias: ['rule', 'keyword']\n    },\n    rule: /\\b[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*\\b/i,\n    punctuation: /\\([:/]|[:/]\\)|[.,;()[\\]{}]/,\n    operator: /[-=|*/!]/\n  }\n}\n","'use strict'\n\nmodule.exports = editorconfig\neditorconfig.displayName = 'editorconfig'\neditorconfig.aliases = []\nfunction editorconfig(Prism) {\n  Prism.languages.editorconfig = {\n    // https://editorconfig-specification.readthedocs.io\n    comment: /[;#].*/,\n    section: {\n      pattern: /(^[ \\t]*)\\[.+\\]/m,\n      lookbehind: true,\n      alias: 'selector',\n      inside: {\n        regex: /\\\\\\\\[\\[\\]{},!?.*]/,\n        // Escape special characters with '\\\\'\n        operator: /[!?]|\\.\\.|\\*{1,2}/,\n        punctuation: /[\\[\\]{},]/\n      }\n    },\n    key: {\n      pattern: /(^[ \\t]*)[^\\s=]+(?=[ \\t]*=)/m,\n      lookbehind: true,\n      alias: 'attr-name'\n    },\n    value: {\n      pattern: /=.*/,\n      alias: 'attr-value',\n      inside: {\n        punctuation: /^=/\n      }\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = eiffel\neiffel.displayName = 'eiffel'\neiffel.aliases = []\nfunction eiffel(Prism) {\n  Prism.languages.eiffel = {\n    comment: /--.*/,\n    string: [\n      // Aligned-verbatim-strings\n      {\n        pattern: /\"([^[]*)\\[[\\s\\S]*?\\]\\1\"/,\n        greedy: true\n      }, // Non-aligned-verbatim-strings\n      {\n        pattern: /\"([^{]*)\\{[\\s\\S]*?\\}\\1\"/,\n        greedy: true\n      }, // Single-line string\n      {\n        pattern: /\"(?:%(?:(?!\\n)\\s)*\\n\\s*%|%\\S|[^%\"\\r\\n])*\"/,\n        greedy: true\n      }\n    ],\n    // normal char | special char | char code\n    char: /'(?:%.|[^%'\\r\\n])+'/,\n    keyword:\n      /\\b(?:across|agent|alias|all|and|as|assign|attached|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\\b/i,\n    boolean: /\\b(?:False|True)\\b/i,\n    // Convention: class-names are always all upper-case characters\n    'class-name': /\\b[A-Z][\\dA-Z_]*\\b/,\n    number: [\n      // hexa | octal | bin\n      /\\b0[xcb][\\da-f](?:_*[\\da-f])*\\b/i, // Decimal\n      /(?:\\b\\d(?:_*\\d)*)?\\.(?:(?:\\d(?:_*\\d)*)?e[+-]?)?\\d(?:_*\\d)*\\b|\\b\\d(?:_*\\d)*\\b\\.?/i\n    ],\n    punctuation: /:=|<<|>>|\\(\\||\\|\\)|->|\\.(?=\\w)|[{}[\\];(),:?]/,\n    operator: /\\\\\\\\|\\|\\.\\.\\||\\.\\.|\\/[~\\/=]?|[><]=?|[-+*^=~]/\n  }\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = ejs\nejs.displayName = 'ejs'\nejs.aliases = ['eta']\nfunction ejs(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    Prism.languages.ejs = {\n      delimiter: {\n        pattern: /^<%[-_=]?|[-_]?%>$/,\n        alias: 'punctuation'\n      },\n      comment: /^#[\\s\\S]*/,\n      'language-javascript': {\n        pattern: /[\\s\\S]+/,\n        inside: Prism.languages.javascript\n      }\n    }\n    Prism.hooks.add('before-tokenize', function (env) {\n      var ejsPattern = /<%(?!%)[\\s\\S]+?%>/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'ejs',\n        ejsPattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ejs')\n    })\n    Prism.languages.eta = Prism.languages.ejs\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = elixir\nelixir.displayName = 'elixir'\nelixir.aliases = []\nfunction elixir(Prism) {\n  Prism.languages.elixir = {\n    doc: {\n      pattern:\n        /@(?:doc|moduledoc)\\s+(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2)/,\n      inside: {\n        attribute: /^@\\w+/,\n        string: /['\"][\\s\\S]+/\n      }\n    },\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    // ~r\"\"\"foo\"\"\" (multi-line), ~r'''foo''' (multi-line), ~r/foo/, ~r|foo|, ~r\"foo\", ~r'foo', ~r(foo), ~r[foo], ~r{foo}, ~r<foo>\n    regex: {\n      pattern:\n        /~[rR](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|[^\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[uismxfr]*/,\n      greedy: true\n    },\n    string: [\n      {\n        // ~s\"\"\"foo\"\"\" (multi-line), ~s'''foo''' (multi-line), ~s/foo/, ~s|foo|, ~s\"foo\", ~s'foo', ~s(foo), ~s[foo], ~s{foo} (with interpolation care), ~s<foo>\n        pattern:\n          /~[cCsSwW](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|#\\{[^}]+\\}|#(?!\\{)|[^#\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[csa]?/,\n        greedy: true,\n        inside: {\n          // See interpolation below\n        }\n      },\n      {\n        pattern: /(\"\"\"|''')[\\s\\S]*?\\1/,\n        greedy: true,\n        inside: {\n          // See interpolation below\n        }\n      },\n      {\n        // Multi-line strings are allowed\n        pattern: /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n        greedy: true,\n        inside: {\n          // See interpolation below\n        }\n      }\n    ],\n    atom: {\n      // Look-behind prevents bad highlighting of the :: operator\n      pattern: /(^|[^:]):\\w+/,\n      lookbehind: true,\n      alias: 'symbol'\n    },\n    module: {\n      pattern: /\\b[A-Z]\\w*\\b/,\n      alias: 'class-name'\n    },\n    // Look-ahead prevents bad highlighting of the :: operator\n    'attr-name': /\\b\\w+\\??:(?!:)/,\n    argument: {\n      // Look-behind prevents bad highlighting of the && operator\n      pattern: /(^|[^&])&\\d+/,\n      lookbehind: true,\n      alias: 'variable'\n    },\n    attribute: {\n      pattern: /@\\w+/,\n      alias: 'variable'\n    },\n    function: /\\b[_a-zA-Z]\\w*[?!]?(?:(?=\\s*(?:\\.\\s*)?\\()|(?=\\/\\d))/,\n    number: /\\b(?:0[box][a-f\\d_]+|\\d[\\d_]*)(?:\\.[\\d_]+)?(?:e[+-]?[\\d_]+)?\\b/i,\n    keyword:\n      /\\b(?:after|alias|and|case|catch|cond|def(?:callback|delegate|exception|impl|macro|module|n|np|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|quote|raise|require|rescue|try|unless|unquote|use|when)\\b/,\n    boolean: /\\b(?:false|nil|true)\\b/,\n    operator: [\n      /\\bin\\b|&&?|\\|[|>]?|\\\\\\\\|::|\\.\\.\\.?|\\+\\+?|-[->]?|<[-=>]|>=|!==?|\\B!|=(?:==?|[>~])?|[*\\/^]/,\n      {\n        // We don't want to match <<\n        pattern: /([^<])<(?!<)/,\n        lookbehind: true\n      },\n      {\n        // We don't want to match >>\n        pattern: /([^>])>(?!>)/,\n        lookbehind: true\n      }\n    ],\n    punctuation: /<<|>>|[.,%\\[\\]{}()]/\n  }\n  Prism.languages.elixir.string.forEach(function (o) {\n    o.inside = {\n      interpolation: {\n        pattern: /#\\{[^}]+\\}/,\n        inside: {\n          delimiter: {\n            pattern: /^#\\{|\\}$/,\n            alias: 'punctuation'\n          },\n          rest: Prism.languages.elixir\n        }\n      }\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = elm\nelm.displayName = 'elm'\nelm.aliases = []\nfunction elm(Prism) {\n  Prism.languages.elm = {\n    comment: /--.*|\\{-[\\s\\S]*?-\\}/,\n    char: {\n      pattern:\n        /'(?:[^\\\\'\\r\\n]|\\\\(?:[abfnrtv\\\\']|\\d+|x[0-9a-fA-F]+|u\\{[0-9a-fA-F]+\\}))'/,\n      greedy: true\n    },\n    string: [\n      {\n        // Multiline strings are wrapped in triple \". Quotes may appear unescaped.\n        pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n        greedy: true\n      },\n      {\n        pattern: /\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"/,\n        greedy: true\n      }\n    ],\n    'import-statement': {\n      // The imported or hidden names are not included in this import\n      // statement. This is because we want to highlight those exactly like\n      // we do for the names in the program.\n      pattern:\n        /(^[\\t ]*)import\\s+[A-Z]\\w*(?:\\.[A-Z]\\w*)*(?:\\s+as\\s+(?:[A-Z]\\w*)(?:\\.[A-Z]\\w*)*)?(?:\\s+exposing\\s+)?/m,\n      lookbehind: true,\n      inside: {\n        keyword: /\\b(?:as|exposing|import)\\b/\n      }\n    },\n    keyword:\n      /\\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\\b/,\n    // These are builtin variables only. Constructors are highlighted later as a constant.\n    builtin:\n      /\\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\\b/,\n    // decimal integers and floating point numbers | hexadecimal integers\n    number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0x[0-9a-f]+)\\b/i,\n    // Most of this is needed because of the meaning of a single '.'.\n    // If it stands alone freely, it is the function composition.\n    // It may also be a separator between a module name and an identifier => no\n    // operator. If it comes together with other special characters it is an\n    // operator too.\n    // Valid operator characters in 0.18: +-/*=.$<>:&|^?%#@~!\n    // Ref: https://groups.google.com/forum/#!msg/elm-dev/0AHSnDdkSkQ/E0SVU70JEQAJ\n    operator: /\\s\\.\\s|[+\\-/*=.$<>:&|^?%#@~!]{2,}|[+\\-/*=$<>:&|^?%#@~!]/,\n    // In Elm, nearly everything is a variable, do not highlight these.\n    hvariable: /\\b(?:[A-Z]\\w*\\.)*[a-z]\\w*\\b/,\n    constant: /\\b(?:[A-Z]\\w*\\.)*[A-Z]\\w*\\b/,\n    punctuation: /[{}[\\]|(),.:]/\n  }\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = erb\nerb.displayName = 'erb'\nerb.aliases = []\nfunction erb(Prism) {\n  Prism.register(refractorRuby)\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    Prism.languages.erb = {\n      delimiter: {\n        pattern: /^(\\s*)<%=?|%>(?=\\s*$)/,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      ruby: {\n        pattern: /\\s*\\S[\\s\\S]*/,\n        alias: 'language-ruby',\n        inside: Prism.languages.ruby\n      }\n    }\n    Prism.hooks.add('before-tokenize', function (env) {\n      var erbPattern =\n        /<%=?(?:[^\\r\\n]|[\\r\\n](?!=begin)|[\\r\\n]=begin\\s(?:[^\\r\\n]|[\\r\\n](?!=end))*[\\r\\n]=end)+?%>/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'erb',\n        erbPattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'erb')\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = erlang\nerlang.displayName = 'erlang'\nerlang.aliases = []\nfunction erlang(Prism) {\n  Prism.languages.erlang = {\n    comment: /%.+/,\n    string: {\n      pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n      greedy: true\n    },\n    'quoted-function': {\n      pattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'(?=\\()/,\n      alias: 'function'\n    },\n    'quoted-atom': {\n      pattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'/,\n      alias: 'atom'\n    },\n    boolean: /\\b(?:false|true)\\b/,\n    keyword: /\\b(?:after|case|catch|end|fun|if|of|receive|try|when)\\b/,\n    number: [\n      /\\$\\\\?./,\n      /\\b\\d+#[a-z0-9]+/i,\n      /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i\n    ],\n    function: /\\b[a-z][\\w@]*(?=\\()/,\n    variable: {\n      // Look-behind is used to prevent wrong highlighting of atoms containing \"@\"\n      pattern: /(^|[^@])(?:\\b|\\?)[A-Z_][\\w@]*/,\n      lookbehind: true\n    },\n    operator: [\n      /[=\\/<>:]=|=[:\\/]=|\\+\\+?|--?|[=*\\/!]|\\b(?:and|andalso|band|bnot|bor|bsl|bsr|bxor|div|not|or|orelse|rem|xor)\\b/,\n      {\n        // We don't want to match <<\n        pattern: /(^|[^<])<(?!<)/,\n        lookbehind: true\n      },\n      {\n        // We don't want to match >>\n        pattern: /(^|[^>])>(?!>)/,\n        lookbehind: true\n      }\n    ],\n    atom: /\\b[a-z][\\w@]*/,\n    punctuation: /[()[\\]{}:;,.#|]|<<|>>/\n  }\n}\n","'use strict'\nvar refractorLua = require('./lua.js')\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = etlua\netlua.displayName = 'etlua'\netlua.aliases = []\nfunction etlua(Prism) {\n  Prism.register(refractorLua)\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    Prism.languages.etlua = {\n      delimiter: {\n        pattern: /^<%[-=]?|-?%>$/,\n        alias: 'punctuation'\n      },\n      'language-lua': {\n        pattern: /[\\s\\S]+/,\n        inside: Prism.languages.lua\n      }\n    }\n    Prism.hooks.add('before-tokenize', function (env) {\n      var pattern = /<%[\\s\\S]+?%>/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'etlua',\n        pattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'etlua')\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = excelFormula\nexcelFormula.displayName = 'excelFormula'\nexcelFormula.aliases = []\nfunction excelFormula(Prism) {\n  Prism.languages['excel-formula'] = {\n    comment: {\n      pattern: /(\\bN\\(\\s*)\"(?:[^\"]|\"\")*\"(?=\\s*\\))/i,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n      greedy: true\n    },\n    reference: {\n      // https://www.ablebits.com/office-addins-blog/2015/12/08/excel-reference-another-sheet-workbook/\n      // Sales!B2\n      // 'Winter sales'!B2\n      // [Sales.xlsx]Jan!B2:B5\n      // D:\\Reports\\[Sales.xlsx]Jan!B2:B5\n      // '[Sales.xlsx]Jan sales'!B2:B5\n      // 'D:\\Reports\\[Sales.xlsx]Jan sales'!B2:B5\n      pattern:\n        /(?:'[^']*'|(?:[^\\s()[\\]{}<>*?\"';,$&]*\\[[^^\\s()[\\]{}<>*?\"']+\\])?\\w+)!/,\n      greedy: true,\n      alias: 'string',\n      inside: {\n        operator: /!$/,\n        punctuation: /'/,\n        sheet: {\n          pattern: /[^[\\]]+$/,\n          alias: 'function'\n        },\n        file: {\n          pattern: /\\[[^[\\]]+\\]$/,\n          inside: {\n            punctuation: /[[\\]]/\n          }\n        },\n        path: /[\\s\\S]+/\n      }\n    },\n    'function-name': {\n      pattern: /\\b[A-Z]\\w*(?=\\()/i,\n      alias: 'keyword'\n    },\n    range: {\n      pattern:\n        /\\$?\\b(?:[A-Z]+\\$?\\d+:\\$?[A-Z]+\\$?\\d+|[A-Z]+:\\$?[A-Z]+|\\d+:\\$?\\d+)\\b/i,\n      alias: 'property',\n      inside: {\n        operator: /:/,\n        cell: /\\$?[A-Z]+\\$?\\d+/i,\n        column: /\\$?[A-Z]+/i,\n        row: /\\$?\\d+/\n      }\n    },\n    cell: {\n      // Excel is case insensitive, so the string \"foo1\" could be either a variable or a cell.\n      // To combat this, we match cells case insensitive, if the contain at least one \"$\", and case sensitive otherwise.\n      pattern: /\\b[A-Z]+\\d+\\b|\\$[A-Za-z]+\\$?\\d+\\b|\\b[A-Za-z]+\\$\\d+\\b/,\n      alias: 'property'\n    },\n    number: /(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n    boolean: /\\b(?:FALSE|TRUE)\\b/i,\n    operator: /[-+*/^%=&,]|<[=>]?|>=?/,\n    punctuation: /[[\\]();{}|]/\n  }\n  Prism.languages['xlsx'] = Prism.languages['xls'] =\n    Prism.languages['excel-formula']\n}\n","'use strict'\n\nmodule.exports = factor\nfactor.displayName = 'factor'\nfactor.aliases = []\nfunction factor(Prism) {\n  ;(function (Prism) {\n    var comment_inside = {\n      function:\n        /\\b(?:BUGS?|FIX(?:MES?)?|NOTES?|TODOS?|XX+|HACKS?|WARN(?:ING)?|\\?{2,}|!{2,})\\b/\n    }\n    var string_inside = {\n      number: /\\\\[^\\s']|%\\w/\n    }\n    var factor = {\n      comment: [\n        {\n          // ! single-line exclamation point comments with whitespace after/around the !\n          pattern: /(^|\\s)(?:! .*|!$)/,\n          lookbehind: true,\n          inside: comment_inside\n        },\n        /* from basis/multiline: */\n        {\n          // /* comment */, /* comment*/\n          pattern: /(^|\\s)\\/\\*\\s[\\s\\S]*?\\*\\/(?=\\s|$)/,\n          lookbehind: true,\n          greedy: true,\n          inside: comment_inside\n        },\n        {\n          // ![[ comment ]] , ![===[ comment]===]\n          pattern: /(^|\\s)!\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n          lookbehind: true,\n          greedy: true,\n          inside: comment_inside\n        }\n      ],\n      number: [\n        {\n          // basic base 10 integers 9, -9\n          pattern: /(^|\\s)[+-]?\\d+(?=\\s|$)/,\n          lookbehind: true\n        },\n        {\n          // base prefix integers 0b010 0o70 0xad 0d10 0XAD -0xa9\n          pattern: /(^|\\s)[+-]?0(?:b[01]+|o[0-7]+|d\\d+|x[\\dA-F]+)(?=\\s|$)/i,\n          lookbehind: true\n        },\n        {\n          // fractional ratios 1/5 -1/5 and the literal float approximations 1/5. -1/5.\n          pattern: /(^|\\s)[+-]?\\d+\\/\\d+\\.?(?=\\s|$)/,\n          lookbehind: true\n        },\n        {\n          // positive mixed numbers 23+1/5 +23+1/5\n          pattern: /(^|\\s)\\+?\\d+\\+\\d+\\/\\d+(?=\\s|$)/,\n          lookbehind: true\n        },\n        {\n          // negative mixed numbers -23-1/5\n          pattern: /(^|\\s)-\\d+-\\d+\\/\\d+(?=\\s|$)/,\n          lookbehind: true\n        },\n        {\n          // basic decimal floats -0.01 0. .0 .1 -.1 -1. -12.13 +12.13\n          // and scientific notation with base 10 exponents 3e4 3e-4 .3e-4\n          pattern:\n            /(^|\\s)[+-]?(?:\\d*\\.\\d+|\\d+\\.\\d*|\\d+)(?:e[+-]?\\d+)?(?=\\s|$)/i,\n          lookbehind: true\n        },\n        {\n          // NAN literal syntax NAN: 80000deadbeef, NAN: a\n          pattern: /(^|\\s)NAN:\\s+[\\da-fA-F]+(?=\\s|$)/,\n          lookbehind: true\n        },\n        {\n          /*\nbase prefix floats 0x1.0p3 (8.0) 0b1.010p2 (5.0) 0x1.p1 0b1.11111111p11111...\n\"The normalized hex form ±0x1.MMMMMMMMMMMMM[pP]±EEEE allows any floating-point number to be specified precisely.\nThe values of MMMMMMMMMMMMM and EEEE map directly to the mantissa and exponent fields of the binary IEEE 754 representation.\"\n<https://docs.factorcode.org/content/article-syntax-floats.html>\n*/\n          pattern:\n            /(^|\\s)[+-]?0(?:b1\\.[01]*|o1\\.[0-7]*|d1\\.\\d*|x1\\.[\\dA-F]*)p\\d+(?=\\s|$)/i,\n          lookbehind: true\n        }\n      ],\n      // R/ regexp?\\/\\\\/\n      regexp: {\n        pattern:\n          /(^|\\s)R\\/\\s(?:\\\\\\S|[^\\\\/])*\\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\\s|$)/,\n        lookbehind: true,\n        alias: 'number',\n        inside: {\n          variable: /\\\\\\S/,\n          keyword: /[+?*\\[\\]^$(){}.|]/,\n          operator: {\n            pattern: /(\\/)[idmsr]+(?:-[idmsr]+)?/,\n            lookbehind: true\n          }\n        }\n      },\n      boolean: {\n        pattern: /(^|\\s)[tf](?=\\s|$)/,\n        lookbehind: true\n      },\n      // SBUF\" asd\", URL\" ://...\", P\" /etc/\"\n      'custom-string': {\n        pattern: /(^|\\s)[A-Z0-9\\-]+\"\\s(?:\\\\\\S|[^\"\\\\])*\"/,\n        lookbehind: true,\n        greedy: true,\n        alias: 'string',\n        inside: {\n          number: /\\\\\\S|%\\w|\\//\n        }\n      },\n      'multiline-string': [\n        {\n          // STRING: name \\n content \\n ; -> CONSTANT: name \"content\" (symbol)\n          pattern: /(^|\\s)STRING:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*;(?=\\s|$)/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'string',\n          inside: {\n            number: string_inside.number,\n            // trailing semicolon on its own line\n            'semicolon-or-setlocal': {\n              pattern: /([\\r\\n][ \\t]*);(?=\\s|$)/,\n              lookbehind: true,\n              alias: 'function'\n            }\n          }\n        },\n        {\n          // HEREDOC: marker \\n content \\n marker ; -> \"content\" (immediate)\n          pattern: /(^|\\s)HEREDOC:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*\\S+(?=\\s|$)/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'string',\n          inside: string_inside\n        },\n        {\n          // [[ string ]], [==[ string]==]\n          pattern: /(^|\\s)\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'string',\n          inside: string_inside\n        }\n      ],\n      'special-using': {\n        pattern: /(^|\\s)USING:(?:\\s\\S+)*(?=\\s+;(?:\\s|$))/,\n        lookbehind: true,\n        alias: 'function',\n        inside: {\n          // this is essentially a regex for vocab names, which i don't want to specify\n          // but the USING: gets picked up as a vocab name\n          string: {\n            pattern: /(\\s)[^:\\s]+/,\n            lookbehind: true\n          }\n        }\n      },\n      /* this description of stack effect literal syntax is not complete and not as specific as theoretically possible\ntrying to do better is more work and regex-computation-time than it's worth though.\n- we'd like to have the \"delimiter\" parts of the stack effect [ (, --, and ) ] be a different (less-important or comment-like) colour to the stack effect contents\n- we'd like if nested stack effects were treated as such rather than just appearing flat (with `inside`)\n- we'd like if the following variable name conventions were recognised specifically:\nspecial row variables = ..a b..\ntype and stack effect annotations end with a colon = ( quot: ( a: ( -- ) -- b ) -- x ), ( x: number -- )\nword throws unconditional error = *\nany other word-like variable name = a ? q' etc\nhttps://docs.factorcode.org/content/article-effects.html\nthese are pretty complicated to highlight properly without a real parser, and therefore out of scope\nthe old pattern, which may be later useful, was: (^|\\s)(?:call|execute|eval)?\\((?:\\s+[^\"\\r\\n\\t ]\\S*)*?\\s+--(?:\\s+[^\"\\n\\t ]\\S*)*?\\s+\\)(?=\\s|$)\n*/\n      // current solution is not great\n      'stack-effect-delimiter': [\n        {\n          // opening parenthesis\n          pattern: /(^|\\s)(?:call|eval|execute)?\\((?=\\s)/,\n          lookbehind: true,\n          alias: 'operator'\n        },\n        {\n          // middle --\n          pattern: /(\\s)--(?=\\s)/,\n          lookbehind: true,\n          alias: 'operator'\n        },\n        {\n          // closing parenthesis\n          pattern: /(\\s)\\)(?=\\s|$)/,\n          lookbehind: true,\n          alias: 'operator'\n        }\n      ],\n      combinators: {\n        pattern: null,\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      'kernel-builtin': {\n        pattern: null,\n        lookbehind: true,\n        alias: 'variable'\n      },\n      'sequences-builtin': {\n        pattern: null,\n        lookbehind: true,\n        alias: 'variable'\n      },\n      'math-builtin': {\n        pattern: null,\n        lookbehind: true,\n        alias: 'variable'\n      },\n      'constructor-word': {\n        // <array> but not <=>\n        pattern: /(^|\\s)<(?!=+>|-+>)\\S+>(?=\\s|$)/,\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      'other-builtin-syntax': {\n        pattern: null,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      /*\nfull list of supported word naming conventions: (the convention appears outside of the [brackets])\nset-[x]\nchange-[x]\nwith-[x]\nnew-[x]\n>[string]\n[base]>\n[string]>[number]\n+[symbol]+\n[boolean-word]?\n?[of]\n[slot-reader]>>\n>>[slot-setter]\n[slot-writer]<<\n([implementation-detail])\n[mutater]!\n[variant]*\n[prettyprint].\n$[help-markup]\n<constructors>, SYNTAX:, etc are supported by their own patterns.\n`with` and `new` from `kernel` are their own builtins.\nsee <https://docs.factorcode.org/content/article-conventions.html>\n*/\n      'conventionally-named-word': {\n        pattern:\n          /(^|\\s)(?!\")(?:(?:change|new|set|with)-\\S+|\\$\\S+|>[^>\\s]+|[^:>\\s]+>|[^>\\s]+>[^>\\s]+|\\+[^+\\s]+\\+|[^?\\s]+\\?|\\?[^?\\s]+|[^>\\s]+>>|>>[^>\\s]+|[^<\\s]+<<|\\([^()\\s]+\\)|[^!\\s]+!|[^*\\s]\\S*\\*|[^.\\s]\\S*\\.)(?=\\s|$)/,\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      'colon-syntax': {\n        pattern: /(^|\\s)(?:[A-Z0-9\\-]+#?)?:{1,2}\\s+(?:;\\S+|(?!;)\\S+)(?=\\s|$)/,\n        lookbehind: true,\n        greedy: true,\n        alias: 'function'\n      },\n      'semicolon-or-setlocal': {\n        pattern: /(\\s)(?:;|:>)(?=\\s|$)/,\n        lookbehind: true,\n        alias: 'function'\n      },\n      // do not highlight leading } or trailing X{ at the begin/end of the file as it's invalid syntax\n      'curly-brace-literal-delimiter': [\n        {\n          // opening\n          pattern: /(^|\\s)[a-z]*\\{(?=\\s)/i,\n          lookbehind: true,\n          alias: 'operator'\n        },\n        {\n          // closing\n          pattern: /(\\s)\\}(?=\\s|$)/,\n          lookbehind: true,\n          alias: 'operator'\n        }\n      ],\n      // do not highlight leading ] or trailing [ at the begin/end of the file as it's invalid syntax\n      'quotation-delimiter': [\n        {\n          // opening\n          pattern: /(^|\\s)\\[(?=\\s)/,\n          lookbehind: true,\n          alias: 'operator'\n        },\n        {\n          // closing\n          pattern: /(\\s)\\](?=\\s|$)/,\n          lookbehind: true,\n          alias: 'operator'\n        }\n      ],\n      'normal-word': {\n        pattern: /(^|\\s)[^\"\\s]\\S*(?=\\s|$)/,\n        lookbehind: true\n      },\n      /*\nbasic first-class string \"a\"\nwith escaped double-quote \"a\\\"\"\nescaped backslash \"\\\\\"\nand general escapes since Factor has so many \"\\N\"\nsyntax that works in the reference implementation that isn't fully\nsupported because it's an implementation detail:\n\"string 1\"\"string 2\" -> 2 strings (works anyway)\n\"string\"5 -> string, 5\n\"string\"[ ] -> string, quotation\n{ \"a\"} -> array<string>\nthe rest of those examples all properly recognise the string, but not\nthe other object (number, quotation, etc)\nthis is fine for a regex-only implementation.\n*/\n      string: {\n        pattern: /\"(?:\\\\\\S|[^\"\\\\])*\"/,\n        greedy: true,\n        inside: string_inside\n      }\n    }\n    var escape = function (str) {\n      return (str + '').replace(/([.?*+\\^$\\[\\]\\\\(){}|\\-])/g, '\\\\$1')\n    }\n    var arrToWordsRegExp = function (arr) {\n      return new RegExp('(^|\\\\s)(?:' + arr.map(escape).join('|') + ')(?=\\\\s|$)')\n    }\n    var builtins = {\n      'kernel-builtin': [\n        'or',\n        '2nipd',\n        '4drop',\n        'tuck',\n        'wrapper',\n        'nip',\n        'wrapper?',\n        'callstack>array',\n        'die',\n        'dupd',\n        'callstack',\n        'callstack?',\n        '3dup',\n        'hashcode',\n        'pick',\n        '4nip',\n        'build',\n        '>boolean',\n        'nipd',\n        'clone',\n        '5nip',\n        'eq?',\n        '?',\n        '=',\n        'swapd',\n        '2over',\n        'clear',\n        '2dup',\n        'get-retainstack',\n        'not',\n        'tuple?',\n        'dup',\n        '3nipd',\n        'call',\n        '-rotd',\n        'object',\n        'drop',\n        'assert=',\n        'assert?',\n        '-rot',\n        'execute',\n        'boa',\n        'get-callstack',\n        'curried?',\n        '3drop',\n        'pickd',\n        'overd',\n        'over',\n        'roll',\n        '3nip',\n        'swap',\n        'and',\n        '2nip',\n        'rotd',\n        'throw',\n        '(clone)',\n        'hashcode*',\n        'spin',\n        'reach',\n        '4dup',\n        'equal?',\n        'get-datastack',\n        'assert',\n        '2drop',\n        '<wrapper>',\n        'boolean?',\n        'identity-hashcode',\n        'identity-tuple?',\n        'null',\n        'composed?',\n        'new',\n        '5drop',\n        'rot',\n        '-roll',\n        'xor',\n        'identity-tuple',\n        'boolean'\n      ],\n      'other-builtin-syntax': [\n        // syntax\n        '=======',\n        'recursive',\n        'flushable',\n        '>>',\n        '<<<<<<',\n        'M\\\\',\n        'B',\n        'PRIVATE>',\n        '\\\\',\n        '======',\n        'final',\n        'inline',\n        'delimiter',\n        'deprecated',\n        '<PRIVATE',\n        '>>>>>>',\n        '<<<<<<<',\n        'parse-complex',\n        'malformed-complex',\n        'read-only',\n        '>>>>>>>',\n        'call-next-method',\n        '<<',\n        'foldable', // literals\n        '$',\n        '$[',\n        '${'\n      ],\n      'sequences-builtin': [\n        'member-eq?',\n        'mismatch',\n        'append',\n        'assert-sequence=',\n        'longer',\n        'repetition',\n        'clone-like',\n        '3sequence',\n        'assert-sequence?',\n        'last-index-from',\n        'reversed',\n        'index-from',\n        'cut*',\n        'pad-tail',\n        'join-as',\n        'remove-eq!',\n        'concat-as',\n        'but-last',\n        'snip',\n        'nths',\n        'nth',\n        'sequence',\n        'longest',\n        'slice?',\n        '<slice>',\n        'remove-nth',\n        'tail-slice',\n        'empty?',\n        'tail*',\n        'member?',\n        'virtual-sequence?',\n        'set-length',\n        'drop-prefix',\n        'iota',\n        'unclip',\n        'bounds-error?',\n        'unclip-last-slice',\n        'non-negative-integer-expected',\n        'non-negative-integer-expected?',\n        'midpoint@',\n        'longer?',\n        '?set-nth',\n        '?first',\n        'rest-slice',\n        'prepend-as',\n        'prepend',\n        'fourth',\n        'sift',\n        'subseq-start',\n        'new-sequence',\n        '?last',\n        'like',\n        'first4',\n        '1sequence',\n        'reverse',\n        'slice',\n        'virtual@',\n        'repetition?',\n        'set-last',\n        'index',\n        '4sequence',\n        'max-length',\n        'set-second',\n        'immutable-sequence',\n        'first2',\n        'first3',\n        'supremum',\n        'unclip-slice',\n        'suffix!',\n        'insert-nth',\n        'tail',\n        '3append',\n        'short',\n        'suffix',\n        'concat',\n        'flip',\n        'immutable?',\n        'reverse!',\n        '2sequence',\n        'sum',\n        'delete-all',\n        'indices',\n        'snip-slice',\n        '<iota>',\n        'check-slice',\n        'sequence?',\n        'head',\n        'append-as',\n        'halves',\n        'sequence=',\n        'collapse-slice',\n        '?second',\n        'slice-error?',\n        'product',\n        'bounds-check?',\n        'bounds-check',\n        'immutable',\n        'virtual-exemplar',\n        'harvest',\n        'remove',\n        'pad-head',\n        'last',\n        'set-fourth',\n        'cartesian-product',\n        'remove-eq',\n        'shorten',\n        'shorter',\n        'reversed?',\n        'shorter?',\n        'shortest',\n        'head-slice',\n        'pop*',\n        'tail-slice*',\n        'but-last-slice',\n        'iota?',\n        'append!',\n        'cut-slice',\n        'new-resizable',\n        'head-slice*',\n        'sequence-hashcode',\n        'pop',\n        'set-nth',\n        '?nth',\n        'second',\n        'join',\n        'immutable-sequence?',\n        '<reversed>',\n        '3append-as',\n        'virtual-sequence',\n        'subseq?',\n        'remove-nth!',\n        'length',\n        'last-index',\n        'lengthen',\n        'assert-sequence',\n        'copy',\n        'move',\n        'third',\n        'first',\n        'tail?',\n        'set-first',\n        'prefix',\n        'bounds-error',\n        '<repetition>',\n        'exchange',\n        'surround',\n        'cut',\n        'min-length',\n        'set-third',\n        'push-all',\n        'head?',\n        'subseq-start-from',\n        'delete-slice',\n        'rest',\n        'sum-lengths',\n        'head*',\n        'infimum',\n        'remove!',\n        'glue',\n        'slice-error',\n        'subseq',\n        'push',\n        'replace-slice',\n        'subseq-as',\n        'unclip-last'\n      ],\n      'math-builtin': [\n        'number=',\n        'next-power-of-2',\n        '?1+',\n        'fp-special?',\n        'imaginary-part',\n        'float>bits',\n        'number?',\n        'fp-infinity?',\n        'bignum?',\n        'fp-snan?',\n        'denominator',\n        'gcd',\n        '*',\n        '+',\n        'fp-bitwise=',\n        '-',\n        'u>=',\n        '/',\n        '>=',\n        'bitand',\n        'power-of-2?',\n        'log2-expects-positive',\n        'neg?',\n        '<',\n        'log2',\n        '>',\n        'integer?',\n        'number',\n        'bits>double',\n        '2/',\n        'zero?',\n        'bits>float',\n        'float?',\n        'shift',\n        'ratio?',\n        'rect>',\n        'even?',\n        'ratio',\n        'fp-sign',\n        'bitnot',\n        '>fixnum',\n        'complex?',\n        '/i',\n        'integer>fixnum',\n        '/f',\n        'sgn',\n        '>bignum',\n        'next-float',\n        'u<',\n        'u>',\n        'mod',\n        'recip',\n        'rational',\n        '>float',\n        '2^',\n        'integer',\n        'fixnum?',\n        'neg',\n        'fixnum',\n        'sq',\n        'bignum',\n        '>rect',\n        'bit?',\n        'fp-qnan?',\n        'simple-gcd',\n        'complex',\n        '<fp-nan>',\n        'real',\n        '>fraction',\n        'double>bits',\n        'bitor',\n        'rem',\n        'fp-nan-payload',\n        'real-part',\n        'log2-expects-positive?',\n        'prev-float',\n        'align',\n        'unordered?',\n        'float',\n        'fp-nan?',\n        'abs',\n        'bitxor',\n        'integer>fixnum-strict',\n        'u<=',\n        'odd?',\n        '<=',\n        '/mod',\n        '>integer',\n        'real?',\n        'rational?',\n        'numerator'\n      ] // that's all for now\n    }\n    Object.keys(builtins).forEach(function (k) {\n      factor[k].pattern = arrToWordsRegExp(builtins[k])\n    })\n    var combinators = [\n      // kernel\n      '2bi',\n      'while',\n      '2tri',\n      'bi*',\n      '4dip',\n      'both?',\n      'same?',\n      'tri@',\n      'curry',\n      'prepose',\n      '3bi',\n      '?if',\n      'tri*',\n      '2keep',\n      '3keep',\n      'curried',\n      '2keepd',\n      'when',\n      '2bi*',\n      '2tri*',\n      '4keep',\n      'bi@',\n      'keepdd',\n      'do',\n      'unless*',\n      'tri-curry',\n      'if*',\n      'loop',\n      'bi-curry*',\n      'when*',\n      '2bi@',\n      '2tri@',\n      'with',\n      '2with',\n      'either?',\n      'bi',\n      'until',\n      '3dip',\n      '3curry',\n      'tri-curry*',\n      'tri-curry@',\n      'bi-curry',\n      'keepd',\n      'compose',\n      '2dip',\n      'if',\n      '3tri',\n      'unless',\n      'tuple',\n      'keep',\n      '2curry',\n      'tri',\n      'most',\n      'while*',\n      'dip',\n      'composed',\n      'bi-curry@', // sequences\n      'find-last-from',\n      'trim-head-slice',\n      'map-as',\n      'each-from',\n      'none?',\n      'trim-tail',\n      'partition',\n      'if-empty',\n      'accumulate*',\n      'reject!',\n      'find-from',\n      'accumulate-as',\n      'collector-for-as',\n      'reject',\n      'map',\n      'map-sum',\n      'accumulate!',\n      '2each-from',\n      'follow',\n      'supremum-by',\n      'map!',\n      'unless-empty',\n      'collector',\n      'padding',\n      'reduce-index',\n      'replicate-as',\n      'infimum-by',\n      'trim-tail-slice',\n      'count',\n      'find-index',\n      'filter',\n      'accumulate*!',\n      'reject-as',\n      'map-integers',\n      'map-find',\n      'reduce',\n      'selector',\n      'interleave',\n      '2map',\n      'filter-as',\n      'binary-reduce',\n      'map-index-as',\n      'find',\n      'produce',\n      'filter!',\n      'replicate',\n      'cartesian-map',\n      'cartesian-each',\n      'find-index-from',\n      'map-find-last',\n      '3map-as',\n      '3map',\n      'find-last',\n      'selector-as',\n      '2map-as',\n      '2map-reduce',\n      'accumulate',\n      'each',\n      'each-index',\n      'accumulate*-as',\n      'when-empty',\n      'all?',\n      'collector-as',\n      'push-either',\n      'new-like',\n      'collector-for',\n      '2selector',\n      'push-if',\n      '2all?',\n      'map-reduce',\n      '3each',\n      'any?',\n      'trim-slice',\n      '2reduce',\n      'change-nth',\n      'produce-as',\n      '2each',\n      'trim',\n      'trim-head',\n      'cartesian-find',\n      'map-index', // math\n      'if-zero',\n      'each-integer',\n      'unless-zero',\n      '(find-integer)',\n      'when-zero',\n      'find-last-integer',\n      '(all-integers?)',\n      'times',\n      '(each-integer)',\n      'find-integer',\n      'all-integers?', // math.combinators\n      'unless-negative',\n      'if-positive',\n      'when-positive',\n      'when-negative',\n      'unless-positive',\n      'if-negative', // combinators\n      'case',\n      '2cleave',\n      'cond>quot',\n      'case>quot',\n      '3cleave',\n      'wrong-values',\n      'to-fixed-point',\n      'alist>quot',\n      'cond',\n      'cleave',\n      'call-effect',\n      'recursive-hashcode',\n      'spread',\n      'deep-spread>quot', // combinators.short-circuit\n      '2||',\n      '0||',\n      'n||',\n      '0&&',\n      '2&&',\n      '3||',\n      '1||',\n      '1&&',\n      'n&&',\n      '3&&', // combinators.smart\n      'smart-unless*',\n      'keep-inputs',\n      'reduce-outputs',\n      'smart-when*',\n      'cleave>array',\n      'smart-with',\n      'smart-apply',\n      'smart-if',\n      'inputs/outputs',\n      'output>sequence-n',\n      'map-outputs',\n      'map-reduce-outputs',\n      'dropping',\n      'output>array',\n      'smart-map-reduce',\n      'smart-2map-reduce',\n      'output>array-n',\n      'nullary',\n      'input<sequence',\n      'append-outputs',\n      'drop-inputs',\n      'inputs',\n      'smart-2reduce',\n      'drop-outputs',\n      'smart-reduce',\n      'preserving',\n      'smart-when',\n      'outputs',\n      'append-outputs-as',\n      'smart-unless',\n      'smart-if*',\n      'sum-outputs',\n      'input<sequence-unsafe',\n      'output>sequence' // tafn\n    ]\n    factor.combinators.pattern = arrToWordsRegExp(combinators)\n    Prism.languages.factor = factor\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = $false\n$false.displayName = '$false'\n$false.aliases = []\nfunction $false(Prism) {\n  ;(function (Prism) {\n    /**\n     * Based on the manual by Wouter van Oortmerssen.\n     *\n     * @see {@link https://github.com/PrismJS/prism/issues/2801#issue-829717504}\n     */\n    Prism.languages['false'] = {\n      comment: {\n        pattern: /\\{[^}]*\\}/\n      },\n      string: {\n        pattern: /\"[^\"]*\"/,\n        greedy: true\n      },\n      'character-code': {\n        pattern: /'(?:[^\\r]|\\r\\n?)/,\n        alias: 'number'\n      },\n      'assembler-code': {\n        pattern: /\\d+`/,\n        alias: 'important'\n      },\n      number: /\\d+/,\n      operator: /[-!#$%&'*+,./:;=>?@\\\\^_`|~ßø]/,\n      punctuation: /\\[|\\]/,\n      variable: /[a-z]/,\n      'non-standard': {\n        pattern: /[()<BDO®]/,\n        alias: 'bold'\n      }\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = firestoreSecurityRules\nfirestoreSecurityRules.displayName = 'firestoreSecurityRules'\nfirestoreSecurityRules.aliases = []\nfunction firestoreSecurityRules(Prism) {\n  Prism.languages['firestore-security-rules'] = Prism.languages.extend(\n    'clike',\n    {\n      comment: /\\/\\/.*/,\n      keyword:\n        /\\b(?:allow|function|if|match|null|return|rules_version|service)\\b/,\n      operator: /&&|\\|\\||[<>!=]=?|[-+*/%]|\\b(?:in|is)\\b/\n    }\n  )\n  delete Prism.languages['firestore-security-rules']['class-name']\n  Prism.languages.insertBefore('firestore-security-rules', 'keyword', {\n    path: {\n      pattern:\n        /(^|[\\s(),])(?:\\/(?:[\\w\\xA0-\\uFFFF]+|\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)))+/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        variable: {\n          pattern: /\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)/,\n          inside: {\n            operator: /=/,\n            keyword: /\\*\\*/,\n            punctuation: /[.$(){}]/\n          }\n        },\n        punctuation: /\\//\n      }\n    },\n    method: {\n      // to make the pattern shorter, the actual method names are omitted\n      pattern: /(\\ballow\\s+)[a-z]+(?:\\s*,\\s*[a-z]+)*(?=\\s*[:;])/,\n      lookbehind: true,\n      alias: 'builtin',\n      inside: {\n        punctuation: /,/\n      }\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = flow\nflow.displayName = 'flow'\nflow.aliases = []\nfunction flow(Prism) {\n  ;(function (Prism) {\n    Prism.languages.flow = Prism.languages.extend('javascript', {})\n    Prism.languages.insertBefore('flow', 'keyword', {\n      type: [\n        {\n          pattern:\n            /\\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|any|mixed|null|void)\\b/,\n          alias: 'tag'\n        }\n      ]\n    })\n    Prism.languages.flow['function-variable'].pattern =\n      /(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)(?:\\s*:\\s*\\w+)?|(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/i\n    delete Prism.languages.flow['parameter']\n    Prism.languages.insertBefore('flow', 'operator', {\n      'flow-punctuation': {\n        pattern: /\\{\\||\\|\\}/,\n        alias: 'punctuation'\n      }\n    })\n    if (!Array.isArray(Prism.languages.flow.keyword)) {\n      Prism.languages.flow.keyword = [Prism.languages.flow.keyword]\n    }\n    Prism.languages.flow.keyword.unshift(\n      {\n        pattern: /(^|[^$]\\b)(?:Class|declare|opaque|type)\\b(?!\\$)/,\n        lookbehind: true\n      },\n      {\n        pattern:\n          /(^|[^$]\\B)\\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\\b(?!\\$)/,\n        lookbehind: true\n      }\n    )\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = fortran\nfortran.displayName = 'fortran'\nfortran.aliases = []\nfunction fortran(Prism) {\n  Prism.languages.fortran = {\n    'quoted-number': {\n      pattern: /[BOZ](['\"])[A-F0-9]+\\1/i,\n      alias: 'number'\n    },\n    string: {\n      pattern:\n        /(?:\\b\\w+_)?(['\"])(?:\\1\\1|&(?:\\r\\n?|\\n)(?:[ \\t]*!.*(?:\\r\\n?|\\n)|(?![ \\t]*!))|(?!\\1).)*(?:\\1|&)/,\n      inside: {\n        comment: {\n          pattern: /(&(?:\\r\\n?|\\n)\\s*)!.*/,\n          lookbehind: true\n        }\n      }\n    },\n    comment: {\n      pattern: /!.*/,\n      greedy: true\n    },\n    boolean: /\\.(?:FALSE|TRUE)\\.(?:_\\w+)?/i,\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[ED][+-]?\\d+)?(?:_\\w+)?/i,\n    keyword: [\n      // Types\n      /\\b(?:CHARACTER|COMPLEX|DOUBLE ?PRECISION|INTEGER|LOGICAL|REAL)\\b/i, // END statements\n      /\\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\\b/i, // Statements\n      /\\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\\b/i, // Others\n      /\\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEIF|ELSEWHERE|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\\b/i\n    ],\n    operator: [\n      /\\*\\*|\\/\\/|=>|[=\\/]=|[<>]=?|::|[+\\-*=%]|\\.[A-Z]+\\./i,\n      {\n        // Use lookbehind to prevent confusion with (/ /)\n        pattern: /(^|(?!\\().)\\/(?!\\))/,\n        lookbehind: true\n      }\n    ],\n    punctuation: /\\(\\/|\\/\\)|[(),;:&]/\n  }\n}\n","'use strict'\n\nmodule.exports = fsharp\nfsharp.displayName = 'fsharp'\nfsharp.aliases = []\nfunction fsharp(Prism) {\n  Prism.languages.fsharp = Prism.languages.extend('clike', {\n    comment: [\n      {\n        pattern: /(^|[^\\\\])\\(\\*(?!\\))[\\s\\S]*?\\*\\)/,\n        lookbehind: true,\n        greedy: true\n      },\n      {\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /(?:\"\"\"[\\s\\S]*?\"\"\"|@\"(?:\"\"|[^\"])*\"|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")B?/,\n      greedy: true\n    },\n    'class-name': {\n      pattern:\n        /(\\b(?:exception|inherit|interface|new|of|type)\\s+|\\w\\s*:\\s*|\\s:\\??>\\s*)[.\\w]+\\b(?:\\s*(?:->|\\*)\\s*[.\\w]+\\b)*(?!\\s*[:.])/,\n      lookbehind: true,\n      inside: {\n        operator: /->|\\*/,\n        punctuation: /\\./\n      }\n    },\n    keyword:\n      /\\b(?:let|return|use|yield)(?:!\\B|\\b)|\\b(?:abstract|and|as|asr|assert|atomic|base|begin|break|checked|class|component|const|constraint|constructor|continue|default|delegate|do|done|downcast|downto|eager|elif|else|end|event|exception|extern|external|false|finally|fixed|for|fun|function|functor|global|if|in|include|inherit|inline|interface|internal|land|lazy|lor|lsl|lsr|lxor|match|member|method|mixin|mod|module|mutable|namespace|new|not|null|object|of|open|or|override|parallel|private|process|protected|public|pure|rec|sealed|select|sig|static|struct|tailcall|then|to|trait|true|try|type|upcast|val|virtual|void|volatile|when|while|with)\\b/,\n    number: [\n      /\\b0x[\\da-fA-F]+(?:LF|lf|un)?\\b/,\n      /\\b0b[01]+(?:uy|y)?\\b/,\n      /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[fm]|e[+-]?\\d+)?\\b/i,\n      /\\b\\d+(?:[IlLsy]|UL|u[lsy]?)?\\b/\n    ],\n    operator:\n      /([<>~&^])\\1\\1|([*.:<>&])\\2|<-|->|[!=:]=|<?\\|{1,3}>?|\\??(?:<=|>=|<>|[-+*/%=<>])\\??|[!?^&]|~[+~-]|:>|:\\?>?/\n  })\n  Prism.languages.insertBefore('fsharp', 'keyword', {\n    preprocessor: {\n      pattern: /(^[\\t ]*)#.*/m,\n      lookbehind: true,\n      alias: 'property',\n      inside: {\n        directive: {\n          pattern: /(^#)\\b(?:else|endif|if|light|line|nowarn)\\b/,\n          lookbehind: true,\n          alias: 'keyword'\n        }\n      }\n    }\n  })\n  Prism.languages.insertBefore('fsharp', 'punctuation', {\n    'computation-expression': {\n      pattern: /\\b[_a-z]\\w*(?=\\s*\\{)/i,\n      alias: 'keyword'\n    }\n  })\n  Prism.languages.insertBefore('fsharp', 'string', {\n    annotation: {\n      pattern: /\\[<.+?>\\]/,\n      greedy: true,\n      inside: {\n        punctuation: /^\\[<|>\\]$/,\n        'class-name': {\n          pattern: /^\\w+$|(^|;\\s*)[A-Z]\\w*(?=\\()/,\n          lookbehind: true\n        },\n        'annotation-content': {\n          pattern: /[\\s\\S]+/,\n          inside: Prism.languages.fsharp\n        }\n      }\n    },\n    char: {\n      pattern:\n        /'(?:[^\\\\']|\\\\(?:.|\\d{3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}|U[a-fA-F\\d]{8}))'B?/,\n      greedy: true\n    }\n  })\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = ftl\nftl.displayName = 'ftl'\nftl.aliases = []\nfunction ftl(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    // https://freemarker.apache.org/docs/dgui_template_exp.html\n    // FTL expression with 4 levels of nesting supported\n    var FTL_EXPR =\n      /[^<()\"']|\\((?:<expr>)*\\)|<(?!#--)|<#--(?:[^-]|-(?!->))*-->|\"(?:[^\\\\\"]|\\\\.)*\"|'(?:[^\\\\']|\\\\.)*'/\n        .source\n    for (var i = 0; i < 2; i++) {\n      FTL_EXPR = FTL_EXPR.replace(/<expr>/g, function () {\n        return FTL_EXPR\n      })\n    }\n    FTL_EXPR = FTL_EXPR.replace(/<expr>/g, /[^\\s\\S]/.source)\n    var ftl = {\n      comment: /<#--[\\s\\S]*?-->/,\n      string: [\n        {\n          // raw string\n          pattern: /\\br(\"|')(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n          greedy: true\n        },\n        {\n          pattern: RegExp(\n            /(\"|')(?:(?!\\1|\\$\\{)[^\\\\]|\\\\.|\\$\\{(?:(?!\\})(?:<expr>))*\\})*\\1/.source.replace(\n              /<expr>/g,\n              function () {\n                return FTL_EXPR\n              }\n            )\n          ),\n          greedy: true,\n          inside: {\n            interpolation: {\n              pattern: RegExp(\n                /((?:^|[^\\\\])(?:\\\\\\\\)*)\\$\\{(?:(?!\\})(?:<expr>))*\\}/.source.replace(\n                  /<expr>/g,\n                  function () {\n                    return FTL_EXPR\n                  }\n                )\n              ),\n              lookbehind: true,\n              inside: {\n                'interpolation-punctuation': {\n                  pattern: /^\\$\\{|\\}$/,\n                  alias: 'punctuation'\n                },\n                rest: null\n              }\n            }\n          }\n        }\n      ],\n      keyword: /\\b(?:as)\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      'builtin-function': {\n        pattern: /((?:^|[^?])\\?\\s*)\\w+/,\n        lookbehind: true,\n        alias: 'function'\n      },\n      function: /\\b\\w+(?=\\s*\\()/,\n      number: /\\b\\d+(?:\\.\\d+)?\\b/,\n      operator:\n        /\\.\\.[<*!]?|->|--|\\+\\+|&&|\\|\\||\\?{1,2}|[-+*/%!=<>]=?|\\b(?:gt|gte|lt|lte)\\b/,\n      punctuation: /[,;.:()[\\]{}]/\n    }\n    ftl.string[1].inside.interpolation.inside.rest = ftl\n    Prism.languages.ftl = {\n      'ftl-comment': {\n        // the pattern is shortened to be more efficient\n        pattern: /^<#--[\\s\\S]*/,\n        alias: 'comment'\n      },\n      'ftl-directive': {\n        pattern: /^<[\\s\\S]+>$/,\n        inside: {\n          directive: {\n            pattern: /(^<\\/?)[#@][a-z]\\w*/i,\n            lookbehind: true,\n            alias: 'keyword'\n          },\n          punctuation: /^<\\/?|\\/?>$/,\n          content: {\n            pattern: /\\s*\\S[\\s\\S]*/,\n            alias: 'ftl',\n            inside: ftl\n          }\n        }\n      },\n      'ftl-interpolation': {\n        pattern: /^\\$\\{[\\s\\S]*\\}$/,\n        inside: {\n          punctuation: /^\\$\\{|\\}$/,\n          content: {\n            pattern: /\\s*\\S[\\s\\S]*/,\n            alias: 'ftl',\n            inside: ftl\n          }\n        }\n      }\n    }\n    Prism.hooks.add('before-tokenize', function (env) {\n      // eslint-disable-next-line regexp/no-useless-lazy\n      var pattern = RegExp(\n        /<#--[\\s\\S]*?-->|<\\/?[#@][a-zA-Z](?:<expr>)*?>|\\$\\{(?:<expr>)*?\\}/.source.replace(\n          /<expr>/g,\n          function () {\n            return FTL_EXPR\n          }\n        ),\n        'gi'\n      )\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'ftl',\n        pattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ftl')\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = gap\ngap.displayName = 'gap'\ngap.aliases = []\nfunction gap(Prism) {\n  // https://www.gap-system.org/Manuals/doc/ref/chap4.html\n  // https://www.gap-system.org/Manuals/doc/ref/chap27.html\n  Prism.languages.gap = {\n    shell: {\n      pattern: /^gap>[\\s\\S]*?(?=^gap>|$(?![\\s\\S]))/m,\n      greedy: true,\n      inside: {\n        gap: {\n          pattern: /^(gap>).+(?:(?:\\r(?:\\n|(?!\\n))|\\n)>.*)*/,\n          lookbehind: true,\n          inside: null // see below\n        },\n        punctuation: /^gap>/\n      }\n    },\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    string: {\n      pattern:\n        /(^|[^\\\\'\"])(?:'(?:[^\\r\\n\\\\']|\\\\.){1,10}'|\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"(?!\")|\"\"\"[\\s\\S]*?\"\"\")/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        continuation: {\n          pattern: /([\\r\\n])>/,\n          lookbehind: true,\n          alias: 'punctuation'\n        }\n      }\n    },\n    keyword:\n      /\\b(?:Assert|Info|IsBound|QUIT|TryNextMethod|Unbind|and|atomic|break|continue|do|elif|else|end|fi|for|function|if|in|local|mod|not|od|or|quit|readonly|readwrite|rec|repeat|return|then|until|while)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    number: {\n      pattern:\n        /(^|[^\\w.]|\\.\\.)(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?(?:_[a-z]?)?(?=$|[^\\w.]|\\.\\.)/,\n      lookbehind: true\n    },\n    continuation: {\n      pattern: /([\\r\\n])>/,\n      lookbehind: true,\n      alias: 'punctuation'\n    },\n    operator: /->|[-+*/^~=!]|<>|[<>]=?|:=|\\.\\./,\n    punctuation: /[()[\\]{},;.:]/\n  }\n  Prism.languages.gap.shell.inside.gap.inside = Prism.languages.gap\n}\n","'use strict'\n\nmodule.exports = gcode\ngcode.displayName = 'gcode'\ngcode.aliases = []\nfunction gcode(Prism) {\n  Prism.languages.gcode = {\n    comment: /;.*|\\B\\(.*?\\)\\B/,\n    string: {\n      pattern: /\"(?:\"\"|[^\"])*\"/,\n      greedy: true\n    },\n    keyword: /\\b[GM]\\d+(?:\\.\\d+)?\\b/,\n    property: /\\b[A-Z]/,\n    checksum: {\n      pattern: /(\\*)\\d+/,\n      lookbehind: true,\n      alias: 'number'\n    },\n    // T0:0:0\n    punctuation: /[:*]/\n  }\n}\n","'use strict'\n\nmodule.exports = gdscript\ngdscript.displayName = 'gdscript'\ngdscript.aliases = []\nfunction gdscript(Prism) {\n  Prism.languages.gdscript = {\n    comment: /#.*/,\n    string: {\n      pattern:\n        /@?(?:(\"|')(?:(?!\\1)[^\\n\\\\]|\\\\[\\s\\S])*\\1(?!\"|')|\"\"\"(?:[^\\\\]|\\\\[\\s\\S])*?\"\"\")/,\n      greedy: true\n    },\n    'class-name': {\n      // class_name Foo, extends Bar, class InnerClass\n      // export(int) var baz, export(int, 0) var i\n      // as Node\n      // const FOO: int = 9, var bar: bool = true\n      // func add(reference: Item, amount: int) -> Item:\n      pattern:\n        /(^(?:class|class_name|extends)[ \\t]+|^export\\([ \\t]*|\\bas[ \\t]+|(?:\\b(?:const|var)[ \\t]|[,(])[ \\t]*\\w+[ \\t]*:[ \\t]*|->[ \\t]*)[a-zA-Z_]\\w*/m,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\\b/,\n    function: /\\b[a-z_]\\w*(?=[ \\t]*\\()/i,\n    variable: /\\$\\w+/,\n    number: [\n      /\\b0b[01_]+\\b|\\b0x[\\da-fA-F_]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.[\\d_]+)(?:e[+-]?[\\d_]+)?\\b/,\n      /\\b(?:INF|NAN|PI|TAU)\\b/\n    ],\n    constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    operator: /->|:=|&&|\\|\\||<<|>>|[-+*/%&|!<>=]=?|[~^]/,\n    punctuation: /[.:,;()[\\]{}]/\n  }\n}\n","'use strict'\n\nmodule.exports = gedcom\ngedcom.displayName = 'gedcom'\ngedcom.aliases = []\nfunction gedcom(Prism) {\n  Prism.languages.gedcom = {\n    'line-value': {\n      // Preceded by level, optional pointer, and tag\n      pattern:\n        /(^[\\t ]*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?\\w+ ).+/m,\n      lookbehind: true,\n      inside: {\n        pointer: {\n          pattern: /^@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@$/,\n          alias: 'variable'\n        }\n      }\n    },\n    tag: {\n      // Preceded by level and optional pointer\n      pattern:\n        /(^[\\t ]*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?)\\w+/m,\n      lookbehind: true,\n      alias: 'string'\n    },\n    level: {\n      pattern: /(^[\\t ]*)\\d+/m,\n      lookbehind: true,\n      alias: 'number'\n    },\n    pointer: {\n      pattern: /@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@/,\n      alias: 'variable'\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = gherkin\ngherkin.displayName = 'gherkin'\ngherkin.aliases = []\nfunction gherkin(Prism) {\n  ;(function (Prism) {\n    var tableRow = /(?:\\r?\\n|\\r)[ \\t]*\\|.+\\|(?:(?!\\|).)*/.source\n    Prism.languages.gherkin = {\n      pystring: {\n        pattern: /(\"\"\"|''')[\\s\\S]+?\\1/,\n        alias: 'string'\n      },\n      comment: {\n        pattern: /(^[ \\t]*)#.*/m,\n        lookbehind: true\n      },\n      tag: {\n        pattern: /(^[ \\t]*)@\\S*/m,\n        lookbehind: true\n      },\n      feature: {\n        pattern:\n          /((?:^|\\r?\\n|\\r)[ \\t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Característica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Funcţionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità|Hwaet|Hwæt|Jellemző|Karakteristik|Lastnost|Mak|Mogucnost|laH|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|Potrzeba biznesowa|perbogh|poQbogh malja'|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|Tính năng|Trajto|Vermoë|Vlastnosť|Właściwość|Značilnost|Δυνατότητα|Λειτουργία|Могућност|Мөмкинлек|Особина|Свойство|Үзенчәлеклелек|Функционал|Функционалност|Функция|Функціонал|תכונה|خاصية|خصوصیت|صلاحیت|کاروبار کی ضرورت|وِیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ಹೆಚ್ಚಳ|ความต้องการทางธุรกิจ|ความสามารถ|โครงหลัก|기능|フィーチャ|功能|機能):(?:[^:\\r\\n]+(?:\\r?\\n|\\r|$))*/,\n        lookbehind: true,\n        inside: {\n          important: {\n            pattern: /(:)[^\\r\\n]+/,\n            lookbehind: true\n          },\n          keyword: /[^:\\r\\n]+:/\n        }\n      },\n      scenario: {\n        pattern:\n          /(^[ \\t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram Senaryo|Dyagram senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|EXAMPLZ|Examples|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|Geçmiş|Grundlage|Hannergrond|ghantoH|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut chovnatlh|lut|lutmey|Lýsing Atburðarásar|Lýsing Dæma|MISHUN SRSLY|MISHUN|Menggariskan Senario|mo'|Náčrt Scenára|Náčrt Scénáře|Náčrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|Piemēri|Plan du scénario|Plan du Scénario|Plan Senaryo|Plan senaryo|Plang vum Szenario|Pozadí|Pozadie|Pozadina|Príklady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus šablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo Deskripsyon|Senaryo deskripsyon|Senaryo|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie Uiteensetting|Situasie|Skenario konsep|Skenario|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa hwaer swa|Swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo-ho-ho|You'll wanna|Założenia|Παραδείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Υπόβαθρο|Кереш|Контекст|Концепт|Мисаллар|Мисоллар|Основа|Передумова|Позадина|Предистория|Предыстория|Приклади|Пример|Примери|Примеры|Рамка на сценарий|Скица|Структура сценарија|Структура сценария|Структура сценарію|Сценарий|Сценарий структураси|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמאות|רקע|תבנית תרחיש|תרחיש|الخلفية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکہ|منظرنامہ|نمونه ها|उदाहरण|परिदृश्य|परिदृश्य रूपरेखा|पृष्ठभूमि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలు|కథనం|నేపథ్యం|సన్నివేశం|ಉದಾಹರಣೆಗಳು|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನ್ನೆಲೆ|โครงสร้างของเหตุการณ์|ชุดของตัวอย่าง|ชุดของเหตุการณ์|แนวคิด|สรุปเหตุการณ์|เหตุการณ์|배경|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例子|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|場景|場景大綱|背景):[^:\\r\\n]*/m,\n        lookbehind: true,\n        inside: {\n          important: {\n            pattern: /(:)[^\\r\\n]*/,\n            lookbehind: true\n          },\n          keyword: /[^:\\r\\n]+:/\n        }\n      },\n      'table-body': {\n        // Look-behind is used to skip the table head, which has the same format as any table row\n        pattern: RegExp('(' + tableRow + ')(?:' + tableRow + ')+'),\n        lookbehind: true,\n        inside: {\n          outline: {\n            pattern: /<[^>]+>/,\n            alias: 'variable'\n          },\n          td: {\n            pattern: /\\s*[^\\s|][^|]*/,\n            alias: 'string'\n          },\n          punctuation: /\\|/\n        }\n      },\n      'table-head': {\n        pattern: RegExp(tableRow),\n        inside: {\n          th: {\n            pattern: /\\s*[^\\s|][^|]*/,\n            alias: 'variable'\n          },\n          punctuation: /\\|/\n        }\n      },\n      atrule: {\n        pattern:\n          /(^[ \\t]+)(?:'a|'ach|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cand|Cando|Ce|Cuando|Če|Ða ðe|Ða|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Daţi fiind|Dați fiind|DEN|Dato|De|Den youse gotta|Dengan|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ðurh|Eeldades|Ef|Eğer ki|Entao|Então|Entón|E|En|Entonces|Epi|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kad|Kada|Kadar|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|Mając|Ma|Majd|Maka|Manawa|Mas|Men|Menawa|Mutta|Nalika|Nalikaning|Nanging|Når|När|Nato|Nhưng|Niin|Njuk|O zaman|Och|Og|Oletetaan|Ond|Onda|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|Quan|Quand|Quando|qaSDI'|Så|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|Un|Und|ugeholl|Và|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadan|Zadani|Zadano|Zadate|Zadato|Zakładając|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|Δεδομένου|Και|Όταν|Τότε|А також|Агар|Але|Али|Аммо|А|Әгәр|Әйтик|Әмма|Бирок|Ва|Вә|Дадено|Дано|Допустим|Если|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Нәтиҗәдә|Нехай|Но|Онда|Припустимо, що|Припустимо|Пусть|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|אבל|אזי|אז|בהינתן|וגם|כאשר|آنگاه|اذاً|اگر|اما|اور|با فرض|بالفرض|بفرض|پھر|تب|ثم|جب|عندما|فرض کیا|لكن|لیکن|متى|هنگامی|و|अगर|और|कदा|किन्तु|चूंकि|जब|तथा|तदा|तब|परन्तु|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|అప్పుడు|ఈ పరిస్థితిలో|కాని|చెప్పబడినది|మరియు|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತ್ತು|ಸ್ಥಿತಿಯನ್ನು|กำหนดให้|ดังนั้น|แต่|เมื่อ|และ|그러면<|그리고<|단<|만약<|만일<|먼저<|조건<|하지만<|かつ<|しかし<|ただし<|ならば<|もし<|並且<|但し<|但是<|假如<|假定<|假設<|假设<|前提<|同时<|同時<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \\t])/m,\n        lookbehind: true\n      },\n      string: {\n        pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/,\n        inside: {\n          outline: {\n            pattern: /<[^>]+>/,\n            alias: 'variable'\n          }\n        }\n      },\n      outline: {\n        pattern: /<[^>]+>/,\n        alias: 'variable'\n      }\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = git\ngit.displayName = 'git'\ngit.aliases = []\nfunction git(Prism) {\n  Prism.languages.git = {\n    /*\n     * A simple one line comment like in a git status command\n     * For instance:\n     * $ git status\n     * # On branch infinite-scroll\n     * # Your branch and 'origin/sharedBranches/frontendTeam/infinite-scroll' have diverged,\n     * # and have 1 and 2 different commits each, respectively.\n     * nothing to commit (working directory clean)\n     */\n    comment: /^#.*/m,\n    /*\n     * Regexp to match the changed lines in a git diff output. Check the example below.\n     */\n    deleted: /^[-–].*/m,\n    inserted: /^\\+.*/m,\n    /*\n     * a string (double and simple quote)\n     */\n    string: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n    /*\n     * a git command. It starts with a random prompt finishing by a $, then \"git\" then some other parameters\n     * For instance:\n     * $ git add file.txt\n     */\n    command: {\n      pattern: /^.*\\$ git .*$/m,\n      inside: {\n        /*\n         * A git command can contain a parameter starting by a single or a double dash followed by a string\n         * For instance:\n         * $ git diff --cached\n         * $ git log -p\n         */\n        parameter: /\\s--?\\w+/\n      }\n    },\n    /*\n     * Coordinates displayed in a git diff command\n     * For instance:\n     * $ git diff\n     * diff --git file.txt file.txt\n     * index 6214953..1d54a52 100644\n     * --- file.txt\n     * +++ file.txt\n     * @@ -1 +1,2 @@\n     * -Here's my tetx file\n     * +Here's my text file\n     * +And this is the second line\n     */\n    coord: /^@@.*@@$/m,\n    /*\n     * Match a \"commit [SHA1]\" line in a git log output.\n     * For instance:\n     * $ git log\n     * commit a11a14ef7e26f2ca62d4b35eac455ce636d0dc09\n     * Author: lgiraudel\n     * Date:   Mon Feb 17 11:18:34 2014 +0100\n     *\n     *     Add of a new line\n     */\n    'commit-sha1': /^commit \\w{40}$/m\n  }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = glsl\nglsl.displayName = 'glsl'\nglsl.aliases = []\nfunction glsl(Prism) {\n  Prism.register(refractorC)\n  Prism.languages.glsl = Prism.languages.extend('c', {\n    keyword:\n      /\\b(?:active|asm|atomic_uint|attribute|[ibdu]?vec[234]|bool|break|buffer|case|cast|centroid|class|coherent|common|const|continue|d?mat[234](?:x[234])?|default|discard|do|double|else|enum|extern|external|false|filter|fixed|flat|float|for|fvec[234]|goto|half|highp|hvec[234]|[iu]?sampler2DMS(?:Array)?|[iu]?sampler2DRect|[iu]?samplerBuffer|[iu]?samplerCube|[iu]?samplerCubeArray|[iu]?sampler[123]D|[iu]?sampler[12]DArray|[iu]?image2DMS(?:Array)?|[iu]?image2DRect|[iu]?imageBuffer|[iu]?imageCube|[iu]?imageCubeArray|[iu]?image[123]D|[iu]?image[12]DArray|if|in|inline|inout|input|int|interface|invariant|layout|long|lowp|mediump|namespace|noinline|noperspective|out|output|partition|patch|precise|precision|public|readonly|resource|restrict|return|sample|sampler[12]DArrayShadow|sampler[12]DShadow|sampler2DRectShadow|sampler3DRect|samplerCubeArrayShadow|samplerCubeShadow|shared|short|sizeof|smooth|static|struct|subroutine|superp|switch|template|this|true|typedef|uint|uniform|union|unsigned|using|varying|void|volatile|while|writeonly)\\b/\n  })\n}\n","'use strict'\n\nmodule.exports = gml\ngml.displayName = 'gml'\ngml.aliases = []\nfunction gml(Prism) {\n  Prism.languages.gamemakerlanguage = Prism.languages.gml =\n    Prism.languages.extend('clike', {\n      keyword:\n        /\\b(?:break|case|continue|default|do|else|enum|exit|for|globalvar|if|repeat|return|switch|until|var|while)\\b/,\n      number:\n        /(?:\\b0x[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ulf]{0,4}/i,\n      operator:\n        /--|\\+\\+|[-+%/=]=?|!=|\\*\\*?=?|<[<=>]?|>[=>]?|&&?|\\^\\^?|\\|\\|?|~|\\b(?:and|at|not|or|with|xor)\\b/,\n      constant:\n        /\\b(?:GM_build_date|GM_version|action_(?:continue|restart|reverse|stop)|all|gamespeed_(?:fps|microseconds)|global|local|noone|other|pi|pointer_(?:invalid|null)|self|timezone_(?:local|utc)|undefined|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|post|pre)|keypress|keyrelease|trigger|(?:left|middle|no|right)_button|(?:left|middle|right)_press|(?:left|middle|right)_release|mouse_(?:enter|leave|wheel_down|wheel_up)|global_(?:left|middle|right)_button|global_(?:left|middle|right)_press|global_(?:left|middle|right)_release|joystick(?:1|2)_(?:button1|button2|button3|button4|button5|button6|button7|button8|down|left|right|up)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\\d|gui|gui_begin|gui_end|step_(?:begin|end|normal))|vk_(?:alt|anykey|backspace|control|delete|down|end|enter|escape|home|insert|left|nokey|pagedown|pageup|pause|printscreen|return|right|shift|space|tab|up|f\\d|numpad\\d|add|decimal|divide|lalt|lcontrol|lshift|multiply|ralt|rcontrol|rshift|subtract)|achievement_(?:filter_(?:all_players|favorites_only|friends_only)|friends_info|info|leaderboard_info|our_info|pic_loaded|show_(?:achievement|bank|friend_picker|leaderboard|profile|purchase_prompt|ui)|type_challenge|type_score_challenge)|asset_(?:font|object|path|room|script|shader|sound|sprite|tiles|timeline|unknown)|audio_(?:3d|falloff_(?:exponent_distance|exponent_distance_clamped|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|none)|mono|new_system|old_system|stereo)|bm_(?:add|complex|dest_alpha|dest_color|dest_colour|inv_dest_alpha|inv_dest_color|inv_dest_colour|inv_src_alpha|inv_src_color|inv_src_colour|max|normal|one|src_alpha|src_alpha_sat|src_color|src_colour|subtract|zero)|browser_(?:chrome|firefox|ie|ie_mobile|not_a_browser|opera|safari|safari_mobile|tizen|unknown|windows_store)|buffer_(?:bool|f16|f32|f64|fast|fixed|generalerror|grow|invalidtype|network|outofbounds|outofspace|s16|s32|s8|seek_end|seek_relative|seek_start|string|text|u16|u32|u64|u8|vbuffer|wrap)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)|cmpfunc_(?:always|equal|greater|greaterequal|less|lessequal|never|notequal)|cr_(?:appstart|arrow|beam|cross|default|drag|handpoint|hourglass|none|size_all|size_nesw|size_ns|size_nwse|size_we|uparrow)|cull_(?:clockwise|counterclockwise|noculling)|device_(?:emulator|tablet)|device_ios_(?:ipad|ipad_retina|iphone|iphone5|iphone6|iphone6plus|iphone_retina|unknown)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|dll_(?:cdecl|cdel|stdcall)|ds_type_(?:grid|list|map|priority|queue|stack)|ef_(?:cloud|ellipse|explosion|firework|flare|rain|ring|smoke|smokeup|snow|spark|star)|fa_(?:archive|bottom|center|directory|hidden|left|middle|readonly|right|sysfile|top|volumeid)|fb_login_(?:default|fallback_to_webview|forcing_safari|forcing_webview|no_fallback_to_webview|use_system_account)|iap_(?:available|canceled|ev_consume|ev_product|ev_purchase|ev_restore|ev_storeload|failed|purchased|refunded|status_available|status_loading|status_processing|status_restoring|status_unavailable|status_uninitialised|storeload_failed|storeload_ok|unavailable)|leaderboard_type_(?:number|time_mins_secs)|lighttype_(?:dir|point)|matrix_(?:projection|view|world)|mb_(?:any|left|middle|none|right)|network_(?:config_(?:connect_timeout|disable_reliable_udp|enable_reliable_udp|use_non_blocking_socket)|socket_(?:bluetooth|tcp|udp)|type_(?:connect|data|disconnect|non_blocking_connect))|of_challenge_(?:lose|tie|win)|os_(?:android|ios|linux|macosx|ps3|ps4|psvita|unknown|uwp|win32|win8native|windows|winphone|xboxone)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|angle|angle_limits|damping_ratio|frequency|length_1|length_2|lower_angle_limit|max_force|max_length|max_motor_force|max_motor_torque|max_torque|motor_force|motor_speed|motor_torque|reaction_force_x|reaction_force_y|reaction_torque|speed|translation|upper_angle_limit)|phy_particle_data_flag_(?:category|color|colour|position|typeflags|velocity)|phy_particle_flag_(?:colormixing|colourmixing|elastic|powder|spring|tensile|viscous|wall|water|zombie)|phy_particle_group_flag_(?:rigid|solid)|pr_(?:linelist|linestrip|pointlist|trianglefan|trianglelist|trianglestrip)|ps_(?:distr|shape)_(?:diamond|ellipse|gaussian|invgaussian|line|linear|rectangle)|pt_shape_(?:circle|cloud|disk|explosion|flare|line|pixel|ring|smoke|snow|spark|sphere|square|star)|ty_(?:real|string)|gp_(?:face\\d|axislh|axislv|axisrh|axisrv|padd|padl|padr|padu|select|shoulderl|shoulderlb|shoulderr|shoulderrb|start|stickl|stickr)|lb_disp_(?:none|numeric|time_ms|time_sec)|lb_sort_(?:ascending|descending|none)|ov_(?:achievements|community|friends|gamegroup|players|settings)|ugc_(?:filetype_(?:community|microtrans)|list_(?:Favorited|Followed|Published|Subscribed|UsedOrPlayed|VotedDown|VotedOn|VotedUp|WillVoteLater)|match_(?:AllGuides|Artwork|Collections|ControllerBindings|IntegratedGuides|Items|Items_Mtx|Items_ReadyToUse|Screenshots|UsableInGame|Videos|WebGuides)|query_(?:AcceptedForGameRankedByAcceptanceDate|CreatedByFriendsRankedByPublicationDate|FavoritedByFriendsRankedByPublicationDate|NotYetRated)|query_RankedBy(?:NumTimesReported|PublicationDate|TextSearch|TotalVotesAsc|Trend|Vote|VotesUp)|result_success|sortorder_CreationOrder(?:Asc|Desc)|sortorder_(?:ForModeration|LastUpdatedDesc|SubscriptionDateDesc|TitleAsc|VoteScoreDesc)|visibility_(?:friends_only|private|public))|vertex_usage_(?:binormal|blendindices|blendweight|color|colour|depth|fog|normal|position|psize|sample|tangent|texcoord|textcoord)|vertex_type_(?:float\\d|color|colour|ubyte4)|input_type|layerelementtype_(?:background|instance|oldtilemap|particlesystem|sprite|tile|tilemap|undefined)|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|tile_(?:flip|index_mask|mirror|rotate)|(?:obj|rm|scr|spr)\\w+)\\b/,\n      variable:\n        /\\b(?:alarm|application_surface|async_load|background_(?:alpha|blend|color|colour|foreground|height|hspeed|htiled|index|showcolor|showcolour|visible|vspeed|vtiled|width|x|xscale|y|yscale)|bbox_(?:bottom|left|right|top)|browser_(?:height|width)|caption_(?:health|lives|score)|current_(?:day|hour|minute|month|second|time|weekday|year)|cursor_sprite|debug_mode|delta_time|direction|display_aa|error_(?:last|occurred)|event_(?:action|number|object|type)|fps|fps_real|friction|game_(?:display|project|save)_(?:id|name)|gamemaker_(?:pro|registered|version)|gravity|gravity_direction|(?:h|v)speed|health|iap_data|id|image_(?:alpha|angle|blend|depth|index|number|speed|xscale|yscale)|instance_(?:count|id)|keyboard_(?:key|lastchar|lastkey|string)|layer|lives|mask_index|mouse_(?:button|lastbutton|x|y)|object_index|os_(?:browser|device|type|version)|path_(?:endaction|index|orientation|position|positionprevious|scale|speed)|persistent|phy_(?:rotation|(?:col_normal|collision|com|linear_velocity|position|speed)_(?:x|y)|angular_(?:damping|velocity)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|pointer_(?:invalid|null)|room|room_(?:caption|first|height|last|persistent|speed|width)|score|secure_mode|show_(?:health|lives|score)|solid|speed|sprite_(?:height|index|width|xoffset|yoffset)|temp_directory|timeline_(?:index|loop|position|running|speed)|transition_(?:color|kind|steps)|undefined|view_(?:angle|current|enabled|(?:h|v)(?:border|speed)|(?:h|w|x|y)port|(?:h|w|x|y)view|object|surface_id|visible)|visible|webgl_enabled|working_directory|(?:x|y)(?:previous|start)|x|y|argument(?:_relitive|_count|\\d)|argument|global|local|other|self)\\b/\n    })\n}\n","'use strict'\n\nmodule.exports = gn\ngn.displayName = 'gn'\ngn.aliases = ['gni']\nfunction gn(Prism) {\n  // https://gn.googlesource.com/gn/+/refs/heads/main/docs/reference.md#grammar\n  Prism.languages.gn = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    'string-literal': {\n      pattern: /(^|[^\\\\\"])\"(?:[^\\r\\n\"\\\\]|\\\\.)*\"/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern:\n            /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\{[\\s\\S]*?\\}|[a-zA-Z_]\\w*|0x[a-fA-F0-9]{2})/,\n          lookbehind: true,\n          inside: {\n            number: /^\\$0x[\\s\\S]{2}$/,\n            variable: /^\\$\\w+$/,\n            'interpolation-punctuation': {\n              pattern: /^\\$\\{|\\}$/,\n              alias: 'punctuation'\n            },\n            expression: {\n              pattern: /[\\s\\S]+/,\n              inside: null // see below\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    },\n    keyword: /\\b(?:else|if)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    'builtin-function': {\n      // a few functions get special highlighting to improve readability\n      pattern:\n        /\\b(?:assert|defined|foreach|import|pool|print|template|tool|toolchain)(?=\\s*\\()/i,\n      alias: 'keyword'\n    },\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    constant:\n      /\\b(?:current_cpu|current_os|current_toolchain|default_toolchain|host_cpu|host_os|root_build_dir|root_gen_dir|root_out_dir|target_cpu|target_gen_dir|target_os|target_out_dir)\\b/,\n    number: /-?\\b\\d+\\b/,\n    operator: /[-+!=<>]=?|&&|\\|\\|/,\n    punctuation: /[(){}[\\],.]/\n  }\n  Prism.languages.gn['string-literal'].inside['interpolation'].inside[\n    'expression'\n  ].inside = Prism.languages.gn\n  Prism.languages.gni = Prism.languages.gn\n}\n","'use strict'\n\nmodule.exports = goModule\ngoModule.displayName = 'goModule'\ngoModule.aliases = []\nfunction goModule(Prism) {\n  // https://go.dev/ref/mod#go-mod-file-module\n  Prism.languages['go-mod'] = Prism.languages['go-module'] = {\n    comment: {\n      pattern: /\\/\\/.*/,\n      greedy: true\n    },\n    version: {\n      pattern: /(^|[\\s()[\\],])v\\d+\\.\\d+\\.\\d+(?:[+-][-+.\\w]*)?(?![^\\s()[\\],])/,\n      lookbehind: true,\n      alias: 'number'\n    },\n    'go-version': {\n      pattern: /((?:^|\\s)go\\s+)\\d+(?:\\.\\d+){1,2}/,\n      lookbehind: true,\n      alias: 'number'\n    },\n    keyword: {\n      pattern: /^([ \\t]*)(?:exclude|go|module|replace|require|retract)\\b/m,\n      lookbehind: true\n    },\n    operator: /=>/,\n    punctuation: /[()[\\],]/\n  }\n}\n","'use strict'\n\nmodule.exports = go\ngo.displayName = 'go'\ngo.aliases = []\nfunction go(Prism) {\n  Prism.languages.go = Prism.languages.extend('clike', {\n    string: {\n      pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`[^`]*`/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,\n    boolean: /\\b(?:_|false|iota|nil|true)\\b/,\n    number: [\n      // binary and octal integers\n      /\\b0(?:b[01_]+|o[0-7_]+)i?\\b/i, // hexadecimal integers and floats\n      /\\b0x(?:[a-f\\d_]+(?:\\.[a-f\\d_]*)?|\\.[a-f\\d_]+)(?:p[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i, // decimal integers and floats\n      /(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?[\\d_]+)?i?(?!\\w)/i\n    ],\n    operator:\n      /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,\n    builtin:\n      /\\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\\b/\n  })\n  Prism.languages.insertBefore('go', 'string', {\n    char: {\n      pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){0,10}'/,\n      greedy: true\n    }\n  })\n  delete Prism.languages.go['class-name']\n}\n","'use strict'\n\nmodule.exports = graphql\ngraphql.displayName = 'graphql'\ngraphql.aliases = []\nfunction graphql(Prism) {\n  Prism.languages.graphql = {\n    comment: /#.*/,\n    description: {\n      pattern:\n        /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i,\n      greedy: true,\n      alias: 'string',\n      inside: {\n        'language-markdown': {\n          pattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/,\n          lookbehind: true,\n          inside: Prism.languages.markdown\n        }\n      }\n    },\n    string: {\n      pattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n      greedy: true\n    },\n    number: /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n    boolean: /\\b(?:false|true)\\b/,\n    variable: /\\$[a-z_]\\w*/i,\n    directive: {\n      pattern: /@[a-z_]\\w*/i,\n      alias: 'function'\n    },\n    'attr-name': {\n      pattern: /\\b[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i,\n      greedy: true\n    },\n    'atom-input': {\n      pattern: /\\b[A-Z]\\w*Input\\b/,\n      alias: 'class-name'\n    },\n    scalar: /\\b(?:Boolean|Float|ID|Int|String)\\b/,\n    constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n    'class-name': {\n      pattern:\n        /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*|:\\s*|\\[)[A-Z_]\\w*/,\n      lookbehind: true\n    },\n    fragment: {\n      pattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/,\n      lookbehind: true,\n      alias: 'function'\n    },\n    'definition-mutation': {\n      pattern: /(\\bmutation\\s+)[a-zA-Z_]\\w*/,\n      lookbehind: true,\n      alias: 'function'\n    },\n    'definition-query': {\n      pattern: /(\\bquery\\s+)[a-zA-Z_]\\w*/,\n      lookbehind: true,\n      alias: 'function'\n    },\n    keyword:\n      /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/,\n    operator: /[!=|&]|\\.{3}/,\n    'property-query': /\\w+(?=\\s*\\()/,\n    object: /\\w+(?=\\s*\\{)/,\n    punctuation: /[!(){}\\[\\]:=,]/,\n    property: /\\w+/\n  }\n  Prism.hooks.add('after-tokenize', function afterTokenizeGraphql(env) {\n    if (env.language !== 'graphql') {\n      return\n    }\n    /**\n     * get the graphql token stream that we want to customize\n     *\n     * @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n     * @type {Token[]}\n     */\n    var validTokens = env.tokens.filter(function (token) {\n      return (\n        typeof token !== 'string' &&\n        token.type !== 'comment' &&\n        token.type !== 'scalar'\n      )\n    })\n    var currentIndex = 0\n    /**\n     * Returns whether the token relative to the current index has the given type.\n     *\n     * @param {number} offset\n     * @returns {Token | undefined}\n     */\n    function getToken(offset) {\n      return validTokens[currentIndex + offset]\n    }\n    /**\n     * Returns whether the token relative to the current index has the given type.\n     *\n     * @param {readonly string[]} types\n     * @param {number} [offset=0]\n     * @returns {boolean}\n     */\n    function isTokenType(types, offset) {\n      offset = offset || 0\n      for (var i = 0; i < types.length; i++) {\n        var token = getToken(i + offset)\n        if (!token || token.type !== types[i]) {\n          return false\n        }\n      }\n      return true\n    }\n    /**\n     * Returns the index of the closing bracket to an opening bracket.\n     *\n     * It is assumed that `token[currentIndex - 1]` is an opening bracket.\n     *\n     * If no closing bracket could be found, `-1` will be returned.\n     *\n     * @param {RegExp} open\n     * @param {RegExp} close\n     * @returns {number}\n     */\n    function findClosingBracket(open, close) {\n      var stackHeight = 1\n      for (var i = currentIndex; i < validTokens.length; i++) {\n        var token = validTokens[i]\n        var content = token.content\n        if (token.type === 'punctuation' && typeof content === 'string') {\n          if (open.test(content)) {\n            stackHeight++\n          } else if (close.test(content)) {\n            stackHeight--\n            if (stackHeight === 0) {\n              return i\n            }\n          }\n        }\n      }\n      return -1\n    }\n    /**\n     * Adds an alias to the given token.\n     *\n     * @param {Token} token\n     * @param {string} alias\n     * @returns {void}\n     */\n    function addAlias(token, alias) {\n      var aliases = token.alias\n      if (!aliases) {\n        token.alias = aliases = []\n      } else if (!Array.isArray(aliases)) {\n        token.alias = aliases = [aliases]\n      }\n      aliases.push(alias)\n    }\n    for (; currentIndex < validTokens.length; ) {\n      var startToken = validTokens[currentIndex++] // add special aliases for mutation tokens\n      if (startToken.type === 'keyword' && startToken.content === 'mutation') {\n        // any array of the names of all input variables (if any)\n        var inputVariables = []\n        if (\n          isTokenType(['definition-mutation', 'punctuation']) &&\n          getToken(1).content === '('\n        ) {\n          // definition\n          currentIndex += 2 // skip 'definition-mutation' and 'punctuation'\n          var definitionEnd = findClosingBracket(/^\\($/, /^\\)$/)\n          if (definitionEnd === -1) {\n            continue\n          } // find all input variables\n          for (; currentIndex < definitionEnd; currentIndex++) {\n            var t = getToken(0)\n            if (t.type === 'variable') {\n              addAlias(t, 'variable-input')\n              inputVariables.push(t.content)\n            }\n          }\n          currentIndex = definitionEnd + 1\n        }\n        if (\n          isTokenType(['punctuation', 'property-query']) &&\n          getToken(0).content === '{'\n        ) {\n          currentIndex++ // skip opening bracket\n          addAlias(getToken(0), 'property-mutation')\n          if (inputVariables.length > 0) {\n            var mutationEnd = findClosingBracket(/^\\{$/, /^\\}$/)\n            if (mutationEnd === -1) {\n              continue\n            } // give references to input variables a special alias\n            for (var i = currentIndex; i < mutationEnd; i++) {\n              var varToken = validTokens[i]\n              if (\n                varToken.type === 'variable' &&\n                inputVariables.indexOf(varToken.content) >= 0\n              ) {\n                addAlias(varToken, 'variable-input')\n              }\n            }\n          }\n        }\n      }\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = groovy\ngroovy.displayName = 'groovy'\ngroovy.aliases = []\nfunction groovy(Prism) {\n  Prism.languages.groovy = Prism.languages.extend('clike', {\n    string: [\n      {\n        // https://groovy-lang.org/syntax.html#_dollar_slashy_string\n        pattern:\n          /(\"\"\"|''')(?:[^\\\\]|\\\\[\\s\\S])*?\\1|\\$\\/(?:[^/$]|\\$(?:[/$]|(?![/$]))|\\/(?!\\$))*\\/\\$/,\n        greedy: true\n      },\n      {\n        // TODO: Slash strings (e.g. /foo/) can contain line breaks but this will cause a lot of trouble with\n        // simple division (see JS regex), so find a fix maybe?\n        pattern: /([\"'/])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n        greedy: true\n      }\n    ],\n    keyword:\n      /\\b(?:abstract|as|assert|boolean|break|byte|case|catch|char|class|const|continue|def|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|in|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\\b/,\n    number:\n      /\\b(?:0b[01_]+|0x[\\da-f_]+(?:\\.[\\da-f_p\\-]+)?|[\\d_]+(?:\\.[\\d_]+)?(?:e[+-]?\\d+)?)[glidf]?\\b/i,\n    operator: {\n      pattern:\n        /(^|[^.])(?:~|==?~?|\\?[.:]?|\\*(?:[.=]|\\*=?)?|\\.[@&]|\\.\\.<|\\.\\.(?!\\.)|-[-=>]?|\\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\\|[|=]?|\\/=?|\\^=?|%=?)/,\n      lookbehind: true\n    },\n    punctuation: /\\.+|[{}[\\];(),:$]/\n  })\n  Prism.languages.insertBefore('groovy', 'string', {\n    shebang: {\n      pattern: /#!.+/,\n      alias: 'comment'\n    }\n  })\n  Prism.languages.insertBefore('groovy', 'punctuation', {\n    'spock-block': /\\b(?:and|cleanup|expect|given|setup|then|when|where):/\n  })\n  Prism.languages.insertBefore('groovy', 'function', {\n    annotation: {\n      pattern: /(^|[^.])@\\w+/,\n      lookbehind: true,\n      alias: 'punctuation'\n    }\n  }) // Handle string interpolation\n  Prism.hooks.add('wrap', function (env) {\n    if (env.language === 'groovy' && env.type === 'string') {\n      var delimiter = env.content.value[0]\n      if (delimiter != \"'\") {\n        var pattern = /([^\\\\])(?:\\$(?:\\{.*?\\}|[\\w.]+))/\n        if (delimiter === '$') {\n          pattern = /([^\\$])(?:\\$(?:\\{.*?\\}|[\\w.]+))/\n        } // To prevent double HTML-encoding we have to decode env.content first\n        env.content.value = env.content.value\n          .replace(/&lt;/g, '<')\n          .replace(/&amp;/g, '&')\n        env.content = Prism.highlight(env.content.value, {\n          expression: {\n            pattern: pattern,\n            lookbehind: true,\n            inside: Prism.languages.groovy\n          }\n        })\n        env.classes.push(delimiter === '/' ? 'regex' : 'gstring')\n      }\n    }\n  })\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nmodule.exports = haml\nhaml.displayName = 'haml'\nhaml.aliases = []\nfunction haml(Prism) {\n  Prism.register(refractorRuby)\n  /* TODO\nHandle multiline code after tag\n%foo= some |\nmultiline |\ncode |\n*/\n  ;(function (Prism) {\n    Prism.languages.haml = {\n      // Multiline stuff should appear before the rest\n      'multiline-comment': {\n        pattern:\n          /((?:^|\\r?\\n|\\r)([\\t ]*))(?:\\/|-#).*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)*/,\n        lookbehind: true,\n        alias: 'comment'\n      },\n      'multiline-code': [\n        {\n          pattern:\n            /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*,[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*,[\\t ]*)*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)/,\n          lookbehind: true,\n          inside: Prism.languages.ruby\n        },\n        {\n          pattern:\n            /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*\\|[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*\\|[\\t ]*)*/,\n          lookbehind: true,\n          inside: Prism.languages.ruby\n        }\n      ],\n      // See at the end of the file for known filters\n      filter: {\n        pattern:\n          /((?:^|\\r?\\n|\\r)([\\t ]*)):[\\w-]+(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/,\n        lookbehind: true,\n        inside: {\n          'filter-name': {\n            pattern: /^:[\\w-]+/,\n            alias: 'symbol'\n          }\n        }\n      },\n      markup: {\n        pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)<.+/,\n        lookbehind: true,\n        inside: Prism.languages.markup\n      },\n      doctype: {\n        pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)!!!(?: .+)?/,\n        lookbehind: true\n      },\n      tag: {\n        // Allows for one nested group of braces\n        pattern:\n          /((?:^|\\r?\\n|\\r)[\\t ]*)[%.#][\\w\\-#.]*[\\w\\-](?:\\([^)]+\\)|\\{(?:\\{[^}]+\\}|[^{}])+\\}|\\[[^\\]]+\\])*[\\/<>]*/,\n        lookbehind: true,\n        inside: {\n          attributes: [\n            {\n              // Lookbehind tries to prevent interpolations from breaking it all\n              // Allows for one nested group of braces\n              pattern: /(^|[^#])\\{(?:\\{[^}]+\\}|[^{}])+\\}/,\n              lookbehind: true,\n              inside: Prism.languages.ruby\n            },\n            {\n              pattern: /\\([^)]+\\)/,\n              inside: {\n                'attr-value': {\n                  pattern: /(=\\s*)(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|[^)\\s]+)/,\n                  lookbehind: true\n                },\n                'attr-name': /[\\w:-]+(?=\\s*!?=|\\s*[,)])/,\n                punctuation: /[=(),]/\n              }\n            },\n            {\n              pattern: /\\[[^\\]]+\\]/,\n              inside: Prism.languages.ruby\n            }\n          ],\n          punctuation: /[<>]/\n        }\n      },\n      code: {\n        pattern: /((?:^|\\r?\\n|\\r)[\\t ]*(?:[~-]|[&!]?=)).+/,\n        lookbehind: true,\n        inside: Prism.languages.ruby\n      },\n      // Interpolations in plain text\n      interpolation: {\n        pattern: /#\\{[^}]+\\}/,\n        inside: {\n          delimiter: {\n            pattern: /^#\\{|\\}$/,\n            alias: 'punctuation'\n          },\n          ruby: {\n            pattern: /[\\s\\S]+/,\n            inside: Prism.languages.ruby\n          }\n        }\n      },\n      punctuation: {\n        pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)[~=\\-&!]+/,\n        lookbehind: true\n      }\n    }\n    var filter_pattern =\n      '((?:^|\\\\r?\\\\n|\\\\r)([\\\\t ]*)):{{filter_name}}(?:(?:\\\\r?\\\\n|\\\\r)(?:\\\\2[\\\\t ].+|\\\\s*?(?=\\\\r?\\\\n|\\\\r)))+' // Non exhaustive list of available filters and associated languages\n    var filters = [\n      'css',\n      {\n        filter: 'coffee',\n        language: 'coffeescript'\n      },\n      'erb',\n      'javascript',\n      'less',\n      'markdown',\n      'ruby',\n      'scss',\n      'textile'\n    ]\n    var all_filters = {}\n    for (var i = 0, l = filters.length; i < l; i++) {\n      var filter = filters[i]\n      filter =\n        typeof filter === 'string'\n          ? {\n              filter: filter,\n              language: filter\n            }\n          : filter\n      if (Prism.languages[filter.language]) {\n        all_filters['filter-' + filter.filter] = {\n          pattern: RegExp(\n            filter_pattern.replace('{{filter_name}}', function () {\n              return filter.filter\n            })\n          ),\n          lookbehind: true,\n          inside: {\n            'filter-name': {\n              pattern: /^:[\\w-]+/,\n              alias: 'symbol'\n            },\n            text: {\n              pattern: /[\\s\\S]+/,\n              alias: [filter.language, 'language-' + filter.language],\n              inside: Prism.languages[filter.language]\n            }\n          }\n        }\n      }\n    }\n    Prism.languages.insertBefore('haml', 'filter', all_filters)\n  })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = handlebars\nhandlebars.displayName = 'handlebars'\nhandlebars.aliases = ['hbs']\nfunction handlebars(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    Prism.languages.handlebars = {\n      comment: /\\{\\{![\\s\\S]*?\\}\\}/,\n      delimiter: {\n        pattern: /^\\{\\{\\{?|\\}\\}\\}?$/,\n        alias: 'punctuation'\n      },\n      string: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,\n      boolean: /\\b(?:false|true)\\b/,\n      block: {\n        pattern: /^(\\s*(?:~\\s*)?)[#\\/]\\S+?(?=\\s*(?:~\\s*)?$|\\s)/,\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      brackets: {\n        pattern: /\\[[^\\]]+\\]/,\n        inside: {\n          punctuation: /\\[|\\]/,\n          variable: /[\\s\\S]+/\n        }\n      },\n      punctuation: /[!\"#%&':()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]/,\n      variable: /[^!\"#%&'()*+,\\/;<=>@\\[\\\\\\]^`{|}~\\s]+/\n    }\n    Prism.hooks.add('before-tokenize', function (env) {\n      var handlebarsPattern = /\\{\\{\\{[\\s\\S]+?\\}\\}\\}|\\{\\{[\\s\\S]+?\\}\\}/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'handlebars',\n        handlebarsPattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(\n        env,\n        'handlebars'\n      )\n    })\n    Prism.languages.hbs = Prism.languages.handlebars\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = haskell\nhaskell.displayName = 'haskell'\nhaskell.aliases = ['hs']\nfunction haskell(Prism) {\n  Prism.languages.haskell = {\n    comment: {\n      pattern:\n        /(^|[^-!#$%*+=?&@|~.:<>^\\\\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\\\\/].*|$)|\\{-[\\s\\S]*?-\\})/m,\n      lookbehind: true\n    },\n    char: {\n      pattern:\n        /'(?:[^\\\\']|\\\\(?:[abfnrtv\\\\\"'&]|\\^[A-Z@[\\]^_]|ACK|BEL|BS|CAN|CR|DC1|DC2|DC3|DC4|DEL|DLE|EM|ENQ|EOT|ESC|ETB|ETX|FF|FS|GS|HT|LF|NAK|NUL|RS|SI|SO|SOH|SP|STX|SUB|SYN|US|VT|\\d+|o[0-7]+|x[0-9a-fA-F]+))'/,\n      alias: 'string'\n    },\n    string: {\n      pattern: /\"(?:[^\\\\\"]|\\\\(?:\\S|\\s+\\\\))*\"/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b/,\n    'import-statement': {\n      // The imported or hidden names are not included in this import\n      // statement. This is because we want to highlight those exactly like\n      // we do for the names in the program.\n      pattern:\n        /(^[\\t ]*)import\\s+(?:qualified\\s+)?(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n      lookbehind: true,\n      inside: {\n        keyword: /\\b(?:as|hiding|import|qualified)\\b/,\n        punctuation: /\\./\n      }\n    },\n    // These are builtin variables only. Constructors are highlighted later as a constant.\n    builtin:\n      /\\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\b/,\n    // decimal integers and floating point numbers | octal integers | hexadecimal integers\n    number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0o[0-7]+|0x[0-9a-f]+)\\b/i,\n    operator: [\n      {\n        // infix operator\n        pattern: /`(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*`/,\n        greedy: true\n      },\n      {\n        // function composition\n        pattern: /(\\s)\\.(?=\\s)/,\n        lookbehind: true\n      }, // Most of this is needed because of the meaning of a single '.'.\n      // If it stands alone freely, it is the function composition.\n      // It may also be a separator between a module name and an identifier => no\n      // operator. If it comes together with other special characters it is an\n      // operator too.\n      //\n      // This regex means: /[-!#$%*+=?&@|~.:<>^\\\\\\/]+/ without /\\./.\n      /[-!#$%*+=?&@|~:<>^\\\\\\/][-!#$%*+=?&@|~.:<>^\\\\\\/]*|\\.[-!#$%*+=?&@|~.:<>^\\\\\\/]+/\n    ],\n    // In Haskell, nearly everything is a variable, do not highlight these.\n    hvariable: {\n      pattern: /\\b(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*/,\n      inside: {\n        punctuation: /\\./\n      }\n    },\n    constant: {\n      pattern: /\\b(?:[A-Z][\\w']*\\.)*[A-Z][\\w']*/,\n      inside: {\n        punctuation: /\\./\n      }\n    },\n    punctuation: /[{}[\\];(),.:]/\n  }\n  Prism.languages.hs = Prism.languages.haskell\n}\n","'use strict'\n\nmodule.exports = haxe\nhaxe.displayName = 'haxe'\nhaxe.aliases = []\nfunction haxe(Prism) {\n  Prism.languages.haxe = Prism.languages.extend('clike', {\n    string: {\n      // Strings can be multi-line\n      pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n      greedy: true\n    },\n    'class-name': [\n      {\n        pattern:\n          /(\\b(?:abstract|class|enum|extends|implements|interface|new|typedef)\\s+)[A-Z_]\\w*/,\n        lookbehind: true\n      }, // based on naming convention\n      /\\b[A-Z]\\w*/\n    ],\n    // The final look-ahead prevents highlighting of keywords if expressions such as \"haxe.macro.Expr\"\n    keyword:\n      /\\bthis\\b|\\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|final|for|from|function|if|implements|import|in|inline|interface|macro|new|null|operator|overload|override|package|private|public|return|static|super|switch|throw|to|try|typedef|untyped|using|var|while)(?!\\.)\\b/,\n    function: {\n      pattern: /\\b[a-z_]\\w*(?=\\s*(?:<[^<>]*>\\s*)?\\()/i,\n      greedy: true\n    },\n    operator: /\\.{3}|\\+\\+|--|&&|\\|\\||->|=>|(?:<<?|>{1,3}|[-+*/%!=&|^])=?|[?:~]/\n  })\n  Prism.languages.insertBefore('haxe', 'string', {\n    'string-interpolation': {\n      pattern: /'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /(^|[^\\\\])\\$(?:\\w+|\\{[^{}]+\\})/,\n          lookbehind: true,\n          inside: {\n            'interpolation-punctuation': {\n              pattern: /^\\$\\{?|\\}$/,\n              alias: 'punctuation'\n            },\n            expression: {\n              pattern: /[\\s\\S]+/,\n              inside: Prism.languages.haxe\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n  })\n  Prism.languages.insertBefore('haxe', 'class-name', {\n    regex: {\n      pattern: /~\\/(?:[^\\/\\\\\\r\\n]|\\\\.)+\\/[a-z]*/,\n      greedy: true,\n      inside: {\n        'regex-flags': /\\b[a-z]+$/,\n        'regex-source': {\n          pattern: /^(~\\/)[\\s\\S]+(?=\\/$)/,\n          lookbehind: true,\n          alias: 'language-regex',\n          inside: Prism.languages.regex\n        },\n        'regex-delimiter': /^~\\/|\\/$/\n      }\n    }\n  })\n  Prism.languages.insertBefore('haxe', 'keyword', {\n    preprocessor: {\n      pattern: /#(?:else|elseif|end|if)\\b.*/,\n      alias: 'property'\n    },\n    metadata: {\n      pattern: /@:?[\\w.]+/,\n      alias: 'symbol'\n    },\n    reification: {\n      pattern: /\\$(?:\\w+|(?=\\{))/,\n      alias: 'important'\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = hcl\nhcl.displayName = 'hcl'\nhcl.aliases = []\nfunction hcl(Prism) {\n  Prism.languages.hcl = {\n    comment: /(?:\\/\\/|#).*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n    heredoc: {\n      pattern: /<<-?(\\w+\\b)[\\s\\S]*?^[ \\t]*\\1/m,\n      greedy: true,\n      alias: 'string'\n    },\n    keyword: [\n      {\n        pattern:\n          /(?:data|resource)\\s+(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")(?=\\s+\"[\\w-]+\"\\s+\\{)/i,\n        inside: {\n          type: {\n            pattern: /(resource|data|\\s+)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")/i,\n            lookbehind: true,\n            alias: 'variable'\n          }\n        }\n      },\n      {\n        pattern:\n          /(?:backend|module|output|provider|provisioner|variable)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+(?=\\{)/i,\n        inside: {\n          type: {\n            pattern:\n              /(backend|module|output|provider|provisioner|variable)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+/i,\n            lookbehind: true,\n            alias: 'variable'\n          }\n        }\n      },\n      /[\\w-]+(?=\\s+\\{)/\n    ],\n    property: [/[-\\w\\.]+(?=\\s*=(?!=))/, /\"(?:\\\\[\\s\\S]|[^\\\\\"])+\"(?=\\s*[:=])/],\n    string: {\n      pattern:\n        /\"(?:[^\\\\$\"]|\\\\[\\s\\S]|\\$(?:(?=\")|\\$+(?!\\$)|[^\"${])|\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\})*\"/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /(^|[^$])\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\}/,\n          lookbehind: true,\n          inside: {\n            type: {\n              pattern:\n                /(\\b(?:count|data|local|module|path|self|terraform|var)\\b\\.)[\\w\\*]+/i,\n              lookbehind: true,\n              alias: 'variable'\n            },\n            keyword: /\\b(?:count|data|local|module|path|self|terraform|var)\\b/i,\n            function: /\\w+(?=\\()/,\n            string: {\n              pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n              greedy: true\n            },\n            number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n            punctuation: /[!\\$#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~?:]/\n          }\n        }\n      }\n    },\n    number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    punctuation: /[=\\[\\]{}]/\n  }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = hlsl\nhlsl.displayName = 'hlsl'\nhlsl.aliases = []\nfunction hlsl(Prism) {\n  Prism.register(refractorC)\n  Prism.languages.hlsl = Prism.languages.extend('c', {\n    // Regarding keywords and class names:\n    // The list of all keywords was split into 'keyword' and 'class-name' tokens based on whether they are capitalized.\n    // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-keywords\n    // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-reserved-words\n    'class-name': [\n      Prism.languages.c['class-name'],\n      /\\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|RasterizerState|RenderTargetView|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\\b/\n    ],\n    keyword: [\n      // HLSL keyword\n      /\\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\\b/, // scalar, vector, and matrix types\n      /\\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\\b/\n    ],\n    // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-grammar#floating-point-numbers\n    number:\n      /(?:(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?|\\b0x[\\da-fA-F]+)[fFhHlLuU]?\\b/,\n    boolean: /\\b(?:false|true)\\b/\n  })\n}\n","'use strict'\n\nmodule.exports = hoon\nhoon.displayName = 'hoon'\nhoon.aliases = []\nfunction hoon(Prism) {\n  Prism.languages.hoon = {\n    comment: {\n      pattern: /::.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"[^\"]*\"|'[^']*'/,\n      greedy: true\n    },\n    constant: /%(?:\\.[ny]|[\\w-]+)/,\n    'class-name': /@(?:[a-z0-9-]*[a-z0-9])?|\\*/i,\n    function: /(?:\\+[-+] {2})?(?:[a-z](?:[a-z0-9-]*[a-z0-9])?)/,\n    keyword:\n      /\\.[\\^\\+\\*=\\?]|![><:\\.=\\?!]|=[>|:,\\.\\-\\^<+;/~\\*\\?]|\\?[>|:\\.\\-\\^<\\+&~=@!]|\\|[\\$_%:\\.\\-\\^~\\*=@\\?]|\\+[|\\$\\+\\*]|:[_\\-\\^\\+~\\*]|%[_:\\.\\-\\^\\+~\\*=]|\\^[|:\\.\\-\\+&~\\*=\\?]|\\$[|_%:<>\\-\\^&~@=\\?]|;[:<\\+;\\/~\\*=]|~[>|\\$_%<\\+\\/&=\\?!]|--|==/\n  }\n}\n","'use strict'\n\nmodule.exports = hpkp\nhpkp.displayName = 'hpkp'\nhpkp.aliases = []\nfunction hpkp(Prism) {\n  /**\n   * Original by Scott Helme.\n   *\n   * Reference: https://scotthelme.co.uk/hpkp-cheat-sheet/\n   */\n  Prism.languages.hpkp = {\n    directive: {\n      pattern:\n        /\\b(?:includeSubDomains|max-age|pin-sha256|preload|report-to|report-uri|strict)(?=[\\s;=]|$)/i,\n      alias: 'property'\n    },\n    operator: /=/,\n    punctuation: /;/\n  }\n}\n","'use strict'\n\nmodule.exports = hsts\nhsts.displayName = 'hsts'\nhsts.aliases = []\nfunction hsts(Prism) {\n  /**\n   * Original by Scott Helme.\n   *\n   * Reference: https://scotthelme.co.uk/hsts-cheat-sheet/\n   */\n  Prism.languages.hsts = {\n    directive: {\n      pattern: /\\b(?:includeSubDomains|max-age|preload)(?=[\\s;=]|$)/i,\n      alias: 'property'\n    },\n    operator: /=/,\n    punctuation: /;/\n  }\n}\n","'use strict'\n\nmodule.exports = http\nhttp.displayName = 'http'\nhttp.aliases = []\nfunction http(Prism) {\n  ;(function (Prism) {\n    /**\n     * @param {string} name\n     * @returns {RegExp}\n     */\n    function headerValueOf(name) {\n      return RegExp('(^(?:' + name + '):[ \\t]*(?![ \\t]))[^]+', 'i')\n    }\n    Prism.languages.http = {\n      'request-line': {\n        pattern:\n          /^(?:CONNECT|DELETE|GET|HEAD|OPTIONS|PATCH|POST|PRI|PUT|SEARCH|TRACE)\\s(?:https?:\\/\\/|\\/)\\S*\\sHTTP\\/[\\d.]+/m,\n        inside: {\n          // HTTP Method\n          method: {\n            pattern: /^[A-Z]+\\b/,\n            alias: 'property'\n          },\n          // Request Target e.g. http://example.com, /path/to/file\n          'request-target': {\n            pattern: /^(\\s)(?:https?:\\/\\/|\\/)\\S*(?=\\s)/,\n            lookbehind: true,\n            alias: 'url',\n            inside: Prism.languages.uri\n          },\n          // HTTP Version\n          'http-version': {\n            pattern: /^(\\s)HTTP\\/[\\d.]+/,\n            lookbehind: true,\n            alias: 'property'\n          }\n        }\n      },\n      'response-status': {\n        pattern: /^HTTP\\/[\\d.]+ \\d+ .+/m,\n        inside: {\n          // HTTP Version\n          'http-version': {\n            pattern: /^HTTP\\/[\\d.]+/,\n            alias: 'property'\n          },\n          // Status Code\n          'status-code': {\n            pattern: /^(\\s)\\d+(?=\\s)/,\n            lookbehind: true,\n            alias: 'number'\n          },\n          // Reason Phrase\n          'reason-phrase': {\n            pattern: /^(\\s).+/,\n            lookbehind: true,\n            alias: 'string'\n          }\n        }\n      },\n      header: {\n        pattern: /^[\\w-]+:.+(?:(?:\\r\\n?|\\n)[ \\t].+)*/m,\n        inside: {\n          'header-value': [\n            {\n              pattern: headerValueOf(/Content-Security-Policy/.source),\n              lookbehind: true,\n              alias: ['csp', 'languages-csp'],\n              inside: Prism.languages.csp\n            },\n            {\n              pattern: headerValueOf(/Public-Key-Pins(?:-Report-Only)?/.source),\n              lookbehind: true,\n              alias: ['hpkp', 'languages-hpkp'],\n              inside: Prism.languages.hpkp\n            },\n            {\n              pattern: headerValueOf(/Strict-Transport-Security/.source),\n              lookbehind: true,\n              alias: ['hsts', 'languages-hsts'],\n              inside: Prism.languages.hsts\n            },\n            {\n              pattern: headerValueOf(/[^:]+/.source),\n              lookbehind: true\n            }\n          ],\n          'header-name': {\n            pattern: /^[^:]+/,\n            alias: 'keyword'\n          },\n          punctuation: /^:/\n        }\n      }\n    } // Create a mapping of Content-Type headers to language definitions\n    var langs = Prism.languages\n    var httpLanguages = {\n      'application/javascript': langs.javascript,\n      'application/json': langs.json || langs.javascript,\n      'application/xml': langs.xml,\n      'text/xml': langs.xml,\n      'text/html': langs.html,\n      'text/css': langs.css,\n      'text/plain': langs.plain\n    } // Declare which types can also be suffixes\n    var suffixTypes = {\n      'application/json': true,\n      'application/xml': true\n    }\n    /**\n     * Returns a pattern for the given content type which matches it and any type which has it as a suffix.\n     *\n     * @param {string} contentType\n     * @returns {string}\n     */\n    function getSuffixPattern(contentType) {\n      var suffix = contentType.replace(/^[a-z]+\\//, '')\n      var suffixPattern = '\\\\w+/(?:[\\\\w.-]+\\\\+)+' + suffix + '(?![+\\\\w.-])'\n      return '(?:' + contentType + '|' + suffixPattern + ')'\n    } // Insert each content type parser that has its associated language\n    // currently loaded.\n    var options\n    for (var contentType in httpLanguages) {\n      if (httpLanguages[contentType]) {\n        options = options || {}\n        var pattern = suffixTypes[contentType]\n          ? getSuffixPattern(contentType)\n          : contentType\n        options[contentType.replace(/\\//g, '-')] = {\n          pattern: RegExp(\n            '(' +\n              /content-type:\\s*/.source +\n              pattern +\n              /(?:(?:\\r\\n?|\\n)[\\w-].*)*(?:\\r(?:\\n|(?!\\n))|\\n)/.source +\n              ')' + // This is a little interesting:\n              // The HTTP format spec required 1 empty line before the body to make everything unambiguous.\n              // However, when writing code by hand (e.g. to display on a website) people can forget about this,\n              // so we want to be liberal here. We will allow the empty line to be omitted if the first line of\n              // the body does not start with a [\\w-] character (as headers do).\n              /[^ \\t\\w-][\\s\\S]*/.source,\n            'i'\n          ),\n          lookbehind: true,\n          inside: httpLanguages[contentType]\n        }\n      }\n    }\n    if (options) {\n      Prism.languages.insertBefore('http', 'header', options)\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = ichigojam\nichigojam.displayName = 'ichigojam'\nichigojam.aliases = []\nfunction ichigojam(Prism) {\n  // according to the offical reference (EN)\n  // https://ichigojam.net/IchigoJam-en.html\n  Prism.languages.ichigojam = {\n    comment: /(?:\\B'|REM)(?:[^\\n\\r]*)/i,\n    string: {\n      pattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^\\w +\\-.])*\"/,\n      greedy: true\n    },\n    number: /\\B#[0-9A-F]+|\\B`[01]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n    keyword:\n      /\\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GOTO|GSB|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RIGHT|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\\$|\\b)/i,\n    function:\n      /\\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\\$|\\b)/i,\n    label: /(?:\\B@\\S+)/,\n    operator: /<[=>]?|>=?|\\|\\||&&|[+\\-*\\/=|&^~!]|\\b(?:AND|NOT|OR)\\b/i,\n    punctuation: /[\\[,;:()\\]]/\n  }\n}\n","'use strict'\n\nmodule.exports = icon\nicon.displayName = 'icon'\nicon.aliases = []\nfunction icon(Prism) {\n  Prism.languages.icon = {\n    comment: /#.*/,\n    string: {\n      pattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n_]|\\\\.|_(?!\\1)(?:\\r\\n|[\\s\\S]))*\\1/,\n      greedy: true\n    },\n    number: /\\b(?:\\d+r[a-z\\d]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b|\\.\\d+\\b/i,\n    'builtin-keyword': {\n      pattern:\n        /&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\\b/,\n      alias: 'variable'\n    },\n    directive: {\n      pattern: /\\$\\w+/,\n      alias: 'builtin'\n    },\n    keyword:\n      /\\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\\b/,\n    function: /\\b(?!\\d)\\w+(?=\\s*[({]|\\s*!\\s*\\[)/,\n    operator:\n      /[+-]:(?!=)|(?:[\\/?@^%&]|\\+\\+?|--?|==?=?|~==?=?|\\*\\*?|\\|\\|\\|?|<(?:->?|<?=?)|>>?=?)(?::=)?|:(?:=:?)?|[!.\\\\|~]/,\n    punctuation: /[\\[\\](){},;]/\n  }\n}\n","'use strict'\n\nmodule.exports = icuMessageFormat\nicuMessageFormat.displayName = 'icuMessageFormat'\nicuMessageFormat.aliases = []\nfunction icuMessageFormat(Prism) {\n  // https://unicode-org.github.io/icu/userguide/format_parse/messages/\n  // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/MessageFormat.html\n  ;(function (Prism) {\n    /**\n     * @param {string} source\n     * @param {number} level\n     * @returns {string}\n     */\n    function nested(source, level) {\n      if (level <= 0) {\n        return /[]/.source\n      } else {\n        return source.replace(/<SELF>/g, function () {\n          return nested(source, level - 1)\n        })\n      }\n    }\n    var stringPattern = /'[{}:=,](?:[^']|'')*'(?!')/\n    var escape = {\n      pattern: /''/,\n      greedy: true,\n      alias: 'operator'\n    }\n    var string = {\n      pattern: stringPattern,\n      greedy: true,\n      inside: {\n        escape: escape\n      }\n    }\n    var argumentSource = nested(\n      /\\{(?:[^{}']|'(?![{},'])|''|<STR>|<SELF>)*\\}/.source.replace(\n        /<STR>/g,\n        function () {\n          return stringPattern.source\n        }\n      ),\n      8\n    )\n    var nestedMessage = {\n      pattern: RegExp(argumentSource),\n      inside: {\n        message: {\n          pattern: /^(\\{)[\\s\\S]+(?=\\}$)/,\n          lookbehind: true,\n          inside: null // see below\n        },\n        'message-delimiter': {\n          pattern: /./,\n          alias: 'punctuation'\n        }\n      }\n    }\n    Prism.languages['icu-message-format'] = {\n      argument: {\n        pattern: RegExp(argumentSource),\n        greedy: true,\n        inside: {\n          content: {\n            pattern: /^(\\{)[\\s\\S]+(?=\\}$)/,\n            lookbehind: true,\n            inside: {\n              'argument-name': {\n                pattern: /^(\\s*)[^{}:=,\\s]+/,\n                lookbehind: true\n              },\n              'choice-style': {\n                // https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classicu_1_1ChoiceFormat.html#details\n                pattern: /^(\\s*,\\s*choice\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n                lookbehind: true,\n                inside: {\n                  punctuation: /\\|/,\n                  range: {\n                    pattern: /^(\\s*)[+-]?(?:\\d+(?:\\.\\d*)?|\\u221e)\\s*[<#\\u2264]/,\n                    lookbehind: true,\n                    inside: {\n                      operator: /[<#\\u2264]/,\n                      number: /\\S+/\n                    }\n                  },\n                  rest: null // see below\n                }\n              },\n              'plural-style': {\n                // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/PluralFormat.html#:~:text=Patterns%20and%20Their%20Interpretation\n                pattern:\n                  /^(\\s*,\\s*(?:plural|selectordinal)\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n                lookbehind: true,\n                inside: {\n                  offset: /^offset:\\s*\\d+/,\n                  'nested-message': nestedMessage,\n                  selector: {\n                    pattern: /=\\d+|[^{}:=,\\s]+/,\n                    inside: {\n                      keyword: /^(?:few|many|one|other|two|zero)$/\n                    }\n                  }\n                }\n              },\n              'select-style': {\n                // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/SelectFormat.html#:~:text=Patterns%20and%20Their%20Interpretation\n                pattern: /^(\\s*,\\s*select\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n                lookbehind: true,\n                inside: {\n                  'nested-message': nestedMessage,\n                  selector: {\n                    pattern: /[^{}:=,\\s]+/,\n                    inside: {\n                      keyword: /^other$/\n                    }\n                  }\n                }\n              },\n              keyword: /\\b(?:choice|plural|select|selectordinal)\\b/,\n              'arg-type': {\n                pattern: /\\b(?:date|duration|number|ordinal|spellout|time)\\b/,\n                alias: 'keyword'\n              },\n              'arg-skeleton': {\n                pattern: /(,\\s*)::[^{}:=,\\s]+/,\n                lookbehind: true\n              },\n              'arg-style': {\n                pattern:\n                  /(,\\s*)(?:currency|full|integer|long|medium|percent|short)(?=\\s*$)/,\n                lookbehind: true\n              },\n              'arg-style-text': {\n                pattern: RegExp(\n                  /(^\\s*,\\s*(?=\\S))/.source +\n                    nested(/(?:[^{}']|'[^']*'|\\{(?:<SELF>)?\\})+/.source, 8) +\n                    '$'\n                ),\n                lookbehind: true,\n                alias: 'string'\n              },\n              punctuation: /,/\n            }\n          },\n          'argument-delimiter': {\n            pattern: /./,\n            alias: 'operator'\n          }\n        }\n      },\n      escape: escape,\n      string: string\n    }\n    nestedMessage.inside.message.inside = Prism.languages['icu-message-format']\n    Prism.languages['icu-message-format'].argument.inside.content.inside[\n      'choice-style'\n    ].inside.rest = Prism.languages['icu-message-format']\n  })(Prism)\n}\n","'use strict'\nvar refractorHaskell = require('./haskell.js')\nmodule.exports = idris\nidris.displayName = 'idris'\nidris.aliases = ['idr']\nfunction idris(Prism) {\n  Prism.register(refractorHaskell)\n  Prism.languages.idris = Prism.languages.extend('haskell', {\n    comment: {\n      pattern: /(?:(?:--|\\|\\|\\|).*$|\\{-[\\s\\S]*?-\\})/m\n    },\n    keyword:\n      /\\b(?:Type|case|class|codata|constructor|corecord|data|do|dsl|else|export|if|implementation|implicit|import|impossible|in|infix|infixl|infixr|instance|interface|let|module|mutual|namespace|of|parameters|partial|postulate|private|proof|public|quoteGoal|record|rewrite|syntax|then|total|using|where|with)\\b/,\n    builtin: undefined\n  })\n  Prism.languages.insertBefore('idris', 'keyword', {\n    'import-statement': {\n      pattern: /(^\\s*import\\s+)(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*/m,\n      lookbehind: true,\n      inside: {\n        punctuation: /\\./\n      }\n    }\n  })\n  Prism.languages.idr = Prism.languages.idris\n}\n","'use strict'\n\nmodule.exports = iecst\niecst.displayName = 'iecst'\niecst.aliases = []\nfunction iecst(Prism) {\n  Prism.languages.iecst = {\n    comment: [\n      {\n        pattern:\n          /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\(\\*[\\s\\S]*?(?:\\*\\)|$)|\\{[\\s\\S]*?(?:\\}|$))/,\n        lookbehind: true,\n        greedy: true\n      },\n      {\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    keyword: [\n      /\\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:ACCESS|CONFIG|EXTERNAL|GLOBAL|INPUT|IN_OUT|OUTPUT|TEMP)|VAR|METHOD|PROPERTY)\\b/i,\n      /\\b(?:AT|BY|(?:END_)?(?:CASE|FOR|IF|REPEAT|WHILE)|CONSTANT|CONTINUE|DO|ELSE|ELSIF|EXIT|EXTENDS|FROM|GET|GOTO|IMPLEMENTS|JMP|NON_RETAIN|OF|PRIVATE|PROTECTED|PUBLIC|RETAIN|RETURN|SET|TASK|THEN|TO|UNTIL|USING|WITH|__CATCH|__ENDTRY|__FINALLY|__TRY)\\b/\n    ],\n    'class-name':\n      /\\b(?:ANY|ARRAY|BOOL|BYTE|U?(?:D|L|S)?INT|(?:D|L)?WORD|DATE(?:_AND_TIME)?|DT|L?REAL|POINTER|STRING|TIME(?:_OF_DAY)?|TOD)\\b/,\n    address: {\n      pattern: /%[IQM][XBWDL][\\d.]*|%[IQ][\\d.]*/,\n      alias: 'symbol'\n    },\n    number:\n      /\\b(?:16#[\\da-f]+|2#[01_]+|0x[\\da-f]+)\\b|\\b(?:D|DT|T|TOD)#[\\d_shmd:]*|\\b[A-Z]*#[\\d.,_]*|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n    boolean: /\\b(?:FALSE|NULL|TRUE)\\b/,\n    operator:\n      /S?R?:?=>?|&&?|\\*\\*?|<[=>]?|>=?|[-:^/+#]|\\b(?:AND|EQ|EXPT|GE|GT|LE|LT|MOD|NE|NOT|OR|XOR)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    punctuation: /[()[\\].,;]/\n  }\n}\n","'use strict'\n\nmodule.exports = ignore\nignore.displayName = 'ignore'\nignore.aliases = ['gitignore', 'hgignore', 'npmignore']\nfunction ignore(Prism) {\n  ;(function (Prism) {\n    Prism.languages.ignore = {\n      // https://git-scm.com/docs/gitignore\n      comment: /^#.*/m,\n      entry: {\n        pattern: /\\S(?:.*(?:(?:\\\\ )|\\S))?/,\n        alias: 'string',\n        inside: {\n          operator: /^!|\\*\\*?|\\?/,\n          regex: {\n            pattern: /(^|[^\\\\])\\[[^\\[\\]]*\\]/,\n            lookbehind: true\n          },\n          punctuation: /\\//\n        }\n      }\n    }\n    Prism.languages.gitignore = Prism.languages.ignore\n    Prism.languages.hgignore = Prism.languages.ignore\n    Prism.languages.npmignore = Prism.languages.ignore\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = inform7\ninform7.displayName = 'inform7'\ninform7.aliases = []\nfunction inform7(Prism) {\n  Prism.languages.inform7 = {\n    string: {\n      pattern: /\"[^\"]*\"/,\n      inside: {\n        substitution: {\n          pattern: /\\[[^\\[\\]]+\\]/,\n          inside: {\n            delimiter: {\n              pattern: /\\[|\\]/,\n              alias: 'punctuation'\n            } // See rest below\n          }\n        }\n      }\n    },\n    comment: {\n      pattern: /\\[[^\\[\\]]+\\]/,\n      greedy: true\n    },\n    title: {\n      pattern: /^[ \\t]*(?:book|chapter|part(?! of)|section|table|volume)\\b.+/im,\n      alias: 'important'\n    },\n    number: {\n      pattern:\n        /(^|[^-])(?:\\b\\d+(?:\\.\\d+)?(?:\\^\\d+)?(?:(?!\\d)\\w+)?|\\b(?:eight|eleven|five|four|nine|one|seven|six|ten|three|twelve|two))\\b(?!-)/i,\n      lookbehind: true\n    },\n    verb: {\n      pattern:\n        /(^|[^-])\\b(?:answering|applying to|are|asking|attacking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:ing|s)?|consulting|contain(?:ing|s)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:s|ve|ving)|hold(?:ing|s)?|impl(?:ies|y)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:ing|s)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:ing|s)?|setting|showing|singing|sleeping|smelling|squeezing|support(?:ing|s)?|swearing|switching|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:ing|s)?|var(?:ies|y|ying)|waiting|waking|waving|wear(?:ing|s)?)\\b(?!-)/i,\n      lookbehind: true,\n      alias: 'operator'\n    },\n    keyword: {\n      pattern:\n        /(^|[^-])\\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|the story|unless)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\\b(?!-)/i,\n      lookbehind: true\n    },\n    property: {\n      pattern:\n        /(^|[^-])\\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: off| on)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\\b(?!-)/i,\n      lookbehind: true,\n      alias: 'symbol'\n    },\n    position: {\n      pattern:\n        /(^|[^-])\\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\\b(?!-)/i,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    type: {\n      pattern:\n        /(^|[^-])\\b(?:actions?|activit(?:ies|y)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\\b(?!-)/i,\n      lookbehind: true,\n      alias: 'variable'\n    },\n    punctuation: /[.,:;(){}]/\n  }\n  Prism.languages.inform7['string'].inside['substitution'].inside.rest =\n    Prism.languages.inform7 // We don't want the remaining text in the substitution to be highlighted as the string.\n  Prism.languages.inform7['string'].inside['substitution'].inside.rest.text = {\n    pattern: /\\S(?:\\s*\\S)*/,\n    alias: 'comment'\n  }\n}\n","'use strict'\n\nmodule.exports = ini\nini.displayName = 'ini'\nini.aliases = []\nfunction ini(Prism) {\n  Prism.languages.ini = {\n    /**\n     * The component mimics the behavior of the Win32 API parser.\n     *\n     * @see {@link https://github.com/PrismJS/prism/issues/2775#issuecomment-787477723}\n     */\n    comment: {\n      pattern: /(^[ \\f\\t\\v]*)[#;][^\\n\\r]*/m,\n      lookbehind: true\n    },\n    section: {\n      pattern: /(^[ \\f\\t\\v]*)\\[[^\\n\\r\\]]*\\]?/m,\n      lookbehind: true,\n      inside: {\n        'section-name': {\n          pattern: /(^\\[[ \\f\\t\\v]*)[^ \\f\\t\\v\\]]+(?:[ \\f\\t\\v]+[^ \\f\\t\\v\\]]+)*/,\n          lookbehind: true,\n          alias: 'selector'\n        },\n        punctuation: /\\[|\\]/\n      }\n    },\n    key: {\n      pattern:\n        /(^[ \\f\\t\\v]*)[^ \\f\\n\\r\\t\\v=]+(?:[ \\f\\t\\v]+[^ \\f\\n\\r\\t\\v=]+)*(?=[ \\f\\t\\v]*=)/m,\n      lookbehind: true,\n      alias: 'attr-name'\n    },\n    value: {\n      pattern: /(=[ \\f\\t\\v]*)[^ \\f\\n\\r\\t\\v]+(?:[ \\f\\t\\v]+[^ \\f\\n\\r\\t\\v]+)*/,\n      lookbehind: true,\n      alias: 'attr-value',\n      inside: {\n        'inner-value': {\n          pattern: /^(\"|').+(?=\\1$)/,\n          lookbehind: true\n        }\n      }\n    },\n    punctuation: /=/\n  }\n}\n","'use strict'\n\nmodule.exports = io\nio.displayName = 'io'\nio.aliases = []\nfunction io(Prism) {\n  Prism.languages.io = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\/\\/.*|#.*)/,\n      lookbehind: true,\n      greedy: true\n    },\n    'triple-quoted-string': {\n      pattern: /\"\"\"(?:\\\\[\\s\\S]|(?!\"\"\")[^\\\\])*\"\"\"/,\n      greedy: true,\n      alias: 'string'\n    },\n    string: {\n      pattern: /\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:activate|activeCoroCount|asString|block|break|call|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getEnvironmentVariable|getSlot|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|try|type|uniqueId|updateSlot|wait|while|write|yield)\\b/,\n    builtin:\n      /\\b(?:Array|AudioDevice|AudioMixer|BigNum|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Random|Regex|SGML|SGMLElement|SGMLParser|SQLite|Sequence|Server|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink)\\b/,\n    boolean: /\\b(?:false|nil|true)\\b/,\n    number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?/i,\n    operator:\n      /[=!*/%+\\-^&|]=|>>?=?|<<?=?|:?:?=|\\+\\+?|--?|\\*\\*?|\\/\\/?|%|\\|\\|?|&&?|\\b(?:and|not|or|return)\\b|@@?|\\?\\??|\\.\\./,\n    punctuation: /[{}[\\];(),.:]/\n  }\n}\n","'use strict'\n\nmodule.exports = j\nj.displayName = 'j'\nj.aliases = []\nfunction j(Prism) {\n  Prism.languages.j = {\n    comment: {\n      pattern: /\\bNB\\..*/,\n      greedy: true\n    },\n    string: {\n      pattern: /'(?:''|[^'\\r\\n])*'/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:(?:CR|LF|adverb|conjunction|def|define|dyad|monad|noun|verb)\\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\\w+|goto_\\w+|if|label_\\w+|return|select|throw|try|while|whilst)\\.)/,\n    verb: {\n      // Negative look-ahead prevents bad highlighting\n      // of ^: ;. =. =: !. !:\n      pattern:\n        /(?!\\^:|;\\.|[=!][.:])(?:\\{(?:\\.|::?)?|p(?:\\.\\.?|:)|[=!\\]]|[<>+*\\-%$|,#][.:]?|[?^]\\.?|[;\\[]:?|[~}\"i][.:]|[ACeEIjLor]\\.|(?:[_\\/\\\\qsux]|_?\\d):)/,\n      alias: 'keyword'\n    },\n    number:\n      /\\b_?(?:(?!\\d:)\\d+(?:\\.\\d+)?(?:(?:ad|ar|[ejpx])_?\\d+(?:\\.\\d+)?)*(?:b_?[\\da-z]+(?:\\.[\\da-z]+)?)?|_\\b(?!\\.))/,\n    adverb: {\n      pattern: /[~}]|[\\/\\\\]\\.?|[bfM]\\.|t[.:]/,\n      alias: 'builtin'\n    },\n    operator: /[=a][.:]|_\\./,\n    conjunction: {\n      pattern: /&(?:\\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\\.|`:?|[\\^LS]:|\"/,\n      alias: 'variable'\n    },\n    punctuation: /[()]/\n  }\n}\n","'use strict'\n\nmodule.exports = java\njava.displayName = 'java'\njava.aliases = []\nfunction java(Prism) {\n  ;(function (Prism) {\n    var keywords =\n      /\\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\\b/ // full package (optional) + parent classes (optional)\n    var classNamePrefix = /(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/\n      .source // based on the java naming conventions\n    var className = {\n      pattern: RegExp(classNamePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n      lookbehind: true,\n      inside: {\n        namespace: {\n          pattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n          inside: {\n            punctuation: /\\./\n          }\n        },\n        punctuation: /\\./\n      }\n    }\n    Prism.languages.java = Prism.languages.extend('clike', {\n      string: {\n        pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n        lookbehind: true,\n        greedy: true\n      },\n      'class-name': [\n        className,\n        {\n          // variables and parameters\n          // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n          pattern: RegExp(\n            classNamePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()])/.source\n          ),\n          lookbehind: true,\n          inside: className.inside\n        }\n      ],\n      keyword: keywords,\n      function: [\n        Prism.languages.clike.function,\n        {\n          pattern: /(::\\s*)[a-z_]\\w*/,\n          lookbehind: true\n        }\n      ],\n      number:\n        /\\b0b[01][01_]*L?\\b|\\b0x(?:\\.[\\da-f_p+-]+|[\\da-f_]+(?:\\.[\\da-f_p+-]+)?)\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfl]?/i,\n      operator: {\n        pattern:\n          /(^|[^.])(?:<<=?|>>>?=?|->|--|\\+\\+|&&|\\|\\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,\n        lookbehind: true\n      }\n    })\n    Prism.languages.insertBefore('java', 'string', {\n      'triple-quoted-string': {\n        // http://openjdk.java.net/jeps/355#Description\n        pattern: /\"\"\"[ \\t]*[\\r\\n](?:(?:\"|\"\")?(?:\\\\.|[^\"\\\\]))*\"\"\"/,\n        greedy: true,\n        alias: 'string'\n      },\n      char: {\n        pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){1,6}'/,\n        greedy: true\n      }\n    })\n    Prism.languages.insertBefore('java', 'class-name', {\n      annotation: {\n        pattern: /(^|[^.])@\\w+(?:\\s*\\.\\s*\\w+)*/,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      generics: {\n        pattern:\n          /<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&))*>)*>)*>)*>/,\n        inside: {\n          'class-name': className,\n          keyword: keywords,\n          punctuation: /[<>(),.:]/,\n          operator: /[?&|]/\n        }\n      },\n      namespace: {\n        pattern: RegExp(\n          /(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?/.source.replace(\n            /<keyword>/g,\n            function () {\n              return keywords.source\n            }\n          )\n        ),\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      }\n    })\n  })(Prism)\n}\n","'use strict'\nvar refractorJava = require('./java.js')\nvar refractorJavadoclike = require('./javadoclike.js')\nmodule.exports = javadoc\njavadoc.displayName = 'javadoc'\njavadoc.aliases = []\nfunction javadoc(Prism) {\n  Prism.register(refractorJava)\n  Prism.register(refractorJavadoclike)\n  ;(function (Prism) {\n    var codeLinePattern = /(^(?:[\\t ]*(?:\\*\\s*)*))[^*\\s].*$/m\n    var memberReference = /#\\s*\\w+(?:\\s*\\([^()]*\\))?/.source\n    var reference =\n      /(?:\\b[a-zA-Z]\\w+\\s*\\.\\s*)*\\b[A-Z]\\w*(?:\\s*<mem>)?|<mem>/.source.replace(\n        /<mem>/g,\n        function () {\n          return memberReference\n        }\n      )\n    Prism.languages.javadoc = Prism.languages.extend('javadoclike', {})\n    Prism.languages.insertBefore('javadoc', 'keyword', {\n      reference: {\n        pattern: RegExp(\n          /(@(?:exception|link|linkplain|see|throws|value)\\s+(?:\\*\\s*)?)/\n            .source +\n            '(?:' +\n            reference +\n            ')'\n        ),\n        lookbehind: true,\n        inside: {\n          function: {\n            pattern: /(#\\s*)\\w+(?=\\s*\\()/,\n            lookbehind: true\n          },\n          field: {\n            pattern: /(#\\s*)\\w+/,\n            lookbehind: true\n          },\n          namespace: {\n            pattern: /\\b(?:[a-z]\\w*\\s*\\.\\s*)+/,\n            inside: {\n              punctuation: /\\./\n            }\n          },\n          'class-name': /\\b[A-Z]\\w*/,\n          keyword: Prism.languages.java.keyword,\n          punctuation: /[#()[\\],.]/\n        }\n      },\n      'class-name': {\n        // @param <T> the first generic type parameter\n        pattern: /(@param\\s+)<[A-Z]\\w*>/,\n        lookbehind: true,\n        inside: {\n          punctuation: /[.<>]/\n        }\n      },\n      'code-section': [\n        {\n          pattern:\n            /(\\{@code\\s+(?!\\s))(?:[^\\s{}]|\\s+(?![\\s}])|\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\})+(?=\\s*\\})/,\n          lookbehind: true,\n          inside: {\n            code: {\n              // there can't be any HTML inside of {@code} tags\n              pattern: codeLinePattern,\n              lookbehind: true,\n              inside: Prism.languages.java,\n              alias: 'language-java'\n            }\n          }\n        },\n        {\n          pattern:\n            /(<(code|pre|tt)>(?!<code>)\\s*)\\S(?:\\S|\\s+\\S)*?(?=\\s*<\\/\\2>)/,\n          lookbehind: true,\n          inside: {\n            line: {\n              pattern: codeLinePattern,\n              lookbehind: true,\n              inside: {\n                // highlight HTML tags and entities\n                tag: Prism.languages.markup.tag,\n                entity: Prism.languages.markup.entity,\n                code: {\n                  // everything else is Java code\n                  pattern: /.+/,\n                  inside: Prism.languages.java,\n                  alias: 'language-java'\n                }\n              }\n            }\n          }\n        }\n      ],\n      tag: Prism.languages.markup.tag,\n      entity: Prism.languages.markup.entity\n    })\n    Prism.languages.javadoclike.addSupport('java', Prism.languages.javadoc)\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = javadoclike\njavadoclike.displayName = 'javadoclike'\njavadoclike.aliases = []\nfunction javadoclike(Prism) {\n  ;(function (Prism) {\n    var javaDocLike = (Prism.languages.javadoclike = {\n      parameter: {\n        pattern:\n          /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*@(?:arg|arguments|param)\\s+)\\w+/m,\n        lookbehind: true\n      },\n      keyword: {\n        // keywords are the first word in a line preceded be an `@` or surrounded by curly braces.\n        // @word, {@word}\n        pattern: /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*|\\{)@[a-z][a-zA-Z-]+\\b/m,\n        lookbehind: true\n      },\n      punctuation: /[{}]/\n    })\n    /**\n     * Adds doc comment support to the given language and calls a given callback on each doc comment pattern.\n     *\n     * @param {string} lang the language add doc comment support to.\n     * @param {(pattern: {inside: {rest: undefined}}) => void} callback the function called with each doc comment pattern as argument.\n     */\n    function docCommentSupport(lang, callback) {\n      var tokenName = 'doc-comment'\n      var grammar = Prism.languages[lang]\n      if (!grammar) {\n        return\n      }\n      var token = grammar[tokenName]\n      if (!token) {\n        // add doc comment: /** */\n        var definition = {}\n        definition[tokenName] = {\n          pattern: /(^|[^\\\\])\\/\\*\\*[^/][\\s\\S]*?(?:\\*\\/|$)/,\n          lookbehind: true,\n          alias: 'comment'\n        }\n        grammar = Prism.languages.insertBefore(lang, 'comment', definition)\n        token = grammar[tokenName]\n      }\n      if (token instanceof RegExp) {\n        // convert regex to object\n        token = grammar[tokenName] = {\n          pattern: token\n        }\n      }\n      if (Array.isArray(token)) {\n        for (var i = 0, l = token.length; i < l; i++) {\n          if (token[i] instanceof RegExp) {\n            token[i] = {\n              pattern: token[i]\n            }\n          }\n          callback(token[i])\n        }\n      } else {\n        callback(token)\n      }\n    }\n    /**\n     * Adds doc-comment support to the given languages for the given documentation language.\n     *\n     * @param {string[]|string} languages\n     * @param {Object} docLanguage\n     */\n    function addSupport(languages, docLanguage) {\n      if (typeof languages === 'string') {\n        languages = [languages]\n      }\n      languages.forEach(function (lang) {\n        docCommentSupport(lang, function (pattern) {\n          if (!pattern.inside) {\n            pattern.inside = {}\n          }\n          pattern.inside.rest = docLanguage\n        })\n      })\n    }\n    Object.defineProperty(javaDocLike, 'addSupport', {\n      value: addSupport\n    })\n    javaDocLike.addSupport(['java', 'javascript', 'php'], javaDocLike)\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = javascript\njavascript.displayName = 'javascript'\njavascript.aliases = ['js']\nfunction javascript(Prism) {\n  Prism.languages.javascript = Prism.languages.extend('clike', {\n    'class-name': [\n      Prism.languages.clike['class-name'],\n      {\n        pattern:\n          /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n        lookbehind: true\n      }\n    ],\n    keyword: [\n      {\n        pattern: /((?:^|\\})\\s*)catch\\b/,\n        lookbehind: true\n      },\n      {\n        pattern:\n          /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n        lookbehind: true\n      }\n    ],\n    // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n    function:\n      /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n    number: {\n      pattern: RegExp(\n        /(^|[^\\w$])/.source +\n          '(?:' + // constant\n          (/NaN|Infinity/.source +\n            '|' + // binary integer\n            /0[bB][01]+(?:_[01]+)*n?/.source +\n            '|' + // octal integer\n            /0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n            '|' + // hexadecimal integer\n            /0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n            '|' + // decimal bigint\n            /\\d+(?:_\\d+)*n/.source +\n            '|' + // decimal number (integer or float) but no bigint\n            /(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/\n              .source) +\n          ')' +\n          /(?![\\w$])/.source\n      ),\n      lookbehind: true\n    },\n    operator:\n      /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n  })\n  Prism.languages.javascript['class-name'][0].pattern =\n    /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/\n  Prism.languages.insertBefore('javascript', 'keyword', {\n    regex: {\n      // eslint-disable-next-line regexp/no-dupe-characters-character-class\n      pattern:\n        /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        'regex-source': {\n          pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n          lookbehind: true,\n          alias: 'language-regex',\n          inside: Prism.languages.regex\n        },\n        'regex-delimiter': /^\\/|\\/$/,\n        'regex-flags': /^[a-z]+$/\n      }\n    },\n    // This must be declared before keyword because we use \"function\" inside the look-forward\n    'function-variable': {\n      pattern:\n        /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n      alias: 'function'\n    },\n    parameter: [\n      {\n        pattern:\n          /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      {\n        pattern:\n          /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      {\n        pattern:\n          /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      {\n        pattern:\n          /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      }\n    ],\n    constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n  })\n  Prism.languages.insertBefore('javascript', 'string', {\n    hashbang: {\n      pattern: /^#!.*/,\n      greedy: true,\n      alias: 'comment'\n    },\n    'template-string': {\n      pattern:\n        /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n      greedy: true,\n      inside: {\n        'template-punctuation': {\n          pattern: /^`|`$/,\n          alias: 'string'\n        },\n        interpolation: {\n          pattern:\n            /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n          lookbehind: true,\n          inside: {\n            'interpolation-punctuation': {\n              pattern: /^\\$\\{|\\}$/,\n              alias: 'punctuation'\n            },\n            rest: Prism.languages.javascript\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    },\n    'string-property': {\n      pattern:\n        /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property'\n    }\n  })\n  Prism.languages.insertBefore('javascript', 'operator', {\n    'literal-property': {\n      pattern:\n        /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n      lookbehind: true,\n      alias: 'property'\n    }\n  })\n  if (Prism.languages.markup) {\n    Prism.languages.markup.tag.addInlined('script', 'javascript') // add attribute support for all DOM events.\n    // https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n    Prism.languages.markup.tag.addAttribute(\n      /on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/\n        .source,\n      'javascript'\n    )\n  }\n  Prism.languages.js = Prism.languages.javascript\n}\n","'use strict'\n\nmodule.exports = javastacktrace\njavastacktrace.displayName = 'javastacktrace'\njavastacktrace.aliases = []\nfunction javastacktrace(Prism) {\n  // Specification:\n  // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/Throwable.html#printStackTrace()\n  Prism.languages.javastacktrace = {\n    // java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n    // Caused by: java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n    // Caused by: com.example.myproject.MyProjectServletException\n    // Caused by: MidLevelException: LowLevelException\n    // Suppressed: Resource$CloseFailException: Resource ID = 0\n    summary: {\n      pattern:\n        /^([\\t ]*)(?:(?:Caused by:|Suppressed:|Exception in thread \"[^\"]*\")[\\t ]+)?[\\w$.]+(?::.*)?$/m,\n      lookbehind: true,\n      inside: {\n        keyword: {\n          pattern:\n            /^([\\t ]*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,\n          lookbehind: true\n        },\n        // the current thread if the summary starts with 'Exception in thread'\n        string: {\n          pattern: /^(\\s*)\"[^\"]*\"/,\n          lookbehind: true\n        },\n        exceptions: {\n          pattern: /^(:?\\s*)[\\w$.]+(?=:|$)/,\n          lookbehind: true,\n          inside: {\n            'class-name': /[\\w$]+$/,\n            namespace: /\\b[a-z]\\w*\\b/,\n            punctuation: /\\./\n          }\n        },\n        message: {\n          pattern: /(:\\s*)\\S.*/,\n          lookbehind: true,\n          alias: 'string'\n        },\n        punctuation: /:/\n      }\n    },\n    // at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)\n    // at org.hsqldb.jdbc.Util.throwError(Unknown Source) here could be some notes\n    // at java.base/java.lang.Class.forName0(Native Method)\n    // at Util.<init>(Unknown Source)\n    // at com.foo.loader/foo@9.0/com.foo.Main.run(Main.java:101)\n    // at com.foo.loader//com.foo.bar.App.run(App.java:12)\n    // at acme@2.1/org.acme.Lib.test(Lib.java:80)\n    // at MyClass.mash(MyClass.java:9)\n    //\n    // More information:\n    // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/StackTraceElement.html#toString()\n    //\n    // A valid Java module name is defined as:\n    //   \"A module name consists of one or more Java identifiers (§3.8) separated by \".\" tokens.\"\n    // https://docs.oracle.com/javase/specs/jls/se9/html/jls-6.html#jls-ModuleName\n    //\n    // A Java module version is defined by this class:\n    // https://docs.oracle.com/javase/9/docs/api/java/lang/module/ModuleDescriptor.Version.html\n    // This is the implementation of the `parse` method in JDK13:\n    // https://github.com/matcdac/jdk/blob/2305df71d1b7710266ae0956d73927a225132c0f/src/java.base/share/classes/java/lang/module/ModuleDescriptor.java#L1108\n    // However, to keep this simple, a version will be matched by the pattern /@[\\w$.+-]*/.\n    'stack-frame': {\n      pattern: /^([\\t ]*)at (?:[\\w$./]|@[\\w$.+-]*\\/)+(?:<init>)?\\([^()]*\\)/m,\n      lookbehind: true,\n      inside: {\n        keyword: {\n          pattern: /^(\\s*)at(?= )/,\n          lookbehind: true\n        },\n        source: [\n          // (Main.java:15)\n          // (Main.scala:15)\n          {\n            pattern: /(\\()\\w+\\.\\w+:\\d+(?=\\))/,\n            lookbehind: true,\n            inside: {\n              file: /^\\w+\\.\\w+/,\n              punctuation: /:/,\n              'line-number': {\n                pattern: /\\b\\d+\\b/,\n                alias: 'number'\n              }\n            }\n          }, // (Unknown Source)\n          // (Native Method)\n          // (...something...)\n          {\n            pattern: /(\\()[^()]*(?=\\))/,\n            lookbehind: true,\n            inside: {\n              keyword: /^(?:Native Method|Unknown Source)$/\n            }\n          }\n        ],\n        'class-name': /[\\w$]+(?=\\.(?:<init>|[\\w$]+)\\()/,\n        function: /(?:<init>|[\\w$]+)(?=\\()/,\n        'class-loader': {\n          pattern: /(\\s)[a-z]\\w*(?:\\.[a-z]\\w*)*(?=\\/[\\w@$.]*\\/)/,\n          lookbehind: true,\n          alias: 'namespace',\n          inside: {\n            punctuation: /\\./\n          }\n        },\n        module: {\n          pattern: /([\\s/])[a-z]\\w*(?:\\.[a-z]\\w*)*(?:@[\\w$.+-]*)?(?=\\/)/,\n          lookbehind: true,\n          inside: {\n            version: {\n              pattern: /(@)[\\s\\S]+/,\n              lookbehind: true,\n              alias: 'number'\n            },\n            punctuation: /[@.]/\n          }\n        },\n        namespace: {\n          pattern: /(?:\\b[a-z]\\w*\\.)+/,\n          inside: {\n            punctuation: /\\./\n          }\n        },\n        punctuation: /[()/.]/\n      }\n    },\n    // ... 32 more\n    // ... 32 common frames omitted\n    more: {\n      pattern: /^([\\t ]*)\\.{3} \\d+ [a-z]+(?: [a-z]+)*/m,\n      lookbehind: true,\n      inside: {\n        punctuation: /\\.{3}/,\n        number: /\\d+/,\n        keyword: /\\b[a-z]+(?: [a-z]+)*\\b/\n      }\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = jexl\njexl.displayName = 'jexl'\njexl.aliases = []\nfunction jexl(Prism) {\n  Prism.languages.jexl = {\n    string: /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n    transform: {\n      pattern:\n        /(\\|\\s*)[a-zA-Zа-яА-Я_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$][\\wа-яА-Я\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$]*/,\n      alias: 'function',\n      lookbehind: true\n    },\n    function:\n      /[a-zA-Zа-яА-Я_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$][\\wа-яА-Я\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$]*\\s*(?=\\()/,\n    number: /\\b\\d+(?:\\.\\d+)?\\b|\\B\\.\\d+\\b/,\n    operator: /[<>!]=?|-|\\+|&&|==|\\|\\|?|\\/\\/?|[?:*^%]/,\n    boolean: /\\b(?:false|true)\\b/,\n    keyword: /\\bin\\b/,\n    punctuation: /[{}[\\](),.]/\n  }\n}\n","'use strict'\n\nmodule.exports = jolie\njolie.displayName = 'jolie'\njolie.aliases = []\nfunction jolie(Prism) {\n  Prism.languages.jolie = Prism.languages.extend('clike', {\n    string: {\n      pattern: /(^|[^\\\\])\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,\n      lookbehind: true,\n      greedy: true\n    },\n    'class-name': {\n      pattern:\n        /((?:\\b(?:as|courier|embed|in|inputPort|outputPort|service)\\b|@)[ \\t]*)\\w+/,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:as|cH|comp|concurrent|constants|courier|cset|csets|default|define|else|embed|embedded|execution|exit|extender|for|foreach|forward|from|global|if|import|in|include|init|inputPort|install|instanceof|interface|is_defined|linkIn|linkOut|main|new|nullProcess|outputPort|over|private|provide|public|scope|sequential|service|single|spawn|synchronized|this|throw|throws|type|undef|until|while|with)\\b/,\n    function: /\\b[a-z_]\\w*(?=[ \\t]*[@(])/i,\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?l?/i,\n    operator: /-[-=>]?|\\+[+=]?|<[<=]?|[>=*!]=?|&&|\\|\\||[?\\/%^@|]/,\n    punctuation: /[()[\\]{},;.:]/,\n    builtin:\n      /\\b(?:Byte|any|bool|char|double|enum|float|int|length|long|ranges|regex|string|undefined|void)\\b/\n  })\n  Prism.languages.insertBefore('jolie', 'keyword', {\n    aggregates: {\n      pattern:\n        /(\\bAggregates\\s*:\\s*)(?:\\w+(?:\\s+with\\s+\\w+)?\\s*,\\s*)*\\w+(?:\\s+with\\s+\\w+)?/,\n      lookbehind: true,\n      inside: {\n        keyword: /\\bwith\\b/,\n        'class-name': /\\w+/,\n        punctuation: /,/\n      }\n    },\n    redirects: {\n      pattern:\n        /(\\bRedirects\\s*:\\s*)(?:\\w+\\s*=>\\s*\\w+\\s*,\\s*)*(?:\\w+\\s*=>\\s*\\w+)/,\n      lookbehind: true,\n      inside: {\n        punctuation: /,/,\n        'class-name': /\\w+/,\n        operator: /=>/\n      }\n    },\n    property: {\n      pattern:\n        /\\b(?:Aggregates|[Ii]nterfaces|Java|Javascript|Jolie|[Ll]ocation|OneWay|[Pp]rotocol|Redirects|RequestResponse)\\b(?=[ \\t]*:)/\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = jq\njq.displayName = 'jq'\njq.aliases = []\nfunction jq(Prism) {\n  ;(function (Prism) {\n    var interpolation = /\\\\\\((?:[^()]|\\([^()]*\\))*\\)/.source\n    var string = RegExp(\n      /(^|[^\\\\])\"(?:[^\"\\r\\n\\\\]|\\\\[^\\r\\n(]|__)*\"/.source.replace(\n        /__/g,\n        function () {\n          return interpolation\n        }\n      )\n    )\n    var stringInterpolation = {\n      interpolation: {\n        pattern: RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + interpolation),\n        lookbehind: true,\n        inside: {\n          content: {\n            pattern: /^(\\\\\\()[\\s\\S]+(?=\\)$)/,\n            lookbehind: true,\n            inside: null // see below\n          },\n          punctuation: /^\\\\\\(|\\)$/\n        }\n      }\n    }\n    var jq = (Prism.languages.jq = {\n      comment: /#.*/,\n      property: {\n        pattern: RegExp(string.source + /(?=\\s*:(?!:))/.source),\n        lookbehind: true,\n        greedy: true,\n        inside: stringInterpolation\n      },\n      string: {\n        pattern: string,\n        lookbehind: true,\n        greedy: true,\n        inside: stringInterpolation\n      },\n      function: {\n        pattern: /(\\bdef\\s+)[a-z_]\\w+/i,\n        lookbehind: true\n      },\n      variable: /\\B\\$\\w+/,\n      'property-literal': {\n        pattern: /\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n        alias: 'property'\n      },\n      keyword:\n        /\\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      number: /(?:\\b\\d+\\.|\\B\\.)?\\b\\d+(?:[eE][+-]?\\d+)?\\b/,\n      operator: [\n        {\n          pattern: /\\|=?/,\n          alias: 'pipe'\n        },\n        /\\.\\.|[!=<>]?=|\\?\\/\\/|\\/\\/=?|[-+*/%]=?|[<>?]|\\b(?:and|not|or)\\b/\n      ],\n      'c-style-function': {\n        pattern: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n        alias: 'function'\n      },\n      punctuation: /::|[()\\[\\]{},:;]|\\.(?=\\s*[\\[\\w$])/,\n      dot: {\n        pattern: /\\./,\n        alias: 'important'\n      }\n    })\n    stringInterpolation.interpolation.inside.content.inside = jq\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = jsExtras\njsExtras.displayName = 'jsExtras'\njsExtras.aliases = []\nfunction jsExtras(Prism) {\n  ;(function (Prism) {\n    Prism.languages.insertBefore('javascript', 'function-variable', {\n      'method-variable': {\n        pattern: RegExp(\n          '(\\\\.\\\\s*)' +\n            Prism.languages.javascript['function-variable'].pattern.source\n        ),\n        lookbehind: true,\n        alias: ['function-variable', 'method', 'function', 'property-access']\n      }\n    })\n    Prism.languages.insertBefore('javascript', 'function', {\n      method: {\n        pattern: RegExp(\n          '(\\\\.\\\\s*)' + Prism.languages.javascript['function'].source\n        ),\n        lookbehind: true,\n        alias: ['function', 'property-access']\n      }\n    })\n    Prism.languages.insertBefore('javascript', 'constant', {\n      'known-class-name': [\n        {\n          // standard built-ins\n          // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\n          pattern:\n            /\\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\\b/,\n          alias: 'class-name'\n        },\n        {\n          // errors\n          pattern: /\\b(?:[A-Z]\\w*)Error\\b/,\n          alias: 'class-name'\n        }\n      ]\n    })\n    /**\n     * Replaces the `<ID>` placeholder in the given pattern with a pattern for general JS identifiers.\n     *\n     * @param {string} source\n     * @param {string} [flags]\n     * @returns {RegExp}\n     */\n    function withId(source, flags) {\n      return RegExp(\n        source.replace(/<ID>/g, function () {\n          return /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/.source\n        }),\n        flags\n      )\n    }\n    Prism.languages.insertBefore('javascript', 'keyword', {\n      imports: {\n        // https://tc39.es/ecma262/#sec-imports\n        pattern: withId(\n          /(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)/\n            .source\n        ),\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      exports: {\n        // https://tc39.es/ecma262/#sec-exports\n        pattern: withId(\n          /(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})/\n            .source\n        ),\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      }\n    })\n    Prism.languages.javascript['keyword'].unshift(\n      {\n        pattern: /\\b(?:as|default|export|from|import)\\b/,\n        alias: 'module'\n      },\n      {\n        pattern:\n          /\\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\\b/,\n        alias: 'control-flow'\n      },\n      {\n        pattern: /\\bnull\\b/,\n        alias: ['null', 'nil']\n      },\n      {\n        pattern: /\\bundefined\\b/,\n        alias: 'nil'\n      }\n    )\n    Prism.languages.insertBefore('javascript', 'operator', {\n      spread: {\n        pattern: /\\.{3}/,\n        alias: 'operator'\n      },\n      arrow: {\n        pattern: /=>/,\n        alias: 'operator'\n      }\n    })\n    Prism.languages.insertBefore('javascript', 'punctuation', {\n      'property-access': {\n        pattern: withId(/(\\.\\s*)#?<ID>/.source),\n        lookbehind: true\n      },\n      'maybe-class-name': {\n        pattern: /(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/,\n        lookbehind: true\n      },\n      dom: {\n        // this contains only a few commonly used DOM variables\n        pattern:\n          /\\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\\b/,\n        alias: 'variable'\n      },\n      console: {\n        pattern: /\\bconsole(?=\\s*\\.)/,\n        alias: 'class-name'\n      }\n    }) // add 'maybe-class-name' to tokens which might be a class name\n    var maybeClassNameTokens = [\n      'function',\n      'function-variable',\n      'method',\n      'method-variable',\n      'property-access'\n    ]\n    for (var i = 0; i < maybeClassNameTokens.length; i++) {\n      var token = maybeClassNameTokens[i]\n      var value = Prism.languages.javascript[token] // convert regex to object\n      if (Prism.util.type(value) === 'RegExp') {\n        value = Prism.languages.javascript[token] = {\n          pattern: value\n        }\n      } // keep in mind that we don't support arrays\n      var inside = value.inside || {}\n      value.inside = inside\n      inside['maybe-class-name'] = /^[A-Z][\\s\\S]*/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = jsTemplates\njsTemplates.displayName = 'jsTemplates'\njsTemplates.aliases = []\nfunction jsTemplates(Prism) {\n  ;(function (Prism) {\n    var templateString = Prism.languages.javascript['template-string'] // see the pattern in prism-javascript.js\n    var templateLiteralPattern = templateString.pattern.source\n    var interpolationObject = templateString.inside['interpolation']\n    var interpolationPunctuationObject =\n      interpolationObject.inside['interpolation-punctuation']\n    var interpolationPattern = interpolationObject.pattern.source\n    /**\n     * Creates a new pattern to match a template string with a special tag.\n     *\n     * This will return `undefined` if there is no grammar with the given language id.\n     *\n     * @param {string} language The language id of the embedded language. E.g. `markdown`.\n     * @param {string} tag The regex pattern to match the tag.\n     * @returns {object | undefined}\n     * @example\n     * createTemplate('css', /\\bcss/.source);\n     */\n    function createTemplate(language, tag) {\n      if (!Prism.languages[language]) {\n        return undefined\n      }\n      return {\n        pattern: RegExp('((?:' + tag + ')\\\\s*)' + templateLiteralPattern),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          'template-punctuation': {\n            pattern: /^`|`$/,\n            alias: 'string'\n          },\n          'embedded-code': {\n            pattern: /[\\s\\S]+/,\n            alias: language\n          }\n        }\n      }\n    }\n    Prism.languages.javascript['template-string'] = [\n      // styled-jsx:\n      //   css`a { color: #25F; }`\n      // styled-components:\n      //   styled.h1`color: red;`\n      createTemplate(\n        'css',\n        /\\b(?:styled(?:\\([^)]*\\))?(?:\\s*\\.\\s*\\w+(?:\\([^)]*\\))*)*|css(?:\\s*\\.\\s*(?:global|resolve))?|createGlobalStyle|keyframes)/\n          .source\n      ), // html`<p></p>`\n      // div.innerHTML = `<p></p>`\n      createTemplate('html', /\\bhtml|\\.\\s*(?:inner|outer)HTML\\s*\\+?=/.source), // svg`<path fill=\"#fff\" d=\"M55.37 ...\"/>`\n      createTemplate('svg', /\\bsvg/.source), // md`# h1`, markdown`## h2`\n      createTemplate('markdown', /\\b(?:markdown|md)/.source), // gql`...`, graphql`...`, graphql.experimental`...`\n      createTemplate(\n        'graphql',\n        /\\b(?:gql|graphql(?:\\s*\\.\\s*experimental)?)/.source\n      ), // sql`...`\n      createTemplate('sql', /\\bsql/.source), // vanilla template string\n      templateString\n    ].filter(Boolean)\n    /**\n     * Returns a specific placeholder literal for the given language.\n     *\n     * @param {number} counter\n     * @param {string} language\n     * @returns {string}\n     */\n    function getPlaceholder(counter, language) {\n      return '___' + language.toUpperCase() + '_' + counter + '___'\n    }\n    /**\n     * Returns the tokens of `Prism.tokenize` but also runs the `before-tokenize` and `after-tokenize` hooks.\n     *\n     * @param {string} code\n     * @param {any} grammar\n     * @param {string} language\n     * @returns {(string|Token)[]}\n     */\n    function tokenizeWithHooks(code, grammar, language) {\n      var env = {\n        code: code,\n        grammar: grammar,\n        language: language\n      }\n      Prism.hooks.run('before-tokenize', env)\n      env.tokens = Prism.tokenize(env.code, env.grammar)\n      Prism.hooks.run('after-tokenize', env)\n      return env.tokens\n    }\n    /**\n     * Returns the token of the given JavaScript interpolation expression.\n     *\n     * @param {string} expression The code of the expression. E.g. `\"${42}\"`\n     * @returns {Token}\n     */\n    function tokenizeInterpolationExpression(expression) {\n      var tempGrammar = {}\n      tempGrammar['interpolation-punctuation'] = interpolationPunctuationObject\n      /** @type {Array} */\n      var tokens = Prism.tokenize(expression, tempGrammar)\n      if (tokens.length === 3) {\n        /**\n         * The token array will look like this\n         * [\n         *     [\"interpolation-punctuation\", \"${\"]\n         *     \"...\" // JavaScript expression of the interpolation\n         *     [\"interpolation-punctuation\", \"}\"]\n         * ]\n         */\n        var args = [1, 1]\n        args.push.apply(\n          args,\n          tokenizeWithHooks(tokens[1], Prism.languages.javascript, 'javascript')\n        )\n        tokens.splice.apply(tokens, args)\n      }\n      return new Prism.Token(\n        'interpolation',\n        tokens,\n        interpolationObject.alias,\n        expression\n      )\n    }\n    /**\n     * Tokenizes the given code with support for JavaScript interpolation expressions mixed in.\n     *\n     * This function has 3 phases:\n     *\n     * 1. Replace all JavaScript interpolation expression with a placeholder.\n     *    The placeholder will have the syntax of a identify of the target language.\n     * 2. Tokenize the code with placeholders.\n     * 3. Tokenize the interpolation expressions and re-insert them into the tokenize code.\n     *    The insertion only works if a placeholder hasn't been \"ripped apart\" meaning that the placeholder has been\n     *    tokenized as two tokens by the grammar of the embedded language.\n     *\n     * @param {string} code\n     * @param {object} grammar\n     * @param {string} language\n     * @returns {Token}\n     */\n    function tokenizeEmbedded(code, grammar, language) {\n      // 1. First filter out all interpolations\n      // because they might be escaped, we need a lookbehind, so we use Prism\n      /** @type {(Token|string)[]} */\n      var _tokens = Prism.tokenize(code, {\n        interpolation: {\n          pattern: RegExp(interpolationPattern),\n          lookbehind: true\n        }\n      }) // replace all interpolations with a placeholder which is not in the code already\n      var placeholderCounter = 0\n      /** @type {Object<string, string>} */\n      var placeholderMap = {}\n      var embeddedCode = _tokens\n        .map(function (token) {\n          if (typeof token === 'string') {\n            return token\n          } else {\n            var interpolationExpression = token.content\n            var placeholder\n            while (\n              code.indexOf(\n                (placeholder = getPlaceholder(placeholderCounter++, language))\n              ) !== -1\n            ) {\n              /* noop */\n            }\n            placeholderMap[placeholder] = interpolationExpression\n            return placeholder\n          }\n        })\n        .join('') // 2. Tokenize the embedded code\n      var embeddedTokens = tokenizeWithHooks(embeddedCode, grammar, language) // 3. Re-insert the interpolation\n      var placeholders = Object.keys(placeholderMap)\n      placeholderCounter = 0\n      /**\n       *\n       * @param {(Token|string)[]} tokens\n       * @returns {void}\n       */\n      function walkTokens(tokens) {\n        for (var i = 0; i < tokens.length; i++) {\n          if (placeholderCounter >= placeholders.length) {\n            return\n          }\n          var token = tokens[i]\n          if (typeof token === 'string' || typeof token.content === 'string') {\n            var placeholder = placeholders[placeholderCounter]\n            var s =\n              typeof token === 'string'\n                ? token\n                : /** @type {string} */\n                  token.content\n            var index = s.indexOf(placeholder)\n            if (index !== -1) {\n              ++placeholderCounter\n              var before = s.substring(0, index)\n              var middle = tokenizeInterpolationExpression(\n                placeholderMap[placeholder]\n              )\n              var after = s.substring(index + placeholder.length)\n              var replacement = []\n              if (before) {\n                replacement.push(before)\n              }\n              replacement.push(middle)\n              if (after) {\n                var afterTokens = [after]\n                walkTokens(afterTokens)\n                replacement.push.apply(replacement, afterTokens)\n              }\n              if (typeof token === 'string') {\n                tokens.splice.apply(tokens, [i, 1].concat(replacement))\n                i += replacement.length - 1\n              } else {\n                token.content = replacement\n              }\n            }\n          } else {\n            var content = token.content\n            if (Array.isArray(content)) {\n              walkTokens(content)\n            } else {\n              walkTokens([content])\n            }\n          }\n        }\n      }\n      walkTokens(embeddedTokens)\n      return new Prism.Token(\n        language,\n        embeddedTokens,\n        'language-' + language,\n        code\n      )\n    }\n    /**\n     * The languages for which JS templating will handle tagged template literals.\n     *\n     * JS templating isn't active for only JavaScript but also related languages like TypeScript, JSX, and TSX.\n     */\n    var supportedLanguages = {\n      javascript: true,\n      js: true,\n      typescript: true,\n      ts: true,\n      jsx: true,\n      tsx: true\n    }\n    Prism.hooks.add('after-tokenize', function (env) {\n      if (!(env.language in supportedLanguages)) {\n        return\n      }\n      /**\n       * Finds and tokenizes all template strings with an embedded languages.\n       *\n       * @param {(Token | string)[]} tokens\n       * @returns {void}\n       */\n      function findTemplateStrings(tokens) {\n        for (var i = 0, l = tokens.length; i < l; i++) {\n          var token = tokens[i]\n          if (typeof token === 'string') {\n            continue\n          }\n          var content = token.content\n          if (!Array.isArray(content)) {\n            if (typeof content !== 'string') {\n              findTemplateStrings([content])\n            }\n            continue\n          }\n          if (token.type === 'template-string') {\n            /**\n             * A JavaScript template-string token will look like this:\n             *\n             * [\"template-string\", [\n             *     [\"template-punctuation\", \"`\"],\n             *     (\n             *         An array of \"string\" and \"interpolation\" tokens. This is the simple string case.\n             *         or\n             *         [\"embedded-code\", \"...\"] This is the token containing the embedded code.\n             *                                  It also has an alias which is the language of the embedded code.\n             *     ),\n             *     [\"template-punctuation\", \"`\"]\n             * ]]\n             */\n            var embedded = content[1]\n            if (\n              content.length === 3 &&\n              typeof embedded !== 'string' &&\n              embedded.type === 'embedded-code'\n            ) {\n              // get string content\n              var code = stringContent(embedded)\n              var alias = embedded.alias\n              var language = Array.isArray(alias) ? alias[0] : alias\n              var grammar = Prism.languages[language]\n              if (!grammar) {\n                // the embedded language isn't registered.\n                continue\n              }\n              content[1] = tokenizeEmbedded(code, grammar, language)\n            }\n          } else {\n            findTemplateStrings(content)\n          }\n        }\n      }\n      findTemplateStrings(env.tokens)\n    })\n    /**\n     * Returns the string content of a token or token stream.\n     *\n     * @param {string | Token | (string | Token)[]} value\n     * @returns {string}\n     */\n    function stringContent(value) {\n      if (typeof value === 'string') {\n        return value\n      } else if (Array.isArray(value)) {\n        return value.map(stringContent).join('')\n      } else {\n        return stringContent(value.content)\n      }\n    }\n  })(Prism)\n}\n","'use strict'\nvar refractorJavadoclike = require('./javadoclike.js')\nvar refractorTypescript = require('./typescript.js')\nmodule.exports = jsdoc\njsdoc.displayName = 'jsdoc'\njsdoc.aliases = []\nfunction jsdoc(Prism) {\n  Prism.register(refractorJavadoclike)\n  Prism.register(refractorTypescript)\n  ;(function (Prism) {\n    var javascript = Prism.languages.javascript\n    var type = /\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})+\\}/.source\n    var parameterPrefix =\n      '(@(?:arg|argument|param|property)\\\\s+(?:' + type + '\\\\s+)?)'\n    Prism.languages.jsdoc = Prism.languages.extend('javadoclike', {\n      parameter: {\n        // @param {string} foo - foo bar\n        pattern: RegExp(\n          parameterPrefix + /(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?=\\s|$)/.source\n        ),\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      }\n    })\n    Prism.languages.insertBefore('jsdoc', 'keyword', {\n      'optional-parameter': {\n        // @param {string} [baz.foo=\"bar\"] foo bar\n        pattern: RegExp(\n          parameterPrefix +\n            /\\[(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?:=[^[\\]]+)?\\](?=\\s|$)/.source\n        ),\n        lookbehind: true,\n        inside: {\n          parameter: {\n            pattern: /(^\\[)[$\\w\\xA0-\\uFFFF\\.]+/,\n            lookbehind: true,\n            inside: {\n              punctuation: /\\./\n            }\n          },\n          code: {\n            pattern: /(=)[\\s\\S]*(?=\\]$)/,\n            lookbehind: true,\n            inside: javascript,\n            alias: 'language-javascript'\n          },\n          punctuation: /[=[\\]]/\n        }\n      },\n      'class-name': [\n        {\n          pattern: RegExp(\n            /(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\\s+(?:<TYPE>\\s+)?)[A-Z]\\w*(?:\\.[A-Z]\\w*)*/.source.replace(\n              /<TYPE>/g,\n              function () {\n                return type\n              }\n            )\n          ),\n          lookbehind: true,\n          inside: {\n            punctuation: /\\./\n          }\n        },\n        {\n          pattern: RegExp('(@[a-z]+\\\\s+)' + type),\n          lookbehind: true,\n          inside: {\n            string: javascript.string,\n            number: javascript.number,\n            boolean: javascript.boolean,\n            keyword: Prism.languages.typescript.keyword,\n            operator: /=>|\\.\\.\\.|[&|?:*]/,\n            punctuation: /[.,;=<>{}()[\\]]/\n          }\n        }\n      ],\n      example: {\n        pattern:\n          /(@example\\s+(?!\\s))(?:[^@\\s]|\\s+(?!\\s))+?(?=\\s*(?:\\*\\s*)?(?:@\\w|\\*\\/))/,\n        lookbehind: true,\n        inside: {\n          code: {\n            pattern: /^([\\t ]*(?:\\*\\s*)?)\\S.*$/m,\n            lookbehind: true,\n            inside: javascript,\n            alias: 'language-javascript'\n          }\n        }\n      }\n    })\n    Prism.languages.javadoclike.addSupport('javascript', Prism.languages.jsdoc)\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = json\njson.displayName = 'json'\njson.aliases = ['webmanifest']\nfunction json(Prism) {\n  // https://www.json.org/json-en.html\n  Prism.languages.json = {\n    property: {\n      pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n      lookbehind: true,\n      greedy: true\n    },\n    comment: {\n      pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n      greedy: true\n    },\n    number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n    punctuation: /[{}[\\],]/,\n    operator: /:/,\n    boolean: /\\b(?:false|true)\\b/,\n    null: {\n      pattern: /\\bnull\\b/,\n      alias: 'keyword'\n    }\n  }\n  Prism.languages.webmanifest = Prism.languages.json\n}\n","'use strict'\nvar refractorJson = require('./json.js')\nmodule.exports = json5\njson5.displayName = 'json5'\njson5.aliases = []\nfunction json5(Prism) {\n  Prism.register(refractorJson)\n  ;(function (Prism) {\n    var string = /(\"|')(?:\\\\(?:\\r\\n?|\\n|.)|(?!\\1)[^\\\\\\r\\n])*\\1/\n    Prism.languages.json5 = Prism.languages.extend('json', {\n      property: [\n        {\n          pattern: RegExp(string.source + '(?=\\\\s*:)'),\n          greedy: true\n        },\n        {\n          pattern:\n            /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/,\n          alias: 'unquoted'\n        }\n      ],\n      string: {\n        pattern: string,\n        greedy: true\n      },\n      number:\n        /[+-]?\\b(?:NaN|Infinity|0x[a-fA-F\\d]+)\\b|[+-]?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n    })\n  })(Prism)\n}\n","'use strict'\nvar refractorJson = require('./json.js')\nmodule.exports = jsonp\njsonp.displayName = 'jsonp'\njsonp.aliases = []\nfunction jsonp(Prism) {\n  Prism.register(refractorJson)\n  Prism.languages.jsonp = Prism.languages.extend('json', {\n    punctuation: /[{}[\\]();,.]/\n  })\n  Prism.languages.insertBefore('jsonp', 'punctuation', {\n    function: /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*\\()/\n  })\n}\n","'use strict'\n\nmodule.exports = jsstacktrace\njsstacktrace.displayName = 'jsstacktrace'\njsstacktrace.aliases = []\nfunction jsstacktrace(Prism) {\n  Prism.languages.jsstacktrace = {\n    'error-message': {\n      pattern: /^\\S.*/m,\n      alias: 'string'\n    },\n    'stack-frame': {\n      pattern: /(^[ \\t]+)at[ \\t].*/m,\n      lookbehind: true,\n      inside: {\n        'not-my-code': {\n          pattern:\n            /^at[ \\t]+(?!\\s)(?:node\\.js|<unknown>|.*(?:node_modules|\\(<anonymous>\\)|\\(<unknown>|<anonymous>$|\\(internal\\/|\\(node\\.js)).*/m,\n          alias: 'comment'\n        },\n        filename: {\n          pattern: /(\\bat\\s+(?!\\s)|\\()(?:[a-zA-Z]:)?[^():]+(?=:)/,\n          lookbehind: true,\n          alias: 'url'\n        },\n        function: {\n          pattern:\n            /(\\bat\\s+(?:new\\s+)?)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF<][.$\\w\\xA0-\\uFFFF<>]*/,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\./\n          }\n        },\n        punctuation: /[()]/,\n        keyword: /\\b(?:at|new)\\b/,\n        alias: {\n          pattern: /\\[(?:as\\s+)?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*\\]/,\n          alias: 'variable'\n        },\n        'line-number': {\n          pattern: /:\\d+(?::\\d+)?\\b/,\n          alias: 'number',\n          inside: {\n            punctuation: /:/\n          }\n        }\n      }\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = jsx\njsx.displayName = 'jsx'\njsx.aliases = []\nfunction jsx(Prism) {\n  ;(function (Prism) {\n    var javascript = Prism.util.clone(Prism.languages.javascript)\n    var space = /(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)/.source\n    var braces = /(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})/.source\n    var spread = /(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})/.source\n    /**\n     * @param {string} source\n     * @param {string} [flags]\n     */\n    function re(source, flags) {\n      source = source\n        .replace(/<S>/g, function () {\n          return space\n        })\n        .replace(/<BRACES>/g, function () {\n          return braces\n        })\n        .replace(/<SPREAD>/g, function () {\n          return spread\n        })\n      return RegExp(source, flags)\n    }\n    spread = re(spread).source\n    Prism.languages.jsx = Prism.languages.extend('markup', javascript)\n    Prism.languages.jsx.tag.pattern = re(\n      /<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>/\n        .source\n    )\n    Prism.languages.jsx.tag.inside['tag'].pattern = /^<\\/?[^\\s>\\/]*/\n    Prism.languages.jsx.tag.inside['attr-value'].pattern =\n      /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/\n    Prism.languages.jsx.tag.inside['tag'].inside['class-name'] =\n      /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/\n    Prism.languages.jsx.tag.inside['comment'] = javascript['comment']\n    Prism.languages.insertBefore(\n      'inside',\n      'attr-name',\n      {\n        spread: {\n          pattern: re(/<SPREAD>/.source),\n          inside: Prism.languages.jsx\n        }\n      },\n      Prism.languages.jsx.tag\n    )\n    Prism.languages.insertBefore(\n      'inside',\n      'special-attr',\n      {\n        script: {\n          // Allow for two levels of nesting\n          pattern: re(/=<BRACES>/.source),\n          alias: 'language-javascript',\n          inside: {\n            'script-punctuation': {\n              pattern: /^=(?=\\{)/,\n              alias: 'punctuation'\n            },\n            rest: Prism.languages.jsx\n          }\n        }\n      },\n      Prism.languages.jsx.tag\n    ) // The following will handle plain text inside tags\n    var stringifyToken = function (token) {\n      if (!token) {\n        return ''\n      }\n      if (typeof token === 'string') {\n        return token\n      }\n      if (typeof token.content === 'string') {\n        return token.content\n      }\n      return token.content.map(stringifyToken).join('')\n    }\n    var walkTokens = function (tokens) {\n      var openedTags = []\n      for (var i = 0; i < tokens.length; i++) {\n        var token = tokens[i]\n        var notTagNorBrace = false\n        if (typeof token !== 'string') {\n          if (\n            token.type === 'tag' &&\n            token.content[0] &&\n            token.content[0].type === 'tag'\n          ) {\n            // We found a tag, now find its kind\n            if (token.content[0].content[0].content === '</') {\n              // Closing tag\n              if (\n                openedTags.length > 0 &&\n                openedTags[openedTags.length - 1].tagName ===\n                  stringifyToken(token.content[0].content[1])\n              ) {\n                // Pop matching opening tag\n                openedTags.pop()\n              }\n            } else {\n              if (token.content[token.content.length - 1].content === '/>') {\n                // Autoclosed tag, ignore\n              } else {\n                // Opening tag\n                openedTags.push({\n                  tagName: stringifyToken(token.content[0].content[1]),\n                  openedBraces: 0\n                })\n              }\n            }\n          } else if (\n            openedTags.length > 0 &&\n            token.type === 'punctuation' &&\n            token.content === '{'\n          ) {\n            // Here we might have entered a JSX context inside a tag\n            openedTags[openedTags.length - 1].openedBraces++\n          } else if (\n            openedTags.length > 0 &&\n            openedTags[openedTags.length - 1].openedBraces > 0 &&\n            token.type === 'punctuation' &&\n            token.content === '}'\n          ) {\n            // Here we might have left a JSX context inside a tag\n            openedTags[openedTags.length - 1].openedBraces--\n          } else {\n            notTagNorBrace = true\n          }\n        }\n        if (notTagNorBrace || typeof token === 'string') {\n          if (\n            openedTags.length > 0 &&\n            openedTags[openedTags.length - 1].openedBraces === 0\n          ) {\n            // Here we are inside a tag, and not inside a JSX context.\n            // That's plain text: drop any tokens matched.\n            var plainText = stringifyToken(token) // And merge text with adjacent text\n            if (\n              i < tokens.length - 1 &&\n              (typeof tokens[i + 1] === 'string' ||\n                tokens[i + 1].type === 'plain-text')\n            ) {\n              plainText += stringifyToken(tokens[i + 1])\n              tokens.splice(i + 1, 1)\n            }\n            if (\n              i > 0 &&\n              (typeof tokens[i - 1] === 'string' ||\n                tokens[i - 1].type === 'plain-text')\n            ) {\n              plainText = stringifyToken(tokens[i - 1]) + plainText\n              tokens.splice(i - 1, 1)\n              i--\n            }\n            tokens[i] = new Prism.Token(\n              'plain-text',\n              plainText,\n              null,\n              plainText\n            )\n          }\n        }\n        if (token.content && typeof token.content !== 'string') {\n          walkTokens(token.content)\n        }\n      }\n    }\n    Prism.hooks.add('after-tokenize', function (env) {\n      if (env.language !== 'jsx' && env.language !== 'tsx') {\n        return\n      }\n      walkTokens(env.tokens)\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = julia\njulia.displayName = 'julia'\njulia.aliases = []\nfunction julia(Prism) {\n  Prism.languages.julia = {\n    comment: {\n      // support one level of nested comments\n      // https://github.com/JuliaLang/julia/pull/6128\n      pattern:\n        /(^|[^\\\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/,\n      lookbehind: true\n    },\n    regex: {\n      // https://docs.julialang.org/en/v1/manual/strings/#Regular-Expressions-1\n      pattern: /r\"(?:\\\\.|[^\"\\\\\\r\\n])*\"[imsx]{0,4}/,\n      greedy: true\n    },\n    string: {\n      // https://docs.julialang.org/en/v1/manual/strings/#String-Basics-1\n      // https://docs.julialang.org/en/v1/manual/strings/#non-standard-string-literals-1\n      // https://docs.julialang.org/en/v1/manual/running-external-programs/#Running-External-Programs-1\n      pattern:\n        /\"\"\"[\\s\\S]+?\"\"\"|(?:\\b\\w+)?\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`(?:[^\\\\`\\r\\n]|\\\\.)*`/,\n      greedy: true\n    },\n    char: {\n      // https://docs.julialang.org/en/v1/manual/strings/#man-characters-1\n      pattern: /(^|[^\\w'])'(?:\\\\[^\\r\\n][^'\\r\\n]*|[^\\\\\\r\\n])'/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    number:\n      /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[box])?(?:[\\da-f]+(?:_[\\da-f]+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[efp][+-]?\\d+(?:_\\d+)*)?j?/i,\n    // https://docs.julialang.org/en/v1/manual/mathematical-operations/\n    // https://docs.julialang.org/en/v1/manual/mathematical-operations/#Operator-Precedence-and-Associativity-1\n    operator:\n      /&&|\\|\\||[-+*^%÷⊻&$\\\\]=?|\\/[\\/=]?|!=?=?|\\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥'√∛]/,\n    punctuation: /::?|[{}[\\]();,.?]/,\n    // https://docs.julialang.org/en/v1/base/numbers/#Base.im\n    constant: /\\b(?:(?:Inf|NaN)(?:16|32|64)?|im|pi)\\b|[πℯ]/\n  }\n}\n","'use strict'\n\nmodule.exports = keepalived\nkeepalived.displayName = 'keepalived'\nkeepalived.aliases = []\nfunction keepalived(Prism) {\n  Prism.languages.keepalived = {\n    comment: {\n      pattern: /[#!].*/,\n      greedy: true\n    },\n    string: {\n      pattern:\n        /(^|[^\\\\])(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/,\n      lookbehind: true,\n      greedy: true\n    },\n    // support IPv4, IPv6, subnet mask\n    ip: {\n      pattern: RegExp(\n        /\\b(?:(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){5}:(?:[\\da-f]{1,4}:)?[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){4}:(?:[\\da-f]{1,4}:){0,2}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){3}:(?:[\\da-f]{1,4}:){0,3}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){2}:(?:[\\da-f]{1,4}:){0,4}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){6}<ipv4>|(?:[\\da-f]{1,4}:){0,5}:<ipv4>|::(?:[\\da-f]{1,4}:){0,5}<ipv4>|[\\da-f]{1,4}::(?:[\\da-f]{1,4}:){0,5}[\\da-f]{1,4}|::(?:[\\da-f]{1,4}:){0,6}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:)(?:\\/\\d{1,3})?|<ipv4>(?:\\/\\d{1,2})?)\\b/.source.replace(\n          /<ipv4>/g,\n          function () {\n            return /(?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d))/\n              .source\n          }\n        ),\n        'i'\n      ),\n      alias: 'number'\n    },\n    // support *nix / Windows, directory / file\n    path: {\n      pattern:\n        /(\\s)\\/(?:[^\\/\\s]+\\/)*[^\\/\\s]*|\\b[a-zA-Z]:\\\\(?:[^\\\\\\s]+\\\\)*[^\\\\\\s]*/,\n      lookbehind: true,\n      alias: 'string'\n    },\n    variable: /\\$\\{?\\w+\\}?/,\n    email: {\n      pattern: /[\\w-]+@[\\w-]+(?:\\.[\\w-]{2,3}){1,2}/,\n      alias: 'string'\n    },\n    'conditional-configuration': {\n      pattern: /@\\^?[\\w-]+/,\n      alias: 'variable'\n    },\n    operator: /=/,\n    property:\n      /\\b(?:BFD_CHECK|DNS_CHECK|FILE_CHECK|HTTP_GET|MISC_CHECK|NAME|PING_CHECK|SCRIPTS|SMTP_CHECK|SSL|SSL_GET|TCP_CHECK|UDP_CHECK|accept|advert_int|alpha|auth_pass|auth_type|authentication|bfd_cpu_affinity|bfd_instance|bfd_no_swap|bfd_priority|bfd_process_name|bfd_rlimit_rttime|bfd_rt_priority|bind_if|bind_port|bindto|ca|certificate|check_unicast_src|checker|checker_cpu_affinity|checker_log_all_failures|checker_no_swap|checker_priority|checker_rlimit_rttime|checker_rt_priority|child_wait_time|connect_ip|connect_port|connect_timeout|dbus_service_name|debug|default_interface|delay|delay_before_retry|delay_loop|digest|dont_track_primary|dynamic|dynamic_interfaces|enable_(?:dbus|script_security|sni|snmp_checker|snmp_rfc|snmp_rfcv2|snmp_rfcv3|snmp_vrrp|traps)|end|fall|fast_recovery|file|flag-[123]|fork_delay|full_command|fwmark|garp_group|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|global_defs|global_tracking|gna_interval|group|ha_suspend|hashed|helo_name|higher_prio_send_advert|hoplimit|http_protocol|hysteresis|idle_tx|include|inhibit_on_failure|init_fail|init_file|instance|interface|interfaces|interval|ip_family|ipvs_process_name|keepalived.conf|kernel_rx_buf_size|key|linkbeat_interfaces|linkbeat_use_polling|log_all_failures|log_unknown_vrids|lower_prio_no_advert|lthreshold|lvs_flush|lvs_flush_onstop|lvs_method|lvs_netlink_cmd_rcv_bufs|lvs_netlink_cmd_rcv_bufs_force|lvs_netlink_monitor_rcv_bufs|lvs_netlink_monitor_rcv_bufs_force|lvs_notify_fifo|lvs_notify_fifo_script|lvs_sched|lvs_sync_daemon|max_auto_priority|max_hops|mcast_src_ip|mh-fallback|mh-port|min_auto_priority_delay|min_rx|min_tx|misc_dynamic|misc_path|misc_timeout|multiplier|name|namespace_with_ipsets|native_ipv6|neighbor_ip|net_namespace|net_namespace_ipvs|nftables|nftables_counters|nftables_ifindex|nftables_priority|no_accept|no_checker_emails|no_email_faults|nopreempt|notification_email|notification_email_from|notify|notify_backup|notify_deleted|notify_down|notify_fault|notify_fifo|notify_fifo_script|notify_master|notify_master_rx_lower_pri|notify_priority_changes|notify_stop|notify_up|old_unicast_checksum|omega|ops|param_match|passive|password|path|persistence_engine|persistence_granularity|persistence_timeout|preempt|preempt_delay|priority|process|process_monitor_rcv_bufs|process_monitor_rcv_bufs_force|process_name|process_names|promote_secondaries|protocol|proxy_arp|proxy_arp_pvlan|quorum|quorum_down|quorum_max|quorum_up|random_seed|real_server|regex|regex_max_offset|regex_min_offset|regex_no_match|regex_options|regex_stack|reload_repeat|reload_time_file|require_reply|retry|rise|router_id|rs_init_notifies|script|script_user|sh-fallback|sh-port|shutdown_script|shutdown_script_timeout|skip_check_adv_addr|smtp_alert|smtp_alert_checker|smtp_alert_vrrp|smtp_connect_timeout|smtp_helo_name|smtp_server|snmp_socket|sorry_server|sorry_server_inhibit|sorry_server_lvs_method|source_ip|start|startup_script|startup_script_timeout|state|static_ipaddress|static_routes|static_rules|status_code|step|strict_mode|sync_group_tracking_weight|terminate_delay|timeout|track_bfd|track_file|track_group|track_interface|track_process|track_script|track_src_ip|ttl|type|umask|unicast_peer|unicast_src_ip|unicast_ttl|url|use_ipvlan|use_pid_dir|use_vmac|user|uthreshold|val[123]|version|virtual_ipaddress|virtual_ipaddress_excluded|virtual_router_id|virtual_routes|virtual_rules|virtual_server|virtual_server_group|virtualhost|vmac_xmit_base|vrrp|vrrp_(?:check_unicast_src|cpu_affinity|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|gna_interval|higher_prio_send_advert|instance|ipsets|iptables|lower_prio_no_advert|mcast_group4|mcast_group6|min_garp|netlink_cmd_rcv_bufs|netlink_cmd_rcv_bufs_force|netlink_monitor_rcv_bufs|netlink_monitor_rcv_bufs_force|no_swap|notify_fifo|notify_fifo_script|notify_priority_changes|priority|process_name|rlimit_rttime|rt_priority|rx_bufs_multiplier|rx_bufs_policy|script|skip_check_adv_addr|startup_delay|strict|sync_group|track_process|version)|warmup|weight)\\b/,\n    constant:\n      /\\b(?:A|AAAA|AH|BACKUP|CNAME|DR|MASTER|MX|NAT|NS|PASS|SCTP|SOA|TCP|TUN|TXT|UDP|dh|fo|lblc|lblcr|lc|mh|nq|ovf|rr|sed|sh|wlc|wrr)\\b/,\n    number: {\n      pattern: /(^|[^\\w.-])-?\\d+(?:\\.\\d+)?/,\n      lookbehind: true\n    },\n    boolean: /\\b(?:false|no|off|on|true|yes)\\b/,\n    punctuation: /[\\{\\}]/\n  }\n}\n","'use strict'\n\nmodule.exports = keyman\nkeyman.displayName = 'keyman'\nkeyman.aliases = []\nfunction keyman(Prism) {\n  Prism.languages.keyman = {\n    comment: {\n      pattern: /\\bc .*/i,\n      greedy: true\n    },\n    string: {\n      pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n      greedy: true\n    },\n    'virtual-key': {\n      pattern:\n        /\\[\\s*(?:(?:ALT|CAPS|CTRL|LALT|LCTRL|NCAPS|RALT|RCTRL|SHIFT)\\s+)*(?:[TKU]_[\\w?]+|[A-E]\\d\\d?|\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')\\s*\\]/i,\n      greedy: true,\n      alias: 'function' // alias for styles\n    },\n    // https://help.keyman.com/developer/language/guide/headers\n    'header-keyword': {\n      pattern: /&\\w+/,\n      alias: 'bold' // alias for styles\n    },\n    'header-statement': {\n      pattern:\n        /\\b(?:bitmap|bitmaps|caps always off|caps on only|copyright|hotkey|language|layout|message|name|shift frees caps|version)\\b/i,\n      alias: 'bold' // alias for styles\n    },\n    'rule-keyword': {\n      pattern:\n        /\\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|reset|return|save|set|store|use)\\b/i,\n      alias: 'keyword'\n    },\n    'structural-keyword': {\n      pattern: /\\b(?:ansi|begin|group|match|nomatch|unicode|using keys)\\b/i,\n      alias: 'keyword'\n    },\n    'compile-target': {\n      pattern: /\\$(?:keyman|keymanonly|keymanweb|kmfl|weaver):/i,\n      alias: 'property'\n    },\n    // U+####, x###, d### characters and numbers\n    number: /\\b(?:U\\+[\\dA-F]+|d\\d+|x[\\da-f]+|\\d+)\\b/i,\n    operator: /[+>\\\\$]|\\.\\./,\n    punctuation: /[()=,]/\n  }\n}\n","'use strict'\n\nmodule.exports = kotlin\nkotlin.displayName = 'kotlin'\nkotlin.aliases = ['kt', 'kts']\nfunction kotlin(Prism) {\n  ;(function (Prism) {\n    Prism.languages.kotlin = Prism.languages.extend('clike', {\n      keyword: {\n        // The lookbehind prevents wrong highlighting of e.g. kotlin.properties.get\n        pattern:\n          /(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/,\n        lookbehind: true\n      },\n      function: [\n        {\n          pattern: /(?:`[^\\r\\n`]+`|\\b\\w+)(?=\\s*\\()/,\n          greedy: true\n        },\n        {\n          pattern: /(\\.)(?:`[^\\r\\n`]+`|\\w+)(?=\\s*\\{)/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      number:\n        /\\b(?:0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/,\n      operator:\n        /\\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\\/*%<>]=?|[?:]:?|\\.\\.|&&|\\|\\||\\b(?:and|inv|or|shl|shr|ushr|xor)\\b/\n    })\n    delete Prism.languages.kotlin['class-name']\n    var interpolationInside = {\n      'interpolation-punctuation': {\n        pattern: /^\\$\\{?|\\}$/,\n        alias: 'punctuation'\n      },\n      expression: {\n        pattern: /[\\s\\S]+/,\n        inside: Prism.languages.kotlin\n      }\n    }\n    Prism.languages.insertBefore('kotlin', 'string', {\n      // https://kotlinlang.org/spec/expressions.html#string-interpolation-expressions\n      'string-literal': [\n        {\n          pattern: /\"\"\"(?:[^$]|\\$(?:(?!\\{)|\\{[^{}]*\\}))*?\"\"\"/,\n          alias: 'multiline',\n          inside: {\n            interpolation: {\n              pattern: /\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n              inside: interpolationInside\n            },\n            string: /[\\s\\S]+/\n          }\n        },\n        {\n          pattern: /\"(?:[^\"\\\\\\r\\n$]|\\\\.|\\$(?:(?!\\{)|\\{[^{}]*\\}))*\"/,\n          alias: 'singleline',\n          inside: {\n            interpolation: {\n              pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n              lookbehind: true,\n              inside: interpolationInside\n            },\n            string: /[\\s\\S]+/\n          }\n        }\n      ],\n      char: {\n        // https://kotlinlang.org/spec/expressions.html#character-literals\n        pattern: /'(?:[^'\\\\\\r\\n]|\\\\(?:.|u[a-fA-F0-9]{0,4}))'/,\n        greedy: true\n      }\n    })\n    delete Prism.languages.kotlin['string']\n    Prism.languages.insertBefore('kotlin', 'keyword', {\n      annotation: {\n        pattern: /\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/,\n        alias: 'builtin'\n      }\n    })\n    Prism.languages.insertBefore('kotlin', 'function', {\n      label: {\n        pattern: /\\b\\w+@|@\\w+\\b/,\n        alias: 'symbol'\n      }\n    })\n    Prism.languages.kt = Prism.languages.kotlin\n    Prism.languages.kts = Prism.languages.kotlin\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = kumir\nkumir.displayName = 'kumir'\nkumir.aliases = ['kum']\nfunction kumir(Prism) {\n  /* eslint-disable regexp/no-dupe-characters-character-class */\n  ;(function (Prism) {\n    /**\n     * Regular expression for characters that are not allowed in identifiers.\n     *\n     * @type {string}\n     */\n    var nonId = /\\s\\x00-\\x1f\\x22-\\x2f\\x3a-\\x3f\\x5b-\\x5e\\x60\\x7b-\\x7e/.source\n    /**\n     * Surround a regular expression for IDs with patterns for non-ID sequences.\n     *\n     * @param {string} pattern A regular expression for identifiers.\n     * @param {string} [flags] The regular expression flags.\n     * @returns {RegExp} A wrapped regular expression for identifiers.\n     */\n    function wrapId(pattern, flags) {\n      return RegExp(pattern.replace(/<nonId>/g, nonId), flags)\n    }\n    Prism.languages.kumir = {\n      comment: {\n        pattern: /\\|.*/\n      },\n      prolog: {\n        pattern: /#.*/,\n        greedy: true\n      },\n      string: {\n        pattern: /\"[^\\n\\r\"]*\"|'[^\\n\\r']*'/,\n        greedy: true\n      },\n      boolean: {\n        pattern: wrapId(/(^|[<nonId>])(?:да|нет)(?=[<nonId>]|$)/.source),\n        lookbehind: true\n      },\n      'operator-word': {\n        pattern: wrapId(/(^|[<nonId>])(?:и|или|не)(?=[<nonId>]|$)/.source),\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      'system-variable': {\n        pattern: wrapId(/(^|[<nonId>])знач(?=[<nonId>]|$)/.source),\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      type: [\n        {\n          pattern: wrapId(\n            /(^|[<nonId>])(?:вещ|лит|лог|сим|цел)(?:\\x20*таб)?(?=[<nonId>]|$)/\n              .source\n          ),\n          lookbehind: true,\n          alias: 'builtin'\n        },\n        {\n          pattern: wrapId(\n            /(^|[<nonId>])(?:компл|сканкод|файл|цвет)(?=[<nonId>]|$)/.source\n          ),\n          lookbehind: true,\n          alias: 'important'\n        }\n      ],\n      /**\n       * Should be performed after searching for type names because of \"таб\".\n       * \"таб\" is a reserved word, but never used without a preceding type name.\n       * \"НАЗНАЧИТЬ\", \"Фввод\", and \"Фвывод\" are not reserved words.\n       */\n      keyword: {\n        pattern: wrapId(\n          /(^|[<nonId>])(?:алг|арг(?:\\x20*рез)?|ввод|ВКЛЮЧИТЬ|вс[её]|выбор|вывод|выход|дано|для|до|дс|если|иначе|исп|использовать|кон(?:(?:\\x20+|_)исп)?|кц(?:(?:\\x20+|_)при)?|надо|нач|нс|нц|от|пауза|пока|при|раза?|рез|стоп|таб|то|утв|шаг)(?=[<nonId>]|$)/\n            .source\n        ),\n        lookbehind: true\n      },\n      /** Should be performed after searching for reserved words. */\n      name: {\n        // eslint-disable-next-line regexp/no-super-linear-backtracking\n        pattern: wrapId(\n          /(^|[<nonId>])[^\\d<nonId>][^<nonId>]*(?:\\x20+[^<nonId>]+)*(?=[<nonId>]|$)/\n            .source\n        ),\n        lookbehind: true\n      },\n      /** Should be performed after searching for names. */\n      number: {\n        pattern: wrapId(\n          /(^|[<nonId>])(?:\\B\\$[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)(?=[<nonId>]|$)/\n            .source,\n          'i'\n        ),\n        lookbehind: true\n      },\n      /** Should be performed after searching for words. */\n      punctuation: /:=|[(),:;\\[\\]]/,\n      /**\n       * Should be performed after searching for\n       * - numeric constants (because of \"+\" and \"-\");\n       * - punctuation marks (because of \":=\" and \"=\").\n       */\n      'operator-char': {\n        pattern: /\\*\\*?|<[=>]?|>=?|[-+/=]/,\n        alias: 'operator'\n      }\n    }\n    Prism.languages.kum = Prism.languages.kumir\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = kusto\nkusto.displayName = 'kusto'\nkusto.aliases = []\nfunction kusto(Prism) {\n  Prism.languages.kusto = {\n    comment: {\n      pattern: /\\/\\/.*/,\n      greedy: true\n    },\n    string: {\n      pattern:\n        /```[\\s\\S]*?```|[hH]?(?:\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|'(?:[^\\r\\n\\\\']|\\\\.)*'|@(?:\"[^\\r\\n\"]*\"|'[^\\r\\n']*'))/,\n      greedy: true\n    },\n    verb: {\n      pattern: /(\\|\\s*)[a-z][\\w-]*/i,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    command: {\n      pattern: /\\.[a-z][a-z\\d-]*\\b/,\n      alias: 'keyword'\n    },\n    'class-name':\n      /\\b(?:bool|datetime|decimal|dynamic|guid|int|long|real|string|timespan)\\b/,\n    keyword:\n      /\\b(?:access|alias|and|anti|as|asc|auto|between|by|(?:contains|(?:ends|starts)with|has(?:perfix|suffix)?)(?:_cs)?|database|declare|desc|external|from|fullouter|has_all|in|ingestion|inline|inner|innerunique|into|(?:left|right)(?:anti(?:semi)?|inner|outer|semi)?|let|like|local|not|of|on|or|pattern|print|query_parameters|range|restrict|schema|set|step|table|tables|to|view|where|with|matches\\s+regex|nulls\\s+(?:first|last))(?![\\w-])/,\n    boolean: /\\b(?:false|null|true)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/,\n    datetime: [\n      {\n        // RFC 822 + RFC 850\n        pattern:\n          /\\b(?:(?:Fri|Friday|Mon|Monday|Sat|Saturday|Sun|Sunday|Thu|Thursday|Tue|Tuesday|Wed|Wednesday)\\s*,\\s*)?\\d{1,2}(?:\\s+|-)(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)(?:\\s+|-)\\d{2}\\s+\\d{2}:\\d{2}(?::\\d{2})?(?:\\s*(?:\\b(?:[A-Z]|(?:[ECMT][DS]|GM|U)T)|[+-]\\d{4}))?\\b/,\n        alias: 'number'\n      },\n      {\n        // ISO 8601\n        pattern:\n          /[+-]?\\b(?:\\d{4}-\\d{2}-\\d{2}(?:[ T]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?)?|\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?)Z?/,\n        alias: 'number'\n      }\n    ],\n    number:\n      /\\b(?:0x[0-9A-Fa-f]+|\\d+(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?)(?:(?:min|sec|[mnµ]s|[dhms]|microsecond|tick)\\b)?|[+-]?\\binf\\b/,\n    operator: /=>|[!=]~|[!=<>]=?|[-+*/%|]|\\.\\./,\n    punctuation: /[()\\[\\]{},;.:]/\n  }\n}\n","'use strict'\n\nmodule.exports = latex\nlatex.displayName = 'latex'\nlatex.aliases = ['tex', 'context']\nfunction latex(Prism) {\n  ;(function (Prism) {\n    var funcPattern = /\\\\(?:[^a-z()[\\]]|[a-z*]+)/i\n    var insideEqu = {\n      'equation-command': {\n        pattern: funcPattern,\n        alias: 'regex'\n      }\n    }\n    Prism.languages.latex = {\n      comment: /%.*/,\n      // the verbatim environment prints whitespace to the document\n      cdata: {\n        pattern:\n          /(\\\\begin\\{((?:lstlisting|verbatim)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n        lookbehind: true\n      },\n      /*\n       * equations can be between $$ $$ or $ $ or \\( \\) or \\[ \\]\n       * (all are multiline)\n       */\n      equation: [\n        {\n          pattern:\n            /\\$\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$\\$|\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$|\\\\\\([\\s\\S]*?\\\\\\)|\\\\\\[[\\s\\S]*?\\\\\\]/,\n          inside: insideEqu,\n          alias: 'string'\n        },\n        {\n          pattern:\n            /(\\\\begin\\{((?:align|eqnarray|equation|gather|math|multline)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n          lookbehind: true,\n          inside: insideEqu,\n          alias: 'string'\n        }\n      ],\n      /*\n       * arguments which are keywords or references are highlighted\n       * as keywords\n       */\n      keyword: {\n        pattern:\n          /(\\\\(?:begin|cite|documentclass|end|label|ref|usepackage)(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,\n        lookbehind: true\n      },\n      url: {\n        pattern: /(\\\\url\\{)[^}]+(?=\\})/,\n        lookbehind: true\n      },\n      /*\n       * section or chapter headlines are highlighted as bold so that\n       * they stand out more\n       */\n      headline: {\n        pattern:\n          /(\\\\(?:chapter|frametitle|paragraph|part|section|subparagraph|subsection|subsubparagraph|subsubsection|subsubsubparagraph)\\*?(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,\n        lookbehind: true,\n        alias: 'class-name'\n      },\n      function: {\n        pattern: funcPattern,\n        alias: 'selector'\n      },\n      punctuation: /[[\\]{}&]/\n    }\n    Prism.languages.tex = Prism.languages.latex\n    Prism.languages.context = Prism.languages.latex\n  })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nvar refractorPhp = require('./php.js')\nmodule.exports = latte\nlatte.displayName = 'latte'\nlatte.aliases = []\nfunction latte(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  Prism.register(refractorPhp)\n  ;(function (Prism) {\n    Prism.languages.latte = {\n      comment: /^\\{\\*[\\s\\S]*/,\n      'latte-tag': {\n        // https://latte.nette.org/en/tags\n        pattern: /(^\\{(?:\\/(?=[a-z]))?)(?:[=_]|[a-z]\\w*\\b(?!\\())/i,\n        lookbehind: true,\n        alias: 'important'\n      },\n      delimiter: {\n        pattern: /^\\{\\/?|\\}$/,\n        alias: 'punctuation'\n      },\n      php: {\n        pattern: /\\S(?:[\\s\\S]*\\S)?/,\n        alias: 'language-php',\n        inside: Prism.languages.php\n      }\n    }\n    var markupLatte = Prism.languages.extend('markup', {})\n    Prism.languages.insertBefore(\n      'inside',\n      'attr-value',\n      {\n        'n-attr': {\n          pattern: /n:[\\w-]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+))?/,\n          inside: {\n            'attr-name': {\n              pattern: /^[^\\s=]+/,\n              alias: 'important'\n            },\n            'attr-value': {\n              pattern: /=[\\s\\S]+/,\n              inside: {\n                punctuation: [\n                  /^=/,\n                  {\n                    pattern: /^(\\s*)[\"']|[\"']$/,\n                    lookbehind: true\n                  }\n                ],\n                php: {\n                  pattern: /\\S(?:[\\s\\S]*\\S)?/,\n                  inside: Prism.languages.php\n                }\n              }\n            }\n          }\n        }\n      },\n      markupLatte.tag\n    )\n    Prism.hooks.add('before-tokenize', function (env) {\n      if (env.language !== 'latte') {\n        return\n      }\n      var lattePattern =\n        /\\{\\*[\\s\\S]*?\\*\\}|\\{[^'\"\\s{}*](?:[^\"'/{}]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\}/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'latte',\n        lattePattern\n      )\n      env.grammar = markupLatte\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'latte')\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = less\nless.displayName = 'less'\nless.aliases = []\nfunction less(Prism) {\n  /* FIXME :\n:extend() is not handled specifically : its highlighting is buggy.\nMixin usage must be inside a ruleset to be highlighted.\nAt-rules (e.g. import) containing interpolations are buggy.\nDetached rulesets are highlighted as at-rules.\nA comment before a mixin usage prevents the latter to be properly highlighted.\n*/\n  Prism.languages.less = Prism.languages.extend('css', {\n    comment: [\n      /\\/\\*[\\s\\S]*?\\*\\//,\n      {\n        pattern: /(^|[^\\\\])\\/\\/.*/,\n        lookbehind: true\n      }\n    ],\n    atrule: {\n      pattern:\n        /@[\\w-](?:\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n      inside: {\n        punctuation: /[:()]/\n      }\n    },\n    // selectors and mixins are considered the same\n    selector: {\n      pattern:\n        /(?:@\\{[\\w-]+\\}|[^{};\\s@])(?:@\\{[\\w-]+\\}|\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};@\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n      inside: {\n        // mixin parameters\n        variable: /@+[\\w-]+/\n      }\n    },\n    property: /(?:@\\{[\\w-]+\\}|[\\w-])+(?:\\+_?)?(?=\\s*:)/,\n    operator: /[+\\-*\\/]/\n  })\n  Prism.languages.insertBefore('less', 'property', {\n    variable: [\n      // Variable declaration (the colon must be consumed!)\n      {\n        pattern: /@[\\w-]+\\s*:/,\n        inside: {\n          punctuation: /:/\n        }\n      }, // Variable usage\n      /@@?[\\w-]+/\n    ],\n    'mixin-usage': {\n      pattern: /([{;]\\s*)[.#](?!\\d)[\\w-].*?(?=[(;])/,\n      lookbehind: true,\n      alias: 'function'\n    }\n  })\n}\n","'use strict'\nvar refractorScheme = require('./scheme.js')\nmodule.exports = lilypond\nlilypond.displayName = 'lilypond'\nlilypond.aliases = []\nfunction lilypond(Prism) {\n  Prism.register(refractorScheme)\n  ;(function (Prism) {\n    var schemeExpression =\n      /\\((?:[^();\"#\\\\]|\\\\[\\s\\S]|;.*(?!.)|\"(?:[^\"\\\\]|\\\\.)*\"|#(?:\\{(?:(?!#\\})[\\s\\S])*#\\}|[^{])|<expr>)*\\)/\n        .source // allow for up to pow(2, recursivenessLog2) many levels of recursive brace expressions\n    // For some reason, this can't be 4\n    var recursivenessLog2 = 5\n    for (var i = 0; i < recursivenessLog2; i++) {\n      schemeExpression = schemeExpression.replace(/<expr>/g, function () {\n        return schemeExpression\n      })\n    }\n    schemeExpression = schemeExpression.replace(/<expr>/g, /[^\\s\\S]/.source)\n    var lilypond = (Prism.languages.lilypond = {\n      comment: /%(?:(?!\\{).*|\\{[\\s\\S]*?%\\})/,\n      'embedded-scheme': {\n        pattern: RegExp(\n          /(^|[=\\s])#(?:\"(?:[^\"\\\\]|\\\\.)*\"|[^\\s()\"]*(?:[^\\s()]|<expr>))/.source.replace(\n            /<expr>/g,\n            function () {\n              return schemeExpression\n            }\n          ),\n          'm'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          scheme: {\n            pattern: /^(#)[\\s\\S]+$/,\n            lookbehind: true,\n            alias: 'language-scheme',\n            inside: {\n              'embedded-lilypond': {\n                pattern: /#\\{[\\s\\S]*?#\\}/,\n                greedy: true,\n                inside: {\n                  punctuation: /^#\\{|#\\}$/,\n                  lilypond: {\n                    pattern: /[\\s\\S]+/,\n                    alias: 'language-lilypond',\n                    inside: null // see below\n                  }\n                }\n              },\n              rest: Prism.languages.scheme\n            }\n          },\n          punctuation: /#/\n        }\n      },\n      string: {\n        pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n        greedy: true\n      },\n      'class-name': {\n        pattern: /(\\\\new\\s+)[\\w-]+/,\n        lookbehind: true\n      },\n      keyword: {\n        pattern: /\\\\[a-z][-\\w]*/i,\n        inside: {\n          punctuation: /^\\\\/\n        }\n      },\n      operator: /[=|]|<<|>>/,\n      punctuation: {\n        pattern:\n          /(^|[a-z\\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\\d))|[_^]\\.?|[.!])|[{}()[\\]<>^~]|\\\\[()[\\]<>\\\\!]|--|__/,\n        lookbehind: true\n      },\n      number: /\\b\\d+(?:\\/\\d+)?\\b/\n    })\n    lilypond['embedded-scheme'].inside['scheme'].inside[\n      'embedded-lilypond'\n    ].inside['lilypond'].inside = lilypond\n    Prism.languages.ly = lilypond\n  })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = liquid\nliquid.displayName = 'liquid'\nliquid.aliases = []\nfunction liquid(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  Prism.languages.liquid = {\n    comment: {\n      pattern: /(^\\{%\\s*comment\\s*%\\})[\\s\\S]+(?=\\{%\\s*endcomment\\s*%\\}$)/,\n      lookbehind: true\n    },\n    delimiter: {\n      pattern: /^\\{(?:\\{\\{|[%\\{])-?|-?(?:\\}\\}|[%\\}])\\}$/,\n      alias: 'punctuation'\n    },\n    string: {\n      pattern: /\"[^\"]*\"|'[^']*'/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:as|assign|break|(?:end)?(?:capture|case|comment|for|form|if|paginate|raw|style|tablerow|unless)|continue|cycle|decrement|echo|else|elsif|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\\b/,\n    object:\n      /\\b(?:address|all_country_option_tags|article|block|blog|cart|checkout|collection|color|country|country_option_tags|currency|current_page|current_tags|customer|customer_address|date|discount_allocation|discount_application|external_video|filter|filter_value|font|forloop|fulfillment|generic_file|gift_card|group|handle|image|line_item|link|linklist|localization|location|measurement|media|metafield|model|model_source|order|page|page_description|page_image|page_title|part|policy|product|product_option|recommendations|request|robots|routes|rule|script|search|selling_plan|selling_plan_allocation|selling_plan_group|shipping_method|shop|shop_locale|sitemap|store_availability|tax_line|template|theme|transaction|unit_price_measurement|user_agent|variant|video|video_source)\\b/,\n    function: [\n      {\n        pattern: /(\\|\\s*)\\w+/,\n        lookbehind: true,\n        alias: 'filter'\n      },\n      {\n        // array functions\n        pattern: /(\\.\\s*)(?:first|last|size)/,\n        lookbehind: true\n      }\n    ],\n    boolean: /\\b(?:false|nil|true)\\b/,\n    range: {\n      pattern: /\\.\\./,\n      alias: 'operator'\n    },\n    // https://github.com/Shopify/liquid/blob/698f5e0d967423e013f6169d9111bd969bd78337/lib/liquid/lexer.rb#L21\n    number: /\\b\\d+(?:\\.\\d+)?\\b/,\n    operator: /[!=]=|<>|[<>]=?|[|?:=-]|\\b(?:and|contains(?=\\s)|or)\\b/,\n    punctuation: /[.,\\[\\]()]/,\n    empty: {\n      pattern: /\\bempty\\b/,\n      alias: 'keyword'\n    }\n  }\n  Prism.hooks.add('before-tokenize', function (env) {\n    var liquidPattern =\n      /\\{%\\s*comment\\s*%\\}[\\s\\S]*?\\{%\\s*endcomment\\s*%\\}|\\{(?:%[\\s\\S]*?%|\\{\\{[\\s\\S]*?\\}\\}|\\{[\\s\\S]*?\\})\\}/g\n    var insideRaw = false\n    Prism.languages['markup-templating'].buildPlaceholders(\n      env,\n      'liquid',\n      liquidPattern,\n      function (match) {\n        var tagMatch = /^\\{%-?\\s*(\\w+)/.exec(match)\n        if (tagMatch) {\n          var tag = tagMatch[1]\n          if (tag === 'raw' && !insideRaw) {\n            insideRaw = true\n            return true\n          } else if (tag === 'endraw') {\n            insideRaw = false\n            return true\n          }\n        }\n        return !insideRaw\n      }\n    )\n  })\n  Prism.hooks.add('after-tokenize', function (env) {\n    Prism.languages['markup-templating'].tokenizePlaceholders(env, 'liquid')\n  })\n}\n","'use strict'\n\nmodule.exports = lisp\nlisp.displayName = 'lisp'\nlisp.aliases = []\nfunction lisp(Prism) {\n  ;(function (Prism) {\n    /**\n     * Functions to construct regular expressions\n     * e.g. (interactive ... or (interactive)\n     *\n     * @param {string} name\n     * @returns {RegExp}\n     */\n    function simple_form(name) {\n      return RegExp(/(\\()/.source + '(?:' + name + ')' + /(?=[\\s\\)])/.source)\n    }\n    /**\n     * booleans and numbers\n     *\n     * @param {string} pattern\n     * @returns {RegExp}\n     */\n    function primitive(pattern) {\n      return RegExp(\n        /([\\s([])/.source + '(?:' + pattern + ')' + /(?=[\\s)])/.source\n      )\n    } // Patterns in regular expressions\n    // Symbol name. See https://www.gnu.org/software/emacs/manual/html_node/elisp/Symbol-Type.html\n    // & and : are excluded as they are usually used for special purposes\n    var symbol = /(?!\\d)[-+*/~!@$%^=<>{}\\w]+/.source // symbol starting with & used in function arguments\n    var marker = '&' + symbol // Open parenthesis for look-behind\n    var par = '(\\\\()'\n    var endpar = '(?=\\\\))' // End the pattern with look-ahead space\n    var space = '(?=\\\\s)'\n    var nestedPar =\n      /(?:[^()]|\\((?:[^()]|\\((?:[^()]|\\((?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))*\\))*\\))*\\))*/\n        .source\n    var language = {\n      // Three or four semicolons are considered a heading.\n      // See https://www.gnu.org/software/emacs/manual/html_node/elisp/Comment-Tips.html\n      heading: {\n        pattern: /;;;.*/,\n        alias: ['comment', 'title']\n      },\n      comment: /;.*/,\n      string: {\n        pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n        greedy: true,\n        inside: {\n          argument: /[-A-Z]+(?=[.,\\s])/,\n          symbol: RegExp('`' + symbol + \"'\")\n        }\n      },\n      'quoted-symbol': {\n        pattern: RegExp(\"#?'\" + symbol),\n        alias: ['variable', 'symbol']\n      },\n      'lisp-property': {\n        pattern: RegExp(':' + symbol),\n        alias: 'property'\n      },\n      splice: {\n        pattern: RegExp(',@?' + symbol),\n        alias: ['symbol', 'variable']\n      },\n      keyword: [\n        {\n          pattern: RegExp(\n            par +\n              '(?:and|(?:cl-)?letf|cl-loop|cond|cons|error|if|(?:lexical-)?let\\\\*?|message|not|null|or|provide|require|setq|unless|use-package|when|while)' +\n              space\n          ),\n          lookbehind: true\n        },\n        {\n          pattern: RegExp(\n            par +\n              '(?:append|by|collect|concat|do|finally|for|in|return)' +\n              space\n          ),\n          lookbehind: true\n        }\n      ],\n      declare: {\n        pattern: simple_form(/declare/.source),\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      interactive: {\n        pattern: simple_form(/interactive/.source),\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      boolean: {\n        pattern: primitive(/nil|t/.source),\n        lookbehind: true\n      },\n      number: {\n        pattern: primitive(/[-+]?\\d+(?:\\.\\d*)?/.source),\n        lookbehind: true\n      },\n      defvar: {\n        pattern: RegExp(par + 'def(?:const|custom|group|var)\\\\s+' + symbol),\n        lookbehind: true,\n        inside: {\n          keyword: /^def[a-z]+/,\n          variable: RegExp(symbol)\n        }\n      },\n      defun: {\n        pattern: RegExp(\n          par +\n            /(?:cl-)?(?:defmacro|defun\\*?)\\s+/.source +\n            symbol +\n            /\\s+\\(/.source +\n            nestedPar +\n            /\\)/.source\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          keyword: /^(?:cl-)?def\\S+/,\n          // See below, this property needs to be defined later so that it can\n          // reference the language object.\n          arguments: null,\n          function: {\n            pattern: RegExp('(^\\\\s)' + symbol),\n            lookbehind: true\n          },\n          punctuation: /[()]/\n        }\n      },\n      lambda: {\n        pattern: RegExp(\n          par +\n            'lambda\\\\s+\\\\(\\\\s*(?:&?' +\n            symbol +\n            '(?:\\\\s+&?' +\n            symbol +\n            ')*\\\\s*)?\\\\)'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          keyword: /^lambda/,\n          // See below, this property needs to be defined later so that it can\n          // reference the language object.\n          arguments: null,\n          punctuation: /[()]/\n        }\n      },\n      car: {\n        pattern: RegExp(par + symbol),\n        lookbehind: true\n      },\n      punctuation: [\n        // open paren, brackets, and close paren\n        /(?:['`,]?\\(|[)\\[\\]])/, // cons\n        {\n          pattern: /(\\s)\\.(?=\\s)/,\n          lookbehind: true\n        }\n      ]\n    }\n    var arg = {\n      'lisp-marker': RegExp(marker),\n      varform: {\n        pattern: RegExp(\n          /\\(/.source + symbol + /\\s+(?=\\S)/.source + nestedPar + /\\)/.source\n        ),\n        inside: language\n      },\n      argument: {\n        pattern: RegExp(/(^|[\\s(])/.source + symbol),\n        lookbehind: true,\n        alias: 'variable'\n      },\n      rest: language\n    }\n    var forms = '\\\\S+(?:\\\\s+\\\\S+)*'\n    var arglist = {\n      pattern: RegExp(par + nestedPar + endpar),\n      lookbehind: true,\n      inside: {\n        'rest-vars': {\n          pattern: RegExp('&(?:body|rest)\\\\s+' + forms),\n          inside: arg\n        },\n        'other-marker-vars': {\n          pattern: RegExp('&(?:aux|optional)\\\\s+' + forms),\n          inside: arg\n        },\n        keys: {\n          pattern: RegExp('&key\\\\s+' + forms + '(?:\\\\s+&allow-other-keys)?'),\n          inside: arg\n        },\n        argument: {\n          pattern: RegExp(symbol),\n          alias: 'variable'\n        },\n        punctuation: /[()]/\n      }\n    }\n    language['lambda'].inside.arguments = arglist\n    language['defun'].inside.arguments = Prism.util.clone(arglist)\n    language['defun'].inside.arguments.inside.sublist = arglist\n    Prism.languages.lisp = language\n    Prism.languages.elisp = language\n    Prism.languages.emacs = language\n    Prism.languages['emacs-lisp'] = language\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = livescript\nlivescript.displayName = 'livescript'\nlivescript.aliases = []\nfunction livescript(Prism) {\n  Prism.languages.livescript = {\n    comment: [\n      {\n        pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|[^\\\\])#.*/,\n        lookbehind: true\n      }\n    ],\n    'interpolated-string': {\n      /* Look-behind and look-ahead prevents wrong behavior of the greedy pattern\n       * forcing it to match \"\"\"-quoted string when it would otherwise match \"-quoted first. */\n      pattern: /(^|[^\"])(\"\"\"|\")(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2(?!\")/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        variable: {\n          pattern: /(^|[^\\\\])#[a-z_](?:-?[a-z]|[\\d_])*/m,\n          lookbehind: true\n        },\n        interpolation: {\n          pattern: /(^|[^\\\\])#\\{[^}]+\\}/m,\n          lookbehind: true,\n          inside: {\n            'interpolation-punctuation': {\n              pattern: /^#\\{|\\}$/,\n              alias: 'variable'\n            } // See rest below\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    },\n    string: [\n      {\n        pattern: /('''|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n        greedy: true\n      },\n      {\n        pattern: /<\\[[\\s\\S]*?\\]>/,\n        greedy: true\n      },\n      /\\\\[^\\s,;\\])}]+/\n    ],\n    regex: [\n      {\n        pattern: /\\/\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|(?!\\/\\/)[^\\\\\\[])+\\/\\/[gimyu]{0,5}/,\n        greedy: true,\n        inside: {\n          comment: {\n            pattern: /(^|[^\\\\])#.*/,\n            lookbehind: true\n          }\n        }\n      },\n      {\n        pattern: /\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/[gimyu]{0,5}/,\n        greedy: true\n      }\n    ],\n    keyword: {\n      pattern:\n        /(^|(?!-).)\\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\\b/m,\n      lookbehind: true\n    },\n    'keyword-operator': {\n      pattern:\n        /(^|[^-])\\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?: not|nt)?|not|of|or|til|to|typeof|with|xor)(?!-)\\b)/m,\n      lookbehind: true,\n      alias: 'operator'\n    },\n    boolean: {\n      pattern: /(^|[^-])\\b(?:false|no|off|on|true|yes)(?!-)\\b/m,\n      lookbehind: true\n    },\n    argument: {\n      // Don't match .&. nor &&\n      pattern: /(^|(?!\\.&\\.)[^&])&(?!&)\\d*/m,\n      lookbehind: true,\n      alias: 'variable'\n    },\n    number: /\\b(?:\\d+~[\\da-z]+|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[a-z]\\w*)?)/i,\n    identifier: /[a-z_](?:-?[a-z]|[\\d_])*/i,\n    operator: [\n      // Spaced .\n      {\n        pattern: /( )\\.(?= )/,\n        lookbehind: true\n      }, // Full list, in order:\n      // .= .~ .. ...\n      // .&. .^. .<<. .>>. .>>>.\n      // := :: ::=\n      // &&\n      // || |>\n      // < << <<< <<<<\n      // <- <-- <-! <--!\n      // <~ <~~ <~! <~~!\n      // <| <= <?\n      // > >> >= >?\n      // - -- -> -->\n      // + ++\n      // @ @@\n      // % %%\n      // * **\n      // ! != !~=\n      // !~> !~~>\n      // !-> !-->\n      // ~ ~> ~~> ~=\n      // = ==\n      // ^ ^^\n      // / ?\n      /\\.(?:[=~]|\\.\\.?)|\\.(?:[&|^]|<<|>>>?)\\.|:(?:=|:=?)|&&|\\|[|>]|<(?:<<?<?|--?!?|~~?!?|[|=?])?|>[>=?]?|-(?:->?|>)?|\\+\\+?|@@?|%%?|\\*\\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\\^\\^?|[\\/?]/\n    ],\n    punctuation: /[(){}\\[\\]|.,:;`]/\n  }\n  Prism.languages.livescript['interpolated-string'].inside[\n    'interpolation'\n  ].inside.rest = Prism.languages.livescript\n}\n","'use strict'\n\nmodule.exports = llvm\nllvm.displayName = 'llvm'\nllvm.aliases = []\nfunction llvm(Prism) {\n  ;(function (Prism) {\n    Prism.languages.llvm = {\n      comment: /;.*/,\n      string: {\n        pattern: /\"[^\"]*\"/,\n        greedy: true\n      },\n      boolean: /\\b(?:false|true)\\b/,\n      variable: /[%@!#](?:(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+|\\d+)/i,\n      label: /(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+:/i,\n      type: {\n        pattern:\n          /\\b(?:double|float|fp128|half|i[1-9]\\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\\b/,\n        alias: 'class-name'\n      },\n      keyword: /\\b[a-z_][a-z_0-9]*\\b/,\n      number:\n        /[+-]?\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-Fa-f]+\\b|\\b0xK[\\dA-Fa-f]{20}\\b|\\b0x[ML][\\dA-Fa-f]{32}\\b|\\b0xH[\\dA-Fa-f]{4}\\b/,\n      punctuation: /[{}[\\];(),.!*=<>]/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = log\nlog.displayName = 'log'\nlog.aliases = []\nfunction log(Prism) {\n  // This is a language definition for generic log files.\n  // Since there is no one log format, this language definition has to support all formats to some degree.\n  //\n  // Based on https://github.com/MTDL9/vim-log-highlighting\n  Prism.languages.log = {\n    string: {\n      // Single-quoted strings must not be confused with plain text. E.g. Can't isn't Susan's Chris' toy\n      pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?![st] | \\w)(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n      greedy: true\n    },\n    exception: {\n      pattern:\n        /(^|[^\\w.])[a-z][\\w.]*(?:Error|Exception):.*(?:(?:\\r\\n?|\\n)[ \\t]*(?:at[ \\t].+|\\.{3}.*|Caused by:.*))+(?:(?:\\r\\n?|\\n)[ \\t]*\\.\\.\\. .*)?/,\n      lookbehind: true,\n      greedy: true,\n      alias: ['javastacktrace', 'language-javastacktrace'],\n      inside: Prism.languages['javastacktrace'] || {\n        keyword: /\\bat\\b/,\n        function: /[a-z_][\\w$]*(?=\\()/,\n        punctuation: /[.:()]/\n      }\n    },\n    level: [\n      {\n        pattern:\n          /\\b(?:ALERT|CRIT|CRITICAL|EMERG|EMERGENCY|ERR|ERROR|FAILURE|FATAL|SEVERE)\\b/,\n        alias: ['error', 'important']\n      },\n      {\n        pattern: /\\b(?:WARN|WARNING|WRN)\\b/,\n        alias: ['warning', 'important']\n      },\n      {\n        pattern: /\\b(?:DISPLAY|INF|INFO|NOTICE|STATUS)\\b/,\n        alias: ['info', 'keyword']\n      },\n      {\n        pattern: /\\b(?:DBG|DEBUG|FINE)\\b/,\n        alias: ['debug', 'keyword']\n      },\n      {\n        pattern: /\\b(?:FINER|FINEST|TRACE|TRC|VERBOSE|VRB)\\b/,\n        alias: ['trace', 'comment']\n      }\n    ],\n    property: {\n      pattern:\n        /((?:^|[\\]|])[ \\t]*)[a-z_](?:[\\w-]|\\b\\/\\b)*(?:[. ]\\(?\\w(?:[\\w-]|\\b\\/\\b)*\\)?)*:(?=\\s)/im,\n      lookbehind: true\n    },\n    separator: {\n      pattern: /(^|[^-+])-{3,}|={3,}|\\*{3,}|- - /m,\n      lookbehind: true,\n      alias: 'comment'\n    },\n    url: /\\b(?:file|ftp|https?):\\/\\/[^\\s|,;'\"]*[^\\s|,;'\">.]/,\n    email: {\n      pattern: /(^|\\s)[-\\w+.]+@[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*)+(?=\\s)/,\n      lookbehind: true,\n      alias: 'url'\n    },\n    'ip-address': {\n      pattern: /\\b(?:\\d{1,3}(?:\\.\\d{1,3}){3})\\b/,\n      alias: 'constant'\n    },\n    'mac-address': {\n      pattern: /\\b[a-f0-9]{2}(?::[a-f0-9]{2}){5}\\b/i,\n      alias: 'constant'\n    },\n    domain: {\n      pattern:\n        /(^|\\s)[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*)*\\.[a-z][a-z0-9-]+(?=\\s)/,\n      lookbehind: true,\n      alias: 'constant'\n    },\n    uuid: {\n      pattern:\n        /\\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\b/i,\n      alias: 'constant'\n    },\n    hash: {\n      pattern: /\\b(?:[a-f0-9]{32}){1,2}\\b/i,\n      alias: 'constant'\n    },\n    'file-path': {\n      pattern:\n        /\\b[a-z]:[\\\\/][^\\s|,;:(){}\\[\\]\"']+|(^|[\\s:\\[\\](>|])\\.{0,2}\\/\\w[^\\s|,;:(){}\\[\\]\"']*/i,\n      lookbehind: true,\n      greedy: true,\n      alias: 'string'\n    },\n    date: {\n      pattern: RegExp(\n        /\\b\\d{4}[-/]\\d{2}[-/]\\d{2}(?:T(?=\\d{1,2}:)|(?=\\s\\d{1,2}:))/.source +\n          '|' +\n          /\\b\\d{1,4}[-/ ](?:\\d{1,2}|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)[-/ ]\\d{2,4}T?\\b/\n            .source +\n          '|' +\n          /\\b(?:(?:Fri|Mon|Sat|Sun|Thu|Tue|Wed)(?:\\s{1,2}(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep))?|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)\\s{1,2}\\d{1,2}\\b/\n            .source,\n        'i'\n      ),\n      alias: 'number'\n    },\n    time: {\n      pattern:\n        /\\b\\d{1,2}:\\d{1,2}:\\d{1,2}(?:[.,:]\\d+)?(?:\\s?[+-]\\d{2}:?\\d{2}|Z)?\\b/,\n      alias: 'number'\n    },\n    boolean: /\\b(?:false|null|true)\\b/i,\n    number: {\n      pattern:\n        /(^|[^.\\w])(?:0x[a-f0-9]+|0o[0-7]+|0b[01]+|v?\\d[\\da-f]*(?:\\.\\d+)*(?:e[+-]?\\d+)?[a-z]{0,3}\\b)\\b(?!\\.\\w)/i,\n      lookbehind: true\n    },\n    operator: /[;:?<=>~/@!$%&+\\-|^(){}*#]/,\n    punctuation: /[\\[\\].,]/\n  }\n}\n","'use strict'\n\nmodule.exports = lolcode\nlolcode.displayName = 'lolcode'\nlolcode.aliases = []\nfunction lolcode(Prism) {\n  Prism.languages.lolcode = {\n    comment: [/\\bOBTW\\s[\\s\\S]*?\\sTLDR\\b/, /\\bBTW.+/],\n    string: {\n      pattern: /\"(?::.|[^\":])*\"/,\n      inside: {\n        variable: /:\\{[^}]+\\}/,\n        symbol: [/:\\([a-f\\d]+\\)/i, /:\\[[^\\]]+\\]/, /:[)>o\":]/]\n      },\n      greedy: true\n    },\n    number: /(?:\\B-)?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)/,\n    symbol: {\n      pattern: /(^|\\s)(?:A )?(?:BUKKIT|NOOB|NUMBAR|NUMBR|TROOF|YARN)(?=\\s|,|$)/,\n      lookbehind: true,\n      inside: {\n        keyword: /A(?=\\s)/\n      }\n    },\n    label: {\n      pattern: /((?:^|\\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\\w*/,\n      lookbehind: true,\n      alias: 'string'\n    },\n    function: {\n      pattern: /((?:^|\\s)(?:HOW IZ I|I IZ|IZ) )[a-zA-Z]\\w*/,\n      lookbehind: true\n    },\n    keyword: [\n      {\n        pattern:\n          /(^|\\s)(?:AN|FOUND YR|GIMMEH|GTFO|HAI|HAS A|HOW IZ I|I HAS A|I IZ|IF U SAY SO|IM IN YR|IM OUTTA YR|IS NOW(?: A)?|ITZ(?: A)?|IZ|KTHX|KTHXBYE|LIEK(?: A)?|MAEK|MEBBE|MKAY|NERFIN|NO WAI|O HAI IM|O RLY\\?|OIC|OMG|OMGWTF|R|SMOOSH|SRS|TIL|UPPIN|VISIBLE|WILE|WTF\\?|YA RLY|YR)(?=\\s|,|$)/,\n        lookbehind: true\n      },\n      /'Z(?=\\s|,|$)/\n    ],\n    boolean: {\n      pattern: /(^|\\s)(?:FAIL|WIN)(?=\\s|,|$)/,\n      lookbehind: true\n    },\n    variable: {\n      pattern: /(^|\\s)IT(?=\\s|,|$)/,\n      lookbehind: true\n    },\n    operator: {\n      pattern:\n        /(^|\\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:ALL|ANY|BIGGR|BOTH|DIFF|EITHER|MOD|PRODUKT|QUOSHUNT|SMALLR|SUM|WON) OF)(?=\\s|,|$)/,\n      lookbehind: true\n    },\n    punctuation: /\\.{3}|…|,|!/\n  }\n}\n","'use strict'\n\nmodule.exports = lua\nlua.displayName = 'lua'\nlua.aliases = []\nfunction lua(Prism) {\n  Prism.languages.lua = {\n    comment: /^#!.+|--(?:\\[(=*)\\[[\\s\\S]*?\\]\\1\\]|.*)/m,\n    // \\z may be used to skip the following space\n    string: {\n      pattern:\n        /([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\z(?:\\r\\n|\\s)|\\\\(?:\\r\\n|[^z]))*\\1|\\[(=*)\\[[\\s\\S]*?\\]\\2\\]/,\n      greedy: true\n    },\n    number:\n      /\\b0x[a-f\\d]+(?:\\.[a-f\\d]*)?(?:p[+-]?\\d+)?\\b|\\b\\d+(?:\\.\\B|(?:\\.\\d*)?(?:e[+-]?\\d+)?\\b)|\\B\\.\\d+(?:e[+-]?\\d+)?\\b/i,\n    keyword:\n      /\\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\\b/,\n    function: /(?!\\d)\\w+(?=\\s*(?:[({]))/,\n    operator: [\n      /[-+*%^&|#]|\\/\\/?|<[<=]?|>[>=]?|[=~]=?/,\n      {\n        // Match \"..\" but don't break \"...\"\n        pattern: /(^|[^.])\\.\\.(?!\\.)/,\n        lookbehind: true\n      }\n    ],\n    punctuation: /[\\[\\](){},;]|\\.+|:+/\n  }\n}\n","'use strict'\n\nmodule.exports = magma\nmagma.displayName = 'magma'\nmagma.aliases = []\nfunction magma(Prism) {\n  Prism.languages.magma = {\n    output: {\n      pattern:\n        /^(>.*(?:\\r(?:\\n|(?!\\n))|\\n))(?!>)(?:.+|(?:\\r(?:\\n|(?!\\n))|\\n)(?!>).*)(?:(?:\\r(?:\\n|(?!\\n))|\\n)(?!>).*)*/m,\n      lookbehind: true,\n      greedy: true\n    },\n    comment: {\n      pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n      greedy: true\n    },\n    string: {\n      pattern: /(^|[^\\\\\"])\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"/,\n      lookbehind: true,\n      greedy: true\n    },\n    // http://magma.maths.usyd.edu.au/magma/handbook/text/82\n    keyword:\n      /\\b(?:_|adj|and|assert|assert2|assert3|assigned|break|by|case|cat|catch|clear|cmpeq|cmpne|continue|declare|default|delete|diff|div|do|elif|else|end|eq|error|eval|exists|exit|for|forall|forward|fprintf|freeze|function|ge|gt|if|iload|import|in|intrinsic|is|join|le|load|local|lt|meet|mod|ne|not|notadj|notin|notsubset|or|print|printf|procedure|quit|random|read|readi|repeat|require|requirege|requirerange|restore|return|save|sdiff|select|subset|then|time|to|try|until|vprint|vprintf|vtime|when|where|while|xor)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    generator: {\n      pattern: /\\b[a-z_]\\w*(?=\\s*<)/i,\n      alias: 'class-name'\n    },\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    number: {\n      pattern:\n        /(^|[^\\w.]|\\.\\.)(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?(?:_[a-z]?)?(?=$|[^\\w.]|\\.\\.)/,\n      lookbehind: true\n    },\n    operator: /->|[-+*/^~!|#=]|:=|\\.\\./,\n    punctuation: /[()[\\]{}<>,;.:]/\n  }\n}\n","'use strict'\n\nmodule.exports = makefile\nmakefile.displayName = 'makefile'\nmakefile.aliases = []\nfunction makefile(Prism) {\n  Prism.languages.makefile = {\n    comment: {\n      pattern: /(^|[^\\\\])#(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])*/,\n      lookbehind: true\n    },\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    'builtin-target': {\n      pattern: /\\.[A-Z][^:#=\\s]+(?=\\s*:(?!=))/,\n      alias: 'builtin'\n    },\n    target: {\n      pattern: /^(?:[^:=\\s]|[ \\t]+(?![\\s:]))+(?=\\s*:(?!=))/m,\n      alias: 'symbol',\n      inside: {\n        variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|(?=[({]))/\n      }\n    },\n    variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|\\([@*%<^+?][DF]\\)|(?=[({]))/,\n    // Directives\n    keyword:\n      /-include\\b|\\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\\b/,\n    function: {\n      pattern:\n        /(\\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \\t])/,\n      lookbehind: true\n    },\n    operator: /(?:::|[?:+!])?=|[|@]/,\n    punctuation: /[:;(){}]/\n  }\n}\n","'use strict'\n\nmodule.exports = markdown\nmarkdown.displayName = 'markdown'\nmarkdown.aliases = ['md']\nfunction markdown(Prism) {\n  ;(function (Prism) {\n    // Allow only one line break\n    var inner = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source\n    /**\n     * This function is intended for the creation of the bold or italic pattern.\n     *\n     * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.\n     *\n     * _Note:_ Keep in mind that this adds a capturing group.\n     *\n     * @param {string} pattern\n     * @returns {RegExp}\n     */\n    function createInline(pattern) {\n      pattern = pattern.replace(/<inner>/g, function () {\n        return inner\n      })\n      return RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + '(?:' + pattern + ')')\n    }\n    var tableCell = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/\n      .source\n    var tableRow =\n      /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(\n        /__/g,\n        function () {\n          return tableCell\n        }\n      )\n    var tableLine =\n      /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/\n        .source\n    Prism.languages.markdown = Prism.languages.extend('markup', {})\n    Prism.languages.insertBefore('markdown', 'prolog', {\n      'front-matter-block': {\n        pattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          punctuation: /^---|---$/,\n          'front-matter': {\n            pattern: /\\S+(?:\\s+\\S+)*/,\n            alias: ['yaml', 'language-yaml'],\n            inside: Prism.languages.yaml\n          }\n        }\n      },\n      blockquote: {\n        // > ...\n        pattern: /^>(?:[\\t ]*>)*/m,\n        alias: 'punctuation'\n      },\n      table: {\n        pattern: RegExp(\n          '^' + tableRow + tableLine + '(?:' + tableRow + ')*',\n          'm'\n        ),\n        inside: {\n          'table-data-rows': {\n            pattern: RegExp(\n              '^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'\n            ),\n            lookbehind: true,\n            inside: {\n              'table-data': {\n                pattern: RegExp(tableCell),\n                inside: Prism.languages.markdown\n              },\n              punctuation: /\\|/\n            }\n          },\n          'table-line': {\n            pattern: RegExp('^(' + tableRow + ')' + tableLine + '$'),\n            lookbehind: true,\n            inside: {\n              punctuation: /\\||:?-{3,}:?/\n            }\n          },\n          'table-header-row': {\n            pattern: RegExp('^' + tableRow + '$'),\n            inside: {\n              'table-header': {\n                pattern: RegExp(tableCell),\n                alias: 'important',\n                inside: Prism.languages.markdown\n              },\n              punctuation: /\\|/\n            }\n          }\n        }\n      },\n      code: [\n        {\n          // Prefixed by 4 spaces or 1 tab and preceded by an empty line\n          pattern:\n            /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/,\n          lookbehind: true,\n          alias: 'keyword'\n        },\n        {\n          // ```optional language\n          // code block\n          // ```\n          pattern: /^```[\\s\\S]*?^```$/m,\n          greedy: true,\n          inside: {\n            'code-block': {\n              pattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m,\n              lookbehind: true\n            },\n            'code-language': {\n              pattern: /^(```).+/,\n              lookbehind: true\n            },\n            punctuation: /```/\n          }\n        }\n      ],\n      title: [\n        {\n          // title 1\n          // =======\n          // title 2\n          // -------\n          pattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m,\n          alias: 'important',\n          inside: {\n            punctuation: /==+$|--+$/\n          }\n        },\n        {\n          // # title 1\n          // ###### title 6\n          pattern: /(^\\s*)#.+/m,\n          lookbehind: true,\n          alias: 'important',\n          inside: {\n            punctuation: /^#+|#+$/\n          }\n        }\n      ],\n      hr: {\n        // ***\n        // ---\n        // * * *\n        // -----------\n        pattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      list: {\n        // * item\n        // + item\n        // - item\n        // 1. item\n        pattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      'url-reference': {\n        // [id]: http://example.com \"Optional title\"\n        // [id]: http://example.com 'Optional title'\n        // [id]: http://example.com (Optional title)\n        // [id]: <http://example.com> \"Optional title\"\n        pattern:\n          /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\n        inside: {\n          variable: {\n            pattern: /^(!?\\[)[^\\]]+/,\n            lookbehind: true\n          },\n          string:\n            /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\n          punctuation: /^[\\[\\]!:]|[<>]/\n        },\n        alias: 'url'\n      },\n      bold: {\n        // **strong**\n        // __strong__\n        // allow one nested instance of italic text using the same delimiter\n        pattern: createInline(\n          /\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/\n            .source\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          content: {\n            pattern: /(^..)[\\s\\S]+(?=..$)/,\n            lookbehind: true,\n            inside: {} // see below\n          },\n          punctuation: /\\*\\*|__/\n        }\n      },\n      italic: {\n        // *em*\n        // _em_\n        // allow one nested instance of bold text using the same delimiter\n        pattern: createInline(\n          /\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/\n            .source\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          content: {\n            pattern: /(^.)[\\s\\S]+(?=.$)/,\n            lookbehind: true,\n            inside: {} // see below\n          },\n          punctuation: /[*_]/\n        }\n      },\n      strike: {\n        // ~~strike through~~\n        // ~strike~\n        // eslint-disable-next-line regexp/strict\n        pattern: createInline(/(~~?)(?:(?!~)<inner>)+\\2/.source),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          content: {\n            pattern: /(^~~?)[\\s\\S]+(?=\\1$)/,\n            lookbehind: true,\n            inside: {} // see below\n          },\n          punctuation: /~~?/\n        }\n      },\n      'code-snippet': {\n        // `code`\n        // ``code``\n        pattern:\n          /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/,\n        lookbehind: true,\n        greedy: true,\n        alias: ['code', 'keyword']\n      },\n      url: {\n        // [example](http://example.com \"Optional title\")\n        // [example][id]\n        // [example] [id]\n        pattern: createInline(\n          /!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/\n            .source\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          operator: /^!/,\n          content: {\n            pattern: /(^\\[)[^\\]]+(?=\\])/,\n            lookbehind: true,\n            inside: {} // see below\n          },\n          variable: {\n            pattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/,\n            lookbehind: true\n          },\n          url: {\n            pattern: /(^\\]\\()[^\\s)]+/,\n            lookbehind: true\n          },\n          string: {\n            pattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/,\n            lookbehind: true\n          }\n        }\n      }\n    })\n    ;['url', 'bold', 'italic', 'strike'].forEach(function (token) {\n      ;['url', 'bold', 'italic', 'strike', 'code-snippet'].forEach(function (\n        inside\n      ) {\n        if (token !== inside) {\n          Prism.languages.markdown[token].inside.content.inside[inside] =\n            Prism.languages.markdown[inside]\n        }\n      })\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      if (env.language !== 'markdown' && env.language !== 'md') {\n        return\n      }\n      function walkTokens(tokens) {\n        if (!tokens || typeof tokens === 'string') {\n          return\n        }\n        for (var i = 0, l = tokens.length; i < l; i++) {\n          var token = tokens[i]\n          if (token.type !== 'code') {\n            walkTokens(token.content)\n            continue\n          }\n          /*\n           * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token\n           * is optional. But the grammar is defined so that there is only one case we have to handle:\n           *\n           * token.content = [\n           *     <span class=\"punctuation\">```</span>,\n           *     <span class=\"code-language\">xxxx</span>,\n           *     '\\n', // exactly one new lines (\\r or \\n or \\r\\n)\n           *     <span class=\"code-block\">...</span>,\n           *     '\\n', // exactly one new lines again\n           *     <span class=\"punctuation\">```</span>\n           * ];\n           */\n          var codeLang = token.content[1]\n          var codeBlock = token.content[3]\n          if (\n            codeLang &&\n            codeBlock &&\n            codeLang.type === 'code-language' &&\n            codeBlock.type === 'code-block' &&\n            typeof codeLang.content === 'string'\n          ) {\n            // this might be a language that Prism does not support\n            // do some replacements to support C++, C#, and F#\n            var lang = codeLang.content\n              .replace(/\\b#/g, 'sharp')\n              .replace(/\\b\\+\\+/g, 'pp') // only use the first word\n            lang = (/[a-z][\\w-]*/i.exec(lang) || [''])[0].toLowerCase()\n            var alias = 'language-' + lang // add alias\n            if (!codeBlock.alias) {\n              codeBlock.alias = [alias]\n            } else if (typeof codeBlock.alias === 'string') {\n              codeBlock.alias = [codeBlock.alias, alias]\n            } else {\n              codeBlock.alias.push(alias)\n            }\n          }\n        }\n      }\n      walkTokens(env.tokens)\n    })\n    Prism.hooks.add('wrap', function (env) {\n      if (env.type !== 'code-block') {\n        return\n      }\n      var codeLang = ''\n      for (var i = 0, l = env.classes.length; i < l; i++) {\n        var cls = env.classes[i]\n        var match = /language-(.+)/.exec(cls)\n        if (match) {\n          codeLang = match[1]\n          break\n        }\n      }\n      var grammar = Prism.languages[codeLang]\n      if (!grammar) {\n        if (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) {\n          var id =\n            'md-' +\n            new Date().valueOf() +\n            '-' +\n            Math.floor(Math.random() * 1e16)\n          env.attributes['id'] = id\n          Prism.plugins.autoloader.loadLanguages(codeLang, function () {\n            var ele = document.getElementById(id)\n            if (ele) {\n              ele.innerHTML = Prism.highlight(\n                ele.textContent,\n                Prism.languages[codeLang],\n                codeLang\n              )\n            }\n          })\n        }\n      } else {\n        env.content = Prism.highlight(\n          textContent(env.content.value),\n          grammar,\n          codeLang\n        )\n      }\n    })\n    var tagPattern = RegExp(Prism.languages.markup.tag.pattern.source, 'gi')\n    /**\n     * A list of known entity names.\n     *\n     * This will always be incomplete to save space. The current list is the one used by lowdash's unescape function.\n     *\n     * @see {@link https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/unescape.js#L2}\n     */\n    var KNOWN_ENTITY_NAMES = {\n      amp: '&',\n      lt: '<',\n      gt: '>',\n      quot: '\"'\n    } // IE 11 doesn't support `String.fromCodePoint`\n    var fromCodePoint = String.fromCodePoint || String.fromCharCode\n    /**\n     * Returns the text content of a given HTML source code string.\n     *\n     * @param {string} html\n     * @returns {string}\n     */\n    function textContent(html) {\n      // remove all tags\n      var text = html.replace(tagPattern, '') // decode known entities\n      text = text.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function (m, code) {\n        code = code.toLowerCase()\n        if (code[0] === '#') {\n          var value\n          if (code[1] === 'x') {\n            value = parseInt(code.slice(2), 16)\n          } else {\n            value = Number(code.slice(1))\n          }\n          return fromCodePoint(value)\n        } else {\n          var known = KNOWN_ENTITY_NAMES[code]\n          if (known) {\n            return known\n          } // unable to decode\n          return m\n        }\n      })\n      return text\n    }\n    Prism.languages.md = Prism.languages.markdown\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = markupTemplating\nmarkupTemplating.displayName = 'markupTemplating'\nmarkupTemplating.aliases = []\nfunction markupTemplating(Prism) {\n  ;(function (Prism) {\n    /**\n     * Returns the placeholder for the given language id and index.\n     *\n     * @param {string} language\n     * @param {string|number} index\n     * @returns {string}\n     */\n    function getPlaceholder(language, index) {\n      return '___' + language.toUpperCase() + index + '___'\n    }\n    Object.defineProperties((Prism.languages['markup-templating'] = {}), {\n      buildPlaceholders: {\n        /**\n         * Tokenize all inline templating expressions matching `placeholderPattern`.\n         *\n         * If `replaceFilter` is provided, only matches of `placeholderPattern` for which `replaceFilter` returns\n         * `true` will be replaced.\n         *\n         * @param {object} env The environment of the `before-tokenize` hook.\n         * @param {string} language The language id.\n         * @param {RegExp} placeholderPattern The matches of this pattern will be replaced by placeholders.\n         * @param {(match: string) => boolean} [replaceFilter]\n         */\n        value: function (env, language, placeholderPattern, replaceFilter) {\n          if (env.language !== language) {\n            return\n          }\n          var tokenStack = (env.tokenStack = [])\n          env.code = env.code.replace(placeholderPattern, function (match) {\n            if (typeof replaceFilter === 'function' && !replaceFilter(match)) {\n              return match\n            }\n            var i = tokenStack.length\n            var placeholder // Check for existing strings\n            while (\n              env.code.indexOf((placeholder = getPlaceholder(language, i))) !==\n              -1\n            ) {\n              ++i\n            } // Create a sparse array\n            tokenStack[i] = match\n            return placeholder\n          }) // Switch the grammar to markup\n          env.grammar = Prism.languages.markup\n        }\n      },\n      tokenizePlaceholders: {\n        /**\n         * Replace placeholders with proper tokens after tokenizing.\n         *\n         * @param {object} env The environment of the `after-tokenize` hook.\n         * @param {string} language The language id.\n         */\n        value: function (env, language) {\n          if (env.language !== language || !env.tokenStack) {\n            return\n          } // Switch the grammar back\n          env.grammar = Prism.languages[language]\n          var j = 0\n          var keys = Object.keys(env.tokenStack)\n          function walkTokens(tokens) {\n            for (var i = 0; i < tokens.length; i++) {\n              // all placeholders are replaced already\n              if (j >= keys.length) {\n                break\n              }\n              var token = tokens[i]\n              if (\n                typeof token === 'string' ||\n                (token.content && typeof token.content === 'string')\n              ) {\n                var k = keys[j]\n                var t = env.tokenStack[k]\n                var s = typeof token === 'string' ? token : token.content\n                var placeholder = getPlaceholder(language, k)\n                var index = s.indexOf(placeholder)\n                if (index > -1) {\n                  ++j\n                  var before = s.substring(0, index)\n                  var middle = new Prism.Token(\n                    language,\n                    Prism.tokenize(t, env.grammar),\n                    'language-' + language,\n                    t\n                  )\n                  var after = s.substring(index + placeholder.length)\n                  var replacement = []\n                  if (before) {\n                    replacement.push.apply(replacement, walkTokens([before]))\n                  }\n                  replacement.push(middle)\n                  if (after) {\n                    replacement.push.apply(replacement, walkTokens([after]))\n                  }\n                  if (typeof token === 'string') {\n                    tokens.splice.apply(tokens, [i, 1].concat(replacement))\n                  } else {\n                    token.content = replacement\n                  }\n                }\n              } else if (\n                token.content\n                /* && typeof token.content !== 'string' */\n              ) {\n                walkTokens(token.content)\n              }\n            }\n            return tokens\n          }\n          walkTokens(env.tokens)\n        }\n      }\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = markup\nmarkup.displayName = 'markup'\nmarkup.aliases = ['html', 'mathml', 'svg', 'xml', 'ssml', 'atom', 'rss']\nfunction markup(Prism) {\n  Prism.languages.markup = {\n    comment: {\n      pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n      greedy: true\n    },\n    prolog: {\n      pattern: /<\\?[\\s\\S]+?\\?>/,\n      greedy: true\n    },\n    doctype: {\n      // https://www.w3.org/TR/xml/#NT-doctypedecl\n      pattern:\n        /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n      greedy: true,\n      inside: {\n        'internal-subset': {\n          pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n          lookbehind: true,\n          greedy: true,\n          inside: null // see below\n        },\n        string: {\n          pattern: /\"[^\"]*\"|'[^']*'/,\n          greedy: true\n        },\n        punctuation: /^<!|>$|[[\\]]/,\n        'doctype-tag': /^DOCTYPE/i,\n        name: /[^\\s<>'\"]+/\n      }\n    },\n    cdata: {\n      pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n      greedy: true\n    },\n    tag: {\n      pattern:\n        /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n      greedy: true,\n      inside: {\n        tag: {\n          pattern: /^<\\/?[^\\s>\\/]+/,\n          inside: {\n            punctuation: /^<\\/?/,\n            namespace: /^[^\\s>\\/:]+:/\n          }\n        },\n        'special-attr': [],\n        'attr-value': {\n          pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n          inside: {\n            punctuation: [\n              {\n                pattern: /^=/,\n                alias: 'attr-equals'\n              },\n              /\"|'/\n            ]\n          }\n        },\n        punctuation: /\\/?>/,\n        'attr-name': {\n          pattern: /[^\\s>\\/]+/,\n          inside: {\n            namespace: /^[^\\s>\\/:]+:/\n          }\n        }\n      }\n    },\n    entity: [\n      {\n        pattern: /&[\\da-z]{1,8};/i,\n        alias: 'named-entity'\n      },\n      /&#x?[\\da-f]{1,8};/i\n    ]\n  }\n  Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n    Prism.languages.markup['entity']\n  Prism.languages.markup['doctype'].inside['internal-subset'].inside =\n    Prism.languages.markup // Plugin to make entity title show the real entity, idea by Roman Komarov\n  Prism.hooks.add('wrap', function (env) {\n    if (env.type === 'entity') {\n      env.attributes['title'] = env.content.value.replace(/&amp;/, '&')\n    }\n  })\n  Object.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n    /**\n     * Adds an inlined language to markup.\n     *\n     * An example of an inlined language is CSS with `<style>` tags.\n     *\n     * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n     * case insensitive.\n     * @param {string} lang The language key.\n     * @example\n     * addInlined('style', 'css');\n     */\n    value: function addInlined(tagName, lang) {\n      var includedCdataInside = {}\n      includedCdataInside['language-' + lang] = {\n        pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n        lookbehind: true,\n        inside: Prism.languages[lang]\n      }\n      includedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i\n      var inside = {\n        'included-cdata': {\n          pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n          inside: includedCdataInside\n        }\n      }\n      inside['language-' + lang] = {\n        pattern: /[\\s\\S]+/,\n        inside: Prism.languages[lang]\n      }\n      var def = {}\n      def[tagName] = {\n        pattern: RegExp(\n          /(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(\n            /__/g,\n            function () {\n              return tagName\n            }\n          ),\n          'i'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: inside\n      }\n      Prism.languages.insertBefore('markup', 'cdata', def)\n    }\n  })\n  Object.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n    /**\n     * Adds an pattern to highlight languages embedded in HTML attributes.\n     *\n     * An example of an inlined language is CSS with `style` attributes.\n     *\n     * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n     * case insensitive.\n     * @param {string} lang The language key.\n     * @example\n     * addAttribute('style', 'css');\n     */\n    value: function (attrName, lang) {\n      Prism.languages.markup.tag.inside['special-attr'].push({\n        pattern: RegExp(\n          /(^|[\"'\\s])/.source +\n            '(?:' +\n            attrName +\n            ')' +\n            /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source,\n          'i'\n        ),\n        lookbehind: true,\n        inside: {\n          'attr-name': /^[^\\s=]+/,\n          'attr-value': {\n            pattern: /=[\\s\\S]+/,\n            inside: {\n              value: {\n                pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n                lookbehind: true,\n                alias: [lang, 'language-' + lang],\n                inside: Prism.languages[lang]\n              },\n              punctuation: [\n                {\n                  pattern: /^=/,\n                  alias: 'attr-equals'\n                },\n                /\"|'/\n              ]\n            }\n          }\n        }\n      })\n    }\n  })\n  Prism.languages.html = Prism.languages.markup\n  Prism.languages.mathml = Prism.languages.markup\n  Prism.languages.svg = Prism.languages.markup\n  Prism.languages.xml = Prism.languages.extend('markup', {})\n  Prism.languages.ssml = Prism.languages.xml\n  Prism.languages.atom = Prism.languages.xml\n  Prism.languages.rss = Prism.languages.xml\n}\n","'use strict'\n\nmodule.exports = matlab\nmatlab.displayName = 'matlab'\nmatlab.aliases = []\nfunction matlab(Prism) {\n  Prism.languages.matlab = {\n    comment: [/%\\{[\\s\\S]*?\\}%/, /%.+/],\n    string: {\n      pattern: /\\B'(?:''|[^'\\r\\n])*'/,\n      greedy: true\n    },\n    // FIXME We could handle imaginary numbers as a whole\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?(?:[ij])?|\\b[ij]\\b/,\n    keyword:\n      /\\b(?:NaN|break|case|catch|continue|else|elseif|end|for|function|if|inf|otherwise|parfor|pause|pi|return|switch|try|while)\\b/,\n    function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n    operator: /\\.?[*^\\/\\\\']|[+\\-:@]|[<>=~]=?|&&?|\\|\\|?/,\n    punctuation: /\\.{3}|[.,;\\[\\](){}!]/\n  }\n}\n","'use strict'\n\nmodule.exports = maxscript\nmaxscript.displayName = 'maxscript'\nmaxscript.aliases = []\nfunction maxscript(Prism) {\n  ;(function (Prism) {\n    var keywords =\n      /\\b(?:about|and|animate|as|at|attributes|by|case|catch|collect|continue|coordsys|do|else|exit|fn|for|from|function|global|if|in|local|macroscript|mapped|max|not|of|off|on|or|parameters|persistent|plugin|rcmenu|return|rollout|set|struct|then|throw|to|tool|try|undo|utility|when|where|while|with)\\b/i\n    Prism.languages.maxscript = {\n      comment: {\n        pattern: /\\/\\*[\\s\\S]*?(?:\\*\\/|$)|--.*/,\n        greedy: true\n      },\n      string: {\n        pattern: /(^|[^\"\\\\@])(?:\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|@\"[^\"]*\")/,\n        lookbehind: true,\n        greedy: true\n      },\n      path: {\n        pattern: /\\$(?:[\\w/\\\\.*?]|'[^']*')*/,\n        greedy: true,\n        alias: 'string'\n      },\n      'function-call': {\n        pattern: RegExp(\n          '((?:' + // start of line\n            (/^/.source +\n              '|' + // operators and other language constructs\n              /[;=<>+\\-*/^({\\[]/.source +\n              '|' + // keywords as part of statements\n              /\\b(?:and|by|case|catch|collect|do|else|if|in|not|or|return|then|to|try|where|while|with)\\b/\n                .source) +\n            ')[ \\t]*)' +\n            '(?!' +\n            keywords.source +\n            ')' +\n            /[a-z_]\\w*\\b/.source +\n            '(?=[ \\t]*(?:' + // variable\n            ('(?!' +\n              keywords.source +\n              ')' +\n              /[a-z_]/.source +\n              '|' + // number\n              /\\d|-\\.?\\d/.source +\n              '|' + // other expressions or literals\n              /[({'\"$@#?]/.source) +\n            '))',\n          'im'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'function'\n      },\n      'function-definition': {\n        pattern: /(\\b(?:fn|function)\\s+)\\w+\\b/i,\n        lookbehind: true,\n        alias: 'function'\n      },\n      argument: {\n        pattern: /\\b[a-z_]\\w*(?=:)/i,\n        alias: 'attr-name'\n      },\n      keyword: keywords,\n      boolean: /\\b(?:false|true)\\b/,\n      time: {\n        pattern:\n          /(^|[^\\w.])(?:(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eEdD][+-]\\d+|[LP])?[msft])+|\\d+:\\d+(?:\\.\\d*)?)(?![\\w.:])/,\n        lookbehind: true,\n        alias: 'number'\n      },\n      number: [\n        {\n          pattern:\n            /(^|[^\\w.])(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eEdD][+-]\\d+|[LP])?|0x[a-fA-F0-9]+)(?![\\w.:])/,\n          lookbehind: true\n        },\n        /\\b(?:e|pi)\\b/\n      ],\n      constant: /\\b(?:dontcollect|ok|silentValue|undefined|unsupplied)\\b/,\n      color: {\n        pattern: /\\b(?:black|blue|brown|gray|green|orange|red|white|yellow)\\b/i,\n        alias: 'constant'\n      },\n      operator: /[-+*/<>=!]=?|[&^?]|#(?!\\()/,\n      punctuation: /[()\\[\\]{}.:,;]|#(?=\\()|\\\\$/m\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = mel\nmel.displayName = 'mel'\nmel.aliases = []\nfunction mel(Prism) {\n  Prism.languages.mel = {\n    comment: /\\/\\/.*/,\n    code: {\n      pattern: /`(?:\\\\.|[^\\\\`\\r\\n])*`/,\n      greedy: true,\n      alias: 'italic',\n      inside: {\n        delimiter: {\n          pattern: /^`|`$/,\n          alias: 'punctuation'\n        } // See rest below\n      }\n    },\n    string: {\n      pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n      greedy: true\n    },\n    variable: /\\$\\w+/,\n    number: /\\b0x[\\da-fA-F]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+/,\n    flag: {\n      pattern: /-[^\\d\\W]\\w*/,\n      alias: 'operator'\n    },\n    keyword:\n      /\\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\\b/,\n    function:\n      /\\b\\w+(?=\\()|\\b(?:CBG|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|Mayatomr|about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\\b/,\n    operator: [\n      /\\+[+=]?|-[-=]?|&&|\\|\\||[<>]=|[*\\/!=]=?|[%^]/,\n      {\n        // We don't want to match <<\n        pattern: /(^|[^<])<(?!<)/,\n        lookbehind: true\n      },\n      {\n        // We don't want to match >>\n        pattern: /(^|[^>])>(?!>)/,\n        lookbehind: true\n      }\n    ],\n    punctuation: /<<|>>|[.,:;?\\[\\](){}]/\n  }\n  Prism.languages.mel['code'].inside.rest = Prism.languages.mel\n}\n","'use strict'\n\nmodule.exports = mermaid\nmermaid.displayName = 'mermaid'\nmermaid.aliases = []\nfunction mermaid(Prism) {\n  Prism.languages.mermaid = {\n    comment: {\n      pattern: /%%.*/,\n      greedy: true\n    },\n    style: {\n      pattern:\n        /^([ \\t]*(?:classDef|linkStyle|style)[ \\t]+[\\w$-]+[ \\t]+)\\w.*[^\\s;]/m,\n      lookbehind: true,\n      inside: {\n        property: /\\b\\w[\\w-]*(?=[ \\t]*:)/,\n        operator: /:/,\n        punctuation: /,/\n      }\n    },\n    'inter-arrow-label': {\n      pattern:\n        /([^<>ox.=-])(?:-[-.]|==)(?![<>ox.=-])[ \\t]*(?:\"[^\"\\r\\n]*\"|[^\\s\".=-](?:[^\\r\\n.=-]*[^\\s.=-])?)[ \\t]*(?:\\.+->?|--+[->]|==+[=>])(?![<>ox.=-])/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        arrow: {\n          pattern: /(?:\\.+->?|--+[->]|==+[=>])$/,\n          alias: 'operator'\n        },\n        label: {\n          pattern: /^([\\s\\S]{2}[ \\t]*)\\S(?:[\\s\\S]*\\S)?/,\n          lookbehind: true,\n          alias: 'property'\n        },\n        'arrow-head': {\n          pattern: /^\\S+/,\n          alias: ['arrow', 'operator']\n        }\n      }\n    },\n    arrow: [\n      // This might look complex but it really isn't.\n      // There are many possible arrows (see tests) and it's impossible to fit all of them into one pattern. The\n      // problem is that we only have one lookbehind per pattern. However, we cannot disallow too many arrow\n      // characters in the one lookbehind because that would create too many false negatives. So we have to split the\n      // arrows into different patterns.\n      {\n        // ER diagram\n        pattern: /(^|[^{}|o.-])[|}][|o](?:--|\\.\\.)[|o][|{](?![{}|o.-])/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      {\n        // flow chart\n        // (?:==+|--+|-\\.*-)\n        pattern:\n          /(^|[^<>ox.=-])(?:[<ox](?:==+|--+|-\\.*-)[>ox]?|(?:==+|--+|-\\.*-)[>ox]|===+|---+|-\\.+-)(?![<>ox.=-])/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      {\n        // sequence diagram\n        pattern:\n          /(^|[^<>()x-])(?:--?(?:>>|[x>)])(?![<>()x])|(?:<<|[x<(])--?(?!-))/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      {\n        // class diagram\n        pattern:\n          /(^|[^<>|*o.-])(?:[*o]--|--[*o]|<\\|?(?:--|\\.\\.)|(?:--|\\.\\.)\\|?>|--|\\.\\.)(?![<>|*o.-])/,\n        lookbehind: true,\n        alias: 'operator'\n      }\n    ],\n    label: {\n      pattern: /(^|[^|<])\\|(?:[^\\r\\n\"|]|\"[^\"\\r\\n]*\")+\\|/,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property'\n    },\n    text: {\n      pattern: /(?:[(\\[{]+|\\b>)(?:[^\\r\\n\"()\\[\\]{}]|\"[^\"\\r\\n]*\")+(?:[)\\]}]+|>)/,\n      alias: 'string'\n    },\n    string: {\n      pattern: /\"[^\"\\r\\n]*\"/,\n      greedy: true\n    },\n    annotation: {\n      pattern:\n        /<<(?:abstract|choice|enumeration|fork|interface|join|service)>>|\\[\\[(?:choice|fork|join)\\]\\]/i,\n      alias: 'important'\n    },\n    keyword: [\n      // This language has both case-sensitive and case-insensitive keywords\n      {\n        pattern:\n          /(^[ \\t]*)(?:action|callback|class|classDef|classDiagram|click|direction|erDiagram|flowchart|gantt|gitGraph|graph|journey|link|linkStyle|pie|requirementDiagram|sequenceDiagram|stateDiagram|stateDiagram-v2|style|subgraph)(?![\\w$-])/m,\n        lookbehind: true,\n        greedy: true\n      },\n      {\n        pattern:\n          /(^[ \\t]*)(?:activate|alt|and|as|autonumber|deactivate|else|end(?:[ \\t]+note)?|loop|opt|par|participant|rect|state|note[ \\t]+(?:over|(?:left|right)[ \\t]+of))(?![\\w$-])/im,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    entity: /#[a-z0-9]+;/,\n    operator: {\n      pattern: /(\\w[ \\t]*)&(?=[ \\t]*\\w)|:::|:/,\n      lookbehind: true\n    },\n    punctuation: /[(){};]/\n  }\n}\n","'use strict'\n\nmodule.exports = mizar\nmizar.displayName = 'mizar'\nmizar.aliases = []\nfunction mizar(Prism) {\n  Prism.languages.mizar = {\n    comment: /::.+/,\n    keyword:\n      /@proof\\b|\\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|end|environ|equals|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:ies|y)|when|where|with|wrt)\\b/,\n    parameter: {\n      pattern: /\\$(?:10|\\d)/,\n      alias: 'variable'\n    },\n    variable: /\\b\\w+(?=:)/,\n    number: /(?:\\b|-)\\d+\\b/,\n    operator: /\\.\\.\\.|->|&|\\.?=/,\n    punctuation: /\\(#|#\\)|[,:;\\[\\](){}]/\n  }\n}\n","'use strict'\n\nmodule.exports = mongodb\nmongodb.displayName = 'mongodb'\nmongodb.aliases = []\nfunction mongodb(Prism) {\n  ;(function (Prism) {\n    var operators = [\n      // query and projection\n      '$eq',\n      '$gt',\n      '$gte',\n      '$in',\n      '$lt',\n      '$lte',\n      '$ne',\n      '$nin',\n      '$and',\n      '$not',\n      '$nor',\n      '$or',\n      '$exists',\n      '$type',\n      '$expr',\n      '$jsonSchema',\n      '$mod',\n      '$regex',\n      '$text',\n      '$where',\n      '$geoIntersects',\n      '$geoWithin',\n      '$near',\n      '$nearSphere',\n      '$all',\n      '$elemMatch',\n      '$size',\n      '$bitsAllClear',\n      '$bitsAllSet',\n      '$bitsAnyClear',\n      '$bitsAnySet',\n      '$comment',\n      '$elemMatch',\n      '$meta',\n      '$slice', // update\n      '$currentDate',\n      '$inc',\n      '$min',\n      '$max',\n      '$mul',\n      '$rename',\n      '$set',\n      '$setOnInsert',\n      '$unset',\n      '$addToSet',\n      '$pop',\n      '$pull',\n      '$push',\n      '$pullAll',\n      '$each',\n      '$position',\n      '$slice',\n      '$sort',\n      '$bit', // aggregation pipeline stages\n      '$addFields',\n      '$bucket',\n      '$bucketAuto',\n      '$collStats',\n      '$count',\n      '$currentOp',\n      '$facet',\n      '$geoNear',\n      '$graphLookup',\n      '$group',\n      '$indexStats',\n      '$limit',\n      '$listLocalSessions',\n      '$listSessions',\n      '$lookup',\n      '$match',\n      '$merge',\n      '$out',\n      '$planCacheStats',\n      '$project',\n      '$redact',\n      '$replaceRoot',\n      '$replaceWith',\n      '$sample',\n      '$set',\n      '$skip',\n      '$sort',\n      '$sortByCount',\n      '$unionWith',\n      '$unset',\n      '$unwind',\n      '$setWindowFields', // aggregation pipeline operators\n      '$abs',\n      '$accumulator',\n      '$acos',\n      '$acosh',\n      '$add',\n      '$addToSet',\n      '$allElementsTrue',\n      '$and',\n      '$anyElementTrue',\n      '$arrayElemAt',\n      '$arrayToObject',\n      '$asin',\n      '$asinh',\n      '$atan',\n      '$atan2',\n      '$atanh',\n      '$avg',\n      '$binarySize',\n      '$bsonSize',\n      '$ceil',\n      '$cmp',\n      '$concat',\n      '$concatArrays',\n      '$cond',\n      '$convert',\n      '$cos',\n      '$dateFromParts',\n      '$dateToParts',\n      '$dateFromString',\n      '$dateToString',\n      '$dayOfMonth',\n      '$dayOfWeek',\n      '$dayOfYear',\n      '$degreesToRadians',\n      '$divide',\n      '$eq',\n      '$exp',\n      '$filter',\n      '$first',\n      '$floor',\n      '$function',\n      '$gt',\n      '$gte',\n      '$hour',\n      '$ifNull',\n      '$in',\n      '$indexOfArray',\n      '$indexOfBytes',\n      '$indexOfCP',\n      '$isArray',\n      '$isNumber',\n      '$isoDayOfWeek',\n      '$isoWeek',\n      '$isoWeekYear',\n      '$last',\n      '$last',\n      '$let',\n      '$literal',\n      '$ln',\n      '$log',\n      '$log10',\n      '$lt',\n      '$lte',\n      '$ltrim',\n      '$map',\n      '$max',\n      '$mergeObjects',\n      '$meta',\n      '$min',\n      '$millisecond',\n      '$minute',\n      '$mod',\n      '$month',\n      '$multiply',\n      '$ne',\n      '$not',\n      '$objectToArray',\n      '$or',\n      '$pow',\n      '$push',\n      '$radiansToDegrees',\n      '$range',\n      '$reduce',\n      '$regexFind',\n      '$regexFindAll',\n      '$regexMatch',\n      '$replaceOne',\n      '$replaceAll',\n      '$reverseArray',\n      '$round',\n      '$rtrim',\n      '$second',\n      '$setDifference',\n      '$setEquals',\n      '$setIntersection',\n      '$setIsSubset',\n      '$setUnion',\n      '$size',\n      '$sin',\n      '$slice',\n      '$split',\n      '$sqrt',\n      '$stdDevPop',\n      '$stdDevSamp',\n      '$strcasecmp',\n      '$strLenBytes',\n      '$strLenCP',\n      '$substr',\n      '$substrBytes',\n      '$substrCP',\n      '$subtract',\n      '$sum',\n      '$switch',\n      '$tan',\n      '$toBool',\n      '$toDate',\n      '$toDecimal',\n      '$toDouble',\n      '$toInt',\n      '$toLong',\n      '$toObjectId',\n      '$toString',\n      '$toLower',\n      '$toUpper',\n      '$trim',\n      '$trunc',\n      '$type',\n      '$week',\n      '$year',\n      '$zip',\n      '$count',\n      '$dateAdd',\n      '$dateDiff',\n      '$dateSubtract',\n      '$dateTrunc',\n      '$getField',\n      '$rand',\n      '$sampleRate',\n      '$setField',\n      '$unsetField', // aggregation pipeline query modifiers\n      '$comment',\n      '$explain',\n      '$hint',\n      '$max',\n      '$maxTimeMS',\n      '$min',\n      '$orderby',\n      '$query',\n      '$returnKey',\n      '$showDiskLoc',\n      '$natural'\n    ]\n    var builtinFunctions = [\n      'ObjectId',\n      'Code',\n      'BinData',\n      'DBRef',\n      'Timestamp',\n      'NumberLong',\n      'NumberDecimal',\n      'MaxKey',\n      'MinKey',\n      'RegExp',\n      'ISODate',\n      'UUID'\n    ]\n    operators = operators.map(function (operator) {\n      return operator.replace('$', '\\\\$')\n    })\n    var operatorsSource = '(?:' + operators.join('|') + ')\\\\b'\n    Prism.languages.mongodb = Prism.languages.extend('javascript', {})\n    Prism.languages.insertBefore('mongodb', 'string', {\n      property: {\n        pattern:\n          /(?:([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)(?=\\s*:)/,\n        greedy: true,\n        inside: {\n          keyword: RegExp('^([\\'\"])?' + operatorsSource + '(?:\\\\1)?$')\n        }\n      }\n    })\n    Prism.languages.mongodb.string.inside = {\n      url: {\n        // url pattern\n        pattern:\n          /https?:\\/\\/[-\\w@:%.+~#=]{1,256}\\.[a-z0-9()]{1,6}\\b[-\\w()@:%+.~#?&/=]*/i,\n        greedy: true\n      },\n      entity: {\n        // ipv4\n        pattern:\n          /\\b(?:(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])\\b/,\n        greedy: true\n      }\n    }\n    Prism.languages.insertBefore('mongodb', 'constant', {\n      builtin: {\n        pattern: RegExp('\\\\b(?:' + builtinFunctions.join('|') + ')\\\\b'),\n        alias: 'keyword'\n      }\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = monkey\nmonkey.displayName = 'monkey'\nmonkey.aliases = []\nfunction monkey(Prism) {\n  Prism.languages.monkey = {\n    comment: {\n      pattern: /^#Rem\\s[\\s\\S]*?^#End|'.+/im,\n      greedy: true\n    },\n    string: {\n      pattern: /\"[^\"\\r\\n]*\"/,\n      greedy: true\n    },\n    preprocessor: {\n      pattern: /(^[ \\t]*)#.+/m,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property'\n    },\n    function: /\\b\\w+(?=\\()/,\n    'type-char': {\n      pattern: /\\b[?%#$]/,\n      alias: 'class-name'\n    },\n    number: {\n      pattern:\n        /((?:\\.\\.)?)(?:(?:\\b|\\B-\\.?|\\B\\.)\\d+(?:(?!\\.\\.)\\.\\d*)?|\\$[\\da-f]+)/i,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:Abstract|Array|Bool|Case|Catch|Class|Const|Continue|Default|Eachin|Else|ElseIf|End|EndIf|Exit|Extends|Extern|False|Field|Final|Float|For|Forever|Function|Global|If|Implements|Import|Inline|Int|Interface|Local|Method|Module|New|Next|Null|Object|Private|Property|Public|Repeat|Return|Select|Self|Step|Strict|String|Super|Then|Throw|To|True|Try|Until|Void|Wend|While)\\b/i,\n    operator:\n      /\\.\\.|<[=>]?|>=?|:?=|(?:[+\\-*\\/&~|]|\\b(?:Mod|Shl|Shr)\\b)=?|\\b(?:And|Not|Or)\\b/i,\n    punctuation: /[.,:;()\\[\\]]/\n  }\n}\n","'use strict'\n\nmodule.exports = moonscript\nmoonscript.displayName = 'moonscript'\nmoonscript.aliases = ['moon']\nfunction moonscript(Prism) {\n  Prism.languages.moonscript = {\n    comment: /--.*/,\n    string: [\n      {\n        pattern: /'[^']*'|\\[(=*)\\[[\\s\\S]*?\\]\\1\\]/,\n        greedy: true\n      },\n      {\n        pattern: /\"[^\"]*\"/,\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern: /#\\{[^{}]*\\}/,\n            inside: {\n              moonscript: {\n                pattern: /(^#\\{)[\\s\\S]+(?=\\})/,\n                lookbehind: true,\n                inside: null // see beow\n              },\n              'interpolation-punctuation': {\n                pattern: /#\\{|\\}/,\n                alias: 'punctuation'\n              }\n            }\n          }\n        }\n      }\n    ],\n    'class-name': [\n      {\n        pattern: /(\\b(?:class|extends)[ \\t]+)\\w+/,\n        lookbehind: true\n      }, // class-like names start with a capital letter\n      /\\b[A-Z]\\w*/\n    ],\n    keyword:\n      /\\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\\b/,\n    variable: /@@?\\w*/,\n    property: {\n      pattern: /\\b(?!\\d)\\w+(?=:)|(:)(?!\\d)\\w+/,\n      lookbehind: true\n    },\n    function: {\n      pattern:\n        /\\b(?:_G|_VERSION|assert|collectgarbage|coroutine\\.(?:create|resume|running|status|wrap|yield)|debug\\.(?:debug|getfenv|gethook|getinfo|getlocal|getmetatable|getregistry|getupvalue|setfenv|sethook|setlocal|setmetatable|setupvalue|traceback)|dofile|error|getfenv|getmetatable|io\\.(?:close|flush|input|lines|open|output|popen|read|stderr|stdin|stdout|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\\.(?:abs|acos|asin|atan|atan2|ceil|cos|cosh|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pi|pow|rad|random|randomseed|sin|sinh|sqrt|tan|tanh)|module|next|os\\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\\.(?:byte|char|dump|find|format|gmatch|gsub|len|lower|match|rep|reverse|sub|upper)|table\\.(?:concat|insert|maxn|remove|sort)|tonumber|tostring|type|unpack|xpcall)\\b/,\n      inside: {\n        punctuation: /\\./\n      }\n    },\n    boolean: /\\b(?:false|true)\\b/,\n    number:\n      /(?:\\B\\.\\d+|\\b\\d+\\.\\d+|\\b\\d+(?=[eE]))(?:[eE][-+]?\\d+)?\\b|\\b(?:0x[a-fA-F\\d]+|\\d+)(?:U?LL)?\\b/,\n    operator:\n      /\\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\\.\\.)=?|[:#^]|\\b(?:and|or)\\b=?|\\b(?:not)\\b/,\n    punctuation: /[.,()[\\]{}\\\\]/\n  }\n  Prism.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside =\n    Prism.languages.moonscript\n  Prism.languages.moon = Prism.languages.moonscript\n}\n","'use strict'\n\nmodule.exports = n1ql\nn1ql.displayName = 'n1ql'\nn1ql.aliases = []\nfunction n1ql(Prism) {\n  // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/index.html\n  Prism.languages.n1ql = {\n    comment: {\n      pattern: /\\/\\*[\\s\\S]*?(?:$|\\*\\/)|--.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\]|\\1\\1)*\\1/,\n      greedy: true\n    },\n    identifier: {\n      pattern: /`(?:\\\\[\\s\\S]|[^\\\\`]|``)*`/,\n      greedy: true\n    },\n    parameter: /\\$[\\w.]+/,\n    // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/reservedwords.html#n1ql-reserved-words\n    keyword:\n      /\\b(?:ADVISE|ALL|ALTER|ANALYZE|AS|ASC|AT|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|COMMITTED|CONNECT|CONTINUE|CORRELATE|CORRELATED|COVER|CREATE|CURRENT|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FILTER|FLATTEN|FLUSH|FOLLOWING|FOR|FORCE|FROM|FTS|FUNCTION|GOLANG|GRANT|GROUP|GROUPS|GSI|HASH|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|ISOLATION|JAVASCRIPT|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LANGUAGE|LAST|LEFT|LET|LETTING|LEVEL|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NL|NO|NTH_VALUE|NULL|NULLS|NUMBER|OBJECT|OFFSET|ON|OPTION|OPTIONS|ORDER|OTHERS|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PRECEDING|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROBE|PROCEDURE|PUBLIC|RANGE|RAW|REALM|REDUCE|RENAME|RESPECT|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|ROW|ROWS|SATISFIES|SAVEPOINT|SCHEMA|SCOPE|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TIES|TO|TRAN|TRANSACTION|TRIGGER|TRUNCATE|UNBOUNDED|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WINDOW|WITH|WORK|XOR)\\b/i,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    boolean: /\\b(?:FALSE|TRUE)\\b/i,\n    number: /(?:\\b\\d+\\.|\\B\\.)\\d+e[+\\-]?\\d+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n    operator:\n      /[-+*\\/%]|!=|==?|\\|\\||<[>=]?|>=?|\\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\\b/i,\n    punctuation: /[;[\\](),.{}:]/\n  }\n}\n","'use strict'\n\nmodule.exports = n4js\nn4js.displayName = 'n4js'\nn4js.aliases = ['n4jsd']\nfunction n4js(Prism) {\n  Prism.languages.n4js = Prism.languages.extend('javascript', {\n    // Keywords from N4JS language spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html\n    keyword:\n      /\\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\\b/\n  })\n  Prism.languages.insertBefore('n4js', 'constant', {\n    // Annotations in N4JS spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html#_annotations\n    annotation: {\n      pattern: /@+\\w+/,\n      alias: 'operator'\n    }\n  })\n  Prism.languages.n4jsd = Prism.languages.n4js\n}\n","'use strict'\n\nmodule.exports = nand2tetrisHdl\nnand2tetrisHdl.displayName = 'nand2tetrisHdl'\nnand2tetrisHdl.aliases = []\nfunction nand2tetrisHdl(Prism) {\n  Prism.languages['nand2tetris-hdl'] = {\n    comment: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n    keyword: /\\b(?:BUILTIN|CHIP|CLOCKED|IN|OUT|PARTS)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    function: /\\b[A-Za-z][A-Za-z0-9]*(?=\\()/,\n    number: /\\b\\d+\\b/,\n    operator: /=|\\.\\./,\n    punctuation: /[{}[\\];(),:]/\n  }\n}\n","'use strict'\n\nmodule.exports = naniscript\nnaniscript.displayName = 'naniscript'\nnaniscript.aliases = []\nfunction naniscript(Prism) {\n  ;(function (Prism) {\n    var expressionDef = /\\{[^\\r\\n\\[\\]{}]*\\}/\n    var params = {\n      'quoted-string': {\n        pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n        alias: 'operator'\n      },\n      'command-param-id': {\n        pattern: /(\\s)\\w+:/,\n        lookbehind: true,\n        alias: 'property'\n      },\n      'command-param-value': [\n        {\n          pattern: expressionDef,\n          alias: 'selector'\n        },\n        {\n          pattern: /([\\t ])\\S+/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'operator'\n        },\n        {\n          pattern: /\\S(?:.*\\S)?/,\n          alias: 'operator'\n        }\n      ]\n    }\n    Prism.languages.naniscript = {\n      // ; ...\n      comment: {\n        pattern: /^([\\t ]*);.*/m,\n        lookbehind: true\n      },\n      // > ...\n      // Define is a control line starting with '>' followed by a word, a space and a text.\n      define: {\n        pattern: /^>.+/m,\n        alias: 'tag',\n        inside: {\n          value: {\n            pattern: /(^>\\w+[\\t ]+)(?!\\s)[^{}\\r\\n]+/,\n            lookbehind: true,\n            alias: 'operator'\n          },\n          key: {\n            pattern: /(^>)\\w+/,\n            lookbehind: true\n          }\n        }\n      },\n      // # ...\n      label: {\n        pattern: /^([\\t ]*)#[\\t ]*\\w+[\\t ]*$/m,\n        lookbehind: true,\n        alias: 'regex'\n      },\n      command: {\n        pattern: /^([\\t ]*)@\\w+(?=[\\t ]|$).*/m,\n        lookbehind: true,\n        alias: 'function',\n        inside: {\n          'command-name': /^@\\w+/,\n          expression: {\n            pattern: expressionDef,\n            greedy: true,\n            alias: 'selector'\n          },\n          'command-params': {\n            pattern: /\\s*\\S[\\s\\S]*/,\n            inside: params\n          }\n        }\n      },\n      // Generic is any line that doesn't start with operators: ;>#@\n      'generic-text': {\n        pattern: /(^[ \\t]*)[^#@>;\\s].*/m,\n        lookbehind: true,\n        alias: 'punctuation',\n        inside: {\n          // \\{ ... \\} ... \\[ ... \\] ... \\\"\n          'escaped-char': /\\\\[{}\\[\\]\"]/,\n          expression: {\n            pattern: expressionDef,\n            greedy: true,\n            alias: 'selector'\n          },\n          'inline-command': {\n            pattern: /\\[[\\t ]*\\w[^\\r\\n\\[\\]]*\\]/,\n            greedy: true,\n            alias: 'function',\n            inside: {\n              'command-params': {\n                pattern: /(^\\[[\\t ]*\\w+\\b)[\\s\\S]+(?=\\]$)/,\n                lookbehind: true,\n                inside: params\n              },\n              'command-param-name': {\n                pattern: /^(\\[[\\t ]*)\\w+/,\n                lookbehind: true,\n                alias: 'name'\n              },\n              'start-stop-char': /[\\[\\]]/\n            }\n          }\n        }\n      }\n    }\n    Prism.languages.nani = Prism.languages['naniscript']\n    /** @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token */\n    /**\n     * This hook is used to validate generic-text tokens for balanced brackets.\n     * Mark token as bad-line when contains not balanced brackets: {},[]\n     */\n    Prism.hooks.add('after-tokenize', function (env) {\n      /** @type {(Token | string)[]} */\n      var tokens = env.tokens\n      tokens.forEach(function (token) {\n        if (typeof token !== 'string' && token.type === 'generic-text') {\n          var content = getTextContent(token)\n          if (!isBracketsBalanced(content)) {\n            token.type = 'bad-line'\n            token.content = content\n          }\n        }\n      })\n    })\n    /**\n     * @param {string} input\n     * @returns {boolean}\n     */\n    function isBracketsBalanced(input) {\n      var brackets = '[]{}'\n      var stack = []\n      for (var i = 0; i < input.length; i++) {\n        var bracket = input[i]\n        var bracketsIndex = brackets.indexOf(bracket)\n        if (bracketsIndex !== -1) {\n          if (bracketsIndex % 2 === 0) {\n            stack.push(bracketsIndex + 1)\n          } else if (stack.pop() !== bracketsIndex) {\n            return false\n          }\n        }\n      }\n      return stack.length === 0\n    }\n    /**\n     * @param {string | Token | (string | Token)[]} token\n     * @returns {string}\n     */\n    function getTextContent(token) {\n      if (typeof token === 'string') {\n        return token\n      } else if (Array.isArray(token)) {\n        return token.map(getTextContent).join('')\n      } else {\n        return getTextContent(token.content)\n      }\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = nasm\nnasm.displayName = 'nasm'\nnasm.aliases = []\nfunction nasm(Prism) {\n  Prism.languages.nasm = {\n    comment: /;.*$/m,\n    string: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n    label: {\n      pattern: /(^\\s*)[A-Za-z._?$][\\w.?$@~#]*:/m,\n      lookbehind: true,\n      alias: 'function'\n    },\n    keyword: [\n      /\\[?BITS (?:16|32|64)\\]?/,\n      {\n        pattern: /(^\\s*)section\\s*[a-z.]+:?/im,\n        lookbehind: true\n      },\n      /(?:extern|global)[^;\\r\\n]*/i,\n      /(?:CPU|DEFAULT|FLOAT).*$/m\n    ],\n    register: {\n      pattern:\n        /\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s)\\b/i,\n      alias: 'variable'\n    },\n    number:\n      /(?:\\b|(?=\\$))(?:0[hx](?:\\.[\\da-f]+|[\\da-f]+(?:\\.[\\da-f]+)?)(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,\n    operator: /[\\[\\]*+\\-\\/%<>=&|$!]/\n  }\n}\n","'use strict'\n\nmodule.exports = neon\nneon.displayName = 'neon'\nneon.aliases = []\nfunction neon(Prism) {\n  Prism.languages.neon = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    datetime: {\n      pattern:\n        /(^|[[{(=:,\\s])\\d\\d\\d\\d-\\d\\d?-\\d\\d?(?:(?:[Tt]| +)\\d\\d?:\\d\\d:\\d\\d(?:\\.\\d*)? *(?:Z|[-+]\\d\\d?(?::?\\d\\d)?)?)?(?=$|[\\]}),\\s])/,\n      lookbehind: true,\n      alias: 'number'\n    },\n    key: {\n      pattern: /(^|[[{(,\\s])[^,:=[\\]{}()'\"\\s]+(?=\\s*:(?:$|[\\]}),\\s])|\\s*=)/,\n      lookbehind: true,\n      alias: 'atrule'\n    },\n    number: {\n      pattern:\n        /(^|[[{(=:,\\s])[+-]?(?:0x[\\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\\d+(?:\\.\\d*)?|\\.?\\d+)(?:[eE][+-]?\\d+)?)(?=$|[\\]}),:=\\s])/,\n      lookbehind: true\n    },\n    boolean: {\n      pattern: /(^|[[{(=:,\\s])(?:false|no|true|yes)(?=$|[\\]}),:=\\s])/i,\n      lookbehind: true\n    },\n    null: {\n      pattern: /(^|[[{(=:,\\s])(?:null)(?=$|[\\]}),:=\\s])/i,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    string: {\n      pattern:\n        /(^|[[{(=:,\\s])(?:('''|\"\"\")\\r?\\n(?:(?:[^\\r\\n]|\\r?\\n(?![\\t ]*\\2))*\\r?\\n)?[\\t ]*\\2|'[^'\\r\\n]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/,\n      lookbehind: true,\n      greedy: true\n    },\n    literal: {\n      pattern:\n        /(^|[[{(=:,\\s])(?:[^#\"',:=[\\]{}()\\s`-]|[:-][^\"',=[\\]{}()\\s])(?:[^,:=\\]})(\\s]|:(?![\\s,\\]})]|$)|[ \\t]+[^#,:=\\]})(\\s])*/,\n      lookbehind: true,\n      alias: 'string'\n    },\n    punctuation: /[,:=[\\]{}()-]/\n  }\n}\n","'use strict'\n\nmodule.exports = nevod\nnevod.displayName = 'nevod'\nnevod.aliases = []\nfunction nevod(Prism) {\n  Prism.languages.nevod = {\n    comment: /\\/\\/.*|(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$))/,\n    string: {\n      pattern: /(?:\"(?:\"\"|[^\"])*\"(?!\")|'(?:''|[^'])*'(?!'))!?\\*?/,\n      greedy: true,\n      inside: {\n        'string-attrs': /!$|!\\*$|\\*$/\n      }\n    },\n    namespace: {\n      pattern: /(@namespace\\s+)[a-zA-Z0-9\\-.]+(?=\\s*\\{)/,\n      lookbehind: true\n    },\n    pattern: {\n      pattern:\n        /(@pattern\\s+)?#?[a-zA-Z0-9\\-.]+(?:\\s*\\(\\s*(?:~\\s*)?[a-zA-Z0-9\\-.]+\\s*(?:,\\s*(?:~\\s*)?[a-zA-Z0-9\\-.]*)*\\))?(?=\\s*=)/,\n      lookbehind: true,\n      inside: {\n        'pattern-name': {\n          pattern: /^#?[a-zA-Z0-9\\-.]+/,\n          alias: 'class-name'\n        },\n        fields: {\n          pattern: /\\(.*\\)/,\n          inside: {\n            'field-name': {\n              pattern: /[a-zA-Z0-9\\-.]+/,\n              alias: 'variable'\n            },\n            punctuation: /[,()]/,\n            operator: {\n              pattern: /~/,\n              alias: 'field-hidden-mark'\n            }\n          }\n        }\n      }\n    },\n    search: {\n      pattern: /(@search\\s+|#)[a-zA-Z0-9\\-.]+(?:\\.\\*)?(?=\\s*;)/,\n      alias: 'function',\n      lookbehind: true\n    },\n    keyword:\n      /@(?:having|inside|namespace|outside|pattern|require|search|where)\\b/,\n    'standard-pattern': {\n      pattern:\n        /\\b(?:Alpha|AlphaNum|Any|Blank|End|LineBreak|Num|NumAlpha|Punct|Space|Start|Symbol|Word|WordBreak)\\b(?:\\([a-zA-Z0-9\\-.,\\s+]*\\))?/,\n      inside: {\n        'standard-pattern-name': {\n          pattern: /^[a-zA-Z0-9\\-.]+/,\n          alias: 'builtin'\n        },\n        quantifier: {\n          pattern: /\\b\\d+(?:\\s*\\+|\\s*-\\s*\\d+)?(?!\\w)/,\n          alias: 'number'\n        },\n        'standard-pattern-attr': {\n          pattern: /[a-zA-Z0-9\\-.]+/,\n          alias: 'builtin'\n        },\n        punctuation: /[,()]/\n      }\n    },\n    quantifier: {\n      pattern: /\\b\\d+(?:\\s*\\+|\\s*-\\s*\\d+)?(?!\\w)/,\n      alias: 'number'\n    },\n    operator: [\n      {\n        pattern: /=/,\n        alias: 'pattern-def'\n      },\n      {\n        pattern: /&/,\n        alias: 'conjunction'\n      },\n      {\n        pattern: /~/,\n        alias: 'exception'\n      },\n      {\n        pattern: /\\?/,\n        alias: 'optionality'\n      },\n      {\n        pattern: /[[\\]]/,\n        alias: 'repetition'\n      },\n      {\n        pattern: /[{}]/,\n        alias: 'variation'\n      },\n      {\n        pattern: /[+_]/,\n        alias: 'sequence'\n      },\n      {\n        pattern: /\\.{2,3}/,\n        alias: 'span'\n      }\n    ],\n    'field-capture': [\n      {\n        pattern:\n          /([a-zA-Z0-9\\-.]+\\s*\\()\\s*[a-zA-Z0-9\\-.]+\\s*:\\s*[a-zA-Z0-9\\-.]+(?:\\s*,\\s*[a-zA-Z0-9\\-.]+\\s*:\\s*[a-zA-Z0-9\\-.]+)*(?=\\s*\\))/,\n        lookbehind: true,\n        inside: {\n          'field-name': {\n            pattern: /[a-zA-Z0-9\\-.]+/,\n            alias: 'variable'\n          },\n          colon: /:/\n        }\n      },\n      {\n        pattern: /[a-zA-Z0-9\\-.]+\\s*:/,\n        inside: {\n          'field-name': {\n            pattern: /[a-zA-Z0-9\\-.]+/,\n            alias: 'variable'\n          },\n          colon: /:/\n        }\n      }\n    ],\n    punctuation: /[:;,()]/,\n    name: /[a-zA-Z0-9\\-.]+/\n  }\n}\n","'use strict'\n\nmodule.exports = nginx\nnginx.displayName = 'nginx'\nnginx.aliases = []\nfunction nginx(Prism) {\n  ;(function (Prism) {\n    var variable =\n      /\\$(?:\\w[a-z\\d]*(?:_[^\\x00-\\x1F\\s\"'\\\\()$]*)?|\\{[^}\\s\"'\\\\]+\\})/i\n    Prism.languages.nginx = {\n      comment: {\n        pattern: /(^|[\\s{};])#.*/,\n        lookbehind: true,\n        greedy: true\n      },\n      directive: {\n        pattern:\n          /(^|\\s)\\w(?:[^;{}\"'\\\\\\s]|\\\\.|\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|\\s+(?:#.*(?!.)|(?![#\\s])))*?(?=\\s*[;{])/,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          string: {\n            pattern:\n              /((?:^|[^\\\\])(?:\\\\\\\\)*)(?:\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*')/,\n            lookbehind: true,\n            greedy: true,\n            inside: {\n              escape: {\n                pattern: /\\\\[\"'\\\\nrt]/,\n                alias: 'entity'\n              },\n              variable: variable\n            }\n          },\n          comment: {\n            pattern: /(\\s)#.*/,\n            lookbehind: true,\n            greedy: true\n          },\n          keyword: {\n            pattern: /^\\S+/,\n            greedy: true\n          },\n          // other patterns\n          boolean: {\n            pattern: /(\\s)(?:off|on)(?!\\S)/,\n            lookbehind: true\n          },\n          number: {\n            pattern: /(\\s)\\d+[a-z]*(?!\\S)/i,\n            lookbehind: true\n          },\n          variable: variable\n        }\n      },\n      punctuation: /[{};]/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = nim\nnim.displayName = 'nim'\nnim.aliases = []\nfunction nim(Prism) {\n  Prism.languages.nim = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    string: {\n      // Double-quoted strings can be prefixed by an identifier (Generalized raw string literals)\n      pattern:\n        /(?:\\b(?!\\d)(?:\\w|\\\\x[89a-fA-F][0-9a-fA-F])+)?(?:\"\"\"[\\s\\S]*?\"\"\"(?!\")|\"(?:\\\\[\\s\\S]|\"\"|[^\"\\\\])*\")/,\n      greedy: true\n    },\n    char: {\n      // Character literals are handled specifically to prevent issues with numeric type suffixes\n      pattern: /'(?:\\\\(?:\\d+|x[\\da-fA-F]{0,2}|.)|[^'])'/,\n      greedy: true\n    },\n    function: {\n      pattern:\n        /(?:(?!\\d)(?:\\w|\\\\x[89a-fA-F][0-9a-fA-F])+|`[^`\\r\\n]+`)\\*?(?:\\[[^\\]]+\\])?(?=\\s*\\()/,\n      greedy: true,\n      inside: {\n        operator: /\\*$/\n      }\n    },\n    // We don't want to highlight operators (and anything really) inside backticks\n    identifier: {\n      pattern: /`[^`\\r\\n]+`/,\n      greedy: true,\n      inside: {\n        punctuation: /`/\n      }\n    },\n    // The negative look ahead prevents wrong highlighting of the .. operator\n    number:\n      /\\b(?:0[xXoObB][\\da-fA-F_]+|\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:[eE][+-]?\\d[\\d_]*)?)(?:'?[iuf]\\d*)?/,\n    keyword:\n      /\\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\\b/,\n    operator: {\n      // Look behind and look ahead prevent wrong highlighting of punctuations [. .] {. .} (. .)\n      // but allow the slice operator .. to take precedence over them\n      // One can define his own operators in Nim so all combination of operators might be an operator.\n      pattern:\n        /(^|[({\\[](?=\\.\\.)|(?![({\\[]\\.).)(?:(?:[=+\\-*\\/<>@$~&%|!?^:\\\\]|\\.\\.|\\.(?![)}\\]]))+|\\b(?:and|div|in|is|isnot|mod|not|notin|of|or|shl|shr|xor)\\b)/m,\n      lookbehind: true\n    },\n    punctuation: /[({\\[]\\.|\\.[)}\\]]|[`(){}\\[\\],:]/\n  }\n}\n","'use strict'\n\nmodule.exports = nix\nnix.displayName = 'nix'\nnix.aliases = []\nfunction nix(Prism) {\n  Prism.languages.nix = {\n    comment: {\n      pattern: /\\/\\*[\\s\\S]*?\\*\\/|#.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|''(?:(?!'')[\\s\\S]|''(?:'|\\\\|\\$\\{))*''/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          // The lookbehind ensures the ${} is not preceded by \\ or ''\n          pattern: /(^|(?:^|(?!'').)[^\\\\])\\$\\{(?:[^{}]|\\{[^}]*\\})*\\}/,\n          lookbehind: true,\n          inside: null // see below\n        }\n      }\n    },\n    url: [\n      /\\b(?:[a-z]{3,7}:\\/\\/)[\\w\\-+%~\\/.:#=?&]+/,\n      {\n        pattern:\n          /([^\\/])(?:[\\w\\-+%~.:#=?&]*(?!\\/\\/)[\\w\\-+%~\\/.:#=?&])?(?!\\/\\/)\\/[\\w\\-+%~\\/.:#=?&]*/,\n        lookbehind: true\n      }\n    ],\n    antiquotation: {\n      pattern: /\\$(?=\\{)/,\n      alias: 'important'\n    },\n    number: /\\b\\d+\\b/,\n    keyword: /\\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\\b/,\n    function:\n      /\\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:Tarball|url)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\\b|\\bfoldl'\\B/,\n    boolean: /\\b(?:false|true)\\b/,\n    operator: /[=!<>]=?|\\+\\+?|\\|\\||&&|\\/\\/|->?|[?@]/,\n    punctuation: /[{}()[\\].,:;]/\n  }\n  Prism.languages.nix.string.inside.interpolation.inside = Prism.languages.nix\n}\n","'use strict'\n\nmodule.exports = nsis\nnsis.displayName = 'nsis'\nnsis.aliases = []\nfunction nsis(Prism) {\n  /**\n   * Original by Jan T. Sott (http://github.com/idleberg)\n   *\n   * Includes all commands and plug-ins shipped with NSIS 3.08\n   */\n  Prism.languages.nsis = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|[#;].*)/,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    keyword: {\n      pattern:\n        /(^[\\t ]*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|BG(?:Font|Gradient|Image)|Banner|BrandingText|BringToFront|CRCCheck|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|Seek|Write|WriteByte|WriteUTF16LE|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DLLVersion(?:Local)?|DlgItem|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|NSISdl|Name|Nop|OutFile|PE(?:DllCharacteristics|SubsysVer)|Page(?:Callbacks)?|Pop|Push|Quit|RMDir|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|UnRegDLL|Unicode|UninstPage|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UserInfo|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|Var|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle|ns(?:Dialogs|Exec))\\b/m,\n      lookbehind: true\n    },\n    property:\n      /\\b(?:ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY|admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user)\\b/,\n    constant: /\\$\\{[!\\w\\.:\\^-]+\\}|\\$\\([!\\w\\.:\\^-]+\\)/,\n    variable: /\\$\\w[\\w\\.]*/,\n    number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n    operator: /--?|\\+\\+?|<=?|>=?|==?=?|&&?|\\|\\|?|[?*\\/~^%]/,\n    punctuation: /[{}[\\];(),.:]/,\n    important: {\n      pattern:\n        /(^[\\t ]*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\\b/im,\n      lookbehind: true\n    }\n  }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = objectivec\nobjectivec.displayName = 'objectivec'\nobjectivec.aliases = ['objc']\nfunction objectivec(Prism) {\n  Prism.register(refractorC)\n  Prism.languages.objectivec = Prism.languages.extend('c', {\n    string: {\n      pattern: /@?\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/,\n    operator: /-[->]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/\n  })\n  delete Prism.languages.objectivec['class-name']\n  Prism.languages.objc = Prism.languages.objectivec\n}\n","'use strict'\n\nmodule.exports = ocaml\nocaml.displayName = 'ocaml'\nocaml.aliases = []\nfunction ocaml(Prism) {\n  // https://ocaml.org/manual/lex.html\n  Prism.languages.ocaml = {\n    comment: {\n      pattern: /\\(\\*[\\s\\S]*?\\*\\)/,\n      greedy: true\n    },\n    char: {\n      pattern: /'(?:[^\\\\\\r\\n']|\\\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,\n      greedy: true\n    },\n    string: [\n      {\n        pattern: /\"(?:\\\\(?:[\\s\\S]|\\r\\n)|[^\\\\\\r\\n\"])*\"/,\n        greedy: true\n      },\n      {\n        pattern: /\\{([a-z_]*)\\|[\\s\\S]*?\\|\\1\\}/,\n        greedy: true\n      }\n    ],\n    number: [\n      // binary and octal\n      /\\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\\b/i, // hexadecimal\n      /\\b0x[a-f0-9][a-f0-9_]*(?:\\.[a-f0-9_]*)?(?:p[+-]?\\d[\\d_]*)?(?!\\w)/i, // decimal\n      /\\b\\d[\\d_]*(?:\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?(?!\\w)/i\n    ],\n    directive: {\n      pattern: /\\B#\\w+/,\n      alias: 'property'\n    },\n    label: {\n      pattern: /\\B~\\w+/,\n      alias: 'property'\n    },\n    'type-variable': {\n      pattern: /\\B'\\w+/,\n      alias: 'function'\n    },\n    variant: {\n      pattern: /`\\w+/,\n      alias: 'symbol'\n    },\n    // For the list of keywords and operators,\n    // see: http://caml.inria.fr/pub/docs/manual-ocaml/lex.html#sec84\n    keyword:\n      /\\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    'operator-like-punctuation': {\n      pattern: /\\[[<>|]|[>|]\\]|\\{<|>\\}/,\n      alias: 'punctuation'\n    },\n    // Custom operators are allowed\n    operator:\n      /\\.[.~]|:[=>]|[=<>@^|&+\\-*\\/$%!?~][!$%&*+\\-.\\/:<=>?@^|~]*|\\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\\b/,\n    punctuation: /;;|::|[(){}\\[\\].,:;#]|\\b_\\b/\n  }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = opencl\nopencl.displayName = 'opencl'\nopencl.aliases = []\nfunction opencl(Prism) {\n  Prism.register(refractorC)\n  ;(function (Prism) {\n    /* OpenCL kernel language */\n    Prism.languages.opencl = Prism.languages.extend('c', {\n      // Extracted from the official specs (2.0) and http://streamcomputing.eu/downloads/?opencl.lang (opencl-keywords, opencl-types) and http://sourceforge.net/tracker/?func=detail&aid=2957794&group_id=95717&atid=612384 (Words2, partly Words3)\n      keyword:\n        /\\b(?:(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|__attribute__|auto|(?:bool|u?(?:char|int|long|short)|half|quad)(?:2|3|4|8|16)?|break|case|complex|const|continue|(?:double|float)(?:16(?:x(?:1|2|4|8|16))?|1x(?:1|2|4|8|16)|2(?:x(?:1|2|4|8|16))?|3|4(?:x(?:1|2|4|8|16))?|8(?:x(?:1|2|4|8|16))?)?|default|do|else|enum|extern|for|goto|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\\b/,\n      // Extracted from http://streamcomputing.eu/downloads/?opencl.lang (opencl-const)\n      // Math Constants: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/mathConstants.html\n      // Macros and Limits: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/macroLimits.html\n      number:\n        /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[fuhl]{0,4}/i,\n      boolean: /\\b(?:false|true)\\b/,\n      'constant-opencl-kernel': {\n        pattern:\n          /\\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:GLOBAL|LOCAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|(?:MAX|MIN)(?:(?:_10)?_EXP)?|MANT_DIG)|FLT_RADIX|HUGE_VALF?|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|INFINITY|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:2|10)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN|(?:UCHAR|UINT|ULONG|USHRT)_MAX)\\b/,\n        alias: 'constant'\n      }\n    })\n    Prism.languages.insertBefore('opencl', 'class-name', {\n      // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/scalarDataTypes.html\n      // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/otherDataTypes.html\n      'builtin-type': {\n        pattern:\n          /\\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\\b/,\n        alias: 'keyword'\n      }\n    })\n    var attributes = {\n      // Extracted from http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-types and opencl-host)\n      'type-opencl-host': {\n        pattern:\n          /\\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|int|long|short)|double|float)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\\b/,\n        alias: 'keyword'\n      },\n      'boolean-opencl-host': {\n        pattern: /\\bCL_(?:FALSE|TRUE)\\b/,\n        alias: 'boolean'\n      },\n      // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-const)\n      'constant-opencl-host': {\n        pattern:\n          /\\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:8|16|24|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\\b/,\n        alias: 'constant'\n      },\n      // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-host)\n      'function-opencl-host': {\n        pattern:\n          /\\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\\b/,\n        alias: 'function'\n      }\n    }\n    /* OpenCL host API */\n    Prism.languages.insertBefore('c', 'keyword', attributes) // C++ includes everything from the OpenCL C host API plus the classes defined in cl2.h\n    if (Prism.languages.cpp) {\n      // Extracted from doxygen class list http://github.khronos.org/OpenCL-CLHPP/annotated.html\n      attributes['type-opencl-host-cpp'] = {\n        pattern:\n          /\\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|Sampler|UserEvent)\\b/,\n        alias: 'keyword'\n      }\n      Prism.languages.insertBefore('cpp', 'keyword', attributes)\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = openqasm\nopenqasm.displayName = 'openqasm'\nopenqasm.aliases = ['qasm']\nfunction openqasm(Prism) {\n  // https://qiskit.github.io/openqasm/grammar/index.html\n  Prism.languages.openqasm = {\n    comment: /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*/,\n    string: {\n      pattern: /\"[^\"\\r\\n\\t]*\"|'[^'\\r\\n\\t]*'/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:CX|OPENQASM|U|barrier|boxas|boxto|break|const|continue|ctrl|def|defcal|defcalgrammar|delay|else|end|for|gate|gphase|if|in|include|inv|kernel|lengthof|let|measure|pow|reset|return|rotary|stretchinf|while)\\b|#pragma\\b/,\n    'class-name':\n      /\\b(?:angle|bit|bool|creg|fixed|float|int|length|qreg|qubit|stretch|uint)\\b/,\n    function: /\\b(?:cos|exp|ln|popcount|rotl|rotr|sin|sqrt|tan)\\b(?=\\s*\\()/,\n    constant: /\\b(?:euler|pi|tau)\\b|π|𝜏|ℇ/,\n    number: {\n      pattern:\n        /(^|[^.\\w$])(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?(?:dt|ns|us|µs|ms|s)?/i,\n      lookbehind: true\n    },\n    operator: /->|>>=?|<<=?|&&|\\|\\||\\+\\+|--|[!=<>&|~^+\\-*/%]=?|@/,\n    punctuation: /[(){}\\[\\];,:.]/\n  }\n  Prism.languages.qasm = Prism.languages.openqasm\n}\n","'use strict'\n\nmodule.exports = oz\noz.displayName = 'oz'\noz.aliases = []\nfunction oz(Prism) {\n  Prism.languages.oz = {\n    comment: {\n      pattern: /\\/\\*[\\s\\S]*?\\*\\/|%.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n      greedy: true\n    },\n    atom: {\n      pattern: /'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n      greedy: true,\n      alias: 'builtin'\n    },\n    keyword:\n      /\\$|\\[\\]|\\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\\b/,\n    function: [\n      /\\b[a-z][A-Za-z\\d]*(?=\\()/,\n      {\n        pattern: /(\\{)[A-Z][A-Za-z\\d]*\\b/,\n        lookbehind: true\n      }\n    ],\n    number:\n      /\\b(?:0[bx][\\da-f]+|\\d+(?:\\.\\d*)?(?:e~?\\d+)?)\\b|&(?:[^\\\\]|\\\\(?:\\d{3}|.))/i,\n    variable: /`(?:[^`\\\\]|\\\\.)+`/,\n    'attr-name': /\\b\\w+(?=[ \\t]*:(?![:=]))/,\n    operator:\n      /:(?:=|::?)|<[-:=]?|=(?:=|<?:?)|>=?:?|\\\\=:?|!!?|[|#+\\-*\\/,~^@]|\\b(?:andthen|div|mod|orelse)\\b/,\n    punctuation: /[\\[\\](){}.:;?]/\n  }\n}\n","'use strict'\n\nmodule.exports = parigp\nparigp.displayName = 'parigp'\nparigp.aliases = []\nfunction parigp(Prism) {\n  Prism.languages.parigp = {\n    comment: /\\/\\*[\\s\\S]*?\\*\\/|\\\\\\\\.*/,\n    string: {\n      pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n      greedy: true\n    },\n    // PARI/GP does not care about white spaces at all\n    // so let's process the keywords to build an appropriate regexp\n    // (e.g. \"b *r *e *a *k\", etc.)\n    keyword: (function () {\n      var keywords = [\n        'breakpoint',\n        'break',\n        'dbg_down',\n        'dbg_err',\n        'dbg_up',\n        'dbg_x',\n        'forcomposite',\n        'fordiv',\n        'forell',\n        'forpart',\n        'forprime',\n        'forstep',\n        'forsubgroup',\n        'forvec',\n        'for',\n        'iferr',\n        'if',\n        'local',\n        'my',\n        'next',\n        'return',\n        'until',\n        'while'\n      ]\n      keywords = keywords\n        .map(function (keyword) {\n          return keyword.split('').join(' *')\n        })\n        .join('|')\n      return RegExp('\\\\b(?:' + keywords + ')\\\\b')\n    })(),\n    function: /\\b\\w(?:[\\w ]*\\w)?(?= *\\()/,\n    number: {\n      // The lookbehind and the negative lookahead prevent from breaking the .. operator\n      pattern:\n        /((?:\\. *\\. *)?)(?:\\b\\d(?: *\\d)*(?: *(?!\\. *\\.)\\.(?: *\\d)*)?|\\. *\\d(?: *\\d)*)(?: *e *(?:[+-] *)?\\d(?: *\\d)*)?/i,\n      lookbehind: true\n    },\n    operator:\n      /\\. *\\.|[*\\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\\+(?: *[+=])?|-(?: *[-=>])?|<(?: *>|(?: *<)?(?: *=)?)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\\\(?: *\\/)?(?: *=)?|&(?: *&)?|\\| *\\||['#~^]/,\n    punctuation: /[\\[\\]{}().,:;|]/\n  }\n}\n","'use strict'\n\nmodule.exports = parser\nparser.displayName = 'parser'\nparser.aliases = []\nfunction parser(Prism) {\n  ;(function (Prism) {\n    var parser = (Prism.languages.parser = Prism.languages.extend('markup', {\n      keyword: {\n        pattern:\n          /(^|[^^])(?:\\^(?:case|eval|for|if|switch|throw)\\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\\b)/,\n        lookbehind: true\n      },\n      variable: {\n        pattern: /(^|[^^])\\B\\$(?:\\w+|(?=[.{]))(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\.|:+/\n        }\n      },\n      function: {\n        pattern: /(^|[^^])\\B[@^]\\w+(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n        lookbehind: true,\n        inside: {\n          keyword: {\n            pattern: /(^@)(?:GET_|SET_)/,\n            lookbehind: true\n          },\n          punctuation: /\\.|:+/\n        }\n      },\n      escape: {\n        pattern: /\\^(?:[$^;@()\\[\\]{}\"':]|#[a-f\\d]*)/i,\n        alias: 'builtin'\n      },\n      punctuation: /[\\[\\](){};]/\n    }))\n    parser = Prism.languages.insertBefore('parser', 'keyword', {\n      'parser-comment': {\n        pattern: /(\\s)#.*/,\n        lookbehind: true,\n        alias: 'comment'\n      },\n      expression: {\n        // Allow for 3 levels of depth\n        pattern: /(^|[^^])\\((?:[^()]|\\((?:[^()]|\\((?:[^()])*\\))*\\))*\\)/,\n        greedy: true,\n        lookbehind: true,\n        inside: {\n          string: {\n            pattern: /(^|[^^])([\"'])(?:(?!\\2)[^^]|\\^[\\s\\S])*\\2/,\n            lookbehind: true\n          },\n          keyword: parser.keyword,\n          variable: parser.variable,\n          function: parser.function,\n          boolean: /\\b(?:false|true)\\b/,\n          number: /\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\b/i,\n          escape: parser.escape,\n          operator:\n            /[~+*\\/\\\\%]|!(?:\\|\\|?|=)?|&&?|\\|\\|?|==|<[<=]?|>[>=]?|-[fd]?|\\b(?:def|eq|ge|gt|in|is|le|lt|ne)\\b/,\n          punctuation: parser.punctuation\n        }\n      }\n    })\n    Prism.languages.insertBefore(\n      'inside',\n      'punctuation',\n      {\n        expression: parser.expression,\n        keyword: parser.keyword,\n        variable: parser.variable,\n        function: parser.function,\n        escape: parser.escape,\n        'parser-punctuation': {\n          pattern: parser.punctuation,\n          alias: 'punctuation'\n        }\n      },\n      parser['tag'].inside['attr-value']\n    )\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = pascal\npascal.displayName = 'pascal'\npascal.aliases = ['objectpascal']\nfunction pascal(Prism) {\n  // Based on Free Pascal\n  /* TODO\nSupport inline asm ?\n*/\n  Prism.languages.pascal = {\n    directive: {\n      pattern: /\\{\\$[\\s\\S]*?\\}/,\n      greedy: true,\n      alias: ['marco', 'property']\n    },\n    comment: {\n      pattern: /\\(\\*[\\s\\S]*?\\*\\)|\\{[\\s\\S]*?\\}|\\/\\/.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /(?:'(?:''|[^'\\r\\n])*'(?!')|#[&$%]?[a-f\\d]+)+|\\^[a-z]/i,\n      greedy: true\n    },\n    asm: {\n      pattern: /(\\basm\\b)[\\s\\S]+?(?=\\bend\\s*[;[])/i,\n      lookbehind: true,\n      greedy: true,\n      inside: null // see below\n    },\n    keyword: [\n      {\n        // Turbo Pascal\n        pattern:\n          /(^|[^&])\\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\\b/i,\n        lookbehind: true\n      },\n      {\n        // Free Pascal\n        pattern: /(^|[^&])\\b(?:dispose|exit|false|new|true)\\b/i,\n        lookbehind: true\n      },\n      {\n        // Object Pascal\n        pattern:\n          /(^|[^&])\\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\\b/i,\n        lookbehind: true\n      },\n      {\n        // Modifiers\n        pattern:\n          /(^|[^&])\\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\\b/i,\n        lookbehind: true\n      }\n    ],\n    number: [\n      // Hexadecimal, octal and binary\n      /(?:[&%]\\d+|\\$[a-f\\d]+)/i, // Decimal\n      /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?/i\n    ],\n    operator: [\n      /\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=]/,\n      {\n        pattern:\n          /(^|[^&])\\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\\b/,\n        lookbehind: true\n      }\n    ],\n    punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.]/\n  }\n  Prism.languages.pascal.asm.inside = Prism.languages.extend('pascal', {\n    asm: undefined,\n    keyword: undefined,\n    operator: undefined\n  })\n  Prism.languages.objectpascal = Prism.languages.pascal\n}\n","'use strict'\n\nmodule.exports = pascaligo\npascaligo.displayName = 'pascaligo'\npascaligo.aliases = []\nfunction pascaligo(Prism) {\n  ;(function (Prism) {\n    // Pascaligo is a layer 2 smart contract language for the tezos blockchain\n    var braces = /\\((?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))*\\)/.source\n    var type = /(?:\\b\\w+(?:<braces>)?|<braces>)/.source.replace(\n      /<braces>/g,\n      function () {\n        return braces\n      }\n    )\n    var pascaligo = (Prism.languages.pascaligo = {\n      comment: /\\(\\*[\\s\\S]+?\\*\\)|\\/\\/.*/,\n      string: {\n        pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\^[a-z]/i,\n        greedy: true\n      },\n      'class-name': [\n        {\n          pattern: RegExp(\n            /(\\btype\\s+\\w+\\s+is\\s+)<type>/.source.replace(\n              /<type>/g,\n              function () {\n                return type\n              }\n            ),\n            'i'\n          ),\n          lookbehind: true,\n          inside: null // see below\n        },\n        {\n          pattern: RegExp(\n            /<type>(?=\\s+is\\b)/.source.replace(/<type>/g, function () {\n              return type\n            }),\n            'i'\n          ),\n          inside: null // see below\n        },\n        {\n          pattern: RegExp(\n            /(:\\s*)<type>/.source.replace(/<type>/g, function () {\n              return type\n            })\n          ),\n          lookbehind: true,\n          inside: null // see below\n        }\n      ],\n      keyword: {\n        pattern:\n          /(^|[^&])\\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\\b/i,\n        lookbehind: true\n      },\n      boolean: {\n        pattern: /(^|[^&])\\b(?:False|True)\\b/i,\n        lookbehind: true\n      },\n      builtin: {\n        pattern: /(^|[^&])\\b(?:bool|int|list|map|nat|record|string|unit)\\b/i,\n        lookbehind: true\n      },\n      function: /\\b\\w+(?=\\s*\\()/,\n      number: [\n        // Hexadecimal, octal and binary\n        /%[01]+|&[0-7]+|\\$[a-f\\d]+/i, // Decimal\n        /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?(?:mtz|n)?/i\n      ],\n      operator:\n        /->|=\\/=|\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=|]|\\b(?:and|mod|or)\\b/,\n      punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.{}]/\n    })\n    var classNameInside = [\n      'comment',\n      'keyword',\n      'builtin',\n      'operator',\n      'punctuation'\n    ].reduce(function (accum, key) {\n      accum[key] = pascaligo[key]\n      return accum\n    }, {})\n    pascaligo['class-name'].forEach(function (p) {\n      p.inside = classNameInside\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = pcaxis\npcaxis.displayName = 'pcaxis'\npcaxis.aliases = ['px']\nfunction pcaxis(Prism) {\n  Prism.languages.pcaxis = {\n    string: /\"[^\"]*\"/,\n    keyword: {\n      pattern:\n        /((?:^|;)\\s*)[-A-Z\\d]+(?:\\s*\\[[-\\w]+\\])?(?:\\s*\\(\"[^\"]*\"(?:,\\s*\"[^\"]*\")*\\))?(?=\\s*=)/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        keyword: /^[-A-Z\\d]+/,\n        language: {\n          pattern: /^(\\s*)\\[[-\\w]+\\]/,\n          lookbehind: true,\n          inside: {\n            punctuation: /^\\[|\\]$/,\n            property: /[-\\w]+/\n          }\n        },\n        'sub-key': {\n          pattern: /^(\\s*)\\S[\\s\\S]*/,\n          lookbehind: true,\n          inside: {\n            parameter: {\n              pattern: /\"[^\"]*\"/,\n              alias: 'property'\n            },\n            punctuation: /^\\(|\\)$|,/\n          }\n        }\n      }\n    },\n    operator: /=/,\n    tlist: {\n      pattern:\n        /TLIST\\s*\\(\\s*\\w+(?:(?:\\s*,\\s*\"[^\"]*\")+|\\s*,\\s*\"[^\"]*\"-\"[^\"]*\")?\\s*\\)/,\n      greedy: true,\n      inside: {\n        function: /^TLIST/,\n        property: {\n          pattern: /^(\\s*\\(\\s*)\\w+/,\n          lookbehind: true\n        },\n        string: /\"[^\"]*\"/,\n        punctuation: /[(),]/,\n        operator: /-/\n      }\n    },\n    punctuation: /[;,]/,\n    number: {\n      pattern: /(^|\\s)\\d+(?:\\.\\d+)?(?!\\S)/,\n      lookbehind: true\n    },\n    boolean: /NO|YES/\n  }\n  Prism.languages.px = Prism.languages.pcaxis\n}\n","'use strict'\n\nmodule.exports = peoplecode\npeoplecode.displayName = 'peoplecode'\npeoplecode.aliases = ['pcode']\nfunction peoplecode(Prism) {\n  Prism.languages.peoplecode = {\n    comment: RegExp(\n      [\n        // C-style multiline comments\n        /\\/\\*[\\s\\S]*?\\*\\//.source, // REM comments\n        /\\bREM[^;]*;/.source, // Nested <* *> comments\n        /<\\*(?:[^<*]|\\*(?!>)|<(?!\\*)|<\\*(?:(?!\\*>)[\\s\\S])*\\*>)*\\*>/.source, // /+ +/ comments\n        /\\/\\+[\\s\\S]*?\\+\\//.source\n      ].join('|')\n    ),\n    string: {\n      pattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n      greedy: true\n    },\n    variable: /%\\w+/,\n    'function-definition': {\n      pattern: /((?:^|[^\\w-])(?:function|method)\\s+)\\w+/i,\n      lookbehind: true,\n      alias: 'function'\n    },\n    'class-name': {\n      pattern:\n        /((?:^|[^-\\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\\s+)\\w+(?::\\w+)*/i,\n      lookbehind: true,\n      inside: {\n        punctuation: /:/\n      }\n    },\n    keyword:\n      /\\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|if|implements|import|instance|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\\b/i,\n    'operator-keyword': {\n      pattern: /\\b(?:and|not|or)\\b/i,\n      alias: 'operator'\n    },\n    function: /[_a-z]\\w*(?=\\s*\\()/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    number: /\\b\\d+(?:\\.\\d+)?\\b/,\n    operator: /<>|[<>]=?|!=|\\*\\*|[-+*/|=@]/,\n    punctuation: /[:.;,()[\\]]/\n  }\n  Prism.languages.pcode = Prism.languages.peoplecode\n}\n","'use strict'\n\nmodule.exports = perl\nperl.displayName = 'perl'\nperl.aliases = []\nfunction perl(Prism) {\n  ;(function (Prism) {\n    var brackets =\n      /(?:\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}|\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)/\n        .source\n    Prism.languages.perl = {\n      comment: [\n        {\n          // POD\n          pattern: /(^\\s*)=\\w[\\s\\S]*?=cut.*/m,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          pattern: /(^|[^\\\\$])#.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      // TODO Could be nice to handle Heredoc too.\n      string: [\n        {\n          pattern: RegExp(\n            /\\b(?:q|qq|qw|qx)(?![a-zA-Z0-9])\\s*/.source +\n              '(?:' +\n              [\n                // q/.../\n                /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source, // q a...a\n                // eslint-disable-next-line regexp/strict\n                /([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/.source, // q(...)\n                // q{...}\n                // q[...]\n                // q<...>\n                brackets\n              ].join('|') +\n              ')'\n          ),\n          greedy: true\n        }, // \"...\", `...`\n        {\n          pattern: /(\"|`)(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n          greedy: true\n        }, // '...'\n        // FIXME Multi-line single-quoted strings are not supported as they would break variables containing '\n        {\n          pattern: /'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n          greedy: true\n        }\n      ],\n      regex: [\n        {\n          pattern: RegExp(\n            /\\b(?:m|qr)(?![a-zA-Z0-9])\\s*/.source +\n              '(?:' +\n              [\n                // m/.../\n                /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source, // m a...a\n                // eslint-disable-next-line regexp/strict\n                /([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/.source, // m(...)\n                // m{...}\n                // m[...]\n                // m<...>\n                brackets\n              ].join('|') +\n              ')' +\n              /[msixpodualngc]*/.source\n          ),\n          greedy: true\n        }, // The lookbehinds prevent -s from breaking\n        {\n          pattern: RegExp(\n            /(^|[^-])\\b(?:s|tr|y)(?![a-zA-Z0-9])\\s*/.source +\n              '(?:' +\n              [\n                // s/.../.../\n                // eslint-disable-next-line regexp/strict\n                /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/\n                  .source, // s a...a...a\n                // eslint-disable-next-line regexp/strict\n                /([a-zA-Z0-9])(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3/\n                  .source, // s(...)(...)\n                // s{...}{...}\n                // s[...][...]\n                // s<...><...>\n                // s(...)[...]\n                brackets + /\\s*/.source + brackets\n              ].join('|') +\n              ')' +\n              /[msixpodualngcer]*/.source\n          ),\n          lookbehind: true,\n          greedy: true\n        }, // /.../\n        // The look-ahead tries to prevent two divisions on\n        // the same line from being highlighted as regex.\n        // This does not support multi-line regex.\n        {\n          pattern:\n            /\\/(?:[^\\/\\\\\\r\\n]|\\\\.)*\\/[msixpodualngc]*(?=\\s*(?:$|[\\r\\n,.;})&|\\-+*~<>!?^]|(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|x|xor)\\b))/,\n          greedy: true\n        }\n      ],\n      // FIXME Not sure about the handling of ::, ', and #\n      variable: [\n        // ${^POSTMATCH}\n        /[&*$@%]\\{\\^[A-Z]+\\}/, // $^V\n        /[&*$@%]\\^[A-Z_]/, // ${...}\n        /[&*$@%]#?(?=\\{)/, // $foo\n        /[&*$@%]#?(?:(?:::)*'?(?!\\d)[\\w$]+(?![\\w$]))+(?:::)*/, // $1\n        /[&*$@%]\\d+/, // $_, @_, %!\n        // The negative lookahead prevents from breaking the %= operator\n        /(?!%=)[$@%][!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~]/\n      ],\n      filehandle: {\n        // <>, <FOO>, _\n        pattern: /<(?![<=])\\S*?>|\\b_\\b/,\n        alias: 'symbol'\n      },\n      'v-string': {\n        // v1.2, 1.2.3\n        pattern: /v\\d+(?:\\.\\d+)*|\\d+(?:\\.\\d+){2,}/,\n        alias: 'string'\n      },\n      function: {\n        pattern: /(\\bsub[ \\t]+)\\w+/,\n        lookbehind: true\n      },\n      keyword:\n        /\\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\\b/,\n      number:\n        /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)\\b/,\n      operator:\n        /-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b|\\+[+=]?|-[-=>]?|\\*\\*?=?|\\/\\/?=?|=[=~>]?|~[~=]?|\\|\\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\\.(?:=|\\.\\.?)?|[\\\\?]|\\bx(?:=|\\b)|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\\b/,\n      punctuation: /[{}[\\];(),:]/\n    }\n  })(Prism)\n}\n","'use strict'\nvar refractorPhp = require('./php.js')\nmodule.exports = phpExtras\nphpExtras.displayName = 'phpExtras'\nphpExtras.aliases = []\nfunction phpExtras(Prism) {\n  Prism.register(refractorPhp)\n  Prism.languages.insertBefore('php', 'variable', {\n    this: {\n      pattern: /\\$this\\b/,\n      alias: 'keyword'\n    },\n    global:\n      /\\$(?:GLOBALS|HTTP_RAW_POST_DATA|_(?:COOKIE|ENV|FILES|GET|POST|REQUEST|SERVER|SESSION)|argc|argv|http_response_header|php_errormsg)\\b/,\n    scope: {\n      pattern: /\\b[\\w\\\\]+::/,\n      inside: {\n        keyword: /\\b(?:parent|self|static)\\b/,\n        punctuation: /::|\\\\/\n      }\n    }\n  })\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = php\nphp.displayName = 'php'\nphp.aliases = []\nfunction php(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  /**\n   * Original by Aaron Harun: http://aahacreative.com/2012/07/31/php-syntax-highlighting-prism/\n   * Modified by Miles Johnson: http://milesj.me\n   * Rewritten by Tom Pavelec\n   *\n   * Supports PHP 5.3 - 8.0\n   */\n  ;(function (Prism) {\n    var comment = /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*|#(?!\\[).*/\n    var constant = [\n      {\n        pattern: /\\b(?:false|true)\\b/i,\n        alias: 'boolean'\n      },\n      {\n        pattern: /(::\\s*)\\b[a-z_]\\w*\\b(?!\\s*\\()/i,\n        greedy: true,\n        lookbehind: true\n      },\n      {\n        pattern: /(\\b(?:case|const)\\s+)\\b[a-z_]\\w*(?=\\s*[;=])/i,\n        greedy: true,\n        lookbehind: true\n      },\n      /\\b(?:null)\\b/i,\n      /\\b[A-Z_][A-Z0-9_]*\\b(?!\\s*\\()/\n    ]\n    var number =\n      /\\b0b[01]+(?:_[01]+)*\\b|\\b0o[0-7]+(?:_[0-7]+)*\\b|\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b|(?:\\b\\d+(?:_\\d+)*\\.?(?:\\d+(?:_\\d+)*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i\n    var operator =\n      /<?=>|\\?\\?=?|\\.{3}|\\??->|[!=]=?=?|::|\\*\\*=?|--|\\+\\+|&&|\\|\\||<<|>>|[?~]|[/^|%*&<>.+-]=?/\n    var punctuation = /[{}\\[\\](),:;]/\n    Prism.languages.php = {\n      delimiter: {\n        pattern: /\\?>$|^<\\?(?:php(?=\\s)|=)?/i,\n        alias: 'important'\n      },\n      comment: comment,\n      variable: /\\$+(?:\\w+\\b|(?=\\{))/,\n      package: {\n        pattern:\n          /(namespace\\s+|use\\s+(?:function\\s+)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\\\/\n        }\n      },\n      'class-name-definition': {\n        pattern: /(\\b(?:class|enum|interface|trait)\\s+)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n        lookbehind: true,\n        alias: 'class-name'\n      },\n      'function-definition': {\n        pattern: /(\\bfunction\\s+)[a-z_]\\w*(?=\\s*\\()/i,\n        lookbehind: true,\n        alias: 'function'\n      },\n      keyword: [\n        {\n          pattern:\n            /(\\(\\s*)\\b(?:array|bool|boolean|float|int|integer|object|string)\\b(?=\\s*\\))/i,\n          alias: 'type-casting',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /([(,?]\\s*)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|object|self|static|string)\\b(?=\\s*\\$)/i,\n          alias: 'type-hint',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|object|self|static|string|void)\\b/i,\n          alias: 'return-type',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /\\b(?:array(?!\\s*\\()|bool|float|int|iterable|mixed|object|string|void)\\b/i,\n          alias: 'type-declaration',\n          greedy: true\n        },\n        {\n          pattern: /(\\|\\s*)(?:false|null)\\b|\\b(?:false|null)(?=\\s*\\|)/i,\n          alias: 'type-declaration',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern: /\\b(?:parent|self|static)(?=\\s*::)/i,\n          alias: 'static-context',\n          greedy: true\n        },\n        {\n          // yield from\n          pattern: /(\\byield\\s+)from\\b/i,\n          lookbehind: true\n        }, // `class` is always a keyword unlike other keywords\n        /\\bclass\\b/i,\n        {\n          // https://www.php.net/manual/en/reserved.keywords.php\n          //\n          // keywords cannot be preceded by \"->\"\n          // the complex lookbehind means `(?<!(?:->|::)\\s*)`\n          pattern:\n            /((?:^|[^\\s>:]|(?:^|[^-])>|(?:^|[^:]):)\\s*)\\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\\b/i,\n          lookbehind: true\n        }\n      ],\n      'argument-name': {\n        pattern: /([(,]\\s+)\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n        lookbehind: true\n      },\n      'class-name': [\n        {\n          pattern:\n            /(\\b(?:extends|implements|instanceof|new(?!\\s+self|\\s+static))\\s+|\\bcatch\\s*\\()\\b[a-z_]\\w*(?!\\\\)\\b/i,\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern: /(\\|\\s*)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern: /\\b[a-z_]\\w*(?!\\\\)\\b(?=\\s*\\|)/i,\n          greedy: true\n        },\n        {\n          pattern: /(\\|\\s*)(?:\\\\?\\b[a-z_]\\w*)+\\b/i,\n          alias: 'class-name-fully-qualified',\n          greedy: true,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern: /(?:\\\\?\\b[a-z_]\\w*)+\\b(?=\\s*\\|)/i,\n          alias: 'class-name-fully-qualified',\n          greedy: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern:\n            /(\\b(?:extends|implements|instanceof|new(?!\\s+self\\b|\\s+static\\b))\\s+|\\bcatch\\s*\\()(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n          alias: 'class-name-fully-qualified',\n          greedy: true,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern: /\\b[a-z_]\\w*(?=\\s*\\$)/i,\n          alias: 'type-declaration',\n          greedy: true\n        },\n        {\n          pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n          alias: ['class-name-fully-qualified', 'type-declaration'],\n          greedy: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern: /\\b[a-z_]\\w*(?=\\s*::)/i,\n          alias: 'static-context',\n          greedy: true\n        },\n        {\n          pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*::)/i,\n          alias: ['class-name-fully-qualified', 'static-context'],\n          greedy: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern: /([(,?]\\s*)[a-z_]\\w*(?=\\s*\\$)/i,\n          alias: 'type-hint',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern: /([(,?]\\s*)(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n          alias: ['class-name-fully-qualified', 'type-hint'],\n          greedy: true,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n          alias: 'return-type',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n          alias: ['class-name-fully-qualified', 'return-type'],\n          greedy: true,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        }\n      ],\n      constant: constant,\n      function: {\n        pattern: /(^|[^\\\\\\w])\\\\?[a-z_](?:[\\w\\\\]*\\w)?(?=\\s*\\()/i,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\\\/\n        }\n      },\n      property: {\n        pattern: /(->\\s*)\\w+/,\n        lookbehind: true\n      },\n      number: number,\n      operator: operator,\n      punctuation: punctuation\n    }\n    var string_interpolation = {\n      pattern:\n        /\\{\\$(?:\\{(?:\\{[^{}]+\\}|[^{}]+)\\}|[^{}])+\\}|(^|[^\\\\{])\\$+(?:\\w+(?:\\[[^\\r\\n\\[\\]]+\\]|->\\w+)?)/,\n      lookbehind: true,\n      inside: Prism.languages.php\n    }\n    var string = [\n      {\n        pattern: /<<<'([^']+)'[\\r\\n](?:.*[\\r\\n])*?\\1;/,\n        alias: 'nowdoc-string',\n        greedy: true,\n        inside: {\n          delimiter: {\n            pattern: /^<<<'[^']+'|[a-z_]\\w*;$/i,\n            alias: 'symbol',\n            inside: {\n              punctuation: /^<<<'?|[';]$/\n            }\n          }\n        }\n      },\n      {\n        pattern:\n          /<<<(?:\"([^\"]+)\"[\\r\\n](?:.*[\\r\\n])*?\\1;|([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\2;)/i,\n        alias: 'heredoc-string',\n        greedy: true,\n        inside: {\n          delimiter: {\n            pattern: /^<<<(?:\"[^\"]+\"|[a-z_]\\w*)|[a-z_]\\w*;$/i,\n            alias: 'symbol',\n            inside: {\n              punctuation: /^<<<\"?|[\";]$/\n            }\n          },\n          interpolation: string_interpolation\n        }\n      },\n      {\n        pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n        alias: 'backtick-quoted-string',\n        greedy: true\n      },\n      {\n        pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n        alias: 'single-quoted-string',\n        greedy: true\n      },\n      {\n        pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n        alias: 'double-quoted-string',\n        greedy: true,\n        inside: {\n          interpolation: string_interpolation\n        }\n      }\n    ]\n    Prism.languages.insertBefore('php', 'variable', {\n      string: string,\n      attribute: {\n        pattern:\n          /#\\[(?:[^\"'\\/#]|\\/(?![*/])|\\/\\/.*$|#(?!\\[).*$|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*')+\\](?=\\s*[a-z$#])/im,\n        greedy: true,\n        inside: {\n          'attribute-content': {\n            pattern: /^(#\\[)[\\s\\S]+(?=\\]$)/,\n            lookbehind: true,\n            // inside can appear subset of php\n            inside: {\n              comment: comment,\n              string: string,\n              'attribute-class-name': [\n                {\n                  pattern: /([^:]|^)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n                  alias: 'class-name',\n                  greedy: true,\n                  lookbehind: true\n                },\n                {\n                  pattern: /([^:]|^)(?:\\\\?\\b[a-z_]\\w*)+/i,\n                  alias: ['class-name', 'class-name-fully-qualified'],\n                  greedy: true,\n                  lookbehind: true,\n                  inside: {\n                    punctuation: /\\\\/\n                  }\n                }\n              ],\n              constant: constant,\n              number: number,\n              operator: operator,\n              punctuation: punctuation\n            }\n          },\n          delimiter: {\n            pattern: /^#\\[|\\]$/,\n            alias: 'punctuation'\n          }\n        }\n      }\n    })\n    Prism.hooks.add('before-tokenize', function (env) {\n      if (!/<\\?/.test(env.code)) {\n        return\n      }\n      var phpPattern =\n        /<\\?(?:[^\"'/#]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|(?:\\/\\/|#(?!\\[))(?:[^?\\n\\r]|\\?(?!>))*(?=$|\\?>|[\\r\\n])|#\\[|\\/\\*(?:[^*]|\\*(?!\\/))*(?:\\*\\/|$))*?(?:\\?>|$)/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'php',\n        phpPattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'php')\n    })\n  })(Prism)\n}\n","'use strict'\nvar refractorPhp = require('./php.js')\nvar refractorJavadoclike = require('./javadoclike.js')\nmodule.exports = phpdoc\nphpdoc.displayName = 'phpdoc'\nphpdoc.aliases = []\nfunction phpdoc(Prism) {\n  Prism.register(refractorPhp)\n  Prism.register(refractorJavadoclike)\n  ;(function (Prism) {\n    var typeExpression = /(?:\\b[a-zA-Z]\\w*|[|\\\\[\\]])+/.source\n    Prism.languages.phpdoc = Prism.languages.extend('javadoclike', {\n      parameter: {\n        pattern: RegExp(\n          '(@(?:global|param|property(?:-read|-write)?|var)\\\\s+(?:' +\n            typeExpression +\n            '\\\\s+)?)\\\\$\\\\w+'\n        ),\n        lookbehind: true\n      }\n    })\n    Prism.languages.insertBefore('phpdoc', 'keyword', {\n      'class-name': [\n        {\n          pattern: RegExp(\n            '(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\\\s+)' +\n              typeExpression\n          ),\n          lookbehind: true,\n          inside: {\n            keyword:\n              /\\b(?:array|bool|boolean|callback|double|false|float|int|integer|mixed|null|object|resource|self|string|true|void)\\b/,\n            punctuation: /[|\\\\[\\]()]/\n          }\n        }\n      ]\n    })\n    Prism.languages.javadoclike.addSupport('php', Prism.languages.phpdoc)\n  })(Prism)\n}\n","'use strict'\nvar refractorSql = require('./sql.js')\nmodule.exports = plsql\nplsql.displayName = 'plsql'\nplsql.aliases = []\nfunction plsql(Prism) {\n  Prism.register(refractorSql)\n  Prism.languages.plsql = Prism.languages.extend('sql', {\n    comment: {\n      pattern: /\\/\\*[\\s\\S]*?\\*\\/|--.*/,\n      greedy: true\n    },\n    // https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-reserved-words-keywords.html\n    keyword:\n      /\\b(?:A|ACCESSIBLE|ADD|AGENT|AGGREGATE|ALL|ALTER|AND|ANY|ARRAY|AS|ASC|AT|ATTRIBUTE|AUTHID|AVG|BEGIN|BETWEEN|BFILE_BASE|BINARY|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BULK|BY|BYTE|C|CALL|CALLING|CASCADE|CASE|CHAR|CHARACTER|CHARSET|CHARSETFORM|CHARSETID|CHAR_BASE|CHECK|CLOB_BASE|CLONE|CLOSE|CLUSTER|CLUSTERS|COLAUTH|COLLECT|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPILED|COMPRESS|CONNECT|CONSTANT|CONSTRUCTOR|CONTEXT|CONTINUE|CONVERT|COUNT|CRASH|CREATE|CREDENTIAL|CURRENT|CURSOR|CUSTOMDATUM|DANGLING|DATA|DATE|DATE_BASE|DAY|DECLARE|DEFAULT|DEFINE|DELETE|DESC|DETERMINISTIC|DIRECTORY|DISTINCT|DOUBLE|DROP|DURATION|ELEMENT|ELSE|ELSIF|EMPTY|END|ESCAPE|EXCEPT|EXCEPTION|EXCEPTIONS|EXCLUSIVE|EXECUTE|EXISTS|EXIT|EXTERNAL|FETCH|FINAL|FIRST|FIXED|FLOAT|FOR|FORALL|FORCE|FROM|FUNCTION|GENERAL|GOTO|GRANT|GROUP|HASH|HAVING|HEAP|HIDDEN|HOUR|IDENTIFIED|IF|IMMEDIATE|IMMUTABLE|IN|INCLUDING|INDEX|INDEXES|INDICATOR|INDICES|INFINITE|INSERT|INSTANTIABLE|INT|INTERFACE|INTERSECT|INTERVAL|INTO|INVALIDATE|IS|ISOLATION|JAVA|LANGUAGE|LARGE|LEADING|LENGTH|LEVEL|LIBRARY|LIKE|LIKE2|LIKE4|LIKEC|LIMIT|LIMITED|LOCAL|LOCK|LONG|LOOP|MAP|MAX|MAXLEN|MEMBER|MERGE|MIN|MINUS|MINUTE|MOD|MODE|MODIFY|MONTH|MULTISET|MUTABLE|NAME|NAN|NATIONAL|NATIVE|NCHAR|NEW|NOCOMPRESS|NOCOPY|NOT|NOWAIT|NULL|NUMBER_BASE|OBJECT|OCICOLL|OCIDATE|OCIDATETIME|OCIDURATION|OCIINTERVAL|OCILOBLOCATOR|OCINUMBER|OCIRAW|OCIREF|OCIREFCURSOR|OCIROWID|OCISTRING|OCITYPE|OF|OLD|ON|ONLY|OPAQUE|OPEN|OPERATOR|OPTION|OR|ORACLE|ORADATA|ORDER|ORGANIZATION|ORLANY|ORLVARY|OTHERS|OUT|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETER|PARAMETERS|PARENT|PARTITION|PASCAL|PERSISTABLE|PIPE|PIPELINED|PLUGGABLE|POLYMORPHIC|PRAGMA|PRECISION|PRIOR|PRIVATE|PROCEDURE|PUBLIC|RAISE|RANGE|RAW|READ|RECORD|REF|REFERENCE|RELIES_ON|REM|REMAINDER|RENAME|RESOURCE|RESULT|RESULT_CACHE|RETURN|RETURNING|REVERSE|REVOKE|ROLLBACK|ROW|SAMPLE|SAVE|SAVEPOINT|SB1|SB2|SB4|SECOND|SEGMENT|SELECT|SELF|SEPARATE|SEQUENCE|SERIALIZABLE|SET|SHARE|SHORT|SIZE|SIZE_T|SOME|SPARSE|SQL|SQLCODE|SQLDATA|SQLNAME|SQLSTATE|STANDARD|START|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUM|SYNONYM|TABAUTH|TABLE|TDO|THE|THEN|TIME|TIMESTAMP|TIMEZONE_ABBR|TIMEZONE_HOUR|TIMEZONE_MINUTE|TIMEZONE_REGION|TO|TRAILING|TRANSACTION|TRANSACTIONAL|TRUSTED|TYPE|UB1|UB2|UB4|UNDER|UNION|UNIQUE|UNPLUG|UNSIGNED|UNTRUSTED|UPDATE|USE|USING|VALIST|VALUE|VALUES|VARIABLE|VARIANCE|VARRAY|VARYING|VIEW|VIEWS|VOID|WHEN|WHERE|WHILE|WITH|WORK|WRAPPED|WRITE|YEAR|ZONE)\\b/i,\n    // https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-language-fundamentals.html#GUID-96A42F7C-7A71-4B90-8255-CA9C8BD9722E\n    operator: /:=?|=>|[<>^~!]=|\\.\\.|\\|\\||\\*\\*|[-+*/%<>=@]/\n  })\n  Prism.languages.insertBefore('plsql', 'operator', {\n    label: {\n      pattern: /<<\\s*\\w+\\s*>>/,\n      alias: 'symbol'\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = powerquery\npowerquery.displayName = 'powerquery'\npowerquery.aliases = []\nfunction powerquery(Prism) {\n  // https://docs.microsoft.com/en-us/powerquery-m/power-query-m-language-specification\n  Prism.languages.powerquery = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n      lookbehind: true,\n      greedy: true\n    },\n    'quoted-identifier': {\n      pattern: /#\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n      greedy: true\n    },\n    string: {\n      pattern: /(?:#!)?\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n      greedy: true\n    },\n    constant: [\n      /\\bDay\\.(?:Friday|Monday|Saturday|Sunday|Thursday|Tuesday|Wednesday)\\b/,\n      /\\bTraceLevel\\.(?:Critical|Error|Information|Verbose|Warning)\\b/,\n      /\\bOccurrence\\.(?:All|First|Last)\\b/,\n      /\\bOrder\\.(?:Ascending|Descending)\\b/,\n      /\\bRoundingMode\\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\\b/,\n      /\\bMissingField\\.(?:Error|Ignore|UseNull)\\b/,\n      /\\bQuoteStyle\\.(?:Csv|None)\\b/,\n      /\\bJoinKind\\.(?:FullOuter|Inner|LeftAnti|LeftOuter|RightAnti|RightOuter)\\b/,\n      /\\bGroupKind\\.(?:Global|Local)\\b/,\n      /\\bExtraValues\\.(?:Error|Ignore|List)\\b/,\n      /\\bJoinAlgorithm\\.(?:Dynamic|LeftHash|LeftIndex|PairwiseHash|RightHash|RightIndex|SortMerge)\\b/,\n      /\\bJoinSide\\.(?:Left|Right)\\b/,\n      /\\bPrecision\\.(?:Decimal|Double)\\b/,\n      /\\bRelativePosition\\.From(?:End|Start)\\b/,\n      /\\bTextEncoding\\.(?:Ascii|BigEndianUnicode|Unicode|Utf16|Utf8|Windows)\\b/,\n      /\\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Function|Int16|Int32|Int64|Int8|List|Logical|None|Number|Record|Table|Text|Time)\\.Type\\b/,\n      /\\bnull\\b/\n    ],\n    boolean: /\\b(?:false|true)\\b/,\n    keyword:\n      /\\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\\b/,\n    function: {\n      pattern: /(^|[^#\\w.])[a-z_][\\w.]*(?=\\s*\\()/i,\n      lookbehind: true\n    },\n    'data-type': {\n      pattern:\n        /\\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time)\\b/,\n      alias: 'class-name'\n    },\n    number: {\n      pattern:\n        /\\b0x[\\da-f]+\\b|(?:[+-]?(?:\\b\\d+\\.)?\\b\\d+|[+-]\\.\\d+|(^|[^.])\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n      lookbehind: true\n    },\n    operator: /[-+*\\/&?@^]|<(?:=>?|>)?|>=?|=>?|\\.\\.\\.?/,\n    punctuation: /[,;\\[\\](){}]/\n  }\n  Prism.languages.pq = Prism.languages['powerquery']\n  Prism.languages.mscript = Prism.languages['powerquery']\n}\n","'use strict'\n\nmodule.exports = powershell\npowershell.displayName = 'powershell'\npowershell.aliases = []\nfunction powershell(Prism) {\n  ;(function (Prism) {\n    var powershell = (Prism.languages.powershell = {\n      comment: [\n        {\n          pattern: /(^|[^`])<#[\\s\\S]*?#>/,\n          lookbehind: true\n        },\n        {\n          pattern: /(^|[^`])#.*/,\n          lookbehind: true\n        }\n      ],\n      string: [\n        {\n          pattern: /\"(?:`[\\s\\S]|[^`\"])*\"/,\n          greedy: true,\n          inside: null // see below\n        },\n        {\n          pattern: /'(?:[^']|'')*'/,\n          greedy: true\n        }\n      ],\n      // Matches name spaces as well as casts, attribute decorators. Force starting with letter to avoid matching array indices\n      // Supports two levels of nested brackets (e.g. `[OutputType([System.Collections.Generic.List[int]])]`)\n      namespace: /\\[[a-z](?:\\[(?:\\[[^\\]]*\\]|[^\\[\\]])*\\]|[^\\[\\]])*\\]/i,\n      boolean: /\\$(?:false|true)\\b/i,\n      variable: /\\$\\w+\\b/,\n      // Cmdlets and aliases. Aliases should come last, otherwise \"write\" gets preferred over \"write-host\" for example\n      // Get-Command | ?{ $_.ModuleName -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n      // Get-Alias | ?{ $_.ReferencedCommand.Module.Name -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n      function: [\n        /\\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\\b/i,\n        /\\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\\b/i\n      ],\n      // per http://technet.microsoft.com/en-us/library/hh847744.aspx\n      keyword:\n        /\\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\\b/i,\n      operator: {\n        pattern:\n          /(^|\\W)(?:!|-(?:b?(?:and|x?or)|as|(?:Not)?(?:Contains|In|Like|Match)|eq|ge|gt|is(?:Not)?|Join|le|lt|ne|not|Replace|sh[lr])\\b|-[-=]?|\\+[+=]?|[*\\/%]=?)/i,\n        lookbehind: true\n      },\n      punctuation: /[|{}[\\];(),.]/\n    }) // Variable interpolation inside strings, and nested expressions\n    powershell.string[0].inside = {\n      function: {\n        // Allow for one level of nesting\n        pattern: /(^|[^`])\\$\\((?:\\$\\([^\\r\\n()]*\\)|(?!\\$\\()[^\\r\\n)])*\\)/,\n        lookbehind: true,\n        inside: powershell\n      },\n      boolean: powershell.boolean,\n      variable: powershell.variable\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = processing\nprocessing.displayName = 'processing'\nprocessing.aliases = []\nfunction processing(Prism) {\n  Prism.languages.processing = Prism.languages.extend('clike', {\n    keyword:\n      /\\b(?:break|case|catch|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\\b/,\n    // Spaces are allowed between function name and parenthesis\n    function: /\\b\\w+(?=\\s*\\()/,\n    operator: /<[<=]?|>[>=]?|&&?|\\|\\|?|[%?]|[!=+\\-*\\/]=?/\n  })\n  Prism.languages.insertBefore('processing', 'number', {\n    // Special case: XML is a type\n    constant: /\\b(?!XML\\b)[A-Z][A-Z\\d_]+\\b/,\n    type: {\n      pattern: /\\b(?:boolean|byte|char|color|double|float|int|[A-Z]\\w*)\\b/,\n      alias: 'class-name'\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = prolog\nprolog.displayName = 'prolog'\nprolog.aliases = []\nfunction prolog(Prism) {\n  Prism.languages.prolog = {\n    // Syntax depends on the implementation\n    comment: {\n      pattern: /\\/\\*[\\s\\S]*?\\*\\/|%.*/,\n      greedy: true\n    },\n    // Depending on the implementation, strings may allow escaped newlines and quote-escape\n    string: {\n      pattern: /([\"'])(?:\\1\\1|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1(?!\\1)/,\n      greedy: true\n    },\n    builtin: /\\b(?:fx|fy|xf[xy]?|yfx?)\\b/,\n    // FIXME: Should we list all null-ary predicates (not followed by a parenthesis) like halt, trace, etc.?\n    function: /\\b[a-z]\\w*(?:(?=\\()|\\/\\d+)/,\n    number: /\\b\\d+(?:\\.\\d*)?/,\n    // Custom operators are allowed\n    operator: /[:\\\\=><\\-?*@\\/;+^|!$.]+|\\b(?:is|mod|not|xor)\\b/,\n    punctuation: /[(){}\\[\\],]/\n  }\n}\n","'use strict'\n\nmodule.exports = promql\npromql.displayName = 'promql'\npromql.aliases = []\nfunction promql(Prism) {\n  // Thanks to: https://github.com/prometheus-community/monaco-promql/blob/master/src/promql/promql.ts\n  // As well as: https://kausal.co/blog/slate-prism-add-new-syntax-promql/\n  ;(function (Prism) {\n    // PromQL Aggregation Operators\n    // (https://prometheus.io/docs/prometheus/latest/querying/operators/#aggregation-operators)\n    var aggregations = [\n      'sum',\n      'min',\n      'max',\n      'avg',\n      'group',\n      'stddev',\n      'stdvar',\n      'count',\n      'count_values',\n      'bottomk',\n      'topk',\n      'quantile'\n    ] // PromQL vector matching + the by and without clauses\n    // (https://prometheus.io/docs/prometheus/latest/querying/operators/#vector-matching)\n    var vectorMatching = [\n      'on',\n      'ignoring',\n      'group_right',\n      'group_left',\n      'by',\n      'without'\n    ] // PromQL offset modifier\n    // (https://prometheus.io/docs/prometheus/latest/querying/basics/#offset-modifier)\n    var offsetModifier = ['offset']\n    var keywords = aggregations.concat(vectorMatching, offsetModifier)\n    Prism.languages.promql = {\n      comment: {\n        pattern: /(^[ \\t]*)#.*/m,\n        lookbehind: true\n      },\n      'vector-match': {\n        // Match the comma-separated label lists inside vector matching:\n        pattern: new RegExp(\n          '((?:' + vectorMatching.join('|') + ')\\\\s*)\\\\([^)]*\\\\)'\n        ),\n        lookbehind: true,\n        inside: {\n          'label-key': {\n            pattern: /\\b[^,]+\\b/,\n            alias: 'attr-name'\n          },\n          punctuation: /[(),]/\n        }\n      },\n      'context-labels': {\n        pattern: /\\{[^{}]*\\}/,\n        inside: {\n          'label-key': {\n            pattern: /\\b[a-z_]\\w*(?=\\s*(?:=|![=~]))/,\n            alias: 'attr-name'\n          },\n          'label-value': {\n            pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n            greedy: true,\n            alias: 'attr-value'\n          },\n          punctuation: /\\{|\\}|=~?|![=~]|,/\n        }\n      },\n      'context-range': [\n        {\n          pattern: /\\[[\\w\\s:]+\\]/,\n          // [1m]\n          inside: {\n            punctuation: /\\[|\\]|:/,\n            'range-duration': {\n              pattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n              alias: 'number'\n            }\n          }\n        },\n        {\n          pattern: /(\\boffset\\s+)\\w+/,\n          // offset 1m\n          lookbehind: true,\n          inside: {\n            'range-duration': {\n              pattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n              alias: 'number'\n            }\n          }\n        }\n      ],\n      keyword: new RegExp('\\\\b(?:' + keywords.join('|') + ')\\\\b', 'i'),\n      function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n      number:\n        /[-+]?(?:(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[-+]?\\d+)?\\b|\\b(?:0x[0-9a-f]+|nan|inf)\\b)/i,\n      operator: /[\\^*/%+-]|==|!=|<=|<|>=|>|\\b(?:and|or|unless)\\b/i,\n      punctuation: /[{};()`,.[\\]]/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = properties\nproperties.displayName = 'properties'\nproperties.aliases = []\nfunction properties(Prism) {\n  Prism.languages.properties = {\n    comment: /^[ \\t]*[#!].*$/m,\n    'attr-value': {\n      pattern:\n        /(^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+(?: *[=:] *(?! )| ))(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])+/m,\n      lookbehind: true\n    },\n    'attr-name': /^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+(?= *[=:]| )/m,\n    punctuation: /[=:]/\n  }\n}\n","'use strict'\n\nmodule.exports = protobuf\nprotobuf.displayName = 'protobuf'\nprotobuf.aliases = []\nfunction protobuf(Prism) {\n  ;(function (Prism) {\n    var builtinTypes =\n      /\\b(?:bool|bytes|double|s?fixed(?:32|64)|float|[su]?int(?:32|64)|string)\\b/\n    Prism.languages.protobuf = Prism.languages.extend('clike', {\n      'class-name': [\n        {\n          pattern:\n            /(\\b(?:enum|extend|message|service)\\s+)[A-Za-z_]\\w*(?=\\s*\\{)/,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /(\\b(?:rpc\\s+\\w+|returns)\\s*\\(\\s*(?:stream\\s+)?)\\.?[A-Za-z_]\\w*(?:\\.[A-Za-z_]\\w*)*(?=\\s*\\))/,\n          lookbehind: true\n        }\n      ],\n      keyword:\n        /\\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\\s+\\w)|service|stream|syntax|to)\\b(?!\\s*=\\s*\\d)/,\n      function: /\\b[a-z_]\\w*(?=\\s*\\()/i\n    })\n    Prism.languages.insertBefore('protobuf', 'operator', {\n      map: {\n        pattern: /\\bmap<\\s*[\\w.]+\\s*,\\s*[\\w.]+\\s*>(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n        alias: 'class-name',\n        inside: {\n          punctuation: /[<>.,]/,\n          builtin: builtinTypes\n        }\n      },\n      builtin: builtinTypes,\n      'positional-class-name': {\n        pattern: /(?:\\b|\\B\\.)[a-z_]\\w*(?:\\.[a-z_]\\w*)*(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n        alias: 'class-name',\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      annotation: {\n        pattern: /(\\[\\s*)[a-z_]\\w*(?=\\s*=)/i,\n        lookbehind: true\n      }\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = psl\npsl.displayName = 'psl'\npsl.aliases = []\nfunction psl(Prism) {\n  Prism.languages.psl = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n      greedy: true,\n      inside: {\n        symbol: /\\\\[ntrbA-Z\"\\\\]/\n      }\n    },\n    'heredoc-string': {\n      pattern: /<<<([a-zA-Z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\1\\b/,\n      alias: 'string',\n      greedy: true\n    },\n    keyword:\n      /\\b(?:__multi|__single|case|default|do|else|elsif|exit|export|for|foreach|function|if|last|line|local|next|requires|return|switch|until|while|word)\\b/,\n    constant:\n      /\\b(?:ALARM|CHART_ADD_GRAPH|CHART_DELETE_GRAPH|CHART_DESTROY|CHART_LOAD|CHART_PRINT|EOF|OFFLINE|OK|PSL_PROF_LOG|R_CHECK_HORIZ|R_CHECK_VERT|R_CLICKER|R_COLUMN|R_FRAME|R_ICON|R_LABEL|R_LABEL_CENTER|R_LIST_MULTIPLE|R_LIST_MULTIPLE_ND|R_LIST_SINGLE|R_LIST_SINGLE_ND|R_MENU|R_POPUP|R_POPUP_SCROLLED|R_RADIO_HORIZ|R_RADIO_VERT|R_ROW|R_SCALE_HORIZ|R_SCALE_VERT|R_SEP_HORIZ|R_SEP_VERT|R_SPINNER|R_TEXT_FIELD|R_TEXT_FIELD_LABEL|R_TOGGLE|TRIM_LEADING|TRIM_LEADING_AND_TRAILING|TRIM_REDUNDANT|TRIM_TRAILING|VOID|WARN)\\b/,\n    boolean: /\\b(?:FALSE|False|NO|No|TRUE|True|YES|Yes|false|no|true|yes)\\b/,\n    variable: /\\b(?:PslDebug|errno|exit_status)\\b/,\n    builtin: {\n      pattern:\n        /\\b(?:PslExecute|PslFunctionCall|PslFunctionExists|PslSetOptions|_snmp_debug|acos|add_diary|annotate|annotate_get|ascii_to_ebcdic|asctime|asin|atan|atexit|batch_set|blackout|cat|ceil|chan_exists|change_state|close|code_cvt|cond_signal|cond_wait|console_type|convert_base|convert_date|convert_locale_date|cos|cosh|create|date|dcget_text|destroy|destroy_lock|dget_text|difference|dump_hist|ebcdic_to_ascii|encrypt|event_archive|event_catalog_get|event_check|event_query|event_range_manage|event_range_query|event_report|event_schedule|event_trigger|event_trigger2|execute|exists|exp|fabs|file|floor|fmod|fopen|fseek|ftell|full_discovery|get|get_chan_info|get_ranges|get_text|get_vars|getenv|gethostinfo|getpid|getpname|grep|history|history_get_retention|in_transition|index|int|internal|intersection|is_var|isnumber|join|kill|length|lines|lock|lock_info|log|log10|loge|matchline|msg_check|msg_get_format|msg_get_severity|msg_printf|msg_sprintf|ntharg|nthargf|nthline|nthlinef|num_bytes|num_consoles|pconfig|popen|poplines|pow|print|printf|proc_exists|process|random|read|readln|refresh_parameters|remote_check|remote_close|remote_event_query|remote_event_trigger|remote_file_send|remote_open|remove|replace|rindex|sec_check_priv|sec_store_get|sec_store_set|set|set_alarm_ranges|set_locale|share|sin|sinh|sleep|snmp_agent_config|snmp_agent_start|snmp_agent_stop|snmp_close|snmp_config|snmp_get|snmp_get_next|snmp_h_get|snmp_h_get_next|snmp_h_set|snmp_open|snmp_set|snmp_trap_ignore|snmp_trap_listen|snmp_trap_raise_std_trap|snmp_trap_receive|snmp_trap_register_im|snmp_trap_send|snmp_walk|sopen|sort|splitline|sprintf|sqrt|srandom|str_repeat|strcasecmp|subset|substr|system|tail|tan|tanh|text_domain|time|tmpnam|tolower|toupper|trace_psl_process|trim|union|unique|unlock|unset|va_arg|va_start|write)\\b/,\n      alias: 'builtin-function'\n    },\n    'foreach-variable': {\n      pattern:\n        /(\\bforeach\\s+(?:(?:\\w+\\b|\"(?:\\\\.|[^\\\\\"])*\")\\s+){0,2})[_a-zA-Z]\\w*(?=\\s*\\()/,\n      lookbehind: true,\n      greedy: true\n    },\n    function: /\\b[_a-z]\\w*\\b(?=\\s*\\()/i,\n    number: /\\b(?:0x[0-9a-f]+|\\d+(?:\\.\\d+)?)\\b/i,\n    operator: /--|\\+\\+|&&=?|\\|\\|=?|<<=?|>>=?|[=!]~|[-+*/%&|^!=<>]=?|\\.|[:?]/,\n    punctuation: /[(){}\\[\\];,]/\n  }\n}\n","'use strict'\n\nmodule.exports = pug\npug.displayName = 'pug'\npug.aliases = []\nfunction pug(Prism) {\n  ;(function (Prism) {\n    // TODO:\n    // - Add CSS highlighting inside <style> tags\n    // - Add support for multi-line code blocks\n    // - Add support for interpolation #{} and !{}\n    // - Add support for tag interpolation #[]\n    // - Add explicit support for plain text using |\n    // - Add support for markup embedded in plain text\n    Prism.languages.pug = {\n      // Multiline stuff should appear before the rest\n      // This handles both single-line and multi-line comments\n      comment: {\n        pattern: /(^([\\t ]*))\\/\\/.*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)*/m,\n        lookbehind: true\n      },\n      // All the tag-related part is in lookbehind\n      // so that it can be highlighted by the \"tag\" pattern\n      'multiline-script': {\n        pattern:\n          /(^([\\t ]*)script\\b.*\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      // See at the end of the file for known filters\n      filter: {\n        pattern:\n          /(^([\\t ]*)):.+(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n        lookbehind: true,\n        inside: {\n          'filter-name': {\n            pattern: /^:[\\w-]+/,\n            alias: 'variable'\n          },\n          text: /\\S[\\s\\S]*/\n        }\n      },\n      'multiline-plain-text': {\n        pattern:\n          /(^([\\t ]*)[\\w\\-#.]+\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n        lookbehind: true\n      },\n      markup: {\n        pattern: /(^[\\t ]*)<.+/m,\n        lookbehind: true,\n        inside: Prism.languages.markup\n      },\n      doctype: {\n        pattern: /((?:^|\\n)[\\t ]*)doctype(?: .+)?/,\n        lookbehind: true\n      },\n      // This handle all conditional and loop keywords\n      'flow-control': {\n        pattern:\n          /(^[\\t ]*)(?:case|default|each|else|if|unless|when|while)\\b(?: .+)?/m,\n        lookbehind: true,\n        inside: {\n          each: {\n            pattern: /^each .+? in\\b/,\n            inside: {\n              keyword: /\\b(?:each|in)\\b/,\n              punctuation: /,/\n            }\n          },\n          branch: {\n            pattern: /^(?:case|default|else|if|unless|when|while)\\b/,\n            alias: 'keyword'\n          },\n          rest: Prism.languages.javascript\n        }\n      },\n      keyword: {\n        pattern: /(^[\\t ]*)(?:append|block|extends|include|prepend)\\b.+/m,\n        lookbehind: true\n      },\n      mixin: [\n        // Declaration\n        {\n          pattern: /(^[\\t ]*)mixin .+/m,\n          lookbehind: true,\n          inside: {\n            keyword: /^mixin/,\n            function: /\\w+(?=\\s*\\(|\\s*$)/,\n            punctuation: /[(),.]/\n          }\n        }, // Usage\n        {\n          pattern: /(^[\\t ]*)\\+.+/m,\n          lookbehind: true,\n          inside: {\n            name: {\n              pattern: /^\\+\\w+/,\n              alias: 'function'\n            },\n            rest: Prism.languages.javascript\n          }\n        }\n      ],\n      script: {\n        pattern: /(^[\\t ]*script(?:(?:&[^(]+)?\\([^)]+\\))*[\\t ]).+/m,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      'plain-text': {\n        pattern:\n          /(^[\\t ]*(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?[\\t ]).+/m,\n        lookbehind: true\n      },\n      tag: {\n        pattern: /(^[\\t ]*)(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?:?/m,\n        lookbehind: true,\n        inside: {\n          attributes: [\n            {\n              pattern: /&[^(]+\\([^)]+\\)/,\n              inside: Prism.languages.javascript\n            },\n            {\n              pattern: /\\([^)]+\\)/,\n              inside: {\n                'attr-value': {\n                  pattern: /(=\\s*(?!\\s))(?:\\{[^}]*\\}|[^,)\\r\\n]+)/,\n                  lookbehind: true,\n                  inside: Prism.languages.javascript\n                },\n                'attr-name': /[\\w-]+(?=\\s*!?=|\\s*[,)])/,\n                punctuation: /[!=(),]+/\n              }\n            }\n          ],\n          punctuation: /:/,\n          'attr-id': /#[\\w\\-]+/,\n          'attr-class': /\\.[\\w\\-]+/\n        }\n      },\n      code: [\n        {\n          pattern: /(^[\\t ]*(?:-|!?=)).+/m,\n          lookbehind: true,\n          inside: Prism.languages.javascript\n        }\n      ],\n      punctuation: /[.\\-!=|]+/\n    }\n    var filter_pattern =\n      /(^([\\t ]*)):<filter_name>(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/\n        .source // Non exhaustive list of available filters and associated languages\n    var filters = [\n      {\n        filter: 'atpl',\n        language: 'twig'\n      },\n      {\n        filter: 'coffee',\n        language: 'coffeescript'\n      },\n      'ejs',\n      'handlebars',\n      'less',\n      'livescript',\n      'markdown',\n      {\n        filter: 'sass',\n        language: 'scss'\n      },\n      'stylus'\n    ]\n    var all_filters = {}\n    for (var i = 0, l = filters.length; i < l; i++) {\n      var filter = filters[i]\n      filter =\n        typeof filter === 'string'\n          ? {\n              filter: filter,\n              language: filter\n            }\n          : filter\n      if (Prism.languages[filter.language]) {\n        all_filters['filter-' + filter.filter] = {\n          pattern: RegExp(\n            filter_pattern.replace('<filter_name>', function () {\n              return filter.filter\n            }),\n            'm'\n          ),\n          lookbehind: true,\n          inside: {\n            'filter-name': {\n              pattern: /^:[\\w-]+/,\n              alias: 'variable'\n            },\n            text: {\n              pattern: /\\S[\\s\\S]*/,\n              alias: [filter.language, 'language-' + filter.language],\n              inside: Prism.languages[filter.language]\n            }\n          }\n        }\n      }\n    }\n    Prism.languages.insertBefore('pug', 'filter', all_filters)\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = puppet\npuppet.displayName = 'puppet'\npuppet.aliases = []\nfunction puppet(Prism) {\n  ;(function (Prism) {\n    Prism.languages.puppet = {\n      heredoc: [\n        // Matches the content of a quoted heredoc string (subject to interpolation)\n        {\n          pattern:\n            /(@\\(\"([^\"\\r\\n\\/):]+)\"(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r(?!\\n)))*?[ \\t]*(?:\\|[ \\t]*)?(?:-[ \\t]*)?\\2/,\n          lookbehind: true,\n          alias: 'string',\n          inside: {\n            // Matches the end tag\n            punctuation: /(?=\\S).*\\S(?= *$)/ // See interpolation below\n          }\n        }, // Matches the content of an unquoted heredoc string (no interpolation)\n        {\n          pattern:\n            /(@\\(([^\"\\r\\n\\/):]+)(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r(?!\\n)))*?[ \\t]*(?:\\|[ \\t]*)?(?:-[ \\t]*)?\\2/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'string',\n          inside: {\n            // Matches the end tag\n            punctuation: /(?=\\S).*\\S(?= *$)/\n          }\n        }, // Matches the start tag of heredoc strings\n        {\n          pattern: /@\\(\"?(?:[^\"\\r\\n\\/):]+)\"?(?:\\/[nrts$uL]*)?\\)/,\n          alias: 'string',\n          inside: {\n            punctuation: {\n              pattern: /(\\().+?(?=\\))/,\n              lookbehind: true\n            }\n          }\n        }\n      ],\n      'multiline-comment': {\n        pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n        lookbehind: true,\n        greedy: true,\n        alias: 'comment'\n      },\n      regex: {\n        // Must be prefixed with the keyword \"node\" or a non-word char\n        pattern:\n          /((?:\\bnode\\s+|[~=\\(\\[\\{,]\\s*|[=+]>\\s*|^\\s*))\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/(?:[imx]+\\b|\\B)/,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          // Extended regexes must have the x flag. They can contain single-line comments.\n          'extended-regex': {\n            pattern: /^\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/[im]*x[im]*$/,\n            inside: {\n              comment: /#.*/\n            }\n          }\n        }\n      },\n      comment: {\n        pattern: /(^|[^\\\\])#.*/,\n        lookbehind: true,\n        greedy: true\n      },\n      string: {\n        // Allow for one nested level of double quotes inside interpolation\n        pattern:\n          /([\"'])(?:\\$\\{(?:[^'\"}]|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}|\\$(?!\\{)|(?!\\1)[^\\\\$]|\\\\[\\s\\S])*\\1/,\n        greedy: true,\n        inside: {\n          'double-quoted': {\n            pattern: /^\"[\\s\\S]*\"$/,\n            inside: {\n              // See interpolation below\n            }\n          }\n        }\n      },\n      variable: {\n        pattern: /\\$(?:::)?\\w+(?:::\\w+)*/,\n        inside: {\n          punctuation: /::/\n        }\n      },\n      'attr-name': /(?:\\b\\w+|\\*)(?=\\s*=>)/,\n      function: [\n        {\n          pattern: /(\\.)(?!\\d)\\w+/,\n          lookbehind: true\n        },\n        /\\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\\b|\\b(?!\\d)\\w+(?=\\()/\n      ],\n      number: /\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d+)?(?:e-?\\d+)?)\\b/i,\n      boolean: /\\b(?:false|true)\\b/,\n      // Includes words reserved for future use\n      keyword:\n        /\\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\\b/,\n      datatype: {\n        pattern:\n          /\\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\\b/,\n        alias: 'symbol'\n      },\n      operator:\n        /=[=~>]?|![=~]?|<(?:<\\|?|[=~|-])?|>[>=]?|->?|~>|\\|>?>?|[*\\/%+?]|\\b(?:and|in|or)\\b/,\n      punctuation: /[\\[\\]{}().,;]|:+/\n    }\n    var interpolation = [\n      {\n        // Allow for one nested level of braces inside interpolation\n        pattern:\n          /(^|[^\\\\])\\$\\{(?:[^'\"{}]|\\{[^}]*\\}|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}/,\n        lookbehind: true,\n        inside: {\n          'short-variable': {\n            // Negative look-ahead prevent wrong highlighting of functions\n            pattern: /(^\\$\\{)(?!\\w+\\()(?:::)?\\w+(?:::\\w+)*/,\n            lookbehind: true,\n            alias: 'variable',\n            inside: {\n              punctuation: /::/\n            }\n          },\n          delimiter: {\n            pattern: /^\\$/,\n            alias: 'variable'\n          },\n          rest: Prism.languages.puppet\n        }\n      },\n      {\n        pattern: /(^|[^\\\\])\\$(?:::)?\\w+(?:::\\w+)*/,\n        lookbehind: true,\n        alias: 'variable',\n        inside: {\n          punctuation: /::/\n        }\n      }\n    ]\n    Prism.languages.puppet['heredoc'][0].inside.interpolation = interpolation\n    Prism.languages.puppet['string'].inside[\n      'double-quoted'\n    ].inside.interpolation = interpolation\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = pure\npure.displayName = 'pure'\npure.aliases = []\nfunction pure(Prism) {\n  ;(function (Prism) {\n    // https://agraef.github.io/pure-docs/pure.html#lexical-matters\n    Prism.languages.pure = {\n      comment: [\n        {\n          pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n          lookbehind: true\n        },\n        {\n          pattern: /(^|[^\\\\:])\\/\\/.*/,\n          lookbehind: true\n        },\n        /#!.+/\n      ],\n      'inline-lang': {\n        pattern: /%<[\\s\\S]+?%>/,\n        greedy: true,\n        inside: {\n          lang: {\n            pattern: /(^%< *)-\\*-.+?-\\*-/,\n            lookbehind: true,\n            alias: 'comment'\n          },\n          delimiter: {\n            pattern: /^%<.*|%>$/,\n            alias: 'punctuation'\n          }\n        }\n      },\n      string: {\n        pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n        greedy: true\n      },\n      number: {\n        // The look-behind prevents wrong highlighting of the .. operator\n        pattern:\n          /((?:\\.\\.)?)(?:\\b(?:inf|nan)\\b|\\b0x[\\da-f]+|(?:\\b(?:0b)?\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?L?)/i,\n        lookbehind: true\n      },\n      keyword:\n        /\\b(?:NULL|ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\\b/,\n      function:\n        /\\b(?:abs|add_(?:addr|constdef|(?:fundef|interface|macdef|typedef)(?:_at)?|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_c?string(?:_pointer)?|byte_(?:matrix|pointer)|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|sentry|short|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\\b/,\n      special: {\n        pattern: /\\b__[a-z]+__\\b/i,\n        alias: 'builtin'\n      },\n      // Any combination of operator chars can be an operator\n      // eslint-disable-next-line no-misleading-character-class\n      operator:\n        /(?:[!\"#$%&'*+,\\-.\\/:<=>?@\\\\^`|~\\u00a1-\\u00bf\\u00d7-\\u00f7\\u20d0-\\u2bff]|\\b_+\\b)+|\\b(?:and|div|mod|not|or)\\b/,\n      // FIXME: How can we prevent | and , to be highlighted as operator when they are used alone?\n      punctuation: /[(){}\\[\\];,|]/\n    }\n    var inlineLanguages = [\n      'c',\n      {\n        lang: 'c++',\n        alias: 'cpp'\n      },\n      'fortran'\n    ]\n    var inlineLanguageRe = /%< *-\\*- *<lang>\\d* *-\\*-[\\s\\S]+?%>/.source\n    inlineLanguages.forEach(function (lang) {\n      var alias = lang\n      if (typeof lang !== 'string') {\n        alias = lang.alias\n        lang = lang.lang\n      }\n      if (Prism.languages[alias]) {\n        var o = {}\n        o['inline-lang-' + alias] = {\n          pattern: RegExp(\n            inlineLanguageRe.replace(\n              '<lang>',\n              lang.replace(/([.+*?\\/\\\\(){}\\[\\]])/g, '\\\\$1')\n            ),\n            'i'\n          ),\n          inside: Prism.util.clone(Prism.languages.pure['inline-lang'].inside)\n        }\n        o['inline-lang-' + alias].inside.rest = Prism.util.clone(\n          Prism.languages[alias]\n        )\n        Prism.languages.insertBefore('pure', 'inline-lang', o)\n      }\n    }) // C is the default inline language\n    if (Prism.languages.c) {\n      Prism.languages.pure['inline-lang'].inside.rest = Prism.util.clone(\n        Prism.languages.c\n      )\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = purebasic\npurebasic.displayName = 'purebasic'\npurebasic.aliases = []\nfunction purebasic(Prism) {\n  /*\nOriginal Code by Bas Groothedde\n!!MANY THANKS!! I never would have made this, regex and me will never be best friends ;)\n==> https://codepen.io/ImagineProgramming/details/JYydBy/\nslightly changed to pass all tests\n*/\n  // PureBasic support, steal stuff from ansi-c\n  Prism.languages.purebasic = Prism.languages.extend('clike', {\n    comment: /;.*/,\n    keyword:\n      /\\b(?:align|and|as|break|calldebugger|case|compilercase|compilerdefault|compilerelse|compilerelseif|compilerendif|compilerendselect|compilererror|compilerif|compilerselect|continue|data|datasection|debug|debuglevel|declare|declarec|declarecdll|declaredll|declaremodule|default|define|dim|disableasm|disabledebugger|disableexplicit|else|elseif|enableasm|enabledebugger|enableexplicit|end|enddatasection|enddeclaremodule|endenumeration|endif|endimport|endinterface|endmacro|endmodule|endprocedure|endselect|endstructure|endstructureunion|endwith|enumeration|extends|fakereturn|for|foreach|forever|global|gosub|goto|if|import|importc|includebinary|includefile|includepath|interface|macro|module|newlist|newmap|next|not|or|procedure|procedurec|procedurecdll|proceduredll|procedurereturn|protected|prototype|prototypec|read|redim|repeat|restore|return|runtime|select|shared|static|step|structure|structureunion|swap|threaded|to|until|wend|while|with|xincludefile|xor)\\b/i,\n    function: /\\b\\w+(?:\\.\\w+)?\\s*(?=\\()/,\n    number: /(?:\\$[\\da-f]+|\\b-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+-]?\\d+)?)\\b/i,\n    operator:\n      /(?:@\\*?|\\?|\\*)\\w+|-[>-]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|?\\||[~^%?*/@]/\n  })\n  Prism.languages.insertBefore('purebasic', 'keyword', {\n    tag: /#\\w+\\$?/,\n    asm: {\n      pattern: /(^[\\t ]*)!.*/m,\n      lookbehind: true,\n      alias: 'tag',\n      inside: {\n        comment: /;.*/,\n        string: {\n          pattern: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n          greedy: true\n        },\n        // Anonymous label references, i.e.: jmp @b\n        'label-reference-anonymous': {\n          pattern: /(!\\s*j[a-z]+\\s+)@[fb]/i,\n          lookbehind: true,\n          alias: 'fasm-label'\n        },\n        // Named label reference, i.e.: jne label1\n        'label-reference-addressed': {\n          pattern: /(!\\s*j[a-z]+\\s+)[A-Z._?$@][\\w.?$@~#]*/i,\n          lookbehind: true,\n          alias: 'fasm-label'\n        },\n        keyword: [\n          /\\b(?:extern|global)\\b[^;\\r\\n]*/i,\n          /\\b(?:CPU|DEFAULT|FLOAT)\\b.*/\n        ],\n        function: {\n          pattern: /^([\\t ]*!\\s*)[\\da-z]+(?=\\s|$)/im,\n          lookbehind: true\n        },\n        'function-inline': {\n          pattern: /(:\\s*)[\\da-z]+(?=\\s)/i,\n          lookbehind: true,\n          alias: 'function'\n        },\n        label: {\n          pattern: /^([\\t ]*!\\s*)[A-Za-z._?$@][\\w.?$@~#]*(?=:)/m,\n          lookbehind: true,\n          alias: 'fasm-label'\n        },\n        register:\n          /\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s|mm\\d+)\\b/i,\n        number:\n          /(?:\\b|-|(?=\\$))(?:0[hx](?:[\\da-f]*\\.)?[\\da-f]+(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,\n        operator: /[\\[\\]*+\\-/%<>=&|$!,.:]/\n      }\n    }\n  })\n  delete Prism.languages.purebasic['class-name']\n  delete Prism.languages.purebasic['boolean']\n  Prism.languages.pbfasm = Prism.languages['purebasic']\n}\n","'use strict'\nvar refractorHaskell = require('./haskell.js')\nmodule.exports = purescript\npurescript.displayName = 'purescript'\npurescript.aliases = ['purs']\nfunction purescript(Prism) {\n  Prism.register(refractorHaskell)\n  Prism.languages.purescript = Prism.languages.extend('haskell', {\n    keyword:\n      /\\b(?:ado|case|class|data|derive|do|else|forall|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b|∀/,\n    'import-statement': {\n      // The imported or hidden names are not included in this import\n      // statement. This is because we want to highlight those exactly like\n      // we do for the names in the program.\n      pattern:\n        /(^[\\t ]*)import\\s+[A-Z][\\w']*(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+[A-Z][\\w']*(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n      lookbehind: true,\n      inside: {\n        keyword: /\\b(?:as|hiding|import)\\b/,\n        punctuation: /\\./\n      }\n    },\n    // These are builtin functions only. Constructors are highlighted later as a constant.\n    builtin:\n      /\\b(?:absurd|add|ap|append|apply|between|bind|bottom|clamp|compare|comparing|compose|conj|const|degree|discard|disj|div|eq|flap|flip|gcd|identity|ifM|join|lcm|liftA1|liftM1|map|max|mempty|min|mod|mul|negate|not|notEq|one|otherwise|recip|show|sub|top|unit|unless|unlessM|void|when|whenM|zero)\\b/,\n    operator: [\n      // Infix operators\n      Prism.languages.haskell.operator[0], // ASCII operators\n      Prism.languages.haskell.operator[2], // All UTF16 Unicode operator symbols\n      // This regex is equivalent to /(?=[\\x80-\\uFFFF])[\\p{gc=Math_Symbol}\\p{gc=Currency_Symbol}\\p{Modifier_Symbol}\\p{Other_Symbol}]/u\n      // See https://github.com/PrismJS/prism/issues/3006 for more details.\n      /[\\xa2-\\xa6\\xa8\\xa9\\xac\\xae-\\xb1\\xb4\\xb8\\xd7\\xf7\\u02c2-\\u02c5\\u02d2-\\u02df\\u02e5-\\u02eb\\u02ed\\u02ef-\\u02ff\\u0375\\u0384\\u0385\\u03f6\\u0482\\u058d-\\u058f\\u0606-\\u0608\\u060b\\u060e\\u060f\\u06de\\u06e9\\u06fd\\u06fe\\u07f6\\u07fe\\u07ff\\u09f2\\u09f3\\u09fa\\u09fb\\u0af1\\u0b70\\u0bf3-\\u0bfa\\u0c7f\\u0d4f\\u0d79\\u0e3f\\u0f01-\\u0f03\\u0f13\\u0f15-\\u0f17\\u0f1a-\\u0f1f\\u0f34\\u0f36\\u0f38\\u0fbe-\\u0fc5\\u0fc7-\\u0fcc\\u0fce\\u0fcf\\u0fd5-\\u0fd8\\u109e\\u109f\\u1390-\\u1399\\u166d\\u17db\\u1940\\u19de-\\u19ff\\u1b61-\\u1b6a\\u1b74-\\u1b7c\\u1fbd\\u1fbf-\\u1fc1\\u1fcd-\\u1fcf\\u1fdd-\\u1fdf\\u1fed-\\u1fef\\u1ffd\\u1ffe\\u2044\\u2052\\u207a-\\u207c\\u208a-\\u208c\\u20a0-\\u20bf\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211e-\\u2123\\u2125\\u2127\\u2129\\u212e\\u213a\\u213b\\u2140-\\u2144\\u214a-\\u214d\\u214f\\u218a\\u218b\\u2190-\\u2307\\u230c-\\u2328\\u232b-\\u2426\\u2440-\\u244a\\u249c-\\u24e9\\u2500-\\u2767\\u2794-\\u27c4\\u27c7-\\u27e5\\u27f0-\\u2982\\u2999-\\u29d7\\u29dc-\\u29fb\\u29fe-\\u2b73\\u2b76-\\u2b95\\u2b97-\\u2bff\\u2ce5-\\u2cea\\u2e50\\u2e51\\u2e80-\\u2e99\\u2e9b-\\u2ef3\\u2f00-\\u2fd5\\u2ff0-\\u2ffb\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303e\\u303f\\u309b\\u309c\\u3190\\u3191\\u3196-\\u319f\\u31c0-\\u31e3\\u3200-\\u321e\\u322a-\\u3247\\u3250\\u3260-\\u327f\\u328a-\\u32b0\\u32c0-\\u33ff\\u4dc0-\\u4dff\\ua490-\\ua4c6\\ua700-\\ua716\\ua720\\ua721\\ua789\\ua78a\\ua828-\\ua82b\\ua836-\\ua839\\uaa77-\\uaa79\\uab5b\\uab6a\\uab6b\\ufb29\\ufbb2-\\ufbc1\\ufdfc\\ufdfd\\ufe62\\ufe64-\\ufe66\\ufe69\\uff04\\uff0b\\uff1c-\\uff1e\\uff3e\\uff40\\uff5c\\uff5e\\uffe0-\\uffe6\\uffe8-\\uffee\\ufffc\\ufffd]/\n    ]\n  })\n  Prism.languages.purs = Prism.languages.purescript\n}\n","'use strict'\n\nmodule.exports = python\npython.displayName = 'python'\npython.aliases = ['py']\nfunction python(Prism) {\n  Prism.languages.python = {\n    comment: {\n      pattern: /(^|[^\\\\])#.*/,\n      lookbehind: true,\n      greedy: true\n    },\n    'string-interpolation': {\n      pattern:\n        /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,\n      greedy: true,\n      inside: {\n        interpolation: {\n          // \"{\" <expression> <optional \"!s\", \"!r\", or \"!a\"> <optional \":\" format specifier> \"}\"\n          pattern:\n            /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/,\n          lookbehind: true,\n          inside: {\n            'format-spec': {\n              pattern: /(:)[^:(){}]+(?=\\}$)/,\n              lookbehind: true\n            },\n            'conversion-option': {\n              pattern: /![sra](?=[:}]$)/,\n              alias: 'punctuation'\n            },\n            rest: null\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    },\n    'triple-quoted-string': {\n      pattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i,\n      greedy: true,\n      alias: 'string'\n    },\n    string: {\n      pattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,\n      greedy: true\n    },\n    function: {\n      pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n      lookbehind: true\n    },\n    'class-name': {\n      pattern: /(\\bclass\\s+)\\w+/i,\n      lookbehind: true\n    },\n    decorator: {\n      pattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m,\n      lookbehind: true,\n      alias: ['annotation', 'punctuation'],\n      inside: {\n        punctuation: /\\./\n      }\n    },\n    keyword:\n      /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/,\n    builtin:\n      /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\n    boolean: /\\b(?:False|None|True)\\b/,\n    number:\n      /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i,\n    operator: /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n    punctuation: /[{}[\\];(),.:]/\n  }\n  Prism.languages.python['string-interpolation'].inside[\n    'interpolation'\n  ].inside.rest = Prism.languages.python\n  Prism.languages.py = Prism.languages.python\n}\n","'use strict'\n\nmodule.exports = q\nq.displayName = 'q'\nq.aliases = []\nfunction q(Prism) {\n  Prism.languages.q = {\n    string: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n    comment: [\n      // From http://code.kx.com/wiki/Reference/Slash:\n      // When / is following a space (or a right parenthesis, bracket, or brace), it is ignored with the rest of the line.\n      {\n        pattern: /([\\t )\\]}])\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }, // From http://code.kx.com/wiki/Reference/Slash:\n      // A line which has / as its first character and contains at least one other non-whitespace character is a whole-line comment and is ignored entirely.\n      // A / on a line by itself begins a multiline comment which is terminated by the next \\ on a line by itself.\n      // If a / is not matched by a \\, the multiline comment is unterminated and continues to end of file.\n      // The / and \\ must be the first char on the line, but may be followed by any amount of whitespace.\n      {\n        pattern:\n          /(^|\\r?\\n|\\r)\\/[\\t ]*(?:(?:\\r?\\n|\\r)(?:.*(?:\\r?\\n|\\r(?!\\n)))*?(?:\\\\(?=[\\t ]*(?:\\r?\\n|\\r))|$)|\\S.*)/,\n        lookbehind: true,\n        greedy: true\n      }, // From http://code.kx.com/wiki/Reference/Slash:\n      // A \\ on a line by itself with no preceding matching / will comment to end of file.\n      {\n        pattern: /^\\\\[\\t ]*(?:\\r?\\n|\\r)[\\s\\S]+/m,\n        greedy: true\n      },\n      {\n        pattern: /^#!.+/m,\n        greedy: true\n      }\n    ],\n    symbol: /`(?::\\S+|[\\w.]*)/,\n    datetime: {\n      pattern:\n        /0N[mdzuvt]|0W[dtz]|\\d{4}\\.\\d\\d(?:m|\\.\\d\\d(?:T(?:\\d\\d(?::\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?)?)?)?[dz]?)|\\d\\d:\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?[uvt]?/,\n      alias: 'number'\n    },\n    // The negative look-ahead prevents bad highlighting\n    // of verbs 0: and 1:\n    number:\n      /\\b(?![01]:)(?:0N[hje]?|0W[hj]?|0[wn]|0x[\\da-fA-F]+|\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?[hjfeb]?)/,\n    keyword:\n      /\\\\\\w+\\b|\\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\\b/,\n    adverb: {\n      pattern: /['\\/\\\\]:?|\\beach\\b/,\n      alias: 'function'\n    },\n    verb: {\n      pattern: /(?:\\B\\.\\B|\\b[01]:|<[=>]?|>=?|[:+\\-*%,!?~=|$&#@^]):?|\\b_\\b:?/,\n      alias: 'operator'\n    },\n    punctuation: /[(){}\\[\\];.]/\n  }\n}\n","'use strict'\n\nmodule.exports = qml\nqml.displayName = 'qml'\nqml.aliases = []\nfunction qml(Prism) {\n  ;(function (Prism) {\n    var jsString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|'(?:\\\\.|[^\\\\'\\r\\n])*'/.source\n    var jsComment = /\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\//.source\n    var jsExpr =\n      /(?:[^\\\\()[\\]{}\"'/]|<string>|\\/(?![*/])|<comment>|\\(<expr>*\\)|\\[<expr>*\\]|\\{<expr>*\\}|\\\\[\\s\\S])/.source\n        .replace(/<string>/g, function () {\n          return jsString\n        })\n        .replace(/<comment>/g, function () {\n          return jsComment\n        }) // the pattern will blow up, so only a few iterations\n    for (var i = 0; i < 2; i++) {\n      jsExpr = jsExpr.replace(/<expr>/g, function () {\n        return jsExpr\n      })\n    }\n    jsExpr = jsExpr.replace(/<expr>/g, '[^\\\\s\\\\S]')\n    Prism.languages.qml = {\n      comment: {\n        pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n        greedy: true\n      },\n      'javascript-function': {\n        pattern: RegExp(\n          /((?:^|;)[ \\t]*)function\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*\\(<js>*\\)\\s*\\{<js>*\\}/.source.replace(\n            /<js>/g,\n            function () {\n              return jsExpr\n            }\n          ),\n          'm'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'language-javascript',\n        inside: Prism.languages.javascript\n      },\n      'class-name': {\n        pattern: /((?:^|[:;])[ \\t]*)(?!\\d)\\w+(?=[ \\t]*\\{|[ \\t]+on\\b)/m,\n        lookbehind: true\n      },\n      property: [\n        {\n          pattern: /((?:^|[;{])[ \\t]*)(?!\\d)\\w+(?:\\.\\w+)*(?=[ \\t]*:)/m,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /((?:^|[;{])[ \\t]*)property[ \\t]+(?!\\d)\\w+(?:\\.\\w+)*[ \\t]+(?!\\d)\\w+(?:\\.\\w+)*(?=[ \\t]*:)/m,\n          lookbehind: true,\n          inside: {\n            keyword: /^property/,\n            property: /\\w+(?:\\.\\w+)*/\n          }\n        }\n      ],\n      'javascript-expression': {\n        pattern: RegExp(\n          /(:[ \\t]*)(?![\\s;}[])(?:(?!$|[;}])<js>)+/.source.replace(\n            /<js>/g,\n            function () {\n              return jsExpr\n            }\n          ),\n          'm'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'language-javascript',\n        inside: Prism.languages.javascript\n      },\n      string: {\n        pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n        greedy: true\n      },\n      keyword: /\\b(?:as|import|on)\\b/,\n      punctuation: /[{}[\\]:;,]/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = qore\nqore.displayName = 'qore'\nqore.aliases = []\nfunction qore(Prism) {\n  Prism.languages.qore = Prism.languages.extend('clike', {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:\\/\\/|#).*)/,\n      lookbehind: true\n    },\n    // Overridden to allow unescaped multi-line strings\n    string: {\n      pattern: /(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:bool|date|float|int|list|number|string)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\\b/,\n    boolean: /\\b(?:false|true)\\b/i,\n    function: /\\$?\\b(?!\\d)\\w+(?=\\()/,\n    number:\n      /\\b(?:0b[01]+|0x(?:[\\da-f]*\\.)?[\\da-fp\\-]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e\\d+)?[df]|(?:\\d+(?:\\.\\d+)?|\\.\\d+))\\b/i,\n    operator: {\n      pattern:\n        /(^|[^.])(?:\\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\\|[|=]?|[*\\/%^]=?|[~?])/,\n      lookbehind: true\n    },\n    variable: /\\$(?!\\d)\\w+\\b/\n  })\n}\n","'use strict'\n\nmodule.exports = qsharp\nqsharp.displayName = 'qsharp'\nqsharp.aliases = ['qs']\nfunction qsharp(Prism) {\n  ;(function (Prism) {\n    /**\n     * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (zero based).\n     *\n     * Note: This is a simple text based replacement. Be careful when using backreferences!\n     *\n     * @param {string} pattern the given pattern.\n     * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n     * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n     * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n     */\n    function replace(pattern, replacements) {\n      return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n        return '(?:' + replacements[+index] + ')'\n      })\n    }\n    /**\n     * @param {string} pattern\n     * @param {string[]} replacements\n     * @param {string} [flags]\n     * @returns {RegExp}\n     */\n    function re(pattern, replacements, flags) {\n      return RegExp(replace(pattern, replacements), flags || '')\n    }\n    /**\n     * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n     *\n     * @param {string} pattern\n     * @param {number} depthLog2\n     * @returns {string}\n     */\n    function nested(pattern, depthLog2) {\n      for (var i = 0; i < depthLog2; i++) {\n        pattern = pattern.replace(/<<self>>/g, function () {\n          return '(?:' + pattern + ')'\n        })\n      }\n      return pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]')\n    } // https://docs.microsoft.com/en-us/azure/quantum/user-guide/language/typesystem/\n    // https://github.com/microsoft/qsharp-language/tree/main/Specifications/Language/5_Grammar\n    var keywordKinds = {\n      // keywords which represent a return or variable type\n      type: 'Adj BigInt Bool Ctl Double false Int One Pauli PauliI PauliX PauliY PauliZ Qubit Range Result String true Unit Zero',\n      // all other keywords\n      other:\n        'Adjoint adjoint apply as auto body borrow borrowing Controlled controlled distribute elif else fail fixup for function if in internal intrinsic invert is let mutable namespace new newtype open operation repeat return self set until use using while within'\n    } // keywords\n    function keywordsToPattern(words) {\n      return '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b'\n    }\n    var keywords = RegExp(\n      keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.other)\n    ) // types\n    var identifier = /\\b[A-Za-z_]\\w*\\b/.source\n    var qualifiedName = replace(/<<0>>(?:\\s*\\.\\s*<<0>>)*/.source, [identifier])\n    var typeInside = {\n      keyword: keywords,\n      punctuation: /[<>()?,.:[\\]]/\n    } // strings\n    var regularString = /\"(?:\\\\.|[^\\\\\"])*\"/.source\n    Prism.languages.qsharp = Prism.languages.extend('clike', {\n      comment: /\\/\\/.*/,\n      string: [\n        {\n          pattern: re(/(^|[^$\\\\])<<0>>/.source, [regularString]),\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      'class-name': [\n        {\n          // open Microsoft.Quantum.Canon;\n          // open Microsoft.Quantum.Canon as CN;\n          pattern: re(/(\\b(?:as|open)\\s+)<<0>>(?=\\s*(?:;|as\\b))/.source, [\n            qualifiedName\n          ]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // namespace Quantum.App1;\n          pattern: re(/(\\bnamespace\\s+)<<0>>(?=\\s*\\{)/.source, [qualifiedName]),\n          lookbehind: true,\n          inside: typeInside\n        }\n      ],\n      keyword: keywords,\n      number:\n        /(?:\\b0(?:x[\\da-f]+|b[01]+|o[0-7]+)|(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d*)?)(?:e[-+]?\\d+)?)l?\\b/i,\n      operator:\n        /\\band=|\\bor=|\\band\\b|\\bnot\\b|\\bor\\b|<[-=]|[-=]>|>>>=?|<<<=?|\\^\\^\\^=?|\\|\\|\\|=?|&&&=?|w\\/=?|~~~|[*\\/+\\-^=!%]=?/,\n      punctuation: /::|[{}[\\];(),.:]/\n    })\n    Prism.languages.insertBefore('qsharp', 'number', {\n      range: {\n        pattern: /\\.\\./,\n        alias: 'operator'\n      }\n    }) // single line\n    var interpolationExpr = nested(\n      replace(/\\{(?:[^\"{}]|<<0>>|<<self>>)*\\}/.source, [regularString]),\n      2\n    )\n    Prism.languages.insertBefore('qsharp', 'string', {\n      'interpolation-string': {\n        pattern: re(/\\$\"(?:\\\\.|<<0>>|[^\\\\\"{])*\"/.source, [interpolationExpr]),\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern: re(/((?:^|[^\\\\])(?:\\\\\\\\)*)<<0>>/.source, [\n              interpolationExpr\n            ]),\n            lookbehind: true,\n            inside: {\n              punctuation: /^\\{|\\}$/,\n              expression: {\n                pattern: /[\\s\\S]+/,\n                alias: 'language-qsharp',\n                inside: Prism.languages.qsharp\n              }\n            }\n          },\n          string: /[\\s\\S]+/\n        }\n      }\n    })\n  })(Prism)\n  Prism.languages.qs = Prism.languages.qsharp\n}\n","'use strict'\n\nmodule.exports = r\nr.displayName = 'r'\nr.aliases = []\nfunction r(Prism) {\n  Prism.languages.r = {\n    comment: /#.*/,\n    string: {\n      pattern: /(['\"])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    'percent-operator': {\n      // Includes user-defined operators\n      // and %%, %*%, %/%, %in%, %o%, %x%\n      pattern: /%[^%\\s]*%/,\n      alias: 'operator'\n    },\n    boolean: /\\b(?:FALSE|TRUE)\\b/,\n    ellipsis: /\\.\\.(?:\\.|\\d+)/,\n    number: [\n      /\\b(?:Inf|NaN)\\b/,\n      /(?:\\b0x[\\dA-Fa-f]+(?:\\.\\d*)?|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[EePp][+-]?\\d+)?[iL]?/\n    ],\n    keyword:\n      /\\b(?:NA|NA_character_|NA_complex_|NA_integer_|NA_real_|NULL|break|else|for|function|if|in|next|repeat|while)\\b/,\n    operator: /->?>?|<(?:=|<?-)?|[>=!]=?|::?|&&?|\\|\\|?|[+*\\/^$@~]/,\n    punctuation: /[(){}\\[\\],;]/\n  }\n}\n","'use strict'\nvar refractorScheme = require('./scheme.js')\nmodule.exports = racket\nracket.displayName = 'racket'\nracket.aliases = ['rkt']\nfunction racket(Prism) {\n  Prism.register(refractorScheme)\n  Prism.languages.racket = Prism.languages.extend('scheme', {\n    'lambda-parameter': {\n      // the racket lambda syntax is a lot more complex, so we won't even attempt to capture it.\n      // this will just prevent false positives of the `function` pattern\n      pattern: /([(\\[]lambda\\s+[(\\[])[^()\\[\\]'\\s]+/,\n      lookbehind: true\n    }\n  })\n  Prism.languages.insertBefore('racket', 'string', {\n    lang: {\n      pattern: /^#lang.+/m,\n      greedy: true,\n      alias: 'keyword'\n    }\n  })\n  Prism.languages.rkt = Prism.languages.racket\n}\n","'use strict'\n\nmodule.exports = reason\nreason.displayName = 'reason'\nreason.aliases = []\nfunction reason(Prism) {\n  Prism.languages.reason = Prism.languages.extend('clike', {\n    string: {\n      pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n      greedy: true\n    },\n    // 'class-name' must be matched *after* 'constructor' defined below\n    'class-name': /\\b[A-Z]\\w*/,\n    keyword:\n      /\\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\\b/,\n    operator:\n      /\\.{3}|:[:=]|\\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:asr|land|lor|lsl|lsr|lxor|mod)\\b/\n  })\n  Prism.languages.insertBefore('reason', 'class-name', {\n    char: {\n      pattern: /'(?:\\\\x[\\da-f]{2}|\\\\o[0-3][0-7][0-7]|\\\\\\d{3}|\\\\.|[^'\\\\\\r\\n])'/,\n      greedy: true\n    },\n    // Negative look-ahead prevents from matching things like String.capitalize\n    constructor: /\\b[A-Z]\\w*\\b(?!\\s*\\.)/,\n    label: {\n      pattern: /\\b[a-z]\\w*(?=::)/,\n      alias: 'symbol'\n    }\n  }) // We can't match functions property, so let's not even try.\n  delete Prism.languages.reason.function\n}\n","'use strict'\n\nmodule.exports = regex\nregex.displayName = 'regex'\nregex.aliases = []\nfunction regex(Prism) {\n  ;(function (Prism) {\n    var specialEscape = {\n      pattern: /\\\\[\\\\(){}[\\]^$+*?|.]/,\n      alias: 'escape'\n    }\n    var escape =\n      /\\\\(?:x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u\\{[\\da-fA-F]+\\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/\n    var charSet = {\n      pattern: /\\.|\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n      alias: 'class-name'\n    }\n    var charSetWithoutDot = {\n      pattern: /\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n      alias: 'class-name'\n    }\n    var rangeChar = '(?:[^\\\\\\\\-]|' + escape.source + ')'\n    var range = RegExp(rangeChar + '-' + rangeChar) // the name of a capturing group\n    var groupName = {\n      pattern: /(<|')[^<>']+(?=[>']$)/,\n      lookbehind: true,\n      alias: 'variable'\n    }\n    Prism.languages.regex = {\n      'char-class': {\n        pattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)\\[(?:[^\\\\\\]]|\\\\[\\s\\S])*\\]/,\n        lookbehind: true,\n        inside: {\n          'char-class-negation': {\n            pattern: /(^\\[)\\^/,\n            lookbehind: true,\n            alias: 'operator'\n          },\n          'char-class-punctuation': {\n            pattern: /^\\[|\\]$/,\n            alias: 'punctuation'\n          },\n          range: {\n            pattern: range,\n            inside: {\n              escape: escape,\n              'range-punctuation': {\n                pattern: /-/,\n                alias: 'operator'\n              }\n            }\n          },\n          'special-escape': specialEscape,\n          'char-set': charSetWithoutDot,\n          escape: escape\n        }\n      },\n      'special-escape': specialEscape,\n      'char-set': charSet,\n      backreference: [\n        {\n          // a backreference which is not an octal escape\n          pattern: /\\\\(?![123][0-7]{2})[1-9]/,\n          alias: 'keyword'\n        },\n        {\n          pattern: /\\\\k<[^<>']+>/,\n          alias: 'keyword',\n          inside: {\n            'group-name': groupName\n          }\n        }\n      ],\n      anchor: {\n        pattern: /[$^]|\\\\[ABbGZz]/,\n        alias: 'function'\n      },\n      escape: escape,\n      group: [\n        {\n          // https://docs.oracle.com/javase/10/docs/api/java/util/regex/Pattern.html\n          // https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference?view=netframework-4.7.2#grouping-constructs\n          // (), (?<name>), (?'name'), (?>), (?:), (?=), (?!), (?<=), (?<!), (?is-m), (?i-m:)\n          pattern:\n            /\\((?:\\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,\n          alias: 'punctuation',\n          inside: {\n            'group-name': groupName\n          }\n        },\n        {\n          pattern: /\\)/,\n          alias: 'punctuation'\n        }\n      ],\n      quantifier: {\n        pattern: /(?:[+*?]|\\{\\d+(?:,\\d*)?\\})[?+]?/,\n        alias: 'number'\n      },\n      alternation: {\n        pattern: /\\|/,\n        alias: 'keyword'\n      }\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = rego\nrego.displayName = 'rego'\nrego.aliases = []\nfunction rego(Prism) {\n  // https://www.openpolicyagent.org/docs/latest/policy-reference/\n  Prism.languages.rego = {\n    comment: /#.*/,\n    property: {\n      pattern:\n        /(^|[^\\\\.])(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|`[^`]*`|\\b[a-z_]\\w*\\b)(?=\\s*:(?!=))/i,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|`[^`]*`/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:as|default|else|import|not|null|package|set(?=\\s*\\()|some|with)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    function: {\n      pattern: /\\b[a-z_]\\w*\\b(?:\\s*\\.\\s*\\b[a-z_]\\w*\\b)*(?=\\s*\\()/i,\n      inside: {\n        namespace: /\\b\\w+\\b(?=\\s*\\.)/,\n        punctuation: /\\./\n      }\n    },\n    number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n    operator: /[-+*/%|&]|[<>:=]=?|!=|\\b_\\b/,\n    punctuation: /[,;.\\[\\]{}()]/\n  }\n}\n","'use strict'\n\nmodule.exports = renpy\nrenpy.displayName = 'renpy'\nrenpy.aliases = ['rpy']\nfunction renpy(Prism) {\n  Prism.languages.renpy = {\n    comment: {\n      pattern: /(^|[^\\\\])#.+/,\n      lookbehind: true\n    },\n    string: {\n      pattern:\n        /(\"\"\"|''')[\\s\\S]+?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\])*\\2|(?:^#?(?:(?:[0-9a-fA-F]){3}|[0-9a-fA-F]{6})$)/m,\n      greedy: true\n    },\n    function: /\\b[a-z_]\\w*(?=\\()/i,\n    property:\n      /\\b(?:Update|UpdateVersion|action|activate_sound|adv_nvl_transition|after_load_transition|align|alpha|alt|anchor|antialias|area|auto|background|bar_invert|bar_resizing|bar_vertical|black_color|bold|bottom_bar|bottom_gutter|bottom_margin|bottom_padding|box_reverse|box_wrap|can_update|caret|child|color|crop|default_afm_enable|default_afm_time|default_fullscreen|default_text_cps|developer|directory_name|drag_handle|drag_joined|drag_name|drag_raise|draggable|dragged|drop_shadow|drop_shadow_color|droppable|dropped|easein|easeout|edgescroll|end_game_transition|end_splash_transition|enter_replay_transition|enter_sound|enter_transition|enter_yesno_transition|executable_name|exit_replay_transition|exit_sound|exit_transition|exit_yesno_transition|fadein|fadeout|first_indent|first_spacing|fit_first|focus|focus_mask|font|foreground|game_main_transition|get_installed_packages|google_play_key|google_play_salt|ground|has_music|has_sound|has_voice|height|help|hinting|hover|hover_background|hover_color|hover_sound|hovered|hyperlink_functions|idle|idle_color|image_style|include_update|insensitive|insensitive_background|insensitive_color|inside|intra_transition|italic|justify|kerning|keyboard_focus|language|layer_clipping|layers|layout|left_bar|left_gutter|left_margin|left_padding|length|line_leading|line_overlap_split|line_spacing|linear|main_game_transition|main_menu_music|maximum|min_width|minimum|minwidth|modal|mouse|mousewheel|name|narrator_menu|newline_indent|nvl_adv_transition|offset|order_reverse|outlines|overlay_functions|pos|position|prefix|radius|range|rest_indent|right_bar|right_gutter|right_margin|right_padding|rotate|rotate_pad|ruby_style|sample_sound|save_directory|say_attribute_transition|screen_height|screen_width|scrollbars|selected_hover|selected_hover_color|selected_idle|selected_idle_color|selected_insensitive|show_side_image|show_two_window|side_spacing|side_xpos|side_ypos|size|size_group|slow_cps|slow_cps_multiplier|spacing|strikethrough|subpixel|text_align|text_style|text_xpos|text_y_fudge|text_ypos|thumb|thumb_offset|thumb_shadow|thumbnail_height|thumbnail_width|time|top_bar|top_gutter|top_margin|top_padding|translations|underline|unscrollable|update|value|version|version_name|version_tuple|vertical|width|window_hide_transition|window_icon|window_left_padding|window_show_transition|window_title|windows_icon|xadjustment|xalign|xanchor|xanchoraround|xaround|xcenter|xfill|xinitial|xmargin|xmaximum|xminimum|xoffset|xofsset|xpadding|xpos|xsize|xzoom|yadjustment|yalign|yanchor|yanchoraround|yaround|ycenter|yfill|yinitial|ymargin|ymaximum|yminimum|yoffset|ypadding|ypos|ysize|ysizexysize|yzoom|zoom|zorder)\\b/,\n    tag: /\\b(?:bar|block|button|buttoscreenn|drag|draggroup|fixed|frame|grid|[hv]box|hotbar|hotspot|image|imagebutton|imagemap|input|key|label|menu|mm_menu_frame|mousearea|nvl|parallel|screen|self|side|tag|text|textbutton|timer|vbar|viewport|window)\\b|\\$/,\n    keyword:\n      /\\b(?:None|add|adjustment|alignaround|allow|angle|animation|around|as|assert|behind|box_layout|break|build|cache|call|center|changed|child_size|choice|circles|class|clear|clicked|clipping|clockwise|config|contains|continue|corner1|corner2|counterclockwise|def|default|define|del|delay|disabled|disabled_text|dissolve|elif|else|event|except|exclude|exec|expression|fade|finally|for|from|function|global|gm_root|has|hide|id|if|import|in|init|is|jump|knot|lambda|left|less_rounded|mm_root|movie|music|null|on|onlayer|pass|pause|persistent|play|print|python|queue|raise|random|renpy|repeat|return|right|rounded_window|scene|scope|set|show|slow|slow_abortable|slow_done|sound|stop|store|style|style_group|substitute|suffix|theme|transform|transform_anchor|transpose|try|ui|unhovered|updater|use|voice|while|widget|widget_hover|widget_selected|widget_text|yield)\\b/,\n    boolean: /\\b(?:[Ff]alse|[Tt]rue)\\b/,\n    number:\n      /(?:\\b(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?)|\\B\\.\\d+)(?:e[+-]?\\d+)?j?/i,\n    operator:\n      /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:and|at|not|or|with)\\b/,\n    punctuation: /[{}[\\];(),.:]/\n  }\n  Prism.languages.rpy = Prism.languages.renpy\n}\n","'use strict'\n\nmodule.exports = rest\nrest.displayName = 'rest'\nrest.aliases = []\nfunction rest(Prism) {\n  Prism.languages.rest = {\n    table: [\n      {\n        pattern:\n          /(^[\\t ]*)(?:\\+[=-]+)+\\+(?:\\r?\\n|\\r)(?:\\1[+|].+[+|](?:\\r?\\n|\\r))+\\1(?:\\+[=-]+)+\\+/m,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\||(?:\\+[=-]+)+\\+/\n        }\n      },\n      {\n        pattern:\n          /(^[\\t ]*)=+ [ =]*=(?:(?:\\r?\\n|\\r)\\1.+)+(?:\\r?\\n|\\r)\\1=+ [ =]*=(?=(?:\\r?\\n|\\r){2}|\\s*$)/m,\n        lookbehind: true,\n        inside: {\n          punctuation: /[=-]+/\n        }\n      }\n    ],\n    // Directive-like patterns\n    'substitution-def': {\n      pattern: /(^[\\t ]*\\.\\. )\\|(?:[^|\\s](?:[^|]*[^|\\s])?)\\| [^:]+::/m,\n      lookbehind: true,\n      inside: {\n        substitution: {\n          pattern: /^\\|(?:[^|\\s]|[^|\\s][^|]*[^|\\s])\\|/,\n          alias: 'attr-value',\n          inside: {\n            punctuation: /^\\||\\|$/\n          }\n        },\n        directive: {\n          pattern: /( )(?! )[^:]+::/,\n          lookbehind: true,\n          alias: 'function',\n          inside: {\n            punctuation: /::$/\n          }\n        }\n      }\n    },\n    'link-target': [\n      {\n        pattern: /(^[\\t ]*\\.\\. )\\[[^\\]]+\\]/m,\n        lookbehind: true,\n        alias: 'string',\n        inside: {\n          punctuation: /^\\[|\\]$/\n        }\n      },\n      {\n        pattern: /(^[\\t ]*\\.\\. )_(?:`[^`]+`|(?:[^:\\\\]|\\\\.)+):/m,\n        lookbehind: true,\n        alias: 'string',\n        inside: {\n          punctuation: /^_|:$/\n        }\n      }\n    ],\n    directive: {\n      pattern: /(^[\\t ]*\\.\\. )[^:]+::/m,\n      lookbehind: true,\n      alias: 'function',\n      inside: {\n        punctuation: /::$/\n      }\n    },\n    comment: {\n      // The two alternatives try to prevent highlighting of blank comments\n      pattern:\n        /(^[\\t ]*\\.\\.)(?:(?: .+)?(?:(?:\\r?\\n|\\r).+)+| .+)(?=(?:\\r?\\n|\\r){2}|$)/m,\n      lookbehind: true\n    },\n    title: [\n      // Overlined and underlined\n      {\n        pattern:\n          /^(([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+)(?:\\r?\\n|\\r).+(?:\\r?\\n|\\r)\\1$/m,\n        inside: {\n          punctuation:\n            /^[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+|[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,\n          important: /.+/\n        }\n      }, // Underlined only\n      {\n        pattern:\n          /(^|(?:\\r?\\n|\\r){2}).+(?:\\r?\\n|\\r)([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+(?=\\r?\\n|\\r|$)/,\n        lookbehind: true,\n        inside: {\n          punctuation: /[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,\n          important: /.+/\n        }\n      }\n    ],\n    hr: {\n      pattern:\n        /((?:\\r?\\n|\\r){2})([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2{3,}(?=(?:\\r?\\n|\\r){2})/,\n      lookbehind: true,\n      alias: 'punctuation'\n    },\n    field: {\n      pattern: /(^[\\t ]*):[^:\\r\\n]+:(?= )/m,\n      lookbehind: true,\n      alias: 'attr-name'\n    },\n    'command-line-option': {\n      pattern:\n        /(^[\\t ]*)(?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?)*(?=(?:\\r?\\n|\\r)? {2,}\\S)/im,\n      lookbehind: true,\n      alias: 'symbol'\n    },\n    'literal-block': {\n      pattern: /::(?:\\r?\\n|\\r){2}([ \\t]+)(?![ \\t]).+(?:(?:\\r?\\n|\\r)\\1.+)*/,\n      inside: {\n        'literal-block-punctuation': {\n          pattern: /^::/,\n          alias: 'punctuation'\n        }\n      }\n    },\n    'quoted-literal-block': {\n      pattern:\n        /::(?:\\r?\\n|\\r){2}([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]).*(?:(?:\\r?\\n|\\r)\\1.*)*/,\n      inside: {\n        'literal-block-punctuation': {\n          pattern: /^(?:::|([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\1*)/m,\n          alias: 'punctuation'\n        }\n      }\n    },\n    'list-bullet': {\n      pattern:\n        /(^[\\t ]*)(?:[*+\\-•‣⁃]|\\(?(?:\\d+|[a-z]|[ivxdclm]+)\\)|(?:\\d+|[a-z]|[ivxdclm]+)\\.)(?= )/im,\n      lookbehind: true,\n      alias: 'punctuation'\n    },\n    'doctest-block': {\n      pattern: /(^[\\t ]*)>>> .+(?:(?:\\r?\\n|\\r).+)*/m,\n      lookbehind: true,\n      inside: {\n        punctuation: /^>>>/\n      }\n    },\n    inline: [\n      {\n        pattern:\n          /(^|[\\s\\-:\\/'\"<(\\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\\*\\*?|``?|\\|)(?!\\s)(?:(?!\\2).)*\\S\\2(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$))/m,\n        lookbehind: true,\n        inside: {\n          bold: {\n            pattern: /(^\\*\\*).+(?=\\*\\*$)/,\n            lookbehind: true\n          },\n          italic: {\n            pattern: /(^\\*).+(?=\\*$)/,\n            lookbehind: true\n          },\n          'inline-literal': {\n            pattern: /(^``).+(?=``$)/,\n            lookbehind: true,\n            alias: 'symbol'\n          },\n          role: {\n            pattern: /^:[^:]+:|:[^:]+:$/,\n            alias: 'function',\n            inside: {\n              punctuation: /^:|:$/\n            }\n          },\n          'interpreted-text': {\n            pattern: /(^`).+(?=`$)/,\n            lookbehind: true,\n            alias: 'attr-value'\n          },\n          substitution: {\n            pattern: /(^\\|).+(?=\\|$)/,\n            lookbehind: true,\n            alias: 'attr-value'\n          },\n          punctuation: /\\*\\*?|``?|\\|/\n        }\n      }\n    ],\n    link: [\n      {\n        pattern: /\\[[^\\[\\]]+\\]_(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/,\n        alias: 'string',\n        inside: {\n          punctuation: /^\\[|\\]_$/\n        }\n      },\n      {\n        pattern:\n          /(?:\\b[a-z\\d]+(?:[_.:+][a-z\\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/i,\n        alias: 'string',\n        inside: {\n          punctuation: /^_?`|`$|`?_?_$/\n        }\n      }\n    ],\n    // Line block start,\n    // quote attribution,\n    // explicit markup start,\n    // and anonymous hyperlink target shortcut (__)\n    punctuation: {\n      pattern: /(^[\\t ]*)(?:\\|(?= |$)|(?:---?|—|\\.\\.|__)(?= )|\\.\\.$)/m,\n      lookbehind: true\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = rip\nrip.displayName = 'rip'\nrip.aliases = []\nfunction rip(Prism) {\n  Prism.languages.rip = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    char: {\n      pattern: /\\B`[^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]\\b/,\n      greedy: true\n    },\n    string: {\n      pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    regex: {\n      pattern:\n        /(^|[^/])\\/(?!\\/)(?:\\[[^\\n\\r\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/(?=\\s*(?:$|[\\r\\n,.;})]))/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /(?:=>|->)|\\b(?:case|catch|class|else|exit|finally|if|raise|return|switch|try)\\b/,\n    builtin: /@|\\bSystem\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    date: /\\b\\d{4}-\\d{2}-\\d{2}\\b/,\n    time: /\\b\\d{2}:\\d{2}:\\d{2}\\b/,\n    datetime: /\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\b/,\n    symbol: /:[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/,\n    number: /[+-]?\\b(?:\\d+\\.\\d+|\\d+)\\b/,\n    punctuation: /(?:\\.{2,3})|[`,.:;=\\/\\\\()<>\\[\\]{}]/,\n    reference: /[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/\n  }\n}\n","'use strict'\n\nmodule.exports = roboconf\nroboconf.displayName = 'roboconf'\nroboconf.aliases = []\nfunction roboconf(Prism) {\n  Prism.languages.roboconf = {\n    comment: /#.*/,\n    keyword: {\n      pattern:\n        /(^|\\s)(?:(?:external|import)\\b|(?:facet|instance of)(?=[ \\t]+[\\w-]+[ \\t]*\\{))/,\n      lookbehind: true\n    },\n    component: {\n      pattern: /[\\w-]+(?=[ \\t]*\\{)/,\n      alias: 'variable'\n    },\n    property: /[\\w.-]+(?=[ \\t]*:)/,\n    value: {\n      pattern: /(=[ \\t]*(?![ \\t]))[^,;]+/,\n      lookbehind: true,\n      alias: 'attr-value'\n    },\n    optional: {\n      pattern: /\\(optional\\)/,\n      alias: 'builtin'\n    },\n    wildcard: {\n      pattern: /(\\.)\\*/,\n      lookbehind: true,\n      alias: 'operator'\n    },\n    punctuation: /[{},.;:=]/\n  }\n}\n","'use strict'\n\nmodule.exports = robotframework\nrobotframework.displayName = 'robotframework'\nrobotframework.aliases = []\nfunction robotframework(Prism) {\n  ;(function (Prism) {\n    var comment = {\n      pattern: /(^[ \\t]*| {2}|\\t)#.*/m,\n      lookbehind: true,\n      greedy: true\n    }\n    var variable = {\n      pattern: /((?:^|[^\\\\])(?:\\\\{2})*)[$@&%]\\{(?:[^{}\\r\\n]|\\{[^{}\\r\\n]*\\})*\\}/,\n      lookbehind: true,\n      inside: {\n        punctuation: /^[$@&%]\\{|\\}$/\n      }\n    }\n    function createSection(name, inside) {\n      var extendecInside = {}\n      extendecInside['section-header'] = {\n        pattern: /^ ?\\*{3}.+?\\*{3}/,\n        alias: 'keyword'\n      } // copy inside tokens\n      for (var token in inside) {\n        extendecInside[token] = inside[token]\n      }\n      extendecInside['tag'] = {\n        pattern: /([\\r\\n](?: {2}|\\t)[ \\t]*)\\[[-\\w]+\\]/,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\[|\\]/\n        }\n      }\n      extendecInside['variable'] = variable\n      extendecInside['comment'] = comment\n      return {\n        pattern: RegExp(\n          /^ ?\\*{3}[ \\t]*<name>[ \\t]*\\*{3}(?:.|[\\r\\n](?!\\*{3}))*/.source.replace(\n            /<name>/g,\n            function () {\n              return name\n            }\n          ),\n          'im'\n        ),\n        alias: 'section',\n        inside: extendecInside\n      }\n    }\n    var docTag = {\n      pattern:\n        /(\\[Documentation\\](?: {2}|\\t)[ \\t]*)(?![ \\t]|#)(?:.|(?:\\r\\n?|\\n)[ \\t]*\\.{3})+/,\n      lookbehind: true,\n      alias: 'string'\n    }\n    var testNameLike = {\n      pattern: /([\\r\\n] ?)(?!#)(?:\\S(?:[ \\t]\\S)*)+/,\n      lookbehind: true,\n      alias: 'function',\n      inside: {\n        variable: variable\n      }\n    }\n    var testPropertyLike = {\n      pattern: /([\\r\\n](?: {2}|\\t)[ \\t]*)(?!\\[|\\.{3}|#)(?:\\S(?:[ \\t]\\S)*)+/,\n      lookbehind: true,\n      inside: {\n        variable: variable\n      }\n    }\n    Prism.languages['robotframework'] = {\n      settings: createSection('Settings', {\n        documentation: {\n          pattern:\n            /([\\r\\n] ?Documentation(?: {2}|\\t)[ \\t]*)(?![ \\t]|#)(?:.|(?:\\r\\n?|\\n)[ \\t]*\\.{3})+/,\n          lookbehind: true,\n          alias: 'string'\n        },\n        property: {\n          pattern: /([\\r\\n] ?)(?!\\.{3}|#)(?:\\S(?:[ \\t]\\S)*)+/,\n          lookbehind: true\n        }\n      }),\n      variables: createSection('Variables'),\n      'test-cases': createSection('Test Cases', {\n        'test-name': testNameLike,\n        documentation: docTag,\n        property: testPropertyLike\n      }),\n      keywords: createSection('Keywords', {\n        'keyword-name': testNameLike,\n        documentation: docTag,\n        property: testPropertyLike\n      }),\n      tasks: createSection('Tasks', {\n        'task-name': testNameLike,\n        documentation: docTag,\n        property: testPropertyLike\n      }),\n      comment: comment\n    }\n    Prism.languages.robot = Prism.languages['robotframework']\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = ruby\nruby.displayName = 'ruby'\nruby.aliases = ['rb']\nfunction ruby(Prism) {\n  /**\n   * Original by Samuel Flores\n   *\n   * Adds the following new token classes:\n   *     constant, builtin, variable, symbol, regex\n   */\n  ;(function (Prism) {\n    Prism.languages.ruby = Prism.languages.extend('clike', {\n      comment: {\n        pattern: /#.*|^=begin\\s[\\s\\S]*?^=end/m,\n        greedy: true\n      },\n      'class-name': {\n        pattern:\n          /(\\b(?:class|module)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+|\\b[A-Z_]\\w*(?=\\s*\\.\\s*new\\b)/,\n        lookbehind: true,\n        inside: {\n          punctuation: /[.\\\\]/\n        }\n      },\n      keyword:\n        /\\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\\b/,\n      operator:\n        /\\.{2,3}|&\\.|===|<?=>|[!=]?~|(?:&&|\\|\\||<<|>>|\\*\\*|[+\\-*/%<>!^&|=])=?|[?:]/,\n      punctuation: /[(){}[\\].,;]/\n    })\n    Prism.languages.insertBefore('ruby', 'operator', {\n      'double-colon': {\n        pattern: /::/,\n        alias: 'punctuation'\n      }\n    })\n    var interpolation = {\n      pattern: /((?:^|[^\\\\])(?:\\\\{2})*)#\\{(?:[^{}]|\\{[^{}]*\\})*\\}/,\n      lookbehind: true,\n      inside: {\n        content: {\n          pattern: /^(#\\{)[\\s\\S]+(?=\\}$)/,\n          lookbehind: true,\n          inside: Prism.languages.ruby\n        },\n        delimiter: {\n          pattern: /^#\\{|\\}$/,\n          alias: 'punctuation'\n        }\n      }\n    }\n    delete Prism.languages.ruby.function\n    var percentExpression =\n      '(?:' +\n      [\n        /([^a-zA-Z0-9\\s{(\\[<=])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source,\n        /\\((?:[^()\\\\]|\\\\[\\s\\S]|\\((?:[^()\\\\]|\\\\[\\s\\S])*\\))*\\)/.source,\n        /\\{(?:[^{}\\\\]|\\\\[\\s\\S]|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\})*\\}/.source,\n        /\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S]|\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\])*\\]/.source,\n        /<(?:[^<>\\\\]|\\\\[\\s\\S]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)*>/.source\n      ].join('|') +\n      ')'\n    var symbolName =\n      /(?:\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|(?:\\b[a-zA-Z_]\\w*|[^\\s\\0-\\x7F]+)[?!]?|\\$.)/\n        .source\n    Prism.languages.insertBefore('ruby', 'keyword', {\n      'regex-literal': [\n        {\n          pattern: RegExp(\n            /%r/.source + percentExpression + /[egimnosux]{0,6}/.source\n          ),\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            regex: /[\\s\\S]+/\n          }\n        },\n        {\n          pattern:\n            /(^|[^/])\\/(?!\\/)(?:\\[[^\\r\\n\\]]+\\]|\\\\.|[^[/\\\\\\r\\n])+\\/[egimnosux]{0,6}(?=\\s*(?:$|[\\r\\n,.;})#]))/,\n          lookbehind: true,\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            regex: /[\\s\\S]+/\n          }\n        }\n      ],\n      variable: /[@$]+[a-zA-Z_]\\w*(?:[?!]|\\b)/,\n      symbol: [\n        {\n          pattern: RegExp(/(^|[^:]):/.source + symbolName),\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          pattern: RegExp(\n            /([\\r\\n{(,][ \\t]*)/.source + symbolName + /(?=:(?!:))/.source\n          ),\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      'method-definition': {\n        pattern: /(\\bdef\\s+)\\w+(?:\\s*\\.\\s*\\w+)?/,\n        lookbehind: true,\n        inside: {\n          function: /\\b\\w+$/,\n          keyword: /^self\\b/,\n          'class-name': /^\\w+/,\n          punctuation: /\\./\n        }\n      }\n    })\n    Prism.languages.insertBefore('ruby', 'string', {\n      'string-literal': [\n        {\n          pattern: RegExp(/%[qQiIwWs]?/.source + percentExpression),\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            string: /[\\s\\S]+/\n          }\n        },\n        {\n          pattern:\n            /(\"|')(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\#\\r\\n])*\\1/,\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            string: /[\\s\\S]+/\n          }\n        },\n        {\n          pattern: /<<[-~]?([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n          alias: 'heredoc-string',\n          greedy: true,\n          inside: {\n            delimiter: {\n              pattern: /^<<[-~]?[a-z_]\\w*|\\b[a-z_]\\w*$/i,\n              inside: {\n                symbol: /\\b\\w+/,\n                punctuation: /^<<[-~]?/\n              }\n            },\n            interpolation: interpolation,\n            string: /[\\s\\S]+/\n          }\n        },\n        {\n          pattern: /<<[-~]?'([a-z_]\\w*)'[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n          alias: 'heredoc-string',\n          greedy: true,\n          inside: {\n            delimiter: {\n              pattern: /^<<[-~]?'[a-z_]\\w*'|\\b[a-z_]\\w*$/i,\n              inside: {\n                symbol: /\\b\\w+/,\n                punctuation: /^<<[-~]?'|'$/\n              }\n            },\n            string: /[\\s\\S]+/\n          }\n        }\n      ],\n      'command-literal': [\n        {\n          pattern: RegExp(/%x/.source + percentExpression),\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            command: {\n              pattern: /[\\s\\S]+/,\n              alias: 'string'\n            }\n          }\n        },\n        {\n          pattern: /`(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|[^\\\\`#\\r\\n])*`/,\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            command: {\n              pattern: /[\\s\\S]+/,\n              alias: 'string'\n            }\n          }\n        }\n      ]\n    })\n    delete Prism.languages.ruby.string\n    Prism.languages.insertBefore('ruby', 'number', {\n      builtin:\n        /\\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\\b/,\n      constant: /\\b[A-Z][A-Z0-9_]*(?:[?!]|\\b)/\n    })\n    Prism.languages.rb = Prism.languages.ruby\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = rust\nrust.displayName = 'rust'\nrust.aliases = []\nfunction rust(Prism) {\n  ;(function (Prism) {\n    var multilineComment = /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\//.source\n    for (var i = 0; i < 2; i++) {\n      // support 4 levels of nested comments\n      multilineComment = multilineComment.replace(/<self>/g, function () {\n        return multilineComment\n      })\n    }\n    multilineComment = multilineComment.replace(/<self>/g, function () {\n      return /[^\\s\\S]/.source\n    })\n    Prism.languages.rust = {\n      comment: [\n        {\n          pattern: RegExp(/(^|[^\\\\])/.source + multilineComment),\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          pattern: /(^|[^\\\\:])\\/\\/.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      string: {\n        pattern: /b?\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|b?r(#*)\"(?:[^\"]|\"(?!\\1))*\"\\1/,\n        greedy: true\n      },\n      char: {\n        pattern:\n          /b?'(?:\\\\(?:x[0-7][\\da-fA-F]|u\\{(?:[\\da-fA-F]_*){1,6}\\}|.)|[^\\\\\\r\\n\\t'])'/,\n        greedy: true\n      },\n      attribute: {\n        pattern: /#!?\\[(?:[^\\[\\]\"]|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")*\\]/,\n        greedy: true,\n        alias: 'attr-name',\n        inside: {\n          string: null // see below\n        }\n      },\n      // Closure params should not be confused with bitwise OR |\n      'closure-params': {\n        pattern: /([=(,:]\\s*|\\bmove\\s*)\\|[^|]*\\||\\|[^|]*\\|(?=\\s*(?:\\{|->))/,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          'closure-punctuation': {\n            pattern: /^\\||\\|$/,\n            alias: 'punctuation'\n          },\n          rest: null // see below\n        }\n      },\n      'lifetime-annotation': {\n        pattern: /'\\w+/,\n        alias: 'symbol'\n      },\n      'fragment-specifier': {\n        pattern: /(\\$\\w+:)[a-z]+/,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      variable: /\\$\\w+/,\n      'function-definition': {\n        pattern: /(\\bfn\\s+)\\w+/,\n        lookbehind: true,\n        alias: 'function'\n      },\n      'type-definition': {\n        pattern: /(\\b(?:enum|struct|trait|type|union)\\s+)\\w+/,\n        lookbehind: true,\n        alias: 'class-name'\n      },\n      'module-declaration': [\n        {\n          pattern: /(\\b(?:crate|mod)\\s+)[a-z][a-z_\\d]*/,\n          lookbehind: true,\n          alias: 'namespace'\n        },\n        {\n          pattern:\n            /(\\b(?:crate|self|super)\\s*)::\\s*[a-z][a-z_\\d]*\\b(?:\\s*::(?:\\s*[a-z][a-z_\\d]*\\s*::)*)?/,\n          lookbehind: true,\n          alias: 'namespace',\n          inside: {\n            punctuation: /::/\n          }\n        }\n      ],\n      keyword: [\n        // https://github.com/rust-lang/reference/blob/master/src/keywords.md\n        /\\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\\b/, // primitives and str\n        // https://doc.rust-lang.org/stable/rust-by-example/primitives.html\n        /\\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\\b/\n      ],\n      // functions can technically start with an upper-case letter, but this will introduce a lot of false positives\n      // and Rust's naming conventions recommend snake_case anyway.\n      // https://doc.rust-lang.org/1.0.0/style/style/naming/README.html\n      function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())/,\n      macro: {\n        pattern: /\\b\\w+!/,\n        alias: 'property'\n      },\n      constant: /\\b[A-Z_][A-Z_\\d]+\\b/,\n      'class-name': /\\b[A-Z]\\w*\\b/,\n      namespace: {\n        pattern: /(?:\\b[a-z][a-z_\\d]*\\s*::\\s*)*\\b[a-z][a-z_\\d]*\\s*::(?!\\s*<)/,\n        inside: {\n          punctuation: /::/\n        }\n      },\n      // Hex, oct, bin, dec numbers with visual separators and type suffix\n      number:\n        /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      punctuation: /->|\\.\\.=|\\.{1,3}|::|[{}[\\];(),:]/,\n      operator: /[-+*\\/%!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?=?|[@?]/\n    }\n    Prism.languages.rust['closure-params'].inside.rest = Prism.languages.rust\n    Prism.languages.rust['attribute'].inside['string'] =\n      Prism.languages.rust['string']\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = sas\nsas.displayName = 'sas'\nsas.aliases = []\nfunction sas(Prism) {\n  ;(function (Prism) {\n    var stringPattern = /(?:\"(?:\"\"|[^\"])*\"(?!\")|'(?:''|[^'])*'(?!'))/.source\n    var number = /\\b(?:\\d[\\da-f]*x|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i\n    var numericConstant = {\n      pattern: RegExp(stringPattern + '[bx]'),\n      alias: 'number'\n    }\n    var macroVariable = {\n      pattern: /&[a-z_]\\w*/i\n    }\n    var macroKeyword = {\n      pattern:\n        /((?:^|\\s|=|\\())%(?:ABORT|BY|CMS|COPY|DISPLAY|DO|ELSE|END|EVAL|GLOBAL|GO|GOTO|IF|INC|INCLUDE|INDEX|INPUT|KTRIM|LENGTH|LET|LIST|LOCAL|PUT|QKTRIM|QSCAN|QSUBSTR|QSYSFUNC|QUPCASE|RETURN|RUN|SCAN|SUBSTR|SUPERQ|SYMDEL|SYMEXIST|SYMGLOBL|SYMLOCAL|SYSCALL|SYSEVALF|SYSEXEC|SYSFUNC|SYSGET|SYSRPUT|THEN|TO|TSO|UNQUOTE|UNTIL|UPCASE|WHILE|WINDOW)\\b/i,\n      lookbehind: true,\n      alias: 'keyword'\n    }\n    var step = {\n      pattern: /(^|\\s)(?:proc\\s+\\w+|data(?!=)|quit|run)\\b/i,\n      alias: 'keyword',\n      lookbehind: true\n    }\n    var comment = [\n      /\\/\\*[\\s\\S]*?\\*\\//,\n      {\n        pattern: /(^[ \\t]*|;\\s*)\\*[^;]*;/m,\n        lookbehind: true\n      }\n    ]\n    var string = {\n      pattern: RegExp(stringPattern),\n      greedy: true\n    }\n    var punctuation = /[$%@.(){}\\[\\];,\\\\]/\n    var func = {\n      pattern: /%?\\b\\w+(?=\\()/,\n      alias: 'keyword'\n    }\n    var args = {\n      function: func,\n      'arg-value': {\n        pattern: /(=\\s*)[A-Z\\.]+/i,\n        lookbehind: true\n      },\n      operator: /=/,\n      'macro-variable': macroVariable,\n      arg: {\n        pattern: /[A-Z]+/i,\n        alias: 'keyword'\n      },\n      number: number,\n      'numeric-constant': numericConstant,\n      punctuation: punctuation,\n      string: string\n    }\n    var format = {\n      pattern: /\\b(?:format|put)\\b=?[\\w'$.]+/i,\n      inside: {\n        keyword: /^(?:format|put)(?==)/i,\n        equals: /=/,\n        format: {\n          pattern: /(?:\\w|\\$\\d)+\\.\\d?/,\n          alias: 'number'\n        }\n      }\n    }\n    var altformat = {\n      pattern: /\\b(?:format|put)\\s+[\\w']+(?:\\s+[$.\\w]+)+(?=;)/i,\n      inside: {\n        keyword: /^(?:format|put)/i,\n        format: {\n          pattern: /[\\w$]+\\.\\d?/,\n          alias: 'number'\n        }\n      }\n    }\n    var globalStatements = {\n      pattern:\n        /((?:^|\\s)=?)(?:catname|checkpoint execute_always|dm|endsas|filename|footnote|%include|libname|%list|lock|missing|options|page|resetline|%run|sasfile|skip|sysecho|title\\d?)\\b/i,\n      lookbehind: true,\n      alias: 'keyword'\n    }\n    var submitStatement = {\n      pattern: /(^|\\s)(?:submit(?:\\s+(?:load|norun|parseonly))?|endsubmit)\\b/i,\n      lookbehind: true,\n      alias: 'keyword'\n    }\n    var actionSets =\n      /aStore|accessControl|aggregation|audio|autotune|bayesianNetClassifier|bioMedImage|boolRule|builtins|cardinality|cdm|clustering|conditionalRandomFields|configuration|copula|countreg|dataDiscovery|dataPreprocess|dataSciencePilot|dataStep|decisionTree|deduplication|deepLearn|deepNeural|deepRnn|ds2|ecm|entityRes|espCluster|explainModel|factmac|fastKnn|fcmpact|fedSql|freqTab|gVarCluster|gam|gleam|graphSemiSupLearn|hiddenMarkovModel|hyperGroup|ica|image|iml|kernalPca|langModel|ldaTopic|loadStreams|mbc|mixed|mlTools|modelPublishing|network|neuralNet|nmf|nonParametricBayes|nonlinear|optNetwork|optimization|panel|pca|percentile|phreg|pls|qkb|qlim|quantreg|recommend|regression|reinforcementLearn|robustPca|ruleMining|sampling|sandwich|sccasl|search(?:Analytics)?|sentimentAnalysis|sequence|session(?:Prop)?|severity|simSystem|simple|smartData|sparkEmbeddedProcess|sparseML|spatialreg|spc|stabilityMonitoring|svDataDescription|svm|table|text(?:Filters|Frequency|Mining|Parse|Rule(?:Develop|Score)|Topic|Util)|timeData|transpose|tsInfo|tsReconcile|uniTimeSeries|varReduce/\n        .source\n    var casActions = {\n      pattern: RegExp(\n        /(^|\\s)(?:action\\s+)?(?:<act>)\\.[a-z]+\\b[^;]+/.source.replace(\n          /<act>/g,\n          function () {\n            return actionSets\n          }\n        ),\n        'i'\n      ),\n      lookbehind: true,\n      inside: {\n        keyword: RegExp(\n          /(?:<act>)\\.[a-z]+\\b/.source.replace(/<act>/g, function () {\n            return actionSets\n          }),\n          'i'\n        ),\n        action: {\n          pattern: /(?:action)/i,\n          alias: 'keyword'\n        },\n        comment: comment,\n        function: func,\n        'arg-value': args['arg-value'],\n        operator: args.operator,\n        argument: args.arg,\n        number: number,\n        'numeric-constant': numericConstant,\n        punctuation: punctuation,\n        string: string\n      }\n    }\n    var keywords = {\n      pattern:\n        /((?:^|\\s)=?)(?:after|analysis|and|array|barchart|barwidth|begingraph|by|call|cas|cbarline|cfill|class(?:lev)?|close|column|computed?|contains|continue|data(?==)|define|delete|describe|document|do\\s+over|do|dol|drop|dul|else|end(?:comp|source)?|entryTitle|eval(?:uate)?|exec(?:ute)?|exit|file(?:name)?|fill(?:attrs)?|flist|fnc|function(?:list)?|global|goto|group(?:by)?|headline|headskip|histogram|if|infile|keep|keylabel|keyword|label|layout|leave|legendlabel|length|libname|loadactionset|merge|midpoints|_?null_|name|noobs|nowd|ods|options|or|otherwise|out(?:put)?|over(?:lay)?|plot|print|put|raise|ranexp|rannor|rbreak|retain|return|select|session|sessref|set|source|statgraph|sum|summarize|table|temp|terminate|then\\s+do|then|title\\d?|to|var|when|where|xaxisopts|y2axisopts|yaxisopts)\\b/i,\n      lookbehind: true\n    }\n    Prism.languages.sas = {\n      datalines: {\n        pattern: /^([ \\t]*)(?:cards|(?:data)?lines);[\\s\\S]+?^[ \\t]*;/im,\n        lookbehind: true,\n        alias: 'string',\n        inside: {\n          keyword: {\n            pattern: /^(?:cards|(?:data)?lines)/i\n          },\n          punctuation: /;/\n        }\n      },\n      'proc-sql': {\n        pattern:\n          /(^proc\\s+(?:fed)?sql(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n        lookbehind: true,\n        inside: {\n          sql: {\n            pattern: RegExp(\n              /^[ \\t]*(?:select|alter\\s+table|(?:create|describe|drop)\\s+(?:index|table(?:\\s+constraints)?|view)|create\\s+unique\\s+index|insert\\s+into|update)(?:<str>|[^;\"'])+;/.source.replace(\n                /<str>/g,\n                function () {\n                  return stringPattern\n                }\n              ),\n              'im'\n            ),\n            alias: 'language-sql',\n            inside: Prism.languages.sql\n          },\n          'global-statements': globalStatements,\n          'sql-statements': {\n            pattern:\n              /(^|\\s)(?:disconnect\\s+from|begin|commit|exec(?:ute)?|reset|rollback|validate)\\b/i,\n            lookbehind: true,\n            alias: 'keyword'\n          },\n          number: number,\n          'numeric-constant': numericConstant,\n          punctuation: punctuation,\n          string: string\n        }\n      },\n      'proc-groovy': {\n        pattern:\n          /(^proc\\s+groovy(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n        lookbehind: true,\n        inside: {\n          comment: comment,\n          groovy: {\n            pattern: RegExp(\n              /(^[ \\t]*submit(?:\\s+(?:load|norun|parseonly))?)(?:<str>|[^\"'])+?(?=endsubmit;)/.source.replace(\n                /<str>/g,\n                function () {\n                  return stringPattern\n                }\n              ),\n              'im'\n            ),\n            lookbehind: true,\n            alias: 'language-groovy',\n            inside: Prism.languages.groovy\n          },\n          keyword: keywords,\n          'submit-statement': submitStatement,\n          'global-statements': globalStatements,\n          number: number,\n          'numeric-constant': numericConstant,\n          punctuation: punctuation,\n          string: string\n        }\n      },\n      'proc-lua': {\n        pattern:\n          /(^proc\\s+lua(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n        lookbehind: true,\n        inside: {\n          comment: comment,\n          lua: {\n            pattern: RegExp(\n              /(^[ \\t]*submit(?:\\s+(?:load|norun|parseonly))?)(?:<str>|[^\"'])+?(?=endsubmit;)/.source.replace(\n                /<str>/g,\n                function () {\n                  return stringPattern\n                }\n              ),\n              'im'\n            ),\n            lookbehind: true,\n            alias: 'language-lua',\n            inside: Prism.languages.lua\n          },\n          keyword: keywords,\n          'submit-statement': submitStatement,\n          'global-statements': globalStatements,\n          number: number,\n          'numeric-constant': numericConstant,\n          punctuation: punctuation,\n          string: string\n        }\n      },\n      'proc-cas': {\n        pattern:\n          /(^proc\\s+cas(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|quit|data);|(?![\\s\\S]))/im,\n        lookbehind: true,\n        inside: {\n          comment: comment,\n          'statement-var': {\n            pattern: /((?:^|\\s)=?)saveresult\\s[^;]+/im,\n            lookbehind: true,\n            inside: {\n              statement: {\n                pattern: /^saveresult\\s+\\S+/i,\n                inside: {\n                  keyword: /^(?:saveresult)/i\n                }\n              },\n              rest: args\n            }\n          },\n          'cas-actions': casActions,\n          statement: {\n            pattern:\n              /((?:^|\\s)=?)(?:default|(?:un)?set|on|output|upload)[^;]+/im,\n            lookbehind: true,\n            inside: args\n          },\n          step: step,\n          keyword: keywords,\n          function: func,\n          format: format,\n          altformat: altformat,\n          'global-statements': globalStatements,\n          number: number,\n          'numeric-constant': numericConstant,\n          punctuation: punctuation,\n          string: string\n        }\n      },\n      'proc-args': {\n        pattern: RegExp(\n          /(^proc\\s+\\w+\\s+)(?!\\s)(?:[^;\"']|<str>)+;/.source.replace(\n            /<str>/g,\n            function () {\n              return stringPattern\n            }\n          ),\n          'im'\n        ),\n        lookbehind: true,\n        inside: args\n      },\n      /*Special keywords within macros*/\n      'macro-keyword': macroKeyword,\n      'macro-variable': macroVariable,\n      'macro-string-functions': {\n        pattern:\n          /((?:^|\\s|=))%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)\\(.*?(?:[^%]\\))/i,\n        lookbehind: true,\n        inside: {\n          function: {\n            pattern: /%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)/i,\n            alias: 'keyword'\n          },\n          'macro-keyword': macroKeyword,\n          'macro-variable': macroVariable,\n          'escaped-char': {\n            pattern: /%['\"()<>=¬^~;,#]/\n          },\n          punctuation: punctuation\n        }\n      },\n      'macro-declaration': {\n        pattern: /^%macro[^;]+(?=;)/im,\n        inside: {\n          keyword: /%macro/i\n        }\n      },\n      'macro-end': {\n        pattern: /^%mend[^;]+(?=;)/im,\n        inside: {\n          keyword: /%mend/i\n        }\n      },\n      /*%_zscore(headcir, _lhc, _mhc, _shc, headcz, headcpct, _Fheadcz); */\n      macro: {\n        pattern: /%_\\w+(?=\\()/,\n        alias: 'keyword'\n      },\n      input: {\n        pattern: /\\binput\\s[-\\w\\s/*.$&]+;/i,\n        inside: {\n          input: {\n            alias: 'keyword',\n            pattern: /^input/i\n          },\n          comment: comment,\n          number: number,\n          'numeric-constant': numericConstant\n        }\n      },\n      'options-args': {\n        pattern: /(^options)[-'\"|/\\\\<>*+=:()\\w\\s]*(?=;)/im,\n        lookbehind: true,\n        inside: args\n      },\n      'cas-actions': casActions,\n      comment: comment,\n      function: func,\n      format: format,\n      altformat: altformat,\n      'numeric-constant': numericConstant,\n      datetime: {\n        // '1jan2013'd, '9:25:19pm't, '18jan2003:9:27:05am'dt\n        pattern: RegExp(stringPattern + '(?:dt?|t)'),\n        alias: 'number'\n      },\n      string: string,\n      step: step,\n      keyword: keywords,\n      // In SAS Studio syntax highlighting, these operators are styled like keywords\n      'operator-keyword': {\n        pattern: /\\b(?:eq|ge|gt|in|le|lt|ne|not)\\b/i,\n        alias: 'operator'\n      },\n      // Decimal (1.2e23), hexadecimal (0c1x)\n      number: number,\n      operator: /\\*\\*?|\\|\\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\\/=&]|[~¬^]=?/,\n      punctuation: punctuation\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = sass\nsass.displayName = 'sass'\nsass.aliases = []\nfunction sass(Prism) {\n  ;(function (Prism) {\n    Prism.languages.sass = Prism.languages.extend('css', {\n      // Sass comments don't need to be closed, only indented\n      comment: {\n        pattern: /^([ \\t]*)\\/[\\/*].*(?:(?:\\r?\\n|\\r)\\1[ \\t].+)*/m,\n        lookbehind: true,\n        greedy: true\n      }\n    })\n    Prism.languages.insertBefore('sass', 'atrule', {\n      // We want to consume the whole line\n      'atrule-line': {\n        // Includes support for = and + shortcuts\n        pattern: /^(?:[ \\t]*)[@+=].+/m,\n        greedy: true,\n        inside: {\n          atrule: /(?:@[\\w-]+|[+=])/\n        }\n      }\n    })\n    delete Prism.languages.sass.atrule\n    var variable = /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n    var operator = [\n      /[+*\\/%]|[=!]=|<=?|>=?|\\b(?:and|not|or)\\b/,\n      {\n        pattern: /(\\s)-(?=\\s)/,\n        lookbehind: true\n      }\n    ]\n    Prism.languages.insertBefore('sass', 'property', {\n      // We want to consume the whole line\n      'variable-line': {\n        pattern: /^[ \\t]*\\$.+/m,\n        greedy: true,\n        inside: {\n          punctuation: /:/,\n          variable: variable,\n          operator: operator\n        }\n      },\n      // We want to consume the whole line\n      'property-line': {\n        pattern: /^[ \\t]*(?:[^:\\s]+ *:.*|:[^:\\s].*)/m,\n        greedy: true,\n        inside: {\n          property: [\n            /[^:\\s]+(?=\\s*:)/,\n            {\n              pattern: /(:)[^:\\s]+/,\n              lookbehind: true\n            }\n          ],\n          punctuation: /:/,\n          variable: variable,\n          operator: operator,\n          important: Prism.languages.sass.important\n        }\n      }\n    })\n    delete Prism.languages.sass.property\n    delete Prism.languages.sass.important // Now that whole lines for other patterns are consumed,\n    // what's left should be selectors\n    Prism.languages.insertBefore('sass', 'punctuation', {\n      selector: {\n        pattern:\n          /^([ \\t]*)\\S(?:,[^,\\r\\n]+|[^,\\r\\n]*)(?:,[^,\\r\\n]+)*(?:,(?:\\r?\\n|\\r)\\1[ \\t]+\\S(?:,[^,\\r\\n]+|[^,\\r\\n]*)(?:,[^,\\r\\n]+)*)*/m,\n        lookbehind: true,\n        greedy: true\n      }\n    })\n  })(Prism)\n}\n","'use strict'\nvar refractorJava = require('./java.js')\nmodule.exports = scala\nscala.displayName = 'scala'\nscala.aliases = []\nfunction scala(Prism) {\n  Prism.register(refractorJava)\n  Prism.languages.scala = Prism.languages.extend('java', {\n    'triple-quoted-string': {\n      pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n      greedy: true,\n      alias: 'string'\n    },\n    string: {\n      pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    keyword:\n      /<-|=>|\\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\\b/,\n    number:\n      /\\b0x(?:[\\da-f]*\\.)?[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e\\d+)?[dfl]?/i,\n    builtin:\n      /\\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\\b/,\n    symbol: /'[^\\d\\s\\\\]\\w*/\n  })\n  Prism.languages.insertBefore('scala', 'triple-quoted-string', {\n    'string-interpolation': {\n      pattern:\n        /\\b[a-z]\\w*(?:\"\"\"(?:[^$]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*?\"\"\"|\"(?:[^$\"\\r\\n]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*\")/i,\n      greedy: true,\n      inside: {\n        id: {\n          pattern: /^\\w+/,\n          greedy: true,\n          alias: 'function'\n        },\n        escape: {\n          pattern: /\\\\\\$\"|\\$[$\"]/,\n          greedy: true,\n          alias: 'symbol'\n        },\n        interpolation: {\n          pattern: /\\$(?:\\w+|\\{(?:[^{}]|\\{[^{}]*\\})*\\})/,\n          greedy: true,\n          inside: {\n            punctuation: /^\\$\\{?|\\}$/,\n            expression: {\n              pattern: /[\\s\\S]+/,\n              inside: Prism.languages.scala\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n  })\n  delete Prism.languages.scala['class-name']\n  delete Prism.languages.scala['function']\n}\n","'use strict'\n\nmodule.exports = scheme\nscheme.displayName = 'scheme'\nscheme.aliases = []\nfunction scheme(Prism) {\n  ;(function (Prism) {\n    Prism.languages.scheme = {\n      // this supports \"normal\" single-line comments:\n      //   ; comment\n      // and (potentially nested) multiline comments:\n      //   #| comment #| nested |# still comment |#\n      // (only 1 level of nesting is supported)\n      comment:\n        /;.*|#;\\s*(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\[(?:[^\\[\\]]|\\[[^\\[\\]]*\\])*\\])|#\\|(?:[^#|]|#(?!\\|)|\\|(?!#)|#\\|(?:[^#|]|#(?!\\|)|\\|(?!#))*\\|#)*\\|#/,\n      string: {\n        pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n        greedy: true\n      },\n      symbol: {\n        pattern: /'[^()\\[\\]#'\\s]+/,\n        greedy: true\n      },\n      char: {\n        pattern:\n          /#\\\\(?:[ux][a-fA-F\\d]+\\b|[-a-zA-Z]+\\b|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\\S)/,\n        greedy: true\n      },\n      'lambda-parameter': [\n        // https://www.cs.cmu.edu/Groups/AI/html/r4rs/r4rs_6.html#SEC30\n        {\n          pattern:\n            /((?:^|[^'`#])[(\\[]lambda\\s+)(?:[^|()\\[\\]'\\s]+|\\|(?:[^\\\\|]|\\\\.)*\\|)/,\n          lookbehind: true\n        },\n        {\n          pattern: /((?:^|[^'`#])[(\\[]lambda\\s+[(\\[])[^()\\[\\]']+/,\n          lookbehind: true\n        }\n      ],\n      keyword: {\n        pattern:\n          /((?:^|[^'`#])[(\\[])(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|except|export|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\\*)?|let\\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true\n      },\n      builtin: {\n        // all functions of the base library of R7RS plus some of built-ins of R5Rs\n        pattern:\n          /((?:^|[^'`#])[(\\[])(?:abs|and|append|apply|assoc|ass[qv]|binary-port\\?|boolean=?\\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\\?|\\?|<\\?|<=\\?|=\\?|>\\?|>=\\?)|close-(?:input-port|output-port|port)|complex\\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\\??|eq\\?|equal\\?|eqv\\?|error|error-object(?:-irritants|-message|\\?)|eval|even\\?|exact(?:-integer-sqrt|-integer\\?|\\?)?|expt|features|file-error\\?|floor(?:-quotient|-remainder|\\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\\??|input-port(?:-open\\?|\\?)|integer(?:->char|\\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\\?|newline|not|null\\?|number(?:->string|\\?)|numerator|odd\\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\\?|\\?)|pair\\?|peek-char|peek-u8|port\\?|positive\\?|procedure\\?|quotient|raise|raise-continuable|rational\\?|rationalize|read-(?:bytevector|bytevector!|char|error\\?|line|string|u8)|real\\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\\?|<\\?|<=\\?|=\\?|>\\?|>=\\?)?|substring|symbol(?:->string|\\?|=\\?)|syntax-error|textual-port\\?|truncate(?:-quotient|-remainder|\\/)?|u8-ready\\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\\?)(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true\n      },\n      operator: {\n        pattern: /((?:^|[^'`#])[(\\[])(?:[-+*%/]|[<>]=?|=>?)(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true\n      },\n      number: {\n        // The number pattern from [the R7RS spec](https://small.r7rs.org/attachment/r7rs.pdf).\n        //\n        // <number>      := <num 2>|<num 8>|<num 10>|<num 16>\n        // <num R>       := <prefix R><complex R>\n        // <complex R>   := <real R>(?:@<real R>|<imaginary R>)?|<imaginary R>\n        // <imaginary R> := [+-](?:<ureal R>|(?:inf|nan)\\.0)?i\n        // <real R>      := [+-]?<ureal R>|[+-](?:inf|nan)\\.0\n        // <ureal R>     := <uint R>(?:\\/<uint R>)?\n        //                | <decimal R>\n        //\n        // <decimal 10>  := (?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?\n        // <uint R>      := <digit R>+\n        // <prefix R>    := <radix R>(?:#[ei])?|(?:#[ei])?<radix R>\n        // <radix 2>     := #b\n        // <radix 8>     := #o\n        // <radix 10>    := (?:#d)?\n        // <radix 16>    := #x\n        // <digit 2>     := [01]\n        // <digit 8>     := [0-7]\n        // <digit 10>    := \\d\n        // <digit 16>    := [0-9a-f]\n        //\n        // The problem with this grammar is that the resulting regex is way to complex, so we simplify by grouping all\n        // non-decimal bases together. This results in a decimal (dec) and combined binary, octal, and hexadecimal (box)\n        // pattern:\n        pattern: RegExp(\n          SortedBNF({\n            '<ureal dec>':\n              /\\d+(?:\\/\\d+)|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[esfdl][+-]?\\d+)?/.source,\n            '<real dec>': /[+-]?<ureal dec>|[+-](?:inf|nan)\\.0/.source,\n            '<imaginary dec>': /[+-](?:<ureal dec>|(?:inf|nan)\\.0)?i/.source,\n            '<complex dec>':\n              /<real dec>(?:@<real dec>|<imaginary dec>)?|<imaginary dec>/\n                .source,\n            '<num dec>': /(?:#d(?:#[ei])?|#[ei](?:#d)?)?<complex dec>/.source,\n            '<ureal box>': /[0-9a-f]+(?:\\/[0-9a-f]+)?/.source,\n            '<real box>': /[+-]?<ureal box>|[+-](?:inf|nan)\\.0/.source,\n            '<imaginary box>': /[+-](?:<ureal box>|(?:inf|nan)\\.0)?i/.source,\n            '<complex box>':\n              /<real box>(?:@<real box>|<imaginary box>)?|<imaginary box>/\n                .source,\n            '<num box>': /#[box](?:#[ei])?|(?:#[ei])?#[box]<complex box>/\n              .source,\n            '<number>': /(^|[()\\[\\]\\s])(?:<num dec>|<num box>)(?=[()\\[\\]\\s]|$)/\n              .source\n          }),\n          'i'\n        ),\n        lookbehind: true\n      },\n      boolean: {\n        pattern: /(^|[()\\[\\]\\s])#(?:[ft]|false|true)(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true\n      },\n      function: {\n        pattern:\n          /((?:^|[^'`#])[(\\[])(?:[^|()\\[\\]'\\s]+|\\|(?:[^\\\\|]|\\\\.)*\\|)(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true\n      },\n      identifier: {\n        pattern: /(^|[()\\[\\]\\s])\\|(?:[^\\\\|]|\\\\.)*\\|(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true,\n        greedy: true\n      },\n      punctuation: /[()\\[\\]']/\n    }\n    /**\n     * Given a topologically sorted BNF grammar, this will return the RegExp source of last rule of the grammar.\n     *\n     * @param {Record<string, string>} grammar\n     * @returns {string}\n     */\n    function SortedBNF(grammar) {\n      for (var key in grammar) {\n        grammar[key] = grammar[key].replace(/<[\\w\\s]+>/g, function (key) {\n          return '(?:' + grammar[key].trim() + ')'\n        })\n      } // return the last item\n      return grammar[key]\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = scss\nscss.displayName = 'scss'\nscss.aliases = []\nfunction scss(Prism) {\n  Prism.languages.scss = Prism.languages.extend('css', {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n      lookbehind: true\n    },\n    atrule: {\n      pattern: /@[\\w-](?:\\([^()]+\\)|[^()\\s]|\\s+(?!\\s))*?(?=\\s+[{;])/,\n      inside: {\n        rule: /@[\\w-]+/ // See rest below\n      }\n    },\n    // url, compassified\n    url: /(?:[-a-z]+-)?url(?=\\()/i,\n    // CSS selector regex is not appropriate for Sass\n    // since there can be lot more things (var, @ directive, nesting..)\n    // a selector must start at the end of a property or after a brace (end of other rules or nesting)\n    // it can contain some characters that aren't used for defining rules or end of selector, & (parent selector), or interpolated variable\n    // the end of a selector is found when there is no rules in it ( {} or {\\s}) or if there is a property (because an interpolated var\n    // can \"pass\" as a selector- e.g: proper#{$erty})\n    // this one was hard to do, so please be careful if you edit this one :)\n    selector: {\n      // Initial look-ahead is used to prevent matching of blank selectors\n      pattern:\n        /(?=\\S)[^@;{}()]?(?:[^@;{}()\\s]|\\s+(?!\\s)|#\\{\\$[-\\w]+\\})+(?=\\s*\\{(?:\\}|\\s|[^}][^:{}]*[:{][^}]))/,\n      inside: {\n        parent: {\n          pattern: /&/,\n          alias: 'important'\n        },\n        placeholder: /%[-\\w]+/,\n        variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n      }\n    },\n    property: {\n      pattern: /(?:[-\\w]|\\$[-\\w]|#\\{\\$[-\\w]+\\})+(?=\\s*:)/,\n      inside: {\n        variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n      }\n    }\n  })\n  Prism.languages.insertBefore('scss', 'atrule', {\n    keyword: [\n      /@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\\b/i,\n      {\n        pattern: /( )(?:from|through)(?= )/,\n        lookbehind: true\n      }\n    ]\n  })\n  Prism.languages.insertBefore('scss', 'important', {\n    // var and interpolated vars\n    variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n  })\n  Prism.languages.insertBefore('scss', 'function', {\n    'module-modifier': {\n      pattern: /\\b(?:as|hide|show|with)\\b/i,\n      alias: 'keyword'\n    },\n    placeholder: {\n      pattern: /%[-\\w]+/,\n      alias: 'selector'\n    },\n    statement: {\n      pattern: /\\B!(?:default|optional)\\b/i,\n      alias: 'keyword'\n    },\n    boolean: /\\b(?:false|true)\\b/,\n    null: {\n      pattern: /\\bnull\\b/,\n      alias: 'keyword'\n    },\n    operator: {\n      pattern: /(\\s)(?:[-+*\\/%]|[=!]=|<=?|>=?|and|not|or)(?=\\s)/,\n      lookbehind: true\n    }\n  })\n  Prism.languages.scss['atrule'].inside.rest = Prism.languages.scss\n}\n","'use strict'\nvar refractorBash = require('./bash.js')\nmodule.exports = shellSession\nshellSession.displayName = 'shellSession'\nshellSession.aliases = []\nfunction shellSession(Prism) {\n  Prism.register(refractorBash)\n  ;(function (Prism) {\n    // CAREFUL!\n    // The following patterns are concatenated, so the group referenced by a back reference is non-obvious!\n    var strings = [\n      // normal string\n      /\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/.source,\n      /'[^']*'/.source,\n      /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/.source, // here doc\n      // 2 capturing groups\n      /<<-?\\s*([\"']?)(\\w+)\\1\\s[\\s\\S]*?[\\r\\n]\\2/.source\n    ].join('|')\n    Prism.languages['shell-session'] = {\n      command: {\n        pattern: RegExp(\n          // user info\n          /^/.source +\n            '(?:' + // <user> \":\" ( <path> )?\n            (/[^\\s@:$#%*!/\\\\]+@[^\\r\\n@:$#%*!/\\\\]+(?::[^\\0-\\x1F$#%*?\"<>:;|]+)?/\n              .source +\n              '|' + // <path>\n              // Since the path pattern is quite general, we will require it to start with a special character to\n              // prevent false positives.\n              /[/~.][^\\0-\\x1F$#%*?\"<>@:;|]*/.source) +\n            ')?' + // shell symbol\n            /[$#%](?=\\s)/.source + // bash command\n            /(?:[^\\\\\\r\\n \\t'\"<$]|[ \\t](?:(?!#)|#.*$)|\\\\(?:[^\\r]|\\r\\n?)|\\$(?!')|<(?!<)|<<str>>)+/.source.replace(\n              /<<str>>/g,\n              function () {\n                return strings\n              }\n            ),\n          'm'\n        ),\n        greedy: true,\n        inside: {\n          info: {\n            // foo@bar:~/files$ exit\n            // foo@bar$ exit\n            // ~/files$ exit\n            pattern: /^[^#$%]+/,\n            alias: 'punctuation',\n            inside: {\n              user: /^[^\\s@:$#%*!/\\\\]+@[^\\r\\n@:$#%*!/\\\\]+/,\n              punctuation: /:/,\n              path: /[\\s\\S]+/\n            }\n          },\n          bash: {\n            pattern: /(^[$#%]\\s*)\\S[\\s\\S]*/,\n            lookbehind: true,\n            alias: 'language-bash',\n            inside: Prism.languages.bash\n          },\n          'shell-symbol': {\n            pattern: /^[$#%]/,\n            alias: 'important'\n          }\n        }\n      },\n      output: /.(?:.*(?:[\\r\\n]|.$))*/\n    }\n    Prism.languages['sh-session'] = Prism.languages['shellsession'] =\n      Prism.languages['shell-session']\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = smali\nsmali.displayName = 'smali'\nsmali.aliases = []\nfunction smali(Prism) {\n  // Test files for the parser itself:\n  // https://github.com/JesusFreke/smali/tree/master/smali/src/test/resources/LexerTest\n  Prism.languages.smali = {\n    comment: /#.*/,\n    string: {\n      pattern: /\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|'(?:[^\\r\\n\\\\']|\\\\(?:.|u[\\da-fA-F]{4}))'/,\n      greedy: true\n    },\n    'class-name': {\n      pattern:\n        /(^|[^L])L(?:(?:\\w+|`[^`\\r\\n]*`)\\/)*(?:[\\w$]+|`[^`\\r\\n]*`)(?=\\s*;)/,\n      lookbehind: true,\n      inside: {\n        'class-name': {\n          pattern: /(^L|\\/)(?:[\\w$]+|`[^`\\r\\n]*`)$/,\n          lookbehind: true\n        },\n        namespace: {\n          pattern: /^(L)(?:(?:\\w+|`[^`\\r\\n]*`)\\/)+/,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\//\n          }\n        },\n        builtin: /^L/\n      }\n    },\n    builtin: [\n      {\n        // Reference: https://github.com/JesusFreke/smali/wiki/TypesMethodsAndFields#types\n        pattern: /([();\\[])[BCDFIJSVZ]+/,\n        lookbehind: true\n      },\n      {\n        // e.g. .field mWifiOnUid:I\n        pattern: /([\\w$>]:)[BCDFIJSVZ]/,\n        lookbehind: true\n      }\n    ],\n    keyword: [\n      {\n        pattern: /(\\.end\\s+)[\\w-]+/,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|[^\\w.-])\\.(?!\\d)[\\w-]+/,\n        lookbehind: true\n      },\n      {\n        pattern:\n          /(^|[^\\w.-])(?:abstract|annotation|bridge|constructor|enum|final|interface|private|protected|public|runtime|static|synthetic|system|transient)(?![\\w.-])/,\n        lookbehind: true\n      }\n    ],\n    function: {\n      pattern: /(^|[^\\w.-])(?:\\w+|<[\\w$-]+>)(?=\\()/,\n      lookbehind: true\n    },\n    field: {\n      pattern: /[\\w$]+(?=:)/,\n      alias: 'variable'\n    },\n    register: {\n      pattern: /(^|[^\\w.-])[vp]\\d(?![\\w.-])/,\n      lookbehind: true,\n      alias: 'variable'\n    },\n    boolean: {\n      pattern: /(^|[^\\w.-])(?:false|true)(?![\\w.-])/,\n      lookbehind: true\n    },\n    number: {\n      pattern:\n        /(^|[^/\\w.-])-?(?:NAN|INFINITY|0x(?:[\\dA-F]+(?:\\.[\\dA-F]*)?|\\.[\\dA-F]+)(?:p[+-]?[\\dA-F]+)?|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)[dflst]?(?![\\w.-])/i,\n      lookbehind: true\n    },\n    label: {\n      pattern: /(:)\\w+/,\n      lookbehind: true,\n      alias: 'property'\n    },\n    operator: /->|\\.\\.|[\\[=]/,\n    punctuation: /[{}(),;:]/\n  }\n}\n","'use strict'\n\nmodule.exports = smalltalk\nsmalltalk.displayName = 'smalltalk'\nsmalltalk.aliases = []\nfunction smalltalk(Prism) {\n  Prism.languages.smalltalk = {\n    comment: {\n      pattern: /\"(?:\"\"|[^\"])*\"/,\n      greedy: true\n    },\n    char: {\n      pattern: /\\$./,\n      greedy: true\n    },\n    string: {\n      pattern: /'(?:''|[^'])*'/,\n      greedy: true\n    },\n    symbol: /#[\\da-z]+|#(?:-|([+\\/\\\\*~<>=@%|&?!])\\1?)|#(?=\\()/i,\n    'block-arguments': {\n      pattern: /(\\[\\s*):[^\\[|]*\\|/,\n      lookbehind: true,\n      inside: {\n        variable: /:[\\da-z]+/i,\n        punctuation: /\\|/\n      }\n    },\n    'temporary-variables': {\n      pattern: /\\|[^|]+\\|/,\n      inside: {\n        variable: /[\\da-z]+/i,\n        punctuation: /\\|/\n      }\n    },\n    keyword: /\\b(?:new|nil|self|super)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    number: [\n      /\\d+r-?[\\dA-Z]+(?:\\.[\\dA-Z]+)?(?:e-?\\d+)?/,\n      /\\b\\d+(?:\\.\\d+)?(?:e-?\\d+)?/\n    ],\n    operator: /[<=]=?|:=|~[~=]|\\/\\/?|\\\\\\\\|>[>=]?|[!^+\\-*&|,@]/,\n    punctuation: /[.;:?\\[\\](){}]/\n  }\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = smarty\nsmarty.displayName = 'smarty'\nsmarty.aliases = []\nfunction smarty(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    Prism.languages.smarty = {\n      comment: {\n        pattern: /^\\{\\*[\\s\\S]*?\\*\\}/,\n        greedy: true\n      },\n      'embedded-php': {\n        pattern: /^\\{php\\}[\\s\\S]*?\\{\\/php\\}/,\n        greedy: true,\n        inside: {\n          smarty: {\n            pattern: /^\\{php\\}|\\{\\/php\\}$/,\n            inside: null // see below\n          },\n          php: {\n            pattern: /[\\s\\S]+/,\n            alias: 'language-php',\n            inside: Prism.languages.php\n          }\n        }\n      },\n      string: [\n        {\n          pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n          greedy: true,\n          inside: {\n            interpolation: {\n              pattern: /\\{[^{}]*\\}|`[^`]*`/,\n              inside: {\n                'interpolation-punctuation': {\n                  pattern: /^[{`]|[`}]$/,\n                  alias: 'punctuation'\n                },\n                expression: {\n                  pattern: /[\\s\\S]+/,\n                  inside: null // see below\n                }\n              }\n            },\n            variable: /\\$\\w+/\n          }\n        },\n        {\n          pattern: /'(?:\\\\.|[^'\\\\\\r\\n])*'/,\n          greedy: true\n        }\n      ],\n      keyword: {\n        pattern: /(^\\{\\/?)[a-z_]\\w*\\b(?!\\()/i,\n        lookbehind: true,\n        greedy: true\n      },\n      delimiter: {\n        pattern: /^\\{\\/?|\\}$/,\n        greedy: true,\n        alias: 'punctuation'\n      },\n      number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n      variable: [\n        /\\$(?!\\d)\\w+/,\n        /#(?!\\d)\\w+#/,\n        {\n          pattern: /(\\.|->|\\w\\s*=)(?!\\d)\\w+\\b(?!\\()/,\n          lookbehind: true\n        },\n        {\n          pattern: /(\\[)(?!\\d)\\w+(?=\\])/,\n          lookbehind: true\n        }\n      ],\n      function: {\n        pattern: /(\\|\\s*)@?[a-z_]\\w*|\\b[a-z_]\\w*(?=\\()/i,\n        lookbehind: true\n      },\n      'attr-name': /\\b[a-z_]\\w*(?=\\s*=)/i,\n      boolean: /\\b(?:false|no|off|on|true|yes)\\b/,\n      punctuation: /[\\[\\](){}.,:`]|->/,\n      operator: [\n        /[+\\-*\\/%]|==?=?|[!<>]=?|&&|\\|\\|?/,\n        /\\bis\\s+(?:not\\s+)?(?:div|even|odd)(?:\\s+by)?\\b/,\n        /\\b(?:and|eq|gt?e|gt|lt?e|lt|mod|neq?|not|or)\\b/\n      ]\n    }\n    Prism.languages.smarty['embedded-php'].inside.smarty.inside =\n      Prism.languages.smarty\n    Prism.languages.smarty.string[0].inside.interpolation.inside.expression.inside =\n      Prism.languages.smarty\n    var string = /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/\n    var smartyPattern = RegExp(\n      // comments\n      /\\{\\*[\\s\\S]*?\\*\\}/.source +\n        '|' + // php tags\n        /\\{php\\}[\\s\\S]*?\\{\\/php\\}/.source +\n        '|' + // smarty blocks\n        /\\{(?:[^{}\"']|<str>|\\{(?:[^{}\"']|<str>|\\{(?:[^{}\"']|<str>)*\\})*\\})*\\}/.source.replace(\n          /<str>/g,\n          function () {\n            return string.source\n          }\n        ),\n      'g'\n    ) // Tokenize all inline Smarty expressions\n    Prism.hooks.add('before-tokenize', function (env) {\n      var smartyLiteralStart = '{literal}'\n      var smartyLiteralEnd = '{/literal}'\n      var smartyLiteralMode = false\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'smarty',\n        smartyPattern,\n        function (match) {\n          // Smarty tags inside {literal} block are ignored\n          if (match === smartyLiteralEnd) {\n            smartyLiteralMode = false\n          }\n          if (!smartyLiteralMode) {\n            if (match === smartyLiteralStart) {\n              smartyLiteralMode = true\n            }\n            return true\n          }\n          return false\n        }\n      )\n    }) // Re-insert the tokens after tokenizing\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'smarty')\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = sml\nsml.displayName = 'sml'\nsml.aliases = ['smlnj']\nfunction sml(Prism) {\n  // https://smlfamily.github.io/sml97-defn.pdf\n  // https://people.mpi-sws.org/~rossberg/sml.html\n  ;(function (Prism) {\n    var keywords =\n      /\\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\\b/i\n    Prism.languages.sml = {\n      // allow one level of nesting\n      comment:\n        /\\(\\*(?:[^*(]|\\*(?!\\))|\\((?!\\*)|\\(\\*(?:[^*(]|\\*(?!\\))|\\((?!\\*))*\\*\\))*\\*\\)/,\n      string: {\n        pattern: /#?\"(?:[^\"\\\\]|\\\\.)*\"/,\n        greedy: true\n      },\n      'class-name': [\n        {\n          // This is only an approximation since the real grammar is context-free\n          //\n          // Why the main loop so complex?\n          // The main loop is approximately the same as /(?:\\s*(?:[*,]|->)\\s*<TERMINAL>)*/ which is, obviously, a lot\n          // simpler. The difference is that if a comma is the last iteration of the loop, then the terminal must be\n          // followed by a long identifier.\n          pattern: RegExp(\n            /((?:^|[^:]):\\s*)<TERMINAL>(?:\\s*(?:(?:\\*|->)\\s*<TERMINAL>|,\\s*<TERMINAL>(?:(?=<NOT-LAST>)|(?!<NOT-LAST>)\\s+<LONG-ID>)))*/.source\n              .replace(/<NOT-LAST>/g, function () {\n                return /\\s*(?:[*,]|->)/.source\n              })\n              .replace(/<TERMINAL>/g, function () {\n                return /(?:'[\\w']*|<LONG-ID>|\\((?:[^()]|\\([^()]*\\))*\\)|\\{(?:[^{}]|\\{[^{}]*\\})*\\})(?:\\s+<LONG-ID>)*/\n                  .source\n              })\n              .replace(/<LONG-ID>/g, function () {\n                return /(?!<KEYWORD>)[a-z\\d_][\\w'.]*/.source\n              })\n              .replace(/<KEYWORD>/g, function () {\n                return keywords.source\n              }),\n            'i'\n          ),\n          lookbehind: true,\n          greedy: true,\n          inside: null // see below\n        },\n        {\n          pattern:\n            /((?:^|[^\\w'])(?:datatype|exception|functor|signature|structure|type)\\s+)[a-z_][\\w'.]*/i,\n          lookbehind: true\n        }\n      ],\n      function: {\n        pattern: /((?:^|[^\\w'])fun\\s+)[a-z_][\\w'.]*/i,\n        lookbehind: true\n      },\n      keyword: keywords,\n      variable: {\n        pattern: /(^|[^\\w'])'[\\w']*/,\n        lookbehind: true\n      },\n      number: /~?\\b(?:\\d+(?:\\.\\d+)?(?:e~?\\d+)?|0x[\\da-f]+)\\b/i,\n      word: {\n        pattern: /\\b0w(?:\\d+|x[\\da-f]+)\\b/i,\n        alias: 'constant'\n      },\n      boolean: /\\b(?:false|true)\\b/i,\n      operator: /\\.\\.\\.|:[>=:]|=>?|->|[<>]=?|[!+\\-*/^#|@~]/,\n      punctuation: /[(){}\\[\\].:,;]/\n    }\n    Prism.languages.sml['class-name'][0].inside = Prism.languages.sml\n    Prism.languages.smlnj = Prism.languages.sml\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = solidity\nsolidity.displayName = 'solidity'\nsolidity.aliases = ['sol']\nfunction solidity(Prism) {\n  Prism.languages.solidity = Prism.languages.extend('clike', {\n    'class-name': {\n      pattern:\n        /(\\b(?:contract|enum|interface|library|new|struct|using)\\s+)(?!\\d)[\\w$]+/,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\\b/,\n    operator: /=>|->|:=|=:|\\*\\*|\\+\\+|--|\\|\\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/\n  })\n  Prism.languages.insertBefore('solidity', 'keyword', {\n    builtin:\n      /\\b(?:address|bool|byte|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|string|bytes(?:[1-9]|[12]\\d|3[0-2])?)\\b/\n  })\n  Prism.languages.insertBefore('solidity', 'number', {\n    version: {\n      pattern: /([<>]=?|\\^)\\d+\\.\\d+\\.\\d+\\b/,\n      lookbehind: true,\n      alias: 'number'\n    }\n  })\n  Prism.languages.sol = Prism.languages.solidity\n}\n","'use strict'\n\nmodule.exports = solutionFile\nsolutionFile.displayName = 'solutionFile'\nsolutionFile.aliases = []\nfunction solutionFile(Prism) {\n  ;(function (Prism) {\n    var guid = {\n      // https://en.wikipedia.org/wiki/Universally_unique_identifier#Format\n      pattern: /\\{[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}\\}/i,\n      alias: 'constant',\n      inside: {\n        punctuation: /[{}]/\n      }\n    }\n    Prism.languages['solution-file'] = {\n      comment: {\n        pattern: /#.*/,\n        greedy: true\n      },\n      string: {\n        pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n        greedy: true,\n        inside: {\n          guid: guid\n        }\n      },\n      object: {\n        // Foo\n        //   Bar(\"abs\") = 9\n        //   EndBar\n        //   Prop = TRUE\n        // EndFoo\n        pattern:\n          /^([ \\t]*)(?:([A-Z]\\w*)\\b(?=.*(?:\\r\\n?|\\n)(?:\\1[ \\t].*(?:\\r\\n?|\\n))*\\1End\\2(?=[ \\t]*$))|End[A-Z]\\w*(?=[ \\t]*$))/m,\n        lookbehind: true,\n        greedy: true,\n        alias: 'keyword'\n      },\n      property: {\n        pattern: /^([ \\t]*)(?!\\s)[^\\r\\n\"#=()]*[^\\s\"#=()](?=\\s*=)/m,\n        lookbehind: true,\n        inside: {\n          guid: guid\n        }\n      },\n      guid: guid,\n      number: /\\b\\d+(?:\\.\\d+)*\\b/,\n      boolean: /\\b(?:FALSE|TRUE)\\b/,\n      operator: /=/,\n      punctuation: /[(),]/\n    }\n    Prism.languages['sln'] = Prism.languages['solution-file']\n  })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = soy\nsoy.displayName = 'soy'\nsoy.aliases = []\nfunction soy(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    var stringPattern = /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/\n    var numberPattern = /\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-F]+\\b/\n    Prism.languages.soy = {\n      comment: [\n        /\\/\\*[\\s\\S]*?\\*\\//,\n        {\n          pattern: /(\\s)\\/\\/.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      'command-arg': {\n        pattern:\n          /(\\{+\\/?\\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\\s+)\\.?[\\w.]+/,\n        lookbehind: true,\n        alias: 'string',\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      parameter: {\n        pattern: /(\\{+\\/?\\s*@?param\\??\\s+)\\.?[\\w.]+/,\n        lookbehind: true,\n        alias: 'variable'\n      },\n      keyword: [\n        {\n          pattern:\n            /(\\{+\\/?[^\\S\\r\\n]*)(?:\\\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\\??|rb|sp|switch|template|xid)/,\n          lookbehind: true\n        },\n        /\\b(?:any|as|attributes|bool|css|float|html|in|int|js|list|map|null|number|string|uri)\\b/\n      ],\n      delimiter: {\n        pattern: /^\\{+\\/?|\\/?\\}+$/,\n        alias: 'punctuation'\n      },\n      property: /\\w+(?==)/,\n      variable: {\n        pattern: /\\$[^\\W\\d]\\w*(?:\\??(?:\\.\\w+|\\[[^\\]]+\\]))*/,\n        inside: {\n          string: {\n            pattern: stringPattern,\n            greedy: true\n          },\n          number: numberPattern,\n          punctuation: /[\\[\\].?]/\n        }\n      },\n      string: {\n        pattern: stringPattern,\n        greedy: true\n      },\n      function: [\n        /\\w+(?=\\()/,\n        {\n          pattern: /(\\|[^\\S\\r\\n]*)\\w+/,\n          lookbehind: true\n        }\n      ],\n      boolean: /\\b(?:false|true)\\b/,\n      number: numberPattern,\n      operator: /\\?:?|<=?|>=?|==?|!=|[+*/%-]|\\b(?:and|not|or)\\b/,\n      punctuation: /[{}()\\[\\]|.,:]/\n    } // Tokenize all inline Soy expressions\n    Prism.hooks.add('before-tokenize', function (env) {\n      var soyPattern = /\\{\\{.+?\\}\\}|\\{.+?\\}|\\s\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//g\n      var soyLitteralStart = '{literal}'\n      var soyLitteralEnd = '{/literal}'\n      var soyLitteralMode = false\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'soy',\n        soyPattern,\n        function (match) {\n          // Soy tags inside {literal} block are ignored\n          if (match === soyLitteralEnd) {\n            soyLitteralMode = false\n          }\n          if (!soyLitteralMode) {\n            if (match === soyLitteralStart) {\n              soyLitteralMode = true\n            }\n            return true\n          }\n          return false\n        }\n      )\n    }) // Re-insert the tokens after tokenizing\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'soy')\n    })\n  })(Prism)\n}\n","'use strict'\nvar refractorTurtle = require('./turtle.js')\nmodule.exports = sparql\nsparql.displayName = 'sparql'\nsparql.aliases = ['rq']\nfunction sparql(Prism) {\n  Prism.register(refractorTurtle)\n  Prism.languages.sparql = Prism.languages.extend('turtle', {\n    boolean: /\\b(?:false|true)\\b/i,\n    variable: {\n      pattern: /[?$]\\w+/,\n      greedy: true\n    }\n  })\n  Prism.languages.insertBefore('sparql', 'punctuation', {\n    keyword: [\n      /\\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|ORDER|RAND|REDUCED|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\\b/i,\n      /\\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|REGEX|REPLACE|ROUND|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\\b(?=\\s*\\()/i,\n      /\\b(?:BASE|GRAPH|PREFIX)\\b/i\n    ]\n  })\n  Prism.languages.rq = Prism.languages.sparql\n}\n","'use strict'\n\nmodule.exports = splunkSpl\nsplunkSpl.displayName = 'splunkSpl'\nsplunkSpl.aliases = []\nfunction splunkSpl(Prism) {\n  Prism.languages['splunk-spl'] = {\n    comment: /`comment\\(\"(?:\\\\.|[^\\\\\"])*\"\\)`/,\n    string: {\n      pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n      greedy: true\n    },\n    // https://docs.splunk.com/Documentation/Splunk/7.3.0/SearchReference/ListOfSearchCommands\n    keyword:\n      /\\b(?:abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|anomalydetection|append|appendcols|appendcsv|appendlookup|appendpipe|arules|associate|audit|autoregress|bin|bucket|bucketdir|chart|cluster|cofilter|collect|concurrency|contingency|convert|correlate|datamodel|dbinspect|dedup|delete|delta|diff|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geom|geomfilter|geostats|head|highlight|history|iconify|input|inputcsv|inputlookup|iplocation|join|kmeans|kv|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|mcollect|metadata|metasearch|meventcollect|mstats|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|timewrap|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|union|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\\b/i,\n    'operator-word': {\n      pattern: /\\b(?:and|as|by|not|or|xor)\\b/i,\n      alias: 'operator'\n    },\n    function: /\\b\\w+(?=\\s*\\()/,\n    property: /\\b\\w+(?=\\s*=(?!=))/,\n    date: {\n      // MM/DD/YYYY(:HH:MM:SS)?\n      pattern: /\\b\\d{1,2}\\/\\d{1,2}\\/\\d{1,4}(?:(?::\\d{1,2}){3})?\\b/,\n      alias: 'number'\n    },\n    number: /\\b\\d+(?:\\.\\d+)?\\b/,\n    boolean: /\\b(?:f|false|t|true)\\b/i,\n    operator: /[<>=]=?|[-+*/%|]/,\n    punctuation: /[()[\\],]/\n  }\n}\n","'use strict'\n\nmodule.exports = sqf\nsqf.displayName = 'sqf'\nsqf.aliases = []\nfunction sqf(Prism) {\n  Prism.languages.sqf = Prism.languages.extend('clike', {\n    string: {\n      pattern: /\"(?:(?:\"\")?[^\"])*\"(?!\")|'(?:[^'])*'/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:breakOut|breakTo|call|case|catch|default|do|echo|else|execFSM|execVM|exitWith|for|forEach|forEachMember|forEachMemberAgent|forEachMemberTeam|from|goto|if|nil|preprocessFile|preprocessFileLineNumbers|private|scopeName|spawn|step|switch|then|throw|to|try|while|with)\\b/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    function:\n      /\\b(?:abs|accTime|acos|action|actionIDs|actionKeys|actionKeysImages|actionKeysNames|actionKeysNamesArray|actionName|actionParams|activateAddons|activatedAddons|activateKey|add3DENConnection|add3DENEventHandler|add3DENLayer|addAction|addBackpack|addBackpackCargo|addBackpackCargoGlobal|addBackpackGlobal|addCamShake|addCuratorAddons|addCuratorCameraArea|addCuratorEditableObjects|addCuratorEditingArea|addCuratorPoints|addEditorObject|addEventHandler|addForce|addForceGeneratorRTD|addGoggles|addGroupIcon|addHandgunItem|addHeadgear|addItem|addItemCargo|addItemCargoGlobal|addItemPool|addItemToBackpack|addItemToUniform|addItemToVest|addLiveStats|addMagazine|addMagazineAmmoCargo|addMagazineCargo|addMagazineCargoGlobal|addMagazineGlobal|addMagazinePool|addMagazines|addMagazineTurret|addMenu|addMenuItem|addMissionEventHandler|addMPEventHandler|addMusicEventHandler|addOwnedMine|addPlayerScores|addPrimaryWeaponItem|addPublicVariableEventHandler|addRating|addResources|addScore|addScoreSide|addSecondaryWeaponItem|addSwitchableUnit|addTeamMember|addToRemainsCollector|addTorque|addUniform|addVehicle|addVest|addWaypoint|addWeapon|addWeaponCargo|addWeaponCargoGlobal|addWeaponGlobal|addWeaponItem|addWeaponPool|addWeaponTurret|admin|agent|agents|AGLToASL|aimedAtTarget|aimPos|airDensityCurveRTD|airDensityRTD|airplaneThrottle|airportSide|AISFinishHeal|alive|all3DENEntities|allAirports|allControls|allCurators|allCutLayers|allDead|allDeadMen|allDisplays|allGroups|allMapMarkers|allMines|allMissionObjects|allow3DMode|allowCrewInImmobile|allowCuratorLogicIgnoreAreas|allowDamage|allowDammage|allowFileOperations|allowFleeing|allowGetIn|allowSprint|allPlayers|allSimpleObjects|allSites|allTurrets|allUnits|allUnitsUAV|allVariables|ammo|ammoOnPylon|animate|animateBay|animateDoor|animatePylon|animateSource|animationNames|animationPhase|animationSourcePhase|animationState|append|apply|armoryPoints|arrayIntersect|asin|ASLToAGL|ASLToATL|assert|assignAsCargo|assignAsCargoIndex|assignAsCommander|assignAsDriver|assignAsGunner|assignAsTurret|assignCurator|assignedCargo|assignedCommander|assignedDriver|assignedGunner|assignedItems|assignedTarget|assignedTeam|assignedVehicle|assignedVehicleRole|assignItem|assignTeam|assignToAirport|atan|atan2|atg|ATLToASL|attachedObject|attachedObjects|attachedTo|attachObject|attachTo|attackEnabled|backpack|backpackCargo|backpackContainer|backpackItems|backpackMagazines|backpackSpaceFor|behaviour|benchmark|binocular|blufor|boundingBox|boundingBoxReal|boundingCenter|briefingName|buildingExit|buildingPos|buldozer_EnableRoadDiag|buldozer_IsEnabledRoadDiag|buldozer_LoadNewRoads|buldozer_reloadOperMap|buttonAction|buttonSetAction|cadetMode|callExtension|camCommand|camCommit|camCommitPrepared|camCommitted|camConstuctionSetParams|camCreate|camDestroy|cameraEffect|cameraEffectEnableHUD|cameraInterest|cameraOn|cameraView|campaignConfigFile|camPreload|camPreloaded|camPrepareBank|camPrepareDir|camPrepareDive|camPrepareFocus|camPrepareFov|camPrepareFovRange|camPreparePos|camPrepareRelPos|camPrepareTarget|camSetBank|camSetDir|camSetDive|camSetFocus|camSetFov|camSetFovRange|camSetPos|camSetRelPos|camSetTarget|camTarget|camUseNVG|canAdd|canAddItemToBackpack|canAddItemToUniform|canAddItemToVest|cancelSimpleTaskDestination|canFire|canMove|canSlingLoad|canStand|canSuspend|canTriggerDynamicSimulation|canUnloadInCombat|canVehicleCargo|captive|captiveNum|cbChecked|cbSetChecked|ceil|channelEnabled|cheatsEnabled|checkAIFeature|checkVisibility|civilian|className|clear3DENAttribute|clear3DENInventory|clearAllItemsFromBackpack|clearBackpackCargo|clearBackpackCargoGlobal|clearForcesRTD|clearGroupIcons|clearItemCargo|clearItemCargoGlobal|clearItemPool|clearMagazineCargo|clearMagazineCargoGlobal|clearMagazinePool|clearOverlay|clearRadio|clearVehicleInit|clearWeaponCargo|clearWeaponCargoGlobal|clearWeaponPool|clientOwner|closeDialog|closeDisplay|closeOverlay|collapseObjectTree|collect3DENHistory|collectiveRTD|combatMode|commandArtilleryFire|commandChat|commander|commandFire|commandFollow|commandFSM|commandGetOut|commandingMenu|commandMove|commandRadio|commandStop|commandSuppressiveFire|commandTarget|commandWatch|comment|commitOverlay|compile|compileFinal|completedFSM|composeText|configClasses|configFile|configHierarchy|configName|configNull|configProperties|configSourceAddonList|configSourceMod|configSourceModList|confirmSensorTarget|connectTerminalToUAV|controlNull|controlsGroupCtrl|copyFromClipboard|copyToClipboard|copyWaypoints|cos|count|countEnemy|countFriendly|countSide|countType|countUnknown|create3DENComposition|create3DENEntity|createAgent|createCenter|createDialog|createDiaryLink|createDiaryRecord|createDiarySubject|createDisplay|createGearDialog|createGroup|createGuardedPoint|createLocation|createMarker|createMarkerLocal|createMenu|createMine|createMissionDisplay|createMPCampaignDisplay|createSimpleObject|createSimpleTask|createSite|createSoundSource|createTask|createTeam|createTrigger|createUnit|createVehicle|createVehicleCrew|createVehicleLocal|crew|ctAddHeader|ctAddRow|ctClear|ctCurSel|ctData|ctFindHeaderRows|ctFindRowHeader|ctHeaderControls|ctHeaderCount|ctRemoveHeaders|ctRemoveRows|ctrlActivate|ctrlAddEventHandler|ctrlAngle|ctrlAutoScrollDelay|ctrlAutoScrollRewind|ctrlAutoScrollSpeed|ctrlChecked|ctrlClassName|ctrlCommit|ctrlCommitted|ctrlCreate|ctrlDelete|ctrlEnable|ctrlEnabled|ctrlFade|ctrlHTMLLoaded|ctrlIDC|ctrlIDD|ctrlMapAnimAdd|ctrlMapAnimClear|ctrlMapAnimCommit|ctrlMapAnimDone|ctrlMapCursor|ctrlMapMouseOver|ctrlMapScale|ctrlMapScreenToWorld|ctrlMapWorldToScreen|ctrlModel|ctrlModelDirAndUp|ctrlModelScale|ctrlParent|ctrlParentControlsGroup|ctrlPosition|ctrlRemoveAllEventHandlers|ctrlRemoveEventHandler|ctrlScale|ctrlSetActiveColor|ctrlSetAngle|ctrlSetAutoScrollDelay|ctrlSetAutoScrollRewind|ctrlSetAutoScrollSpeed|ctrlSetBackgroundColor|ctrlSetChecked|ctrlSetDisabledColor|ctrlSetEventHandler|ctrlSetFade|ctrlSetFocus|ctrlSetFont|ctrlSetFontH1|ctrlSetFontH1B|ctrlSetFontH2|ctrlSetFontH2B|ctrlSetFontH3|ctrlSetFontH3B|ctrlSetFontH4|ctrlSetFontH4B|ctrlSetFontH5|ctrlSetFontH5B|ctrlSetFontH6|ctrlSetFontH6B|ctrlSetFontHeight|ctrlSetFontHeightH1|ctrlSetFontHeightH2|ctrlSetFontHeightH3|ctrlSetFontHeightH4|ctrlSetFontHeightH5|ctrlSetFontHeightH6|ctrlSetFontHeightSecondary|ctrlSetFontP|ctrlSetFontPB|ctrlSetFontSecondary|ctrlSetForegroundColor|ctrlSetModel|ctrlSetModelDirAndUp|ctrlSetModelScale|ctrlSetPixelPrecision|ctrlSetPosition|ctrlSetScale|ctrlSetStructuredText|ctrlSetText|ctrlSetTextColor|ctrlSetTextColorSecondary|ctrlSetTextSecondary|ctrlSetTooltip|ctrlSetTooltipColorBox|ctrlSetTooltipColorShade|ctrlSetTooltipColorText|ctrlShow|ctrlShown|ctrlText|ctrlTextHeight|ctrlTextSecondary|ctrlTextWidth|ctrlType|ctrlVisible|ctRowControls|ctRowCount|ctSetCurSel|ctSetData|ctSetHeaderTemplate|ctSetRowTemplate|ctSetValue|ctValue|curatorAddons|curatorCamera|curatorCameraArea|curatorCameraAreaCeiling|curatorCoef|curatorEditableObjects|curatorEditingArea|curatorEditingAreaType|curatorMouseOver|curatorPoints|curatorRegisteredObjects|curatorSelected|curatorWaypointCost|current3DENOperation|currentChannel|currentCommand|currentMagazine|currentMagazineDetail|currentMagazineDetailTurret|currentMagazineTurret|currentMuzzle|currentNamespace|currentTask|currentTasks|currentThrowable|currentVisionMode|currentWaypoint|currentWeapon|currentWeaponMode|currentWeaponTurret|currentZeroing|cursorObject|cursorTarget|customChat|customRadio|cutFadeOut|cutObj|cutRsc|cutText|damage|date|dateToNumber|daytime|deActivateKey|debriefingText|debugFSM|debugLog|deg|delete3DENEntities|deleteAt|deleteCenter|deleteCollection|deleteEditorObject|deleteGroup|deleteGroupWhenEmpty|deleteIdentity|deleteLocation|deleteMarker|deleteMarkerLocal|deleteRange|deleteResources|deleteSite|deleteStatus|deleteTeam|deleteVehicle|deleteVehicleCrew|deleteWaypoint|detach|detectedMines|diag_activeMissionFSMs|diag_activeScripts|diag_activeSQFScripts|diag_activeSQSScripts|diag_captureFrame|diag_captureFrameToFile|diag_captureSlowFrame|diag_codePerformance|diag_drawMode|diag_dynamicSimulationEnd|diag_enable|diag_enabled|diag_fps|diag_fpsMin|diag_frameNo|diag_lightNewLoad|diag_list|diag_log|diag_logSlowFrame|diag_mergeConfigFile|diag_recordTurretLimits|diag_setLightNew|diag_tickTime|diag_toggle|dialog|diarySubjectExists|didJIP|didJIPOwner|difficulty|difficultyEnabled|difficultyEnabledRTD|difficultyOption|direction|directSay|disableAI|disableCollisionWith|disableConversation|disableDebriefingStats|disableMapIndicators|disableNVGEquipment|disableRemoteSensors|disableSerialization|disableTIEquipment|disableUAVConnectability|disableUserInput|displayAddEventHandler|displayCtrl|displayNull|displayParent|displayRemoveAllEventHandlers|displayRemoveEventHandler|displaySetEventHandler|dissolveTeam|distance|distance2D|distanceSqr|distributionRegion|do3DENAction|doArtilleryFire|doFire|doFollow|doFSM|doGetOut|doMove|doorPhase|doStop|doSuppressiveFire|doTarget|doWatch|drawArrow|drawEllipse|drawIcon|drawIcon3D|drawLine|drawLine3D|drawLink|drawLocation|drawPolygon|drawRectangle|drawTriangle|driver|drop|dynamicSimulationDistance|dynamicSimulationDistanceCoef|dynamicSimulationEnabled|dynamicSimulationSystemEnabled|east|edit3DENMissionAttributes|editObject|editorSetEventHandler|effectiveCommander|emptyPositions|enableAI|enableAIFeature|enableAimPrecision|enableAttack|enableAudioFeature|enableAutoStartUpRTD|enableAutoTrimRTD|enableCamShake|enableCaustics|enableChannel|enableCollisionWith|enableCopilot|enableDebriefingStats|enableDiagLegend|enableDynamicSimulation|enableDynamicSimulationSystem|enableEndDialog|enableEngineArtillery|enableEnvironment|enableFatigue|enableGunLights|enableInfoPanelComponent|enableIRLasers|enableMimics|enablePersonTurret|enableRadio|enableReload|enableRopeAttach|enableSatNormalOnDetail|enableSaving|enableSentences|enableSimulation|enableSimulationGlobal|enableStamina|enableStressDamage|enableTeamSwitch|enableTraffic|enableUAVConnectability|enableUAVWaypoints|enableVehicleCargo|enableVehicleSensor|enableWeaponDisassembly|endl|endLoadingScreen|endMission|engineOn|enginesIsOnRTD|enginesPowerRTD|enginesRpmRTD|enginesTorqueRTD|entities|environmentEnabled|estimatedEndServerTime|estimatedTimeLeft|evalObjectArgument|everyBackpack|everyContainer|exec|execEditorScript|exp|expectedDestination|exportJIPMessages|eyeDirection|eyePos|face|faction|fadeMusic|fadeRadio|fadeSound|fadeSpeech|failMission|fillWeaponsFromPool|find|findCover|findDisplay|findEditorObject|findEmptyPosition|findEmptyPositionReady|findIf|findNearestEnemy|finishMissionInit|finite|fire|fireAtTarget|firstBackpack|flag|flagAnimationPhase|flagOwner|flagSide|flagTexture|fleeing|floor|flyInHeight|flyInHeightASL|fog|fogForecast|fogParams|forceAddUniform|forceAtPositionRTD|forcedMap|forceEnd|forceFlagTexture|forceFollowRoad|forceGeneratorRTD|forceMap|forceRespawn|forceSpeed|forceWalk|forceWeaponFire|forceWeatherChange|forgetTarget|format|formation|formationDirection|formationLeader|formationMembers|formationPosition|formationTask|formatText|formLeader|freeLook|fromEditor|fuel|fullCrew|gearIDCAmmoCount|gearSlotAmmoCount|gearSlotData|get3DENActionState|get3DENAttribute|get3DENCamera|get3DENConnections|get3DENEntity|get3DENEntityID|get3DENGrid|get3DENIconsVisible|get3DENLayerEntities|get3DENLinesVisible|get3DENMissionAttribute|get3DENMouseOver|get3DENSelected|getAimingCoef|getAllEnvSoundControllers|getAllHitPointsDamage|getAllOwnedMines|getAllSoundControllers|getAmmoCargo|getAnimAimPrecision|getAnimSpeedCoef|getArray|getArtilleryAmmo|getArtilleryComputerSettings|getArtilleryETA|getAssignedCuratorLogic|getAssignedCuratorUnit|getBackpackCargo|getBleedingRemaining|getBurningValue|getCameraViewDirection|getCargoIndex|getCenterOfMass|getClientState|getClientStateNumber|getCompatiblePylonMagazines|getConnectedUAV|getContainerMaxLoad|getCursorObjectParams|getCustomAimCoef|getDammage|getDescription|getDir|getDirVisual|getDLCAssetsUsage|getDLCAssetsUsageByName|getDLCs|getDLCUsageTime|getEditorCamera|getEditorMode|getEditorObjectScope|getElevationOffset|getEngineTargetRpmRTD|getEnvSoundController|getFatigue|getFieldManualStartPage|getForcedFlagTexture|getFriend|getFSMVariable|getFuelCargo|getGroupIcon|getGroupIconParams|getGroupIcons|getHideFrom|getHit|getHitIndex|getHitPointDamage|getItemCargo|getMagazineCargo|getMarkerColor|getMarkerPos|getMarkerSize|getMarkerType|getMass|getMissionConfig|getMissionConfigValue|getMissionDLCs|getMissionLayerEntities|getMissionLayers|getModelInfo|getMousePosition|getMusicPlayedTime|getNumber|getObjectArgument|getObjectChildren|getObjectDLC|getObjectMaterials|getObjectProxy|getObjectTextures|getObjectType|getObjectViewDistance|getOxygenRemaining|getPersonUsedDLCs|getPilotCameraDirection|getPilotCameraPosition|getPilotCameraRotation|getPilotCameraTarget|getPlateNumber|getPlayerChannel|getPlayerScores|getPlayerUID|getPlayerUIDOld|getPos|getPosASL|getPosASLVisual|getPosASLW|getPosATL|getPosATLVisual|getPosVisual|getPosWorld|getPylonMagazines|getRelDir|getRelPos|getRemoteSensorsDisabled|getRepairCargo|getResolution|getRotorBrakeRTD|getShadowDistance|getShotParents|getSlingLoad|getSoundController|getSoundControllerResult|getSpeed|getStamina|getStatValue|getSuppression|getTerrainGrid|getTerrainHeightASL|getText|getTotalDLCUsageTime|getTrimOffsetRTD|getUnitLoadout|getUnitTrait|getUserMFDText|getUserMFDValue|getVariable|getVehicleCargo|getWeaponCargo|getWeaponSway|getWingsOrientationRTD|getWingsPositionRTD|getWPPos|glanceAt|globalChat|globalRadio|goggles|group|groupChat|groupFromNetId|groupIconSelectable|groupIconsVisible|groupId|groupOwner|groupRadio|groupSelectedUnits|groupSelectUnit|grpNull|gunner|gusts|halt|handgunItems|handgunMagazine|handgunWeapon|handsHit|hasInterface|hasPilotCamera|hasWeapon|hcAllGroups|hcGroupParams|hcLeader|hcRemoveAllGroups|hcRemoveGroup|hcSelected|hcSelectGroup|hcSetGroup|hcShowBar|hcShownBar|headgear|hideBody|hideObject|hideObjectGlobal|hideSelection|hint|hintC|hintCadet|hintSilent|hmd|hostMission|htmlLoad|HUDMovementLevels|humidity|image|importAllGroups|importance|in|inArea|inAreaArray|incapacitatedState|independent|inflame|inflamed|infoPanel|infoPanelComponentEnabled|infoPanelComponents|infoPanels|inGameUISetEventHandler|inheritsFrom|initAmbientLife|inPolygon|inputAction|inRangeOfArtillery|insertEditorObject|intersect|is3DEN|is3DENMultiplayer|isAbleToBreathe|isAgent|isAimPrecisionEnabled|isArray|isAutoHoverOn|isAutonomous|isAutoStartUpEnabledRTD|isAutotest|isAutoTrimOnRTD|isBleeding|isBurning|isClass|isCollisionLightOn|isCopilotEnabled|isDamageAllowed|isDedicated|isDLCAvailable|isEngineOn|isEqualTo|isEqualType|isEqualTypeAll|isEqualTypeAny|isEqualTypeArray|isEqualTypeParams|isFilePatchingEnabled|isFlashlightOn|isFlatEmpty|isForcedWalk|isFormationLeader|isGroupDeletedWhenEmpty|isHidden|isInRemainsCollector|isInstructorFigureEnabled|isIRLaserOn|isKeyActive|isKindOf|isLaserOn|isLightOn|isLocalized|isManualFire|isMarkedForCollection|isMultiplayer|isMultiplayerSolo|isNil|isNull|isNumber|isObjectHidden|isObjectRTD|isOnRoad|isPipEnabled|isPlayer|isRealTime|isRemoteExecuted|isRemoteExecutedJIP|isServer|isShowing3DIcons|isSimpleObject|isSprintAllowed|isStaminaEnabled|isSteamMission|isStreamFriendlyUIEnabled|isStressDamageEnabled|isText|isTouchingGround|isTurnedOut|isTutHintsEnabled|isUAVConnectable|isUAVConnected|isUIContext|isUniformAllowed|isVehicleCargo|isVehicleRadarOn|isVehicleSensorEnabled|isWalking|isWeaponDeployed|isWeaponRested|itemCargo|items|itemsWithMagazines|join|joinAs|joinAsSilent|joinSilent|joinString|kbAddDatabase|kbAddDatabaseTargets|kbAddTopic|kbHasTopic|kbReact|kbRemoveTopic|kbTell|kbWasSaid|keyImage|keyName|knowsAbout|land|landAt|landResult|language|laserTarget|lbAdd|lbClear|lbColor|lbColorRight|lbCurSel|lbData|lbDelete|lbIsSelected|lbPicture|lbPictureRight|lbSelection|lbSetColor|lbSetColorRight|lbSetCurSel|lbSetData|lbSetPicture|lbSetPictureColor|lbSetPictureColorDisabled|lbSetPictureColorSelected|lbSetPictureRight|lbSetPictureRightColor|lbSetPictureRightColorDisabled|lbSetPictureRightColorSelected|lbSetSelectColor|lbSetSelectColorRight|lbSetSelected|lbSetText|lbSetTextRight|lbSetTooltip|lbSetValue|lbSize|lbSort|lbSortByValue|lbText|lbTextRight|lbValue|leader|leaderboardDeInit|leaderboardGetRows|leaderboardInit|leaderboardRequestRowsFriends|leaderboardRequestRowsGlobal|leaderboardRequestRowsGlobalAroundUser|leaderboardsRequestUploadScore|leaderboardsRequestUploadScoreKeepBest|leaderboardState|leaveVehicle|libraryCredits|libraryDisclaimers|lifeState|lightAttachObject|lightDetachObject|lightIsOn|lightnings|limitSpeed|linearConversion|lineBreak|lineIntersects|lineIntersectsObjs|lineIntersectsSurfaces|lineIntersectsWith|linkItem|list|listObjects|listRemoteTargets|listVehicleSensors|ln|lnbAddArray|lnbAddColumn|lnbAddRow|lnbClear|lnbColor|lnbColorRight|lnbCurSelRow|lnbData|lnbDeleteColumn|lnbDeleteRow|lnbGetColumnsPosition|lnbPicture|lnbPictureRight|lnbSetColor|lnbSetColorRight|lnbSetColumnsPos|lnbSetCurSelRow|lnbSetData|lnbSetPicture|lnbSetPictureColor|lnbSetPictureColorRight|lnbSetPictureColorSelected|lnbSetPictureColorSelectedRight|lnbSetPictureRight|lnbSetText|lnbSetTextRight|lnbSetValue|lnbSize|lnbSort|lnbSortByValue|lnbText|lnbTextRight|lnbValue|load|loadAbs|loadBackpack|loadFile|loadGame|loadIdentity|loadMagazine|loadOverlay|loadStatus|loadUniform|loadVest|local|localize|locationNull|locationPosition|lock|lockCameraTo|lockCargo|lockDriver|locked|lockedCargo|lockedDriver|lockedTurret|lockIdentity|lockTurret|lockWP|log|logEntities|logNetwork|logNetworkTerminate|lookAt|lookAtPos|magazineCargo|magazines|magazinesAllTurrets|magazinesAmmo|magazinesAmmoCargo|magazinesAmmoFull|magazinesDetail|magazinesDetailBackpack|magazinesDetailUniform|magazinesDetailVest|magazinesTurret|magazineTurretAmmo|mapAnimAdd|mapAnimClear|mapAnimCommit|mapAnimDone|mapCenterOnCamera|mapGridPosition|markAsFinishedOnSteam|markerAlpha|markerBrush|markerColor|markerDir|markerPos|markerShape|markerSize|markerText|markerType|max|members|menuAction|menuAdd|menuChecked|menuClear|menuCollapse|menuData|menuDelete|menuEnable|menuEnabled|menuExpand|menuHover|menuPicture|menuSetAction|menuSetCheck|menuSetData|menuSetPicture|menuSetValue|menuShortcut|menuShortcutText|menuSize|menuSort|menuText|menuURL|menuValue|min|mineActive|mineDetectedBy|missionConfigFile|missionDifficulty|missionName|missionNamespace|missionStart|missionVersion|modelToWorld|modelToWorldVisual|modelToWorldVisualWorld|modelToWorldWorld|modParams|moonIntensity|moonPhase|morale|move|move3DENCamera|moveInAny|moveInCargo|moveInCommander|moveInDriver|moveInGunner|moveInTurret|moveObjectToEnd|moveOut|moveTime|moveTo|moveToCompleted|moveToFailed|musicVolume|name|nameSound|nearEntities|nearestBuilding|nearestLocation|nearestLocations|nearestLocationWithDubbing|nearestObject|nearestObjects|nearestTerrainObjects|nearObjects|nearObjectsReady|nearRoads|nearSupplies|nearTargets|needReload|netId|netObjNull|newOverlay|nextMenuItemIndex|nextWeatherChange|nMenuItems|numberOfEnginesRTD|numberToDate|objectCurators|objectFromNetId|objectParent|objNull|objStatus|onBriefingGear|onBriefingGroup|onBriefingNotes|onBriefingPlan|onBriefingTeamSwitch|onCommandModeChanged|onDoubleClick|onEachFrame|onGroupIconClick|onGroupIconOverEnter|onGroupIconOverLeave|onHCGroupSelectionChanged|onMapSingleClick|onPlayerConnected|onPlayerDisconnected|onPreloadFinished|onPreloadStarted|onShowNewObject|onTeamSwitch|openCuratorInterface|openDLCPage|openDSInterface|openMap|openSteamApp|openYoutubeVideo|opfor|orderGetIn|overcast|overcastForecast|owner|param|params|parseNumber|parseSimpleArray|parseText|parsingNamespace|particlesQuality|pi|pickWeaponPool|pitch|pixelGrid|pixelGridBase|pixelGridNoUIScale|pixelH|pixelW|playableSlotsNumber|playableUnits|playAction|playActionNow|player|playerRespawnTime|playerSide|playersNumber|playGesture|playMission|playMove|playMoveNow|playMusic|playScriptedMission|playSound|playSound3D|position|positionCameraToWorld|posScreenToWorld|posWorldToScreen|ppEffectAdjust|ppEffectCommit|ppEffectCommitted|ppEffectCreate|ppEffectDestroy|ppEffectEnable|ppEffectEnabled|ppEffectForceInNVG|precision|preloadCamera|preloadObject|preloadSound|preloadTitleObj|preloadTitleRsc|primaryWeapon|primaryWeaponItems|primaryWeaponMagazine|priority|processDiaryLink|processInitCommands|productVersion|profileName|profileNamespace|profileNameSteam|progressLoadingScreen|progressPosition|progressSetPosition|publicVariable|publicVariableClient|publicVariableServer|pushBack|pushBackUnique|putWeaponPool|queryItemsPool|queryMagazinePool|queryWeaponPool|rad|radioChannelAdd|radioChannelCreate|radioChannelRemove|radioChannelSetCallSign|radioChannelSetLabel|radioVolume|rain|rainbow|random|rank|rankId|rating|rectangular|registeredTasks|registerTask|reload|reloadEnabled|remoteControl|remoteExec|remoteExecCall|remoteExecutedOwner|remove3DENConnection|remove3DENEventHandler|remove3DENLayer|removeAction|removeAll3DENEventHandlers|removeAllActions|removeAllAssignedItems|removeAllContainers|removeAllCuratorAddons|removeAllCuratorCameraAreas|removeAllCuratorEditingAreas|removeAllEventHandlers|removeAllHandgunItems|removeAllItems|removeAllItemsWithMagazines|removeAllMissionEventHandlers|removeAllMPEventHandlers|removeAllMusicEventHandlers|removeAllOwnedMines|removeAllPrimaryWeaponItems|removeAllWeapons|removeBackpack|removeBackpackGlobal|removeCuratorAddons|removeCuratorCameraArea|removeCuratorEditableObjects|removeCuratorEditingArea|removeDrawIcon|removeDrawLinks|removeEventHandler|removeFromRemainsCollector|removeGoggles|removeGroupIcon|removeHandgunItem|removeHeadgear|removeItem|removeItemFromBackpack|removeItemFromUniform|removeItemFromVest|removeItems|removeMagazine|removeMagazineGlobal|removeMagazines|removeMagazinesTurret|removeMagazineTurret|removeMenuItem|removeMissionEventHandler|removeMPEventHandler|removeMusicEventHandler|removeOwnedMine|removePrimaryWeaponItem|removeSecondaryWeaponItem|removeSimpleTask|removeSwitchableUnit|removeTeamMember|removeUniform|removeVest|removeWeapon|removeWeaponAttachmentCargo|removeWeaponCargo|removeWeaponGlobal|removeWeaponTurret|reportRemoteTarget|requiredVersion|resetCamShake|resetSubgroupDirection|resistance|resize|resources|respawnVehicle|restartEditorCamera|reveal|revealMine|reverse|reversedMouseY|roadAt|roadsConnectedTo|roleDescription|ropeAttachedObjects|ropeAttachedTo|ropeAttachEnabled|ropeAttachTo|ropeCreate|ropeCut|ropeDestroy|ropeDetach|ropeEndPosition|ropeLength|ropes|ropeUnwind|ropeUnwound|rotorsForcesRTD|rotorsRpmRTD|round|runInitScript|safeZoneH|safeZoneW|safeZoneWAbs|safeZoneX|safeZoneXAbs|safeZoneY|save3DENInventory|saveGame|saveIdentity|saveJoysticks|saveOverlay|saveProfileNamespace|saveStatus|saveVar|savingEnabled|say|say2D|say3D|score|scoreSide|screenshot|screenToWorld|scriptDone|scriptName|scriptNull|scudState|secondaryWeapon|secondaryWeaponItems|secondaryWeaponMagazine|select|selectBestPlaces|selectDiarySubject|selectedEditorObjects|selectEditorObject|selectionNames|selectionPosition|selectLeader|selectMax|selectMin|selectNoPlayer|selectPlayer|selectRandom|selectRandomWeighted|selectWeapon|selectWeaponTurret|sendAUMessage|sendSimpleCommand|sendTask|sendTaskResult|sendUDPMessage|serverCommand|serverCommandAvailable|serverCommandExecutable|serverName|serverTime|set|set3DENAttribute|set3DENAttributes|set3DENGrid|set3DENIconsVisible|set3DENLayer|set3DENLinesVisible|set3DENLogicType|set3DENMissionAttribute|set3DENMissionAttributes|set3DENModelsVisible|set3DENObjectType|set3DENSelected|setAccTime|setActualCollectiveRTD|setAirplaneThrottle|setAirportSide|setAmmo|setAmmoCargo|setAmmoOnPylon|setAnimSpeedCoef|setAperture|setApertureNew|setArmoryPoints|setAttributes|setAutonomous|setBehaviour|setBleedingRemaining|setBrakesRTD|setCameraInterest|setCamShakeDefParams|setCamShakeParams|setCamUseTI|setCaptive|setCenterOfMass|setCollisionLight|setCombatMode|setCompassOscillation|setConvoySeparation|setCuratorCameraAreaCeiling|setCuratorCoef|setCuratorEditingAreaType|setCuratorWaypointCost|setCurrentChannel|setCurrentTask|setCurrentWaypoint|setCustomAimCoef|setCustomWeightRTD|setDamage|setDammage|setDate|setDebriefingText|setDefaultCamera|setDestination|setDetailMapBlendPars|setDir|setDirection|setDrawIcon|setDriveOnPath|setDropInterval|setDynamicSimulationDistance|setDynamicSimulationDistanceCoef|setEditorMode|setEditorObjectScope|setEffectCondition|setEngineRpmRTD|setFace|setFaceAnimation|setFatigue|setFeatureType|setFlagAnimationPhase|setFlagOwner|setFlagSide|setFlagTexture|setFog|setForceGeneratorRTD|setFormation|setFormationTask|setFormDir|setFriend|setFromEditor|setFSMVariable|setFuel|setFuelCargo|setGroupIcon|setGroupIconParams|setGroupIconsSelectable|setGroupIconsVisible|setGroupId|setGroupIdGlobal|setGroupOwner|setGusts|setHideBehind|setHit|setHitIndex|setHitPointDamage|setHorizonParallaxCoef|setHUDMovementLevels|setIdentity|setImportance|setInfoPanel|setLeader|setLightAmbient|setLightAttenuation|setLightBrightness|setLightColor|setLightDayLight|setLightFlareMaxDistance|setLightFlareSize|setLightIntensity|setLightnings|setLightUseFlare|setLocalWindParams|setMagazineTurretAmmo|setMarkerAlpha|setMarkerAlphaLocal|setMarkerBrush|setMarkerBrushLocal|setMarkerColor|setMarkerColorLocal|setMarkerDir|setMarkerDirLocal|setMarkerPos|setMarkerPosLocal|setMarkerShape|setMarkerShapeLocal|setMarkerSize|setMarkerSizeLocal|setMarkerText|setMarkerTextLocal|setMarkerType|setMarkerTypeLocal|setMass|setMimic|setMousePosition|setMusicEffect|setMusicEventHandler|setName|setNameSound|setObjectArguments|setObjectMaterial|setObjectMaterialGlobal|setObjectProxy|setObjectTexture|setObjectTextureGlobal|setObjectViewDistance|setOvercast|setOwner|setOxygenRemaining|setParticleCircle|setParticleClass|setParticleFire|setParticleParams|setParticleRandom|setPilotCameraDirection|setPilotCameraRotation|setPilotCameraTarget|setPilotLight|setPiPEffect|setPitch|setPlateNumber|setPlayable|setPlayerRespawnTime|setPos|setPosASL|setPosASL2|setPosASLW|setPosATL|setPosition|setPosWorld|setPylonLoadOut|setPylonsPriority|setRadioMsg|setRain|setRainbow|setRandomLip|setRank|setRectangular|setRepairCargo|setRotorBrakeRTD|setShadowDistance|setShotParents|setSide|setSimpleTaskAlwaysVisible|setSimpleTaskCustomData|setSimpleTaskDescription|setSimpleTaskDestination|setSimpleTaskTarget|setSimpleTaskType|setSimulWeatherLayers|setSize|setSkill|setSlingLoad|setSoundEffect|setSpeaker|setSpeech|setSpeedMode|setStamina|setStaminaScheme|setStatValue|setSuppression|setSystemOfUnits|setTargetAge|setTaskMarkerOffset|setTaskResult|setTaskState|setTerrainGrid|setText|setTimeMultiplier|setTitleEffect|setToneMapping|setToneMappingParams|setTrafficDensity|setTrafficDistance|setTrafficGap|setTrafficSpeed|setTriggerActivation|setTriggerArea|setTriggerStatements|setTriggerText|setTriggerTimeout|setTriggerType|setType|setUnconscious|setUnitAbility|setUnitLoadout|setUnitPos|setUnitPosWeak|setUnitRank|setUnitRecoilCoefficient|setUnitTrait|setUnloadInCombat|setUserActionText|setUserMFDText|setUserMFDValue|setVariable|setVectorDir|setVectorDirAndUp|setVectorUp|setVehicleAmmo|setVehicleAmmoDef|setVehicleArmor|setVehicleCargo|setVehicleId|setVehicleInit|setVehicleLock|setVehiclePosition|setVehicleRadar|setVehicleReceiveRemoteTargets|setVehicleReportOwnPosition|setVehicleReportRemoteTargets|setVehicleTIPars|setVehicleVarName|setVelocity|setVelocityModelSpace|setVelocityTransformation|setViewDistance|setVisibleIfTreeCollapsed|setWantedRpmRTD|setWaves|setWaypointBehaviour|setWaypointCombatMode|setWaypointCompletionRadius|setWaypointDescription|setWaypointForceBehaviour|setWaypointFormation|setWaypointHousePosition|setWaypointLoiterRadius|setWaypointLoiterType|setWaypointName|setWaypointPosition|setWaypointScript|setWaypointSpeed|setWaypointStatements|setWaypointTimeout|setWaypointType|setWaypointVisible|setWeaponReloadingTime|setWind|setWindDir|setWindForce|setWindStr|setWingForceScaleRTD|setWPPos|show3DIcons|showChat|showCinemaBorder|showCommandingMenu|showCompass|showCuratorCompass|showGPS|showHUD|showLegend|showMap|shownArtilleryComputer|shownChat|shownCompass|shownCuratorCompass|showNewEditorObject|shownGPS|shownHUD|shownMap|shownPad|shownRadio|shownScoretable|shownUAVFeed|shownWarrant|shownWatch|showPad|showRadio|showScoretable|showSubtitles|showUAVFeed|showWarrant|showWatch|showWaypoint|showWaypoints|side|sideAmbientLife|sideChat|sideEmpty|sideEnemy|sideFriendly|sideLogic|sideRadio|sideUnknown|simpleTasks|simulationEnabled|simulCloudDensity|simulCloudOcclusion|simulInClouds|simulWeatherSync|sin|size|sizeOf|skill|skillFinal|skipTime|sleep|sliderPosition|sliderRange|sliderSetPosition|sliderSetRange|sliderSetSpeed|sliderSpeed|slingLoadAssistantShown|soldierMagazines|someAmmo|sort|soundVolume|speaker|speed|speedMode|splitString|sqrt|squadParams|stance|startLoadingScreen|stop|stopEngineRTD|stopped|str|sunOrMoon|supportInfo|suppressFor|surfaceIsWater|surfaceNormal|surfaceType|swimInDepth|switchableUnits|switchAction|switchCamera|switchGesture|switchLight|switchMove|synchronizedObjects|synchronizedTriggers|synchronizedWaypoints|synchronizeObjectsAdd|synchronizeObjectsRemove|synchronizeTrigger|synchronizeWaypoint|systemChat|systemOfUnits|tan|targetKnowledge|targets|targetsAggregate|targetsQuery|taskAlwaysVisible|taskChildren|taskCompleted|taskCustomData|taskDescription|taskDestination|taskHint|taskMarkerOffset|taskNull|taskParent|taskResult|taskState|taskType|teamMember|teamMemberNull|teamName|teams|teamSwitch|teamSwitchEnabled|teamType|terminate|terrainIntersect|terrainIntersectASL|terrainIntersectAtASL|text|textLog|textLogFormat|tg|time|timeMultiplier|titleCut|titleFadeOut|titleObj|titleRsc|titleText|toArray|toFixed|toLower|toString|toUpper|triggerActivated|triggerActivation|triggerArea|triggerAttachedVehicle|triggerAttachObject|triggerAttachVehicle|triggerDynamicSimulation|triggerStatements|triggerText|triggerTimeout|triggerTimeoutCurrent|triggerType|turretLocal|turretOwner|turretUnit|tvAdd|tvClear|tvCollapse|tvCollapseAll|tvCount|tvCurSel|tvData|tvDelete|tvExpand|tvExpandAll|tvPicture|tvPictureRight|tvSetColor|tvSetCurSel|tvSetData|tvSetPicture|tvSetPictureColor|tvSetPictureColorDisabled|tvSetPictureColorSelected|tvSetPictureRight|tvSetPictureRightColor|tvSetPictureRightColorDisabled|tvSetPictureRightColorSelected|tvSetSelectColor|tvSetText|tvSetTooltip|tvSetValue|tvSort|tvSortByValue|tvText|tvTooltip|tvValue|type|typeName|typeOf|UAVControl|uiNamespace|uiSleep|unassignCurator|unassignItem|unassignTeam|unassignVehicle|underwater|uniform|uniformContainer|uniformItems|uniformMagazines|unitAddons|unitAimPosition|unitAimPositionVisual|unitBackpack|unitIsUAV|unitPos|unitReady|unitRecoilCoefficient|units|unitsBelowHeight|unlinkItem|unlockAchievement|unregisterTask|updateDrawIcon|updateMenuItem|updateObjectTree|useAIOperMapObstructionTest|useAISteeringComponent|useAudioTimeForMoves|userInputDisabled|vectorAdd|vectorCos|vectorCrossProduct|vectorDiff|vectorDir|vectorDirVisual|vectorDistance|vectorDistanceSqr|vectorDotProduct|vectorFromTo|vectorMagnitude|vectorMagnitudeSqr|vectorModelToWorld|vectorModelToWorldVisual|vectorMultiply|vectorNormalized|vectorUp|vectorUpVisual|vectorWorldToModel|vectorWorldToModelVisual|vehicle|vehicleCargoEnabled|vehicleChat|vehicleRadio|vehicleReceiveRemoteTargets|vehicleReportOwnPosition|vehicleReportRemoteTargets|vehicles|vehicleVarName|velocity|velocityModelSpace|verifySignature|vest|vestContainer|vestItems|vestMagazines|viewDistance|visibleCompass|visibleGPS|visibleMap|visiblePosition|visiblePositionASL|visibleScoretable|visibleWatch|waitUntil|waves|waypointAttachedObject|waypointAttachedVehicle|waypointAttachObject|waypointAttachVehicle|waypointBehaviour|waypointCombatMode|waypointCompletionRadius|waypointDescription|waypointForceBehaviour|waypointFormation|waypointHousePosition|waypointLoiterRadius|waypointLoiterType|waypointName|waypointPosition|waypoints|waypointScript|waypointsEnabledUAV|waypointShow|waypointSpeed|waypointStatements|waypointTimeout|waypointTimeoutCurrent|waypointType|waypointVisible|weaponAccessories|weaponAccessoriesCargo|weaponCargo|weaponDirection|weaponInertia|weaponLowered|weapons|weaponsItems|weaponsItemsCargo|weaponState|weaponsTurret|weightRTD|west|WFSideText|wind|windDir|windRTD|windStr|wingsForcesRTD|worldName|worldSize|worldToModel|worldToModelVisual|worldToScreen)\\b/i,\n    number:\n      /(?:\\$|\\b0x)[\\da-f]+\\b|(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d+)?)(?:e[+-]?\\d+)?\\b/i,\n    operator: /##|>>|&&|\\|\\||[!=<>]=?|[-+*/%#^]|\\b(?:and|mod|not|or)\\b/i,\n    'magic-variable': {\n      pattern:\n        /\\b(?:this|thisList|thisTrigger|_exception|_fnc_scriptName|_fnc_scriptNameParent|_forEachIndex|_this|_thisEventHandler|_thisFSM|_thisScript|_x)\\b/i,\n      alias: 'keyword'\n    },\n    constant: /\\bDIK(?:_[a-z\\d]+)+\\b/i\n  })\n  Prism.languages.insertBefore('sqf', 'string', {\n    macro: {\n      pattern: /(^[ \\t]*)#[a-z](?:[^\\r\\n\\\\]|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property',\n      inside: {\n        directive: {\n          pattern: /#[a-z]+\\b/i,\n          alias: 'keyword'\n        },\n        comment: Prism.languages.sqf.comment\n      }\n    }\n  })\n  delete Prism.languages.sqf['class-name']\n}\n","'use strict'\n\nmodule.exports = sql\nsql.displayName = 'sql'\nsql.aliases = []\nfunction sql(Prism) {\n  Prism.languages.sql = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n      lookbehind: true\n    },\n    variable: [\n      {\n        pattern: /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/,\n        greedy: true\n      },\n      /@[\\w.$]+/\n    ],\n    string: {\n      pattern: /(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/,\n      greedy: true,\n      lookbehind: true\n    },\n    identifier: {\n      pattern: /(^|[^@\\\\])`(?:\\\\[\\s\\S]|[^`\\\\]|``)*`/,\n      greedy: true,\n      lookbehind: true,\n      inside: {\n        punctuation: /^`|`$/\n      }\n    },\n    function:\n      /\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i,\n    // Should we highlight user defined functions too?\n    keyword:\n      /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i,\n    boolean: /\\b(?:FALSE|NULL|TRUE)\\b/i,\n    number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n    operator:\n      /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,\n    punctuation: /[;[\\]()`,.]/\n  }\n}\n","'use strict'\n\nmodule.exports = squirrel\nsquirrel.displayName = 'squirrel'\nsquirrel.aliases = []\nfunction squirrel(Prism) {\n  Prism.languages.squirrel = Prism.languages.extend('clike', {\n    comment: [\n      Prism.languages.clike['comment'][0],\n      {\n        pattern: /(^|[^\\\\:])(?:\\/\\/|#).*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /(^|[^\\\\\"'@])(?:@\"(?:[^\"]|\"\")*\"(?!\")|\"(?:[^\\\\\\r\\n\"]|\\\\.)*\")/,\n      lookbehind: true,\n      greedy: true\n    },\n    'class-name': {\n      pattern: /(\\b(?:class|enum|extends|instanceof)\\s+)\\w+(?:\\.\\w+)*/,\n      lookbehind: true,\n      inside: {\n        punctuation: /\\./\n      }\n    },\n    keyword:\n      /\\b(?:__FILE__|__LINE__|base|break|case|catch|class|clone|const|constructor|continue|default|delete|else|enum|extends|for|foreach|function|if|in|instanceof|local|null|resume|return|static|switch|this|throw|try|typeof|while|yield)\\b/,\n    number: /\\b(?:0x[0-9a-fA-F]+|\\d+(?:\\.(?:\\d+|[eE][+-]?\\d+))?)\\b/,\n    operator: /\\+\\+|--|<=>|<[-<]|>>>?|&&?|\\|\\|?|[-+*/%!=<>]=?|[~^]|::?/,\n    punctuation: /[(){}\\[\\],;.]/\n  })\n  Prism.languages.insertBefore('squirrel', 'string', {\n    char: {\n      pattern: /(^|[^\\\\\"'])'(?:[^\\\\']|\\\\(?:[xuU][0-9a-fA-F]{0,8}|[\\s\\S]))'/,\n      lookbehind: true,\n      greedy: true\n    }\n  })\n  Prism.languages.insertBefore('squirrel', 'operator', {\n    'attribute-punctuation': {\n      pattern: /<\\/|\\/>/,\n      alias: 'important'\n    },\n    lambda: {\n      pattern: /@(?=\\()/,\n      alias: 'operator'\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = stan\nstan.displayName = 'stan'\nstan.aliases = []\nfunction stan(Prism) {\n  ;(function (Prism) {\n    // https://mc-stan.org/docs/2_28/reference-manual/bnf-grammars.html\n    var higherOrderFunctions =\n      /\\b(?:algebra_solver|algebra_solver_newton|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect|ode_(?:adams|bdf|ckrk|rk45)(?:_tol)?|ode_adjoint_tol_ctl|reduce_sum|reduce_sum_static)\\b/\n    Prism.languages.stan = {\n      comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\/|#(?!include).*/,\n      string: {\n        // String literals can contain spaces and any printable ASCII characters except for \" and \\\n        // https://mc-stan.org/docs/2_24/reference-manual/print-statements-section.html#string-literals\n        pattern: /\"[\\x20\\x21\\x23-\\x5B\\x5D-\\x7E]*\"/,\n        greedy: true\n      },\n      directive: {\n        pattern: /^([ \\t]*)#include\\b.*/m,\n        lookbehind: true,\n        alias: 'property'\n      },\n      'function-arg': {\n        pattern: RegExp(\n          '(' +\n            higherOrderFunctions.source +\n            /\\s*\\(\\s*/.source +\n            ')' +\n            /[a-zA-Z]\\w*/.source\n        ),\n        lookbehind: true,\n        alias: 'function'\n      },\n      constraint: {\n        pattern: /(\\b(?:int|matrix|real|row_vector|vector)\\s*)<[^<>]*>/,\n        lookbehind: true,\n        inside: {\n          expression: {\n            pattern: /(=\\s*)\\S(?:\\S|\\s+(?!\\s))*?(?=\\s*(?:>$|,\\s*\\w+\\s*=))/,\n            lookbehind: true,\n            inside: null // see below\n          },\n          property: /\\b[a-z]\\w*(?=\\s*=)/i,\n          operator: /=/,\n          punctuation: /^<|>$|,/\n        }\n      },\n      keyword: [\n        {\n          pattern:\n            /\\bdata(?=\\s*\\{)|\\b(?:functions|generated|model|parameters|quantities|transformed)\\b/,\n          alias: 'program-block'\n        },\n        /\\b(?:array|break|cholesky_factor_corr|cholesky_factor_cov|complex|continue|corr_matrix|cov_matrix|data|else|for|if|in|increment_log_prob|int|matrix|ordered|positive_ordered|print|real|reject|return|row_vector|simplex|target|unit_vector|vector|void|while)\\b/, // these are functions that are known to take another function as their first argument.\n        higherOrderFunctions\n      ],\n      function: /\\b[a-z]\\w*(?=\\s*\\()/i,\n      number:\n        /(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:E[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i,\n      boolean: /\\b(?:false|true)\\b/,\n      operator: /<-|\\.[*/]=?|\\|\\|?|&&|[!=<>+\\-*/]=?|['^%~?:]/,\n      punctuation: /[()\\[\\]{},;]/\n    }\n    Prism.languages.stan.constraint.inside.expression.inside =\n      Prism.languages.stan\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = stylus\nstylus.displayName = 'stylus'\nstylus.aliases = []\nfunction stylus(Prism) {\n  ;(function (Prism) {\n    var unit = {\n      pattern: /(\\b\\d+)(?:%|[a-z]+)/,\n      lookbehind: true\n    } // 123 -123 .123 -.123 12.3 -12.3\n    var number = {\n      pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n      lookbehind: true\n    }\n    var inside = {\n      comment: {\n        pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n        lookbehind: true\n      },\n      url: {\n        pattern: /\\burl\\(([\"']?).*?\\1\\)/i,\n        greedy: true\n      },\n      string: {\n        pattern: /(\"|')(?:(?!\\1)[^\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\\1/,\n        greedy: true\n      },\n      interpolation: null,\n      // See below\n      func: null,\n      // See below\n      important: /\\B!(?:important|optional)\\b/i,\n      keyword: {\n        pattern: /(^|\\s+)(?:(?:else|for|if|return|unless)(?=\\s|$)|@[\\w-]+)/,\n        lookbehind: true\n      },\n      hexcode: /#[\\da-f]{3,6}/i,\n      color: [\n        /\\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\\b/i,\n        {\n          pattern:\n            /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i,\n          inside: {\n            unit: unit,\n            number: number,\n            function: /[\\w-]+(?=\\()/,\n            punctuation: /[(),]/\n          }\n        }\n      ],\n      entity: /\\\\[\\da-f]{1,8}/i,\n      unit: unit,\n      boolean: /\\b(?:false|true)\\b/,\n      operator: [\n        // We want non-word chars around \"-\" because it is\n        // accepted in property names.\n        /~|[+!\\/%<>?=]=?|[-:]=|\\*[*=]?|\\.{2,3}|&&|\\|\\||\\B-\\B|\\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\\b/\n      ],\n      number: number,\n      punctuation: /[{}()\\[\\];:,]/\n    }\n    inside['interpolation'] = {\n      pattern: /\\{[^\\r\\n}:]+\\}/,\n      alias: 'variable',\n      inside: {\n        delimiter: {\n          pattern: /^\\{|\\}$/,\n          alias: 'punctuation'\n        },\n        rest: inside\n      }\n    }\n    inside['func'] = {\n      pattern: /[\\w-]+\\([^)]*\\).*/,\n      inside: {\n        function: /^[^(]+/,\n        rest: inside\n      }\n    }\n    Prism.languages.stylus = {\n      'atrule-declaration': {\n        pattern: /(^[ \\t]*)@.+/m,\n        lookbehind: true,\n        inside: {\n          atrule: /^@[\\w-]+/,\n          rest: inside\n        }\n      },\n      'variable-declaration': {\n        pattern: /(^[ \\t]*)[\\w$-]+\\s*.?=[ \\t]*(?:\\{[^{}]*\\}|\\S.*|$)/m,\n        lookbehind: true,\n        inside: {\n          variable: /^\\S+/,\n          rest: inside\n        }\n      },\n      statement: {\n        pattern: /(^[ \\t]*)(?:else|for|if|return|unless)[ \\t].+/m,\n        lookbehind: true,\n        inside: {\n          keyword: /^\\S+/,\n          rest: inside\n        }\n      },\n      // A property/value pair cannot end with a comma or a brace\n      // It cannot have indented content unless it ended with a semicolon\n      'property-declaration': {\n        pattern:\n          /((?:^|\\{)([ \\t]*))(?:[\\w-]|\\{[^}\\r\\n]+\\})+(?:\\s*:\\s*|[ \\t]+)(?!\\s)[^{\\r\\n]*(?:;|[^{\\r\\n,]$(?!(?:\\r?\\n|\\r)(?:\\{|\\2[ \\t])))/m,\n        lookbehind: true,\n        inside: {\n          property: {\n            pattern: /^[^\\s:]+/,\n            inside: {\n              interpolation: inside.interpolation\n            }\n          },\n          rest: inside\n        }\n      },\n      // A selector can contain parentheses only as part of a pseudo-element\n      // It can span multiple lines.\n      // It must end with a comma or an accolade or have indented content.\n      selector: {\n        pattern:\n          /(^[ \\t]*)(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\)|(?![\\w-]))|\\{[^}\\r\\n]+\\})+)(?:(?:\\r?\\n|\\r)(?:\\1(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\)|(?![\\w-]))|\\{[^}\\r\\n]+\\})+)))*(?:,$|\\{|(?=(?:\\r?\\n|\\r)(?:\\{|\\1[ \\t])))/m,\n        lookbehind: true,\n        inside: {\n          interpolation: inside.interpolation,\n          comment: inside.comment,\n          punctuation: /[{},]/\n        }\n      },\n      func: inside.func,\n      string: inside.string,\n      comment: {\n        pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n        lookbehind: true,\n        greedy: true\n      },\n      interpolation: inside.interpolation,\n      punctuation: /[{}()\\[\\];:.]/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = swift\nswift.displayName = 'swift'\nswift.aliases = []\nfunction swift(Prism) {\n  Prism.languages.swift = {\n    comment: {\n      // Nested comments are supported up to 2 levels\n      pattern:\n        /(^|[^\\\\:])(?:\\/\\/.*|\\/\\*(?:[^/*]|\\/(?!\\*)|\\*(?!\\/)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\*\\/)/,\n      lookbehind: true,\n      greedy: true\n    },\n    'string-literal': [\n      // https://docs.swift.org/swift-book/LanguageGuide/StringsAndCharacters.html\n      {\n        pattern: RegExp(\n          /(^|[^\"#])/.source +\n            '(?:' + // single-line string\n            /\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^(])|[^\\\\\\r\\n\"])*\"/\n              .source +\n            '|' + // multi-line string\n            /\"\"\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|[^(])|[^\\\\\"]|\"(?!\"\"))*\"\"\"/\n              .source +\n            ')' +\n            /(?![\"#])/.source\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern: /(\\\\\\()(?:[^()]|\\([^()]*\\))*(?=\\))/,\n            lookbehind: true,\n            inside: null // see below\n          },\n          'interpolation-punctuation': {\n            pattern: /^\\)|\\\\\\($/,\n            alias: 'punctuation'\n          },\n          punctuation: /\\\\(?=[\\r\\n])/,\n          string: /[\\s\\S]+/\n        }\n      },\n      {\n        pattern: RegExp(\n          /(^|[^\"#])(#+)/.source +\n            '(?:' + // single-line string\n            /\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^#])|[^\\\\\\r\\n])*?\"/\n              .source +\n            '|' + // multi-line string\n            /\"\"\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|[^#])|[^\\\\])*?\"\"\"/.source +\n            ')' +\n            '\\\\2'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern: /(\\\\#+\\()(?:[^()]|\\([^()]*\\))*(?=\\))/,\n            lookbehind: true,\n            inside: null // see below\n          },\n          'interpolation-punctuation': {\n            pattern: /^\\)|\\\\#+\\($/,\n            alias: 'punctuation'\n          },\n          string: /[\\s\\S]+/\n        }\n      }\n    ],\n    directive: {\n      // directives with conditions\n      pattern: RegExp(\n        /#/.source +\n          '(?:' +\n          (/(?:elseif|if)\\b/.source +\n            '(?:[ \\t]*' + // This regex is a little complex. It's equivalent to this:\n            //   (?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*<round>)?|<round>)(?:[ \\t]*(?:&&|\\|\\|))?\n            // where <round> is a general parentheses expression.\n            /(?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*\\((?:[^()]|\\([^()]*\\))*\\))?|\\((?:[^()]|\\([^()]*\\))*\\))(?:[ \\t]*(?:&&|\\|\\|))?/\n              .source +\n            ')+') +\n          '|' +\n          /(?:else|endif)\\b/.source +\n          ')'\n      ),\n      alias: 'property',\n      inside: {\n        'directive-name': /^#\\w+/,\n        boolean: /\\b(?:false|true)\\b/,\n        number: /\\b\\d+(?:\\.\\d+)*\\b/,\n        operator: /!|&&|\\|\\||[<>]=?/,\n        punctuation: /[(),]/\n      }\n    },\n    literal: {\n      pattern:\n        /#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\\b/,\n      alias: 'constant'\n    },\n    'other-directive': {\n      pattern: /#\\w+\\b/,\n      alias: 'property'\n    },\n    attribute: {\n      pattern: /@\\w+/,\n      alias: 'atrule'\n    },\n    'function-definition': {\n      pattern: /(\\bfunc\\s+)\\w+/,\n      lookbehind: true,\n      alias: 'function'\n    },\n    label: {\n      // https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html#ID141\n      pattern:\n        /\\b(break|continue)\\s+\\w+|\\b[a-zA-Z_]\\w*(?=\\s*:\\s*(?:for|repeat|while)\\b)/,\n      lookbehind: true,\n      alias: 'important'\n    },\n    keyword:\n      /\\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    nil: {\n      pattern: /\\bnil\\b/,\n      alias: 'constant'\n    },\n    'short-argument': /\\$\\d+\\b/,\n    omit: {\n      pattern: /\\b_\\b/,\n      alias: 'keyword'\n    },\n    number:\n      /\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f0-9_]+(?:\\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b/i,\n    // A class name must start with an upper-case letter and be either 1 letter long or contain a lower-case letter.\n    'class-name': /\\b[A-Z](?:[A-Z_\\d]*[a-z]\\w*)?\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    constant: /\\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/,\n    // Operators are generic in Swift. Developers can even create new operators (e.g. +++).\n    // https://docs.swift.org/swift-book/ReferenceManual/zzSummaryOfTheGrammar.html#ID481\n    // This regex only supports ASCII operators.\n    operator: /[-+*/%=!<>&|^~?]+|\\.[.\\-+*/%=!<>&|^~?]+/,\n    punctuation: /[{}[\\]();,.:\\\\]/\n  }\n  Prism.languages.swift['string-literal'].forEach(function (rule) {\n    rule.inside['interpolation'].inside = Prism.languages.swift\n  })\n}\n","'use strict'\n\nmodule.exports = systemd\nsystemd.displayName = 'systemd'\nsystemd.aliases = []\nfunction systemd(Prism) {\n  // https://www.freedesktop.org/software/systemd/man/systemd.syntax.html\n  ;(function (Prism) {\n    var comment = {\n      pattern: /^[;#].*/m,\n      greedy: true\n    }\n    var quotesSource = /\"(?:[^\\r\\n\"\\\\]|\\\\(?:[^\\r]|\\r\\n?))*\"(?!\\S)/.source\n    Prism.languages.systemd = {\n      comment: comment,\n      section: {\n        pattern: /^\\[[^\\n\\r\\[\\]]*\\](?=[ \\t]*$)/m,\n        greedy: true,\n        inside: {\n          punctuation: /^\\[|\\]$/,\n          'section-name': {\n            pattern: /[\\s\\S]+/,\n            alias: 'selector'\n          }\n        }\n      },\n      key: {\n        pattern: /^[^\\s=]+(?=[ \\t]*=)/m,\n        greedy: true,\n        alias: 'attr-name'\n      },\n      value: {\n        // This pattern is quite complex because of two properties:\n        //  1) Quotes (strings) must be preceded by a space. Since we can't use lookbehinds, we have to \"resolve\"\n        //     the lookbehind. You will see this in the main loop where spaces are handled separately.\n        //  2) Line continuations.\n        //     After line continuations, empty lines and comments are ignored so we have to consume them.\n        pattern: RegExp(\n          /(=[ \\t]*(?!\\s))/.source + // the value either starts with quotes or not\n            '(?:' +\n            quotesSource +\n            '|(?=[^\"\\r\\n]))' + // main loop\n            '(?:' +\n            (/[^\\s\\\\]/.source + // handle spaces separately because of quotes\n              '|' +\n              '[ \\t]+(?:(?![ \\t\"])|' +\n              quotesSource +\n              ')' + // line continuation\n              '|' +\n              /\\\\[\\r\\n]+(?:[#;].*[\\r\\n]+)*(?![#;])/.source) +\n            ')*'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'attr-value',\n        inside: {\n          comment: comment,\n          quoted: {\n            pattern: RegExp(/(^|\\s)/.source + quotesSource),\n            lookbehind: true,\n            greedy: true\n          },\n          punctuation: /\\\\$/m,\n          boolean: {\n            pattern: /^(?:false|no|off|on|true|yes)$/,\n            greedy: true\n          }\n        }\n      },\n      punctuation: /=/\n    }\n  })(Prism)\n}\n","'use strict'\nvar refractorT4Templating = require('./t4-templating.js')\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = t4Cs\nt4Cs.displayName = 't4Cs'\nt4Cs.aliases = []\nfunction t4Cs(Prism) {\n  Prism.register(refractorT4Templating)\n  Prism.register(refractorCsharp)\n  Prism.languages.t4 = Prism.languages['t4-cs'] =\n    Prism.languages['t4-templating'].createT4('csharp')\n}\n","'use strict'\n\nmodule.exports = t4Templating\nt4Templating.displayName = 't4Templating'\nt4Templating.aliases = []\nfunction t4Templating(Prism) {\n  ;(function (Prism) {\n    function createBlock(prefix, inside, contentAlias) {\n      return {\n        pattern: RegExp('<#' + prefix + '[\\\\s\\\\S]*?#>'),\n        alias: 'block',\n        inside: {\n          delimiter: {\n            pattern: RegExp('^<#' + prefix + '|#>$'),\n            alias: 'important'\n          },\n          content: {\n            pattern: /[\\s\\S]+/,\n            inside: inside,\n            alias: contentAlias\n          }\n        }\n      }\n    }\n    function createT4(insideLang) {\n      var grammar = Prism.languages[insideLang]\n      var className = 'language-' + insideLang\n      return {\n        block: {\n          pattern: /<#[\\s\\S]+?#>/,\n          inside: {\n            directive: createBlock('@', {\n              'attr-value': {\n                pattern: /=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/,\n                inside: {\n                  punctuation: /^=|^[\"']|[\"']$/\n                }\n              },\n              keyword: /\\b\\w+(?=\\s)/,\n              'attr-name': /\\b\\w+/\n            }),\n            expression: createBlock('=', grammar, className),\n            'class-feature': createBlock('\\\\+', grammar, className),\n            standard: createBlock('', grammar, className)\n          }\n        }\n      }\n    }\n    Prism.languages['t4-templating'] = Object.defineProperty({}, 'createT4', {\n      value: createT4\n    })\n  })(Prism)\n}\n","'use strict'\nvar refractorT4Templating = require('./t4-templating.js')\nvar refractorVbnet = require('./vbnet.js')\nmodule.exports = t4Vb\nt4Vb.displayName = 't4Vb'\nt4Vb.aliases = []\nfunction t4Vb(Prism) {\n  Prism.register(refractorT4Templating)\n  Prism.register(refractorVbnet)\n  Prism.languages['t4-vb'] = Prism.languages['t4-templating'].createT4('vbnet')\n}\n","'use strict'\nvar refractorYaml = require('./yaml.js')\nmodule.exports = tap\ntap.displayName = 'tap'\ntap.aliases = []\nfunction tap(Prism) {\n  Prism.register(refractorYaml)\n  // https://en.wikipedia.org/wiki/Test_Anything_Protocol\n  Prism.languages.tap = {\n    fail: /not ok[^#{\\n\\r]*/,\n    pass: /ok[^#{\\n\\r]*/,\n    pragma: /pragma [+-][a-z]+/,\n    bailout: /bail out!.*/i,\n    version: /TAP version \\d+/i,\n    plan: /\\b\\d+\\.\\.\\d+(?: +#.*)?/,\n    subtest: {\n      pattern: /# Subtest(?:: .*)?/,\n      greedy: true\n    },\n    punctuation: /[{}]/,\n    directive: /#.*/,\n    yamlish: {\n      pattern: /(^[ \\t]*)---[\\s\\S]*?[\\r\\n][ \\t]*\\.\\.\\.$/m,\n      lookbehind: true,\n      inside: Prism.languages.yaml,\n      alias: 'language-yaml'\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = tcl\ntcl.displayName = 'tcl'\ntcl.aliases = []\nfunction tcl(Prism) {\n  Prism.languages.tcl = {\n    comment: {\n      pattern: /(^|[^\\\\])#.*/,\n      lookbehind: true\n    },\n    string: {\n      pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,\n      greedy: true\n    },\n    variable: [\n      {\n        pattern: /(\\$)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/,\n        lookbehind: true\n      },\n      {\n        pattern: /(\\$)\\{[^}]+\\}/,\n        lookbehind: true\n      },\n      {\n        pattern: /(^[\\t ]*set[ \\t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/m,\n        lookbehind: true\n      }\n    ],\n    function: {\n      pattern: /(^[\\t ]*proc[ \\t]+)\\S+/m,\n      lookbehind: true\n    },\n    builtin: [\n      {\n        pattern:\n          /(^[\\t ]*)(?:break|class|continue|error|eval|exit|for|foreach|if|proc|return|switch|while)\\b/m,\n        lookbehind: true\n      },\n      /\\b(?:else|elseif)\\b/\n    ],\n    scope: {\n      pattern: /(^[\\t ]*)(?:global|upvar|variable)\\b/m,\n      lookbehind: true,\n      alias: 'constant'\n    },\n    keyword: {\n      pattern:\n        /(^[\\t ]*|\\[)(?:Safe_Base|Tcl|after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|scan|seek|set|socket|source|split|string|subst|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|test|vars|wordBreak(?:After|Before))|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\\b/m,\n      lookbehind: true\n    },\n    operator:\n      /!=?|\\*\\*?|==|&&?|\\|\\|?|<[=<]?|>[=>]?|[-+~\\/%?^]|\\b(?:eq|in|ne|ni)\\b/,\n    punctuation: /[{}()\\[\\]]/\n  }\n}\n","'use strict'\n\nmodule.exports = textile\ntextile.displayName = 'textile'\ntextile.aliases = []\nfunction textile(Prism) {\n  ;(function (Prism) {\n    // We don't allow for pipes inside parentheses\n    // to not break table pattern |(. foo |). bar |\n    var modifierRegex = /\\([^|()\\n]+\\)|\\[[^\\]\\n]+\\]|\\{[^}\\n]+\\}/.source // Opening and closing parentheses which are not a modifier\n    // This pattern is necessary to prevent exponential backtracking\n    var parenthesesRegex = /\\)|\\((?![^|()\\n]+\\))/.source\n    /**\n     * @param {string} source\n     * @param {string} [flags]\n     */\n    function withModifier(source, flags) {\n      return RegExp(\n        source\n          .replace(/<MOD>/g, function () {\n            return '(?:' + modifierRegex + ')'\n          })\n          .replace(/<PAR>/g, function () {\n            return '(?:' + parenthesesRegex + ')'\n          }),\n        flags || ''\n      )\n    }\n    var modifierTokens = {\n      css: {\n        pattern: /\\{[^{}]+\\}/,\n        inside: {\n          rest: Prism.languages.css\n        }\n      },\n      'class-id': {\n        pattern: /(\\()[^()]+(?=\\))/,\n        lookbehind: true,\n        alias: 'attr-value'\n      },\n      lang: {\n        pattern: /(\\[)[^\\[\\]]+(?=\\])/,\n        lookbehind: true,\n        alias: 'attr-value'\n      },\n      // Anything else is punctuation (the first pattern is for row/col spans inside tables)\n      punctuation: /[\\\\\\/]\\d+|\\S/\n    }\n    var textile = (Prism.languages.textile = Prism.languages.extend('markup', {\n      phrase: {\n        pattern: /(^|\\r|\\n)\\S[\\s\\S]*?(?=$|\\r?\\n\\r?\\n|\\r\\r)/,\n        lookbehind: true,\n        inside: {\n          // h1. Header 1\n          'block-tag': {\n            pattern: withModifier(/^[a-z]\\w*(?:<MOD>|<PAR>|[<>=])*\\./.source),\n            inside: {\n              modifier: {\n                pattern: withModifier(\n                  /(^[a-z]\\w*)(?:<MOD>|<PAR>|[<>=])+(?=\\.)/.source\n                ),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              tag: /^[a-z]\\w*/,\n              punctuation: /\\.$/\n            }\n          },\n          // # List item\n          // * List item\n          list: {\n            pattern: withModifier(/^[*#]+<MOD>*\\s+\\S.*/.source, 'm'),\n            inside: {\n              modifier: {\n                pattern: withModifier(/(^[*#]+)<MOD>+/.source),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              punctuation: /^[*#]+/\n            }\n          },\n          // | cell | cell | cell |\n          table: {\n            // Modifiers can be applied to the row: {color:red}.|1|2|3|\n            // or the cell: |{color:red}.1|2|3|\n            pattern: withModifier(\n              /^(?:(?:<MOD>|<PAR>|[<>=^~])+\\.\\s*)?(?:\\|(?:(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.|(?!(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.))[^|]*)+\\|/\n                .source,\n              'm'\n            ),\n            inside: {\n              modifier: {\n                // Modifiers for rows after the first one are\n                // preceded by a pipe and a line feed\n                pattern: withModifier(\n                  /(^|\\|(?:\\r?\\n|\\r)?)(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+(?=\\.)/\n                    .source\n                ),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              punctuation: /\\||^\\./\n            }\n          },\n          inline: {\n            // eslint-disable-next-line regexp/no-super-linear-backtracking\n            pattern: withModifier(\n              /(^|[^a-zA-Z\\d])(\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>*.+?\\2(?![a-zA-Z\\d])/\n                .source\n            ),\n            lookbehind: true,\n            inside: {\n              // Note: superscripts and subscripts are not handled specifically\n              // *bold*, **bold**\n              bold: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^(\\*\\*?)<MOD>*).+?(?=\\2)/.source),\n                lookbehind: true\n              },\n              // _italic_, __italic__\n              italic: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^(__?)<MOD>*).+?(?=\\2)/.source),\n                lookbehind: true\n              },\n              // ??cite??\n              cite: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^\\?\\?<MOD>*).+?(?=\\?\\?)/.source),\n                lookbehind: true,\n                alias: 'string'\n              },\n              // @code@\n              code: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^@<MOD>*).+?(?=@)/.source),\n                lookbehind: true,\n                alias: 'keyword'\n              },\n              // +inserted+\n              inserted: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^\\+<MOD>*).+?(?=\\+)/.source),\n                lookbehind: true\n              },\n              // -deleted-\n              deleted: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^-<MOD>*).+?(?=-)/.source),\n                lookbehind: true\n              },\n              // %span%\n              span: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^%<MOD>*).+?(?=%)/.source),\n                lookbehind: true\n              },\n              modifier: {\n                pattern: withModifier(\n                  /(^\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>+/.source\n                ),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              punctuation: /[*_%?@+\\-^~]+/\n            }\n          },\n          // [alias]http://example.com\n          'link-ref': {\n            pattern: /^\\[[^\\]]+\\]\\S+$/m,\n            inside: {\n              string: {\n                pattern: /(^\\[)[^\\]]+(?=\\])/,\n                lookbehind: true\n              },\n              url: {\n                pattern: /(^\\])\\S+$/,\n                lookbehind: true\n              },\n              punctuation: /[\\[\\]]/\n            }\n          },\n          // \"text\":http://example.com\n          // \"text\":link-ref\n          link: {\n            // eslint-disable-next-line regexp/no-super-linear-backtracking\n            pattern: withModifier(\n              /\"<MOD>*[^\"]+\":.+?(?=[^\\w/]?(?:\\s|$))/.source\n            ),\n            inside: {\n              text: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^\"<MOD>*)[^\"]+(?=\")/.source),\n                lookbehind: true\n              },\n              modifier: {\n                pattern: withModifier(/(^\")<MOD>+/.source),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              url: {\n                pattern: /(:).+/,\n                lookbehind: true\n              },\n              punctuation: /[\":]/\n            }\n          },\n          // !image.jpg!\n          // !image.jpg(Title)!:http://example.com\n          image: {\n            pattern: withModifier(\n              /!(?:<MOD>|<PAR>|[<>=])*(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?!(?::.+?(?=[^\\w/]?(?:\\s|$)))?/\n                .source\n            ),\n            inside: {\n              source: {\n                pattern: withModifier(\n                  /(^!(?:<MOD>|<PAR>|[<>=])*)(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?(?=!)/\n                    .source\n                ),\n                lookbehind: true,\n                alias: 'url'\n              },\n              modifier: {\n                pattern: withModifier(/(^!)(?:<MOD>|<PAR>|[<>=])+/.source),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              url: {\n                pattern: /(:).+/,\n                lookbehind: true\n              },\n              punctuation: /[!:]/\n            }\n          },\n          // Footnote[1]\n          footnote: {\n            pattern: /\\b\\[\\d+\\]/,\n            alias: 'comment',\n            inside: {\n              punctuation: /\\[|\\]/\n            }\n          },\n          // CSS(Cascading Style Sheet)\n          acronym: {\n            pattern: /\\b[A-Z\\d]+\\([^)]+\\)/,\n            inside: {\n              comment: {\n                pattern: /(\\()[^()]+(?=\\))/,\n                lookbehind: true\n              },\n              punctuation: /[()]/\n            }\n          },\n          // Prism(C)\n          mark: {\n            pattern: /\\b\\((?:C|R|TM)\\)/,\n            alias: 'comment',\n            inside: {\n              punctuation: /[()]/\n            }\n          }\n        }\n      }\n    }))\n    var phraseInside = textile['phrase'].inside\n    var nestedPatterns = {\n      inline: phraseInside['inline'],\n      link: phraseInside['link'],\n      image: phraseInside['image'],\n      footnote: phraseInside['footnote'],\n      acronym: phraseInside['acronym'],\n      mark: phraseInside['mark']\n    } // Only allow alpha-numeric HTML tags, not XML tags\n    textile.tag.pattern =\n      /<\\/?(?!\\d)[a-z0-9]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i // Allow some nesting\n    var phraseInlineInside = phraseInside['inline'].inside\n    phraseInlineInside['bold'].inside = nestedPatterns\n    phraseInlineInside['italic'].inside = nestedPatterns\n    phraseInlineInside['inserted'].inside = nestedPatterns\n    phraseInlineInside['deleted'].inside = nestedPatterns\n    phraseInlineInside['span'].inside = nestedPatterns // Allow some styles inside table cells\n    var phraseTableInside = phraseInside['table'].inside\n    phraseTableInside['inline'] = nestedPatterns['inline']\n    phraseTableInside['link'] = nestedPatterns['link']\n    phraseTableInside['image'] = nestedPatterns['image']\n    phraseTableInside['footnote'] = nestedPatterns['footnote']\n    phraseTableInside['acronym'] = nestedPatterns['acronym']\n    phraseTableInside['mark'] = nestedPatterns['mark']\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = toml\ntoml.displayName = 'toml'\ntoml.aliases = []\nfunction toml(Prism) {\n  ;(function (Prism) {\n    var key = /(?:[\\w-]+|'[^'\\n\\r]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/.source\n    /**\n     * @param {string} pattern\n     */\n    function insertKey(pattern) {\n      return pattern.replace(/__/g, function () {\n        return key\n      })\n    }\n    Prism.languages.toml = {\n      comment: {\n        pattern: /#.*/,\n        greedy: true\n      },\n      table: {\n        pattern: RegExp(\n          insertKey(\n            /(^[\\t ]*\\[\\s*(?:\\[\\s*)?)__(?:\\s*\\.\\s*__)*(?=\\s*\\])/.source\n          ),\n          'm'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'class-name'\n      },\n      key: {\n        pattern: RegExp(\n          insertKey(/(^[\\t ]*|[{,]\\s*)__(?:\\s*\\.\\s*__)*(?=\\s*=)/.source),\n          'm'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'property'\n      },\n      string: {\n        pattern:\n          /\"\"\"(?:\\\\[\\s\\S]|[^\\\\])*?\"\"\"|'''[\\s\\S]*?'''|'[^'\\n\\r]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n        greedy: true\n      },\n      date: [\n        {\n          // Offset Date-Time, Local Date-Time, Local Date\n          pattern:\n            /\\b\\d{4}-\\d{2}-\\d{2}(?:[T\\s]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?)?\\b/i,\n          alias: 'number'\n        },\n        {\n          // Local Time\n          pattern: /\\b\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?\\b/,\n          alias: 'number'\n        }\n      ],\n      number:\n        /(?:\\b0(?:x[\\da-zA-Z]+(?:_[\\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\\b|[-+]?\\b\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?\\b|[-+]?\\b(?:inf|nan)\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      punctuation: /[.,=[\\]{}]/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = tremor\ntremor.displayName = 'tremor'\ntremor.aliases = []\nfunction tremor(Prism) {\n  ;(function (Prism) {\n    Prism.languages.tremor = {\n      comment: {\n        pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n        lookbehind: true\n      },\n      'interpolated-string': null,\n      // see below\n      extractor: {\n        pattern: /\\b[a-z_]\\w*\\|(?:[^\\r\\n\\\\|]|\\\\(?:\\r\\n|[\\s\\S]))*\\|/i,\n        greedy: true,\n        inside: {\n          regex: {\n            pattern: /(^re)\\|[\\s\\S]+/,\n            lookbehind: true\n          },\n          function: /^\\w+/,\n          value: /\\|[\\s\\S]+/\n        }\n      },\n      identifier: {\n        pattern: /`[^`]*`/,\n        greedy: true\n      },\n      function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())\\b/,\n      keyword:\n        /\\b(?:args|as|by|case|config|connect|connector|const|copy|create|default|define|deploy|drop|each|emit|end|erase|event|flow|fn|for|from|group|having|insert|into|intrinsic|let|links|match|merge|mod|move|of|operator|patch|pipeline|recur|script|select|set|sliding|state|stream|to|tumbling|update|use|when|where|window|with)\\b/,\n      boolean: /\\b(?:false|null|true)\\b/i,\n      number:\n        /\\b(?:0b[01_]*|0x[0-9a-fA-F_]*|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[Ee][+-]?[\\d_]+)?)\\b/,\n      'pattern-punctuation': {\n        pattern: /%(?=[({[])/,\n        alias: 'punctuation'\n      },\n      operator:\n        /[-+*\\/%~!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?>?=?|(?:absent|and|not|or|present|xor)\\b/,\n      punctuation: /::|[;\\[\\]()\\{\\},.:]/\n    }\n    var interpolationPattern =\n      /#\\{(?:[^\"{}]|\\{[^{}]*\\}|\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\")*\\}/.source\n    Prism.languages.tremor['interpolated-string'] = {\n      pattern: RegExp(\n        /(^|[^\\\\])/.source +\n          '(?:' +\n          '\"\"\"(?:' +\n          /[^\"\\\\#]|\\\\[\\s\\S]|\"(?!\"\")|#(?!\\{)/.source +\n          '|' +\n          interpolationPattern +\n          ')*\"\"\"' +\n          '|' +\n          '\"(?:' +\n          /[^\"\\\\\\r\\n#]|\\\\(?:\\r\\n|[\\s\\S])|#(?!\\{)/.source +\n          '|' +\n          interpolationPattern +\n          ')*\"' +\n          ')'\n      ),\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: RegExp(interpolationPattern),\n          inside: {\n            punctuation: /^#\\{|\\}$/,\n            expression: {\n              pattern: /[\\s\\S]+/,\n              inside: Prism.languages.tremor\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n    Prism.languages.troy = Prism.languages['tremor']\n    Prism.languages.trickle = Prism.languages['tremor']\n  })(Prism)\n}\n","'use strict'\nvar refractorJsx = require('./jsx.js')\nvar refractorTypescript = require('./typescript.js')\nmodule.exports = tsx\ntsx.displayName = 'tsx'\ntsx.aliases = []\nfunction tsx(Prism) {\n  Prism.register(refractorJsx)\n  Prism.register(refractorTypescript)\n  ;(function (Prism) {\n    var typescript = Prism.util.clone(Prism.languages.typescript)\n    Prism.languages.tsx = Prism.languages.extend('jsx', typescript) // doesn't work with TS because TS is too complex\n    delete Prism.languages.tsx['parameter']\n    delete Prism.languages.tsx['literal-property'] // This will prevent collisions between TSX tags and TS generic types.\n    // Idea by https://github.com/karlhorky\n    // Discussion: https://github.com/PrismJS/prism/issues/2594#issuecomment-710666928\n    var tag = Prism.languages.tsx.tag\n    tag.pattern = RegExp(\n      /(^|[^\\w$]|(?=<\\/))/.source + '(?:' + tag.pattern.source + ')',\n      tag.pattern.flags\n    )\n    tag.lookbehind = true\n  })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = tt2\ntt2.displayName = 'tt2'\ntt2.aliases = []\nfunction tt2(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    Prism.languages.tt2 = Prism.languages.extend('clike', {\n      comment: /#.*|\\[%#[\\s\\S]*?%\\]/,\n      keyword:\n        /\\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|SWITCH|TAGS|THROW|TRY|UNLESS|USE|WHILE|WRAPPER)\\b/,\n      punctuation: /[[\\]{},()]/\n    })\n    Prism.languages.insertBefore('tt2', 'number', {\n      operator: /=[>=]?|!=?|<=?|>=?|&&|\\|\\|?|\\b(?:and|not|or)\\b/,\n      variable: {\n        pattern: /\\b[a-z]\\w*(?:\\s*\\.\\s*(?:\\d+|\\$?[a-z]\\w*))*\\b/i\n      }\n    })\n    Prism.languages.insertBefore('tt2', 'keyword', {\n      delimiter: {\n        pattern: /^(?:\\[%|%%)-?|-?%\\]$/,\n        alias: 'punctuation'\n      }\n    })\n    Prism.languages.insertBefore('tt2', 'string', {\n      'single-quoted-string': {\n        pattern: /'[^\\\\']*(?:\\\\[\\s\\S][^\\\\']*)*'/,\n        greedy: true,\n        alias: 'string'\n      },\n      'double-quoted-string': {\n        pattern: /\"[^\\\\\"]*(?:\\\\[\\s\\S][^\\\\\"]*)*\"/,\n        greedy: true,\n        alias: 'string',\n        inside: {\n          variable: {\n            pattern: /\\$(?:[a-z]\\w*(?:\\.(?:\\d+|\\$?[a-z]\\w*))*)/i\n          }\n        }\n      }\n    }) // The different types of TT2 strings \"replace\" the C-like standard string\n    delete Prism.languages.tt2.string\n    Prism.hooks.add('before-tokenize', function (env) {\n      var tt2Pattern = /\\[%[\\s\\S]+?%\\]/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'tt2',\n        tt2Pattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'tt2')\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = turtle\nturtle.displayName = 'turtle'\nturtle.aliases = []\nfunction turtle(Prism) {\n  Prism.languages.turtle = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    'multiline-string': {\n      pattern:\n        /\"\"\"(?:(?:\"\"?)?(?:[^\"\\\\]|\\\\.))*\"\"\"|'''(?:(?:''?)?(?:[^'\\\\]|\\\\.))*'''/,\n      greedy: true,\n      alias: 'string',\n      inside: {\n        comment: /#.*/\n      }\n    },\n    string: {\n      pattern: /\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*'/,\n      greedy: true\n    },\n    url: {\n      pattern:\n        /<(?:[^\\x00-\\x20<>\"{}|^`\\\\]|\\\\(?:u[\\da-fA-F]{4}|U[\\da-fA-F]{8}))*>/,\n      greedy: true,\n      inside: {\n        punctuation: /[<>]/\n      }\n    },\n    function: {\n      pattern:\n        /(?:(?![-.\\d\\xB7])[-.\\w\\xB7\\xC0-\\uFFFD]+)?:(?:(?![-.])(?:[-.:\\w\\xC0-\\uFFFD]|%[\\da-f]{2}|\\\\.)+)?/i,\n      inside: {\n        'local-name': {\n          pattern: /([^:]*:)[\\s\\S]+/,\n          lookbehind: true\n        },\n        prefix: {\n          pattern: /[\\s\\S]+/,\n          inside: {\n            punctuation: /:/\n          }\n        }\n      }\n    },\n    number: /[+-]?\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n    punctuation: /[{}.,;()[\\]]|\\^\\^/,\n    boolean: /\\b(?:false|true)\\b/,\n    keyword: [/(?:\\ba|@prefix|@base)\\b|=/, /\\b(?:base|graph|prefix)\\b/i],\n    tag: {\n      pattern: /@[a-z]+(?:-[a-z\\d]+)*/i,\n      inside: {\n        punctuation: /@/\n      }\n    }\n  }\n  Prism.languages.trig = Prism.languages['turtle']\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = twig\ntwig.displayName = 'twig'\ntwig.aliases = []\nfunction twig(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  Prism.languages.twig = {\n    comment: /^\\{#[\\s\\S]*?#\\}$/,\n    'tag-name': {\n      pattern: /(^\\{%-?\\s*)\\w+/,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    delimiter: {\n      pattern: /^\\{[{%]-?|-?[%}]\\}$/,\n      alias: 'punctuation'\n    },\n    string: {\n      pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      inside: {\n        punctuation: /^['\"]|['\"]$/\n      }\n    },\n    keyword: /\\b(?:even|if|odd)\\b/,\n    boolean: /\\b(?:false|null|true)\\b/,\n    number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n    operator: [\n      {\n        pattern:\n          /(\\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,\n        lookbehind: true\n      },\n      /[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/\n    ],\n    punctuation: /[()\\[\\]{}:.,]/\n  }\n  Prism.hooks.add('before-tokenize', function (env) {\n    if (env.language !== 'twig') {\n      return\n    }\n    var pattern = /\\{(?:#[\\s\\S]*?#|%[\\s\\S]*?%|\\{[\\s\\S]*?\\})\\}/g\n    Prism.languages['markup-templating'].buildPlaceholders(env, 'twig', pattern)\n  })\n  Prism.hooks.add('after-tokenize', function (env) {\n    Prism.languages['markup-templating'].tokenizePlaceholders(env, 'twig')\n  })\n}\n","'use strict'\n\nmodule.exports = typescript\ntypescript.displayName = 'typescript'\ntypescript.aliases = ['ts']\nfunction typescript(Prism) {\n  ;(function (Prism) {\n    Prism.languages.typescript = Prism.languages.extend('javascript', {\n      'class-name': {\n        pattern:\n          /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,\n        lookbehind: true,\n        greedy: true,\n        inside: null // see below\n      },\n      builtin:\n        /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/\n    }) // The keywords TypeScript adds to JavaScript\n    Prism.languages.typescript.keyword.push(\n      /\\b(?:abstract|declare|is|keyof|readonly|require)\\b/, // keywords that have to be followed by an identifier\n      /\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/, // This is for `import type *, {}`\n      /\\btype\\b(?=\\s*(?:[\\{*]|$))/\n    ) // doesn't work with TS because TS is too complex\n    delete Prism.languages.typescript['parameter']\n    delete Prism.languages.typescript['literal-property'] // a version of typescript specifically for highlighting types\n    var typeInside = Prism.languages.extend('typescript', {})\n    delete typeInside['class-name']\n    Prism.languages.typescript['class-name'].inside = typeInside\n    Prism.languages.insertBefore('typescript', 'function', {\n      decorator: {\n        pattern: /@[$\\w\\xA0-\\uFFFF]+/,\n        inside: {\n          at: {\n            pattern: /^@/,\n            alias: 'operator'\n          },\n          function: /^[\\s\\S]+/\n        }\n      },\n      'generic-function': {\n        // e.g. foo<T extends \"bar\" | \"baz\">( ...\n        pattern:\n          /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/,\n        greedy: true,\n        inside: {\n          function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/,\n          generic: {\n            pattern: /<[\\s\\S]+/,\n            // everything after the first <\n            alias: 'class-name',\n            inside: typeInside\n          }\n        }\n      }\n    })\n    Prism.languages.ts = Prism.languages.typescript\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = typoscript\ntyposcript.displayName = 'typoscript'\ntyposcript.aliases = ['tsconfig']\nfunction typoscript(Prism) {\n  ;(function (Prism) {\n    var keywords =\n      /\\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\\b/\n    Prism.languages.typoscript = {\n      comment: [\n        {\n          // multiline comments /* */\n          pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n          lookbehind: true\n        },\n        {\n          // double-slash comments - ignored when backslashes or colon is found in front\n          // also ignored whenever directly after an equal-sign, because it would probably be an url without protocol\n          pattern: /(^|[^\\\\:= \\t]|(?:^|[^= \\t])[ \\t]+)\\/\\/.*/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          // hash comments - ignored when leading quote is found for hex colors in strings\n          pattern: /(^|[^\"'])#.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      function: [\n        {\n          // old include style\n          pattern:\n            /<INCLUDE_TYPOSCRIPT:\\s*source\\s*=\\s*(?:\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')\\s*>/,\n          inside: {\n            string: {\n              pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n              inside: {\n                keyword: keywords\n              }\n            },\n            keyword: {\n              pattern: /INCLUDE_TYPOSCRIPT/\n            }\n          }\n        },\n        {\n          // new include style\n          pattern: /@import\\s*(?:\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')/,\n          inside: {\n            string: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/\n          }\n        }\n      ],\n      string: {\n        pattern: /^([^=]*=[< ]?)(?:(?!\\]\\n).)*/,\n        lookbehind: true,\n        inside: {\n          function: /\\{\\$.*\\}/,\n          // constants include\n          keyword: keywords,\n          number: /^\\d+$/,\n          punctuation: /[,|:]/\n        }\n      },\n      keyword: keywords,\n      number: {\n        // special highlighting for indexes of arrays in tags\n        pattern: /\\b\\d+\\s*[.{=]/,\n        inside: {\n          operator: /[.{=]/\n        }\n      },\n      tag: {\n        pattern: /\\.?[-\\w\\\\]+\\.?/,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      punctuation: /[{}[\\];(),.:|]/,\n      operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/\n    }\n    Prism.languages.tsconfig = Prism.languages.typoscript\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = unrealscript\nunrealscript.displayName = 'unrealscript'\nunrealscript.aliases = ['uc', 'uscript']\nfunction unrealscript(Prism) {\n  Prism.languages.unrealscript = {\n    comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    category: {\n      pattern:\n        /(\\b(?:(?:autoexpand|hide|show)categories|var)\\s*\\()[^()]+(?=\\))/,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property'\n    },\n    metadata: {\n      pattern: /(\\w\\s*)<\\s*\\w+\\s*=[^<>|=\\r\\n]+(?:\\|\\s*\\w+\\s*=[^<>|=\\r\\n]+)*>/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        property: /\\b\\w+(?=\\s*=)/,\n        operator: /=/,\n        punctuation: /[<>|]/\n      }\n    },\n    macro: {\n      pattern: /`\\w+/,\n      alias: 'property'\n    },\n    'class-name': {\n      pattern:\n        /(\\b(?:class|enum|extends|interface|state(?:\\(\\))?|struct|within)\\s+)\\w+/,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    boolean: /\\b(?:false|true)\\b/,\n    number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n    // https://docs.unrealengine.com/udk/Three/UnrealScriptExpressions.html\n    operator:\n      />>|<<|--|\\+\\+|\\*\\*|[-+*/~!=<>$@]=?|&&?|\\|\\|?|\\^\\^?|[?:%]|\\b(?:ClockwiseFrom|Cross|Dot)\\b/,\n    punctuation: /[()[\\]{};,.]/\n  }\n  Prism.languages.uc = Prism.languages.uscript = Prism.languages.unrealscript\n}\n","'use strict'\n\nmodule.exports = uorazor\nuorazor.displayName = 'uorazor'\nuorazor.aliases = []\nfunction uorazor(Prism) {\n  Prism.languages.uorazor = {\n    'comment-hash': {\n      pattern: /#.*/,\n      alias: 'comment',\n      greedy: true\n    },\n    'comment-slash': {\n      pattern: /\\/\\/.*/,\n      alias: 'comment',\n      greedy: true\n    },\n    string: {\n      pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      inside: {\n        punctuation: /^['\"]|['\"]$/\n      },\n      greedy: true\n    },\n    'source-layers': {\n      pattern:\n        /\\b(?:arms|backpack|blue|bracelet|cancel|clear|cloak|criminal|earrings|enemy|facialhair|friend|friendly|gloves|gray|grey|ground|hair|head|innerlegs|innertorso|innocent|lefthand|middletorso|murderer|neck|nonfriendly|onehandedsecondary|outerlegs|outertorso|pants|red|righthand|ring|self|shirt|shoes|talisman|waist)\\b/i,\n      alias: 'function'\n    },\n    'source-commands': {\n      pattern:\n        /\\b(?:alliance|attack|cast|clearall|clearignore|clearjournal|clearlist|clearsysmsg|createlist|createtimer|dclick|dclicktype|dclickvar|dress|dressconfig|drop|droprelloc|emote|getlabel|guild|gumpclose|gumpresponse|hotkey|ignore|lasttarget|lift|lifttype|menu|menuresponse|msg|org|organize|organizer|overhead|pause|poplist|potion|promptresponse|pushlist|removelist|removetimer|rename|restock|say|scav|scavenger|script|setability|setlasttarget|setskill|settimer|setvar|sysmsg|target|targetloc|targetrelloc|targettype|undress|unignore|unsetvar|useobject|useonce|useskill|usetype|virtue|wait|waitforgump|waitformenu|waitforprompt|waitforstat|waitforsysmsg|waitfortarget|walk|wfsysmsg|wft|whisper|yell)\\b/,\n      alias: 'function'\n    },\n    'tag-name': {\n      pattern: /(^\\{%-?\\s*)\\w+/,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    delimiter: {\n      pattern: /^\\{[{%]-?|-?[%}]\\}$/,\n      alias: 'punctuation'\n    },\n    function:\n      /\\b(?:atlist|close|closest|count|counter|counttype|dead|dex|diffhits|diffmana|diffstam|diffweight|find|findbuff|finddebuff|findlayer|findtype|findtypelist|followers|gumpexists|hidden|hits|hp|hue|human|humanoid|ingump|inlist|insysmessage|insysmsg|int|invul|lhandempty|list|listexists|mana|maxhits|maxhp|maxmana|maxstam|maxweight|monster|mounted|name|next|noto|paralyzed|poisoned|position|prev|previous|queued|rand|random|rhandempty|skill|stam|str|targetexists|timer|timerexists|varexist|warmode|weight)\\b/,\n    keyword:\n      /\\b(?:and|as|break|continue|else|elseif|endfor|endif|endwhile|for|if|loop|not|or|replay|stop|while)\\b/,\n    boolean: /\\b(?:false|null|true)\\b/,\n    number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n    operator: [\n      {\n        pattern:\n          /(\\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,\n        lookbehind: true\n      },\n      /[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/\n    ],\n    punctuation: /[()\\[\\]{}:.,]/\n  }\n}\n","'use strict'\n\nmodule.exports = uri\nuri.displayName = 'uri'\nuri.aliases = ['url']\nfunction uri(Prism) {\n  // https://tools.ietf.org/html/rfc3986#appendix-A\n  Prism.languages.uri = {\n    scheme: {\n      pattern: /^[a-z][a-z0-9+.-]*:/im,\n      greedy: true,\n      inside: {\n        'scheme-delimiter': /:$/\n      }\n    },\n    fragment: {\n      pattern: /#[\\w\\-.~!$&'()*+,;=%:@/?]*/,\n      inside: {\n        'fragment-delimiter': /^#/\n      }\n    },\n    query: {\n      pattern: /\\?[\\w\\-.~!$&'()*+,;=%:@/?]*/,\n      inside: {\n        'query-delimiter': {\n          pattern: /^\\?/,\n          greedy: true\n        },\n        'pair-delimiter': /[&;]/,\n        pair: {\n          pattern: /^[^=][\\s\\S]*/,\n          inside: {\n            key: /^[^=]+/,\n            value: {\n              pattern: /(^=)[\\s\\S]+/,\n              lookbehind: true\n            }\n          }\n        }\n      }\n    },\n    authority: {\n      pattern: RegExp(\n        /^\\/\\//.source + // [ userinfo \"@\" ]\n          /(?:[\\w\\-.~!$&'()*+,;=%:]*@)?/.source + // host\n          ('(?:' + // IP-literal\n            /\\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\\.[\\w\\-.~!$&'()*+,;=]+)\\]/\n              .source +\n            '|' + // IPv4address or registered name\n            /[\\w\\-.~!$&'()*+,;=%]*/.source +\n            ')') + // [ \":\" port ]\n          /(?::\\d*)?/.source,\n        'm'\n      ),\n      inside: {\n        'authority-delimiter': /^\\/\\//,\n        'user-info-segment': {\n          pattern: /^[\\w\\-.~!$&'()*+,;=%:]*@/,\n          inside: {\n            'user-info-delimiter': /@$/,\n            'user-info': /^[\\w\\-.~!$&'()*+,;=%:]+/\n          }\n        },\n        'port-segment': {\n          pattern: /:\\d*$/,\n          inside: {\n            'port-delimiter': /^:/,\n            port: /^\\d+/\n          }\n        },\n        host: {\n          pattern: /[\\s\\S]+/,\n          inside: {\n            'ip-literal': {\n              pattern: /^\\[[\\s\\S]+\\]$/,\n              inside: {\n                'ip-literal-delimiter': /^\\[|\\]$/,\n                'ipv-future': /^v[\\s\\S]+/,\n                'ipv6-address': /^[\\s\\S]+/\n              }\n            },\n            'ipv4-address':\n              /^(?:(?:[03-9]\\d?|[12]\\d{0,2})\\.){3}(?:[03-9]\\d?|[12]\\d{0,2})$/\n          }\n        }\n      }\n    },\n    path: {\n      pattern: /^[\\w\\-.~!$&'()*+,;=%:@/]+/m,\n      inside: {\n        'path-separator': /\\//\n      }\n    }\n  }\n  Prism.languages.url = Prism.languages.uri\n}\n","'use strict'\n\nmodule.exports = v\nv.displayName = 'v'\nv.aliases = []\nfunction v(Prism) {\n  ;(function (Prism) {\n    var interpolationExpr = {\n      pattern: /[\\s\\S]+/,\n      inside: null\n    }\n    Prism.languages.v = Prism.languages.extend('clike', {\n      string: {\n        pattern: /r?([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n        alias: 'quoted-string',\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern:\n              /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\{[^{}]*\\}|\\w+(?:\\.\\w+(?:\\([^\\(\\)]*\\))?|\\[[^\\[\\]]+\\])*)/,\n            lookbehind: true,\n            inside: {\n              'interpolation-variable': {\n                pattern: /^\\$\\w[\\s\\S]*$/,\n                alias: 'variable'\n              },\n              'interpolation-punctuation': {\n                pattern: /^\\$\\{|\\}$/,\n                alias: 'punctuation'\n              },\n              'interpolation-expression': interpolationExpr\n            }\n          }\n        }\n      },\n      'class-name': {\n        pattern: /(\\b(?:enum|interface|struct|type)\\s+)(?:C\\.)?\\w+/,\n        lookbehind: true\n      },\n      keyword:\n        /(?:\\b(?:__global|as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\\$(?:else|for|if)|#(?:flag|include))\\b/,\n      number:\n        /\\b(?:0x[a-f\\d]+(?:_[a-f\\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?)\\b/i,\n      operator:\n        /~|\\?|[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\.?/,\n      builtin:\n        /\\b(?:any(?:_float|_int)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|64|128|nt)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\\b/\n    })\n    interpolationExpr.inside = Prism.languages.v\n    Prism.languages.insertBefore('v', 'string', {\n      char: {\n        pattern: /`(?:\\\\`|\\\\?[^`]{1,2})`/,\n        // using {1,2} instead of `u` flag for compatibility\n        alias: 'rune'\n      }\n    })\n    Prism.languages.insertBefore('v', 'operator', {\n      attribute: {\n        pattern:\n          /(^[\\t ]*)\\[(?:deprecated|direct_array_access|flag|inline|live|ref_only|typedef|unsafe_fn|windows_stdcall)\\]/m,\n        lookbehind: true,\n        alias: 'annotation',\n        inside: {\n          punctuation: /[\\[\\]]/,\n          keyword: /\\w+/\n        }\n      },\n      generic: {\n        pattern: /<\\w+>(?=\\s*[\\)\\{])/,\n        inside: {\n          punctuation: /[<>]/,\n          'class-name': /\\w+/\n        }\n      }\n    })\n    Prism.languages.insertBefore('v', 'function', {\n      'generic-function': {\n        // e.g. foo<T>( ...\n        pattern: /\\b\\w+\\s*<\\w+>(?=\\()/,\n        inside: {\n          function: /^\\w+/,\n          generic: {\n            pattern: /<\\w+>/,\n            inside: Prism.languages.v.generic.inside\n          }\n        }\n      }\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = vala\nvala.displayName = 'vala'\nvala.aliases = []\nfunction vala(Prism) {\n  Prism.languages.vala = Prism.languages.extend('clike', {\n    // Classes copied from prism-csharp\n    'class-name': [\n      {\n        // (Foo bar, Bar baz)\n        pattern: /\\b[A-Z]\\w*(?:\\.\\w+)*\\b(?=(?:\\?\\s+|\\*?\\s+\\*?)\\w)/,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      {\n        // [Foo]\n        pattern: /(\\[)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      {\n        // class Foo : Bar\n        pattern:\n          /(\\b(?:class|interface)\\s+[A-Z]\\w*(?:\\.\\w+)*\\s*:\\s*)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      {\n        // class Foo\n        pattern:\n          /((?:\\b(?:class|enum|interface|new|struct)\\s+)|(?:catch\\s+\\())[A-Z]\\w*(?:\\.\\w+)*\\b/,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      }\n    ],\n    keyword:\n      /\\b(?:abstract|as|assert|async|base|bool|break|case|catch|char|class|const|construct|continue|default|delegate|delete|do|double|dynamic|else|ensures|enum|errordomain|extern|finally|float|for|foreach|get|if|in|inline|int|int16|int32|int64|int8|interface|internal|is|lock|long|namespace|new|null|out|override|owned|params|private|protected|public|ref|requires|return|set|short|signal|sizeof|size_t|ssize_t|static|string|struct|switch|this|throw|throws|try|typeof|uchar|uint|uint16|uint32|uint64|uint8|ulong|unichar|unowned|ushort|using|value|var|virtual|void|volatile|weak|while|yield)\\b/i,\n    function: /\\b\\w+(?=\\s*\\()/,\n    number:\n      /(?:\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)(?:f|u?l?)?/i,\n    operator:\n      /\\+\\+|--|&&|\\|\\||<<=?|>>=?|=>|->|~|[+\\-*\\/%&^|=!<>]=?|\\?\\??|\\.\\.\\./,\n    punctuation: /[{}[\\];(),.:]/,\n    constant: /\\b[A-Z0-9_]+\\b/\n  })\n  Prism.languages.insertBefore('vala', 'string', {\n    'raw-string': {\n      pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n      greedy: true,\n      alias: 'string'\n    },\n    'template-string': {\n      pattern: /@\"[\\s\\S]*?\"/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /\\$(?:\\([^)]*\\)|[a-zA-Z]\\w*)/,\n          inside: {\n            delimiter: {\n              pattern: /^\\$\\(?|\\)$/,\n              alias: 'punctuation'\n            },\n            rest: Prism.languages.vala\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n  })\n  Prism.languages.insertBefore('vala', 'keyword', {\n    regex: {\n      pattern:\n        /\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[imsx]{0,4}(?=\\s*(?:$|[\\r\\n,.;})\\]]))/,\n      greedy: true,\n      inside: {\n        'regex-source': {\n          pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n          lookbehind: true,\n          alias: 'language-regex',\n          inside: Prism.languages.regex\n        },\n        'regex-delimiter': /^\\//,\n        'regex-flags': /^[a-z]+$/\n      }\n    }\n  })\n}\n","'use strict'\nvar refractorBasic = require('./basic.js')\nmodule.exports = vbnet\nvbnet.displayName = 'vbnet'\nvbnet.aliases = []\nfunction vbnet(Prism) {\n  Prism.register(refractorBasic)\n  Prism.languages.vbnet = Prism.languages.extend('basic', {\n    comment: [\n      {\n        pattern: /(?:!|REM\\b).+/i,\n        inside: {\n          keyword: /^REM/i\n        }\n      },\n      {\n        pattern: /(^|[^\\\\:])'.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /(^|[^\"])\"(?:\"\"|[^\"])*\"(?!\")/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /(?:\\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDBL|CDEC|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DEFAULT|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LET|LIB|LIKE|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPERATOR|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHELL|SHORT|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SWAP|SYNCLOCK|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\\$|\\b)/i,\n    punctuation: /[,;:(){}]/\n  })\n}\n","'use strict'\n\nmodule.exports = velocity\nvelocity.displayName = 'velocity'\nvelocity.aliases = []\nfunction velocity(Prism) {\n  ;(function (Prism) {\n    Prism.languages.velocity = Prism.languages.extend('markup', {})\n    var velocity = {\n      variable: {\n        pattern:\n          /(^|[^\\\\](?:\\\\\\\\)*)\\$!?(?:[a-z][\\w-]*(?:\\([^)]*\\))?(?:\\.[a-z][\\w-]*(?:\\([^)]*\\))?|\\[[^\\]]+\\])*|\\{[^}]+\\})/i,\n        lookbehind: true,\n        inside: {} // See below\n      },\n      string: {\n        pattern: /\"[^\"]*\"|'[^']*'/,\n        greedy: true\n      },\n      number: /\\b\\d+\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      operator:\n        /[=!<>]=?|[+*/%-]|&&|\\|\\||\\.\\.|\\b(?:eq|g[et]|l[et]|n(?:e|ot))\\b/,\n      punctuation: /[(){}[\\]:,.]/\n    }\n    velocity.variable.inside = {\n      string: velocity['string'],\n      function: {\n        pattern: /([^\\w-])[a-z][\\w-]*(?=\\()/,\n        lookbehind: true\n      },\n      number: velocity['number'],\n      boolean: velocity['boolean'],\n      punctuation: velocity['punctuation']\n    }\n    Prism.languages.insertBefore('velocity', 'comment', {\n      unparsed: {\n        pattern: /(^|[^\\\\])#\\[\\[[\\s\\S]*?\\]\\]#/,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          punctuation: /^#\\[\\[|\\]\\]#$/\n        }\n      },\n      'velocity-comment': [\n        {\n          pattern: /(^|[^\\\\])#\\*[\\s\\S]*?\\*#/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'comment'\n        },\n        {\n          pattern: /(^|[^\\\\])##.*/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'comment'\n        }\n      ],\n      directive: {\n        pattern:\n          /(^|[^\\\\](?:\\\\\\\\)*)#@?(?:[a-z][\\w-]*|\\{[a-z][\\w-]*\\})(?:\\s*\\((?:[^()]|\\([^()]*\\))*\\))?/i,\n        lookbehind: true,\n        inside: {\n          keyword: {\n            pattern: /^#@?(?:[a-z][\\w-]*|\\{[a-z][\\w-]*\\})|\\bin\\b/,\n            inside: {\n              punctuation: /[{}]/\n            }\n          },\n          rest: velocity\n        }\n      },\n      variable: velocity['variable']\n    })\n    Prism.languages.velocity['tag'].inside['attr-value'].inside.rest =\n      Prism.languages.velocity\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = verilog\nverilog.displayName = 'verilog'\nverilog.aliases = []\nfunction verilog(Prism) {\n  Prism.languages.verilog = {\n    comment: {\n      pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n      greedy: true\n    },\n    'kernel-function': {\n      // support for any kernel function (ex: $display())\n      pattern: /\\B\\$\\w+\\b/,\n      alias: 'property'\n    },\n    // support for user defined constants (ex: `define)\n    constant: /\\B`\\w+\\b/,\n    function: /\\b\\w+(?=\\()/,\n    // support for verilog and system verilog keywords\n    keyword:\n      /\\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|case|casex|casez|cell|chandle|class|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endsequence|endspecify|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_ondetect|pulsestyle_onevent|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\\b/,\n    // bold highlighting for all verilog and system verilog logic blocks\n    important: /\\b(?:always|always_comb|always_ff|always_latch)\\b(?: *@)?/,\n    // support for time ticks, vectors, and real numbers\n    number:\n      /\\B##?\\d+|(?:\\b\\d+)?'[odbh] ?[\\da-fzx_?]+|\\b(?:\\d*[._])?\\d+(?:e[-+]?\\d+)?/i,\n    operator: /[-+{}^~%*\\/?=!<>&|]+/,\n    punctuation: /[[\\];(),.:]/\n  }\n}\n","'use strict'\n\nmodule.exports = vhdl\nvhdl.displayName = 'vhdl'\nvhdl.aliases = []\nfunction vhdl(Prism) {\n  Prism.languages.vhdl = {\n    comment: /--.+/,\n    // support for all logic vectors\n    'vhdl-vectors': {\n      pattern: /\\b[oxb]\"[\\da-f_]+\"|\"[01uxzwlh-]+\"/i,\n      alias: 'number'\n    },\n    // support for operator overloading included\n    'quoted-function': {\n      pattern: /\"\\S+?\"(?=\\()/,\n      alias: 'function'\n    },\n    string: /\"(?:[^\\\\\"\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,\n    constant: /\\b(?:library|use)\\b/i,\n    // support for predefined attributes included\n    keyword:\n      /\\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\\b/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    function: /\\w+(?=\\()/,\n    // decimal, based, physical, and exponential numbers supported\n    number: /'[01uxzwlh-]'|\\b(?:\\d+#[\\da-f_.]+#|\\d[\\d_.]*)(?:e[-+]?\\d+)?/i,\n    operator:\n      /[<>]=?|:=|[-+*/&=]|\\b(?:abs|and|mod|nand|nor|not|or|rem|rol|ror|sla|sll|sra|srl|xnor|xor)\\b/i,\n    punctuation: /[{}[\\];(),.:]/\n  }\n}\n","'use strict'\n\nmodule.exports = vim\nvim.displayName = 'vim'\nvim.aliases = []\nfunction vim(Prism) {\n  Prism.languages.vim = {\n    string: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\r\\n]|'')*'/,\n    comment: /\".*/,\n    function: /\\b\\w+(?=\\()/,\n    keyword:\n      /\\b(?:N|Next|P|Print|X|XMLent|XMLns|ab|abbreviate|abc|abclear|abo|aboveleft|al|all|ar|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|args|argu|argument|as|ascii|b|bN|bNext|ba|bad|badd|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bo|botright|bp|bprevious|br|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|brewind|bro|browse|bufdo|buffer|buffers|bun|bunload|bw|bwipeout|c|cN|cNext|cNfcNfile|ca|cabbrev|cabc|cabclear|cad|caddb|caddbuffer|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cg|cgetb|cgetbuffer|cgete|cgetexpr|cgetfile|change|changes|chd|chdir|che|checkpath|checkt|checktime|cl|cla|clast|clist|clo|close|cmapc|cmapclear|cn|cnew|cnewer|cnext|cnf|cnfile|cnorea|cnoreabbrev|co|col|colder|colo|colorscheme|comc|comclear|comp|compiler|con|conf|confirm|continue|cope|copen|copy|cp|cpf|cpfile|cprevious|cq|cquit|cr|crewind|cu|cuna|cunabbrev|cunmap|cw|cwindow|d|debugg|debuggreedy|delc|delcommand|delete|delf|delfunction|delm|delmarks|di|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|e|earlier|echoe|echoerr|echom|echomsg|echon|edit|el|else|elsei|elseif|em|emenu|en|endf|endfo|endfor|endfun|endfunction|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fin|fina|finally|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoc|folddoclosed|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|h|ha|hardcopy|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iu|iuna|iunabbrev|iunmap|j|join|ju|jumps|k|kee|keepalt|keepj|keepjumps|keepmarks|l|lN|lNext|lNf|lNfile|la|lad|laddb|laddbuffer|laddexpr|laddf|laddfile|lan|language|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|left|lefta|leftabove|let|lex|lexpr|lf|lfile|lfir|lfirst|lg|lgetb|lgetbuffer|lgete|lgetexpr|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|list|ll|lla|llast|lli|llist|lm|lmak|lmake|lmap|lmapc|lmapclear|ln|lne|lnew|lnewer|lnext|lnf|lnfile|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lpf|lpfile|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|ma|mak|make|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvie|mkview|mkvimrc|mod|mode|move|mz|mzf|mzfile|mzscheme|n|nbkey|new|next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|o|omapc|omapclear|on|only|open|opt|options|ou|ounmap|p|pc|pclose|pe|ped|pedit|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|print|prof|profd|profdel|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|ptN|ptNext|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|py|pyf|pyfile|python|q|qa|qall|quit|quita|quitall|r|read|rec|recover|red|redi|redir|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|rub|ruby|rubyd|rubydo|rubyf|rubyfile|runtime|rv|rviminfo|sN|sNext|sa|sal|sall|san|sandbox|sargument|sav|saveas|sb|sbN|sbNext|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbp|sbprevious|sbr|sbrewind|sbuffer|scrip|scripte|scriptencoding|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sl|sla|slast|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|so|sor|sort|source|sp|spe|spelld|spelldump|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|split|spr|sprevious|sre|srewind|st|sta|stag|star|startg|startgreplace|startinsert|startr|startreplace|stj|stjump|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tN|tNext|ta|tab|tabN|tabNext|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnew|tabnext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|u|una|unabbreviate|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|ve|verb|verbose|version|vert|vertical|vi|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|w|wN|wNext|wa|wall|wh|while|win|winc|wincmd|windo|winp|winpos|winsize|wn|wnext|wp|wprevious|wq|wqa|wqall|write|ws|wsverb|wv|wviminfo|x|xa|xall|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\\b/,\n    builtin:\n      /\\b(?:acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autocmd|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|t_AB|t_AF|t_AL|t_CS|t_CV|t_Ce|t_Co|t_Cs|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_IE|t_IS|t_K1|t_K3|t_K4|t_K5|t_K6|t_K7|t_K8|t_K9|t_KA|t_KB|t_KC|t_KD|t_KE|t_KF|t_KG|t_KH|t_KI|t_KJ|t_KK|t_KL|t_RI|t_RV|t_SI|t_Sb|t_Sf|t_WP|t_WS|t_ZH|t_ZR|t_al|t_bc|t_cd|t_ce|t_cl|t_cm|t_cs|t_da|t_db|t_dl|t_fs|t_k1|t_k2|t_k3|t_k4|t_k5|t_k6|t_k7|t_k8|t_k9|t_kB|t_kD|t_kI|t_kN|t_kP|t_kb|t_kd|t_ke|t_kh|t_kl|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_se|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_xs|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww)\\b/,\n    number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?)\\b/i,\n    operator:\n      /\\|\\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\\/%?]|\\b(?:is(?:not)?)\\b/,\n    punctuation: /[{}[\\](),;:]/\n  }\n}\n","'use strict'\n\nmodule.exports = visualBasic\nvisualBasic.displayName = 'visualBasic'\nvisualBasic.aliases = []\nfunction visualBasic(Prism) {\n  Prism.languages['visual-basic'] = {\n    comment: {\n      pattern: /(?:['‘’]|REM\\b)(?:[^\\r\\n_]|_(?:\\r\\n?|\\n)?)*/i,\n      inside: {\n        keyword: /^REM/i\n      }\n    },\n    directive: {\n      pattern:\n        /#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\\b_[ \\t]*(?:\\r\\n?|\\n)|.)+/i,\n      alias: 'property',\n      greedy: true\n    },\n    string: {\n      pattern: /\\$?[\"“”](?:[\"“”]{2}|[^\"“”])*[\"“”]C?/i,\n      greedy: true\n    },\n    date: {\n      pattern:\n        /#[ \\t]*(?:\\d+([/-])\\d+\\1\\d+(?:[ \\t]+(?:\\d+[ \\t]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[ \\t]*(?:AM|PM))?))?|\\d+[ \\t]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[ \\t]*(?:AM|PM))?)[ \\t]*#/i,\n      alias: 'number'\n    },\n    number:\n      /(?:(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)(?:E[+-]?\\d+)?|&[HO][\\dA-F]+)(?:[FRD]|U?[ILS])?/i,\n    boolean: /\\b(?:False|Nothing|True)\\b/i,\n    keyword:\n      /\\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\\b/i,\n    operator: /[+\\-*/\\\\^<=>&#@$%!]|\\b_(?=[ \\t]*[\\r\\n])/,\n    punctuation: /[{}().,:?]/\n  }\n  Prism.languages.vb = Prism.languages['visual-basic']\n  Prism.languages.vba = Prism.languages['visual-basic']\n}\n","'use strict'\n\nmodule.exports = warpscript\nwarpscript.displayName = 'warpscript'\nwarpscript.aliases = []\nfunction warpscript(Prism) {\n  Prism.languages.warpscript = {\n    comment: /#.*|\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n    string: {\n      pattern:\n        /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'|<'(?:[^\\\\']|'(?!>)|\\\\.)*'>/,\n      greedy: true\n    },\n    variable: /\\$\\S+/,\n    macro: {\n      pattern: /@\\S+/,\n      alias: 'property'\n    },\n    // WarpScript doesn't have any keywords, these are all functions under the control category\n    // https://www.warp10.io/tags/control\n    keyword:\n      /\\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\\b/,\n    number:\n      /[+-]?\\b(?:NaN|Infinity|\\d+(?:\\.\\d*)?(?:[Ee][+-]?\\d+)?|0x[\\da-fA-F]+|0b[01]+)\\b/,\n    boolean: /\\b(?:F|T|false|true)\\b/,\n    punctuation: /<%|%>|[{}[\\]()]/,\n    // Some operators from the \"operators\" category\n    // https://www.warp10.io/tags/operators\n    operator:\n      /==|&&?|\\|\\|?|\\*\\*?|>>>?|<<|[<>!~]=?|[-/%^]|\\+!?|\\b(?:AND|NOT|OR)\\b/\n  }\n}\n","'use strict'\n\nmodule.exports = wasm\nwasm.displayName = 'wasm'\nwasm.aliases = []\nfunction wasm(Prism) {\n  Prism.languages.wasm = {\n    comment: [\n      /\\(;[\\s\\S]*?;\\)/,\n      {\n        pattern: /;;.*/,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,\n      greedy: true\n    },\n    keyword: [\n      {\n        pattern: /\\b(?:align|offset)=/,\n        inside: {\n          operator: /=/\n        }\n      },\n      {\n        pattern:\n          /\\b(?:(?:f32|f64|i32|i64)(?:\\.(?:abs|add|and|ceil|clz|const|convert_[su]\\/i(?:32|64)|copysign|ctz|demote\\/f64|div(?:_[su])?|eqz?|extend_[su]\\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\\/f32|reinterpret\\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\\/f(?:32|64))?|wrap\\/i64|xor))?|memory\\.(?:grow|size))\\b/,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      /\\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\\b/\n    ],\n    variable: /\\$[\\w!#$%&'*+\\-./:<=>?@\\\\^`|~]+/,\n    number:\n      /[+-]?\\b(?:\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:[eE][+-]?\\d(?:_?\\d)*)?|0x[\\da-fA-F](?:_?[\\da-fA-F])*(?:\\.[\\da-fA-F](?:_?[\\da-fA-D])*)?(?:[pP][+-]?\\d(?:_?\\d)*)?)\\b|\\binf\\b|\\bnan(?::0x[\\da-fA-F](?:_?[\\da-fA-D])*)?\\b/,\n    punctuation: /[()]/\n  }\n}\n","'use strict'\n\nmodule.exports = webIdl\nwebIdl.displayName = 'webIdl'\nwebIdl.aliases = []\nfunction webIdl(Prism) {\n  ;(function (Prism) {\n    var id = /(?:\\B-|\\b_|\\b)[A-Za-z][\\w-]*(?![\\w-])/.source\n    var type =\n      '(?:' +\n      /\\b(?:unsigned\\s+)?long\\s+long(?![\\w-])/.source +\n      '|' +\n      /\\b(?:unrestricted|unsigned)\\s+[a-z]+(?![\\w-])/.source +\n      '|' +\n      /(?!(?:unrestricted|unsigned)\\b)/.source +\n      id +\n      /(?:\\s*<(?:[^<>]|<[^<>]*>)*>)?/.source +\n      ')' +\n      /(?:\\s*\\?)?/.source\n    var typeInside = {}\n    Prism.languages['web-idl'] = {\n      comment: {\n        pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n        greedy: true\n      },\n      string: {\n        pattern: /\"[^\"]*\"/,\n        greedy: true\n      },\n      namespace: {\n        pattern: RegExp(/(\\bnamespace\\s+)/.source + id),\n        lookbehind: true\n      },\n      'class-name': [\n        {\n          pattern:\n            /(^|[^\\w-])(?:iterable|maplike|setlike)\\s*<(?:[^<>]|<[^<>]*>)*>/,\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          pattern: RegExp(\n            /(\\b(?:attribute|const|deleter|getter|optional|setter)\\s+)/.source +\n              type\n          ),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // callback return type\n          pattern: RegExp(\n            '(' + /\\bcallback\\s+/.source + id + /\\s*=\\s*/.source + ')' + type\n          ),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // typedef\n          pattern: RegExp(/(\\btypedef\\b\\s*)/.source + type),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          pattern: RegExp(\n            /(\\b(?:callback|dictionary|enum|interface(?:\\s+mixin)?)\\s+)(?!(?:interface|mixin)\\b)/\n              .source + id\n          ),\n          lookbehind: true\n        },\n        {\n          // inheritance\n          pattern: RegExp(/(:\\s*)/.source + id),\n          lookbehind: true\n        }, // includes and implements\n        RegExp(id + /(?=\\s+(?:implements|includes)\\b)/.source),\n        {\n          pattern: RegExp(/(\\b(?:implements|includes)\\s+)/.source + id),\n          lookbehind: true\n        },\n        {\n          // function return type, parameter types, and dictionary members\n          pattern: RegExp(\n            type +\n              '(?=' +\n              /\\s*(?:\\.{3}\\s*)?/.source +\n              id +\n              /\\s*[(),;=]/.source +\n              ')'\n          ),\n          inside: typeInside\n        }\n      ],\n      builtin:\n        /\\b(?:ArrayBuffer|BigInt64Array|BigUint64Array|ByteString|DOMString|DataView|Float32Array|Float64Array|FrozenArray|Int16Array|Int32Array|Int8Array|ObservableArray|Promise|USVString|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray)\\b/,\n      keyword: [\n        /\\b(?:async|attribute|callback|const|constructor|deleter|dictionary|enum|getter|implements|includes|inherit|interface|mixin|namespace|null|optional|or|partial|readonly|required|setter|static|stringifier|typedef|unrestricted)\\b/, // type keywords\n        /\\b(?:any|bigint|boolean|byte|double|float|iterable|long|maplike|object|octet|record|sequence|setlike|short|symbol|undefined|unsigned|void)\\b/\n      ],\n      boolean: /\\b(?:false|true)\\b/,\n      number: {\n        pattern:\n          /(^|[^\\w-])-?(?:0x[0-9a-f]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|NaN|Infinity)(?![\\w-])/i,\n        lookbehind: true\n      },\n      operator: /\\.{3}|[=:?<>-]/,\n      punctuation: /[(){}[\\].,;]/\n    }\n    for (var key in Prism.languages['web-idl']) {\n      if (key !== 'class-name') {\n        typeInside[key] = Prism.languages['web-idl'][key]\n      }\n    }\n    Prism.languages['webidl'] = Prism.languages['web-idl']\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = wiki\nwiki.displayName = 'wiki'\nwiki.aliases = []\nfunction wiki(Prism) {\n  Prism.languages.wiki = Prism.languages.extend('markup', {\n    'block-comment': {\n      pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n      lookbehind: true,\n      alias: 'comment'\n    },\n    heading: {\n      pattern: /^(=+)[^=\\r\\n].*?\\1/m,\n      inside: {\n        punctuation: /^=+|=+$/,\n        important: /.+/\n      }\n    },\n    emphasis: {\n      // TODO Multi-line\n      pattern: /('{2,5}).+?\\1/,\n      inside: {\n        'bold-italic': {\n          pattern: /(''''').+?(?=\\1)/,\n          lookbehind: true,\n          alias: ['bold', 'italic']\n        },\n        bold: {\n          pattern: /(''')[^'](?:.*?[^'])?(?=\\1)/,\n          lookbehind: true\n        },\n        italic: {\n          pattern: /('')[^'](?:.*?[^'])?(?=\\1)/,\n          lookbehind: true\n        },\n        punctuation: /^''+|''+$/\n      }\n    },\n    hr: {\n      pattern: /^-{4,}/m,\n      alias: 'punctuation'\n    },\n    url: [\n      /ISBN +(?:97[89][ -]?)?(?:\\d[ -]?){9}[\\dx]\\b|(?:PMID|RFC) +\\d+/i,\n      /\\[\\[.+?\\]\\]|\\[.+?\\]/\n    ],\n    variable: [\n      /__[A-Z]+__/, // FIXME Nested structures should be handled\n      // {{formatnum:{{#expr:{{{3}}}}}}}\n      /\\{{3}.+?\\}{3}/,\n      /\\{\\{.+?\\}\\}/\n    ],\n    symbol: [/^#redirect/im, /~{3,5}/],\n    // Handle table attrs:\n    // {|\n    // ! style=\"text-align:left;\"| Item\n    // |}\n    'table-tag': {\n      pattern: /((?:^|[|!])[|!])[^|\\r\\n]+\\|(?!\\|)/m,\n      lookbehind: true,\n      inside: {\n        'table-bar': {\n          pattern: /\\|$/,\n          alias: 'punctuation'\n        },\n        rest: Prism.languages.markup['tag'].inside\n      }\n    },\n    punctuation: /^(?:\\{\\||\\|\\}|\\|-|[*#:;!|])|\\|\\||!!/m\n  })\n  Prism.languages.insertBefore('wiki', 'tag', {\n    // Prevent highlighting inside <nowiki>, <source> and <pre> tags\n    nowiki: {\n      pattern: /<(nowiki|pre|source)\\b[^>]*>[\\s\\S]*?<\\/\\1>/i,\n      inside: {\n        tag: {\n          pattern: /<(?:nowiki|pre|source)\\b[^>]*>|<\\/(?:nowiki|pre|source)>/i,\n          inside: Prism.languages.markup['tag'].inside\n        }\n      }\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = wolfram\nwolfram.displayName = 'wolfram'\nwolfram.aliases = ['mathematica', 'wl', 'nb']\nfunction wolfram(Prism) {\n  Prism.languages.wolfram = {\n    // Allow one level of nesting - note: regex taken from applescipt\n    comment: /\\(\\*(?:\\(\\*(?:[^*]|\\*(?!\\)))*\\*\\)|(?!\\(\\*)[\\s\\S])*?\\*\\)/,\n    string: {\n      pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\\b/,\n    context: {\n      pattern: /\\b\\w+`+\\w*/,\n      alias: 'class-name'\n    },\n    blank: {\n      pattern: /\\b\\w+_\\b/,\n      alias: 'regex'\n    },\n    'global-variable': {\n      pattern: /\\$\\w+/,\n      alias: 'variable'\n    },\n    boolean: /\\b(?:False|True)\\b/,\n    number:\n      /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?j?\\b/i,\n    operator:\n      /\\/\\.|;|=\\.|\\^=|\\^:=|:=|<<|>>|<\\||\\|>|:>|\\|->|->|<-|@@@|@@|@|\\/@|=!=|===|==|=|\\+|-|\\^|\\[\\/-+%=\\]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n    punctuation: /[{}[\\];(),.:]/\n  }\n  Prism.languages.mathematica = Prism.languages.wolfram\n  Prism.languages.wl = Prism.languages.wolfram\n  Prism.languages.nb = Prism.languages.wolfram\n}\n","'use strict'\n\nmodule.exports = wren\nwren.displayName = 'wren'\nwren.aliases = []\nfunction wren(Prism) {\n  // https://wren.io/\n  Prism.languages.wren = {\n    // Multiline comments in Wren can have nested multiline comments\n    // Comments: // and /* */\n    comment: [\n      {\n        // support 3 levels of nesting\n        // regex: \\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\/\n        pattern:\n          /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*))*\\*\\/)*\\*\\/)*\\*\\//,\n        greedy: true\n      },\n      {\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    // Triple quoted strings are multiline but cannot have interpolation (raw strings)\n    // Based on prism-python.js\n    'triple-quoted-string': {\n      pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n      greedy: true,\n      alias: 'string'\n    },\n    // see below\n    'string-literal': null,\n    // #!/usr/bin/env wren on the first line\n    hashbang: {\n      pattern: /^#!\\/.+/,\n      greedy: true,\n      alias: 'comment'\n    },\n    // Attributes are special keywords to add meta data to classes\n    attribute: {\n      // #! attributes are stored in class properties\n      // #!myvar = true\n      // #attributes are not stored and dismissed at compilation\n      pattern: /#!?[ \\t\\u3000]*\\w+/,\n      alias: 'keyword'\n    },\n    'class-name': [\n      {\n        // class definition\n        // class Meta {}\n        pattern: /(\\bclass\\s+)\\w+/,\n        lookbehind: true\n      }, // A class must always start with an uppercase.\n      // File.read\n      /\\b[A-Z][a-z\\d_]*\\b/\n    ],\n    // A constant can be a variable, class, property or method. Just named in all uppercase letters\n    constant: /\\b[A-Z][A-Z\\d_]*\\b/,\n    null: {\n      pattern: /\\bnull\\b/,\n      alias: 'keyword'\n    },\n    keyword:\n      /\\b(?:as|break|class|construct|continue|else|for|foreign|if|import|in|is|return|static|super|this|var|while)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\n    // Functions can be Class.method()\n    function: /\\b[a-z_]\\w*(?=\\s*[({])/i,\n    operator: /<<|>>|[=!<>]=?|&&|\\|\\||[-+*/%~^&|?:]|\\.{2,3}/,\n    punctuation: /[\\[\\](){}.,;]/\n  }\n  Prism.languages.wren['string-literal'] = {\n    // A single quote string is multiline and can have interpolation (similar to JS backticks ``)\n    pattern:\n      /(^|[^\\\\\"])\"(?:[^\\\\\"%]|\\\\[\\s\\S]|%(?!\\()|%\\((?:[^()]|\\((?:[^()]|\\([^)]*\\))*\\))*\\))*\"/,\n    lookbehind: true,\n    greedy: true,\n    inside: {\n      interpolation: {\n        // \"%(interpolation)\"\n        pattern:\n          /((?:^|[^\\\\])(?:\\\\{2})*)%\\((?:[^()]|\\((?:[^()]|\\([^)]*\\))*\\))*\\)/,\n        lookbehind: true,\n        inside: {\n          expression: {\n            pattern: /^(%\\()[\\s\\S]+(?=\\)$)/,\n            lookbehind: true,\n            inside: Prism.languages.wren\n          },\n          'interpolation-punctuation': {\n            pattern: /^%\\(|\\)$/,\n            alias: 'punctuation'\n          }\n        }\n      },\n      string: /[\\s\\S]+/\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = xeora\nxeora.displayName = 'xeora'\nxeora.aliases = ['xeoracube']\nfunction xeora(Prism) {\n  ;(function (Prism) {\n    Prism.languages.xeora = Prism.languages.extend('markup', {\n      constant: {\n        pattern: /\\$(?:DomainContents|PageRenderDuration)\\$/,\n        inside: {\n          punctuation: {\n            pattern: /\\$/\n          }\n        }\n      },\n      variable: {\n        pattern: /\\$@?(?:#+|[-+*~=^])?[\\w.]+\\$/,\n        inside: {\n          punctuation: {\n            pattern: /[$.]/\n          },\n          operator: {\n            pattern: /#+|[-+*~=^@]/\n          }\n        }\n      },\n      'function-inline': {\n        pattern:\n          /\\$F:[-\\w.]+\\?[-\\w.]+(?:,(?:(?:@[-#]*\\w+\\.[\\w+.]\\.*)*\\|)*(?:(?:[\\w+]|[-#*.~^]+[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\\w+\\.[\\w+.]\\.*)+(?:(?:[\\w+]|[-#*~^][-#*.~^]*[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*)?)?)?\\$/,\n        inside: {\n          variable: {\n            pattern: /(?:[,|])@?(?:#+|[-+*~=^])?[\\w.]+/,\n            inside: {\n              punctuation: {\n                pattern: /[,.|]/\n              },\n              operator: {\n                pattern: /#+|[-+*~=^@]/\n              }\n            }\n          },\n          punctuation: {\n            pattern: /\\$\\w:|[$:?.,|]/\n          }\n        },\n        alias: 'function'\n      },\n      'function-block': {\n        pattern:\n          /\\$XF:\\{[-\\w.]+\\?[-\\w.]+(?:,(?:(?:@[-#]*\\w+\\.[\\w+.]\\.*)*\\|)*(?:(?:[\\w+]|[-#*.~^]+[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\\w+\\.[\\w+.]\\.*)+(?:(?:[\\w+]|[-#*~^][-#*.~^]*[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*)?)?)?\\}:XF\\$/,\n        inside: {\n          punctuation: {\n            pattern: /[$:{}?.,|]/\n          }\n        },\n        alias: 'function'\n      },\n      'directive-inline': {\n        pattern: /\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+\\])?:[-\\/\\w.]+\\$/,\n        inside: {\n          punctuation: {\n            pattern: /\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,\n            inside: {\n              tag: {\n                pattern: /#\\d/\n              }\n            }\n          }\n        },\n        alias: 'function'\n      },\n      'directive-block-open': {\n        pattern:\n          /\\$\\w+:\\{|\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+\\])?:[-\\w.]+:\\{(?:![A-Z]+)?/,\n        inside: {\n          punctuation: {\n            pattern: /\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,\n            inside: {\n              tag: {\n                pattern: /#\\d/\n              }\n            }\n          },\n          attribute: {\n            pattern: /![A-Z]+$/,\n            inside: {\n              punctuation: {\n                pattern: /!/\n              }\n            },\n            alias: 'keyword'\n          }\n        },\n        alias: 'function'\n      },\n      'directive-block-separator': {\n        pattern: /\\}:[-\\w.]+:\\{/,\n        inside: {\n          punctuation: {\n            pattern: /[:{}]/\n          }\n        },\n        alias: 'function'\n      },\n      'directive-block-close': {\n        pattern: /\\}:[-\\w.]+\\$/,\n        inside: {\n          punctuation: {\n            pattern: /[:{}$]/\n          }\n        },\n        alias: 'function'\n      }\n    })\n    Prism.languages.insertBefore(\n      'inside',\n      'punctuation',\n      {\n        variable: Prism.languages.xeora['function-inline'].inside['variable']\n      },\n      Prism.languages.xeora['function-block']\n    )\n    Prism.languages.xeoracube = Prism.languages.xeora\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = xmlDoc\nxmlDoc.displayName = 'xmlDoc'\nxmlDoc.aliases = []\nfunction xmlDoc(Prism) {\n  ;(function (Prism) {\n    /**\n     * If the given language is present, it will insert the given doc comment grammar token into it.\n     *\n     * @param {string} lang\n     * @param {any} docComment\n     */\n    function insertDocComment(lang, docComment) {\n      if (Prism.languages[lang]) {\n        Prism.languages.insertBefore(lang, 'comment', {\n          'doc-comment': docComment\n        })\n      }\n    }\n    var tag = Prism.languages.markup.tag\n    var slashDocComment = {\n      pattern: /\\/\\/\\/.*/,\n      greedy: true,\n      alias: 'comment',\n      inside: {\n        tag: tag\n      }\n    }\n    var tickDocComment = {\n      pattern: /'''.*/,\n      greedy: true,\n      alias: 'comment',\n      inside: {\n        tag: tag\n      }\n    }\n    insertDocComment('csharp', slashDocComment)\n    insertDocComment('fsharp', slashDocComment)\n    insertDocComment('vbnet', tickDocComment)\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = xojo\nxojo.displayName = 'xojo'\nxojo.aliases = []\nfunction xojo(Prism) {\n  Prism.languages.xojo = {\n    comment: {\n      pattern: /(?:'|\\/\\/|Rem\\b).+/i,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:\"\"|[^\"])*\"/,\n      greedy: true\n    },\n    number: [/(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i, /&[bchou][a-z\\d]+/i],\n    directive: {\n      pattern: /#(?:Else|ElseIf|Endif|If|Pragma)\\b/i,\n      alias: 'property'\n    },\n    keyword:\n      /\\b(?:AddHandler|App|Array|As(?:signs)?|Auto|Boolean|Break|By(?:Ref|Val)|Byte|Call|Case|Catch|CFStringRef|CGFloat|Class|Color|Const|Continue|CString|Currency|CurrentMethodName|Declare|Delegate|Dim|Do(?:uble|wnTo)?|Each|Else(?:If)?|End|Enumeration|Event|Exception|Exit|Extends|False|Finally|For|Function|Get|GetTypeInfo|Global|GOTO|If|Implements|In|Inherits|Int(?:8|16|32|64|eger|erface)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Shared|Short|Single|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:8|16|32|64|eger)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\\b/i,\n    operator:\n      /<[=>]?|>=?|[+\\-*\\/\\\\^=]|\\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|WeakAddressOf|Xor)\\b/i,\n    punctuation: /[.,;:()]/\n  }\n}\n","'use strict'\n\nmodule.exports = xquery\nxquery.displayName = 'xquery'\nxquery.aliases = []\nfunction xquery(Prism) {\n  ;(function (Prism) {\n    Prism.languages.xquery = Prism.languages.extend('markup', {\n      'xquery-comment': {\n        pattern: /\\(:[\\s\\S]*?:\\)/,\n        greedy: true,\n        alias: 'comment'\n      },\n      string: {\n        pattern: /([\"'])(?:\\1\\1|(?!\\1)[\\s\\S])*\\1/,\n        greedy: true\n      },\n      extension: {\n        pattern: /\\(#.+?#\\)/,\n        alias: 'symbol'\n      },\n      variable: /\\$[-\\w:]+/,\n      axis: {\n        pattern:\n          /(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      'keyword-operator': {\n        pattern:\n          /(^|[^:-])\\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\\b(?=$|[^:-])/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      keyword: {\n        pattern:\n          /(^|[^:-])\\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\\b(?=$|[^:-])/,\n        lookbehind: true\n      },\n      function: /[\\w-]+(?::[\\w-]+)*(?=\\s*\\()/,\n      'xquery-element': {\n        pattern: /(element\\s+)[\\w-]+(?::[\\w-]+)*/,\n        lookbehind: true,\n        alias: 'tag'\n      },\n      'xquery-attribute': {\n        pattern: /(attribute\\s+)[\\w-]+(?::[\\w-]+)*/,\n        lookbehind: true,\n        alias: 'attr-name'\n      },\n      builtin: {\n        pattern:\n          /(^|[^:-])\\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:ENTITIES|ENTITY|ID|IDREFS?|NCName|NMTOKENS?|NOTATION|Name|QName|anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|int|integer|language|long|negativeInteger|nonNegativeInteger|nonPositiveInteger|normalizedString|positiveInteger|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\\b(?=$|[^:-])/,\n        lookbehind: true\n      },\n      number: /\\b\\d+(?:\\.\\d+)?(?:E[+-]?\\d+)?/,\n      operator: [\n        /[+*=?|@]|\\.\\.?|:=|!=|<[=<]?|>[=>]?/,\n        {\n          pattern: /(\\s)-(?=\\s)/,\n          lookbehind: true\n        }\n      ],\n      punctuation: /[[\\](){},;:/]/\n    })\n    Prism.languages.xquery.tag.pattern =\n      /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/\n    Prism.languages.xquery['tag'].inside['attr-value'].pattern =\n      /=(?:(\"|')(?:\\\\[\\s\\S]|\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/\n    Prism.languages.xquery['tag'].inside['attr-value'].inside['punctuation'] =\n      /^=\"|\"$/\n    Prism.languages.xquery['tag'].inside['attr-value'].inside['expression'] = {\n      // Allow for two levels of nesting\n      pattern: /\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}/,\n      inside: Prism.languages.xquery,\n      alias: 'language-xquery'\n    } // The following will handle plain text inside tags\n    var stringifyToken = function (token) {\n      if (typeof token === 'string') {\n        return token\n      }\n      if (typeof token.content === 'string') {\n        return token.content\n      }\n      return token.content.map(stringifyToken).join('')\n    }\n    var walkTokens = function (tokens) {\n      var openedTags = []\n      for (var i = 0; i < tokens.length; i++) {\n        var token = tokens[i]\n        var notTagNorBrace = false\n        if (typeof token !== 'string') {\n          if (\n            token.type === 'tag' &&\n            token.content[0] &&\n            token.content[0].type === 'tag'\n          ) {\n            // We found a tag, now find its kind\n            if (token.content[0].content[0].content === '</') {\n              // Closing tag\n              if (\n                openedTags.length > 0 &&\n                openedTags[openedTags.length - 1].tagName ===\n                  stringifyToken(token.content[0].content[1])\n              ) {\n                // Pop matching opening tag\n                openedTags.pop()\n              }\n            } else {\n              if (token.content[token.content.length - 1].content === '/>') {\n                // Autoclosed tag, ignore\n              } else {\n                // Opening tag\n                openedTags.push({\n                  tagName: stringifyToken(token.content[0].content[1]),\n                  openedBraces: 0\n                })\n              }\n            }\n          } else if (\n            openedTags.length > 0 &&\n            token.type === 'punctuation' &&\n            token.content === '{' && // Ignore `{{`\n            (!tokens[i + 1] ||\n              tokens[i + 1].type !== 'punctuation' ||\n              tokens[i + 1].content !== '{') &&\n            (!tokens[i - 1] ||\n              tokens[i - 1].type !== 'plain-text' ||\n              tokens[i - 1].content !== '{')\n          ) {\n            // Here we might have entered an XQuery expression inside a tag\n            openedTags[openedTags.length - 1].openedBraces++\n          } else if (\n            openedTags.length > 0 &&\n            openedTags[openedTags.length - 1].openedBraces > 0 &&\n            token.type === 'punctuation' &&\n            token.content === '}'\n          ) {\n            // Here we might have left an XQuery expression inside a tag\n            openedTags[openedTags.length - 1].openedBraces--\n          } else if (token.type !== 'comment') {\n            notTagNorBrace = true\n          }\n        }\n        if (notTagNorBrace || typeof token === 'string') {\n          if (\n            openedTags.length > 0 &&\n            openedTags[openedTags.length - 1].openedBraces === 0\n          ) {\n            // Here we are inside a tag, and not inside an XQuery expression.\n            // That's plain text: drop any tokens matched.\n            var plainText = stringifyToken(token) // And merge text with adjacent text\n            if (\n              i < tokens.length - 1 &&\n              (typeof tokens[i + 1] === 'string' ||\n                tokens[i + 1].type === 'plain-text')\n            ) {\n              plainText += stringifyToken(tokens[i + 1])\n              tokens.splice(i + 1, 1)\n            }\n            if (\n              i > 0 &&\n              (typeof tokens[i - 1] === 'string' ||\n                tokens[i - 1].type === 'plain-text')\n            ) {\n              plainText = stringifyToken(tokens[i - 1]) + plainText\n              tokens.splice(i - 1, 1)\n              i--\n            }\n            if (/^\\s+$/.test(plainText)) {\n              tokens[i] = plainText\n            } else {\n              tokens[i] = new Prism.Token(\n                'plain-text',\n                plainText,\n                null,\n                plainText\n              )\n            }\n          }\n        }\n        if (token.content && typeof token.content !== 'string') {\n          walkTokens(token.content)\n        }\n      }\n    }\n    Prism.hooks.add('after-tokenize', function (env) {\n      if (env.language !== 'xquery') {\n        return\n      }\n      walkTokens(env.tokens)\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = yaml\nyaml.displayName = 'yaml'\nyaml.aliases = ['yml']\nfunction yaml(Prism) {\n  ;(function (Prism) {\n    // https://yaml.org/spec/1.2/spec.html#c-ns-anchor-property\n    // https://yaml.org/spec/1.2/spec.html#c-ns-alias-node\n    var anchorOrAlias = /[*&][^\\s[\\]{},]+/ // https://yaml.org/spec/1.2/spec.html#c-ns-tag-property\n    var tag =\n      /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/ // https://yaml.org/spec/1.2/spec.html#c-ns-properties(n,c)\n    var properties =\n      '(?:' +\n      tag.source +\n      '(?:[ \\t]+' +\n      anchorOrAlias.source +\n      ')?|' +\n      anchorOrAlias.source +\n      '(?:[ \\t]+' +\n      tag.source +\n      ')?)' // https://yaml.org/spec/1.2/spec.html#ns-plain(n,c)\n    // This is a simplified version that doesn't support \"#\" and multiline keys\n    // All these long scarry character classes are simplified versions of YAML's characters\n    var plainKey =\n      /(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(\n        /<PLAIN>/g,\n        function () {\n          return /[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/\n            .source\n        }\n      )\n    var string = /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/.source\n    /**\n     *\n     * @param {string} value\n     * @param {string} [flags]\n     * @returns {RegExp}\n     */\n    function createValuePattern(value, flags) {\n      flags = (flags || '').replace(/m/g, '') + 'm' // add m flag\n      var pattern =\n        /([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/.source\n          .replace(/<<prop>>/g, function () {\n            return properties\n          })\n          .replace(/<<value>>/g, function () {\n            return value\n          })\n      return RegExp(pattern, flags)\n    }\n    Prism.languages.yaml = {\n      scalar: {\n        pattern: RegExp(\n          /([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/.source.replace(\n            /<<prop>>/g,\n            function () {\n              return properties\n            }\n          )\n        ),\n        lookbehind: true,\n        alias: 'string'\n      },\n      comment: /#.*/,\n      key: {\n        pattern: RegExp(\n          /((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)/.source\n            .replace(/<<prop>>/g, function () {\n              return properties\n            })\n            .replace(/<<key>>/g, function () {\n              return '(?:' + plainKey + '|' + string + ')'\n            })\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'atrule'\n      },\n      directive: {\n        pattern: /(^[ \\t]*)%.+/m,\n        lookbehind: true,\n        alias: 'important'\n      },\n      datetime: {\n        pattern: createValuePattern(\n          /\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?/\n            .source\n        ),\n        lookbehind: true,\n        alias: 'number'\n      },\n      boolean: {\n        pattern: createValuePattern(/false|true/.source, 'i'),\n        lookbehind: true,\n        alias: 'important'\n      },\n      null: {\n        pattern: createValuePattern(/null|~/.source, 'i'),\n        lookbehind: true,\n        alias: 'important'\n      },\n      string: {\n        pattern: createValuePattern(string),\n        lookbehind: true,\n        greedy: true\n      },\n      number: {\n        pattern: createValuePattern(\n          /[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/\n            .source,\n          'i'\n        ),\n        lookbehind: true\n      },\n      tag: tag,\n      important: anchorOrAlias,\n      punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./\n    }\n    Prism.languages.yml = Prism.languages.yaml\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = yang\nyang.displayName = 'yang'\nyang.aliases = []\nfunction yang(Prism) {\n  Prism.languages.yang = {\n    // https://tools.ietf.org/html/rfc6020#page-34\n    // http://www.yang-central.org/twiki/bin/view/Main/YangExamples\n    comment: /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*/,\n    string: {\n      pattern: /\"(?:[^\\\\\"]|\\\\.)*\"|'[^']*'/,\n      greedy: true\n    },\n    keyword: {\n      pattern: /(^|[{};\\r\\n][ \\t]*)[a-z_][\\w.-]*/i,\n      lookbehind: true\n    },\n    namespace: {\n      pattern: /(\\s)[a-z_][\\w.-]*(?=:)/i,\n      lookbehind: true\n    },\n    boolean: /\\b(?:false|true)\\b/,\n    operator: /\\+/,\n    punctuation: /[{};:]/\n  }\n}\n","'use strict'\n\nmodule.exports = zig\nzig.displayName = 'zig'\nzig.aliases = []\nfunction zig(Prism) {\n  ;(function (Prism) {\n    function literal(str) {\n      return function () {\n        return str\n      }\n    }\n    var keyword =\n      /\\b(?:align|allowzero|and|anyframe|anytype|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|nosuspend|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\\b/\n    var IDENTIFIER = '\\\\b(?!' + keyword.source + ')(?!\\\\d)\\\\w+\\\\b'\n    var ALIGN = /align\\s*\\((?:[^()]|\\([^()]*\\))*\\)/.source\n    var PREFIX_TYPE_OP =\n      /(?:\\?|\\bpromise->|(?:\\[[^[\\]]*\\]|\\*(?!\\*)|\\*\\*)(?:\\s*<ALIGN>|\\s*const\\b|\\s*volatile\\b|\\s*allowzero\\b)*)/.source.replace(\n        /<ALIGN>/g,\n        literal(ALIGN)\n      )\n    var SUFFIX_EXPR =\n      /(?:\\bpromise\\b|(?:\\berror\\.)?<ID>(?:\\.<ID>)*(?!\\s+<ID>))/.source.replace(\n        /<ID>/g,\n        literal(IDENTIFIER)\n      )\n    var TYPE =\n      '(?!\\\\s)(?:!?\\\\s*(?:' + PREFIX_TYPE_OP + '\\\\s*)*' + SUFFIX_EXPR + ')+'\n    /*\n     * A simplified grammar for Zig compile time type literals:\n     *\n     * TypeExpr = ( \"!\"? PREFIX_TYPE_OP* SUFFIX_EXPR )+\n     *\n     * SUFFIX_EXPR = ( \\b \"promise\" \\b | ( \\b \"error\" \".\" )? IDENTIFIER ( \".\" IDENTIFIER )* (?! \\s+ IDENTIFIER ) )\n     *\n     * PREFIX_TYPE_OP = \"?\"\n     *                | \\b \"promise\" \"->\"\n     *                | ( \"[\" [^\\[\\]]* \"]\" | \"*\" | \"**\" ) ( ALIGN | \"const\" \\b | \"volatile\" \\b | \"allowzero\" \\b )*\n     *\n     * ALIGN = \"align\" \"(\" ( [^()] | \"(\" [^()]* \")\" )* \")\"\n     *\n     * IDENTIFIER = \\b (?! KEYWORD ) [a-zA-Z_] \\w* \\b\n     *\n     */\n    Prism.languages.zig = {\n      comment: [\n        {\n          pattern: /\\/\\/[/!].*/,\n          alias: 'doc-comment'\n        },\n        /\\/{2}.*/\n      ],\n      string: [\n        {\n          // \"string\" and c\"string\"\n          pattern: /(^|[^\\\\@])c?\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          // multiline strings and c-strings\n          pattern: /([\\r\\n])([ \\t]+c?\\\\{2}).*(?:(?:\\r\\n?|\\n)\\2.*)*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      char: {\n        // characters 'a', '\\n', '\\xFF', '\\u{10FFFF}'\n        pattern:\n          /(^|[^\\\\])'(?:[^'\\\\\\r\\n]|[\\uD800-\\uDFFF]{2}|\\\\(?:.|x[a-fA-F\\d]{2}|u\\{[a-fA-F\\d]{1,6}\\}))'/,\n        lookbehind: true,\n        greedy: true\n      },\n      builtin: /\\B@(?!\\d)\\w+(?=\\s*\\()/,\n      label: {\n        pattern:\n          /(\\b(?:break|continue)\\s*:\\s*)\\w+\\b|\\b(?!\\d)\\w+\\b(?=\\s*:\\s*(?:\\{|while\\b))/,\n        lookbehind: true\n      },\n      'class-name': [\n        // const Foo = struct {};\n        /\\b(?!\\d)\\w+(?=\\s*=\\s*(?:(?:extern|packed)\\s+)?(?:enum|struct|union)\\s*[({])/,\n        {\n          // const x: i32 = 9;\n          // var x: Bar;\n          // fn foo(x: bool, y: f32) void {}\n          pattern: RegExp(\n            /(:\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?[=;,)])|<TYPE>(?=\\s*(?:<ALIGN>\\s*)?\\{)/.source\n              .replace(/<TYPE>/g, literal(TYPE))\n              .replace(/<ALIGN>/g, literal(ALIGN))\n          ),\n          lookbehind: true,\n          inside: null // see below\n        },\n        {\n          // extern fn foo(x: f64) f64; (optional alignment)\n          pattern: RegExp(\n            /(\\)\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?;)/.source\n              .replace(/<TYPE>/g, literal(TYPE))\n              .replace(/<ALIGN>/g, literal(ALIGN))\n          ),\n          lookbehind: true,\n          inside: null // see below\n        }\n      ],\n      'builtin-type': {\n        pattern:\n          /\\b(?:anyerror|bool|c_u?(?:int|long|longlong|short)|c_longdouble|c_void|comptime_(?:float|int)|f(?:16|32|64|128)|[iu](?:8|16|32|64|128|size)|noreturn|type|void)\\b/,\n        alias: 'keyword'\n      },\n      keyword: keyword,\n      function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n      number:\n        /\\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\\d]+(?:\\.[a-fA-F\\d]*)?(?:[pP][+-]?[a-fA-F\\d]+)?|\\d+(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      operator:\n        /\\.[*?]|\\.{2,3}|[-=]>|\\*\\*|\\+\\+|\\|\\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,\n      punctuation: /[.:,;(){}[\\]]/\n    }\n    Prism.languages.zig['class-name'].forEach(function (obj) {\n      if (obj.inside === null) {\n        obj.inside = Prism.languages.zig\n      }\n    })\n  })(Prism)\n}\n","/// <reference lib=\"WebWorker\"/>\n\nvar _self = (typeof window !== 'undefined')\n\t? window   // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {}   // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new <script> to load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tmanual: _self.Prism && _self.Prism.manual,\n\t\t/**\n\t\t * By default, if Prism is in a web worker, it assumes that it is in a worker it created itself, so it uses\n\t\t * `addEventListener` to communicate with its parent instance. However, if you're using Prism manually in your\n\t\t * own worker, you don't want it to do this.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not add its own listeners to the worker.\n\t\t *\n\t\t * You obviously have to change this value before Prism executes. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.disableWorkerMessageHandler = true;\n\t\t * // Load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\n\t\t/**\n\t\t * A namespace for utility methods.\n\t\t *\n\t\t * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n\t\t * change or disappear at any time.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t */\n\t\tutil: {\n\t\t\tencode: function encode(tokens) {\n\t\t\t\tif (tokens instanceof Token) {\n\t\t\t\t\treturn new Token(tokens.type, encode(tokens.content), tokens.alias);\n\t\t\t\t} else if (Array.isArray(tokens)) {\n\t\t\t\t\treturn tokens.map(encode);\n\t\t\t\t} else {\n\t\t\t\t\treturn tokens.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\\u00a0/g, ' ');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the name of the type of the given value.\n\t\t\t *\n\t\t\t * @param {any} o\n\t\t\t * @returns {string}\n\t\t\t * @example\n\t\t\t * type(null)      === 'Null'\n\t\t\t * type(undefined) === 'Undefined'\n\t\t\t * type(123)       === 'Number'\n\t\t\t * type('foo')     === 'String'\n\t\t\t * type(true)      === 'Boolean'\n\t\t\t * type([1, 2])    === 'Array'\n\t\t\t * type({})        === 'Object'\n\t\t\t * type(String)    === 'Function'\n\t\t\t * type(/abc+/)    === 'RegExp'\n\t\t\t */\n\t\t\ttype: function (o) {\n\t\t\t\treturn Object.prototype.toString.call(o).slice(8, -1);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns a unique number for the given object. Later calls will still return the same number.\n\t\t\t *\n\t\t\t * @param {Object} obj\n\t\t\t * @returns {number}\n\t\t\t */\n\t\t\tobjId: function (obj) {\n\t\t\t\tif (!obj['__id']) {\n\t\t\t\t\tObject.defineProperty(obj, '__id', { value: ++uniqueId });\n\t\t\t\t}\n\t\t\t\treturn obj['__id'];\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Creates a deep clone of the given object.\n\t\t\t *\n\t\t\t * The main intended use of this function is to clone language definitions.\n\t\t\t *\n\t\t\t * @param {T} o\n\t\t\t * @param {Record<number, any>} [visited]\n\t\t\t * @returns {T}\n\t\t\t * @template T\n\t\t\t */\n\t\t\tclone: function deepClone(o, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar clone; var id;\n\t\t\t\tswitch (_.util.type(o)) {\n\t\t\t\t\tcase 'Object':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = /** @type {Record<string, any>} */ ({});\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\tfor (var key in o) {\n\t\t\t\t\t\t\tif (o.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tclone[key] = deepClone(o[key], visited);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tcase 'Array':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\t(/** @type {Array} */(/** @type {any} */(o))).forEach(function (v, i) {\n\t\t\t\t\t\t\tclone[i] = deepClone(v, visited);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn o;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n\t\t\t *\n\t\t\t * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tgetLanguage: function (element) {\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar m = lang.exec(element.className);\n\t\t\t\t\tif (m) {\n\t\t\t\t\t\treturn m[1].toLowerCase();\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn 'none';\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Sets the Prism `language-xxxx` class of the given element.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} language\n\t\t\t * @returns {void}\n\t\t\t */\n\t\t\tsetLanguage: function (element, language) {\n\t\t\t\t// remove all `language-xxxx` classes\n\t\t\t\t// (this might leave behind a leading space)\n\t\t\t\telement.className = element.className.replace(RegExp(lang, 'gi'), '');\n\n\t\t\t\t// add the new `language-xxxx` class\n\t\t\t\t// (using `classList` will automatically clean up spaces for us)\n\t\t\t\telement.classList.add('language-' + language);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the script element that is currently executing.\n\t\t\t *\n\t\t\t * This does __not__ work for line script element.\n\t\t\t *\n\t\t\t * @returns {HTMLScriptElement | null}\n\t\t\t */\n\t\t\tcurrentScript: function () {\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif ('currentScript' in document && 1 < 2 /* hack to trip TS' flow analysis */) {\n\t\t\t\t\treturn /** @type {any} */ (document.currentScript);\n\t\t\t\t}\n\n\t\t\t\t// IE11 workaround\n\t\t\t\t// we'll get the src of the current script by parsing IE11's error stack trace\n\t\t\t\t// this will not work for inline scripts\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new Error();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Get file src url from stack. Specifically works with the format of stack traces in IE.\n\t\t\t\t\t// A stack will look like this:\n\t\t\t\t\t//\n\t\t\t\t\t// Error\n\t\t\t\t\t//    at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n\t\t\t\t\t//    at Global code (http://localhost/components/prism-core.js:606:1)\n\n\t\t\t\t\tvar src = (/at [^(\\r\\n]*\\((.*):[^:]+:[^:]+\\)$/i.exec(err.stack) || [])[1];\n\t\t\t\t\tif (src) {\n\t\t\t\t\t\tvar scripts = document.getElementsByTagName('script');\n\t\t\t\t\t\tfor (var i in scripts) {\n\t\t\t\t\t\t\tif (scripts[i].src == src) {\n\t\t\t\t\t\t\t\treturn scripts[i];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns whether a given class is active for `element`.\n\t\t\t *\n\t\t\t * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n\t\t\t * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n\t\t\t * given class is just the given class with a `no-` prefix.\n\t\t\t *\n\t\t\t * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n\t\t\t * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n\t\t\t * ancestors have the given class or the negated version of it, then the default activation will be returned.\n\t\t\t *\n\t\t\t * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n\t\t\t * version of it, the class is considered active.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} className\n\t\t\t * @param {boolean} [defaultActivation=false]\n\t\t\t * @returns {boolean}\n\t\t\t */\n\t\t\tisActive: function (element, className, defaultActivation) {\n\t\t\t\tvar no = 'no-' + className;\n\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar classList = element.classList;\n\t\t\t\t\tif (classList.contains(className)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tif (classList.contains(no)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn !!defaultActivation;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tlanguages: {\n\t\t\t/**\n\t\t\t * The grammar for plain, unformatted text.\n\t\t\t */\n\t\t\tplain: plainTextGrammar,\n\t\t\tplaintext: plainTextGrammar,\n\t\t\ttext: plainTextGrammar,\n\t\t\ttxt: plainTextGrammar,\n\n\t\t\t/**\n\t\t\t * Creates a deep copy of the language with the given id and appends the given tokens.\n\t\t\t *\n\t\t\t * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n\t\t\t * will be overwritten at its original position.\n\t\t\t *\n\t\t\t * ## Best practices\n\t\t\t *\n\t\t\t * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n\t\t\t * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n\t\t\t * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n\t\t\t *\n\t\t\t * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n\t\t\t * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n\t\t\t *\n\t\t\t * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n\t\t\t * @param {Grammar} redef The new tokens to append.\n\t\t\t * @returns {Grammar} The new language created.\n\t\t\t * @public\n\t\t\t * @example\n\t\t\t * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n\t\t\t *     // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n\t\t\t *     // at its original position\n\t\t\t *     'comment': { ... },\n\t\t\t *     // CSS doesn't have a 'color' token, so this token will be appended\n\t\t\t *     'color': /\\b(?:red|green|blue)\\b/\n\t\t\t * });\n\t\t\t */\n\t\t\textend: function (id, redef) {\n\t\t\t\tvar lang = _.util.clone(_.languages[id]);\n\n\t\t\t\tfor (var key in redef) {\n\t\t\t\t\tlang[key] = redef[key];\n\t\t\t\t}\n\n\t\t\t\treturn lang;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Inserts tokens _before_ another token in a language definition or any other grammar.\n\t\t\t *\n\t\t\t * ## Usage\n\t\t\t *\n\t\t\t * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n\t\t\t * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n\t\t\t * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n\t\t\t * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n\t\t\t * this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.markup.style = {\n\t\t\t *     // token\n\t\t\t * };\n\t\t\t * ```\n\t\t\t *\n\t\t\t * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n\t\t\t * before existing tokens. For the CSS example above, you would use it like this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'cdata', {\n\t\t\t *     'style': {\n\t\t\t *         // token\n\t\t\t *     }\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Special cases\n\t\t\t *\n\t\t\t * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n\t\t\t * will be ignored.\n\t\t\t *\n\t\t\t * This behavior can be used to insert tokens after `before`:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'comment', {\n\t\t\t *     'comment': Prism.languages.markup.comment,\n\t\t\t *     // tokens after 'comment'\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Limitations\n\t\t\t *\n\t\t\t * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n\t\t\t * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n\t\t\t * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n\t\t\t * deleting properties which is necessary to insert at arbitrary positions.\n\t\t\t *\n\t\t\t * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n\t\t\t * Instead, it will create a new object and replace all references to the target object with the new one. This\n\t\t\t * can be done without temporarily deleting properties, so the iteration order is well-defined.\n\t\t\t *\n\t\t\t * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n\t\t\t * you hold the target object in a variable, then the value of the variable will not change.\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * var oldMarkup = Prism.languages.markup;\n\t\t\t * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n\t\t\t *\n\t\t\t * assert(oldMarkup !== Prism.languages.markup);\n\t\t\t * assert(newMarkup === Prism.languages.markup);\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n\t\t\t * object to be modified.\n\t\t\t * @param {string} before The key to insert before.\n\t\t\t * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n\t\t\t * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n\t\t\t * object to be modified.\n\t\t\t *\n\t\t\t * Defaults to `Prism.languages`.\n\t\t\t * @returns {Grammar} The new grammar object.\n\t\t\t * @public\n\t\t\t */\n\t\t\tinsertBefore: function (inside, before, insert, root) {\n\t\t\t\troot = root || /** @type {any} */ (_.languages);\n\t\t\t\tvar grammar = root[inside];\n\t\t\t\t/** @type {Grammar} */\n\t\t\t\tvar ret = {};\n\n\t\t\t\tfor (var token in grammar) {\n\t\t\t\t\tif (grammar.hasOwnProperty(token)) {\n\n\t\t\t\t\t\tif (token == before) {\n\t\t\t\t\t\t\tfor (var newToken in insert) {\n\t\t\t\t\t\t\t\tif (insert.hasOwnProperty(newToken)) {\n\t\t\t\t\t\t\t\t\tret[newToken] = insert[newToken];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Do not insert token which also occur in insert. See #1525\n\t\t\t\t\t\tif (!insert.hasOwnProperty(token)) {\n\t\t\t\t\t\t\tret[token] = grammar[token];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar old = root[inside];\n\t\t\t\troot[inside] = ret;\n\n\t\t\t\t// Update references in other language definitions\n\t\t\t\t_.languages.DFS(_.languages, function (key, value) {\n\t\t\t\t\tif (value === old && key != inside) {\n\t\t\t\t\t\tthis[key] = ret;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn ret;\n\t\t\t},\n\n\t\t\t// Traverse a language definition with Depth First Search\n\t\t\tDFS: function DFS(o, callback, type, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar objId = _.util.objId;\n\n\t\t\t\tfor (var i in o) {\n\t\t\t\t\tif (o.hasOwnProperty(i)) {\n\t\t\t\t\t\tcallback.call(o, i, o[i], type || i);\n\n\t\t\t\t\t\tvar property = o[i];\n\t\t\t\t\t\tvar propertyType = _.util.type(property);\n\n\t\t\t\t\t\tif (propertyType === 'Object' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, null, visited);\n\t\t\t\t\t\t} else if (propertyType === 'Array' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, i, visited);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tplugins: {},\n\n\t\t/**\n\t\t * This is the most high-level function in Prism’s API.\n\t\t * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n\t\t * each one of them.\n\t\t *\n\t\t * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n\t\t *\n\t\t * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAll: function (async, callback) {\n\t\t\t_.highlightAllUnder(document, async, callback);\n\t\t},\n\n\t\t/**\n\t\t * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n\t\t * {@link Prism.highlightElement} on each one of them.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-highlightall`\n\t\t * 2. `before-all-elements-highlight`\n\t\t * 3. All hooks of {@link Prism.highlightElement} for each element.\n\t\t *\n\t\t * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n\t\t * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAllUnder: function (container, async, callback) {\n\t\t\tvar env = {\n\t\t\t\tcallback: callback,\n\t\t\t\tcontainer: container,\n\t\t\t\tselector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n\t\t\t};\n\n\t\t\t_.hooks.run('before-highlightall', env);\n\n\t\t\tenv.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n\t\t\t_.hooks.run('before-all-elements-highlight', env);\n\n\t\t\tfor (var i = 0, element; (element = env.elements[i++]);) {\n\t\t\t\t_.highlightElement(element, async === true, env.callback);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Highlights the code inside a single element.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-sanity-check`\n\t\t * 2. `before-highlight`\n\t\t * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n\t\t * 4. `before-insert`\n\t\t * 5. `after-highlight`\n\t\t * 6. `complete`\n\t\t *\n\t\t * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n\t\t * the element's language.\n\t\t *\n\t\t * @param {Element} element The element containing the code.\n\t\t * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n\t\t * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n\t\t * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n\t\t * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n\t\t *\n\t\t * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n\t\t * asynchronous highlighting to work. You can build your own bundle on the\n\t\t * [Download page](https://prismjs.com/download.html).\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n\t\t * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightElement: function (element, async, callback) {\n\t\t\t// Find language\n\t\t\tvar language = _.util.getLanguage(element);\n\t\t\tvar grammar = _.languages[language];\n\n\t\t\t// Set language on the element, if not present\n\t\t\t_.util.setLanguage(element, language);\n\n\t\t\t// Set language on the parent, for styling\n\t\t\tvar parent = element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre') {\n\t\t\t\t_.util.setLanguage(parent, language);\n\t\t\t}\n\n\t\t\tvar code = element.textContent;\n\n\t\t\tvar env = {\n\t\t\t\telement: element,\n\t\t\t\tlanguage: language,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tcode: code\n\t\t\t};\n\n\t\t\tfunction insertHighlightedCode(highlightedCode) {\n\t\t\t\tenv.highlightedCode = highlightedCode;\n\n\t\t\t\t_.hooks.run('before-insert', env);\n\n\t\t\t\tenv.element.innerHTML = env.highlightedCode;\n\n\t\t\t\t_.hooks.run('after-highlight', env);\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t}\n\n\t\t\t_.hooks.run('before-sanity-check', env);\n\n\t\t\t// plugins may change/add the parent/element\n\t\t\tparent = env.element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre' && !parent.hasAttribute('tabindex')) {\n\t\t\t\tparent.setAttribute('tabindex', '0');\n\t\t\t}\n\n\t\t\tif (!env.code) {\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_.hooks.run('before-highlight', env);\n\n\t\t\tif (!env.grammar) {\n\t\t\t\tinsertHighlightedCode(_.util.encode(env.code));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (async && _self.Worker) {\n\t\t\t\tvar worker = new Worker(_.filename);\n\n\t\t\t\tworker.onmessage = function (evt) {\n\t\t\t\t\tinsertHighlightedCode(evt.data);\n\t\t\t\t};\n\n\t\t\t\tworker.postMessage(JSON.stringify({\n\t\t\t\t\tlanguage: env.language,\n\t\t\t\t\tcode: env.code,\n\t\t\t\t\timmediateClose: true\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tinsertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns a string with the HTML produced.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-tokenize`\n\t\t * 2. `after-tokenize`\n\t\t * 3. `wrap`: On each {@link Token}.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @param {string} language The name of the language definition passed to `grammar`.\n\t\t * @returns {string} The highlighted HTML.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n\t\t */\n\t\thighlight: function (text, grammar, language) {\n\t\t\tvar env = {\n\t\t\t\tcode: text,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tlanguage: language\n\t\t\t};\n\t\t\t_.hooks.run('before-tokenize', env);\n\t\t\tif (!env.grammar) {\n\t\t\t\tthrow new Error('The language \"' + env.language + '\" has no grammar.');\n\t\t\t}\n\t\t\tenv.tokens = _.tokenize(env.code, env.grammar);\n\t\t\t_.hooks.run('after-tokenize', env);\n\t\t\treturn Token.stringify(_.util.encode(env.tokens), env.language);\n\t\t},\n\n\t\t/**\n\t\t * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns an array with the tokenized code.\n\t\t *\n\t\t * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n\t\t *\n\t\t * This method could be useful in other contexts as well, as a very crude parser.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @returns {TokenStream} An array of strings and tokens, a token stream.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * let code = `var foo = 0;`;\n\t\t * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n\t\t * tokens.forEach(token => {\n\t\t *     if (token instanceof Prism.Token && token.type === 'number') {\n\t\t *         console.log(`Found numeric literal: ${token.content}`);\n\t\t *     }\n\t\t * });\n\t\t */\n\t\ttokenize: function (text, grammar) {\n\t\t\tvar rest = grammar.rest;\n\t\t\tif (rest) {\n\t\t\t\tfor (var token in rest) {\n\t\t\t\t\tgrammar[token] = rest[token];\n\t\t\t\t}\n\n\t\t\t\tdelete grammar.rest;\n\t\t\t}\n\n\t\t\tvar tokenList = new LinkedList();\n\t\t\taddAfter(tokenList, tokenList.head, text);\n\n\t\t\tmatchGrammar(text, tokenList, grammar, tokenList.head, 0);\n\n\t\t\treturn toArray(tokenList);\n\t\t},\n\n\t\t/**\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thooks: {\n\t\t\tall: {},\n\n\t\t\t/**\n\t\t\t * Adds the given callback to the list of callbacks for the given hook.\n\t\t\t *\n\t\t\t * The callback will be invoked when the hook it is registered for is run.\n\t\t\t * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n\t\t\t *\n\t\t\t * One callback function can be registered to multiple hooks and the same hook multiple times.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {HookCallback} callback The callback function which is given environment variables.\n\t\t\t * @public\n\t\t\t */\n\t\t\tadd: function (name, callback) {\n\t\t\t\tvar hooks = _.hooks.all;\n\n\t\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\t\thooks[name].push(callback);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Runs a hook invoking all registered callbacks with the given environment variables.\n\t\t\t *\n\t\t\t * Callbacks will be invoked synchronously and in the order in which they were registered.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n\t\t\t * @public\n\t\t\t */\n\t\t\trun: function (name, env) {\n\t\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0, callback; (callback = callbacks[i++]);) {\n\t\t\t\t\tcallback(env);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tToken: Token\n\t};\n\t_self.Prism = _;\n\n\n\t// Typescript note:\n\t// The following can be used to import the Token type in JSDoc:\n\t//\n\t//   @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n\t/**\n\t * Creates a new token.\n\t *\n\t * @param {string} type See {@link Token#type type}\n\t * @param {string | TokenStream} content See {@link Token#content content}\n\t * @param {string|string[]} [alias] The alias(es) of the token.\n\t * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n\t * @class\n\t * @global\n\t * @public\n\t */\n\tfunction Token(type, content, alias, matchedStr) {\n\t\t/**\n\t\t * The type of the token.\n\t\t *\n\t\t * This is usually the key of a pattern in a {@link Grammar}.\n\t\t *\n\t\t * @type {string}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.type = type;\n\t\t/**\n\t\t * The strings or tokens contained by this token.\n\t\t *\n\t\t * This will be a token stream if the pattern matched also defined an `inside` grammar.\n\t\t *\n\t\t * @type {string | TokenStream}\n\t\t * @public\n\t\t */\n\t\tthis.content = content;\n\t\t/**\n\t\t * The alias(es) of the token.\n\t\t *\n\t\t * @type {string|string[]}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.alias = alias;\n\t\t// Copy of the full string this token was created from\n\t\tthis.length = (matchedStr || '').length | 0;\n\t}\n\n\t/**\n\t * A token stream is an array of strings and {@link Token Token} objects.\n\t *\n\t * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n\t * them.\n\t *\n\t * 1. No adjacent strings.\n\t * 2. No empty strings.\n\t *\n\t *    The only exception here is the token stream that only contains the empty string and nothing else.\n\t *\n\t * @typedef {Array<string | Token>} TokenStream\n\t * @global\n\t * @public\n\t */\n\n\t/**\n\t * Converts the given token or token stream to an HTML representation.\n\t *\n\t * The following hooks will be run:\n\t * 1. `wrap`: On each {@link Token}.\n\t *\n\t * @param {string | Token | TokenStream} o The token or token stream to be converted.\n\t * @param {string} language The name of current language.\n\t * @returns {string} The HTML representation of the token or token stream.\n\t * @memberof Token\n\t * @static\n\t */\n\tToken.stringify = function stringify(o, language) {\n\t\tif (typeof o == 'string') {\n\t\t\treturn o;\n\t\t}\n\t\tif (Array.isArray(o)) {\n\t\t\tvar s = '';\n\t\t\to.forEach(function (e) {\n\t\t\t\ts += stringify(e, language);\n\t\t\t});\n\t\t\treturn s;\n\t\t}\n\n\t\tvar env = {\n\t\t\ttype: o.type,\n\t\t\tcontent: stringify(o.content, language),\n\t\t\ttag: 'span',\n\t\t\tclasses: ['token', o.type],\n\t\t\tattributes: {},\n\t\t\tlanguage: language\n\t\t};\n\n\t\tvar aliases = o.alias;\n\t\tif (aliases) {\n\t\t\tif (Array.isArray(aliases)) {\n\t\t\t\tArray.prototype.push.apply(env.classes, aliases);\n\t\t\t} else {\n\t\t\t\tenv.classes.push(aliases);\n\t\t\t}\n\t\t}\n\n\t\t_.hooks.run('wrap', env);\n\n\t\tvar attributes = '';\n\t\tfor (var name in env.attributes) {\n\t\t\tattributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '&quot;') + '\"';\n\t\t}\n\n\t\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n\t};\n\n\t/**\n\t * @param {RegExp} pattern\n\t * @param {number} pos\n\t * @param {string} text\n\t * @param {boolean} lookbehind\n\t * @returns {RegExpExecArray | null}\n\t */\n\tfunction matchPattern(pattern, pos, text, lookbehind) {\n\t\tpattern.lastIndex = pos;\n\t\tvar match = pattern.exec(text);\n\t\tif (match && lookbehind && match[1]) {\n\t\t\t// change the match to remove the text matched by the Prism lookbehind group\n\t\t\tvar lookbehindLength = match[1].length;\n\t\t\tmatch.index += lookbehindLength;\n\t\t\tmatch[0] = match[0].slice(lookbehindLength);\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t * @param {string} text\n\t * @param {LinkedList<string | Token>} tokenList\n\t * @param {any} grammar\n\t * @param {LinkedListNode<string | Token>} startNode\n\t * @param {number} startPos\n\t * @param {RematchOptions} [rematch]\n\t * @returns {void}\n\t * @private\n\t *\n\t * @typedef RematchOptions\n\t * @property {string} cause\n\t * @property {number} reach\n\t */\n\tfunction matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n\t\tfor (var token in grammar) {\n\t\t\tif (!grammar.hasOwnProperty(token) || !grammar[token]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar patterns = grammar[token];\n\t\t\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\n\n\t\t\tfor (var j = 0; j < patterns.length; ++j) {\n\t\t\t\tif (rematch && rematch.cause == token + ',' + j) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar patternObj = patterns[j];\n\t\t\t\tvar inside = patternObj.inside;\n\t\t\t\tvar lookbehind = !!patternObj.lookbehind;\n\t\t\t\tvar greedy = !!patternObj.greedy;\n\t\t\t\tvar alias = patternObj.alias;\n\n\t\t\t\tif (greedy && !patternObj.pattern.global) {\n\t\t\t\t\t// Without the global flag, lastIndex won't work\n\t\t\t\t\tvar flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n\t\t\t\t\tpatternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n\t\t\t\t}\n\n\t\t\t\t/** @type {RegExp} */\n\t\t\t\tvar pattern = patternObj.pattern || patternObj;\n\n\t\t\t\tfor ( // iterate the token list and keep track of the current token/string position\n\t\t\t\t\tvar currentNode = startNode.next, pos = startPos;\n\t\t\t\t\tcurrentNode !== tokenList.tail;\n\t\t\t\t\tpos += currentNode.value.length, currentNode = currentNode.next\n\t\t\t\t) {\n\n\t\t\t\t\tif (rematch && pos >= rematch.reach) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar str = currentNode.value;\n\n\t\t\t\t\tif (tokenList.length > text.length) {\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeCount = 1; // this is the to parameter of removeBetween\n\t\t\t\t\tvar match;\n\n\t\t\t\t\tif (greedy) {\n\t\t\t\t\t\tmatch = matchPattern(pattern, pos, text, lookbehind);\n\t\t\t\t\t\tif (!match || match.index >= text.length) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar from = match.index;\n\t\t\t\t\t\tvar to = match.index + match[0].length;\n\t\t\t\t\t\tvar p = pos;\n\n\t\t\t\t\t\t// find the node that contains the match\n\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\twhile (from >= p) {\n\t\t\t\t\t\t\tcurrentNode = currentNode.next;\n\t\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// adjust pos (and p)\n\t\t\t\t\t\tp -= currentNode.value.length;\n\t\t\t\t\t\tpos = p;\n\n\t\t\t\t\t\t// the current node is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\t\tif (currentNode.value instanceof Token) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// find the last node which is affected by this match\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tvar k = currentNode;\n\t\t\t\t\t\t\tk !== tokenList.tail && (p < to || typeof k.value === 'string');\n\t\t\t\t\t\t\tk = k.next\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveCount++;\n\t\t\t\t\t\t\tp += k.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tremoveCount--;\n\n\t\t\t\t\t\t// replace with the new match\n\t\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatch = matchPattern(pattern, 0, str, lookbehind);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// eslint-disable-next-line no-redeclare\n\t\t\t\t\tvar from = match.index;\n\t\t\t\t\tvar matchStr = match[0];\n\t\t\t\t\tvar before = str.slice(0, from);\n\t\t\t\t\tvar after = str.slice(from + matchStr.length);\n\n\t\t\t\t\tvar reach = pos + str.length;\n\t\t\t\t\tif (rematch && reach > rematch.reach) {\n\t\t\t\t\t\trematch.reach = reach;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeFrom = currentNode.prev;\n\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\tremoveFrom = addAfter(tokenList, removeFrom, before);\n\t\t\t\t\t\tpos += before.length;\n\t\t\t\t\t}\n\n\t\t\t\t\tremoveRange(tokenList, removeFrom, removeCount);\n\n\t\t\t\t\tvar wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n\t\t\t\t\tcurrentNode = addAfter(tokenList, removeFrom, wrapped);\n\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\taddAfter(tokenList, currentNode, after);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (removeCount > 1) {\n\t\t\t\t\t\t// at least one Token object was removed, so we have to do some rematching\n\t\t\t\t\t\t// this can only happen if the current pattern is greedy\n\n\t\t\t\t\t\t/** @type {RematchOptions} */\n\t\t\t\t\t\tvar nestedRematch = {\n\t\t\t\t\t\t\tcause: token + ',' + j,\n\t\t\t\t\t\t\treach: reach\n\t\t\t\t\t\t};\n\t\t\t\t\t\tmatchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n\n\t\t\t\t\t\t// the reach might have been extended because of the rematching\n\t\t\t\t\t\tif (rematch && nestedRematch.reach > rematch.reach) {\n\t\t\t\t\t\t\trematch.reach = nestedRematch.reach;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @typedef LinkedListNode\n\t * @property {T} value\n\t * @property {LinkedListNode<T> | null} prev The previous node.\n\t * @property {LinkedListNode<T> | null} next The next node.\n\t * @template T\n\t * @private\n\t */\n\n\t/**\n\t * @template T\n\t * @private\n\t */\n\tfunction LinkedList() {\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar head = { value: null, prev: null, next: null };\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar tail = { value: null, prev: head, next: null };\n\t\thead.next = tail;\n\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.head = head;\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.tail = tail;\n\t\tthis.length = 0;\n\t}\n\n\t/**\n\t * Adds a new node with the given value to the list.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {T} value\n\t * @returns {LinkedListNode<T>} The added node.\n\t * @template T\n\t */\n\tfunction addAfter(list, node, value) {\n\t\t// assumes that node != list.tail && values.length >= 0\n\t\tvar next = node.next;\n\n\t\tvar newNode = { value: value, prev: node, next: next };\n\t\tnode.next = newNode;\n\t\tnext.prev = newNode;\n\t\tlist.length++;\n\n\t\treturn newNode;\n\t}\n\t/**\n\t * Removes `count` nodes after the given node. The given node will not be removed.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {number} count\n\t * @template T\n\t */\n\tfunction removeRange(list, node, count) {\n\t\tvar next = node.next;\n\t\tfor (var i = 0; i < count && next !== list.tail; i++) {\n\t\t\tnext = next.next;\n\t\t}\n\t\tnode.next = next;\n\t\tnext.prev = node;\n\t\tlist.length -= i;\n\t}\n\t/**\n\t * @param {LinkedList<T>} list\n\t * @returns {T[]}\n\t * @template T\n\t */\n\tfunction toArray(list) {\n\t\tvar array = [];\n\t\tvar node = list.head.next;\n\t\twhile (node !== list.tail) {\n\t\t\tarray.push(node.value);\n\t\t\tnode = node.next;\n\t\t}\n\t\treturn array;\n\t}\n\n\n\tif (!_self.document) {\n\t\tif (!_self.addEventListener) {\n\t\t\t// in Node.js\n\t\t\treturn _;\n\t\t}\n\n\t\tif (!_.disableWorkerMessageHandler) {\n\t\t\t// In worker\n\t\t\t_self.addEventListener('message', function (evt) {\n\t\t\t\tvar message = JSON.parse(evt.data);\n\t\t\t\tvar lang = message.language;\n\t\t\t\tvar code = message.code;\n\t\t\t\tvar immediateClose = message.immediateClose;\n\n\t\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\t\tif (immediateClose) {\n\t\t\t\t\t_self.close();\n\t\t\t\t}\n\t\t\t}, false);\n\t\t}\n\n\t\treturn _;\n\t}\n\n\t// Get current script and highlight\n\tvar script = _.util.currentScript();\n\n\tif (script) {\n\t\t_.filename = script.src;\n\n\t\tif (script.hasAttribute('data-manual')) {\n\t\t\t_.manual = true;\n\t\t}\n\t}\n\n\tfunction highlightAutomaticallyCallback() {\n\t\tif (!_.manual) {\n\t\t\t_.highlightAll();\n\t\t}\n\t}\n\n\tif (!_.manual) {\n\t\t// If the document state is \"loading\", then we'll use DOMContentLoaded.\n\t\t// If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n\t\t// DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n\t\t// might take longer one animation frame to execute which can create a race condition where only some plugins have\n\t\t// been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n\t\t// See https://github.com/PrismJS/prism/issues/2102\n\t\tvar readyState = document.readyState;\n\t\tif (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n\t\t\tdocument.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n\t\t} else {\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(highlightAutomaticallyCallback);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(highlightAutomaticallyCallback, 16);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn _;\n\n}(_self));\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n// some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n */\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n */\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n","/**\n * @license React\n * scheduler.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';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n  module.exports = require('./cjs/scheduler.development.js');\n}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param  {String}      style      - The inline style.\n * @param  {Function}    [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n  var output = null;\n  if (!style || typeof style !== 'string') {\n    return output;\n  }\n\n  var declaration;\n  var declarations = parse(style);\n  var hasIterator = typeof iterator === 'function';\n  var property;\n  var value;\n\n  for (var i = 0, len = declarations.length; i < len; i++) {\n    declaration = declarations[i];\n    property = declaration.property;\n    value = declaration.value;\n\n    if (hasIterator) {\n      iterator(property, value, declaration);\n    } else if (value) {\n      output || (output = {});\n      output[property] = value;\n    }\n  }\n\n  return output;\n}\n\nmodule.exports = StyleToObject;\n","module.exports = extend\n\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}\n","function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\nfunction _createSuper(Derived) {\n  var hasNativeReflectConstruct = isNativeReflectConstruct();\n  return function _createSuperInternal() {\n    var Super = getPrototypeOf(Derived),\n      result;\n    if (hasNativeReflectConstruct) {\n      var NewTarget = getPrototypeOf(this).constructor;\n      result = Reflect.construct(Super, arguments, NewTarget);\n    } else {\n      result = Super.apply(this, arguments);\n    }\n    return possibleConstructorReturn(this, result);\n  };\n}\nmodule.exports = _createSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var superPropBase = require(\"./superPropBase.js\");\nfunction _get() {\n  if (typeof Reflect !== \"undefined\" && Reflect.get) {\n    module.exports = _get = Reflect.get.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  } else {\n    module.exports = _get = function _get(target, property, receiver) {\n      var base = superPropBase(target, property);\n      if (!base) return;\n      var desc = Object.getOwnPropertyDescriptor(base, property);\n      if (desc.get) {\n        return desc.get.call(arguments.length < 3 ? target : receiver);\n      }\n      return desc.value;\n    }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  }\n  return _get.apply(this, arguments);\n}\nmodule.exports = _get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n  module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  Object.defineProperty(subClass, \"prototype\", {\n    writable: false\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n  try {\n    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  } else if (call !== void 0) {\n    throw new TypeError(\"Derived constructors may only return object or undefined\");\n  }\n  return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n  module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nfunction _superPropBase(object, property) {\n  while (!Object.prototype.hasOwnProperty.call(object, property)) {\n    object = getPrototypeOf(object);\n    if (object === null) break;\n  }\n  return object;\n}\nmodule.exports = _superPropBase, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export default function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    enumerableOnly && (symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    })), keys.push.apply(keys, symbols);\n  }\n  return keys;\n}\nexport default function _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = null != arguments[i] ? arguments[i] : {};\n    i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n      defineProperty(target, key, source[key]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n    });\n  }\n  return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n  return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n  return target;\n}","export default function _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n  return arr2;\n}","export default function _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n  var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n  if (_i == null) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _s, _e;\n  try {\n    for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n  return _arr;\n}","\nconst data = {\n  \"categories\": [\n  {\n    \"title\": \"Proxmox VE Tools\",\n  }, {\n    \"title\": \"Home Assistant\",\n  }, {\n    \"title\": \"Automation\",\n  }, {\n    \"title\": \"MQTT\",\n  }, {\n    \"title\": \"Database\",\n  }, {\n    \"title\": \"Zigbee - Zwave\",\n  }, {\n    \"title\": \"Monitoring - Analytics\",\n  }, {\n    \"title\": \"Docker - Kubernetes\",\n  }, {\n    \"title\": \"Operating System\",\n  }, {\n    \"title\": \"TurnKey\",\n  }, {\n    \"title\": \"Server - Networking\",\n  }, {\n    \"title\": \"Media - Photo\",\n  }, {\n    \"title\": \"Ad Blocker - DNS\",\n  }, {\n    \"title\": \"Document - Notes\",\n  }, {\n    \"title\": \"Dashboards\",\n  }, {\n    \"title\": \"File - Code\",\n  }, {\n    \"title\": \"Miscellaneous\",\n  }],\n  \"items\": [\n  {\n    \"category\": \"Proxmox VE Tools\",\n    \"title\": \"Proxmox VE Post Install\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/proxmoxve/icon.png?raw=true\" height=\"100\"/></p>\n   \n  <h1 align=\"center\" id=\"heading\"> Proxmox VE Post Install </h1>\n  \n  This script provides options for managing Proxmox VE repositories, including disabling the Enterprise Repo, adding or correcting PVE sources, enabling the No-Subscription Repo, adding the test Repo, disabling the subscription nag, updating Proxmox VE, and rebooting the system.\n    \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)\"\n  ~~~\n  \n  It is recommended to answer “yes” (y) to all options presented during the process.`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE Kernel Clean\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/proxmoxve/icon.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Proxmox VE Kernel Clean </h1>\n  Cleaning unused kernel images is beneficial for reducing the length of the GRUB menu and freeing up disk space. By removing old, unused kernels, the system is able to conserve disk space and streamline the boot process.\n      \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/kernel-clean.sh)\"\n  ~~~`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE Processor Microcode\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/processor.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Proxmox VE Processor Microcode </h1>\n  <h3 align=\"center\"> For Intel or AMD Processors </h3>\n  \n  Processor Microcode is a layer of low-level software that runs on the processor and provides patches or updates to its firmware. Microcode updates can fix hardware bugs, improve performance, and enhance security features of the processor.\n\n  It's important to note that the availability of firmware update mechanisms, such as Intel's Management Engine (ME) or AMD's Platform Security Processor (PSP), may vary depending on the processor and its specific implementation. Therefore, it's recommended to consult the documentation for your processor to confirm whether firmware updates can be applied through the operating system.  \n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/microcode.sh)\"\n  ~~~\n  \n\n  After a reboot, you can check whether any microcode updates are currently in effect by running the following command.\n\n  ~~~bash\n  journalctl -k | grep -E \"microcode\" | head -n 1\n  ~~~`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE CPU Scaling Governor\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/cpu.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Proxmox VE CPU Scaling Governor </h1>\n\n  The CPU scaling governor determines how the CPU frequency is adjusted based on the workload, with the goal of either conserving power or improving performance. By scaling the frequency up or down, the operating system can optimize the CPU usage and conserve energy when possible. [Generic Scaling Governors](https://www.kernel.org/doc/html/latest/admin-guide/pm/cpufreq.html?#generic-scaling-governors)\n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/scaling-governor.sh)\"\n  ~~~`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE LXC Cleaner\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/lxc.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Proxmox VE LXC Cleaner </h1>\n  This script provides options to delete logs and cache, and repopulate apt lists for Ubuntu and Debian systems.\n   \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/clean-lxcs.sh)\"\n  ~~~`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE LXC Updater\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/lxc.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Proxmox VE LXC Updater </h1>\n  This script has been created to simplify and speed up the process of updating all LXC containers across various Linux distributions, such as Ubuntu, Debian, Devuan, Alpine Linux, CentOS-Rocky-Alma, Fedora, and ArchLinux. It's designed to automatically skip templates and specific containers during the update, enhancing its convenience and usability.<br> \n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/update-lxcs.sh)\"\n  ~~~`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE Cron LXC Updater\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/lxc.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Proxmox VE Cron LXC Updater </h1>\n  This script will add/remove a crontab schedule that updates all LXCs every Sunday at midnight.<br> \n  \n  To exclude LXCs from updating, edit crontab (<code class=\"highlighter-rouge\">crontab -e</code>) and add CTID as shown in the example (-s 103 111)\n\n  example: <code class=\"highlighter-rouge\">0 0 * * 0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/update-lxcs-cron.sh)\" -s 103 111 >>/var/log/update-lxcs-cron.log 2>/dev/null</code>\n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/cron-update-lxcs.sh)\"\n  ~~~`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE Monitor-All\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/monitor.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Proxmox VE Monitor-All </h1>\n  This script will add Monitor-All to Proxmox VE, which will monitor the status of all your instances, both containers and virtual machines, excluding templates and user-defined ones, and automatically restart or reset them if they become unresponsive. This is particularly useful if you're experiencing problems with Home Assistant becoming non-responsive every few days/weeks. Monitor-All also maintains a log of the entire process, which can be helpful for troubleshooting and monitoring purposes.<br>\n  \n  🛈 Virtual machines without the QEMU guest agent installed must be excluded. <br>\n  🛈 Prior to generating any new CT/VM not found in this repository, it's necessary to halt Proxmox VE Monitor-All by running <code class=\"highlighter-rouge\">systemctl stop ping-instances</code>. <br>\n  \n  All commands are run from the <b>Proxmox VE shell.</b>.\n  \n  <b>To add or remove Monitor-All in Proxmox VE:</b>\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/monitor-all.sh)\"\n  ~~~\n  <br>\n  <br>\n  To make setup changes, first stop the service: <code class=\"highlighter-rouge\">systemctl stop ping-instances</code>\n\n  To edit pause time: \n  ~~~bash\n  nano /usr/local/bin/ping-instances.sh\n  ~~~\n\n  To add excluded instances:\n  ~~~bash\n  nano /etc/systemd/system/ping-instances.service\n  ~~~\n  \n  After changes have been saved, <code class=\"highlighter-rouge\">systemctl daemon-reload</code> and start the service: <code class=\"highlighter-rouge\">systemctl start ping-instances</code>\n\n  Monitor-All logs : <code class=\"highlighter-rouge\">cat /var/log/ping-instances.log</code>`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE Host Backup\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/bash-dark.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Proxmox VE Host Backup </h1>\n  This script serves as a versatile backup utility, enabling users to specify both the backup path and the directory they want to work in. This flexibility empowers users to select the specific files and directories they wish to back up, making it compatible with a wide range of hosts, not limited to Proxmox.\n   \n  Run the command below in the <b>Proxmox VE Shell</b>, or any host.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/host-backup.sh)\"\n  ~~~\n  \n  A backup is rendered ineffective when it remains stored on the host`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE Dark Theme\",\n    \"content\": `<p align=\"center\"><img src=\"https://camo.githubusercontent.com/f6f33a09f8c1207dfb3dc1cbd754c2f3393562c11b1c999751ad9a91a656834a/68747470733a2f2f692e696d6775722e636f6d2f536e6c437948462e706e67\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Proxmox VE Discord Dark Theme </h1>\n  \n  A dark theme for the Proxmox VE Web UI is a custom theme created by [Weilbyte](https://github.com/Weilbyte/PVEDiscordDark) that changes the look and feel of the Proxmox web-based interface to a dark color scheme. This theme can improve the visual experience and make the interface easier on the eyes, especially when used in low-light environments.\n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash <(curl -s https://raw.githubusercontent.com/Weilbyte/PVEDiscordDark/master/PVEDiscordDark.sh ) install\n  ~~~\n  \n  To uninstall the theme, simply run the script with the <code class=\"highlighter-rouge\">uninstall</code> command.`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox Backup Server Post Install\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/proxmoxve/icon.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Proxmox Backup Server Post Install </h1>\n  The script will give options to Disable the Enterprise Repo, Add/Correct PBS Sources, Enable the No-Subscription Repo, Add Test Repo, Disable Subscription Nag, Update Proxmox Backup Server and Reboot PBS.\n  \n  Run the command below in the <b>Proxmox Backup Server Shell</b>. ⚠️ **Proxmox Backup Server ONLY**\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pbs-install.sh)\"\n  ~~~\n  \n  It is recommended to answer “yes” (y) to all options presented during the process.`\n  },\n  {\n    \"category\": \"Home Assistant\",\n\n    \"title\": \"Home Assistant OS VM\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/haos.png?raw=true\"/></p>\n   \n  <h1 align=\"center\" id=\"heading\"> Home Assistant OS VM </h1>\n  <h3 align=\"center\"> Option to create VM using Stable, Beta or Dev Image </h3>\n  \n  This script automates the process of creating a Virtual Machine (VM) using the official KVM (qcow2) disk image provided by the Home Assistant Team. It involves finding, downloading, and extracting the image, defining user-defined settings, importing and attaching the disk, setting the boot order, and starting the VM. It supports various storage types, and does not involve any hidden installations.\n\n  To create a new Proxmox VE Home Assistant OS VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/haos-vm.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  4GB RAM - 32GB Storage - 2vCPU - Stable Image ⚡</h3>\n  \n  🛈 The disk must have a minimum size of 32GB and its size cannot be changed during the creation of the VM.\n\n  After the script completes, click on the VM, then on the **_Summary_** tab to find the VM IP.\n  \n  **Home Assistant Interface: IP:8123**`\n  },\n  {\n    \"category\": \"Home Assistant\",\n\n    \"title\": \"PiMox HAOS VM\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/pimox.png?raw=true\" width=\"100\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\"> PiMox HAOS VM </h1>\n  \n  <h3 align=\"center\"> Option to create VM using Stable, Beta or Dev Image </h3>\n  \n  The script automates the manual process of finding, downloading and extracting the aarch64 (qcow2) disk image provided by the Home Assistant Team, creating a VM with user defined settings, importing and attaching the disk, setting the boot order and starting the VM.\n  \n  To create a new PiMox HAOS VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/pimox-haos-vm.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  4GB RAM - 32GB Storage - 2vCPU - Stable Image ⚡</h3>\n  \n  After the script completes, click on the VM, then on the **_Console_** tab to find the VM IP.\n  \n  **Home Assistant Interface: IP:8123**`\n  },\n  {\n    \"category\": \"Home Assistant\",\n\n    \"title\": \"Home Assistant Container LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/docker.svg\" height=\"100\"/>\n  <img src=\"https://avatars.githubusercontent.com/u/13844975?s=200&amp;v=4\" width=\"100\" height=\"100\"/><img src=\"https://avatars1.githubusercontent.com/u/22225832?s=400&amp;v=4\" alt=\"GitHub - portainer/portainer-docs: Portainer documentation\" width=\"100\" height=\"100\"/></p>\n    \n  <h1 align=\"center\" id=\"heading\"> Home Assistant Container LXC </h1>\n  <h3 align=\"center\"> Option to Use Fuse Overlayfs (Advanced)</h3> \n\n  A standalone container-based installation of Home Assistant Core means that the software is installed inside a Docker container, separate from the host operating system. This allows for flexibility and scalability, as well as improved security, as the container can be easily moved or isolated from other processes on the host.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Home Assistant Container LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Containers, Remove Images or Install HACS, run the command below (or type update) in the <b>LXC Console</b>.\n    \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homeassistant.sh)\"\n  ~~~\n    \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 16GB Storage - 2vCPU ⚡</h3>\n    \n  **Home Assistant Interface: IP:8123**\n    \n  **Portainer Interface: IP:9000**\n    \n  ⚙️ **Path to HA /config**\n  ~~~bash\n  /var/lib/docker/volumes/hass_config/_data\n  ~~~`\n  \n  },\n  {\n    \"category\": \"Home Assistant\",\n\n    \"title\": \"Home Assistant Core LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://avatars.githubusercontent.com/u/13844975?s=200&amp;v=4\" width=\"100\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Home Assistant Core LXC </h1>\n  \n  A standalone installation of Home Assistant Core refers to a setup where the Home Assistant Core software is installed directly on a device or operating system, without the use of containers. This provides a simpler, but less flexible and scalable solution, as the software is tightly coupled with the underlying system.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n  \n  To create a new Proxmox VE Home Assistant Core LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update, Install HACS or Filebrowser, run the command below (or type update) in the <b>LXC Console</b>. <br>\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homeassistant-core.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n\n  **Home Assistant Interface: IP:8123**\n  \n  ⚙️ **Path to HA /config**\n  ~~~bash\n  /root/.homeassistant\n  ~~~`\n  \n  },\n  {\n    \"category\": \"Home Assistant\",\n\n    \"title\": \"Podman Home Assistant Container LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/podman.svg\" height=\"100\"/>\n  <img src=\"https://avatars.githubusercontent.com/u/13844975?s=200&amp;v=4\" height=\"100\"/><img/></p>\n  <h1 align=\"center\" id=\"heading\">Podman Home Assistant Container LXC</h1>\n  \n  A standalone Podman container-based installation of Home Assistant Core means that the Home Assistant Core software is installed inside a container managed by Podman, separate from the host operating system. This provides a flexible and scalable solution for running the software, as the container can be easily moved between host systems or isolated from other processes for security. Podman is a popular open-source tool for managing containers that is similar to Docker, but designed for use on Linux systems without a daemon.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Podman Home Assistant Container LXC, run the command below in the <b>Proxmox VE Shell</b>. <br> \n  To Update Podman, Install HACS or FileBrowser, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/podman-homeassistant.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 16GB Storage - 2vCPU ⚡</h3>\n    \n  **Home Assistant Interface: IP:8123**\n    \n  ⚙️ **Path to HA /config**\n  ~~~bash\n  /var/lib/containers/storage/volumes/hass_config/_data\n  ~~~`\n\n  },\n  {\n    \"category\": \"Automation\",\n\n    \"title\": \"ioBroker LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/ioBroker/ioBroker/blob/master/img/logos/ioBroker_Logo_256px.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> ioBroker LXC </h1>\n    \n  [ioBroker](https://www.iobroker.net/#en/intro) is an open-source platform for building and managing smart home automation systems. It provides a centralized control and management interface for connected devices, sensors, and other IoT devices. ioBroker integrates with a wide range of popular smart home systems, devices, and services, making it easy to automate tasks and processes, monitor and control devices, and collect and analyze data from a variety of sources. With its flexible architecture and easy-to-use interface, ioBroker is designed to make it simple for users to build and customize their own smart home automation systems, regardless of their technical background or experience.\n  \n  To create a new Proxmox VE ioBroker LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/iobroker.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n    \n  **ioBroker Interface: IP:8081**`\n  \n  },\n  {\n    \"category\": \"Automation\",\n\n    \"title\": \"openHAB LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://www.openhab.org/openhab-logo-square.png?raw=true\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">openHAB LXC</h1>\n\n  [openHAB](https://www.openhab.org/) is a popular open-source home automation platform that provides a vendor and technology agnostic solution for integrating and automating various smart home devices and services. It supports a wide range of devices and protocols, making it easy to bring together different systems and devices into a unified smart home ecosystem. With its user-friendly interface and powerful automation capabilities, openHAB makes it easy to create custom automations and monitor and control your smart home devices and systems, all from a single interface.\n  \n  To create a new Proxmox VE openHAB LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/openhab.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n    \n  **openHAB Interface: IP:8080**`\n  \n  },\n  {\n    \"category\": \"Automation\",\n\n    \"title\": \"Homebridge LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://homebridge.io/assets/images/logo.svg\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">Homebridge LXC</h1>\n\n  [Homebridge](https://homebridge.io/) is a popular open-source software platform that enables you to integrate smart home devices and services that do not natively support Apple's HomeKit protocol into the HomeKit ecosystem. This allows you to control and automate these devices using Siri, the Home app, or other HomeKit-enabled apps, making it easy to bring together a variety of different devices into a unified smart home system. With Homebridge, you can expand the capabilities of your smart home, unlocking new possibilities for automating and controlling your devices and systems.\n\n  To create a new Proxmox VE Homebridge LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homebridge.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n    \n  **Homebridge Interface: IP:8581**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">admin</code>`\n  \n  },\n  {\n    \"category\": \"Automation\",\n\n    \"title\": \"ESPHome LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/esphome/dark_icon@2x.png?raw=true\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">ESPHome LXC</h1>\n  \n  [ESPHome](https://esphome.io/) is a platform for controlling ESP8266/ESP32-based devices using configuration files and integrating them with Home Automation systems. It provides a simple and flexible way to set up and manage the functionality of these devices, including defining and automating actions, monitoring sensors, and connecting to networks and other services. ESPHome is designed to be user-friendly and easy to use, and supports a wide range of features and integrations, making it a popular choice for home automation projects and IoT applications.\n\n  To create a new Proxmox VE ESPHome LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update ESPHome, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/esphome.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n    \n  **ESPHome Interface: IP:6052**`\n  \n  },\n  {\n    \"category\": \"Automation\",\n\n    \"title\": \"Node-Red LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/custom_integrations/nodered/icon.png?raw=true\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">Node-Red LXC</h1>\n\n  [Node-RED](https://nodered.org/) is a visual programming tool that allows developers and non-developers alike to easily wire together hardware devices, APIs, and online services to create custom applications. It provides a visual interface for building workflows, making it easy to create and modify complex integrations without having to write any code. Node-RED is used in a wide range of applications, from simple automations to complex integrations, and is known for its simplicity, versatility, and ease of use.\n\n  To create a new Proxmox VE Node-RED LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Node-Red or Install Themes run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/node-red.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n    \n  **Node-Red Interface: IP:1880**`\n    \n  },\n  {\n    \"category\": \"Automation\",\n\n    \"title\": \"n8n LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://docs.n8n.io/_images/n8n-docs-icon.svg\" height=\"70\"/></p>\n  <h1 align=\"center\" id=\"heading\">n8n LXC</h1>\n    \n  [n8n](https://n8n.io/) is a workflow automation tool that enables users to automate various tasks and processes by connecting various data sources, systems, and services. It provides a visual interface for building workflows, allowing users to easily define and automate complex sequences of actions, such as data processing, conditional branching, and API calls. n8n supports a wide range of integrations, making it a versatile tool for automating a variety of use cases, from simple data processing workflows to complex business processes. With its extendable architecture, n8n is designed to be easily customizable and can be adapted to meet the specific needs of different users and industries.\n \n  To create a new Proxmox VE n8n LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update n8n, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/n8n.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 3GB Storage - 2vCPU ⚡</h3>\n    \n  **n8n Interface: IP:5678**`\n  \n  },\n  {\n    \"category\": \"Automation\",\n\n    \"title\": \"Scrypted LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://www.scrypted.app/images/web_hi_res_512.png?raw=true\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">Scrypted LXC</h1>\n\n  <h3 align=\"center\"> Option to add Coral Edge TPU support </h3> \n  \n  [Scrypted](https://www.scrypted.app/) is a home automation platform that focuses on providing a seamless experience for managing and utilizing cameras in a smart home setup. It offers features like camera management, event triggering, video and image storage, and integration with other smart home devices and services. Scrypted is designed to make it easy to set up and use cameras in a home automation system, providing a simple and user-friendly interface for monitoring and automating camera-related tasks.\n\n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n  \n  To create a new Proxmox VE Scrypted LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/scrypted.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n    \n  **Scrypted Interface: (https)IP:10443**`\n  \n  },\n  {\n    \"category\": \"Automation\",\n\n    \"title\": \"FHEM LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://avatars.githubusercontent.com/u/45183393?s=100&v=4\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">FHEM LXC</h1>\n\n  [FHEM](https://fhem.de/) stands for \"Freundliche Hausautomation und Energie-Messung,\" which translates to \"Friendly Home Automation and Energy Measurement\" in English. The software can interface with a wide range of devices, including lighting systems, thermostats, weather stations, and media devices, among others.\n  \n  🛈 If the LXC is created Privileged, the script will automatically set up USB passthrough.\n  \n  To create a new Proxmox VE FHEM LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/fhem.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n    \n  **FHEM Interface: IP:8083**`\n  \n  },\n  {\n   \"category\": \"MQTT\",\n\n   \"title\": \"MQTT LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/eclipsemosquitto.svg\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">MQTT LXC</h1>\n  \n  [Eclipse Mosquitto](https://mosquitto.org/) is an open-source message broker that implements the MQTT (Message Queuing Telemetry Transport) protocol. It is a lightweight and simple-to-use message broker that allows IoT devices and applications to communicate with each other by exchanging messages in real-time. Mosquitto is widely used in IoT applications, due to its low resource requirements and its compatibility with a wide range of devices and platforms\n  \n  To create a new Proxmox VE MQTT LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/mqtt.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n    \n  Mosquitto comes with a password file generating utility called mosquitto_passwd.\n  ~~~bash\n  mosquitto_passwd -c /etc/mosquitto/passwd <user>\n  ~~~\n \n  Ensure that the file is managed by the appropriate user and group.\n  ~~~bash\n  chown mosquitto:mosquitto /etc/mosquitto/passwd\n  ~~~\n\n  Now restart Mosquitto server.\n  ~~~bash\n  systemctl restart mosquitto\n  ~~~`\n  \n  },\n  {\n    \"category\": \"MQTT\",\n\n    \"title\": \"EMQX LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/hassio-addons/repository/blob/master/emqx/icon.png?raw=true\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">EMQX LXC</h1>\n\n  [EMQX](https://www.emqx.io/) is an open-source MQTT broker that features a high-performance, real-time message processing engine. It is designed to handle large-scale IoT deployments, providing fast and reliable message delivery for connected devices. EMQX is known for its scalability, reliability, and low latency, making it a popular choice for IoT and M2M applications. It also offers a wide range of features and plugins for enhanced security, monitoring, and management.\n  \n  To create a new Proxmox VE EMQX LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n    bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/emqx.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  \n  **EMQX Interface: IP:18083** \n    \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n\n  **password** <code class=\"highlighter-rouge\">public</code>\n\n  ⚙️ **Setup**\n  \n  Access Control ➡ Authentication  ➡ Create ➡ Next ➡ Next ➡ Create ➡ Users ➡ Add ➡ Username / Password (to authenicate with MQTT) ➡ Save. You're now ready to enjoy a high-performance MQTT Broker.`\n  \n  },\n  {\n    \"category\": \"Database\",\n\n    \"title\": \"Mariadb LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/mariadb.svg\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">Mariadb LXC</h1>\n\n  <h3 align=\"center\"> Option to Install Adminer</h3>\n  \n  [MariaDB](https://mariadb.org/) is a fork of the popular MySQL database management system that is developed and maintained by the open-source community. It is also commercially supported, offering enterprise-level features and support for organizations that require them. MariaDB aims to maintain high compatibility with MySQL, ensuring a drop-in replacement capability.\n  \n  To create a new Proxmox VE Mariadb LXC, run the command below in the <b>Proxmox VE Shell</b>.\n    \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/mariadb.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n  \n  The subsequent step involves executing the included security script. This script modifies certain default options that are less secure. Our purpose for running it is to prevent remote root logins and eliminate unnecessary database users.  \n  Run the security script:\n  ~~~bash\n  mysql_secure_installation\n  ~~~\n  Enter current password for root (enter for none): <code class=\"highlighter-rouge\">enter</code>\n    \n  Switch to unix_socket authentication [Y/n] <code class=\"highlighter-rouge\">y</code> \n    \n  Change the root password? [Y/n] <code class=\"highlighter-rouge\">n</code> \n    \n  Remove anonymous users? [Y/n] <code class=\"highlighter-rouge\">y</code> \n    \n  Disallow root login remotely? [Y/n] <code class=\"highlighter-rouge\">y</code>  \n    \n  Remove test database and access to it? [Y/n] <code class=\"highlighter-rouge\">y</code> \n    \n  Reload privilege tables now? [Y/n] <code class=\"highlighter-rouge\">y</code>  \n  \n  We will create a new account called admin with the same capabilities as the root account, but configured for password authentication. \n  ~~~bash\n  mysql\n  ~~~ \n  Prompt will change to <code class=\"highlighter-rouge\">MariaDB [(none)]></code>\n  \n  Create a new local admin (Change the username and password to match your preferences)\n  ~~~sql\n  CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';\n  ~~~\n  Give local admin root privileges (Change the username and password to match above)\n  ~~~sql\n  GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;\n  ~~~\n  \n  Now, we'll give the user admin root privileges and password-based access that can connect from anywhere on your local area network (LAN), which has addresses in the subnet 192.168.100.0/24. This is an improvement because opening a MariaDB server up to the Internet and granting access to all hosts is bad practice.. Change the **_username_**, **_password_** and **_subnet_** to match your preferences:\n  ~~~sql\n  GRANT ALL ON *.* TO 'admin'@'192.168.100.%' IDENTIFIED BY 'password' WITH GRANT OPTION;\n  ~~~\n  Flush the privileges to ensure that they are saved and available in the current session:\n  ~~~sql\n  FLUSH PRIVILEGES;\n  ~~~\n  command below this, exit the MariaDB shell:\n  ~~~bash\n  exit\n  ~~~\n  Log in as the new database user you just created:\n  ~~~bash\n  mysql -u admin -p\n  ~~~\n  Create a new database:\n  ~~~sql\n  CREATE DATABASE homeassistant;\n  ~~~\n  command below this, exit the MariaDB shell:\n  ~~~bash\n  exit\n  ~~~\n  ⚠️ Reboot the lxc \n  \n  Checking status.\n  ~~~bash\n  systemctl status mariadb\n  ~~~ \n  Change the recorder: <code class=\"highlighter-rouge\">db_url:</code> in your HA configuration.yaml\n    \n  Example:\n  ~~~bash\n  recorder:\n    db_url: mysql://admin:password@192.168.100.26:3306/homeassistant?charset=utf8mb4\n  ~~~\n    \n  ⚙️ [**Adminer**](https://www.adminer.org/) is a full-featured database management tool\n    \n  **Adminer Interface: IP/adminer/**`\n  },\n  {\n    \"category\": \"Database\",\n\n    \"title\": \"PostgreSQL LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/postgresql.svg\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">PostgreSQL LXC</h1>\n  <h3 align=\"center\"> Option to Install Adminer</h3>\n  \n  [PostgreSQL](https://www.postgresql.org/) (often referred to as Postgres) is an open-source relational database management system that is known for its extensibility and strict adherence to SQL standards. It is a free and powerful database solution, suitable for a wide range of applications, from small projects to large enterprise systems. PostgreSQL is widely used for its reliability, feature-richness, and robustness.\n  \n  To create a new Proxmox VE PostgreSQL LXC, run the command below in the <b>Proxmox VE Shell</b>.\n    \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/postgresql.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n  \n  To make sure our PostgreSQL is secured with a strong password, set a password for its system user and then change the default database admin user account\n  \n  Change user password\n  ~~~bash\n  passwd postgres\n  ~~~\n  Login using Postgres system account\n    \n  ~~~bash\n  su - postgres\n  ~~~\n  Now, change the Admin database password \n  ~~~bash\n  psql -c \"ALTER USER postgres WITH PASSWORD 'your-password';\"\n  ~~~\n  Create a new user.\n  ~~~bash\n  psql\n  ~~~\n  ~~~sql\n  CREATE USER admin WITH PASSWORD 'your-password';\n  ~~~\n  Create a new database:\n  ~~~sql\n  CREATE DATABASE homeassistant;\n  ~~~\n  Grant all rights or privileges on created database to the user\n  ~~~sql\n  GRANT ALL ON DATABASE homeassistant TO admin;\n  ~~~\n  To exit psql\n  ~~~bash\n  \\\\q\n  ~~~ \n  Then type exit to get back to root\n  \n  Change the recorder: <code class=\"highlighter-rouge\">db_url:</code> in your HA configuration.yaml\n    \n  Example:\n  ~~~bash\n  recorder:\n    db_url: postgresql://admin:your-password@192.168.100.20:5432/homeassistant?client_encoding=utf8\n  ~~~\n\n  ⚙️ [**Adminer**](https://www.adminer.org/) is a full-featured database management tool\n    \n  **Adminer Interface: IP/adminer/**`\n  },\n  {\n    \"category\": \"Database\",\n\n    \"title\": \"InfluxDB LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/influx.svg\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">InfluxDB LXC</h1>\n  <h3 align=\"center\"> Options to Install InfluxDB v1 or v2 and Telegraf</h3>\n  * Choosing InfluxDB v1 will result in Chronograf being installed automatically.\n  \n  [InfluxDB](https://www.influxdata.com/) is designed to handle high write and query loads, and is optimized for storing and analyzing time-stamped data, such as metrics, events, and logs. InfluxDB supports SQL-like query language and has a built-in HTTP API for data ingestion and retrieval. It's commonly used for IoT and industrial applications where time-series data is involved.\n  \n  [Telegraf](https://www.influxdata.com/time-series-platform/telegraf/) is a server agent that collects, processes, and aggregates metrics and events data from different sources, such as systems, databases, and APIs, and outputs the data to various outputs, such as InfluxDB, Prometheus, Elasticsearch, and many others.\n  \n  To create a new Proxmox VE InfluxDB LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n    bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/influxdb.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n\n InfluxDB V1 (Chronograf) Interface: IP:8888\n\n InfluxDB V2 Interface: IP:8086\n\n ⚙️ **InfluxDB Configuration**\n  \n  ~~~yaml\n  nano /etc/influxdb/influxdb.conf\n  ~~~\n  \n ⚙️ **Telegraf Configuration**\n  \n  ~~~yaml\n  nano /etc/telegraf/telegraf.conf\n  ~~~`\n  \n  },\n  {\n    \"category\": \"Zigbee - Zwave\",\n\n    \"title\": \"Zigbee2MQTT LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/Koenkk/zigbee2mqtt/blob/master/images/logo_bee_only.png?raw=true\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">Zigbee2MQTT LXC</h1>\n\n  <h3 align=\"center\"> Option to switch to Edge/dev branch</h3>\n  \n  [Zigbee2MQTT](https://www.zigbee2mqtt.io/) is an open-source software project that allows you to use Zigbee-based smart home devices (such as those sold under the Philips Hue and Ikea Tradfri brands) with MQTT-based home automation systems, like Home Assistant, Node-RED, and others. The software acts as a bridge between your Zigbee devices and MQTT, allowing you to control and monitor these devices from your home automation system.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Zigbee2MQTT LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Zigbee2MQTT, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/zigbee2mqtt.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n  As an alternative option, you can use Alpine Linux and the Zigbee2MQTT package to create a Zigbee2MQTT LXC container with faster creation time and minimal system resource usage. <br>\n\n  To create a new Proxmox VE Alpine-Zigbee2MQTT LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  ~~~bash\n  bash -c \"$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-zigbee2mqtt.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  256MiB RAM - 300MiB Storage - 1vCPU ⚡</h3>\n\n  ⚙️ **Determine the location of your adapter**\n    \n  ~~~bash\n  ls -l /dev/serial/by-id\n  ~~~\n  Example Output: <code class=\"highlighter-rouge\">lrwxrwxrwx 1 root root 13 Jun 19 17:30 usb-1a86_USB_Serial-if00-port0 -> ../../ttyUSB0</code>\n  \n  \n  ⚙️ ⚠️ **Before you start Zigbee2MQTT you need to edit the [configuration.yaml](https://www.zigbee2mqtt.io/guide/configuration/)**\n\n  Debian<br>\n  ~~~bash\n  nano /opt/zigbee2mqtt/data/configuration.yaml\n  ~~~\n  Alpine<br>\n  ~~~bash\n  nano /etc/zigbee2mqtt/configuration.yaml\n  ~~~\n\n  Save and exit the editor with “Ctrl+O”, “Enter” and “Ctrl+X”\n  \n  Example:\n  ~~~yaml\n  frontend:\n    port: 9442\n  homeassistant: true\n  permit_join: false\n  mqtt:\n    base_topic: zigbee2mqtt\n    server: 'mqtt://192.168.86.224:1883'\n    user: usr\n    password: pwd\n    keepalive: 60\n    reject_unauthorized: true\n    version: 4\n  serial:\n    port: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0\n    #adapter: deconz\t#(uncomment for ConBee II)\n    #adapter: ezsp    #(uncomment for ITead Sonoff Zigbee 3.0 USB Dongle Plus V2 model \"ZBDongle-E version\")\n  advanced:\n    pan_id: GENERATE\n    network_key: GENERATE\n    channel: 20\n  ~~~\n  ⚙️ **Zigbee2MQTT can be started after completing the configuration**\n\n  Debian<br>  \n  ~~~bash\n  cd /opt/zigbee2mqtt && npm start\n  ~~~\n  Alpine<br>  \n  ~~~bash\n  rc-update add zigbee2mqtt default\n  ~~~`\n\n  },\n  {\n    \"category\": \"Zigbee - Zwave\",\n\n    \"title\": \"deCONZ LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://phoscon.de/img/phoscon-logo128x.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> deCONZ LXC </h1>\n  \n  [deCONZ](https://www.phoscon.de/en/conbee2/software#deconz) is a software for managing and controlling Zigbee-based smart home devices. It allows for setting up, configuring and visualizing the status of connected devices, as well as for triggering actions and automations. It works as a bridge between the Zigbee network and other home automation systems and can be used as a standalone solution or integrated into existing setups.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE deCONZ LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n    bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/deconz.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **deCONZ Interface: IP:80**`\n  \n  },\n  {\n    \"category\": \"Zigbee - Zwave\",\n\n    \"title\": \"Z-Wave JS UI LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/zwave.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Z-Wave JS UI LXC </h1>\n  \n  [Z-Wave JS UI](https://github.com/zwave-js/zwave-js-ui#) is an open-source software that serves as a gateway between Z-Wave devices and MQTT (Message Queuing Telemetry Transport) protocol, allowing users to control and monitor their Z-Wave devices via a user interface. The software provides a configurable platform to manage Z-Wave networks and integrate with other smart home systems through MQTT.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n  \n  To create a new Proxmox VE Z-Wave JS UI LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Z-Wave JS UI, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/zwave-js-ui.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Z-Wave JS UI Interface: IP:8091**`\n  \n  },\n  {\n    \"category\": \"Monitoring - Analytics\",\n\n    \"title\": \"Uptime Kuma LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/louislam/uptime-kuma/blob/master/public/icon.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Uptime Kuma LXC </h1>\n  \n  [Uptime Kuma](https://github.com/louislam/uptime-kuma#uptime-kuma) is a monitoring and alerting system that tracks the availability and performance of servers, websites, and other internet-connected devices. It can be self-hosted and is open-source, offering a visually appealing interface for monitoring and receiving notifications about downtime events.\n  \n  To create a new Proxmox VE Uptime Kuma LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Uptime Kuma, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/uptimekuma.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **Uptime Kuma Interface: IP:3001**`\n  \n  },\n  {\n    \"category\": \"Monitoring - Analytics\",\n\n    \"title\": \"Pi.Alert LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/leiweibau/Pi.Alert/main/front/img/favicons/glass_black_white.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Pi.Alert LXC </h1>\n  \n  [Pi.Alert](https://github.com/leiweibau/Pi.Alert/) is a WIFI / LAN intruder detector. Checks the devices connected and alert you with unknown devices. It also warns of the disconnection of \"always connected\" devices.\n  \n  To create a new Proxmox VE Pi.Alert LXC, run the command below in the <b>Proxmox VE Shell</b>.<br>\n  To Update Pi.Alert, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/pialert.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 3GB Storage - 1vCPU ⚡</h3>\n  \n  **Pi.Alert Interface: IP/pialert/**`\n  \n  },\n  {\n    \"category\": \"Monitoring - Analytics\",\n\n    \"title\": \"OpenObserve LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/tteck/Proxmox/main/misc/images/openobsecure.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> OpenObserve LXC </h1>\n  \n  [OpenObserve](https://openobserve.ai/) is a simple yet sophisticated log search, infrastructure monitoring, and APM solution.\n  \n  To create a new Proxmox VE OpenObserve LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update OpenObserve, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/openobserve.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 3GB Storage - 1vCPU ⚡</h3>\n  \n  **Credentials:** <code class=\"highlighter-rouge\">cat /opt/openobserve/data/.env</code>\n\n  **OpenObserve Interface: IP:5080**`\n  \n  },\n  {\n    \"category\": \"Monitoring - Analytics\",\n  \n    \"title\": \"Change Detection LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/dgtlmoon/changedetection.io/blob/master/changedetectionio/static/images/avatar-256x256.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Change Detection LXC </h1>\n  \n  [Change Detection](https://changedetection.io/) is a service that allows you to monitor changes to web pages and receive notifications when changes occur. It can be used for a variety of purposes such as keeping track of online price changes, monitoring news websites for updates, or tracking changes to online forums.\n\n  To create a new Proxmox VE Change Detection LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Change Detection, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/changedetection.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **Change Detection Interface: IP:5000**`\n  \n  \n  },\n  {\n    \"category\": \"Monitoring - Analytics\",\n\n    \"title\": \"Prometheus LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/prometheus.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Prometheus LXC </h1>\n  \n  [Prometheus](https://prometheus.io/) is widely used to monitor the performance and health of various infrastructure components and applications, and trigger alerts based on predefined rules. It has a multi-dimensional data model and supports various data sources and exporters, making it an extremely flexible and scalable monitoring solution.\n  \n  To create a new Proxmox VE Prometheus LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/prometheus.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n  \n  **Prometheus Interface: IP:9090**`\n  \n  },\n  {\n    \"category\": \"Monitoring - Analytics\",\n\n    \"title\": \"Grafana LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fdocs.checkmk.com%2Flatest%2Fimages%2Fgrafana_logo.png&f=1&nofb=1\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Grafana LXC </h1>\n  \n  [Grafana](https://grafana.com/) is a data visualization and monitoring platform that enables users to query, visualize, alert on and understand metrics, logs, and other data sources. It integrates with various data sources, including Prometheus, InfluxDB, Elasticsearch, and many others, to present a unified view of the data and enable users to create insightful and interactive dashboards.\n  \n  To create a new Proxmox VE Grafana LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/grafana.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n  As an alternative option, you can use Alpine Linux and the Grafana package to create a Grafana LXC container with faster creation time and minimal system resource usage. <br>\n  \n  To create a new Proxmox VE Alpine-Grafana LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  ~~~bash\n  bash -c \"$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-grafana.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  256Mib RAM - 500MiB Storage - 1vCPU ⚡</h3>\n\n  **Grafana Interface: IP:3000**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">admin</code>`\n  \n  },\n  {\n    \"category\": \"Docker - Kubernetes\",\n\n    \"title\": \"Docker LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/docker.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Docker LXC </h1>\n  <h3 align=\"center\"> Options to Install Portainer and/or Docker Compose V2 (Fuse Overlayfs is in \"Advanced\")</h3>\n  \n  [Docker](https://www.docker.com/) is an open-source project for automating the deployment of applications as portable, self-sufficient containers.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Docker LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/docker.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  As an alternative option, you can use Alpine Linux and the Docker package to create a Docker LXC container with faster creation time and minimal system resource usage. <br>\n  \n  To create a new Proxmox VE Alpine-Docker LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  ~~~bash\n  bash -c \"$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-docker.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 2GB Storage - 1vCPU ⚡</h3>\n\n  **⚠ Run Compose V2 by replacing the hyphen (-) with a space, using docker compose, instead of docker-compose.**\n  \n  **Portainer Interface: IP:9443**`\n\n  },\n    {\n    \"category\": \"Docker - Kubernetes\",\n\n    \"title\": \"Dockge LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/louislam/dockge/master/frontend/public/icon.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Dockge LXC </h1>\n  <h3 align=\"center\"> Options to add Immich and/or Home Assistant </h3>\n  \n  [Dockge](https://github.com/louislam/dockge) is a fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Dockge LXC, run the command below in the <b>Proxmox VE Shell</b>.\n\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/dockge.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 18GB Storage - 2vCPU ⚡</h3>\n  \n  **Dockge Interface: IP:5001**\n\n  To update Dockge\n  ~~~bash\n  cd /opt/dockge\n  docker compose pull\n  docker compose up -d\n  ~~~`\n  },\n  {\n    \"category\": \"Docker - Kubernetes\",\n\n    \"title\": \"Umbrel LXC\",\n  \n    \"content\": `<p align=\"center\"><img src=\"https://uploads-ssl.webflow.com/62966b49981ba146f4842f45/62966b49981ba15b44842fe4_umbrel-logo-compact-purple.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Umbrel LXC </h1>\n  \n  [Umbrel](https://umbrel.com/) is an open-source project that provides a secure and easy-to-use software solution for hosting your own personal server, enabling you to have full control over your data and online services. The OS provides a comprehensive web interface and pre-configured applications for various tasks, making self-hosting accessible for non-technical users.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Umbrel LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/umbrel.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Umbrel Interface: IP** (a reboot is required before app installs)`\n  \n  },\n  {\n    \"category\": \"Docker - Kubernetes\",\n\n    \"title\": \"CasaOS LXC\",\n  \n    \"content\": `<p align=\"center\"><img src=\"https://www.casaos.io/images/casa_9c491a0f.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> CasaOS LXC </h1>\n  \n  [CasaOS](https://www.casaos.io/) is a software that aims to make it easy for users to create a personal cloud system at home. It uses the Docker ecosystem to provide a simple, user-friendly experience for managing various applications and services.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE CasaOS LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/casaos.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **CasaOS Interface: IP**`\n  \n  },\n  {\n    \"category\": \"Docker - Kubernetes\",\n\n    \"title\": \"Runtipi LXC\",\n  \n    \"content\": `<p align=\"center\"><img src=\"https://runtipi.io/_next/static/media/tipi.c0b9b68e.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Runtipi LXC </h1>\n  \n  [Runtipi](https://umbrel.com/) lets you install all your favorite self-hosted apps without the hassle of configuring and managing each service. One-click installs and updates for more than 180 popular apps.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Runtipi LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/runtipi.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Runtipi Interface: IP**`\n  \n  },\n  /*\n  {\n    \"category\": \"Docker - Kubernetes\",\n\n    \"title\": \"k0s Kubernetes LXC\",\n  \n    \"content\": `<p align=\"center\"><img src=\"https://k0sproject.io/images/k0s-logo.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> k0s Kubernetes LXC </h1>\n  <h3 align=\"center\"> Option to Install Helm Package Manager</h3>\n  \n  [k0s](https://k0sproject.io/) is a lightweight, easy-to-deploy, and certified Kubernetes distribution designed to simplify the process of deploying and managing a Kubernetes cluster. It focuses on simplicity and ease-of-use while providing a secure and production-ready environment for running applications.\n  \n  \n  To create a new Proxmox VE k0s Kubernetes LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/k0s.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n\n  ⚙️ **Config Path**\n\n  ~~~yaml\n  /etc/k0s/k0s.yaml\n  ~~~`\n  \n  },\n  */\n  {\n    \"category\": \"Docker - Kubernetes\",\n\n    \"title\": \"Podman LXC\",\n  \n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/podman.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Podman LXC </h1>\n  \n  [Podman](https://podman.io/) is an open-source, daemonless, and portable container engine that allows users to manage containers on Linux systems without the need for a daemon or system service to be running in the background. It provides an API and a command-line interface that can be used to create, run, and manage containers and their associated networks, volumes, and images. It is built on top of the Open Container Initiative (OCI) runtime specification, making it compatible with other OCI-compliant container engines.\n  \n  \n  To create a new Proxmox VE Podman LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/podman.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2vCPU ⚡</h3>`\n    \n  },\n  {\n    \"category\": \"Operating System\",\n\n    \"title\": \"Debian LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://www.debian.org/Pics/debian-logo-1024x576.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Debian LXC </h1>\n  Debian Linux is a distribution that emphasizes free software. It supports many hardware platforms.\n\n  To create a new Proxmox VE Debian LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/debian.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>`\n  \n  },\n  {\n    \"category\": \"Operating System\",\n\n    \"title\": \"Debian 12 VM\",\n    \"content\": `<p align=\"center\"><img src=\"https://www.debian.org/Pics/debian-logo-1024x576.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Debian 12 VM </h1>\n  Debian Linux is a distribution that emphasizes free software. It supports many hardware platforms.\n\n  To create a new Proxmox VE Debian 12 VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/debian-vm.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 2GB Storage - 2vCPU ⚡</h3>\n  \n  More Info at https://github.com/tteck/Proxmox/discussions/1988`\n  \n  },\n  {\n    \"category\": \"Operating System\",\n\n    \"title\": \"Ubuntu LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://assets.ubuntu.com/v1/29985a98-ubuntu-logo32.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Ubuntu LXC </h1>\n  <h3 align=\"center\" id=\"heading\"> Option to select version </h3>\n  Ubuntu is a distribution based on Debian, designed to have regular releases and a consistent user experience.\n  \n  To create a new Proxmox VE Ubuntu LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/ubuntu.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU - 22.04 ⚡</h3>`\n  \n  },\n    {\n    \"category\": \"Operating System\",\n\n    \"title\": \"Ubuntu 22.04 VM\",\n    \"content\": `<p align=\"center\"><img src=\"https://assets.ubuntu.com/v1/29985a98-ubuntu-logo32.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Ubuntu 22.04 VM </h1>\n  Ubuntu is a distribution based on Debian, designed to have regular releases and a consistent user experience.\n\n  To create a new Proxmox VE Ubuntu 22.04 VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/ubuntu-vm.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 2GB Storage - 2vCPU ⚡</h3>\n  \n  More Info at https://github.com/tteck/Proxmox/discussions/2072`\n  \n  },\n  {\n    \"category\": \"Operating System\",\n\n    \"title\": \"Alpine LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/alpinelinux.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Alpine LXC </h1>\n  A security-oriented, lightweight Linux distribution based on musl and BusyBox.<br>\n  By default, the root password is set to <code class=\"highlighter-rouge\">alpine</code>. If you choose to use advanced settings, you will need to define a password, autologin is currently unavailable.\n\n  To create a new Proxmox VE Alpine LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/alpine.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 100MiB Storage - 1vCPU ⚡</h3>\n\n  ⚙️ **Default Password** <code class=\"highlighter-rouge\">alpine</code>\n\n  ⚙️ **To Update Alpine**\n  \n  ~~~bash\n  apk update && apk upgrade\n  ~~~`\n  },\n  {\n    \"category\": \"TurnKey\",\n\n    \"title\": \"TurnKey LXC Appliances\",\n    \"content\": `<p align=\"center\"><img src=\"https://blog.desdelinux.net/wp-content/uploads/2017/01/TurnKey-Linux.png \" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> TurnKey LXC Appliances </h1>\n\n  [TurnKey LXC Appliances](https://www.turnkeylinux.org/) is an open-source project that provides a collection of free, ready-to-use virtual appliances and installation images for various software applications and services. These appliances are pre-configured and come with all the necessary software and settings to simplify deployment and management. The goal of TurnKey Linux is to make it easier for users to set up and run popular software applications without the need for extensive manual configuration.\n  \n  To create a new Proxmox VE TurnKey LXC Appliance , run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/turnkey/turnkey.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">Resource and network settings are adjustable post LXC creation.</h3>\n  \n  The script creates a <code class=\"highlighter-rouge\">*.creds</code> file in the Proxmox root directory with the password of the newly created TurnKey LXC Appliance.\n\n  ⚙️ **Retrieve Password** <code class=\"highlighter-rouge\">cat turnkey-*name*.creds</code>`\n  \n  }, \n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"Cloudflared LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/cloudflare.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Cloudflared LXC </h1>\n   \n  [Cloudflared](https://www.cloudflare.com/) is a command-line tool that allows you to securely access resources on the Cloudflare network, such as websites and APIs, from your local computer. It works by creating a secure tunnel between your computer and the Cloudflare network, allowing you to access resources as if they were on your local network. \n  \n  To create a new Proxmox VE Cloudflared LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/cloudflared.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>`\n  \n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"Zoraxy LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://zoraxy.arozos.com/img/icon.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Zoraxy LXC </h1>\n   \n  [Zoraxy](https://zoraxy.arozos.com/) is an all in one homelab network routing solution. \n  \n  To create a new Proxmox VE Zoraxy LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/zoraxy.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n\n  **Zoraxy Interface: IP:8000**`\n  \n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"Nginx Proxy Manager LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/nginxproxymanager.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Nginx Proxy Manager LXC </h1>\n  \n  [Nginx Proxy Manager](https://nginxproxymanager.com/) is a tool that provides a web-based interface to manage Nginx reverse proxies. It enables users to easily and securely expose their services to the internet by providing features such as HTTPS encryption, domain mapping, and access control. It eliminates the need for manual configuration of Nginx reverse proxies, making it easy for users to quickly and securely expose their services to the public.\n  \n  To create a new Proxmox VE Nginx Proxy Manager LXC Container, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Nginx Proxy Manager, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~yaml\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nginxproxymanager.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 3GB Storage - 1vCPU ⚡</h3>\n\n  🚨 Since there are hundreds of Certbot instances, it's necessary to install the specific Certbot of your preference.\n  \n  Forward port <code class=\"highlighter-rouge\">80</code> and <code class=\"highlighter-rouge\">443</code> from your router to your Nginx Proxy Manager LXC IP.\n  \n  Add the command below to your <code class=\"highlighter-rouge\">configuration.yaml</code> in Home Assistant.\n  ~~~yaml\n  http:\n    use_x_forwarded_for: true\n    trusted_proxies:\n      - 192.168.100.27 ###(Nginx Proxy Manager LXC IP)###\n  ~~~\n  \n  **Nginx Proxy Manager Interface: IP:81**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin@example.com</code>\n  \n  **password** <code class=\"highlighter-rouge\">changeme</code>`\n\n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"YunoHost LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://yunohost.org/_images/ynh_logo_white_300dpi.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> YunoHost LXC </h1>\n   \n  [YunoHost](https://yunohost.org/#/) is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting, while making sure it stays reliable, secure, ethical and lightweight. \n  \n  To create a new Proxmox VE YunoHost LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/yunohost.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 20GB Storage - 2vCPU ⚡</h3>\n  \n  **YunoHost Interface: IP/**`\n  \n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"UniFi Network Application LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fblog.ui.com%2Fwp-content%2Fuploads%2F2016%2F10%2Funifi-app-logo-300x108.png&f=1&nofb=1\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> UniFi Network Application LXC </h1>\n  \n  UniFi Network Application is a software that helps manage and monitor UniFi networks (Wi-Fi, Ethernet, etc.) by providing an intuitive user interface and advanced features. It allows network administrators to configure, monitor, and upgrade network devices, as well as view network statistics, client devices, and historical events. The aim of the application is to make the management of UniFi networks easier and more efficient.\n  \n  To create a new Proxmox VE UniFi Network Application LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/unifi.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **UniFi Interface: (https)IP:8443**`\n  \n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"Omada Controller LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://www.enterpriseitpro.net/wp-content/uploads/2020/12/logo-omada.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Omada Controller LXC </h1>\n  \n  Omada Controller is a software application used to manage TP-Link's Omada EAP (Enterprise Access Point) devices. It allows administrators to centrally manage a large number of EAPs, monitor network performance, and control user access to the network. The software provides an intuitive interface for network configuration, firmware upgrades, and network monitoring. By using the Omada Controller, administrators can streamline the management process, reduce manual intervention, and improve the overall security and reliability of the network.\n  \n  To create a new Proxmox VE Omada Controller LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Omada, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/omada.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Omada Interface: (https)IP:8043**`\n  \n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"WireGuard LXC\",\n  \n    \"content\": `<p align=\"center\"><img src=\"https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fcdn.icon-icons.com%2Ficons2%2F2699%2FPNG%2F512%2Fwireguard_logo_icon_168760.png&f=1&nofb=1\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> WireGuard LXC </h1>\n   \n  WireGuard is a free and open-source virtual private network (VPN) software that uses modern cryptography to secure the data transmitted over a network. It is designed to be fast, secure, and easy to use. WireGuard supports various operating systems, including Linux, Windows, macOS, Android, and iOS. It operates at the network layer and is capable of being used with a wide range of protocols and configurations. Unlike other VPN protocols, WireGuard is designed to be simple and fast, with a focus on security and speed. It is known for its ease of setup and configuration, making it a popular choice for personal and commercial use.\n\n  To create a new Proxmox VE WireGuard LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update WireGuard or Install a Dashboard, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/wireguard.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  ⚙️ **Host Configuration**\n  \n  ~~~yaml\n  nano /etc/pivpn/wireguard/setupVars.conf\n  ~~~\n  ⚙️ **Add Clients** \n  \n  ~~~yaml\n  pivpn add\n  ~~~`\n\n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"Cronicle Primary LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/jhuckaby/Cronicle/blob/master/htdocs/images/logo-128.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Cronicle Primary LXC </h1>\n  \n  [Cronicle](https://github.com/jhuckaby/Cronicle) is a task scheduling and management software that allows users to schedule and run tasks automatically on multiple servers. It has a web-based user interface that provides a convenient and centralized way to manage tasks and view their execution status. With Cronicle, users can schedule tasks to run at specific times, or on demand, and assign tasks to specific worker servers. The software provides real-time statistics and a live log viewer to help users monitor the progress of tasks. Cronicle is designed for use in large-scale environments, making it a valuable tool for automation and management of complex and time-sensitive tasks.\n\n  To create a new Proxmox VE Cronicle Primary LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Cronicle or Install Cronicle Worker, run the command below (or type update) in a <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/cronicle.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **Cronicle Primary Interface: IP:3012**\n\n  ⚙️ Config Path\n  ~~~bash\n  /opt/cronicle/conf/config.json\n  ~~~\n\n  Primary and Worker Private Keys Must Match.`\n  \n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"MeshCentral LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/Ylianst/MeshCentral/blob/master/public/favicon-303x303.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> MeshCentral LXC </h1>\n  \n  [MeshCentral](https://meshcentral.com/info/) is a web-based computer management platform that provides remote control and management capabilities for computers. It allows administrators to manage and control computers over a local network or the internet through a single, centralized web-based interface. With MeshCentral, users can monitor the status of computers, perform remote administration tasks, and control the power state of machines. The software supports various operating systems and provides real-time updates and alerts to keep administrators informed of the status of their systems. MeshCentral is designed to provide an easy-to-use, scalable, and secure solution for remote computer management, making it a valuable tool for IT administrators, helpdesk support, and remote workers.\n  \n  To create a new Proxmox VE MeshCentral LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/meshcentral.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **MeshCentral Interface: IP**`\n  \n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"Tailscale\",\n    \"content\": `<p align=\"center\"><img src=\"https://avatars.githubusercontent.com/u/48932923?v=4&s=100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Tailscale</h1>\n  \n  [Tailscale](https://tailscale.com/) is a software-defined networking solution that enables secure communication between devices over the internet. It creates a virtual private network (VPN) that enables devices to communicate with each other as if they were on the same local network. Tailscale works even when the devices are separated by firewalls or subnets, and provides secure and encrypted communication between devices. With Tailscale, users can connect devices, servers, computers, and cloud instances to create a secure network, making it easier to manage and control access to resources. Tailscale is designed to be easy to set up and use, providing a streamlined solution for secure communication between devices over the internet.\n  \n  To Install Talescale on an existing LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/add-tailscale-lxc.sh)\"\n  ~~~\n  After the script finishes, reboot the LXC then run <code class=\"highlighter-rouge\">tailscale up</code> in the LXC console\n  \n  [**Tailscale Login**](https://login.tailscale.com/start)`\n  \n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"CrowdSec\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/crowdsecurity/crowdsec-docs/main/crowdsec-docs/static/img/crowdsec_no_txt.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> CrowdSec</h1>\n\n  [CrowdSec](https://crowdsec.net/) is a free and open-source intrusion prevention system (IPS) designed to provide network security against malicious traffic. It is a collaborative IPS that analyzes behaviors and responses to attacks by sharing signals across a community of users. CrowdSec leverages the collective intelligence of its users to detect and respond to security threats in real-time. With CrowdSec, network administrators can set up protection against a wide range of threats, including malicious traffic, bots, and denial-of-service (DoS) attacks. The software is designed to be easy to use and integrate with existing security systems, making it a valuable tool for enhancing the security of any network.\n  \n  To Install CrowdSec, ⚠️ run the command below in the <b>LXC console</b>.\n  \n  ~~~bash\n    bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/crowdsec.sh)\"\n  ~~~\n  \n  [**Control center for your CrowdSec machines.**](https://app.crowdsec.net/product-tour)`\n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"Keycloak LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://www.keycloak.org/resources/images/keycloak_icon_512px.svg?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Keycloak LXC</h1>\n\n  [Keycloak](https://www.keycloak.org/) is an open-source identity and access management solution that provides centralized authentication and authorization for modern applications and services. It enables organizations to secure their applications and services with a single sign-on (SSO) solution, reducing the need for users to remember multiple login credentials. Keycloak supports various authentication protocols, including SAML, OAuth, and OpenID Connect, and integrates with a wide range of applications and services. With Keycloak, administrators can manage user identities, define security policies, and monitor access to their applications and services. The software is designed to be scalable, flexible, and easy to use, making it a valuable tool for enhancing the security and usability of modern applications and services.\n  \n  To create a new Proxmox VE Keycloak LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/keycloak.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2CPU ⚡</h3>\n\n  **Keycloak Interface: IP:8080** (First start can take a few minutes)\n  \n  ⚙️ **Initial Login**\n  \n  The initial admin user can be added manually using the web frontend when accessed from localhost or automatically using environment variables.\n  \n  To add the initial admin user using environment variables, set <code class=\"highlighter-rouge\">KEYCLOAK_ADMIN</code> for the initial admin username and <code class=\"highlighter-rouge\">KEYCLOAK_ADMIN_PASSWORD</code> for the initial admin password.\n  \n  First, stop Keycloak\n  ~~~bash\n  systemctl stop keycloak.service\n  ~~~\n  then start Keycloak by coping & pasting the command below (only needed once)\n  ~~~bash\n  cd /opt/keycloak\n  export KEYCLOAK_ADMIN=admin\n  export KEYCLOAK_ADMIN_PASSWORD=changeme\n  bin/kc.sh start-dev \n  ~~~`\n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"OpenWrt VM\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/openwrt.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> OpenWrt VM </h1>\n  \n  [OpenWrt](https://openwrt.org/) is a powerful open-source firmware that can transform a wide range of networking devices into highly customizable and feature-rich routers, providing users with greater control and flexibility over their network infrastructure.\n  \n  To create a new Proxmox VE OpenWrt VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/openwrt.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  256MiB RAM - 512MiB Storage - 1CPU ⚡</h3>`\n\n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"Mikrotik RouterOS CHR VM\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/mikrotik.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Mikrotik RouterOS CHR VM </h1>\n  \n  [Mikrotik RouterOS CHR](https://help.mikrotik.com/docs/display/ROS/Cloud+Hosted+Router%2C+CHR) is a Linux-based operating system that transforms a computer into a router. It provides a wide range of features for network routing, firewall, bandwidth management, wireless access point, backhaul link, hotspot gateway, VPN server, and many others. RouterOS is a versatile solution that supports various network configurations, including those with multiple WAN links, hotspots, and VPNs. It is highly customizable, allowing administrators to configure and manage their networks according to their specific requirements. With RouterOS, network administrators can monitor and control the performance and security of their networks, ensuring reliable and secure communication for their users. The software is designed to be easy to use and provides a wide range of tools for network management, making it a valuable solution for small and large networks alike.\n  \n  To create a new Proxmox VE Mikrotik RouterOS CHR VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/mikrotik-routeros.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 128MiB Storage - 2CPU ⚡</h3>\n\n  Initial setup is done via VM console. Go to the IP address to manage.\n\n  ⚙️ **Initial Login**\n\n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">no password</code>`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Audiobookshelf LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/audiobookshelf.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Audiobookshelf LXC </h1>\n  \n  [Audiobookshelf](https://www.audiobookshelf.org/) is a Self-hosted audiobook and podcast server.\n\n  To create a new Proxmox VE Audiobookshelf LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/audiobookshelf.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Audiobookshelf Interface: IP:13378**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Plex Media Server LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/plex-white.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Plex Media Server LXC </h1>\n  <h3 align=\"center\" id=\"heading\"> With Hardware Acceleration Support </h3> \n  \n  To create a new Proxmox VE Plex Media Server LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Plex Media Server or add Extras, run the command below (or type update) in the <b>LXC Console</b>.\n\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/plex.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Plex Media Server Interface: IP:32400/web**`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Tautulli LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/tautulli.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Tautulli LXC </h1>\n\n  [Tautulli](https://tautulli.com/) allows you to monitor and track your Plex Media Server usage, such as viewing statistics and analysis of your media library. It can be used to monitor user activity, get notifications about new media added to your library, and even generate reports on your media usage.\n  \n  To create a new Proxmox VE Tautulli LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/tautulli.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Tautulli Interface: IP:8181**`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Emby Media Server LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/emby/icon.png?raw=true\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\"> Emby Media Server LXC </h1>\n  \n  [Emby](https://emby.media/) brings together your personal videos, music, photos, and live television.\n  \n  To create a new Proxmox VE Emby Media Server LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Emby, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/emby.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Emby Media Server Interface: IP:8096**`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Jellyfin Media Server LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/jellyfin/icon.png?raw=true\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\"> Jellyfin Media Server LXC </h1>\n  \n  [TurnKey has a LXC CT for Jellyfin](https://www.turnkeylinux.org/mediaserver)\n  \n  To create a new Proxmox VE Jellyfin Media Server LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n    bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/jellyfin.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Jellyfin Media Server Interface: IP:8096**\n  \n  FFmpeg path: <code class=\"highlighter-rouge\">/usr/lib/jellyfin-ffmpeg/ffmpeg</code>`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Jellyseerr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/jellyseerr.svg\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\"> Jellyseerr LXC </h1>\n  \n  [Jellyseerr](https://github.com/Fallenbagel/jellyseerr) is a free and open source software application for managing requests for your media library. It is a a fork of Overseerr built to bring support for Jellyfin & Emby media servers.\n  \n  To create a new Proxmox VE Jellyseerr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Jellyseerr, run the command below (or type update) in the <b>LXC Console</b>.\n \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/jellyseerr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Jellyseerr Interface: IP:5055**`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Overseerr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/overseerr.svg\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\"> Overseerr LXC </h1>\n  \n  [Overseerr](https://overseerr.dev/) is a request management and media discovery tool built to work with your existing Plex ecosystem.\n  \n  To create a new Proxmox VE Overseerr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Overseerr, run the command below (or type update) in the <b>LXC Console</b>.\n \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/overseerr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Overseerr Interface: IP:5055**`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Ombi LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/ombi.svg\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\"> Ombi LXC </h1>\n  \n  [Ombi](https://ombi.io/) is a self-hosted web application designed to empower shared Plex, Emby or Jellyfin users with automated content request capabilities. By integrating with various TV Show and Movie DVR tools, Ombi ensures a smooth and comprehensive experience for your users, allowing them to effortlessly request content on their own.\n  \n  To create a new Proxmox VE Ombi LXC, run the command below in the <b>Proxmox VE Shell</b>.\n \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/ombi.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n  \n  **Ombi Interface: IP:5000**`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"ownCloud VM\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/owncloud.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> ownCloud VM </h1>\n\n  [TurnKey ownCloud](https://www.turnkeylinux.org/owncloud) is an open-source file sharing server and collaboration platform that can store your personal content, like documents and pictures, in a centralized location.\n  \n  To create a new Proxmox VE TurnKey ownCloud VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/owncloud-vm.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>  \n  \n  **ownCloud Interface: IP**`\n\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Nextcloud LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/nextcloud.svg\" height=\"150\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Nextcloud LXC </h1>\n  \n  [NextCloudPi](https://github.com/nextcloud/nextcloudpi#features) is a popular self-hosted solution for file collaboration and data storage. It is built on the NextCloud software, which is an open-source platform for data management.\n  \n  To create a new Proxmox VE NextCloudPi LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nextcloudpi.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n\n  **NextCloudPi Interface: (https)IP/**<br><br>\n  \n  [Alpine Nextcloud Hub](https://nextcloud.com/) integrates the four key Nextcloud products Files, Talk, Groupware and Office into a single platform, optimizing the flow of collaboration.\n  \n  To create a new Proxmox VE Alpine Nextcloud Hub LXC, run the command below in the <b>Proxmox VE Shell</b>.<br>\n  To Update Alpine Nextcloud or Show Alpine Nextcloud Login Credentials, run the command below in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-nextcloud.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 2vCPU ⚡</h3>\n\n  **Alpine Nextcloud Hub Interface: (https)IP/**<br><br>\n  \n  [TurnKey Nextcloud](https://www.turnkeylinux.org/nextcloud) helps store your files, folders, contacts, photo galleries, calendars and more on a server of your choosing. Access that folder from your mobile device, your desktop, or a web browser. Access your data wherever you are, when you need it.\n  \n  To create a new Proxmox VE TurnKey Nextcloud LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/turnkey/turnkey.sh)\"\n  ~~~\n  To create a new Proxmox VE TurnKey Nextcloud VM, run the command below in the <b>Proxmox VE Shell</b>.\n\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/nextcloud-vm.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n\n  **TurnKey Nextcloud Interface: (https)IP/**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Owncast LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/owncast/owncast/develop/web/public/img/favicon/android-icon-144x144.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Owncast LXC </h1>\n  \n  [Owncast](https://owncast.online/) is a free and open source live video and web chat server for use with existing popular broadcasting software.\n  \n  To create a new Proxmox VE Owncast LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/owncast.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 2GB Storage - 2vCPU ⚡</h3>\n  \n  **Owncast Interface: IP:8080** <br>\n  **Owncast Admin Interface: IP:8080/admin**\n  \n  ⚙️ **Initial Admin Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">abc123</code>`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"OpenMediaVault LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/openmediavault.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> OpenMediaVault LXC </h1>\n  \n  [OpenMediaVault](https://www.openmediavault.org/) is a next-generation network-attached storage (NAS) solution based on Debian Linux. It provides a web-based interface for managing and storing digital data, making it easy to use and set up. OpenMediaVault supports various storage protocols, including SMB/CIFS, NFS, and FTP, and provides a wide range of features for data management, such as user and group management, disk quotas, and data backup and recovery. The software is designed to be flexible and scalable, making it a valuable solution for both personal and enterprise use. OpenMediaVault provides a stable and reliable platform for managing and storing digital data, making it a popular choice for those who want to host their own data and ensure its security and privacy. With OpenMediaVault, users can access their data from anywhere and easily share it with others, making it a valuable tool for collaboration and data management.\n  \n  To create a new Proxmox VE OpenMediaVault LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/omv.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **OpenMediaVault Interface: IP**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">openmediavault</code>`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Navidrome LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/navidrome/navidrome/master/resources/logo-192x192.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Navidrome LXC </h1>\n  \n  [Navidrome](https://www.navidrome.org/) is a music server solution that makes your music collection accessible from anywhere. It provides a modern web-based user interface and compatibility with a range of third-party mobile apps for both iOS and Android devices. With Navidrome, users can access their music collection from anywhere, whether at home or on the go. The software supports a variety of music formats, making it easy for users to play their favorite songs and albums. Navidrome provides a simple and user-friendly interface for managing and organizing music collections, making it a valuable tool for music lovers who want to access their music from anywhere. The software is designed to be easy to set up and use, making it a popular choice for those who want to host their own music server and enjoy their music collection from anywhere.\n  \n  To create a new Proxmox VE Navidrome LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Navidrome, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/navidrome.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  To change Navidrome music folder path, edit: <code class=\"highlighter-rouge\">/var/lib/navidrome/navidrome.toml</code>\n  \n  **Navidrome Interface: IP:4533**`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"PhotoPrism LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/photoprism.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> PhotoPrism LXC </h1>\n  \n  [PhotoPrism](https://photoprism.app/) is an AI-Powered Photos App for the Decentralized Web. It makes use of the latest technologies to tag and find pictures automatically without getting in your way.\n  \n  To create a new Proxmox VE PhotoPrism LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update PhotoPrism, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/photoprism.sh)\"\n  ~~~\n\n  Please note that Ubuntu 22.04 and Debian 12 are supported, while older Linux distributions may not be compatible.\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **PhotoPrism Interface: IP:2342**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">changeme</code>\n  \n  [PhotoSync](https://www.photosync-app.com/home.html)`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Bazarr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://www.bazarr.media/assets/img/logo.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Bazarr LXC </h1>\n  \n  [Bazarr](https://www.bazarr.media/) is a companion application to Sonarr and Radarr that manages and downloads subtitles based on your requirements.\n  \n  To create a new Proxmox VE Bazarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/bazarr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Bazarr Interface: IP:6767**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Lidarr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Lidarr/Lidarr/develop/Logo/256.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Lidarr LXC </h1>\n  \n  [Lidarr](https://lidarr.audio/) is a music management tool designed for Usenet and BitTorrent users. It allows users to manage and organize their music collection with ease. Lidarr integrates with popular Usenet and BitTorrent clients, such as Sonarr and Radarr, to automate the downloading and organizing of music files. The software provides a web-based interface for managing and organizing music, making it easy to search and find songs, albums, and artists. Lidarr also supports metadata management, including album art, artist information, and lyrics, making it easy for users to keep their music collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing music collections, making it a valuable tool for music lovers who want to keep their collection organized and up-to-date. With Lidarr, users can enjoy their music collection from anywhere, making it a powerful tool for managing and sharing music files.\n  \n  To create a new Proxmox VE Lidarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/lidarr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Lidarr Interface: IP:8686**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Prowlarr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Prowlarr/Prowlarr/develop/Logo/256.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Prowlarr LXC </h1>\n  \n  [Prowlarr](https://github.com/Prowlarr/Prowlarr) is a software tool designed to integrate with various PVR (Personal Video Recorder) apps. It is built on a popular *arr .net/ReactJS base stack and serves as an indexer manager and proxy. Prowlarr makes it easy to manage and organize TV show and movie collections, by integrating with popular PVR apps and automating the downloading and organizing of media files. The software provides a web-based interface for managing and organizing TV shows and movies, making it easy to search and find content. Prowlarr also supports metadata management, including show and movie information, making it easy for users to keep their media collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing media collections, making it a valuable tool for media enthusiasts who want to keep their collection organized and up-to-date. With Prowlarr, users can enjoy their media collection from anywhere, making it a powerful tool for managing and sharing media files.\n  \n  To create a new Proxmox VE Prowlarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/prowlarr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Prowlarr Interface: IP:9696**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Radarr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Radarr/Radarr/develop/Logo/256.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Radarr LXC </h1>\n  \n  [Radarr](https://radarr.video/) is a movie management tool designed for Usenet and BitTorrent users. It allows users to manage and organize their movie collection with ease. Radarr integrates with popular Usenet and BitTorrent clients, such as Sonarr and Lidarr, to automate the downloading and organizing of movie files. The software provides a web-based interface for managing and organizing movies, making it easy to search and find titles, genres, and release dates. Radarr also supports metadata management, including movie posters and information, making it easy for users to keep their movie collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing movie collections, making it a valuable tool for movie enthusiasts who want to keep their collection organized and up-to-date. With Radarr, users can enjoy their movie collection from anywhere, making it a powerful tool for managing and sharing movie files.\n  \n  To create a new Proxmox VE Radarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/radarr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Radarr Interface: IP:7878**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Readarr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Readarr/Readarr/develop/Logo/256.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Readarr LXC </h1>\n  \n  [Readarr](https://readarr.com/) is an eBook and audiobook management tool designed for Usenet and BitTorrent users. It allows users to manage and organize their eBook and audiobook collection with ease. Readarr integrates with popular Usenet and BitTorrent clients, such as Sonarr and Lidarr, to automate the downloading and organizing of eBook and audiobook files. The software provides a web-based interface for managing and organizing eBooks and audiobooks, making it easy to search and find titles, authors, and genres. Readarr also supports metadata management, including cover art and information, making it easy for users to keep their eBook and audiobook collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing eBook and audiobook collections, making it a valuable tool for book and audiobook enthusiasts who want to keep their collection organized and up-to-date. With Readarr, users can enjoy their eBook and audiobook collection from anywhere, making it a powerful tool for managing and sharing book and audiobook files.\n  \n  To create a new Proxmox VE Radarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/readarr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Readarr Interface: IP:8787**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Sonarr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Sonarr LXC </h1>\n  \n  [Sonarr](https://sonarr.tv/) is a personal video recorder (PVR) software designed for Usenet and BitTorrent users. It allows users to manage and organize their TV show collection with ease. Sonarr integrates with popular Usenet and BitTorrent clients, such as NZBget and Transmission, to automate the downloading and organizing of TV show files. The software provides a web-based interface for managing and organizing TV shows, making it easy to search and find titles, seasons, and episodes. Sonarr also supports metadata management, including TV show posters and information, making it easy for users to keep their TV show collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing TV show collections, making it a valuable tool for TV show enthusiasts who want to keep their collection organized and up-to-date. With Sonarr, users can enjoy their TV show collection from anywhere, making it a powerful tool for managing and sharing TV show files.\n  \n  To create a new Proxmox VE Sonarr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Sonarr, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/sonarr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Sonarr Interface: IP:8989**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Unmanic LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Unmanic/unmanic/master/icon.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Unmanic LXC </h1>\n  \n  [Unmanic](https://docs.unmanic.app/) is a simple tool for optimising your file library. You can use it to convert your files into a single, uniform format, manage file movements based on timestamps, or execute custom commands against a file based on its file size.\n  \n  To create a new Proxmox VE Unmanic LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Unmanic, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/unmanic.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Unmanic Interface: IP:8888**`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Tdarr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://home.tdarr.io/static/media/logo3-min.246d6df44c7f16ddebaf.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Tdarr LXC </h1>\n  \n  [Tdarr](https://tdarr.io/) is a media transcoding application designed to automate the transcode and remux management of a media library. It uses conditional-based processing to determine the required encoding and remux operations for each file in the library. The software integrates with popular media management tools, such as Sonarr and Radarr, to ensure that newly added media files are automatically processed and optimized for the user's desired playback device. Tdarr provides a web-based interface for monitoring and managing the transcoding process, and also supports real-time logging and reporting. The software is designed to be flexible and configurable, with a wide range of encoding and remux options available to users. Tdarr is an ideal solution for media enthusiasts who want to optimize their library for seamless playback on a variety of devices, while also streamlining the management and maintenance of their media library.\n  \n  To create a new Proxmox VE Tdarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/tdarr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Tdarr Interface: IP:8265**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Whisparr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Whisparr/Whisparr/develop/Logo/256.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Whisparr LXC </h1>\n  \n  [Whisparr](https://github.com/Whisparr/Whisparr) is an adult movie collection manager for Usenet and BitTorrent users.\n  \n  To create a new Proxmox VE Whisparr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/whisparr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Whisparr Interface: IP:6969**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Channels DVR Server LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://getchannels.com/a/images/channels-logo.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Channels DVR Server LXC </h1>\n  \n  [Channels DVR Server](https://getchannels.com/dvr-server/) runs on your computer or NAS device at home. There's no cloud to worry about. Your tv shows and movies will always be available.\n  \n  To create a new Proxmox VE Channels DVR Server LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/channels.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Channels DVR Server Interface: IP:8089**`\n  },  \n  {\n    \"category\": \"Ad Blocker - DNS\",\n\n    \"title\": \"Pi-hole LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/pi_hole/icon.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Pi-hole LXC </h1>\n  \n  [Pi-hole](https://pi-hole.net/) is a free, open-source network-level advertisement and Internet tracker blocking application. It runs on a Raspberry Pi or other Linux-based systems and acts as a DNS sinkhole, blocking unwanted traffic before it reaches a user's device. Pi-hole can also function as a DHCP server, providing IP addresses and other network configuration information to devices on a network. The software is highly configurable and supports a wide range of customizations, such as allowing or blocking specific domains, setting up blocklists and whitelists, and customizing the appearance of the web-based interface. The main purpose of Pi-hole is to protect users' privacy and security by blocking unwanted and potentially malicious content, such as ads, trackers, and malware. It is designed to be easy to set up and use, and can be configured through a web-based interface or through a terminal-based command-line interface.\n  \n  To create a new Proxmox VE Pi-hole LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/pihole.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  ⚠️ **Reboot Pi-hole LXC after install**\n  \n  **Pi-hole Interface: IP/admin**\n  \n  ⚙️ **To set your password:**\n  \n  ~~~yaml\n  pihole -a -p\n  ~~~`\n  },\n  {\n    \"category\": \"Ad Blocker - DNS\",\n\n    \"title\": \"Technitium DNS LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://avatars.githubusercontent.com/u/12230362?s=100&v=4\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Technitium DNS LXC </h1>\n\n  [Technitium DNS Server](https://technitium.com/dns/) is a free, open-source and privacy-focused DNS (Domain Name System) server software for Windows, Linux, and macOS. It is designed to provide a secure, fast, and reliable DNS resolution service to its users. The server can be configured through a web-based interface, and it supports a variety of advanced features, such as automatic IP updates, IPv6 support, caching of DNS queries, and the ability to block unwanted domains. It is also designed to be highly secure, with built-in measures to prevent common types of DNS attacks and data leaks. Technitium DNS Server is aimed at providing an alternative to traditional DNS servers, which often have privacy and security concerns associated with them, and it is ideal for users who are looking for a more secure and private DNS resolution service.\n  \n  To create a new Proxmox VE Technitium DNS LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Technitium DNS, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/technitiumdns.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **Technitium DNS Interface: IP:5380**`\n  \n  },\n  {\n    \"category\": \"Ad Blocker - DNS\",\n\n    \"title\": \"AdGuard Home LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/adguard/icon.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> AdGuard Home LXC </h1>\n\n  [AdGuard Home](https://adguard.com/en/adguard-home/overview.html) is an open-source, self-hosted network-wide ad blocker. It blocks advertisements, trackers, phishing and malware websites, and provides protection against online threats. AdGuard Home is a DNS-based solution, which means it blocks ads and malicious content at the network level, before it even reaches your device. It runs on your home network and can be easily configured and managed through a web-based interface. It provides detailed statistics and logs, allowing you to see which websites are being blocked, and why. AdGuard Home is designed to be fast, lightweight, and easy to use, making it an ideal solution for home users who want to block ads, protect their privacy, and improve the speed and security of their online experience.\n  \n  To create a new Proxmox VE AdGuard Home LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Manually Update AdGuard Home, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/adguard.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n\n  **AdGuard Home Setup Interface: IP:3000  (After Setup use only IP)**\n  \n  <sub>(For the Home Assistant Integration, use port <code class=\"highlighter-rouge\">80</code> not <code class=\"highlighter-rouge\">3000</code>)</sub>`\n  \n  },\n  {\n    \"category\": \"Ad Blocker - DNS\",\n\n    \"title\": \"Blocky LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/0xERR0R/blocky/main/docs/blocky.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Blocky LXC </h1>\n  \n  [Blocky](https://0xerr0r.github.io/blocky/) is a software tool designed for blocking unwanted ads and trackers on local networks. It functions as a DNS proxy and runs on the Go programming language. Blocky intercepts requests to advertisements and other unwanted content and blocks them before they reach the end user. This results in a cleaner, faster, and more secure online experience for users connected to the local network. Blocky is open-source, easy to configure and can be run on a variety of devices, making it a versatile solution for small to medium-sized local networks.\n  \n  To create a new Proxmox VE Blocky LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/blocky.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  \n  ⚙️ **Blocky Config Path**\n  \n  ~~~yaml\n  /opt/blocky/config.yml\n  ~~~`\n  },\n  {\n    \"category\": \"Document - Notes\",\n\n    \"title\": \"Paperless-ngx LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/paperless-ngx/paperless-ngx/blob/main/resources/logo/web/svg/square.svg?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Paperless-ngx LXC </h1>\n  \n  [Paperless-ngx](https://paperless-ngx.readthedocs.io/en/latest/#) is a software tool designed for digitizing and organizing paper documents. It provides a web-based interface for scanning, uploading, and organizing paper documents, making it easier to manage, search, and access important information. Paperless-ngx uses the OCR (Optical Character Recognition) technology to extract text from scanned images and makes it searchable, thus increasing the efficiency of document management.\n  \n  To create a new Proxmox VE Paperless-ngx LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Paperless-ngx or Show Login Credentials, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/paperless-ngx.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Paperless-ngx Interface: IP:8000**`\n  \n  },\n  {\n    \"category\": \"Document - Notes\",\n\n    \"title\": \"Trilium LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/zadam/trilium/master/images/app-icons/png/128x128.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Trilium LXC </h1>\n  \n  [Trilium](https://github.com/zadam/trilium#trilium-notes) is an open-source note-taking and personal knowledge management application. It allows users to organize and manage their notes, ideas, and information in a single place, using a hierarchical tree-like structure. Trilium offers a range of features, including rich text formatting, links, images, and attachments, making it easy to create and structure notes. The software is designed to be flexible and customizable, with a range of customization options and plugins available, including themes, export options, and more. Trilium is a self-hosted solution, and can be run on a local machine or a cloud-based server, providing users with full control over their notes and information.\n  \n  To create a new Proxmox VE Trilium LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Trilium, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/trilium.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **Trilium Interface: IP:8080**`\n  \n  },\n  {\n    \"category\": \"Document - Notes\",\n\n    \"title\": \"Wiki.js LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://static.requarks.io/logo/wikijs-butterfly.svg?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Wiki.js LXC </h1>\n  \n  [Wiki.js](https://js.wiki/) is a free, open-source, and modern wiki application built using Node.js. It is designed to be fast, easy to use, and flexible, with a range of features for collaboration, knowledge management, and content creation. Wiki.js supports Markdown syntax for editing pages, and includes features such as version control, page history, and access control, making it easy to manage content and collaborate with others. The software is fully customizable, with a range of themes and extensions available, and can be deployed on a local server or in the cloud, making it an ideal choice for small teams and organizations looking to create and manage a wiki. Wiki.js provides a modern, user-friendly interface, and supports a range of data sources, including local file systems, databases, and cloud storage services. \n  \n  To create a new Proxmox VE Wiki.js LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Wiki.js, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/wikijs.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **Wiki.js Interface: IP:3000**`\n  },\n  {\n    \"category\": \"Document - Notes\",\n\n  \n    \"title\": \"NocoDB LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/nocodb.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> NocoDB LXC </h1>\n  \n  [NocoDB](https://www.nocodb.com/) is a document-oriented database management system. It uses the NoSQL (Not Only SQL) data model, which allows for more flexible and scalable data storage than traditional relational databases. NoCoDB stores data in JSON format, making it easier to manage and query complex data structures, and supports a range of data types, including strings, numbers, arrays, and objects. The software provides a web-based interface for managing and querying data, and includes features such as real-time data synchronization, auto-indexing, and full-text search. NoCoDB is designed to be scalable, and can be used for a range of applications, from small projects to large enterprise systems. The software is free and open-source, and is designed to be easy to use and integrate with other applications.\n  \n  To create a new Proxmox VE NocoDB LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update NocoDB, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nocodb.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n  \n  **NocoDB Interface: IP:8080/dashboard**`\n  \n  },\n  {\n    \"category\": \"Document - Notes\",\n  \n    \"title\": \"Kavita LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Kareadita/Kavita/develop/Logo/kavita.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"Kavita\"> Kavita LXC </h1>\n  \n  [Kavita](https://www.kavitareader.com/) is a fast, feature rich, cross platform reading server. Built with a focus for manga, and the goal of being a full solution for all your reading needs.\n  \n  To create a new Proxmox VE Kavita LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Kavita, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/kavita.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Kavita Interface: IP:5000**`\n  \n  },\n  {\n    \"category\": \"Dashboards\",\n\n    \"title\": \"Heimdall Dashboard LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/heimdall.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Heimdall Dashboard LXC (English-only) </h1>\n  \n  [Heimdall Dashboard](https://heimdall.site/) is a self-hosted, web-based dashboard for managing and monitoring the health of applications and servers. It allows you to keep track of the status of your systems from a single, centralized location, and receive notifications when things go wrong. With Heimdall Dashboard, you have full control over your data and can customize it to meet your specific needs. Self-hosting the dashboard gives you the flexibility to run it on your own infrastructure, making it a suitable solution for organizations that prioritize data security and privacy.\n  \n  To create a new Proxmox VE Heimdall Dashboard LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Heimdall Dashboard, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/heimdalldashboard.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **Heimdall Dashboard Interface: IP:7990**`\n  \n  },\n  {\n    \"category\": \"Dashboards\",\n\n    \"title\": \"Linkwarden LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/linkwarden/linkwarden/main/assets/logo.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Linkwarden LXC </h1>\n  \n  [Linkwarden](https://linkwarden.app/) is a fully self-hostable, open-source collaborative bookmark manager to collect, organize and archive webpages.\n  \n  To create a new Proxmox VE Linkwarden LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/linkwarden.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Linkwarden Interface: IP:3000**\n  \n  Show Database/Adminer Credentials: <code class=\"highlighter-rouge\">cat linkwarden.creds</code>`\n  \n  },\n  {\n    \"category\": \"Dashboards\",\n\n    \"title\": \"Homepage LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/benphelps/homepage/raw/main/images/banner_light%402x.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Homepage LXC </h1>\n  \n  [Homepage](https://github.com/benphelps/homepage) is a self-hosted dashboard solution for centralizing and organizing data and information.\n  \n  To create a new Proxmox VE Homepage LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Homepage, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homepage.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 3GB Storage - 2vCPU ⚡</h3>\n  \n  [Configuration](https://github.com/benphelps/homepage/wiki) (bookmarks.yaml, services.yaml, widgets.yaml) path: <code class=\"highlighter-rouge\">/opt/homepage/config/</code>\n  \n  **Homepage Interface: IP:3000**`\n  \n  },\n    {\n    \"category\": \"Dashboards\",\n\n    \"title\": \"OliveTin\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/OliveTin/OliveTin/main/webui/OliveTinLogo.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> OliveTin </h1>\n\n  [OliveTin](https://www.olivetin.app/) provides a secure and straightforward way to execute pre-determined shell commands through a web-based interface.\n  \n  To Install OliveTin, ⚠️ run the command below in the LXC console.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/olivetin.sh)\"\n  ~~~\n  \n  **OliveTin Interface: IP:1337**\n  \n  ⚙️ **Config Path**\n  \n  ~~~yaml\n  /etc/OliveTin/config.yaml\n  ~~~`\n  },\n    {\n    \"category\": \"Dashboards\",\n\n    \"title\": \"Homarr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://homarr.dev/img/logo.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Homarr LXC </h1>\n  \n  [Homarr](https://homarr.dev/) is a sleek, modern dashboard that puts all of your apps and services at your fingertips.\n  \n  To create a new Proxmox VE Homarr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Homarr, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homarr.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n\n  **Homarr Interface: IP:3000**`\n   \n  },\n  {\n    \"category\": \"Dashboards\",\n\n    \"title\": \"Homer LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/bastienwirtz/homer/main/public/assets/icons/logo.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Homer LXC </h1>\n  \n  [Homer](https://github.com/bastienwirtz/homer#---------homer) is a simple and lightweight static homepage generator that allows you to create and manage a home page for your server. It uses a YAML configuration file to define the layout and content of your homepage, making it easy to set up and customize. The generated homepage is static, meaning it does not require any server-side processing, making it fast and efficient to serve. Homer is designed to be a flexible and low-maintenance solution for organizing and accessing your services and information from a single, centralized location.\n  \n  To create a new Proxmox VE Homer LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Homer, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homer.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n\n  **Homer Interface: IP:8010**\n  \n  ⚙️ **Config Path**\n  \n  ~~~yaml\n  /opt/homer/assets/config.yml\n  ~~~`\n   \n  },\n  {\n    \"category\": \"Dashboards\",\n\n    \"title\": \"Dashy LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/Lissy93/dashy/raw/master/public/web-icons/dashy-logo.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Dashy LXC </h1>\n  \n  [Dashy](https://dashy.to/) is a solution that helps you organize your self-hosted services by centralizing access to them through a single interface.\n  \n  To create a new Proxmox VE Dashy LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Dashy, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/dashy.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 6GB Storage - 2vCPU ⚡</h3>\n  \n  **Dashy Interface: IP:4000**\n  \n  Once you've configured everything according to your preferences in interactive mode and saved the changes to the disk, go into update configuration and rebuild application.`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"File Browser\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/filebrowser.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> File Browser </h1>\n\n  [File Browser](https://filebrowser.org/features) offers a user-friendly web interface for managing files within a designated directory. It allows you to perform various actions such as uploading, deleting, previewing, renaming, and editing files.\n  \n  To Install, or uninstall File Browser, ⚠️ run the command below in the <b>LXC console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/filebrowser.sh)\"\n  ~~~\n  \n  **File Browser Interface: IP:8080**\n  \n  ⚙️ **Initial Login (not required for No Authentication)**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n\n  **password** <code class=\"highlighter-rouge\">changeme</code>\n  \n  ⚙️ **To Update File Browser**\n  \n  ~~~yaml\n  curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash\n  ~~~`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"VS Code Server\",\n    \"content\": `<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/674621/71187801-14e60a80-2280-11ea-94c9-e56576f76baf.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> VS Code Server </h1>\n\n  [VS Code Server](https://code.visualstudio.com/docs/remote/vscode-server) is a service you can run on a remote development machine, like your desktop PC or a virtual machine (VM). It allows you to securely connect to that remote machine from anywhere through a vscode.dev URL, without the requirement of SSH.\n  \n  To Install VS Code Server, ⚠️ run the command below in the <b>LXC console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/code-server.sh)\"\n  ~~~\n  \n  **VS Code Server Interface: IP:8680**`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Deluge LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://dev.deluge-torrent.org/chrome/common/deluge_logo.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Deluge LXC </h1>\n\n  [Deluge](https://www.deluge-torrent.org/) is a free, open-source, lightweight BitTorrent client. It supports various platforms including Windows, Linux, and macOS, and offers features such as peer exchange, DHT, and magnet links.\n  \n  To create a new Proxmox VE Deluge LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/deluge.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n\n  ⚙️ **Initial Login**\n\n  **password** <code class=\"highlighter-rouge\">deluge</code>\n\n  **Deluge Interface: IP:8112**`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Transmission LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/transmission/transmission/main/web/assets/img/logo.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Transmission LXC </h1>\n\n  [Transmission](https://transmissionbt.com/) is a free, open-source BitTorrent client known for its fast download speeds and ease of use. It supports various platforms such as Windows, Linux, and macOS and has features like web interface, peer exchange, and encrypted transfers.\n  \n  To create a new Proxmox VE Transmission LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/transmission.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n\n  ⚙️ **Initial Login**\n\n  **user/password** <code class=\"highlighter-rouge\">transmission</code>\n\n  **Transmission Interface: IP:9091/transmission**`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Autobrr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/autobrr/autobrr/master/.github/images/logo.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Autobrr LXC </h1>\n\n  [Autobrr](https://autobrr.com/) is a torrent downloading tool that automates the process of downloading torrents. It is designed to be modern and user-friendly, providing users with a convenient and efficient way to download torrent files. With Autobrr, you can schedule and manage your torrent downloads, and have the ability to automatically download torrents based on certain conditions, such as time of day or availability of seeds. This can save you time and effort, allowing you to focus on other tasks while your torrents are being downloaded in the background.\n  \n  To create a new Proxmox VE Autobrr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Autobrr, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/autobrr.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n\n  **Autobrr Interface: IP:7474**`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"qBittorrent LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/qbittorrent/qBittorrent/master/src/icons/qbittorrent.ico\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> qBittorrent LXC </h1>\n\n  [qBittorrent](https://www.qbittorrent.org/) offers a user-friendly interface that allows users to search for and download torrent files easily. It also supports magnet links, which allow users to start downloading files without the need for a torrent file.\n  \n  To create a new Proxmox VE qBittorrent LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/qbittorrent.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>  \n  \n  **qBittorrent Interface: IP:8090**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">changeme</code>`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Real-Debrid Torrent Client LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://fcdn.real-debrid.com/0820/images/logo.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Real-Debrid Torrent Client LXC </h1>\n\n  [RDTClient](https://github.com/rogerfar/rdt-client)  is a web interface to manage your torrents on Real-Debrid, AllDebrid or Premiumize.\n  \n  To create a new Proxmox VE Real-Debrid Torrent Client LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/rdtclient.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 1vCPU ⚡</h3>  \n  \n  **Real-Debrid Torrent Client Interface: IP:6500**`  \n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Jackett LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Jackett/Jackett/master/src/Jackett.Common/Content/jacket_medium.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Jackett LXC </h1>\n\n  [Jackett](https://github.com/Jackett/Jackett) supports a wide range of trackers, including popular ones like The Pirate Bay, RARBG, and Torrentz2, as well as many private trackers. It can be integrated with several BitTorrent clients, including qBittorrent, Deluge, and uTorrent, among others.\n  \n  To create a new Proxmox VE Jackett LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/jackett.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n\n  **Jackett Interface: IP:9117**`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Pingvin Share LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/stonith404/pingvin-share/blob/main/frontend/public/img/logo.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Pingvin Share LXC </h1>\n\n  [Pingvin Share](https://github.com/stonith404/pingvin-share) is self-hosted file sharing platform and an alternative for WeTransfer.\n  \n  To create a new Proxmox VE Pingvin Share LXC, run the command below in the <b>Proxmox VE Shell</b>.<br>\n  To Update Pingvin Share, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/pingvin.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>  \n  \n  **Pingvin Share Interface: IP:3000**`\n\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"SABnzbd LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/sabnzbd/sabnzbd/develop/icons/logo-arrow.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> SABnzbd LXC </h1>\n\n  [SABnzbd](https://sabnzbd.org/) is a free, open-source software program for downloading binary files from Usenet newsgroups. It is designed to be easy to use, and provides a number of features to simplify the downloading process, such as automatic error detection and repair, download scheduling, and integration with other applications. SABnzbd is a binary newsreader, which means it is specifically designed for downloading binary files, such as images, music, and video, from Usenet newsgroups. With its user-friendly interface and powerful features, SABnzbd makes it easy to manage your Usenet downloads and keep your download queue organized.\n  \n  To create a new Proxmox VE SABnzbd LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update SABnzbd, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/sabnzbd.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n\n  **SABnzbd Interface: IP:7777**`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Webmin System Administration\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/webmin/webmin/blob/master/images/webmin-blue.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Webmin System Administration </h1>\n\n  If you prefer to manage all aspects of your Proxmox VE LXC from a graphical interface instead of the command line interface, Webmin might be right for you.\n  Benefits include automatic daily security updates, backup and restore, file manager with editor, web control panel, and preconfigured system monitoring with optional email alerts.\n  \n  To Install Webmin System Administration, ⚠️ run the command below in the <b>LXC console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/webmin.sh)\"\n  ~~~\n  \n  **Webmin Interface: (https)IP:10000**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">root</code>\n  \n  **password** <code class=\"highlighter-rouge\">root</code>\n  \n  ⚙️ **To Update Webmin**\n  \n  <code class=\"highlighter-rouge\">Update from the Webmin UI</code>\n  \n  ⚙️ **To Uninstall Webmin**\n  \n  ~~~yaml\n  bash /etc/webmin/uninstall.sh\n  ~~~`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Syncthing LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/syncthing/syncthing/6afaa9f20c8eb9c7af5abbe2f2d90fa2571aa7ad/assets/logo-only.svg?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Syncthing LXC </h1>\n  \n  [Syncthing](https://syncthing.net/) is an open-source file syncing tool that allows users to keep their files in sync across multiple devices by using peer-to-peer synchronization. It doesn't rely on any central server, so all data transfers are directly between devices.\n  \n  To create a new Proxmox VE Syncthing LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/syncthing.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Syncthing Interface: IP:8384**`\n  \n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Daemon Sync Server LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fimg.informer.com%2Ficons_mac%2Fpng%2F128%2F350%2F350335.png&f=1&nofb=1\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Daemon Sync Server LXC </h1>\n  \n  Sync files from app to server, share photos & videos, back up your data and stay secure inside local network.\n  \n  To create a new Proxmox VE Daemon Sync Server LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/daemonsync.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 8GB Storage - 1vCPU ⚡</h3>\n  \n  **Daemon Sync Server Interface: IP:8084**\n  \n  Search: <code class=\"highlighter-rouge\">DAEMON Sync</code> in your favorite app store`\n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"OctoPrint LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/octoprint.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> OctoPrint LXC </h1>\n  \n  [OctoPrint](https://octoprint.org/) is a free and open-source web-based 3D printer control software that allows you to remotely control and monitor your 3D printer from a web interface. It was designed to be compatible with a wide range of 3D printers.\n  \n  To create a new Proxmox VE OctoPrint LXC, run the following in the <b>Proxmox VE Shell</b>.<br>\n  To Update OctoPrint, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/octoprint.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n  \n  **OctoPrint Interface - IP:5000**`\n  \n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"Vaultwarden LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/dani-garcia/vaultwarden/main/resources/vaultwarden-icon-white.svg\" width=\"100\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Vaultwarden LXC </h1>\n  \n  [Vaultwarden](https://www.vaultwarden.net/) is a self-hosted password manager which provides secure and encrypted password storage. It uses client-side encryption and provides access to passwords through a web interface and mobile apps.\n  \n  To create a new Proxmox VE Vaultwarden LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Vaultwarden, Web-Vault or Set the Admin Token, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/vaultwarden.sh)\"\n  ~~~\n  ⚠️ Vaultwarden needs to be behind a proxy (Nginx Proxy Manager) to obtain HTTPS and to allow clients to connect.\n  \n  The script builds from source, which takes time and resources. After the build, the script will automatically set resources to Normal Settings. \n  \n  <h3 align=\"center\" id=\"heading\">⚡ Build Settings:  4GB RAM - 6GB Storage - 4vCPU ⚡</h3>\n  <h3 align=\"center\" id=\"heading\">⚡ Normal Settings:  512Mib RAM - 6GB Storage - 1vCPU ⚡</h3>\n\n  As an alternative option, you can use Alpine Linux and the Vaultwarden package to create a Vaultwarden LXC container with significantly faster creation time and minimal system resource usage. <br>\n  \n  To create a new Proxmox VE Alpine-Vaultwarden LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Alpine-Vaultwarden, or Set the Admin Token, run the command below in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-vaultwarden.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  256Mib RAM - 300MiB Storage - 1vCPU ⚡</h3>\n\n  **Vaultwarden Interface: IP:8000**\n  \n  **Vaultwarden Admin Interface: IP:8000/admin**`\n  \n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"grocy LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://grocy.info/img/grocy_logo.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> grocy LXC </h1>\n  \n  [grocy](https://grocy.info/) is a web-based self-hosted groceries & household management solution for your home. It helps you keep track of your groceries and household items, manage your shopping list, and keep track of your pantry, recipes, meal plans, and more.\n  \n  To create a new Proxmox VE grocy LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update grocy, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/grocy.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **grocy Interface: IP**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">admin</code>`\n  \n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"MagicMirror Server LXC\",\n  \n    \"content\": `<p align=\"center\"><img src=\"https://github.com/MichMich/MagicMirror/raw/master/.github/header.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> MagicMirror Server LXC </h1>\n  \n  [MagicMirror²](https://docs.magicmirror.builders/) is a smart mirror software that allows you to build your own personal smart mirror. It uses modular components that you can customize to display information such as the weather, news, calendar, to-do list, and more. The platform is open source, allowing for community contributions and customization.\n  \n  To create a new MagicMirror Server LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update MagicMirror, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/magicmirror.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 3GB Storage - 1vCPU ⚡</h3>\n  \n  **MagicMirror Interface: IP:8080**\n  \n  ⚙️ **[Configuration](https://docs.magicmirror.builders/configuration/introduction.html#configuring-your-magicmirror)**\n  ~~~yaml\n  /opt/magicmirror/config/config.js\n  ~~~`\n\n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"TasmoAdmin LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/tasmota.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> TasmoAdmin LXC </h1>\n  \n  [TasmoAdmin](https://github.com/TasmoAdmin/TasmoAdmin#readme) is an administrative platform for devices flashed with Tasmota.\n  \n  To create a new Proxmox VE TasmoAdmin LXC, run the following in the <b>Proxmox VE Shell</b>. <br>\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/tasmoadmin.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **TasmoAdmin Interface - IP:9999**`\n  \n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"RTSPtoWeb LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://brands.home-assistant.io/_/rtsp_to_webrtc/logo.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> RTSPtoWeb LXC </h1>\n  \n  [RTSPtoWeb](https://github.com/deepch/RTSPtoWeb) converts your RTSP streams to formats consumable in a web browser like MSE (Media Source Extensions), WebRTC, or HLS. It's fully native Golang without the use of FFmpeg or GStreamer\n  \n  To create a new Proxmox VE RTSPtoWeb LXC, run the following in the <b>Proxmox VE Shell</b>. <br>\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/rtsptoweb.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **RSTPtoWEB Interface - IP:8083**`\n  \n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"go2rtc LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://brands.home-assistant.io/_/rtsp_to_webrtc/logo.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> go2rtc LXC </h1>\n  \n  [go2rtc](https://github.com/AlexxIT/go2rtc) is the ultimate camera streaming application with support RTSP, WebRTC, HomeKit, FFmpeg, RTMP, etc.\n  \n  To create a new Proxmox VE go2rtc LXC, run the following in the <b>Proxmox VE Shell</b>. <br>\n  To Update go2rtc, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/go2rtc.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **go2rtc Interface - IP:1984**`\n  \n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"Whoogle LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/whoogle.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Whoogle LXC </h1>\n  \n  Get Google search results, but without any ads, javascript, AMP links, cookies, or IP address tracking.\n  \n  To create a new Proxmox VE Whoogle LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Whoogle, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/whoogle.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n\n  **Whoogle Interface: IP:5000**`\n  \n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"AgentDVR LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://ispycontent.azureedge.net/img/ispy2.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> AgentDVR LXC </h1>\n\n  [AgentDVR](https://www.ispyconnect.com/) a new video surveillance solution for the Internet Of Things.\n  \n  To create a new Proxmox VE AgentDVR LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/agentdvr.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **AgentDVR Interface: IP:8090**`\n  \n},\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"Shinobi NVR LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://gitlab.com/uploads/-/system/project/avatar/6947723/mstile-150x150.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Shinobi NVR LXC </h1>\n\n  [Shinobi](https://shinobi.video/) is an open-source, self-hosted network video recording (NVR) software. It allows you to manage and monitor security cameras and record video footage. Shinobi can be run on various platforms including Linux, macOS, and Raspberry Pi, and offers features such as real-time streaming, motion detection, and email notifications.\n  \n  To create a new Proxmox VE Shinobi NVR LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Shinobi, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/shinobi.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Shinobi Interface: IP:8080**\n\n  **Shinobi Admin Interface: IP:8080/super**\n  \n  ⚙️ **Initial Admin Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin@shinobi.video</code>\n  \n  **password** <code class=\"highlighter-rouge\">admin</code>`\n  \n},\n{\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"MotionEye NVR LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/motioneye/icon.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> MotionEye NVR LXC </h1>\n\n  MotionEye is an open-source, self-hosted network video recording (NVR) software designed to manage and monitor IP cameras. It runs on various platforms such as Linux, Raspberry Pi, and Docker, and offers features such as real-time video streaming, motion detection, and customizable camera views.\n  \n  To create a new Proxmox VE MotionEye NVR LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update MotionEye, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/motioneye.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **MotionEye Interface: IP:8765**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">    </code>`\n  \n},\n{\n  \"category\": \"Miscellaneous\",\n\n  \"title\": \"Hyperion LXC\",\n  \"content\": `<p align=\"center\"><img src=\"https://github.com/hyperion-project/hyperion.ng/raw/master/doc/logo_dark.png?raw=true\" height=\"100\"/></p>\n\n<h1 align=\"center\" id=\"heading\"> Hyperion LXC </h1>\n\nHyperion is an opensource Ambient Lighting implementation. It supports many LED devices and video grabbers.\n\nTo create a new Proxmox VE Hyperion LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\nTo Update Hyperion, run the command below (or type update) in the <b>LXC Console</b>.\n\n~~~bash\nbash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/hyperion.sh)\"\n~~~\n\n<h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n\n**Hyperion Interface: IP:8090**`\n\n},\n{\n  \"category\": \"Miscellaneous\",\n\n  \"title\": \"All Templates\",\n  \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/proxmox.svg\" height=\"100\"/></p>\n\n<h1 align=\"center\" id=\"heading\"> All Templates </h1>\n\nA script designed to allow for the creation of one of the many free LXC templates. Great for creating system LXCs.<br>\nThe script creates a *.creds file in the Proxmox root directory with the password of the newly created LXC.<br>\nPlease take note that if you plan to use this script for creating TurnKey LXCs, you'll need to modify the hostname after creation.\n\nTo create a new Proxmox VE Template LXC, run the command below in the <b>Proxmox VE Shell</b>.\n\n~~~bash\nbash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/all-templates.sh)\"\n~~~\n\n<h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU- onboot 0 - DHCP - Unprivileged ⚡</h3><br>\nResource and network settings are adjustable post LXC creation.`\n\n}\n  ]\n}\n  \nexport default data;","export default function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}","function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n  return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  Object.defineProperty(subClass, \"prototype\", {\n    writable: false\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n  try {\n    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}","export default function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, _typeof(obj);\n}","export default function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  } else if (call !== void 0) {\n    throw new TypeError(\"Derived constructors may only return object or undefined\");\n  }\n  return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n  var hasNativeReflectConstruct = isNativeReflectConstruct();\n  return function _createSuperInternal() {\n    var Super = getPrototypeOf(Derived),\n      result;\n    if (hasNativeReflectConstruct) {\n      var NewTarget = getPrototypeOf(this).constructor;\n      result = Reflect.construct(Super, arguments, NewTarget);\n    } else {\n      result = Super.apply(this, arguments);\n    }\n    return possibleConstructorReturn(this, result);\n  };\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n  if (isNativeReflectConstruct()) {\n    _construct = Reflect.construct.bind();\n  } else {\n    _construct = function _construct(Parent, args, Class) {\n      var a = [null];\n      a.push.apply(a, args);\n      var Constructor = Function.bind.apply(Parent, a);\n      var instance = new Constructor();\n      if (Class) setPrototypeOf(instance, Class.prototype);\n      return instance;\n    };\n  }\n  return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n  var _cache = typeof Map === \"function\" ? new Map() : undefined;\n  _wrapNativeSuper = function _wrapNativeSuper(Class) {\n    if (Class === null || !isNativeFunction(Class)) return Class;\n    if (typeof Class !== \"function\") {\n      throw new TypeError(\"Super expression must either be null or a function\");\n    }\n    if (typeof _cache !== \"undefined\") {\n      if (_cache.has(Class)) return _cache.get(Class);\n      _cache.set(Class, Wrapper);\n    }\n    function Wrapper() {\n      return construct(Class, arguments, getPrototypeOf(this).constructor);\n    }\n    Wrapper.prototype = Object.create(Class.prototype, {\n      constructor: {\n        value: Wrapper,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n    return setPrototypeOf(Wrapper, Class);\n  };\n  return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n  return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {object & {type: string, position?: Position|undefined}} NodeLike\n */\n\n/**\n * Stringify one point, a position (start and end points), or a node’s\n * positional information.\n *\n * @param {Node|NodeLike|Position|Point|null} [value]\n * @returns {string}\n */\nexport function stringifyPosition(value) {\n  // Nothing.\n  if (!value || typeof value !== 'object') {\n    return ''\n  }\n\n  // Node.\n  if ('position' in value || 'type' in value) {\n    return position(value.position)\n  }\n\n  // Position.\n  if ('start' in value || 'end' in value) {\n    return position(value)\n  }\n\n  // Point.\n  if ('line' in value || 'column' in value) {\n    return point(value)\n  }\n\n  // ?\n  return ''\n}\n\n/**\n * @param {Point|undefined} point\n * @returns {string}\n */\nfunction point(point) {\n  return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position|undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n  return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number|undefined} value\n * @returns {number}\n */\nfunction index(value) {\n  return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {object & {type: string, position?: Position|undefined}} NodeLike\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\nexport class VFileMessage extends Error {\n  /**\n   * Constructor of a message for `reason` at `place` from `origin`.\n   * When an error is passed in as `reason`, copies the `stack`.\n   *\n   * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given.\n   * @param {Node|NodeLike|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional).\n   * @param {string} [origin] Place in code the message originates from (`string`, optional).\n   */\n  constructor(reason, place, origin) {\n    /** @type {[string|null, string|null]} */\n    const parts = [null, null]\n    /** @type {Position} */\n    let position = {\n      // @ts-expect-error: we always follows the structure of `position`.\n      start: {line: null, column: null},\n      // @ts-expect-error: \"\n      end: {line: null, column: null}\n    }\n\n    super()\n\n    if (typeof place === 'string') {\n      origin = place\n      place = undefined\n    }\n\n    if (typeof origin === 'string') {\n      const index = origin.indexOf(':')\n\n      if (index === -1) {\n        parts[1] = origin\n      } else {\n        parts[0] = origin.slice(0, index)\n        parts[1] = origin.slice(index + 1)\n      }\n    }\n\n    if (place) {\n      // Node.\n      if ('type' in place || 'position' in place) {\n        if (place.position) {\n          position = place.position\n        }\n      }\n      // Position.\n      else if ('start' in place || 'end' in place) {\n        position = place\n      }\n      // Point.\n      else if ('line' in place || 'column' in place) {\n        position.start = place\n      }\n    }\n\n    // Fields from `Error`\n    this.name = stringifyPosition(place) || '1:1'\n    this.message = typeof reason === 'object' ? reason.message : reason\n    this.stack = typeof reason === 'object' ? reason.stack : ''\n\n    /**\n     * Reason for message.\n     * @type {string}\n     */\n    this.reason = this.message\n    /**\n     * If true, marks associated file as no longer processable.\n     * @type {boolean?}\n     */\n    // eslint-disable-next-line no-unused-expressions\n    this.fatal\n    /**\n     * Starting line of error.\n     * @type {number?}\n     */\n    this.line = position.start.line\n    /**\n     * Starting column of error.\n     * @type {number?}\n     */\n    this.column = position.start.column\n    /**\n     * Namespace of warning.\n     * @type {string?}\n     */\n    this.source = parts[0]\n    /**\n     * Category of message.\n     * @type {string?}\n     */\n    this.ruleId = parts[1]\n    /**\n     * Full range information, when available.\n     * Has start and end properties, both set to an object with line and column, set to number?.\n     * @type {Position?}\n     */\n    this.position = position\n\n    // The following fields are “well known”.\n    // Not standard.\n    // Feel free to add other non-standard fields to your messages.\n\n    /* eslint-disable no-unused-expressions */\n    /**\n     * You can use this to specify the source value that’s being reported, which\n     * is deemed incorrect.\n     * @type {string?}\n     */\n    this.actual\n    /**\n     * You can use this to suggest values that should be used instead of\n     * `actual`, one or more values that are deemed as acceptable.\n     * @type {Array<string>?}\n     */\n    this.expected\n    /**\n     * You may add a file property with a path of a file (used throughout the VFile ecosystem).\n     * @type {string?}\n     */\n    this.file\n    /**\n     * You may add a url property with a link to documentation for the message.\n     * @type {string?}\n     */\n    this.url\n    /**\n     * You may add a note property with a long form description of the message (supported by vfile-reporter).\n     * @type {string?}\n     */\n    this.note\n    /* eslint-enable no-unused-expressions */\n  }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\n","// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * @param {string} path\n * @param {string} [ext]\n * @returns {string}\n */\nfunction basename(path, ext) {\n  if (ext !== undefined && typeof ext !== 'string') {\n    throw new TypeError('\"ext\" argument must be a string')\n  }\n\n  assertPath(path)\n  let start = 0\n  let end = -1\n  let index = path.length\n  /** @type {boolean|undefined} */\n  let seenNonSlash\n\n  if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n    while (index--) {\n      if (path.charCodeAt(index) === 47 /* `/` */) {\n        // If we reached a path separator that was not part of a set of path\n        // separators at the end of the string, stop now.\n        if (seenNonSlash) {\n          start = index + 1\n          break\n        }\n      } else if (end < 0) {\n        // We saw the first non-path separator, mark this as the end of our\n        // path component.\n        seenNonSlash = true\n        end = index + 1\n      }\n    }\n\n    return end < 0 ? '' : path.slice(start, end)\n  }\n\n  if (ext === path) {\n    return ''\n  }\n\n  let firstNonSlashEnd = -1\n  let extIndex = ext.length - 1\n\n  while (index--) {\n    if (path.charCodeAt(index) === 47 /* `/` */) {\n      // If we reached a path separator that was not part of a set of path\n      // separators at the end of the string, stop now.\n      if (seenNonSlash) {\n        start = index + 1\n        break\n      }\n    } else {\n      if (firstNonSlashEnd < 0) {\n        // We saw the first non-path separator, remember this index in case\n        // we need it if the extension ends up not matching.\n        seenNonSlash = true\n        firstNonSlashEnd = index + 1\n      }\n\n      if (extIndex > -1) {\n        // Try to match the explicit extension.\n        if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n          if (extIndex < 0) {\n            // We matched the extension, so mark this as the end of our path\n            // component\n            end = index\n          }\n        } else {\n          // Extension does not match, so our result is the entire path\n          // component\n          extIndex = -1\n          end = firstNonSlashEnd\n        }\n      }\n    }\n  }\n\n  if (start === end) {\n    end = firstNonSlashEnd\n  } else if (end < 0) {\n    end = path.length\n  }\n\n  return path.slice(start, end)\n}\n\n/**\n * @param {string} path\n * @returns {string}\n */\nfunction dirname(path) {\n  assertPath(path)\n\n  if (path.length === 0) {\n    return '.'\n  }\n\n  let end = -1\n  let index = path.length\n  /** @type {boolean|undefined} */\n  let unmatchedSlash\n\n  // Prefix `--` is important to not run on `0`.\n  while (--index) {\n    if (path.charCodeAt(index) === 47 /* `/` */) {\n      if (unmatchedSlash) {\n        end = index\n        break\n      }\n    } else if (!unmatchedSlash) {\n      // We saw the first non-path separator\n      unmatchedSlash = true\n    }\n  }\n\n  return end < 0\n    ? path.charCodeAt(0) === 47 /* `/` */\n      ? '/'\n      : '.'\n    : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n    ? '//'\n    : path.slice(0, end)\n}\n\n/**\n * @param {string} path\n * @returns {string}\n */\nfunction extname(path) {\n  assertPath(path)\n\n  let index = path.length\n\n  let end = -1\n  let startPart = 0\n  let startDot = -1\n  // Track the state of characters (if any) we see before our first dot and\n  // after any path separator we find.\n  let preDotState = 0\n  /** @type {boolean|undefined} */\n  let unmatchedSlash\n\n  while (index--) {\n    const code = path.charCodeAt(index)\n\n    if (code === 47 /* `/` */) {\n      // If we reached a path separator that was not part of a set of path\n      // separators at the end of the string, stop now.\n      if (unmatchedSlash) {\n        startPart = index + 1\n        break\n      }\n\n      continue\n    }\n\n    if (end < 0) {\n      // We saw the first non-path separator, mark this as the end of our\n      // extension.\n      unmatchedSlash = true\n      end = index + 1\n    }\n\n    if (code === 46 /* `.` */) {\n      // If this is our first dot, mark it as the start of our extension.\n      if (startDot < 0) {\n        startDot = index\n      } else if (preDotState !== 1) {\n        preDotState = 1\n      }\n    } else if (startDot > -1) {\n      // We saw a non-dot and non-path separator before our dot, so we should\n      // have a good chance at having a non-empty extension.\n      preDotState = -1\n    }\n  }\n\n  if (\n    startDot < 0 ||\n    end < 0 ||\n    // We saw a non-dot character immediately before the dot.\n    preDotState === 0 ||\n    // The (right-most) trimmed path component is exactly `..`.\n    (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n  ) {\n    return ''\n  }\n\n  return path.slice(startDot, end)\n}\n\n/**\n * @param {Array<string>} segments\n * @returns {string}\n */\nfunction join(...segments) {\n  let index = -1\n  /** @type {string|undefined} */\n  let joined\n\n  while (++index < segments.length) {\n    assertPath(segments[index])\n\n    if (segments[index]) {\n      joined =\n        joined === undefined ? segments[index] : joined + '/' + segments[index]\n    }\n  }\n\n  return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Note: `normalize` is not exposed as `path.normalize`, so some code is\n * manually removed from it.\n *\n * @param {string} path\n * @returns {string}\n */\nfunction normalize(path) {\n  assertPath(path)\n\n  const absolute = path.charCodeAt(0) === 47 /* `/` */\n\n  // Normalize the path according to POSIX rules.\n  let value = normalizeString(path, !absolute)\n\n  if (value.length === 0 && !absolute) {\n    value = '.'\n  }\n\n  if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {\n    value += '/'\n  }\n\n  return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * @param {boolean} allowAboveRoot\n * @returns {string}\n */\nfunction normalizeString(path, allowAboveRoot) {\n  let result = ''\n  let lastSegmentLength = 0\n  let lastSlash = -1\n  let dots = 0\n  let index = -1\n  /** @type {number|undefined} */\n  let code\n  /** @type {number} */\n  let lastSlashIndex\n\n  while (++index <= path.length) {\n    if (index < path.length) {\n      code = path.charCodeAt(index)\n    } else if (code === 47 /* `/` */) {\n      break\n    } else {\n      code = 47 /* `/` */\n    }\n\n    if (code === 47 /* `/` */) {\n      if (lastSlash === index - 1 || dots === 1) {\n        // Empty.\n      } else if (lastSlash !== index - 1 && dots === 2) {\n        if (\n          result.length < 2 ||\n          lastSegmentLength !== 2 ||\n          result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n          result.charCodeAt(result.length - 2) !== 46 /* `.` */\n        ) {\n          if (result.length > 2) {\n            lastSlashIndex = result.lastIndexOf('/')\n\n            if (lastSlashIndex !== result.length - 1) {\n              if (lastSlashIndex < 0) {\n                result = ''\n                lastSegmentLength = 0\n              } else {\n                result = result.slice(0, lastSlashIndex)\n                lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n              }\n\n              lastSlash = index\n              dots = 0\n              continue\n            }\n          } else if (result.length > 0) {\n            result = ''\n            lastSegmentLength = 0\n            lastSlash = index\n            dots = 0\n            continue\n          }\n        }\n\n        if (allowAboveRoot) {\n          result = result.length > 0 ? result + '/..' : '..'\n          lastSegmentLength = 2\n        }\n      } else {\n        if (result.length > 0) {\n          result += '/' + path.slice(lastSlash + 1, index)\n        } else {\n          result = path.slice(lastSlash + 1, index)\n        }\n\n        lastSegmentLength = index - lastSlash - 1\n      }\n\n      lastSlash = index\n      dots = 0\n    } else if (code === 46 /* `.` */ && dots > -1) {\n      dots++\n    } else {\n      dots = -1\n    }\n  }\n\n  return result\n}\n\n/**\n * @param {string} path\n */\nfunction assertPath(path) {\n  if (typeof path !== 'string') {\n    throw new TypeError(\n      'Path must be a string. Received ' + JSON.stringify(path)\n    )\n  }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n  return '/'\n}\n","/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * @param {unknown} fileURLOrPath\n * @returns {fileURLOrPath is URL}\n */\n// From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>\nexport function isUrl(fileURLOrPath) {\n  return (\n    fileURLOrPath !== null &&\n    typeof fileURLOrPath === 'object' &&\n    // @ts-expect-error: indexable.\n    fileURLOrPath.href &&\n    // @ts-expect-error: indexable.\n    fileURLOrPath.origin\n  )\n}\n","/// <reference lib=\"dom\" />\n\nimport {isUrl} from './minurl.shared.js'\n\n// See: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js>\n\n/**\n * @param {string|URL} path\n */\nexport function urlToPath(path) {\n  if (typeof path === 'string') {\n    path = new URL(path)\n  } else if (!isUrl(path)) {\n    /** @type {NodeJS.ErrnoException} */\n    const error = new TypeError(\n      'The \"path\" argument must be of type string or an instance of URL. Received `' +\n        path +\n        '`'\n    )\n    error.code = 'ERR_INVALID_ARG_TYPE'\n    throw error\n  }\n\n  if (path.protocol !== 'file:') {\n    /** @type {NodeJS.ErrnoException} */\n    const error = new TypeError('The URL must be of scheme file')\n    error.code = 'ERR_INVALID_URL_SCHEME'\n    throw error\n  }\n\n  return getPathFromURLPosix(path)\n}\n\n/**\n * @param {URL} url\n */\nfunction getPathFromURLPosix(url) {\n  if (url.hostname !== '') {\n    /** @type {NodeJS.ErrnoException} */\n    const error = new TypeError(\n      'File URL host must be \"localhost\" or empty on darwin'\n    )\n    error.code = 'ERR_INVALID_FILE_URL_HOST'\n    throw error\n  }\n\n  const pathname = url.pathname\n  let index = -1\n\n  while (++index < pathname.length) {\n    if (\n      pathname.charCodeAt(index) === 37 /* `%` */ &&\n      pathname.charCodeAt(index + 1) === 50 /* `2` */\n    ) {\n      const third = pathname.charCodeAt(index + 2)\n      if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n        /** @type {NodeJS.ErrnoException} */\n        const error = new TypeError(\n          'File URL path must not include encoded / characters'\n        )\n        error.code = 'ERR_INVALID_FILE_URL_PATH'\n        throw error\n      }\n    }\n  }\n\n  return decodeURIComponent(pathname)\n}\n\nexport {isUrl} from './minurl.shared.js'\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {Record<string, unknown> & {type: string, position?: Position|undefined}} NodeLike\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n *\n * @typedef {'ascii'|'utf8'|'utf-8'|'utf16le'|'ucs2'|'ucs-2'|'base64'|'base64url'|'latin1'|'binary'|'hex'} BufferEncoding\n *   Encodings supported by the buffer class.\n *   This is a copy of the typing from Node, copied to prevent Node globals from\n *   being needed.\n *   Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/90a4ec8/types/node/buffer.d.ts#L170>\n *\n * @typedef {Value|Options|VFile|URL} Compatible\n *   Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * @property {Value} [value]\n * @property {string} [cwd]\n * @property {Array<string>} [history]\n * @property {string|URL} [path]\n * @property {string} [basename]\n * @property {string} [stem]\n * @property {string} [extname]\n * @property {string} [dirname]\n * @property {Data} [data]\n *\n * @typedef Map\n *   Raw source map, see:\n *   <https://github.com/mozilla/source-map/blob/58819f0/source-map.d.ts#L15-L23>.\n * @property {number} version\n * @property {Array<string>} sources\n * @property {Array<string>} names\n * @property {string|undefined} [sourceRoot]\n * @property {Array<string>|undefined} [sourcesContent]\n * @property {string} mappings\n * @property {string} file\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options\n *   Configuration: a bunch of keys that will be shallow copied over to the new\n *   file.\n *\n * @typedef {Record<string, unknown>} ReporterSettings\n * @typedef {<T = ReporterSettings>(files: Array<VFile>, options: T) => string} Reporter\n */\n\nimport buffer from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\n\n// Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n  /**\n   * Create a new virtual file.\n   *\n   * If `options` is `string` or `Buffer`, it’s treated as `{value: options}`.\n   * If `options` is a `URL`, it’s treated as `{path: options}`.\n   * If `options` is a `VFile`, shallow copies its data over to the new file.\n   * All fields in `options` are set on the newly created `VFile`.\n   *\n   * Path related fields are set in the following order (least specific to\n   * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n   * `dirname`.\n   *\n   * It’s not possible to set either `dirname` or `extname` without setting\n   * either `history`, `path`, `basename`, or `stem` as well.\n   *\n   * @param {Compatible} [value]\n   */\n  constructor(value) {\n    /** @type {Options} */\n    let options\n\n    if (!value) {\n      options = {}\n    } else if (typeof value === 'string' || buffer(value)) {\n      // @ts-expect-error Looks like a buffer.\n      options = {value}\n    } else if (isUrl(value)) {\n      options = {path: value}\n    } else {\n      // @ts-expect-error Looks like file or options.\n      options = value\n    }\n\n    /**\n     * Place to store custom information (default: `{}`).\n     * It’s OK to store custom data directly on the file but moving it to\n     * `data` is recommended.\n     * @type {Data}\n     */\n    this.data = {}\n\n    /**\n     * List of messages associated with the file.\n     * @type {Array<VFileMessage>}\n     */\n    this.messages = []\n\n    /**\n     * List of filepaths the file moved between.\n     * The first is the original path and the last is the current path.\n     * @type {Array<string>}\n     */\n    this.history = []\n\n    /**\n     * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n     * @type {string}\n     */\n    this.cwd = proc.cwd()\n\n    /* eslint-disable no-unused-expressions */\n    /**\n     * Raw value.\n     * @type {Value}\n     */\n    this.value\n\n    // The below are non-standard, they are “well-known”.\n    // As in, used in several tools.\n\n    /**\n     * Whether a file was saved to disk.\n     * This is used by vfile reporters.\n     * @type {boolean}\n     */\n    this.stored\n\n    /**\n     * Sometimes files have a non-string, compiled, representation.\n     * This can be stored in the `result` field.\n     * One example is when turning markdown into React nodes.\n     * This is used by unified to store non-string results.\n     * @type {unknown}\n     */\n    this.result\n\n    /**\n     * Sometimes files have a source map associated with them.\n     * This can be stored in the `map` field.\n     * This should be a `Map` type, which is equivalent to the `RawSourceMap`\n     * type from the `source-map` module.\n     * @type {Map|undefined}\n     */\n    this.map\n    /* eslint-enable no-unused-expressions */\n\n    // Set path related properties in the correct order.\n    let index = -1\n\n    while (++index < order.length) {\n      const prop = order[index]\n\n      // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n      // `vfile`s too.\n      if (prop in options && options[prop] !== undefined) {\n        // @ts-expect-error: TS is confused by the different types for `history`.\n        this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n      }\n    }\n\n    /** @type {string} */\n    let prop\n\n    // Set non-path related properties.\n    for (prop in options) {\n      // @ts-expect-error: fine to set other things.\n      if (!order.includes(prop)) this[prop] = options[prop]\n    }\n  }\n\n  /**\n   * Get the full path (example: `'~/index.min.js'`).\n   * @returns {string}\n   */\n  get path() {\n    return this.history[this.history.length - 1]\n  }\n\n  /**\n   * Set the full path (example: `'~/index.min.js'`).\n   * Cannot be nullified.\n   * You can set a file URL (a `URL` object with a `file:` protocol) which will\n   * be turned into a path with `url.fileURLToPath`.\n   * @param {string|URL} path\n   */\n  set path(path) {\n    if (isUrl(path)) {\n      path = urlToPath(path)\n    }\n\n    assertNonEmpty(path, 'path')\n\n    if (this.path !== path) {\n      this.history.push(path)\n    }\n  }\n\n  /**\n   * Get the parent path (example: `'~'`).\n   */\n  get dirname() {\n    return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n  }\n\n  /**\n   * Set the parent path (example: `'~'`).\n   * Cannot be set if there’s no `path` yet.\n   */\n  set dirname(dirname) {\n    assertPath(this.basename, 'dirname')\n    this.path = path.join(dirname || '', this.basename)\n  }\n\n  /**\n   * Get the basename (including extname) (example: `'index.min.js'`).\n   */\n  get basename() {\n    return typeof this.path === 'string' ? path.basename(this.path) : undefined\n  }\n\n  /**\n   * Set basename (including extname) (`'index.min.js'`).\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be nullified (use `file.path = file.dirname` instead).\n   */\n  set basename(basename) {\n    assertNonEmpty(basename, 'basename')\n    assertPart(basename, 'basename')\n    this.path = path.join(this.dirname || '', basename)\n  }\n\n  /**\n   * Get the extname (including dot) (example: `'.js'`).\n   */\n  get extname() {\n    return typeof this.path === 'string' ? path.extname(this.path) : undefined\n  }\n\n  /**\n   * Set the extname (including dot) (example: `'.js'`).\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be set if there’s no `path` yet.\n   */\n  set extname(extname) {\n    assertPart(extname, 'extname')\n    assertPath(this.dirname, 'extname')\n\n    if (extname) {\n      if (extname.charCodeAt(0) !== 46 /* `.` */) {\n        throw new Error('`extname` must start with `.`')\n      }\n\n      if (extname.includes('.', 1)) {\n        throw new Error('`extname` cannot contain multiple dots')\n      }\n    }\n\n    this.path = path.join(this.dirname, this.stem + (extname || ''))\n  }\n\n  /**\n   * Get the stem (basename w/o extname) (example: `'index.min'`).\n   */\n  get stem() {\n    return typeof this.path === 'string'\n      ? path.basename(this.path, this.extname)\n      : undefined\n  }\n\n  /**\n   * Set the stem (basename w/o extname) (example: `'index.min'`).\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be nullified (use `file.path = file.dirname` instead).\n   */\n  set stem(stem) {\n    assertNonEmpty(stem, 'stem')\n    assertPart(stem, 'stem')\n    this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n  }\n\n  /**\n   * Serialize the file.\n   *\n   * @param {BufferEncoding} [encoding='utf8']\n   *   When `value` is a `Buffer`, `encoding` is a character encoding to\n   *   understand it as (default: `'utf8'`).\n   * @returns {string}\n   *   Serialized file.\n   */\n  toString(encoding) {\n    return (this.value || '').toString(encoding)\n  }\n\n  /**\n   * Constructs a new `VFileMessage`, where `fatal` is set to `false`, and\n   * associates it with the file by adding it to `vfile.messages` and setting\n   * `message.file` to the current filepath.\n   *\n   * @param {string|Error} reason\n   *   Human readable reason for the message, uses the stack and message of the error if given.\n   * @param {Node|NodeLike|Position|Point} [place]\n   *   Place where the message occurred in the file.\n   * @param {string} [origin]\n   *   Computer readable reason for the message\n   * @returns {VFileMessage}\n   *   Message.\n   */\n  message(reason, place, origin) {\n    const message = new VFileMessage(reason, place, origin)\n\n    if (this.path) {\n      message.name = this.path + ':' + message.name\n      message.file = this.path\n    }\n\n    message.fatal = false\n\n    this.messages.push(message)\n\n    return message\n  }\n\n  /**\n   * Like `VFile#message()`, but associates an informational message where\n   * `fatal` is set to `null`.\n   *\n   * @param {string|Error} reason\n   *   Human readable reason for the message, uses the stack and message of the error if given.\n   * @param {Node|NodeLike|Position|Point} [place]\n   *   Place where the message occurred in the file.\n   * @param {string} [origin]\n   *   Computer readable reason for the message\n   * @returns {VFileMessage}\n   *   Message.\n   */\n  info(reason, place, origin) {\n    const message = this.message(reason, place, origin)\n\n    message.fatal = null\n\n    return message\n  }\n\n  /**\n   * Like `VFile#message()`, but associates a fatal message where `fatal` is\n   * set to `true`, and then immediately throws it.\n   *\n   * > 👉 **Note**: a fatal error means that a file is no longer processable.\n   *\n   * @param {string|Error} reason\n   *   Human readable reason for the message, uses the stack and message of the error if given.\n   * @param {Node|NodeLike|Position|Point} [place]\n   *   Place where the message occurred in the file.\n   * @param {string} [origin]\n   *   Computer readable reason for the message\n   * @returns {never}\n   *   Message.\n   */\n  fail(reason, place, origin) {\n    const message = this.message(reason, place, origin)\n\n    message.fatal = true\n\n    throw message\n  }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {void}\n */\nfunction assertPart(part, name) {\n  if (part && part.includes(path.sep)) {\n    throw new Error(\n      '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n    )\n  }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {asserts part is string}\n */\nfunction assertNonEmpty(part, name) {\n  if (!part) {\n    throw new Error('`' + name + '` cannot be empty')\n  }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string|undefined} path\n * @param {string} name\n * @returns {asserts path is string}\n */\nfunction assertPath(path, name) {\n  if (!path) {\n    throw new Error('Setting `' + name + '` requires `path` to be set too')\n  }\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n  return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n *   Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n  if (error) {\n    throw error\n  }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","/**\n * @typedef {(error?: Error|null|undefined, ...output: Array<any>) => void} Callback\n * @typedef {(...input: Array<any>) => any} Middleware\n *\n * @typedef {(...input: Array<any>) => void} Run\n *   Call all middleware.\n * @typedef {(fn: Middleware) => Pipeline} Use\n *   Add `fn` (middleware) to the list.\n * @typedef {{run: Run, use: Use}} Pipeline\n *   Middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n */\nexport function trough() {\n  /** @type {Array<Middleware>} */\n  const fns = []\n  /** @type {Pipeline} */\n  const pipeline = {run, use}\n\n  return pipeline\n\n  /** @type {Run} */\n  function run(...values) {\n    let middlewareIndex = -1\n    /** @type {Callback} */\n    const callback = values.pop()\n\n    if (typeof callback !== 'function') {\n      throw new TypeError('Expected function as last argument, not ' + callback)\n    }\n\n    next(null, ...values)\n\n    /**\n     * Run the next `fn`, or we’re done.\n     *\n     * @param {Error|null|undefined} error\n     * @param {Array<any>} output\n     */\n    function next(error, ...output) {\n      const fn = fns[++middlewareIndex]\n      let index = -1\n\n      if (error) {\n        callback(error)\n        return\n      }\n\n      // Copy non-nullish input into values.\n      while (++index < values.length) {\n        if (output[index] === null || output[index] === undefined) {\n          output[index] = values[index]\n        }\n      }\n\n      // Save the newly created `output` for the next call.\n      values = output\n\n      // Next or done.\n      if (fn) {\n        wrap(fn, next)(...output)\n      } else {\n        callback(null, ...output)\n      }\n    }\n  }\n\n  /** @type {Use} */\n  function use(middelware) {\n    if (typeof middelware !== 'function') {\n      throw new TypeError(\n        'Expected `middelware` to be a function, not ' + middelware\n      )\n    }\n\n    fns.push(middelware)\n    return pipeline\n  }\n}\n\n/**\n * Wrap `middleware`.\n * Can be sync or async; return a promise, receive a callback, or return new\n * values and errors.\n *\n * @param {Middleware} middleware\n * @param {Callback} callback\n */\nexport function wrap(middleware, callback) {\n  /** @type {boolean} */\n  let called\n\n  return wrapped\n\n  /**\n   * Call `middleware`.\n   * @this {any}\n   * @param {Array<any>} parameters\n   * @returns {void}\n   */\n  function wrapped(...parameters) {\n    const fnExpectsCallback = middleware.length > parameters.length\n    /** @type {any} */\n    let result\n\n    if (fnExpectsCallback) {\n      parameters.push(done)\n    }\n\n    try {\n      result = middleware.apply(this, parameters)\n    } catch (error) {\n      const exception = /** @type {Error} */ (error)\n\n      // Well, this is quite the pickle.\n      // `middleware` received a callback and called it synchronously, but that\n      // threw an error.\n      // The only thing left to do is to throw the thing instead.\n      if (fnExpectsCallback && called) {\n        throw exception\n      }\n\n      return done(exception)\n    }\n\n    if (!fnExpectsCallback) {\n      if (result instanceof Promise) {\n        result.then(then, done)\n      } else if (result instanceof Error) {\n        done(result)\n      } else {\n        then(result)\n      }\n    }\n  }\n\n  /**\n   * Call `callback`, only once.\n   * @type {Callback}\n   */\n  function done(error, ...output) {\n    if (!called) {\n      called = true\n      callback(error, ...output)\n    }\n  }\n\n  /**\n   * Call `done` with one value.\n   *\n   * @param {any} [value]\n   */\n  function then(value) {\n    done(null, value)\n  }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport {bail} from 'bail'\nimport isBuffer from 'is-buffer'\nimport extend from 'extend'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\n\n// Expose a frozen processor.\nexport const unified = base().freeze()\n\nconst own = {}.hasOwnProperty\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n  const transformers = trough()\n  /** @type {Processor['attachers']} */\n  const attachers = []\n  /** @type {Record<string, unknown>} */\n  let namespace = {}\n  /** @type {boolean|undefined} */\n  let frozen\n  let freezeIndex = -1\n\n  // Data management.\n  // @ts-expect-error: overloads are handled.\n  processor.data = data\n  processor.Parser = undefined\n  processor.Compiler = undefined\n\n  // Lock.\n  processor.freeze = freeze\n\n  // Plugins.\n  processor.attachers = attachers\n  // @ts-expect-error: overloads are handled.\n  processor.use = use\n\n  // API.\n  processor.parse = parse\n  processor.stringify = stringify\n  // @ts-expect-error: overloads are handled.\n  processor.run = run\n  processor.runSync = runSync\n  // @ts-expect-error: overloads are handled.\n  processor.process = process\n  processor.processSync = processSync\n\n  // Expose.\n  return processor\n\n  // Create a new processor based on the processor in the current scope.\n  /** @type {Processor} */\n  function processor() {\n    const destination = base()\n    let index = -1\n\n    while (++index < attachers.length) {\n      destination.use(...attachers[index])\n    }\n\n    destination.data(extend(true, {}, namespace))\n\n    return destination\n  }\n\n  /**\n   * @param {string|Record<string, unknown>} [key]\n   * @param {unknown} [value]\n   * @returns {unknown}\n   */\n  function data(key, value) {\n    if (typeof key === 'string') {\n      // Set `key`.\n      if (arguments.length === 2) {\n        assertUnfrozen('data', frozen)\n        namespace[key] = value\n        return processor\n      }\n\n      // Get `key`.\n      return (own.call(namespace, key) && namespace[key]) || null\n    }\n\n    // Set space.\n    if (key) {\n      assertUnfrozen('data', frozen)\n      namespace = key\n      return processor\n    }\n\n    // Get space.\n    return namespace\n  }\n\n  /** @type {Processor['freeze']} */\n  function freeze() {\n    if (frozen) {\n      return processor\n    }\n\n    while (++freezeIndex < attachers.length) {\n      const [attacher, ...options] = attachers[freezeIndex]\n\n      if (options[0] === false) {\n        continue\n      }\n\n      if (options[0] === true) {\n        options[0] = undefined\n      }\n\n      /** @type {Transformer|void} */\n      const transformer = attacher.call(processor, ...options)\n\n      if (typeof transformer === 'function') {\n        transformers.use(transformer)\n      }\n    }\n\n    frozen = true\n    freezeIndex = Number.POSITIVE_INFINITY\n\n    return processor\n  }\n\n  /**\n   * @param {Pluggable|null|undefined} [value]\n   * @param {...unknown} options\n   * @returns {Processor}\n   */\n  function use(value, ...options) {\n    /** @type {Record<string, unknown>|undefined} */\n    let settings\n\n    assertUnfrozen('use', frozen)\n\n    if (value === null || value === undefined) {\n      // Empty.\n    } else if (typeof value === 'function') {\n      addPlugin(value, ...options)\n    } else if (typeof value === 'object') {\n      if (Array.isArray(value)) {\n        addList(value)\n      } else {\n        addPreset(value)\n      }\n    } else {\n      throw new TypeError('Expected usable value, not `' + value + '`')\n    }\n\n    if (settings) {\n      namespace.settings = Object.assign(namespace.settings || {}, settings)\n    }\n\n    return processor\n\n    /**\n     * @param {import('..').Pluggable<unknown[]>} value\n     * @returns {void}\n     */\n    function add(value) {\n      if (typeof value === 'function') {\n        addPlugin(value)\n      } else if (typeof value === 'object') {\n        if (Array.isArray(value)) {\n          const [plugin, ...options] = value\n          addPlugin(plugin, ...options)\n        } else {\n          addPreset(value)\n        }\n      } else {\n        throw new TypeError('Expected usable value, not `' + value + '`')\n      }\n    }\n\n    /**\n     * @param {Preset} result\n     * @returns {void}\n     */\n    function addPreset(result) {\n      addList(result.plugins)\n\n      if (result.settings) {\n        settings = Object.assign(settings || {}, result.settings)\n      }\n    }\n\n    /**\n     * @param {PluggableList|null|undefined} [plugins]\n     * @returns {void}\n     */\n    function addList(plugins) {\n      let index = -1\n\n      if (plugins === null || plugins === undefined) {\n        // Empty.\n      } else if (Array.isArray(plugins)) {\n        while (++index < plugins.length) {\n          const thing = plugins[index]\n          add(thing)\n        }\n      } else {\n        throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n      }\n    }\n\n    /**\n     * @param {Plugin} plugin\n     * @param {...unknown} [value]\n     * @returns {void}\n     */\n    function addPlugin(plugin, value) {\n      let index = -1\n      /** @type {Processor['attachers'][number]|undefined} */\n      let entry\n\n      while (++index < attachers.length) {\n        if (attachers[index][0] === plugin) {\n          entry = attachers[index]\n          break\n        }\n      }\n\n      if (entry) {\n        if (isPlainObj(entry[1]) && isPlainObj(value)) {\n          value = extend(true, entry[1], value)\n        }\n\n        entry[1] = value\n      } else {\n        // @ts-expect-error: fine.\n        attachers.push([...arguments])\n      }\n    }\n  }\n\n  /** @type {Processor['parse']} */\n  function parse(doc) {\n    processor.freeze()\n    const file = vfile(doc)\n    const Parser = processor.Parser\n    assertParser('parse', Parser)\n\n    if (newable(Parser, 'parse')) {\n      // @ts-expect-error: `newable` checks this.\n      return new Parser(String(file), file).parse()\n    }\n\n    // @ts-expect-error: `newable` checks this.\n    return Parser(String(file), file) // eslint-disable-line new-cap\n  }\n\n  /** @type {Processor['stringify']} */\n  function stringify(node, doc) {\n    processor.freeze()\n    const file = vfile(doc)\n    const Compiler = processor.Compiler\n    assertCompiler('stringify', Compiler)\n    assertNode(node)\n\n    if (newable(Compiler, 'compile')) {\n      // @ts-expect-error: `newable` checks this.\n      return new Compiler(node, file).compile()\n    }\n\n    // @ts-expect-error: `newable` checks this.\n    return Compiler(node, file) // eslint-disable-line new-cap\n  }\n\n  /**\n   * @param {Node} node\n   * @param {VFileCompatible|RunCallback} [doc]\n   * @param {RunCallback} [callback]\n   * @returns {Promise<Node>|void}\n   */\n  function run(node, doc, callback) {\n    assertNode(node)\n    processor.freeze()\n\n    if (!callback && typeof doc === 'function') {\n      callback = doc\n      doc = undefined\n    }\n\n    if (!callback) {\n      return new Promise(executor)\n    }\n\n    executor(null, callback)\n\n    /**\n     * @param {null|((node: Node) => void)} resolve\n     * @param {(error: Error) => void} reject\n     * @returns {void}\n     */\n    function executor(resolve, reject) {\n      // @ts-expect-error: `doc` can’t be a callback anymore, we checked.\n      transformers.run(node, vfile(doc), done)\n\n      /**\n       * @param {Error|null} error\n       * @param {Node} tree\n       * @param {VFile} file\n       * @returns {void}\n       */\n      function done(error, tree, file) {\n        tree = tree || node\n        if (error) {\n          reject(error)\n        } else if (resolve) {\n          resolve(tree)\n        } else {\n          // @ts-expect-error: `callback` is defined if `resolve` is not.\n          callback(null, tree, file)\n        }\n      }\n    }\n  }\n\n  /** @type {Processor['runSync']} */\n  function runSync(node, file) {\n    /** @type {Node|undefined} */\n    let result\n    /** @type {boolean|undefined} */\n    let complete\n\n    processor.run(node, file, done)\n\n    assertDone('runSync', 'run', complete)\n\n    // @ts-expect-error: we either bailed on an error or have a tree.\n    return result\n\n    /**\n     * @param {Error|null} [error]\n     * @param {Node} [tree]\n     * @returns {void}\n     */\n    function done(error, tree) {\n      bail(error)\n      result = tree\n      complete = true\n    }\n  }\n\n  /**\n   * @param {VFileCompatible} doc\n   * @param {ProcessCallback} [callback]\n   * @returns {Promise<VFile>|undefined}\n   */\n  function process(doc, callback) {\n    processor.freeze()\n    assertParser('process', processor.Parser)\n    assertCompiler('process', processor.Compiler)\n\n    if (!callback) {\n      return new Promise(executor)\n    }\n\n    executor(null, callback)\n\n    /**\n     * @param {null|((file: VFile) => void)} resolve\n     * @param {(error?: Error|null|undefined) => void} reject\n     * @returns {void}\n     */\n    function executor(resolve, reject) {\n      const file = vfile(doc)\n\n      processor.run(processor.parse(file), file, (error, tree, file) => {\n        if (error || !tree || !file) {\n          done(error)\n        } else {\n          /** @type {unknown} */\n          const result = processor.stringify(tree, file)\n\n          if (result === undefined || result === null) {\n            // Empty.\n          } else if (looksLikeAVFileValue(result)) {\n            file.value = result\n          } else {\n            file.result = result\n          }\n\n          done(error, file)\n        }\n      })\n\n      /**\n       * @param {Error|null|undefined} [error]\n       * @param {VFile|undefined} [file]\n       * @returns {void}\n       */\n      function done(error, file) {\n        if (error || !file) {\n          reject(error)\n        } else if (resolve) {\n          resolve(file)\n        } else {\n          // @ts-expect-error: `callback` is defined if `resolve` is not.\n          callback(null, file)\n        }\n      }\n    }\n  }\n\n  /** @type {Processor['processSync']} */\n  function processSync(doc) {\n    /** @type {boolean|undefined} */\n    let complete\n\n    processor.freeze()\n    assertParser('processSync', processor.Parser)\n    assertCompiler('processSync', processor.Compiler)\n\n    const file = vfile(doc)\n\n    processor.process(file, done)\n\n    assertDone('processSync', 'process', complete)\n\n    return file\n\n    /**\n     * @param {Error|null|undefined} [error]\n     * @returns {void}\n     */\n    function done(error) {\n      complete = true\n      bail(error)\n    }\n  }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n  return (\n    typeof value === 'function' &&\n    // Prototypes do exist.\n    // type-coverage:ignore-next-line\n    value.prototype &&\n    // A function with keys in its prototype is probably a constructor.\n    // Classes’ prototype methods are not enumerable, so we check if some value\n    // exists in the prototype.\n    // type-coverage:ignore-next-line\n    (keys(value.prototype) || name in value.prototype)\n  )\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record<string, unknown>} value\n * @returns {boolean}\n */\nfunction keys(value) {\n  /** @type {string} */\n  let key\n\n  for (key in value) {\n    if (own.call(value, key)) {\n      return true\n    }\n  }\n\n  return false\n}\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n  if (typeof value !== 'function') {\n    throw new TypeError('Cannot `' + name + '` without `Parser`')\n  }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n  if (typeof value !== 'function') {\n    throw new TypeError('Cannot `' + name + '` without `Compiler`')\n  }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n  if (frozen) {\n    throw new Error(\n      'Cannot call `' +\n        name +\n        '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n    )\n  }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n  // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n  // type-coverage:ignore-next-line\n  if (!isPlainObj(node) || typeof node.type !== 'string') {\n    throw new TypeError('Expected node, got `' + node + '`')\n    // Fine.\n  }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n  if (!complete) {\n    throw new Error(\n      '`' + name + '` finished async. Use `' + asyncName + '` instead'\n    )\n  }\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n  return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n  return Boolean(\n    value &&\n      typeof value === 'object' &&\n      'message' in value &&\n      'messages' in value\n  )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n  return typeof value === 'string' || isBuffer(value)\n}\n","/**\n * @typedef Options\n * @property {boolean} [includeImageAlt=true]\n */\n\n/**\n * Get the text content of a node.\n * Prefer the node’s plain-text fields, otherwise serialize its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} node\n * @param {Options} [options]\n * @returns {string}\n */\nexport function toString(node, options) {\n  var {includeImageAlt = true} = options || {}\n  return one(node, includeImageAlt)\n}\n\n/**\n * @param {unknown} node\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction one(node, includeImageAlt) {\n  return (\n    (node &&\n      typeof node === 'object' &&\n      // @ts-ignore looks like a literal.\n      (node.value ||\n        // @ts-ignore looks like an image.\n        (includeImageAlt ? node.alt : '') ||\n        // @ts-ignore looks like a parent.\n        ('children' in node && all(node.children, includeImageAlt)) ||\n        (Array.isArray(node) && all(node, includeImageAlt)))) ||\n    ''\n  )\n}\n\n/**\n * @param {Array.<unknown>} values\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction all(values, includeImageAlt) {\n  /** @type {Array.<string>} */\n  var result = []\n  var index = -1\n\n  while (++index < values.length) {\n    result[index] = one(values[index], includeImageAlt)\n  }\n\n  return result.join('')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {number} start\n * @param {number} remove\n * @param {T[]} items\n * @returns {void}\n */\nexport function splice(list, start, remove, items) {\n  const end = list.length\n  let chunkStart = 0\n  /** @type {unknown[]} */\n\n  let parameters // Make start between zero and `end` (included).\n\n  if (start < 0) {\n    start = -start > end ? 0 : end + start\n  } else {\n    start = start > end ? end : start\n  }\n\n  remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n  if (items.length < 10000) {\n    parameters = Array.from(items)\n    parameters.unshift(start, remove) // @ts-expect-error Hush, it’s fine.\n    ;[].splice.apply(list, parameters)\n  } else {\n    // Delete `remove` items starting from `start`\n    if (remove) [].splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n    while (chunkStart < items.length) {\n      parameters = items.slice(chunkStart, chunkStart + 10000)\n      parameters.unshift(start, 0) // @ts-expect-error Hush, it’s fine.\n      ;[].splice.apply(list, parameters)\n      chunkStart += 10000\n      start += 10000\n    }\n  }\n}\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {T[]} items\n * @returns {T[]}\n */\n\nexport function push(list, items) {\n  if (list.length > 0) {\n    splice(list, list.length, 0, items)\n    return list\n  }\n\n  return items\n}\n","/**\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine several syntax extensions into one.\n *\n * @param {Extension[]} extensions List of syntax extensions.\n * @returns {NormalizedExtension} A single combined extension.\n */\nexport function combineExtensions(extensions) {\n  /** @type {NormalizedExtension} */\n  const all = {}\n  let index = -1\n\n  while (++index < extensions.length) {\n    syntaxExtension(all, extensions[index])\n  }\n\n  return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all Extension to merge into.\n * @param {Extension} extension Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n  /** @type {string} */\n  let hook\n\n  for (hook in extension) {\n    const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n    const left = maybe || (all[hook] = {})\n    const right = extension[hook]\n    /** @type {string} */\n    let code\n\n    for (code in right) {\n      if (!hasOwnProperty.call(left, code)) left[code] = []\n      const value = right[code]\n      constructs(\n        // @ts-expect-error Looks like a list.\n        left[code],\n        Array.isArray(value) ? value : value ? [value] : []\n      )\n    }\n  }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {unknown[]} existing\n * @param {unknown[]} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n  let index = -1\n  /** @type {unknown[]} */\n  const before = []\n\n  while (++index < list.length) {\n    // @ts-expect-error Looks like an object.\n    ;(list[index].add === 'after' ? existing : before).push(list[index])\n  }\n\n  splice(existing, 0, 0, before)\n}\n\n/**\n * Combine several HTML extensions into one.\n *\n * @param {HtmlExtension[]} htmlExtensions List of HTML extensions.\n * @returns {HtmlExtension} A single combined extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n  /** @type {HtmlExtension} */\n  const handlers = {}\n  let index = -1\n\n  while (++index < htmlExtensions.length) {\n    htmlExtension(handlers, htmlExtensions[index])\n  }\n\n  return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all Extension to merge into.\n * @param {HtmlExtension} extension Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n  /** @type {string} */\n  let hook\n\n  for (hook in extension) {\n    const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n    const left = maybe || (all[hook] = {})\n    const right = extension[hook]\n    /** @type {string} */\n    let type\n\n    if (right) {\n      for (type in right) {\n        left[type] = right[type]\n      }\n    }\n  }\n}\n","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nexport const unicodePunctuationRegex =\n  /[!-/:-@[-`{-~\\u00A1\\u00A7\\u00AB\\u00B6\\u00B7\\u00BB\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n */\n\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n */\n\nexport const asciiDigit = regexCheck(/\\d/)\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n */\n\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n */\n\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n */\n\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n */\n\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function asciiControl(code) {\n  return (\n    // Special whitespace codes (which have negative values), C0 and Control\n    // character DEL\n    code !== null && (code < 32 || code === 127)\n  )\n}\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEndingOrSpace(code) {\n  return code !== null && (code < 0 || code === 32)\n}\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEnding(code) {\n  return code !== null && code < -2\n}\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownSpace(code) {\n  return code === -2 || code === -1 || code === 32\n}\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n\nexport const unicodeWhitespace = regexCheck(/\\s/)\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => code is number}\n */\n\nfunction regexCheck(regex) {\n  return check\n  /**\n   * Check whether a code matches the bound regex.\n   *\n   * @param {Code} code Character code\n   * @returns {code is number} Whether the character code matches the bound regex\n   */\n\n  function check(code) {\n    return code !== null && regex.test(String.fromCharCode(code))\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownSpace} from 'micromark-util-character'\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {string} type\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n\nexport function factorySpace(effects, ok, type, max) {\n  const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n  let size = 0\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (markdownSpace(code)) {\n      effects.enter(type)\n      return prefix(code)\n    }\n\n    return ok(code)\n  }\n  /** @type {State} */\n\n  function prefix(code) {\n    if (markdownSpace(code) && size++ < limit) {\n      effects.consume(code)\n      return prefix\n    }\n\n    effects.exit(type)\n    return ok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const content = {\n  tokenize: initializeContent\n}\n/** @type {Initializer} */\n\nfunction initializeContent(effects) {\n  const contentStart = effects.attempt(\n    this.parser.constructs.contentInitial,\n    afterContentStartConstruct,\n    paragraphInitial\n  )\n  /** @type {Token} */\n\n  let previous\n  return contentStart\n  /** @type {State} */\n\n  function afterContentStartConstruct(code) {\n    if (code === null) {\n      effects.consume(code)\n      return\n    }\n\n    effects.enter('lineEnding')\n    effects.consume(code)\n    effects.exit('lineEnding')\n    return factorySpace(effects, contentStart, 'linePrefix')\n  }\n  /** @type {State} */\n\n  function paragraphInitial(code) {\n    effects.enter('paragraph')\n    return lineStart(code)\n  }\n  /** @type {State} */\n\n  function lineStart(code) {\n    const token = effects.enter('chunkText', {\n      contentType: 'text',\n      previous\n    })\n\n    if (previous) {\n      previous.next = token\n    }\n\n    previous = token\n    return data(code)\n  }\n  /** @type {State} */\n\n  function data(code) {\n    if (code === null) {\n      effects.exit('chunkText')\n      effects.exit('paragraph')\n      effects.consume(code)\n      return\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.consume(code)\n      effects.exit('chunkText')\n      return lineStart\n    } // Data.\n\n    effects.consume(code)\n    return data\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Point} Point\n */\n\n/**\n * @typedef {Record<string, unknown>} StackState\n * @typedef {[Construct, StackState]} StackItem\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\n\nexport const document = {\n  tokenize: initializeDocument\n}\n/** @type {Construct} */\n\nconst containerConstruct = {\n  tokenize: tokenizeContainer\n}\n/** @type {Initializer} */\n\nfunction initializeDocument(effects) {\n  const self = this\n  /** @type {Array<StackItem>} */\n\n  const stack = []\n  let continued = 0\n  /** @type {TokenizeContext|undefined} */\n\n  let childFlow\n  /** @type {Token|undefined} */\n\n  let childToken\n  /** @type {number} */\n\n  let lineStartOffset\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    // First we iterate through the open blocks, starting with the root\n    // document, and descending through last children down to the last open\n    // block.\n    // Each block imposes a condition that the line must satisfy if the block is\n    // to remain open.\n    // For example, a block quote requires a `>` character.\n    // A paragraph requires a non-blank line.\n    // In this phase we may match all or just some of the open blocks.\n    // But we cannot close unmatched blocks yet, because we may have a lazy\n    // continuation line.\n    if (continued < stack.length) {\n      const item = stack[continued]\n      self.containerState = item[1]\n      return effects.attempt(\n        item[0].continuation,\n        documentContinue,\n        checkNewContainers\n      )(code)\n    } // Done.\n\n    return checkNewContainers(code)\n  }\n  /** @type {State} */\n\n  function documentContinue(code) {\n    continued++ // Note: this field is called `_closeFlow` but it also closes containers.\n    // Perhaps a good idea to rename it but it’s already used in the wild by\n    // extensions.\n\n    if (self.containerState._closeFlow) {\n      self.containerState._closeFlow = undefined\n\n      if (childFlow) {\n        closeFlow()\n      } // Note: this algorithm for moving events around is similar to the\n      // algorithm when dealing with lazy lines in `writeToChild`.\n\n      const indexBeforeExits = self.events.length\n      let indexBeforeFlow = indexBeforeExits\n      /** @type {Point|undefined} */\n\n      let point // Find the flow chunk.\n\n      while (indexBeforeFlow--) {\n        if (\n          self.events[indexBeforeFlow][0] === 'exit' &&\n          self.events[indexBeforeFlow][1].type === 'chunkFlow'\n        ) {\n          point = self.events[indexBeforeFlow][1].end\n          break\n        }\n      }\n\n      exitContainers(continued) // Fix positions.\n\n      let index = indexBeforeExits\n\n      while (index < self.events.length) {\n        self.events[index][1].end = Object.assign({}, point)\n        index++\n      } // Inject the exits earlier (they’re still also at the end).\n\n      splice(\n        self.events,\n        indexBeforeFlow + 1,\n        0,\n        self.events.slice(indexBeforeExits)\n      ) // Discard the duplicate exits.\n\n      self.events.length = index\n      return checkNewContainers(code)\n    }\n\n    return start(code)\n  }\n  /** @type {State} */\n\n  function checkNewContainers(code) {\n    // Next, after consuming the continuation markers for existing blocks, we\n    // look for new block starts (e.g. `>` for a block quote).\n    // If we encounter a new block start, we close any blocks unmatched in\n    // step 1 before creating the new block as a child of the last matched\n    // block.\n    if (continued === stack.length) {\n      // No need to `check` whether there’s a container, of `exitContainers`\n      // would be moot.\n      // We can instead immediately `attempt` to parse one.\n      if (!childFlow) {\n        return documentContinued(code)\n      } // If we have concrete content, such as block HTML or fenced code,\n      // we can’t have containers “pierce” into them, so we can immediately\n      // start.\n\n      if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n        return flowStart(code)\n      } // If we do have flow, it could still be a blank line,\n      // but we’d be interrupting it w/ a new container if there’s a current\n      // construct.\n\n      self.interrupt = Boolean(\n        childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n      )\n    } // Check if there is a new container.\n\n    self.containerState = {}\n    return effects.check(\n      containerConstruct,\n      thereIsANewContainer,\n      thereIsNoNewContainer\n    )(code)\n  }\n  /** @type {State} */\n\n  function thereIsANewContainer(code) {\n    if (childFlow) closeFlow()\n    exitContainers(continued)\n    return documentContinued(code)\n  }\n  /** @type {State} */\n\n  function thereIsNoNewContainer(code) {\n    self.parser.lazy[self.now().line] = continued !== stack.length\n    lineStartOffset = self.now().offset\n    return flowStart(code)\n  }\n  /** @type {State} */\n\n  function documentContinued(code) {\n    // Try new containers.\n    self.containerState = {}\n    return effects.attempt(\n      containerConstruct,\n      containerContinue,\n      flowStart\n    )(code)\n  }\n  /** @type {State} */\n\n  function containerContinue(code) {\n    continued++\n    stack.push([self.currentConstruct, self.containerState]) // Try another.\n\n    return documentContinued(code)\n  }\n  /** @type {State} */\n\n  function flowStart(code) {\n    if (code === null) {\n      if (childFlow) closeFlow()\n      exitContainers(0)\n      effects.consume(code)\n      return\n    }\n\n    childFlow = childFlow || self.parser.flow(self.now())\n    effects.enter('chunkFlow', {\n      contentType: 'flow',\n      previous: childToken,\n      _tokenizer: childFlow\n    })\n    return flowContinue(code)\n  }\n  /** @type {State} */\n\n  function flowContinue(code) {\n    if (code === null) {\n      writeToChild(effects.exit('chunkFlow'), true)\n      exitContainers(0)\n      effects.consume(code)\n      return\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.consume(code)\n      writeToChild(effects.exit('chunkFlow')) // Get ready for the next line.\n\n      continued = 0\n      self.interrupt = undefined\n      return start\n    }\n\n    effects.consume(code)\n    return flowContinue\n  }\n  /**\n   * @param {Token} token\n   * @param {boolean} [eof]\n   * @returns {void}\n   */\n\n  function writeToChild(token, eof) {\n    const stream = self.sliceStream(token)\n    if (eof) stream.push(null)\n    token.previous = childToken\n    if (childToken) childToken.next = token\n    childToken = token\n    childFlow.defineSkip(token.start)\n    childFlow.write(stream) // Alright, so we just added a lazy line:\n    //\n    // ```markdown\n    // > a\n    // b.\n    //\n    // Or:\n    //\n    // > ~~~c\n    // d\n    //\n    // Or:\n    //\n    // > | e |\n    // f\n    // ```\n    //\n    // The construct in the second example (fenced code) does not accept lazy\n    // lines, so it marked itself as done at the end of its first line, and\n    // then the content construct parses `d`.\n    // Most constructs in markdown match on the first line: if the first line\n    // forms a construct, a non-lazy line can’t “unmake” it.\n    //\n    // The construct in the third example is potentially a GFM table, and\n    // those are *weird*.\n    // It *could* be a table, from the first line, if the following line\n    // matches a condition.\n    // In this case, that second line is lazy, which “unmakes” the first line\n    // and turns the whole into one content block.\n    //\n    // We’ve now parsed the non-lazy and the lazy line, and can figure out\n    // whether the lazy line started a new flow block.\n    // If it did, we exit the current containers between the two flow blocks.\n\n    if (self.parser.lazy[token.start.line]) {\n      let index = childFlow.events.length\n\n      while (index--) {\n        if (\n          // The token starts before the line ending…\n          childFlow.events[index][1].start.offset < lineStartOffset && // …and either is not ended yet…\n          (!childFlow.events[index][1].end || // …or ends after it.\n            childFlow.events[index][1].end.offset > lineStartOffset)\n        ) {\n          // Exit: there’s still something open, which means it’s a lazy line\n          // part of something.\n          return\n        }\n      } // Note: this algorithm for moving events around is similar to the\n      // algorithm when closing flow in `documentContinue`.\n\n      const indexBeforeExits = self.events.length\n      let indexBeforeFlow = indexBeforeExits\n      /** @type {boolean|undefined} */\n\n      let seen\n      /** @type {Point|undefined} */\n\n      let point // Find the previous chunk (the one before the lazy line).\n\n      while (indexBeforeFlow--) {\n        if (\n          self.events[indexBeforeFlow][0] === 'exit' &&\n          self.events[indexBeforeFlow][1].type === 'chunkFlow'\n        ) {\n          if (seen) {\n            point = self.events[indexBeforeFlow][1].end\n            break\n          }\n\n          seen = true\n        }\n      }\n\n      exitContainers(continued) // Fix positions.\n\n      index = indexBeforeExits\n\n      while (index < self.events.length) {\n        self.events[index][1].end = Object.assign({}, point)\n        index++\n      } // Inject the exits earlier (they’re still also at the end).\n\n      splice(\n        self.events,\n        indexBeforeFlow + 1,\n        0,\n        self.events.slice(indexBeforeExits)\n      ) // Discard the duplicate exits.\n\n      self.events.length = index\n    }\n  }\n  /**\n   * @param {number} size\n   * @returns {void}\n   */\n\n  function exitContainers(size) {\n    let index = stack.length // Exit open containers.\n\n    while (index-- > size) {\n      const entry = stack[index]\n      self.containerState = entry[1]\n      entry[0].exit.call(self, effects)\n    }\n\n    stack.length = size\n  }\n\n  function closeFlow() {\n    childFlow.write([null])\n    childToken = undefined\n    childFlow = undefined\n    self.containerState._closeFlow = undefined\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContainer(effects, ok, nok) {\n  return factorySpace(\n    effects,\n    effects.attempt(this.parser.constructs.document, ok, nok),\n    'linePrefix',\n    this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n  )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blankLine = {\n  tokenize: tokenizeBlankLine,\n  partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlankLine(effects, ok, nok) {\n  return factorySpace(effects, afterWhitespace, 'linePrefix')\n  /** @type {State} */\n\n  function afterWhitespace(code) {\n    return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {splice} from 'micromark-util-chunked'\n\n/**\n * Tokenize subcontent.\n *\n * @param {Event[]} events\n * @returns {boolean}\n */\nexport function subtokenize(events) {\n  /** @type {Record<string, number>} */\n  const jumps = {}\n  let index = -1\n  /** @type {Event} */\n\n  let event\n  /** @type {number|undefined} */\n\n  let lineIndex\n  /** @type {number} */\n\n  let otherIndex\n  /** @type {Event} */\n\n  let otherEvent\n  /** @type {Event[]} */\n\n  let parameters\n  /** @type {Event[]} */\n\n  let subevents\n  /** @type {boolean|undefined} */\n\n  let more\n\n  while (++index < events.length) {\n    while (index in jumps) {\n      index = jumps[index]\n    }\n\n    event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n    // is in the first content of a list item.\n\n    if (\n      index &&\n      event[1].type === 'chunkFlow' &&\n      events[index - 1][1].type === 'listItemPrefix'\n    ) {\n      subevents = event[1]._tokenizer.events\n      otherIndex = 0\n\n      if (\n        otherIndex < subevents.length &&\n        subevents[otherIndex][1].type === 'lineEndingBlank'\n      ) {\n        otherIndex += 2\n      }\n\n      if (\n        otherIndex < subevents.length &&\n        subevents[otherIndex][1].type === 'content'\n      ) {\n        while (++otherIndex < subevents.length) {\n          if (subevents[otherIndex][1].type === 'content') {\n            break\n          }\n\n          if (subevents[otherIndex][1].type === 'chunkText') {\n            subevents[otherIndex][1]._isInFirstContentOfListItem = true\n            otherIndex++\n          }\n        }\n      }\n    } // Enter.\n\n    if (event[0] === 'enter') {\n      if (event[1].contentType) {\n        Object.assign(jumps, subcontent(events, index))\n        index = jumps[index]\n        more = true\n      }\n    } // Exit.\n    else if (event[1]._container) {\n      otherIndex = index\n      lineIndex = undefined\n\n      while (otherIndex--) {\n        otherEvent = events[otherIndex]\n\n        if (\n          otherEvent[1].type === 'lineEnding' ||\n          otherEvent[1].type === 'lineEndingBlank'\n        ) {\n          if (otherEvent[0] === 'enter') {\n            if (lineIndex) {\n              events[lineIndex][1].type = 'lineEndingBlank'\n            }\n\n            otherEvent[1].type = 'lineEnding'\n            lineIndex = otherIndex\n          }\n        } else {\n          break\n        }\n      }\n\n      if (lineIndex) {\n        // Fix position.\n        event[1].end = Object.assign({}, events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n        parameters = events.slice(lineIndex, index)\n        parameters.unshift(event)\n        splice(events, lineIndex, index - lineIndex + 1, parameters)\n      }\n    }\n  }\n\n  return !more\n}\n/**\n * Tokenize embedded tokens.\n *\n * @param {Event[]} events\n * @param {number} eventIndex\n * @returns {Record<string, number>}\n */\n\nfunction subcontent(events, eventIndex) {\n  const token = events[eventIndex][1]\n  const context = events[eventIndex][2]\n  let startPosition = eventIndex - 1\n  /** @type {number[]} */\n\n  const startPositions = []\n  const tokenizer =\n    token._tokenizer || context.parser[token.contentType](token.start)\n  const childEvents = tokenizer.events\n  /** @type {[number, number][]} */\n\n  const jumps = []\n  /** @type {Record<string, number>} */\n\n  const gaps = {}\n  /** @type {Chunk[]} */\n\n  let stream\n  /** @type {Token|undefined} */\n\n  let previous\n  let index = -1\n  /** @type {Token|undefined} */\n\n  let current = token\n  let adjust = 0\n  let start = 0\n  const breaks = [start] // Loop forward through the linked tokens to pass them in order to the\n  // subtokenizer.\n\n  while (current) {\n    // Find the position of the event for this token.\n    while (events[++startPosition][1] !== current) {\n      // Empty.\n    }\n\n    startPositions.push(startPosition)\n\n    if (!current._tokenizer) {\n      stream = context.sliceStream(current)\n\n      if (!current.next) {\n        stream.push(null)\n      }\n\n      if (previous) {\n        tokenizer.defineSkip(current.start)\n      }\n\n      if (current._isInFirstContentOfListItem) {\n        tokenizer._gfmTasklistFirstContentOfListItem = true\n      }\n\n      tokenizer.write(stream)\n\n      if (current._isInFirstContentOfListItem) {\n        tokenizer._gfmTasklistFirstContentOfListItem = undefined\n      }\n    } // Unravel the next token.\n\n    previous = current\n    current = current.next\n  } // Now, loop back through all events (and linked tokens), to figure out which\n  // parts belong where.\n\n  current = token\n\n  while (++index < childEvents.length) {\n    if (\n      // Find a void token that includes a break.\n      childEvents[index][0] === 'exit' &&\n      childEvents[index - 1][0] === 'enter' &&\n      childEvents[index][1].type === childEvents[index - 1][1].type &&\n      childEvents[index][1].start.line !== childEvents[index][1].end.line\n    ) {\n      start = index + 1\n      breaks.push(start) // Help GC.\n\n      current._tokenizer = undefined\n      current.previous = undefined\n      current = current.next\n    }\n  } // Help GC.\n\n  tokenizer.events = [] // If there’s one more token (which is the cases for lines that end in an\n  // EOF), that’s perfect: the last point we found starts it.\n  // If there isn’t then make sure any remaining content is added to it.\n\n  if (current) {\n    // Help GC.\n    current._tokenizer = undefined\n    current.previous = undefined\n  } else {\n    breaks.pop()\n  } // Now splice the events from the subtokenizer into the current events,\n  // moving back to front so that splice indices aren’t affected.\n\n  index = breaks.length\n\n  while (index--) {\n    const slice = childEvents.slice(breaks[index], breaks[index + 1])\n    const start = startPositions.pop()\n    jumps.unshift([start, start + slice.length - 1])\n    splice(events, start, 2, slice)\n  }\n\n  index = -1\n\n  while (++index < jumps.length) {\n    gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n    adjust += jumps[index][1] - jumps[index][0] - 1\n  }\n\n  return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n  tokenize: tokenizeContent,\n  resolve: resolveContent\n}\n/** @type {Construct} */\n\nconst continuationConstruct = {\n  tokenize: tokenizeContinuation,\n  partial: true\n}\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\n\nfunction resolveContent(events) {\n  subtokenize(events)\n  return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContent(effects, ok) {\n  /** @type {Token} */\n  let previous\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('content')\n    previous = effects.enter('chunkContent', {\n      contentType: 'content'\n    })\n    return data(code)\n  }\n  /** @type {State} */\n\n  function data(code) {\n    if (code === null) {\n      return contentEnd(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      return effects.check(\n        continuationConstruct,\n        contentContinue,\n        contentEnd\n      )(code)\n    } // Data.\n\n    effects.consume(code)\n    return data\n  }\n  /** @type {State} */\n\n  function contentEnd(code) {\n    effects.exit('chunkContent')\n    effects.exit('content')\n    return ok(code)\n  }\n  /** @type {State} */\n\n  function contentContinue(code) {\n    effects.consume(code)\n    effects.exit('chunkContent')\n    previous.next = effects.enter('chunkContent', {\n      contentType: 'content',\n      previous\n    })\n    previous = previous.next\n    return data\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContinuation(effects, ok, nok) {\n  const self = this\n  return startLookahead\n  /** @type {State} */\n\n  function startLookahead(code) {\n    effects.exit('chunkContent')\n    effects.enter('lineEnding')\n    effects.consume(code)\n    effects.exit('lineEnding')\n    return factorySpace(effects, prefixed, 'linePrefix')\n  }\n  /** @type {State} */\n\n  function prefixed(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return nok(code)\n    }\n\n    const tail = self.events[self.events.length - 1]\n\n    if (\n      !self.parser.constructs.disable.null.includes('codeIndented') &&\n      tail &&\n      tail[1].type === 'linePrefix' &&\n      tail[2].sliceSerialize(tail[1], true).length >= 4\n    ) {\n      return ok(code)\n    }\n\n    return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const flow = {\n  tokenize: initializeFlow\n}\n/** @type {Initializer} */\n\nfunction initializeFlow(effects) {\n  const self = this\n  const initial = effects.attempt(\n    // Try to parse a blank line.\n    blankLine,\n    atBlankEnding, // Try to parse initial flow (essentially, only code).\n    effects.attempt(\n      this.parser.constructs.flowInitial,\n      afterConstruct,\n      factorySpace(\n        effects,\n        effects.attempt(\n          this.parser.constructs.flow,\n          afterConstruct,\n          effects.attempt(content, afterConstruct)\n        ),\n        'linePrefix'\n      )\n    )\n  )\n  return initial\n  /** @type {State} */\n\n  function atBlankEnding(code) {\n    if (code === null) {\n      effects.consume(code)\n      return\n    }\n\n    effects.enter('lineEndingBlank')\n    effects.consume(code)\n    effects.exit('lineEndingBlank')\n    self.currentConstruct = undefined\n    return initial\n  }\n  /** @type {State} */\n\n  function afterConstruct(code) {\n    if (code === null) {\n      effects.consume(code)\n      return\n    }\n\n    effects.enter('lineEnding')\n    effects.consume(code)\n    effects.exit('lineEnding')\n    self.currentConstruct = undefined\n    return initial\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nexport const resolver = {\n  resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n/**\n * @param {'string'|'text'} field\n * @returns {InitialConstruct}\n */\n\nfunction initializeFactory(field) {\n  return {\n    tokenize: initializeText,\n    resolveAll: createResolver(\n      field === 'text' ? resolveAllLineSuffixes : undefined\n    )\n  }\n  /** @type {Initializer} */\n\n  function initializeText(effects) {\n    const self = this\n    const constructs = this.parser.constructs[field]\n    const text = effects.attempt(constructs, start, notText)\n    return start\n    /** @type {State} */\n\n    function start(code) {\n      return atBreak(code) ? text(code) : notText(code)\n    }\n    /** @type {State} */\n\n    function notText(code) {\n      if (code === null) {\n        effects.consume(code)\n        return\n      }\n\n      effects.enter('data')\n      effects.consume(code)\n      return data\n    }\n    /** @type {State} */\n\n    function data(code) {\n      if (atBreak(code)) {\n        effects.exit('data')\n        return text(code)\n      } // Data.\n\n      effects.consume(code)\n      return data\n    }\n    /**\n     * @param {Code} code\n     * @returns {boolean}\n     */\n\n    function atBreak(code) {\n      if (code === null) {\n        return true\n      }\n\n      const list = constructs[code]\n      let index = -1\n\n      if (list) {\n        while (++index < list.length) {\n          const item = list[index]\n\n          if (!item.previous || item.previous.call(self, self.previous)) {\n            return true\n          }\n        }\n      }\n\n      return false\n    }\n  }\n}\n/**\n * @param {Resolver} [extraResolver]\n * @returns {Resolver}\n */\n\nfunction createResolver(extraResolver) {\n  return resolveAllText\n  /** @type {Resolver} */\n\n  function resolveAllText(events, context) {\n    let index = -1\n    /** @type {number|undefined} */\n\n    let enter // A rather boring computation (to merge adjacent `data` events) which\n    // improves mm performance by 29%.\n\n    while (++index <= events.length) {\n      if (enter === undefined) {\n        if (events[index] && events[index][1].type === 'data') {\n          enter = index\n          index++\n        }\n      } else if (!events[index] || events[index][1].type !== 'data') {\n        // Don’t do anything if there is one data token.\n        if (index !== enter + 2) {\n          events[enter][1].end = events[index - 1][1].end\n          events.splice(enter + 2, index - enter - 2)\n          index = enter + 2\n        }\n\n        enter = undefined\n      }\n    }\n\n    return extraResolver ? extraResolver(events, context) : events\n  }\n}\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\n\nfunction resolveAllLineSuffixes(events, context) {\n  let eventIndex = 0 // Skip first.\n\n  while (++eventIndex <= events.length) {\n    if (\n      (eventIndex === events.length ||\n        events[eventIndex][1].type === 'lineEnding') &&\n      events[eventIndex - 1][1].type === 'data'\n    ) {\n      const data = events[eventIndex - 1][1]\n      const chunks = context.sliceStream(data)\n      let index = chunks.length\n      let bufferIndex = -1\n      let size = 0\n      /** @type {boolean|undefined} */\n\n      let tabs\n\n      while (index--) {\n        const chunk = chunks[index]\n\n        if (typeof chunk === 'string') {\n          bufferIndex = chunk.length\n\n          while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n            size++\n            bufferIndex--\n          }\n\n          if (bufferIndex) break\n          bufferIndex = -1\n        } // Number\n        else if (chunk === -2) {\n          tabs = true\n          size++\n        } else if (chunk === -1) {\n          // Empty\n        } else {\n          // Replacement character, exit.\n          index++\n          break\n        }\n      }\n\n      if (size) {\n        const token = {\n          type:\n            eventIndex === events.length || tabs || size < 2\n              ? 'lineSuffix'\n              : 'hardBreakTrailing',\n          start: {\n            line: data.end.line,\n            column: data.end.column - size,\n            offset: data.end.offset - size,\n            _index: data.start._index + index,\n            _bufferIndex: index\n              ? bufferIndex\n              : data.start._bufferIndex + bufferIndex\n          },\n          end: Object.assign({}, data.end)\n        }\n        data.end = Object.assign({}, token.start)\n\n        if (data.start.offset === data.end.offset) {\n          Object.assign(data, token)\n        } else {\n          events.splice(\n            eventIndex,\n            0,\n            ['enter', token, context],\n            ['exit', token, context]\n          )\n          eventIndex += 2\n        }\n      }\n\n      eventIndex++\n    }\n  }\n\n  return events\n}\n","/**\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {{resolveAll?: Resolver}[]} constructs\n * @param {Event[]} events\n * @param {TokenizeContext} context\n * @returns {Event[]}\n */\nexport function resolveAll(constructs, events, context) {\n  /** @type {Resolver[]} */\n  const called = []\n  let index = -1\n\n  while (++index < constructs.length) {\n    const resolve = constructs[index].resolveAll\n\n    if (resolve && !called.includes(resolve)) {\n      events = resolve(events, context)\n      called.push(resolve)\n    }\n  }\n\n  return events\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n */\n\n/**\n * @typedef Info\n * @property {() => void} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n *   Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit<Point, '_index'|'_bufferIndex'>} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n  /** @type {Point} */\n  let point = Object.assign(\n    from\n      ? Object.assign({}, from)\n      : {\n          line: 1,\n          column: 1,\n          offset: 0\n        },\n    {\n      _index: 0,\n      _bufferIndex: -1\n    }\n  )\n  /** @type {Record<string, number>} */\n\n  const columnStart = {}\n  /** @type {Array<Construct>} */\n\n  const resolveAllConstructs = []\n  /** @type {Array<Chunk>} */\n\n  let chunks = []\n  /** @type {Array<Token>} */\n\n  let stack = []\n  /** @type {boolean|undefined} */\n\n  let consumed = true\n  /**\n   * Tools used for tokenizing.\n   *\n   * @type {Effects}\n   */\n\n  const effects = {\n    consume,\n    enter,\n    exit,\n    attempt: constructFactory(onsuccessfulconstruct),\n    check: constructFactory(onsuccessfulcheck),\n    interrupt: constructFactory(onsuccessfulcheck, {\n      interrupt: true\n    })\n  }\n  /**\n   * State and tools for resolving and serializing.\n   *\n   * @type {TokenizeContext}\n   */\n\n  const context = {\n    previous: null,\n    code: null,\n    containerState: {},\n    events: [],\n    parser,\n    sliceStream,\n    sliceSerialize,\n    now,\n    defineSkip,\n    write\n  }\n  /**\n   * The state function.\n   *\n   * @type {State|void}\n   */\n\n  let state = initialize.tokenize.call(context, effects)\n  /**\n   * Track which character we expect to be consumed, to catch bugs.\n   *\n   * @type {Code}\n   */\n\n  let expectedCode\n\n  if (initialize.resolveAll) {\n    resolveAllConstructs.push(initialize)\n  }\n\n  return context\n  /** @type {TokenizeContext['write']} */\n\n  function write(slice) {\n    chunks = push(chunks, slice)\n    main() // Exit if we’re not done, resolve might change stuff.\n\n    if (chunks[chunks.length - 1] !== null) {\n      return []\n    }\n\n    addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n    context.events = resolveAll(resolveAllConstructs, context.events, context)\n    return context.events\n  } //\n  // Tools.\n  //\n\n  /** @type {TokenizeContext['sliceSerialize']} */\n\n  function sliceSerialize(token, expandTabs) {\n    return serializeChunks(sliceStream(token), expandTabs)\n  }\n  /** @type {TokenizeContext['sliceStream']} */\n\n  function sliceStream(token) {\n    return sliceChunks(chunks, token)\n  }\n  /** @type {TokenizeContext['now']} */\n\n  function now() {\n    return Object.assign({}, point)\n  }\n  /** @type {TokenizeContext['defineSkip']} */\n\n  function defineSkip(value) {\n    columnStart[value.line] = value.column\n    accountForPotentialSkip()\n  } //\n  // State management.\n  //\n\n  /**\n   * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n   * `consume`).\n   * Here is where we walk through the chunks, which either include strings of\n   * several characters, or numerical character codes.\n   * The reason to do this in a loop instead of a call is so the stack can\n   * drain.\n   *\n   * @returns {void}\n   */\n\n  function main() {\n    /** @type {number} */\n    let chunkIndex\n\n    while (point._index < chunks.length) {\n      const chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n      if (typeof chunk === 'string') {\n        chunkIndex = point._index\n\n        if (point._bufferIndex < 0) {\n          point._bufferIndex = 0\n        }\n\n        while (\n          point._index === chunkIndex &&\n          point._bufferIndex < chunk.length\n        ) {\n          go(chunk.charCodeAt(point._bufferIndex))\n        }\n      } else {\n        go(chunk)\n      }\n    }\n  }\n  /**\n   * Deal with one code.\n   *\n   * @param {Code} code\n   * @returns {void}\n   */\n\n  function go(code) {\n    consumed = undefined\n    expectedCode = code\n    state = state(code)\n  }\n  /** @type {Effects['consume']} */\n\n  function consume(code) {\n    if (markdownLineEnding(code)) {\n      point.line++\n      point.column = 1\n      point.offset += code === -3 ? 2 : 1\n      accountForPotentialSkip()\n    } else if (code !== -1) {\n      point.column++\n      point.offset++\n    } // Not in a string chunk.\n\n    if (point._bufferIndex < 0) {\n      point._index++\n    } else {\n      point._bufferIndex++ // At end of string chunk.\n      // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n      // strings.\n\n      if (point._bufferIndex === chunks[point._index].length) {\n        point._bufferIndex = -1\n        point._index++\n      }\n    } // Expose the previous character.\n\n    context.previous = code // Mark as consumed.\n\n    consumed = true\n  }\n  /** @type {Effects['enter']} */\n\n  function enter(type, fields) {\n    /** @type {Token} */\n    // @ts-expect-error Patch instead of assign required fields to help GC.\n    const token = fields || {}\n    token.type = type\n    token.start = now()\n    context.events.push(['enter', token, context])\n    stack.push(token)\n    return token\n  }\n  /** @type {Effects['exit']} */\n\n  function exit(type) {\n    const token = stack.pop()\n    token.end = now()\n    context.events.push(['exit', token, context])\n    return token\n  }\n  /**\n   * Use results.\n   *\n   * @type {ReturnHandle}\n   */\n\n  function onsuccessfulconstruct(construct, info) {\n    addResult(construct, info.from)\n  }\n  /**\n   * Discard results.\n   *\n   * @type {ReturnHandle}\n   */\n\n  function onsuccessfulcheck(_, info) {\n    info.restore()\n  }\n  /**\n   * Factory to attempt/check/interrupt.\n   *\n   * @param {ReturnHandle} onreturn\n   * @param {Record<string, unknown>} [fields]\n   */\n\n  function constructFactory(onreturn, fields) {\n    return hook\n    /**\n     * Handle either an object mapping codes to constructs, a list of\n     * constructs, or a single construct.\n     *\n     * @param {Construct|Array<Construct>|ConstructRecord} constructs\n     * @param {State} returnState\n     * @param {State} [bogusState]\n     * @returns {State}\n     */\n\n    function hook(constructs, returnState, bogusState) {\n      /** @type {Array<Construct>} */\n      let listOfConstructs\n      /** @type {number} */\n\n      let constructIndex\n      /** @type {Construct} */\n\n      let currentConstruct\n      /** @type {Info} */\n\n      let info\n      return Array.isArray(constructs)\n        ? /* c8 ignore next 1 */\n          handleListOfConstructs(constructs)\n        : 'tokenize' in constructs // @ts-expect-error Looks like a construct.\n        ? handleListOfConstructs([constructs])\n        : handleMapOfConstructs(constructs)\n      /**\n       * Handle a list of construct.\n       *\n       * @param {ConstructRecord} map\n       * @returns {State}\n       */\n\n      function handleMapOfConstructs(map) {\n        return start\n        /** @type {State} */\n\n        function start(code) {\n          const def = code !== null && map[code]\n          const all = code !== null && map.null\n          const list = [\n            // To do: add more extension tests.\n\n            /* c8 ignore next 2 */\n            ...(Array.isArray(def) ? def : def ? [def] : []),\n            ...(Array.isArray(all) ? all : all ? [all] : [])\n          ]\n          return handleListOfConstructs(list)(code)\n        }\n      }\n      /**\n       * Handle a list of construct.\n       *\n       * @param {Array<Construct>} list\n       * @returns {State}\n       */\n\n      function handleListOfConstructs(list) {\n        listOfConstructs = list\n        constructIndex = 0\n\n        if (list.length === 0) {\n          return bogusState\n        }\n\n        return handleConstruct(list[constructIndex])\n      }\n      /**\n       * Handle a single construct.\n       *\n       * @param {Construct} construct\n       * @returns {State}\n       */\n\n      function handleConstruct(construct) {\n        return start\n        /** @type {State} */\n\n        function start(code) {\n          // To do: not needed to store if there is no bogus state, probably?\n          // Currently doesn’t work because `inspect` in document does a check\n          // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n          // by not storing.\n          info = store()\n          currentConstruct = construct\n\n          if (!construct.partial) {\n            context.currentConstruct = construct\n          }\n\n          if (\n            construct.name &&\n            context.parser.constructs.disable.null.includes(construct.name)\n          ) {\n            return nok(code)\n          }\n\n          return construct.tokenize.call(\n            // If we do have fields, create an object w/ `context` as its\n            // prototype.\n            // This allows a “live binding”, which is needed for `interrupt`.\n            fields ? Object.assign(Object.create(context), fields) : context,\n            effects,\n            ok,\n            nok\n          )(code)\n        }\n      }\n      /** @type {State} */\n\n      function ok(code) {\n        consumed = true\n        onreturn(currentConstruct, info)\n        return returnState\n      }\n      /** @type {State} */\n\n      function nok(code) {\n        consumed = true\n        info.restore()\n\n        if (++constructIndex < listOfConstructs.length) {\n          return handleConstruct(listOfConstructs[constructIndex])\n        }\n\n        return bogusState\n      }\n    }\n  }\n  /**\n   * @param {Construct} construct\n   * @param {number} from\n   * @returns {void}\n   */\n\n  function addResult(construct, from) {\n    if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n      resolveAllConstructs.push(construct)\n    }\n\n    if (construct.resolve) {\n      splice(\n        context.events,\n        from,\n        context.events.length - from,\n        construct.resolve(context.events.slice(from), context)\n      )\n    }\n\n    if (construct.resolveTo) {\n      context.events = construct.resolveTo(context.events, context)\n    }\n  }\n  /**\n   * Store state.\n   *\n   * @returns {Info}\n   */\n\n  function store() {\n    const startPoint = now()\n    const startPrevious = context.previous\n    const startCurrentConstruct = context.currentConstruct\n    const startEventsIndex = context.events.length\n    const startStack = Array.from(stack)\n    return {\n      restore,\n      from: startEventsIndex\n    }\n    /**\n     * Restore state.\n     *\n     * @returns {void}\n     */\n\n    function restore() {\n      point = startPoint\n      context.previous = startPrevious\n      context.currentConstruct = startCurrentConstruct\n      context.events.length = startEventsIndex\n      stack = startStack\n      accountForPotentialSkip()\n    }\n  }\n  /**\n   * Move the current point a bit forward in the line when it’s on a column\n   * skip.\n   *\n   * @returns {void}\n   */\n\n  function accountForPotentialSkip() {\n    if (point.line in columnStart && point.column < 2) {\n      point.column = columnStart[point.line]\n      point.offset += columnStart[point.line] - 1\n    }\n  }\n}\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array<Chunk>} chunks\n * @param {Pick<Token, 'start'|'end'>} token\n * @returns {Array<Chunk>}\n */\n\nfunction sliceChunks(chunks, token) {\n  const startIndex = token.start._index\n  const startBufferIndex = token.start._bufferIndex\n  const endIndex = token.end._index\n  const endBufferIndex = token.end._bufferIndex\n  /** @type {Array<Chunk>} */\n\n  let view\n\n  if (startIndex === endIndex) {\n    // @ts-expect-error `_bufferIndex` is used on string chunks.\n    view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n  } else {\n    view = chunks.slice(startIndex, endIndex)\n\n    if (startBufferIndex > -1) {\n      // @ts-expect-error `_bufferIndex` is used on string chunks.\n      view[0] = view[0].slice(startBufferIndex)\n    }\n\n    if (endBufferIndex > 0) {\n      // @ts-expect-error `_bufferIndex` is used on string chunks.\n      view.push(chunks[endIndex].slice(0, endBufferIndex))\n    }\n  }\n\n  return view\n}\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array<Chunk>} chunks\n * @param {boolean} [expandTabs=false]\n * @returns {string}\n */\n\nfunction serializeChunks(chunks, expandTabs) {\n  let index = -1\n  /** @type {Array<string>} */\n\n  const result = []\n  /** @type {boolean|undefined} */\n\n  let atTab\n\n  while (++index < chunks.length) {\n    const chunk = chunks[index]\n    /** @type {string} */\n\n    let value\n\n    if (typeof chunk === 'string') {\n      value = chunk\n    } else\n      switch (chunk) {\n        case -5: {\n          value = '\\r'\n          break\n        }\n\n        case -4: {\n          value = '\\n'\n          break\n        }\n\n        case -3: {\n          value = '\\r' + '\\n'\n          break\n        }\n\n        case -2: {\n          value = expandTabs ? ' ' : '\\t'\n          break\n        }\n\n        case -1: {\n          if (!expandTabs && atTab) continue\n          value = ' '\n          break\n        }\n\n        default: {\n          // Currently only replacement character.\n          value = String.fromCharCode(chunk)\n        }\n      }\n\n    atTab = chunk === -2\n    result.push(value)\n  }\n\n  return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const thematicBreak = {\n  name: 'thematicBreak',\n  tokenize: tokenizeThematicBreak\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n  let size = 0\n  /** @type {NonNullable<Code>} */\n\n  let marker\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('thematicBreak')\n    marker = code\n    return atBreak(code)\n  }\n  /** @type {State} */\n\n  function atBreak(code) {\n    if (code === marker) {\n      effects.enter('thematicBreakSequence')\n      return sequence(code)\n    }\n\n    if (markdownSpace(code)) {\n      return factorySpace(effects, atBreak, 'whitespace')(code)\n    }\n\n    if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n      return nok(code)\n    }\n\n    effects.exit('thematicBreak')\n    return ok(code)\n  }\n  /** @type {State} */\n\n  function sequence(code) {\n    if (code === marker) {\n      effects.consume(code)\n      size++\n      return sequence\n    }\n\n    effects.exit('thematicBreakSequence')\n    return atBreak(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @typedef {Record<string, unknown> & {marker: Code, type: string, size: number}} ListContainerState\n * @typedef {TokenizeContext & {containerState: ListContainerState}} TokenizeContextWithState\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n/** @type {Construct} */\n\nexport const list = {\n  name: 'list',\n  tokenize: tokenizeListStart,\n  continuation: {\n    tokenize: tokenizeListContinuation\n  },\n  exit: tokenizeListEnd\n}\n/** @type {Construct} */\n\nconst listItemPrefixWhitespaceConstruct = {\n  tokenize: tokenizeListItemPrefixWhitespace,\n  partial: true\n}\n/** @type {Construct} */\n\nconst indentConstruct = {\n  tokenize: tokenizeIndent,\n  partial: true\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListStart(effects, ok, nok) {\n  const self = this\n  const tail = self.events[self.events.length - 1]\n  let initialSize =\n    tail && tail[1].type === 'linePrefix'\n      ? tail[2].sliceSerialize(tail[1], true).length\n      : 0\n  let size = 0\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    const kind =\n      self.containerState.type ||\n      (code === 42 || code === 43 || code === 45\n        ? 'listUnordered'\n        : 'listOrdered')\n\n    if (\n      kind === 'listUnordered'\n        ? !self.containerState.marker || code === self.containerState.marker\n        : asciiDigit(code)\n    ) {\n      if (!self.containerState.type) {\n        self.containerState.type = kind\n        effects.enter(kind, {\n          _container: true\n        })\n      }\n\n      if (kind === 'listUnordered') {\n        effects.enter('listItemPrefix')\n        return code === 42 || code === 45\n          ? effects.check(thematicBreak, nok, atMarker)(code)\n          : atMarker(code)\n      }\n\n      if (!self.interrupt || code === 49) {\n        effects.enter('listItemPrefix')\n        effects.enter('listItemValue')\n        return inside(code)\n      }\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function inside(code) {\n    if (asciiDigit(code) && ++size < 10) {\n      effects.consume(code)\n      return inside\n    }\n\n    if (\n      (!self.interrupt || size < 2) &&\n      (self.containerState.marker\n        ? code === self.containerState.marker\n        : code === 41 || code === 46)\n    ) {\n      effects.exit('listItemValue')\n      return atMarker(code)\n    }\n\n    return nok(code)\n  }\n  /**\n   * @type {State}\n   **/\n\n  function atMarker(code) {\n    effects.enter('listItemMarker')\n    effects.consume(code)\n    effects.exit('listItemMarker')\n    self.containerState.marker = self.containerState.marker || code\n    return effects.check(\n      blankLine, // Can’t be empty when interrupting.\n      self.interrupt ? nok : onBlank,\n      effects.attempt(\n        listItemPrefixWhitespaceConstruct,\n        endOfPrefix,\n        otherPrefix\n      )\n    )\n  }\n  /** @type {State} */\n\n  function onBlank(code) {\n    self.containerState.initialBlankLine = true\n    initialSize++\n    return endOfPrefix(code)\n  }\n  /** @type {State} */\n\n  function otherPrefix(code) {\n    if (markdownSpace(code)) {\n      effects.enter('listItemPrefixWhitespace')\n      effects.consume(code)\n      effects.exit('listItemPrefixWhitespace')\n      return endOfPrefix\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function endOfPrefix(code) {\n    self.containerState.size =\n      initialSize +\n      self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n    return ok(code)\n  }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n  const self = this\n  self.containerState._closeFlow = undefined\n  return effects.check(blankLine, onBlank, notBlank)\n  /** @type {State} */\n\n  function onBlank(code) {\n    self.containerState.furtherBlankLines =\n      self.containerState.furtherBlankLines ||\n      self.containerState.initialBlankLine // We have a blank line.\n    // Still, try to consume at most the items size.\n\n    return factorySpace(\n      effects,\n      ok,\n      'listItemIndent',\n      self.containerState.size + 1\n    )(code)\n  }\n  /** @type {State} */\n\n  function notBlank(code) {\n    if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n      self.containerState.furtherBlankLines = undefined\n      self.containerState.initialBlankLine = undefined\n      return notInCurrentItem(code)\n    }\n\n    self.containerState.furtherBlankLines = undefined\n    self.containerState.initialBlankLine = undefined\n    return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n  }\n  /** @type {State} */\n\n  function notInCurrentItem(code) {\n    // While we do continue, we signal that the flow should be closed.\n    self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n    self.interrupt = undefined\n    return factorySpace(\n      effects,\n      effects.attempt(list, ok, nok),\n      'linePrefix',\n      self.parser.constructs.disable.null.includes('codeIndented')\n        ? undefined\n        : 4\n    )(code)\n  }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeIndent(effects, ok, nok) {\n  const self = this\n  return factorySpace(\n    effects,\n    afterPrefix,\n    'listItemIndent',\n    self.containerState.size + 1\n  )\n  /** @type {State} */\n\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1]\n    return tail &&\n      tail[1].type === 'listItemIndent' &&\n      tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n      ? ok(code)\n      : nok(code)\n  }\n}\n/**\n * @type {Exiter}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListEnd(effects) {\n  effects.exit(this.containerState.type)\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n  const self = this\n  return factorySpace(\n    effects,\n    afterPrefix,\n    'listItemPrefixWhitespace',\n    self.parser.constructs.disable.null.includes('codeIndented')\n      ? undefined\n      : 4 + 1\n  )\n  /** @type {State} */\n\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1]\n    return !markdownSpace(code) &&\n      tail &&\n      tail[1].type === 'listItemPrefixWhitespace'\n      ? ok(code)\n      : nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blockQuote = {\n  name: 'blockQuote',\n  tokenize: tokenizeBlockQuoteStart,\n  continuation: {\n    tokenize: tokenizeBlockQuoteContinuation\n  },\n  exit\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n  const self = this\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (code === 62) {\n      const state = self.containerState\n\n      if (!state.open) {\n        effects.enter('blockQuote', {\n          _container: true\n        })\n        state.open = true\n      }\n\n      effects.enter('blockQuotePrefix')\n      effects.enter('blockQuoteMarker')\n      effects.consume(code)\n      effects.exit('blockQuoteMarker')\n      return after\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function after(code) {\n    if (markdownSpace(code)) {\n      effects.enter('blockQuotePrefixWhitespace')\n      effects.consume(code)\n      effects.exit('blockQuotePrefixWhitespace')\n      effects.exit('blockQuotePrefix')\n      return ok\n    }\n\n    effects.exit('blockQuotePrefix')\n    return ok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n  return factorySpace(\n    effects,\n    effects.attempt(blockQuote, ok, nok),\n    'linePrefix',\n    this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n  )\n}\n/** @type {Exiter} */\n\nfunction exit(effects) {\n  effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n  asciiControl,\n  markdownLineEndingOrSpace,\n  markdownLineEnding\n} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} literalType\n * @param {string} literalMarkerType\n * @param {string} rawType\n * @param {string} stringType\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryDestination(\n  effects,\n  ok,\n  nok,\n  type,\n  literalType,\n  literalMarkerType,\n  rawType,\n  stringType,\n  max\n) {\n  const limit = max || Number.POSITIVE_INFINITY\n  let balance = 0\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (code === 60) {\n      effects.enter(type)\n      effects.enter(literalType)\n      effects.enter(literalMarkerType)\n      effects.consume(code)\n      effects.exit(literalMarkerType)\n      return destinationEnclosedBefore\n    }\n\n    if (code === null || code === 41 || asciiControl(code)) {\n      return nok(code)\n    }\n\n    effects.enter(type)\n    effects.enter(rawType)\n    effects.enter(stringType)\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return destinationRaw(code)\n  }\n  /** @type {State} */\n\n  function destinationEnclosedBefore(code) {\n    if (code === 62) {\n      effects.enter(literalMarkerType)\n      effects.consume(code)\n      effects.exit(literalMarkerType)\n      effects.exit(literalType)\n      effects.exit(type)\n      return ok\n    }\n\n    effects.enter(stringType)\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return destinationEnclosed(code)\n  }\n  /** @type {State} */\n\n  function destinationEnclosed(code) {\n    if (code === 62) {\n      effects.exit('chunkString')\n      effects.exit(stringType)\n      return destinationEnclosedBefore(code)\n    }\n\n    if (code === null || code === 60 || markdownLineEnding(code)) {\n      return nok(code)\n    }\n\n    effects.consume(code)\n    return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n  }\n  /** @type {State} */\n\n  function destinationEnclosedEscape(code) {\n    if (code === 60 || code === 62 || code === 92) {\n      effects.consume(code)\n      return destinationEnclosed\n    }\n\n    return destinationEnclosed(code)\n  }\n  /** @type {State} */\n\n  function destinationRaw(code) {\n    if (code === 40) {\n      if (++balance > limit) return nok(code)\n      effects.consume(code)\n      return destinationRaw\n    }\n\n    if (code === 41) {\n      if (!balance--) {\n        effects.exit('chunkString')\n        effects.exit(stringType)\n        effects.exit(rawType)\n        effects.exit(type)\n        return ok(code)\n      }\n\n      effects.consume(code)\n      return destinationRaw\n    }\n\n    if (code === null || markdownLineEndingOrSpace(code)) {\n      if (balance) return nok(code)\n      effects.exit('chunkString')\n      effects.exit(stringType)\n      effects.exit(rawType)\n      effects.exit(type)\n      return ok(code)\n    }\n\n    if (asciiControl(code)) return nok(code)\n    effects.consume(code)\n    return code === 92 ? destinationRawEscape : destinationRaw\n  }\n  /** @type {State} */\n\n  function destinationRawEscape(code) {\n    if (code === 40 || code === 41 || code === 92) {\n      effects.consume(code)\n      return destinationRaw\n    }\n\n    return destinationRaw(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @this {TokenizeContext}\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n  const self = this\n  let size = 0\n  /** @type {boolean} */\n\n  let data\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter(type)\n    effects.enter(markerType)\n    effects.consume(code)\n    effects.exit(markerType)\n    effects.enter(stringType)\n    return atBreak\n  }\n  /** @type {State} */\n\n  function atBreak(code) {\n    if (\n      code === null ||\n      code === 91 ||\n      (code === 93 && !data) ||\n      /* To do: remove in the future once we’ve switched from\n       * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n       * which doesn’t need this */\n\n      /* Hidden footnotes hook */\n\n      /* c8 ignore next 3 */\n      (code === 94 &&\n        !size &&\n        '_hiddenFootnoteSupport' in self.parser.constructs) ||\n      size > 999\n    ) {\n      return nok(code)\n    }\n\n    if (code === 93) {\n      effects.exit(stringType)\n      effects.enter(markerType)\n      effects.consume(code)\n      effects.exit(markerType)\n      effects.exit(type)\n      return ok\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return atBreak\n    }\n\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return label(code)\n  }\n  /** @type {State} */\n\n  function label(code) {\n    if (\n      code === null ||\n      code === 91 ||\n      code === 93 ||\n      markdownLineEnding(code) ||\n      size++ > 999\n    ) {\n      effects.exit('chunkString')\n      return atBreak(code)\n    }\n\n    effects.consume(code)\n    data = data || !markdownSpace(code)\n    return code === 92 ? labelEscape : label\n  }\n  /** @type {State} */\n\n  function labelEscape(code) {\n    if (code === 91 || code === 92 || code === 93) {\n      effects.consume(code)\n      size++\n      return label\n    }\n\n    return label(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n  /** @type {NonNullable<Code>} */\n  let marker\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter(type)\n    effects.enter(markerType)\n    effects.consume(code)\n    effects.exit(markerType)\n    marker = code === 40 ? 41 : code\n    return atFirstTitleBreak\n  }\n  /** @type {State} */\n\n  function atFirstTitleBreak(code) {\n    if (code === marker) {\n      effects.enter(markerType)\n      effects.consume(code)\n      effects.exit(markerType)\n      effects.exit(type)\n      return ok\n    }\n\n    effects.enter(stringType)\n    return atTitleBreak(code)\n  }\n  /** @type {State} */\n\n  function atTitleBreak(code) {\n    if (code === marker) {\n      effects.exit(stringType)\n      return atFirstTitleBreak(marker)\n    }\n\n    if (code === null) {\n      return nok(code)\n    } // Note: blank lines can’t exist in content.\n\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return factorySpace(effects, atTitleBreak, 'linePrefix')\n    }\n\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return title(code)\n  }\n  /** @type {State} */\n\n  function title(code) {\n    if (code === marker || code === null || markdownLineEnding(code)) {\n      effects.exit('chunkString')\n      return atTitleBreak(code)\n    }\n\n    effects.consume(code)\n    return code === 92 ? titleEscape : title\n  }\n  /** @type {State} */\n\n  function titleEscape(code) {\n    if (code === marker || code === 92) {\n      effects.consume(code)\n      return title\n    }\n\n    return title(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n */\nexport function factoryWhitespace(effects, ok) {\n  /** @type {boolean} */\n  let seen\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      seen = true\n      return start\n    }\n\n    if (markdownSpace(code)) {\n      return factorySpace(\n        effects,\n        start,\n        seen ? 'linePrefix' : 'lineSuffix'\n      )(code)\n    }\n\n    return ok(code)\n  }\n}\n","/**\n * Normalize an identifier (such as used in definitions).\n *\n * @param {string} value\n * @returns {string}\n */\nexport function normalizeIdentifier(value) {\n  return (\n    value // Collapse Markdown whitespace.\n      .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n      .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n      // counterpart is uppercased will result in a different uppercase\n      // character.\n      // Hence, to get that form, we perform both lower- and uppercase.\n      // Upper case makes sure keys will not interact with default prototypal\n      // methods: no method is uppercase.\n      .toLowerCase()\n      .toUpperCase()\n  )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {\n  markdownLineEnding,\n  markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const definition = {\n  name: 'definition',\n  tokenize: tokenizeDefinition\n}\n/** @type {Construct} */\n\nconst titleConstruct = {\n  tokenize: tokenizeTitle,\n  partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinition(effects, ok, nok) {\n  const self = this\n  /** @type {string} */\n\n  let identifier\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('definition')\n    return factoryLabel.call(\n      self,\n      effects,\n      labelAfter,\n      nok,\n      'definitionLabel',\n      'definitionLabelMarker',\n      'definitionLabelString'\n    )(code)\n  }\n  /** @type {State} */\n\n  function labelAfter(code) {\n    identifier = normalizeIdentifier(\n      self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n    )\n\n    if (code === 58) {\n      effects.enter('definitionMarker')\n      effects.consume(code)\n      effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n      return factoryWhitespace(\n        effects,\n        factoryDestination(\n          effects,\n          effects.attempt(\n            titleConstruct,\n            factorySpace(effects, after, 'whitespace'),\n            factorySpace(effects, after, 'whitespace')\n          ),\n          nok,\n          'definitionDestination',\n          'definitionDestinationLiteral',\n          'definitionDestinationLiteralMarker',\n          'definitionDestinationRaw',\n          'definitionDestinationString'\n        )\n      )\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function after(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('definition')\n\n      if (!self.parser.defined.includes(identifier)) {\n        self.parser.defined.push(identifier)\n      }\n\n      return ok(code)\n    }\n\n    return nok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTitle(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    return markdownLineEndingOrSpace(code)\n      ? factoryWhitespace(effects, before)(code)\n      : nok(code)\n  }\n  /** @type {State} */\n\n  function before(code) {\n    if (code === 34 || code === 39 || code === 40) {\n      return factoryTitle(\n        effects,\n        factorySpace(effects, after, 'whitespace'),\n        nok,\n        'definitionTitle',\n        'definitionTitleMarker',\n        'definitionTitleString'\n      )(code)\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function after(code) {\n    return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeIndented = {\n  name: 'codeIndented',\n  tokenize: tokenizeCodeIndented\n}\n/** @type {Construct} */\n\nconst indentedContent = {\n  tokenize: tokenizeIndentedContent,\n  partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n  const self = this\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('codeIndented')\n    return factorySpace(effects, afterStartPrefix, 'linePrefix', 4 + 1)(code)\n  }\n  /** @type {State} */\n\n  function afterStartPrefix(code) {\n    const tail = self.events[self.events.length - 1]\n    return tail &&\n      tail[1].type === 'linePrefix' &&\n      tail[2].sliceSerialize(tail[1], true).length >= 4\n      ? afterPrefix(code)\n      : nok(code)\n  }\n  /** @type {State} */\n\n  function afterPrefix(code) {\n    if (code === null) {\n      return after(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      return effects.attempt(indentedContent, afterPrefix, after)(code)\n    }\n\n    effects.enter('codeFlowValue')\n    return content(code)\n  }\n  /** @type {State} */\n\n  function content(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('codeFlowValue')\n      return afterPrefix(code)\n    }\n\n    effects.consume(code)\n    return content\n  }\n  /** @type {State} */\n\n  function after(code) {\n    effects.exit('codeIndented')\n    return ok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n  const self = this\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    // If this is a lazy line, it can’t be code.\n    if (self.parser.lazy[self.now().line]) {\n      return nok(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return start\n    }\n\n    return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n  }\n  /** @type {State} */\n\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1]\n    return tail &&\n      tail[1].type === 'linePrefix' &&\n      tail[2].sliceSerialize(tail[1], true).length >= 4\n      ? ok(code)\n      : markdownLineEnding(code)\n      ? start(code)\n      : nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n  markdownLineEnding,\n  markdownLineEndingOrSpace,\n  markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n\n/** @type {Construct} */\nexport const headingAtx = {\n  name: 'headingAtx',\n  tokenize: tokenizeHeadingAtx,\n  resolve: resolveHeadingAtx\n}\n/** @type {Resolver} */\n\nfunction resolveHeadingAtx(events, context) {\n  let contentEnd = events.length - 2\n  let contentStart = 3\n  /** @type {Token} */\n\n  let content\n  /** @type {Token} */\n\n  let text // Prefix whitespace, part of the opening.\n\n  if (events[contentStart][1].type === 'whitespace') {\n    contentStart += 2\n  } // Suffix whitespace, part of the closing.\n\n  if (\n    contentEnd - 2 > contentStart &&\n    events[contentEnd][1].type === 'whitespace'\n  ) {\n    contentEnd -= 2\n  }\n\n  if (\n    events[contentEnd][1].type === 'atxHeadingSequence' &&\n    (contentStart === contentEnd - 1 ||\n      (contentEnd - 4 > contentStart &&\n        events[contentEnd - 2][1].type === 'whitespace'))\n  ) {\n    contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n  }\n\n  if (contentEnd > contentStart) {\n    content = {\n      type: 'atxHeadingText',\n      start: events[contentStart][1].start,\n      end: events[contentEnd][1].end\n    }\n    text = {\n      type: 'chunkText',\n      start: events[contentStart][1].start,\n      end: events[contentEnd][1].end,\n      // @ts-expect-error Constants are fine to assign.\n      contentType: 'text'\n    }\n    splice(events, contentStart, contentEnd - contentStart + 1, [\n      ['enter', content, context],\n      ['enter', text, context],\n      ['exit', text, context],\n      ['exit', content, context]\n    ])\n  }\n\n  return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n  const self = this\n  let size = 0\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('atxHeading')\n    effects.enter('atxHeadingSequence')\n    return fenceOpenInside(code)\n  }\n  /** @type {State} */\n\n  function fenceOpenInside(code) {\n    if (code === 35 && size++ < 6) {\n      effects.consume(code)\n      return fenceOpenInside\n    }\n\n    if (code === null || markdownLineEndingOrSpace(code)) {\n      effects.exit('atxHeadingSequence')\n      return self.interrupt ? ok(code) : headingBreak(code)\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function headingBreak(code) {\n    if (code === 35) {\n      effects.enter('atxHeadingSequence')\n      return sequence(code)\n    }\n\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('atxHeading')\n      return ok(code)\n    }\n\n    if (markdownSpace(code)) {\n      return factorySpace(effects, headingBreak, 'whitespace')(code)\n    }\n\n    effects.enter('atxHeadingText')\n    return data(code)\n  }\n  /** @type {State} */\n\n  function sequence(code) {\n    if (code === 35) {\n      effects.consume(code)\n      return sequence\n    }\n\n    effects.exit('atxHeadingSequence')\n    return headingBreak(code)\n  }\n  /** @type {State} */\n\n  function data(code) {\n    if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n      effects.exit('atxHeadingText')\n      return headingBreak(code)\n    }\n\n    effects.consume(code)\n    return data\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const setextUnderline = {\n  name: 'setextUnderline',\n  tokenize: tokenizeSetextUnderline,\n  resolveTo: resolveToSetextUnderline\n}\n/** @type {Resolver} */\n\nfunction resolveToSetextUnderline(events, context) {\n  let index = events.length\n  /** @type {number|undefined} */\n\n  let content\n  /** @type {number|undefined} */\n\n  let text\n  /** @type {number|undefined} */\n\n  let definition // Find the opening of the content.\n  // It’ll always exist: we don’t tokenize if it isn’t there.\n\n  while (index--) {\n    if (events[index][0] === 'enter') {\n      if (events[index][1].type === 'content') {\n        content = index\n        break\n      }\n\n      if (events[index][1].type === 'paragraph') {\n        text = index\n      }\n    } // Exit\n    else {\n      if (events[index][1].type === 'content') {\n        // Remove the content end (if needed we’ll add it later)\n        events.splice(index, 1)\n      }\n\n      if (!definition && events[index][1].type === 'definition') {\n        definition = index\n      }\n    }\n  }\n\n  const heading = {\n    type: 'setextHeading',\n    start: Object.assign({}, events[text][1].start),\n    end: Object.assign({}, events[events.length - 1][1].end)\n  } // Change the paragraph to setext heading text.\n\n  events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n  // but we need move it.\n\n  if (definition) {\n    events.splice(text, 0, ['enter', heading, context])\n    events.splice(definition + 1, 0, ['exit', events[content][1], context])\n    events[content][1].end = Object.assign({}, events[definition][1].end)\n  } else {\n    events[content][1] = heading\n  } // Add the heading exit at the end.\n\n  events.push(['exit', heading, context])\n  return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n  const self = this\n  let index = self.events.length\n  /** @type {NonNullable<Code>} */\n\n  let marker\n  /** @type {boolean} */\n\n  let paragraph // Find an opening.\n\n  while (index--) {\n    // Skip enter/exit of line ending, line prefix, and content.\n    // We can now either have a definition or a paragraph.\n    if (\n      self.events[index][1].type !== 'lineEnding' &&\n      self.events[index][1].type !== 'linePrefix' &&\n      self.events[index][1].type !== 'content'\n    ) {\n      paragraph = self.events[index][1].type === 'paragraph'\n      break\n    }\n  }\n\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n      effects.enter('setextHeadingLine')\n      effects.enter('setextHeadingLineSequence')\n      marker = code\n      return closingSequence(code)\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function closingSequence(code) {\n    if (code === marker) {\n      effects.consume(code)\n      return closingSequence\n    }\n\n    effects.exit('setextHeadingLineSequence')\n    return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n  }\n  /** @type {State} */\n\n  function closingSequenceEnd(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('setextHeadingLine')\n      return ok(code)\n    }\n\n    return nok(code)\n  }\n}\n","/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result\n * in more relaxed rules (condition 6): because they are known blocks, the\n * HTML-like syntax doesn’t have to be strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n */\nexport const htmlBlockNames = [\n  'address',\n  'article',\n  'aside',\n  'base',\n  'basefont',\n  'blockquote',\n  'body',\n  'caption',\n  'center',\n  'col',\n  'colgroup',\n  'dd',\n  'details',\n  'dialog',\n  'dir',\n  'div',\n  'dl',\n  'dt',\n  'fieldset',\n  'figcaption',\n  'figure',\n  'footer',\n  'form',\n  'frame',\n  'frameset',\n  'h1',\n  'h2',\n  'h3',\n  'h4',\n  'h5',\n  'h6',\n  'head',\n  'header',\n  'hr',\n  'html',\n  'iframe',\n  'legend',\n  'li',\n  'link',\n  'main',\n  'menu',\n  'menuitem',\n  'nav',\n  'noframes',\n  'ol',\n  'optgroup',\n  'option',\n  'p',\n  'param',\n  'section',\n  'summary',\n  'table',\n  'tbody',\n  'td',\n  'tfoot',\n  'th',\n  'thead',\n  'title',\n  'tr',\n  'track',\n  'ul'\n]\n\n/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result in\n * HTML that can include lines w/o exiting, until a closing tag also in this\n * list is found (condition 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * Note that `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n  asciiAlpha,\n  asciiAlphanumeric,\n  markdownLineEnding,\n  markdownLineEndingOrSpace,\n  markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n/** @type {Construct} */\n\nexport const htmlFlow = {\n  name: 'htmlFlow',\n  tokenize: tokenizeHtmlFlow,\n  resolveTo: resolveToHtmlFlow,\n  concrete: true\n}\n/** @type {Construct} */\n\nconst nextBlankConstruct = {\n  tokenize: tokenizeNextBlank,\n  partial: true\n}\n/** @type {Resolver} */\n\nfunction resolveToHtmlFlow(events) {\n  let index = events.length\n\n  while (index--) {\n    if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n      break\n    }\n  }\n\n  if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n    // Add the prefix start to the HTML token.\n    events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n    events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n    events.splice(index - 2, 2)\n  }\n\n  return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n  const self = this\n  /** @type {number} */\n\n  let kind\n  /** @type {boolean} */\n\n  let startTag\n  /** @type {string} */\n\n  let buffer\n  /** @type {number} */\n\n  let index\n  /** @type {Code} */\n\n  let marker\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('htmlFlow')\n    effects.enter('htmlFlowData')\n    effects.consume(code)\n    return open\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (code === 33) {\n      effects.consume(code)\n      return declarationStart\n    }\n\n    if (code === 47) {\n      effects.consume(code)\n      return tagCloseStart\n    }\n\n    if (code === 63) {\n      effects.consume(code)\n      kind = 3 // While we’re in an instruction instead of a declaration, we’re on a `?`\n      // right now, so we do need to search for `>`, similar to declarations.\n\n      return self.interrupt ? ok : continuationDeclarationInside\n    }\n\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      buffer = String.fromCharCode(code)\n      startTag = true\n      return tagName\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function declarationStart(code) {\n    if (code === 45) {\n      effects.consume(code)\n      kind = 2\n      return commentOpenInside\n    }\n\n    if (code === 91) {\n      effects.consume(code)\n      kind = 5\n      buffer = 'CDATA['\n      index = 0\n      return cdataOpenInside\n    }\n\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      kind = 4\n      return self.interrupt ? ok : continuationDeclarationInside\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function commentOpenInside(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return self.interrupt ? ok : continuationDeclarationInside\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function cdataOpenInside(code) {\n    if (code === buffer.charCodeAt(index++)) {\n      effects.consume(code)\n      return index === buffer.length\n        ? self.interrupt\n          ? ok\n          : continuation\n        : cdataOpenInside\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function tagCloseStart(code) {\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      buffer = String.fromCharCode(code)\n      return tagName\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function tagName(code) {\n    if (\n      code === null ||\n      code === 47 ||\n      code === 62 ||\n      markdownLineEndingOrSpace(code)\n    ) {\n      if (\n        code !== 47 &&\n        startTag &&\n        htmlRawNames.includes(buffer.toLowerCase())\n      ) {\n        kind = 1\n        return self.interrupt ? ok(code) : continuation(code)\n      }\n\n      if (htmlBlockNames.includes(buffer.toLowerCase())) {\n        kind = 6\n\n        if (code === 47) {\n          effects.consume(code)\n          return basicSelfClosing\n        }\n\n        return self.interrupt ? ok(code) : continuation(code)\n      }\n\n      kind = 7 // Do not support complete HTML when interrupting\n\n      return self.interrupt && !self.parser.lazy[self.now().line]\n        ? nok(code)\n        : startTag\n        ? completeAttributeNameBefore(code)\n        : completeClosingTagAfter(code)\n    }\n\n    if (code === 45 || asciiAlphanumeric(code)) {\n      effects.consume(code)\n      buffer += String.fromCharCode(code)\n      return tagName\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function basicSelfClosing(code) {\n    if (code === 62) {\n      effects.consume(code)\n      return self.interrupt ? ok : continuation\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function completeClosingTagAfter(code) {\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return completeClosingTagAfter\n    }\n\n    return completeEnd(code)\n  }\n  /** @type {State} */\n\n  function completeAttributeNameBefore(code) {\n    if (code === 47) {\n      effects.consume(code)\n      return completeEnd\n    }\n\n    if (code === 58 || code === 95 || asciiAlpha(code)) {\n      effects.consume(code)\n      return completeAttributeName\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return completeAttributeNameBefore\n    }\n\n    return completeEnd(code)\n  }\n  /** @type {State} */\n\n  function completeAttributeName(code) {\n    if (\n      code === 45 ||\n      code === 46 ||\n      code === 58 ||\n      code === 95 ||\n      asciiAlphanumeric(code)\n    ) {\n      effects.consume(code)\n      return completeAttributeName\n    }\n\n    return completeAttributeNameAfter(code)\n  }\n  /** @type {State} */\n\n  function completeAttributeNameAfter(code) {\n    if (code === 61) {\n      effects.consume(code)\n      return completeAttributeValueBefore\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return completeAttributeNameAfter\n    }\n\n    return completeAttributeNameBefore(code)\n  }\n  /** @type {State} */\n\n  function completeAttributeValueBefore(code) {\n    if (\n      code === null ||\n      code === 60 ||\n      code === 61 ||\n      code === 62 ||\n      code === 96\n    ) {\n      return nok(code)\n    }\n\n    if (code === 34 || code === 39) {\n      effects.consume(code)\n      marker = code\n      return completeAttributeValueQuoted\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return completeAttributeValueBefore\n    }\n\n    marker = null\n    return completeAttributeValueUnquoted(code)\n  }\n  /** @type {State} */\n\n  function completeAttributeValueQuoted(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return nok(code)\n    }\n\n    if (code === marker) {\n      effects.consume(code)\n      return completeAttributeValueQuotedAfter\n    }\n\n    effects.consume(code)\n    return completeAttributeValueQuoted\n  }\n  /** @type {State} */\n\n  function completeAttributeValueUnquoted(code) {\n    if (\n      code === null ||\n      code === 34 ||\n      code === 39 ||\n      code === 60 ||\n      code === 61 ||\n      code === 62 ||\n      code === 96 ||\n      markdownLineEndingOrSpace(code)\n    ) {\n      return completeAttributeNameAfter(code)\n    }\n\n    effects.consume(code)\n    return completeAttributeValueUnquoted\n  }\n  /** @type {State} */\n\n  function completeAttributeValueQuotedAfter(code) {\n    if (code === 47 || code === 62 || markdownSpace(code)) {\n      return completeAttributeNameBefore(code)\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function completeEnd(code) {\n    if (code === 62) {\n      effects.consume(code)\n      return completeAfter\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function completeAfter(code) {\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return completeAfter\n    }\n\n    return code === null || markdownLineEnding(code)\n      ? continuation(code)\n      : nok(code)\n  }\n  /** @type {State} */\n\n  function continuation(code) {\n    if (code === 45 && kind === 2) {\n      effects.consume(code)\n      return continuationCommentInside\n    }\n\n    if (code === 60 && kind === 1) {\n      effects.consume(code)\n      return continuationRawTagOpen\n    }\n\n    if (code === 62 && kind === 4) {\n      effects.consume(code)\n      return continuationClose\n    }\n\n    if (code === 63 && kind === 3) {\n      effects.consume(code)\n      return continuationDeclarationInside\n    }\n\n    if (code === 93 && kind === 5) {\n      effects.consume(code)\n      return continuationCharacterDataInside\n    }\n\n    if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n      return effects.check(\n        nextBlankConstruct,\n        continuationClose,\n        continuationAtLineEnding\n      )(code)\n    }\n\n    if (code === null || markdownLineEnding(code)) {\n      return continuationAtLineEnding(code)\n    }\n\n    effects.consume(code)\n    return continuation\n  }\n  /** @type {State} */\n\n  function continuationAtLineEnding(code) {\n    effects.exit('htmlFlowData')\n    return htmlContinueStart(code)\n  }\n  /** @type {State} */\n\n  function htmlContinueStart(code) {\n    if (code === null) {\n      return done(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      return effects.attempt(\n        {\n          tokenize: htmlLineEnd,\n          partial: true\n        },\n        htmlContinueStart,\n        done\n      )(code)\n    }\n\n    effects.enter('htmlFlowData')\n    return continuation(code)\n  }\n  /** @type {Tokenizer} */\n\n  function htmlLineEnd(effects, ok, nok) {\n    return start\n    /** @type {State} */\n\n    function start(code) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return lineStart\n    }\n    /** @type {State} */\n\n    function lineStart(code) {\n      return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n    }\n  }\n  /** @type {State} */\n\n  function continuationCommentInside(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return continuationDeclarationInside\n    }\n\n    return continuation(code)\n  }\n  /** @type {State} */\n\n  function continuationRawTagOpen(code) {\n    if (code === 47) {\n      effects.consume(code)\n      buffer = ''\n      return continuationRawEndTag\n    }\n\n    return continuation(code)\n  }\n  /** @type {State} */\n\n  function continuationRawEndTag(code) {\n    if (code === 62 && htmlRawNames.includes(buffer.toLowerCase())) {\n      effects.consume(code)\n      return continuationClose\n    }\n\n    if (asciiAlpha(code) && buffer.length < 8) {\n      effects.consume(code)\n      buffer += String.fromCharCode(code)\n      return continuationRawEndTag\n    }\n\n    return continuation(code)\n  }\n  /** @type {State} */\n\n  function continuationCharacterDataInside(code) {\n    if (code === 93) {\n      effects.consume(code)\n      return continuationDeclarationInside\n    }\n\n    return continuation(code)\n  }\n  /** @type {State} */\n\n  function continuationDeclarationInside(code) {\n    if (code === 62) {\n      effects.consume(code)\n      return continuationClose\n    } // More dashes.\n\n    if (code === 45 && kind === 2) {\n      effects.consume(code)\n      return continuationDeclarationInside\n    }\n\n    return continuation(code)\n  }\n  /** @type {State} */\n\n  function continuationClose(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('htmlFlowData')\n      return done(code)\n    }\n\n    effects.consume(code)\n    return continuationClose\n  }\n  /** @type {State} */\n\n  function done(code) {\n    effects.exit('htmlFlow')\n    return ok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.exit('htmlFlowData')\n    effects.enter('lineEndingBlank')\n    effects.consume(code)\n    effects.exit('lineEndingBlank')\n    return effects.attempt(blankLine, ok, nok)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n  markdownLineEnding,\n  markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeFenced = {\n  name: 'codeFenced',\n  tokenize: tokenizeCodeFenced,\n  concrete: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n  const self = this\n  /** @type {Construct} */\n\n  const closingFenceConstruct = {\n    tokenize: tokenizeClosingFence,\n    partial: true\n  }\n  /** @type {Construct} */\n\n  const nonLazyLine = {\n    tokenize: tokenizeNonLazyLine,\n    partial: true\n  }\n  const tail = this.events[this.events.length - 1]\n  const initialPrefix =\n    tail && tail[1].type === 'linePrefix'\n      ? tail[2].sliceSerialize(tail[1], true).length\n      : 0\n  let sizeOpen = 0\n  /** @type {NonNullable<Code>} */\n\n  let marker\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('codeFenced')\n    effects.enter('codeFencedFence')\n    effects.enter('codeFencedFenceSequence')\n    marker = code\n    return sequenceOpen(code)\n  }\n  /** @type {State} */\n\n  function sequenceOpen(code) {\n    if (code === marker) {\n      effects.consume(code)\n      sizeOpen++\n      return sequenceOpen\n    }\n\n    effects.exit('codeFencedFenceSequence')\n    return sizeOpen < 3\n      ? nok(code)\n      : factorySpace(effects, infoOpen, 'whitespace')(code)\n  }\n  /** @type {State} */\n\n  function infoOpen(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return openAfter(code)\n    }\n\n    effects.enter('codeFencedFenceInfo')\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return info(code)\n  }\n  /** @type {State} */\n\n  function info(code) {\n    if (code === null || markdownLineEndingOrSpace(code)) {\n      effects.exit('chunkString')\n      effects.exit('codeFencedFenceInfo')\n      return factorySpace(effects, infoAfter, 'whitespace')(code)\n    }\n\n    if (code === 96 && code === marker) return nok(code)\n    effects.consume(code)\n    return info\n  }\n  /** @type {State} */\n\n  function infoAfter(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return openAfter(code)\n    }\n\n    effects.enter('codeFencedFenceMeta')\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return meta(code)\n  }\n  /** @type {State} */\n\n  function meta(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('chunkString')\n      effects.exit('codeFencedFenceMeta')\n      return openAfter(code)\n    }\n\n    if (code === 96 && code === marker) return nok(code)\n    effects.consume(code)\n    return meta\n  }\n  /** @type {State} */\n\n  function openAfter(code) {\n    effects.exit('codeFencedFence')\n    return self.interrupt ? ok(code) : contentStart(code)\n  }\n  /** @type {State} */\n\n  function contentStart(code) {\n    if (code === null) {\n      return after(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      return effects.attempt(\n        nonLazyLine,\n        effects.attempt(\n          closingFenceConstruct,\n          after,\n          initialPrefix\n            ? factorySpace(\n                effects,\n                contentStart,\n                'linePrefix',\n                initialPrefix + 1\n              )\n            : contentStart\n        ),\n        after\n      )(code)\n    }\n\n    effects.enter('codeFlowValue')\n    return contentContinue(code)\n  }\n  /** @type {State} */\n\n  function contentContinue(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('codeFlowValue')\n      return contentStart(code)\n    }\n\n    effects.consume(code)\n    return contentContinue\n  }\n  /** @type {State} */\n\n  function after(code) {\n    effects.exit('codeFenced')\n    return ok(code)\n  }\n  /** @type {Tokenizer} */\n\n  function tokenizeNonLazyLine(effects, ok, nok) {\n    const self = this\n    return start\n    /** @type {State} */\n\n    function start(code) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return lineStart\n    }\n    /** @type {State} */\n\n    function lineStart(code) {\n      return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n    }\n  }\n  /** @type {Tokenizer} */\n\n  function tokenizeClosingFence(effects, ok, nok) {\n    let size = 0\n    return factorySpace(\n      effects,\n      closingSequenceStart,\n      'linePrefix',\n      this.parser.constructs.disable.null.includes('codeIndented')\n        ? undefined\n        : 4\n    )\n    /** @type {State} */\n\n    function closingSequenceStart(code) {\n      effects.enter('codeFencedFence')\n      effects.enter('codeFencedFenceSequence')\n      return closingSequence(code)\n    }\n    /** @type {State} */\n\n    function closingSequence(code) {\n      if (code === marker) {\n        effects.consume(code)\n        size++\n        return closingSequence\n      }\n\n      if (size < sizeOpen) return nok(code)\n      effects.exit('codeFencedFenceSequence')\n      return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n    }\n    /** @type {State} */\n\n    function closingSequenceEnd(code) {\n      if (code === null || markdownLineEnding(code)) {\n        effects.exit('codeFencedFence')\n        return ok(code)\n      }\n\n      return nok(code)\n    }\n  }\n}\n","/// <reference lib=\"dom\" />\n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n  const characterReference = '&' + value + ';'\n  element.innerHTML = characterReference\n  const char = element.textContent\n\n  // Some named character references do not require the closing semicolon\n  // (`&not`, for instance), which leads to situations where parsing the assumed\n  // named reference of `&notit;` will result in the string `¬it;`.\n  // When we encounter a trailing semicolon after parsing, and the character\n  // reference to decode was not a semicolon (`&semi;`), we can assume that the\n  // matching was not complete.\n  // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n  // yield `null`.\n  if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n    return false\n  }\n\n  // If the decoded string is equal to the input, the character reference was\n  // not valid.\n  // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n  // yield `null`.\n  return char === characterReference ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n  asciiAlphanumeric,\n  asciiDigit,\n  asciiHexDigit\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterReference = {\n  name: 'characterReference',\n  tokenize: tokenizeCharacterReference\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n  const self = this\n  let size = 0\n  /** @type {number} */\n\n  let max\n  /** @type {(code: Code) => code is number} */\n\n  let test\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('characterReference')\n    effects.enter('characterReferenceMarker')\n    effects.consume(code)\n    effects.exit('characterReferenceMarker')\n    return open\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (code === 35) {\n      effects.enter('characterReferenceMarkerNumeric')\n      effects.consume(code)\n      effects.exit('characterReferenceMarkerNumeric')\n      return numeric\n    }\n\n    effects.enter('characterReferenceValue')\n    max = 31\n    test = asciiAlphanumeric\n    return value(code)\n  }\n  /** @type {State} */\n\n  function numeric(code) {\n    if (code === 88 || code === 120) {\n      effects.enter('characterReferenceMarkerHexadecimal')\n      effects.consume(code)\n      effects.exit('characterReferenceMarkerHexadecimal')\n      effects.enter('characterReferenceValue')\n      max = 6\n      test = asciiHexDigit\n      return value\n    }\n\n    effects.enter('characterReferenceValue')\n    max = 7\n    test = asciiDigit\n    return value(code)\n  }\n  /** @type {State} */\n\n  function value(code) {\n    /** @type {Token} */\n    let token\n\n    if (code === 59 && size) {\n      token = effects.exit('characterReferenceValue')\n\n      if (\n        test === asciiAlphanumeric &&\n        !decodeNamedCharacterReference(self.sliceSerialize(token))\n      ) {\n        return nok(code)\n      }\n\n      effects.enter('characterReferenceMarker')\n      effects.consume(code)\n      effects.exit('characterReferenceMarker')\n      effects.exit('characterReference')\n      return ok\n    }\n\n    if (test(code) && size++ < max) {\n      effects.consume(code)\n      return value\n    }\n\n    return nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {asciiPunctuation} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterEscape = {\n  name: 'characterEscape',\n  tokenize: tokenizeCharacterEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('characterEscape')\n    effects.enter('escapeMarker')\n    effects.consume(code)\n    effects.exit('escapeMarker')\n    return open\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (asciiPunctuation(code)) {\n      effects.enter('characterEscapeValue')\n      effects.consume(code)\n      effects.exit('characterEscapeValue')\n      effects.exit('characterEscape')\n      return ok\n    }\n\n    return nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const lineEnding = {\n  name: 'lineEnding',\n  tokenize: tokenizeLineEnding\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLineEnding(effects, ok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('lineEnding')\n    effects.consume(code)\n    effects.exit('lineEnding')\n    return factorySpace(effects, ok, 'linePrefix')\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const labelEnd = {\n  name: 'labelEnd',\n  tokenize: tokenizeLabelEnd,\n  resolveTo: resolveToLabelEnd,\n  resolveAll: resolveAllLabelEnd\n}\n/** @type {Construct} */\n\nconst resourceConstruct = {\n  tokenize: tokenizeResource\n}\n/** @type {Construct} */\n\nconst fullReferenceConstruct = {\n  tokenize: tokenizeFullReference\n}\n/** @type {Construct} */\n\nconst collapsedReferenceConstruct = {\n  tokenize: tokenizeCollapsedReference\n}\n/** @type {Resolver} */\n\nfunction resolveAllLabelEnd(events) {\n  let index = -1\n  /** @type {Token} */\n\n  let token\n\n  while (++index < events.length) {\n    token = events[index][1]\n\n    if (\n      token.type === 'labelImage' ||\n      token.type === 'labelLink' ||\n      token.type === 'labelEnd'\n    ) {\n      // Remove the marker.\n      events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n      token.type = 'data'\n      index++\n    }\n  }\n\n  return events\n}\n/** @type {Resolver} */\n\nfunction resolveToLabelEnd(events, context) {\n  let index = events.length\n  let offset = 0\n  /** @type {Token} */\n\n  let token\n  /** @type {number|undefined} */\n\n  let open\n  /** @type {number|undefined} */\n\n  let close\n  /** @type {Event[]} */\n\n  let media // Find an opening.\n\n  while (index--) {\n    token = events[index][1]\n\n    if (open) {\n      // If we see another link, or inactive link label, we’ve been here before.\n      if (\n        token.type === 'link' ||\n        (token.type === 'labelLink' && token._inactive)\n      ) {\n        break\n      } // Mark other link openings as inactive, as we can’t have links in\n      // links.\n\n      if (events[index][0] === 'enter' && token.type === 'labelLink') {\n        token._inactive = true\n      }\n    } else if (close) {\n      if (\n        events[index][0] === 'enter' &&\n        (token.type === 'labelImage' || token.type === 'labelLink') &&\n        !token._balanced\n      ) {\n        open = index\n\n        if (token.type !== 'labelLink') {\n          offset = 2\n          break\n        }\n      }\n    } else if (token.type === 'labelEnd') {\n      close = index\n    }\n  }\n\n  const group = {\n    type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n    start: Object.assign({}, events[open][1].start),\n    end: Object.assign({}, events[events.length - 1][1].end)\n  }\n  const label = {\n    type: 'label',\n    start: Object.assign({}, events[open][1].start),\n    end: Object.assign({}, events[close][1].end)\n  }\n  const text = {\n    type: 'labelText',\n    start: Object.assign({}, events[open + offset + 2][1].end),\n    end: Object.assign({}, events[close - 2][1].start)\n  }\n  media = [\n    ['enter', group, context],\n    ['enter', label, context]\n  ] // Opening marker.\n\n  media = push(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n  media = push(media, [['enter', text, context]]) // Between.\n\n  media = push(\n    media,\n    resolveAll(\n      context.parser.constructs.insideSpan.null,\n      events.slice(open + offset + 4, close - 3),\n      context\n    )\n  ) // Text close, marker close, label close.\n\n  media = push(media, [\n    ['exit', text, context],\n    events[close - 2],\n    events[close - 1],\n    ['exit', label, context]\n  ]) // Reference, resource, or so.\n\n  media = push(media, events.slice(close + 1)) // Media close.\n\n  media = push(media, [['exit', group, context]])\n  splice(events, open, events.length, media)\n  return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n  const self = this\n  let index = self.events.length\n  /** @type {Token} */\n\n  let labelStart\n  /** @type {boolean} */\n\n  let defined // Find an opening.\n\n  while (index--) {\n    if (\n      (self.events[index][1].type === 'labelImage' ||\n        self.events[index][1].type === 'labelLink') &&\n      !self.events[index][1]._balanced\n    ) {\n      labelStart = self.events[index][1]\n      break\n    }\n  }\n\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (!labelStart) {\n      return nok(code)\n    } // It’s a balanced bracket, but contains a link.\n\n    if (labelStart._inactive) return balanced(code)\n    defined = self.parser.defined.includes(\n      normalizeIdentifier(\n        self.sliceSerialize({\n          start: labelStart.end,\n          end: self.now()\n        })\n      )\n    )\n    effects.enter('labelEnd')\n    effects.enter('labelMarker')\n    effects.consume(code)\n    effects.exit('labelMarker')\n    effects.exit('labelEnd')\n    return afterLabelEnd\n  }\n  /** @type {State} */\n\n  function afterLabelEnd(code) {\n    // Resource: `[asd](fgh)`.\n    if (code === 40) {\n      return effects.attempt(\n        resourceConstruct,\n        ok,\n        defined ? ok : balanced\n      )(code)\n    } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n    if (code === 91) {\n      return effects.attempt(\n        fullReferenceConstruct,\n        ok,\n        defined\n          ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n          : balanced\n      )(code)\n    } // Shortcut reference: `[asd]`?\n\n    return defined ? ok(code) : balanced(code)\n  }\n  /** @type {State} */\n\n  function balanced(code) {\n    labelStart._balanced = true\n    return nok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeResource(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('resource')\n    effects.enter('resourceMarker')\n    effects.consume(code)\n    effects.exit('resourceMarker')\n    return factoryWhitespace(effects, open)\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (code === 41) {\n      return end(code)\n    }\n\n    return factoryDestination(\n      effects,\n      destinationAfter,\n      nok,\n      'resourceDestination',\n      'resourceDestinationLiteral',\n      'resourceDestinationLiteralMarker',\n      'resourceDestinationRaw',\n      'resourceDestinationString',\n      32\n    )(code)\n  }\n  /** @type {State} */\n\n  function destinationAfter(code) {\n    return markdownLineEndingOrSpace(code)\n      ? factoryWhitespace(effects, between)(code)\n      : end(code)\n  }\n  /** @type {State} */\n\n  function between(code) {\n    if (code === 34 || code === 39 || code === 40) {\n      return factoryTitle(\n        effects,\n        factoryWhitespace(effects, end),\n        nok,\n        'resourceTitle',\n        'resourceTitleMarker',\n        'resourceTitleString'\n      )(code)\n    }\n\n    return end(code)\n  }\n  /** @type {State} */\n\n  function end(code) {\n    if (code === 41) {\n      effects.enter('resourceMarker')\n      effects.consume(code)\n      effects.exit('resourceMarker')\n      effects.exit('resource')\n      return ok\n    }\n\n    return nok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeFullReference(effects, ok, nok) {\n  const self = this\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    return factoryLabel.call(\n      self,\n      effects,\n      afterLabel,\n      nok,\n      'reference',\n      'referenceMarker',\n      'referenceString'\n    )(code)\n  }\n  /** @type {State} */\n\n  function afterLabel(code) {\n    return self.parser.defined.includes(\n      normalizeIdentifier(\n        self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n      )\n    )\n      ? ok(code)\n      : nok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('reference')\n    effects.enter('referenceMarker')\n    effects.consume(code)\n    effects.exit('referenceMarker')\n    return open\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (code === 93) {\n      effects.enter('referenceMarker')\n      effects.consume(code)\n      effects.exit('referenceMarker')\n      effects.exit('reference')\n      return ok\n    }\n\n    return nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartImage = {\n  name: 'labelStartImage',\n  tokenize: tokenizeLabelStartImage,\n  resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n  const self = this\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('labelImage')\n    effects.enter('labelImageMarker')\n    effects.consume(code)\n    effects.exit('labelImageMarker')\n    return open\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (code === 91) {\n      effects.enter('labelMarker')\n      effects.consume(code)\n      effects.exit('labelMarker')\n      effects.exit('labelImage')\n      return after\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function after(code) {\n    /* To do: remove in the future once we’ve switched from\n     * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n     * which doesn’t need this */\n\n    /* Hidden footnotes hook */\n\n    /* c8 ignore next 3 */\n    return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n      ? nok(code)\n      : ok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n  markdownLineEndingOrSpace,\n  unicodePunctuation,\n  unicodeWhitespace\n} from 'micromark-util-character'\n\n/**\n * Classify whether a character code represents whitespace, punctuation, or\n * something else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * Note that eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * @returns {number|undefined}\n */\nexport function classifyCharacter(code) {\n  if (\n    code === null ||\n    markdownLineEndingOrSpace(code) ||\n    unicodeWhitespace(code)\n  ) {\n    return 1\n  }\n\n  if (unicodePunctuation(code)) {\n    return 2\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Point} Point\n */\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const attention = {\n  name: 'attention',\n  tokenize: tokenizeAttention,\n  resolveAll: resolveAllAttention\n}\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n\nfunction resolveAllAttention(events, context) {\n  let index = -1\n  /** @type {number} */\n\n  let open\n  /** @type {Token} */\n\n  let group\n  /** @type {Token} */\n\n  let text\n  /** @type {Token} */\n\n  let openingSequence\n  /** @type {Token} */\n\n  let closingSequence\n  /** @type {number} */\n\n  let use\n  /** @type {Event[]} */\n\n  let nextEvents\n  /** @type {number} */\n\n  let offset // Walk through all events.\n  //\n  // Note: performance of this is fine on an mb of normal markdown, but it’s\n  // a bottleneck for malicious stuff.\n\n  while (++index < events.length) {\n    // Find a token that can close.\n    if (\n      events[index][0] === 'enter' &&\n      events[index][1].type === 'attentionSequence' &&\n      events[index][1]._close\n    ) {\n      open = index // Now walk back to find an opener.\n\n      while (open--) {\n        // Find a token that can open the closer.\n        if (\n          events[open][0] === 'exit' &&\n          events[open][1].type === 'attentionSequence' &&\n          events[open][1]._open && // If the markers are the same:\n          context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n            context.sliceSerialize(events[index][1]).charCodeAt(0)\n        ) {\n          // If the opening can close or the closing can open,\n          // and the close size *is not* a multiple of three,\n          // but the sum of the opening and closing size *is* multiple of three,\n          // then don’t match.\n          if (\n            (events[open][1]._close || events[index][1]._open) &&\n            (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n            !(\n              (events[open][1].end.offset -\n                events[open][1].start.offset +\n                events[index][1].end.offset -\n                events[index][1].start.offset) %\n              3\n            )\n          ) {\n            continue\n          } // Number of markers to use from the sequence.\n\n          use =\n            events[open][1].end.offset - events[open][1].start.offset > 1 &&\n            events[index][1].end.offset - events[index][1].start.offset > 1\n              ? 2\n              : 1\n          const start = Object.assign({}, events[open][1].end)\n          const end = Object.assign({}, events[index][1].start)\n          movePoint(start, -use)\n          movePoint(end, use)\n          openingSequence = {\n            type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n            start,\n            end: Object.assign({}, events[open][1].end)\n          }\n          closingSequence = {\n            type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n            start: Object.assign({}, events[index][1].start),\n            end\n          }\n          text = {\n            type: use > 1 ? 'strongText' : 'emphasisText',\n            start: Object.assign({}, events[open][1].end),\n            end: Object.assign({}, events[index][1].start)\n          }\n          group = {\n            type: use > 1 ? 'strong' : 'emphasis',\n            start: Object.assign({}, openingSequence.start),\n            end: Object.assign({}, closingSequence.end)\n          }\n          events[open][1].end = Object.assign({}, openingSequence.start)\n          events[index][1].start = Object.assign({}, closingSequence.end)\n          nextEvents = [] // If there are more markers in the opening, add them before.\n\n          if (events[open][1].end.offset - events[open][1].start.offset) {\n            nextEvents = push(nextEvents, [\n              ['enter', events[open][1], context],\n              ['exit', events[open][1], context]\n            ])\n          } // Opening.\n\n          nextEvents = push(nextEvents, [\n            ['enter', group, context],\n            ['enter', openingSequence, context],\n            ['exit', openingSequence, context],\n            ['enter', text, context]\n          ]) // Between.\n\n          nextEvents = push(\n            nextEvents,\n            resolveAll(\n              context.parser.constructs.insideSpan.null,\n              events.slice(open + 1, index),\n              context\n            )\n          ) // Closing.\n\n          nextEvents = push(nextEvents, [\n            ['exit', text, context],\n            ['enter', closingSequence, context],\n            ['exit', closingSequence, context],\n            ['exit', group, context]\n          ]) // If there are more markers in the closing, add them after.\n\n          if (events[index][1].end.offset - events[index][1].start.offset) {\n            offset = 2\n            nextEvents = push(nextEvents, [\n              ['enter', events[index][1], context],\n              ['exit', events[index][1], context]\n            ])\n          } else {\n            offset = 0\n          }\n\n          splice(events, open - 1, index - open + 3, nextEvents)\n          index = open + nextEvents.length - offset - 2\n          break\n        }\n      }\n    }\n  } // Remove remaining sequences.\n\n  index = -1\n\n  while (++index < events.length) {\n    if (events[index][1].type === 'attentionSequence') {\n      events[index][1].type = 'data'\n    }\n  }\n\n  return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAttention(effects, ok) {\n  const attentionMarkers = this.parser.constructs.attentionMarkers.null\n  const previous = this.previous\n  const before = classifyCharacter(previous)\n  /** @type {NonNullable<Code>} */\n\n  let marker\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('attentionSequence')\n    marker = code\n    return sequence(code)\n  }\n  /** @type {State} */\n\n  function sequence(code) {\n    if (code === marker) {\n      effects.consume(code)\n      return sequence\n    }\n\n    const token = effects.exit('attentionSequence')\n    const after = classifyCharacter(code)\n    const open =\n      !after || (after === 2 && before) || attentionMarkers.includes(code)\n    const close =\n      !before || (before === 2 && after) || attentionMarkers.includes(previous)\n    token._open = Boolean(marker === 42 ? open : open && (before || !close))\n    token._close = Boolean(marker === 42 ? close : close && (after || !open))\n    return ok(code)\n  }\n}\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\n\nfunction movePoint(point, offset) {\n  point.column += offset\n  point.offset += offset\n  point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n  asciiAlpha,\n  asciiAlphanumeric,\n  asciiAtext,\n  asciiControl\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const autolink = {\n  name: 'autolink',\n  tokenize: tokenizeAutolink\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAutolink(effects, ok, nok) {\n  let size = 1\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('autolink')\n    effects.enter('autolinkMarker')\n    effects.consume(code)\n    effects.exit('autolinkMarker')\n    effects.enter('autolinkProtocol')\n    return open\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      return schemeOrEmailAtext\n    }\n\n    return asciiAtext(code) ? emailAtext(code) : nok(code)\n  }\n  /** @type {State} */\n\n  function schemeOrEmailAtext(code) {\n    return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n      ? schemeInsideOrEmailAtext(code)\n      : emailAtext(code)\n  }\n  /** @type {State} */\n\n  function schemeInsideOrEmailAtext(code) {\n    if (code === 58) {\n      effects.consume(code)\n      return urlInside\n    }\n\n    if (\n      (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n      size++ < 32\n    ) {\n      effects.consume(code)\n      return schemeInsideOrEmailAtext\n    }\n\n    return emailAtext(code)\n  }\n  /** @type {State} */\n\n  function urlInside(code) {\n    if (code === 62) {\n      effects.exit('autolinkProtocol')\n      return end(code)\n    }\n\n    if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n      return nok(code)\n    }\n\n    effects.consume(code)\n    return urlInside\n  }\n  /** @type {State} */\n\n  function emailAtext(code) {\n    if (code === 64) {\n      effects.consume(code)\n      size = 0\n      return emailAtSignOrDot\n    }\n\n    if (asciiAtext(code)) {\n      effects.consume(code)\n      return emailAtext\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function emailAtSignOrDot(code) {\n    return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n  }\n  /** @type {State} */\n\n  function emailLabel(code) {\n    if (code === 46) {\n      effects.consume(code)\n      size = 0\n      return emailAtSignOrDot\n    }\n\n    if (code === 62) {\n      // Exit, then change the type.\n      effects.exit('autolinkProtocol').type = 'autolinkEmail'\n      return end(code)\n    }\n\n    return emailValue(code)\n  }\n  /** @type {State} */\n\n  function emailValue(code) {\n    if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n      effects.consume(code)\n      return code === 45 ? emailValue : emailLabel\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function end(code) {\n    effects.enter('autolinkMarker')\n    effects.consume(code)\n    effects.exit('autolinkMarker')\n    effects.exit('autolink')\n    return ok\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n  asciiAlpha,\n  asciiAlphanumeric,\n  markdownLineEnding,\n  markdownLineEndingOrSpace,\n  markdownSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const htmlText = {\n  name: 'htmlText',\n  tokenize: tokenizeHtmlText\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n  const self = this\n  /** @type {NonNullable<Code>|undefined} */\n\n  let marker\n  /** @type {string} */\n\n  let buffer\n  /** @type {number} */\n\n  let index\n  /** @type {State} */\n\n  let returnState\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('htmlText')\n    effects.enter('htmlTextData')\n    effects.consume(code)\n    return open\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (code === 33) {\n      effects.consume(code)\n      return declarationOpen\n    }\n\n    if (code === 47) {\n      effects.consume(code)\n      return tagCloseStart\n    }\n\n    if (code === 63) {\n      effects.consume(code)\n      return instruction\n    }\n\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      return tagOpen\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function declarationOpen(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return commentOpen\n    }\n\n    if (code === 91) {\n      effects.consume(code)\n      buffer = 'CDATA['\n      index = 0\n      return cdataOpen\n    }\n\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      return declaration\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function commentOpen(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return commentStart\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function commentStart(code) {\n    if (code === null || code === 62) {\n      return nok(code)\n    }\n\n    if (code === 45) {\n      effects.consume(code)\n      return commentStartDash\n    }\n\n    return comment(code)\n  }\n  /** @type {State} */\n\n  function commentStartDash(code) {\n    if (code === null || code === 62) {\n      return nok(code)\n    }\n\n    return comment(code)\n  }\n  /** @type {State} */\n\n  function comment(code) {\n    if (code === null) {\n      return nok(code)\n    }\n\n    if (code === 45) {\n      effects.consume(code)\n      return commentClose\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = comment\n      return atLineEnding(code)\n    }\n\n    effects.consume(code)\n    return comment\n  }\n  /** @type {State} */\n\n  function commentClose(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return end\n    }\n\n    return comment(code)\n  }\n  /** @type {State} */\n\n  function cdataOpen(code) {\n    if (code === buffer.charCodeAt(index++)) {\n      effects.consume(code)\n      return index === buffer.length ? cdata : cdataOpen\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function cdata(code) {\n    if (code === null) {\n      return nok(code)\n    }\n\n    if (code === 93) {\n      effects.consume(code)\n      return cdataClose\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = cdata\n      return atLineEnding(code)\n    }\n\n    effects.consume(code)\n    return cdata\n  }\n  /** @type {State} */\n\n  function cdataClose(code) {\n    if (code === 93) {\n      effects.consume(code)\n      return cdataEnd\n    }\n\n    return cdata(code)\n  }\n  /** @type {State} */\n\n  function cdataEnd(code) {\n    if (code === 62) {\n      return end(code)\n    }\n\n    if (code === 93) {\n      effects.consume(code)\n      return cdataEnd\n    }\n\n    return cdata(code)\n  }\n  /** @type {State} */\n\n  function declaration(code) {\n    if (code === null || code === 62) {\n      return end(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = declaration\n      return atLineEnding(code)\n    }\n\n    effects.consume(code)\n    return declaration\n  }\n  /** @type {State} */\n\n  function instruction(code) {\n    if (code === null) {\n      return nok(code)\n    }\n\n    if (code === 63) {\n      effects.consume(code)\n      return instructionClose\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = instruction\n      return atLineEnding(code)\n    }\n\n    effects.consume(code)\n    return instruction\n  }\n  /** @type {State} */\n\n  function instructionClose(code) {\n    return code === 62 ? end(code) : instruction(code)\n  }\n  /** @type {State} */\n\n  function tagCloseStart(code) {\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      return tagClose\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function tagClose(code) {\n    if (code === 45 || asciiAlphanumeric(code)) {\n      effects.consume(code)\n      return tagClose\n    }\n\n    return tagCloseBetween(code)\n  }\n  /** @type {State} */\n\n  function tagCloseBetween(code) {\n    if (markdownLineEnding(code)) {\n      returnState = tagCloseBetween\n      return atLineEnding(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return tagCloseBetween\n    }\n\n    return end(code)\n  }\n  /** @type {State} */\n\n  function tagOpen(code) {\n    if (code === 45 || asciiAlphanumeric(code)) {\n      effects.consume(code)\n      return tagOpen\n    }\n\n    if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n      return tagOpenBetween(code)\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function tagOpenBetween(code) {\n    if (code === 47) {\n      effects.consume(code)\n      return end\n    }\n\n    if (code === 58 || code === 95 || asciiAlpha(code)) {\n      effects.consume(code)\n      return tagOpenAttributeName\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenBetween\n      return atLineEnding(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return tagOpenBetween\n    }\n\n    return end(code)\n  }\n  /** @type {State} */\n\n  function tagOpenAttributeName(code) {\n    if (\n      code === 45 ||\n      code === 46 ||\n      code === 58 ||\n      code === 95 ||\n      asciiAlphanumeric(code)\n    ) {\n      effects.consume(code)\n      return tagOpenAttributeName\n    }\n\n    return tagOpenAttributeNameAfter(code)\n  }\n  /** @type {State} */\n\n  function tagOpenAttributeNameAfter(code) {\n    if (code === 61) {\n      effects.consume(code)\n      return tagOpenAttributeValueBefore\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenAttributeNameAfter\n      return atLineEnding(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return tagOpenAttributeNameAfter\n    }\n\n    return tagOpenBetween(code)\n  }\n  /** @type {State} */\n\n  function tagOpenAttributeValueBefore(code) {\n    if (\n      code === null ||\n      code === 60 ||\n      code === 61 ||\n      code === 62 ||\n      code === 96\n    ) {\n      return nok(code)\n    }\n\n    if (code === 34 || code === 39) {\n      effects.consume(code)\n      marker = code\n      return tagOpenAttributeValueQuoted\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenAttributeValueBefore\n      return atLineEnding(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return tagOpenAttributeValueBefore\n    }\n\n    effects.consume(code)\n    marker = undefined\n    return tagOpenAttributeValueUnquoted\n  }\n  /** @type {State} */\n\n  function tagOpenAttributeValueQuoted(code) {\n    if (code === marker) {\n      effects.consume(code)\n      return tagOpenAttributeValueQuotedAfter\n    }\n\n    if (code === null) {\n      return nok(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenAttributeValueQuoted\n      return atLineEnding(code)\n    }\n\n    effects.consume(code)\n    return tagOpenAttributeValueQuoted\n  }\n  /** @type {State} */\n\n  function tagOpenAttributeValueQuotedAfter(code) {\n    if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n      return tagOpenBetween(code)\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function tagOpenAttributeValueUnquoted(code) {\n    if (\n      code === null ||\n      code === 34 ||\n      code === 39 ||\n      code === 60 ||\n      code === 61 ||\n      code === 96\n    ) {\n      return nok(code)\n    }\n\n    if (code === 62 || markdownLineEndingOrSpace(code)) {\n      return tagOpenBetween(code)\n    }\n\n    effects.consume(code)\n    return tagOpenAttributeValueUnquoted\n  } // We can’t have blank lines in content, so no need to worry about empty\n  // tokens.\n\n  /** @type {State} */\n\n  function atLineEnding(code) {\n    effects.exit('htmlTextData')\n    effects.enter('lineEnding')\n    effects.consume(code)\n    effects.exit('lineEnding')\n    return factorySpace(\n      effects,\n      afterPrefix,\n      'linePrefix',\n      self.parser.constructs.disable.null.includes('codeIndented')\n        ? undefined\n        : 4\n    )\n  }\n  /** @type {State} */\n\n  function afterPrefix(code) {\n    effects.enter('htmlTextData')\n    return returnState(code)\n  }\n  /** @type {State} */\n\n  function end(code) {\n    if (code === 62) {\n      effects.consume(code)\n      effects.exit('htmlTextData')\n      effects.exit('htmlText')\n      return ok\n    }\n\n    return nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartLink = {\n  name: 'labelStartLink',\n  tokenize: tokenizeLabelStartLink,\n  resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n  const self = this\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('labelLink')\n    effects.enter('labelMarker')\n    effects.consume(code)\n    effects.exit('labelMarker')\n    effects.exit('labelLink')\n    return after\n  }\n  /** @type {State} */\n\n  function after(code) {\n    /* To do: remove in the future once we’ve switched from\n     * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n     * which doesn’t need this */\n\n    /* Hidden footnotes hook. */\n\n    /* c8 ignore next 3 */\n    return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n      ? nok(code)\n      : ok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const hardBreakEscape = {\n  name: 'hardBreakEscape',\n  tokenize: tokenizeHardBreakEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('hardBreakEscape')\n    effects.enter('escapeMarker')\n    effects.consume(code)\n    return open\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (markdownLineEnding(code)) {\n      effects.exit('escapeMarker')\n      effects.exit('hardBreakEscape')\n      return ok(code)\n    }\n\n    return nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeText = {\n  name: 'codeText',\n  tokenize: tokenizeCodeText,\n  resolve: resolveCodeText,\n  previous\n}\n/** @type {Resolver} */\n\nfunction resolveCodeText(events) {\n  let tailExitIndex = events.length - 4\n  let headEnterIndex = 3\n  /** @type {number} */\n\n  let index\n  /** @type {number|undefined} */\n\n  let enter // If we start and end with an EOL or a space.\n\n  if (\n    (events[headEnterIndex][1].type === 'lineEnding' ||\n      events[headEnterIndex][1].type === 'space') &&\n    (events[tailExitIndex][1].type === 'lineEnding' ||\n      events[tailExitIndex][1].type === 'space')\n  ) {\n    index = headEnterIndex // And we have data.\n\n    while (++index < tailExitIndex) {\n      if (events[index][1].type === 'codeTextData') {\n        // Then we have padding.\n        events[headEnterIndex][1].type = 'codeTextPadding'\n        events[tailExitIndex][1].type = 'codeTextPadding'\n        headEnterIndex += 2\n        tailExitIndex -= 2\n        break\n      }\n    }\n  } // Merge adjacent spaces and data.\n\n  index = headEnterIndex - 1\n  tailExitIndex++\n\n  while (++index <= tailExitIndex) {\n    if (enter === undefined) {\n      if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n        enter = index\n      }\n    } else if (\n      index === tailExitIndex ||\n      events[index][1].type === 'lineEnding'\n    ) {\n      events[enter][1].type = 'codeTextData'\n\n      if (index !== enter + 2) {\n        events[enter][1].end = events[index - 1][1].end\n        events.splice(enter + 2, index - enter - 2)\n        tailExitIndex -= index - enter - 2\n        index = enter + 2\n      }\n\n      enter = undefined\n    }\n  }\n\n  return events\n}\n/** @type {Previous} */\n\nfunction previous(code) {\n  // If there is a previous code, there will always be a tail.\n  return (\n    code !== 96 ||\n    this.events[this.events.length - 1][1].type === 'characterEscape'\n  )\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeText(effects, ok, nok) {\n  const self = this\n  let sizeOpen = 0\n  /** @type {number} */\n\n  let size\n  /** @type {Token} */\n\n  let token\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('codeText')\n    effects.enter('codeTextSequence')\n    return openingSequence(code)\n  }\n  /** @type {State} */\n\n  function openingSequence(code) {\n    if (code === 96) {\n      effects.consume(code)\n      sizeOpen++\n      return openingSequence\n    }\n\n    effects.exit('codeTextSequence')\n    return gap(code)\n  }\n  /** @type {State} */\n\n  function gap(code) {\n    // EOF.\n    if (code === null) {\n      return nok(code)\n    } // Closing fence?\n    // Could also be data.\n\n    if (code === 96) {\n      token = effects.enter('codeTextSequence')\n      size = 0\n      return closingSequence(code)\n    } // Tabs don’t work, and virtual spaces don’t make sense.\n\n    if (code === 32) {\n      effects.enter('space')\n      effects.consume(code)\n      effects.exit('space')\n      return gap\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return gap\n    } // Data.\n\n    effects.enter('codeTextData')\n    return data(code)\n  } // In code.\n\n  /** @type {State} */\n\n  function data(code) {\n    if (\n      code === null ||\n      code === 32 ||\n      code === 96 ||\n      markdownLineEnding(code)\n    ) {\n      effects.exit('codeTextData')\n      return gap(code)\n    }\n\n    effects.consume(code)\n    return data\n  } // Closing fence.\n\n  /** @type {State} */\n\n  function closingSequence(code) {\n    // More.\n    if (code === 96) {\n      effects.consume(code)\n      size++\n      return closingSequence\n    } // Done!\n\n    if (size === sizeOpen) {\n      effects.exit('codeTextSequence')\n      effects.exit('codeText')\n      return ok(code)\n    } // More or less accents: mark as data.\n\n    token.type = 'codeTextData'\n    return data(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\nimport {\n  attention,\n  autolink,\n  blockQuote,\n  characterEscape,\n  characterReference,\n  codeFenced,\n  codeIndented,\n  codeText,\n  definition,\n  hardBreakEscape,\n  headingAtx,\n  htmlFlow,\n  htmlText,\n  labelEnd,\n  labelStartImage,\n  labelStartLink,\n  lineEnding,\n  list,\n  setextUnderline,\n  thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n/** @type {Extension['document']} */\n\nexport const document = {\n  [42]: list,\n  [43]: list,\n  [45]: list,\n  [48]: list,\n  [49]: list,\n  [50]: list,\n  [51]: list,\n  [52]: list,\n  [53]: list,\n  [54]: list,\n  [55]: list,\n  [56]: list,\n  [57]: list,\n  [62]: blockQuote\n}\n/** @type {Extension['contentInitial']} */\n\nexport const contentInitial = {\n  [91]: definition\n}\n/** @type {Extension['flowInitial']} */\n\nexport const flowInitial = {\n  [-2]: codeIndented,\n  [-1]: codeIndented,\n  [32]: codeIndented\n}\n/** @type {Extension['flow']} */\n\nexport const flow = {\n  [35]: headingAtx,\n  [42]: thematicBreak,\n  [45]: [setextUnderline, thematicBreak],\n  [60]: htmlFlow,\n  [61]: setextUnderline,\n  [95]: thematicBreak,\n  [96]: codeFenced,\n  [126]: codeFenced\n}\n/** @type {Extension['string']} */\n\nexport const string = {\n  [38]: characterReference,\n  [92]: characterEscape\n}\n/** @type {Extension['text']} */\n\nexport const text = {\n  [-5]: lineEnding,\n  [-4]: lineEnding,\n  [-3]: lineEnding,\n  [33]: labelStartImage,\n  [38]: characterReference,\n  [42]: attention,\n  [60]: [autolink, htmlText],\n  [91]: labelStartLink,\n  [92]: [hardBreakEscape, characterEscape],\n  [93]: labelEnd,\n  [95]: attention,\n  [96]: codeText\n}\n/** @type {Extension['insideSpan']} */\n\nexport const insideSpan = {\n  null: [attention, resolveText]\n}\n/** @type {Extension['attentionMarkers']} */\n\nexport const attentionMarkers = {\n  null: [42, 95]\n}\n/** @type {Extension['disable']} */\n\nexport const disable = {\n  null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {boolean} [end=false]\n * @returns {Array<Chunk>}\n */\nconst search = /[\\0\\t\\n\\r]/g\n/**\n * @returns {Preprocessor}\n */\n\nexport function preprocess() {\n  let column = 1\n  let buffer = ''\n  /** @type {boolean|undefined} */\n\n  let start = true\n  /** @type {boolean|undefined} */\n\n  let atCarriageReturn\n  return preprocessor\n  /** @type {Preprocessor} */\n\n  function preprocessor(value, encoding, end) {\n    /** @type {Array<Chunk>} */\n    const chunks = []\n    /** @type {RegExpMatchArray|null} */\n\n    let match\n    /** @type {number} */\n\n    let next\n    /** @type {number} */\n\n    let startPosition\n    /** @type {number} */\n\n    let endPosition\n    /** @type {Code} */\n\n    let code // @ts-expect-error `Buffer` does allow an encoding.\n\n    value = buffer + value.toString(encoding)\n    startPosition = 0\n    buffer = ''\n\n    if (start) {\n      if (value.charCodeAt(0) === 65279) {\n        startPosition++\n      }\n\n      start = undefined\n    }\n\n    while (startPosition < value.length) {\n      search.lastIndex = startPosition\n      match = search.exec(value)\n      endPosition =\n        match && match.index !== undefined ? match.index : value.length\n      code = value.charCodeAt(endPosition)\n\n      if (!match) {\n        buffer = value.slice(startPosition)\n        break\n      }\n\n      if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n        chunks.push(-3)\n        atCarriageReturn = undefined\n      } else {\n        if (atCarriageReturn) {\n          chunks.push(-5)\n          atCarriageReturn = undefined\n        }\n\n        if (startPosition < endPosition) {\n          chunks.push(value.slice(startPosition, endPosition))\n          column += endPosition - startPosition\n        }\n\n        switch (code) {\n          case 0: {\n            chunks.push(65533)\n            column++\n            break\n          }\n\n          case 9: {\n            next = Math.ceil(column / 4) * 4\n            chunks.push(-2)\n\n            while (column++ < next) chunks.push(-1)\n\n            break\n          }\n\n          case 10: {\n            chunks.push(-4)\n            column = 1\n            break\n          }\n\n          default: {\n            atCarriageReturn = true\n            column = 1\n          }\n        }\n      }\n\n      startPosition = endPosition + 1\n    }\n\n    if (end) {\n      if (atCarriageReturn) chunks.push(-5)\n      if (buffer) chunks.push(buffer)\n      chunks.push(null)\n    }\n\n    return chunks\n  }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * @param {string} value\n *   Value to decode.\n * @param {number} base\n *   Numeric base.\n * @returns {string}\n */\nexport function decodeNumericCharacterReference(value, base) {\n  const code = Number.parseInt(value, base)\n\n  if (\n    // C0 except for HT, LF, FF, CR, space\n    code < 9 ||\n    code === 11 ||\n    (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n    (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n    (code > 55295 && code < 57344) || // Noncharacters.\n    (code > 64975 && code < 65008) ||\n    (code & 65535) === 65535 ||\n    (code & 65535) === 65534 || // Out of range\n    code > 1114111\n  ) {\n    return '\\uFFFD'\n  }\n\n  return String.fromCharCode(code)\n}\n","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n  /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n/**\n * Utility to decode markdown strings (which occur in places such as fenced\n * code info strings, destinations, labels, and titles).\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * @returns {string}\n */\n\nexport function decodeString(value) {\n  return value.replace(characterEscapeOrReference, decode)\n}\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\n\nfunction decode($0, $1, $2) {\n  if ($1) {\n    // Escape.\n    return $1\n  } // Reference.\n\n  const head = $2.charCodeAt(0)\n\n  if (head === 35) {\n    const head = $2.charCodeAt(1)\n    const hex = head === 120 || head === 88\n    return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n  }\n\n  return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {Root|Content} Node\n * @typedef {Extract<Node, UnistParent>} Parent\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n *\n * @typedef {UnistParent & {type: 'fragment', children: Array<PhrasingContent>}} Fragment\n */\n\n/**\n * @typedef _CompileDataFields\n * @property {boolean|undefined} expectingFirstListItemValue\n * @property {boolean|undefined} flowCodeInside\n * @property {boolean|undefined} setextHeadingSlurpLineEnding\n * @property {boolean|undefined} atHardBreak\n * @property {'collapsed'|'full'} referenceType\n * @property {boolean|undefined} inReference\n * @property {'characterReferenceMarkerHexadecimal'|'characterReferenceMarkerNumeric'} characterReferenceType\n *\n * @typedef {Record<string, unknown> & Partial<_CompileDataFields>} CompileData\n *\n * @typedef {(tree: Root) => Root|void} Transform\n * @typedef {(this: CompileContext, token: Token) => void} Handle\n * @typedef {Record<string, Handle>} Handles\n *   Token types mapping to handles\n * @typedef {Record<string, Record<string, unknown>|Array<unknown>> & {canContainEols: Array<string>, transforms: Array<Transform>, enter: Handles, exit: Handles}} NormalizedExtension\n * @typedef {Partial<NormalizedExtension>} Extension\n *   An mdast extension changes how markdown tokens are turned into mdast.\n *\n * @typedef {(this: Omit<CompileContext, 'sliceSerialize'>, left: Token|undefined, right: Token) => void} OnEnterError\n * @typedef {(this: Omit<CompileContext, 'sliceSerialize'>, left: Token, right: Token) => void} OnExitError\n *\n * @typedef CompileContext\n *   mdast compiler context\n * @property {Array<Node | Fragment>} stack\n * @property {Array<[Token, OnEnterError|undefined]>} tokenStack\n * @property {(key: string, value?: unknown) => void} setData\n *   Set data into the key-value store.\n * @property {<K extends string>(key: K) => CompileData[K]} getData\n *   Get data from the key-value store.\n * @property {(this: CompileContext) => void} buffer\n *   Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n *   Stop capturing and access the output data.\n * @property {<N extends Node>(this: CompileContext, node: N, token: Token, onError?: OnEnterError) => N} enter\n *   Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n *   Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n *   Get the string value of a token.\n * @property {NormalizedExtension} config\n *   Configuration.\n *\n * @typedef {{mdastExtensions?: Array<Extension|Array<Extension>>}} FromMarkdownOptions\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n */\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n/**\n * @param value Markdown to parse (`string` or `Buffer`).\n * @param [encoding] Character encoding to understand `value` as when it’s a `Buffer` (`string`, default: `'utf8'`).\n * @param [options] Configuration\n */\n\nexport const fromMarkdown =\n  /**\n   * @type {(\n   *   ((value: Value, encoding: Encoding, options?: Options) => Root) &\n   *   ((value: Value, options?: Options) => Root)\n   * )}\n   */\n\n  /**\n   * @param {Value} value\n   * @param {Encoding} [encoding]\n   * @param {Options} [options]\n   * @returns {Root}\n   */\n  function (value, encoding, options) {\n    if (typeof encoding !== 'string') {\n      options = encoding\n      encoding = undefined\n    }\n\n    return compiler(options)(\n      postprocess(\n        parse(options).document().write(preprocess()(value, encoding, true))\n      )\n    )\n  }\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options} [options]\n */\n\nfunction compiler(options = {}) {\n  /** @type {NormalizedExtension} */\n  // @ts-expect-error: our base has all required fields, so the result will too.\n  const config = configure(\n    {\n      transforms: [],\n      canContainEols: [\n        'emphasis',\n        'fragment',\n        'heading',\n        'paragraph',\n        'strong'\n      ],\n      enter: {\n        autolink: opener(link),\n        autolinkProtocol: onenterdata,\n        autolinkEmail: onenterdata,\n        atxHeading: opener(heading),\n        blockQuote: opener(blockQuote),\n        characterEscape: onenterdata,\n        characterReference: onenterdata,\n        codeFenced: opener(codeFlow),\n        codeFencedFenceInfo: buffer,\n        codeFencedFenceMeta: buffer,\n        codeIndented: opener(codeFlow, buffer),\n        codeText: opener(codeText, buffer),\n        codeTextData: onenterdata,\n        data: onenterdata,\n        codeFlowValue: onenterdata,\n        definition: opener(definition),\n        definitionDestinationString: buffer,\n        definitionLabelString: buffer,\n        definitionTitleString: buffer,\n        emphasis: opener(emphasis),\n        hardBreakEscape: opener(hardBreak),\n        hardBreakTrailing: opener(hardBreak),\n        htmlFlow: opener(html, buffer),\n        htmlFlowData: onenterdata,\n        htmlText: opener(html, buffer),\n        htmlTextData: onenterdata,\n        image: opener(image),\n        label: buffer,\n        link: opener(link),\n        listItem: opener(listItem),\n        listItemValue: onenterlistitemvalue,\n        listOrdered: opener(list, onenterlistordered),\n        listUnordered: opener(list),\n        paragraph: opener(paragraph),\n        reference: onenterreference,\n        referenceString: buffer,\n        resourceDestinationString: buffer,\n        resourceTitleString: buffer,\n        setextHeading: opener(heading),\n        strong: opener(strong),\n        thematicBreak: opener(thematicBreak)\n      },\n      exit: {\n        atxHeading: closer(),\n        atxHeadingSequence: onexitatxheadingsequence,\n        autolink: closer(),\n        autolinkEmail: onexitautolinkemail,\n        autolinkProtocol: onexitautolinkprotocol,\n        blockQuote: closer(),\n        characterEscapeValue: onexitdata,\n        characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n        characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n        characterReferenceValue: onexitcharacterreferencevalue,\n        codeFenced: closer(onexitcodefenced),\n        codeFencedFence: onexitcodefencedfence,\n        codeFencedFenceInfo: onexitcodefencedfenceinfo,\n        codeFencedFenceMeta: onexitcodefencedfencemeta,\n        codeFlowValue: onexitdata,\n        codeIndented: closer(onexitcodeindented),\n        codeText: closer(onexitcodetext),\n        codeTextData: onexitdata,\n        data: onexitdata,\n        definition: closer(),\n        definitionDestinationString: onexitdefinitiondestinationstring,\n        definitionLabelString: onexitdefinitionlabelstring,\n        definitionTitleString: onexitdefinitiontitlestring,\n        emphasis: closer(),\n        hardBreakEscape: closer(onexithardbreak),\n        hardBreakTrailing: closer(onexithardbreak),\n        htmlFlow: closer(onexithtmlflow),\n        htmlFlowData: onexitdata,\n        htmlText: closer(onexithtmltext),\n        htmlTextData: onexitdata,\n        image: closer(onexitimage),\n        label: onexitlabel,\n        labelText: onexitlabeltext,\n        lineEnding: onexitlineending,\n        link: closer(onexitlink),\n        listItem: closer(),\n        listOrdered: closer(),\n        listUnordered: closer(),\n        paragraph: closer(),\n        referenceString: onexitreferencestring,\n        resourceDestinationString: onexitresourcedestinationstring,\n        resourceTitleString: onexitresourcetitlestring,\n        resource: onexitresource,\n        setextHeading: closer(onexitsetextheading),\n        setextHeadingLineSequence: onexitsetextheadinglinesequence,\n        setextHeadingText: onexitsetextheadingtext,\n        strong: closer(),\n        thematicBreak: closer()\n      }\n    },\n    options.mdastExtensions || []\n  )\n  /** @type {CompileData} */\n\n  const data = {}\n  return compile\n  /**\n   * @param {Array<Event>} events\n   * @returns {Root}\n   */\n\n  function compile(events) {\n    /** @type {Root} */\n    let tree = {\n      type: 'root',\n      children: []\n    }\n    /** @type {CompileContext['stack']} */\n\n    const stack = [tree]\n    /** @type {CompileContext['tokenStack']} */\n\n    const tokenStack = []\n    /** @type {Array<number>} */\n\n    const listStack = []\n    /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n\n    const context = {\n      stack,\n      tokenStack,\n      config,\n      enter,\n      exit,\n      buffer,\n      resume,\n      setData,\n      getData\n    }\n    let index = -1\n\n    while (++index < events.length) {\n      // We preprocess lists to add `listItem` tokens, and to infer whether\n      // items the list itself are spread out.\n      if (\n        events[index][1].type === 'listOrdered' ||\n        events[index][1].type === 'listUnordered'\n      ) {\n        if (events[index][0] === 'enter') {\n          listStack.push(index)\n        } else {\n          const tail = listStack.pop()\n          index = prepareList(events, tail, index)\n        }\n      }\n    }\n\n    index = -1\n\n    while (++index < events.length) {\n      const handler = config[events[index][0]]\n\n      if (own.call(handler, events[index][1].type)) {\n        handler[events[index][1].type].call(\n          Object.assign(\n            {\n              sliceSerialize: events[index][2].sliceSerialize\n            },\n            context\n          ),\n          events[index][1]\n        )\n      }\n    }\n\n    if (tokenStack.length > 0) {\n      const tail = tokenStack[tokenStack.length - 1]\n      const handler = tail[1] || defaultOnError\n      handler.call(context, undefined, tail[0])\n    } // Figure out `root` position.\n\n    tree.position = {\n      start: point(\n        events.length > 0\n          ? events[0][1].start\n          : {\n              line: 1,\n              column: 1,\n              offset: 0\n            }\n      ),\n      end: point(\n        events.length > 0\n          ? events[events.length - 2][1].end\n          : {\n              line: 1,\n              column: 1,\n              offset: 0\n            }\n      )\n    }\n    index = -1\n\n    while (++index < config.transforms.length) {\n      tree = config.transforms[index](tree) || tree\n    }\n\n    return tree\n  }\n  /**\n   * @param {Array<Event>} events\n   * @param {number} start\n   * @param {number} length\n   * @returns {number}\n   */\n\n  function prepareList(events, start, length) {\n    let index = start - 1\n    let containerBalance = -1\n    let listSpread = false\n    /** @type {Token|undefined} */\n\n    let listItem\n    /** @type {number|undefined} */\n\n    let lineIndex\n    /** @type {number|undefined} */\n\n    let firstBlankLineIndex\n    /** @type {boolean|undefined} */\n\n    let atMarker\n\n    while (++index <= length) {\n      const event = events[index]\n\n      if (\n        event[1].type === 'listUnordered' ||\n        event[1].type === 'listOrdered' ||\n        event[1].type === 'blockQuote'\n      ) {\n        if (event[0] === 'enter') {\n          containerBalance++\n        } else {\n          containerBalance--\n        }\n\n        atMarker = undefined\n      } else if (event[1].type === 'lineEndingBlank') {\n        if (event[0] === 'enter') {\n          if (\n            listItem &&\n            !atMarker &&\n            !containerBalance &&\n            !firstBlankLineIndex\n          ) {\n            firstBlankLineIndex = index\n          }\n\n          atMarker = undefined\n        }\n      } else if (\n        event[1].type === 'linePrefix' ||\n        event[1].type === 'listItemValue' ||\n        event[1].type === 'listItemMarker' ||\n        event[1].type === 'listItemPrefix' ||\n        event[1].type === 'listItemPrefixWhitespace'\n      ) {\n        // Empty.\n      } else {\n        atMarker = undefined\n      }\n\n      if (\n        (!containerBalance &&\n          event[0] === 'enter' &&\n          event[1].type === 'listItemPrefix') ||\n        (containerBalance === -1 &&\n          event[0] === 'exit' &&\n          (event[1].type === 'listUnordered' ||\n            event[1].type === 'listOrdered'))\n      ) {\n        if (listItem) {\n          let tailIndex = index\n          lineIndex = undefined\n\n          while (tailIndex--) {\n            const tailEvent = events[tailIndex]\n\n            if (\n              tailEvent[1].type === 'lineEnding' ||\n              tailEvent[1].type === 'lineEndingBlank'\n            ) {\n              if (tailEvent[0] === 'exit') continue\n\n              if (lineIndex) {\n                events[lineIndex][1].type = 'lineEndingBlank'\n                listSpread = true\n              }\n\n              tailEvent[1].type = 'lineEnding'\n              lineIndex = tailIndex\n            } else if (\n              tailEvent[1].type === 'linePrefix' ||\n              tailEvent[1].type === 'blockQuotePrefix' ||\n              tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n              tailEvent[1].type === 'blockQuoteMarker' ||\n              tailEvent[1].type === 'listItemIndent'\n            ) {\n              // Empty\n            } else {\n              break\n            }\n          }\n\n          if (\n            firstBlankLineIndex &&\n            (!lineIndex || firstBlankLineIndex < lineIndex)\n          ) {\n            // @ts-expect-error Patched.\n            listItem._spread = true\n          } // Fix position.\n\n          listItem.end = Object.assign(\n            {},\n            lineIndex ? events[lineIndex][1].start : event[1].end\n          )\n          events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n          index++\n          length++\n        } // Create a new list item.\n\n        if (event[1].type === 'listItemPrefix') {\n          listItem = {\n            type: 'listItem',\n            // @ts-expect-error Patched\n            _spread: false,\n            start: Object.assign({}, event[1].start)\n          } // @ts-expect-error: `listItem` is most definitely defined, TS...\n\n          events.splice(index, 0, ['enter', listItem, event[2]])\n          index++\n          length++\n          firstBlankLineIndex = undefined\n          atMarker = true\n        }\n      }\n    } // @ts-expect-error Patched.\n\n    events[start][1]._spread = listSpread\n    return length\n  }\n  /**\n   * @type {CompileContext['setData']}\n   * @param [value]\n   */\n\n  function setData(key, value) {\n    data[key] = value\n  }\n  /**\n   * @type {CompileContext['getData']}\n   * @template {string} K\n   * @param {K} key\n   * @returns {CompileData[K]}\n   */\n\n  function getData(key) {\n    return data[key]\n  }\n  /**\n   * @param {Point} d\n   * @returns {Point}\n   */\n\n  function point(d) {\n    return {\n      line: d.line,\n      column: d.column,\n      offset: d.offset\n    }\n  }\n  /**\n   * @param {(token: Token) => Node} create\n   * @param {Handle} [and]\n   * @returns {Handle}\n   */\n\n  function opener(create, and) {\n    return open\n    /**\n     * @this {CompileContext}\n     * @param {Token} token\n     * @returns {void}\n     */\n\n    function open(token) {\n      enter.call(this, create(token), token)\n      if (and) and.call(this, token)\n    }\n  }\n  /** @type {CompileContext['buffer']} */\n\n  function buffer() {\n    this.stack.push({\n      type: 'fragment',\n      children: []\n    })\n  }\n  /**\n   * @type {CompileContext['enter']}\n   * @template {Node} N\n   * @this {CompileContext}\n   * @param {N} node\n   * @param {Token} token\n   * @param {OnEnterError} [errorHandler]\n   * @returns {N}\n   */\n\n  function enter(node, token, errorHandler) {\n    const parent = this.stack[this.stack.length - 1]\n    // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n    parent.children.push(node)\n    this.stack.push(node)\n    this.tokenStack.push([token, errorHandler]) // @ts-expect-error: `end` will be patched later.\n\n    node.position = {\n      start: point(token.start)\n    }\n    return node\n  }\n  /**\n   * @param {Handle} [and]\n   * @returns {Handle}\n   */\n\n  function closer(and) {\n    return close\n    /**\n     * @this {CompileContext}\n     * @param {Token} token\n     * @returns {void}\n     */\n\n    function close(token) {\n      if (and) and.call(this, token)\n      exit.call(this, token)\n    }\n  }\n  /**\n   * @type {CompileContext['exit']}\n   * @this {CompileContext}\n   * @param {Token} token\n   * @param {OnExitError} [onExitError]\n   * @returns {Node}\n   */\n\n  function exit(token, onExitError) {\n    const node = this.stack.pop()\n    const open = this.tokenStack.pop()\n\n    if (!open) {\n      throw new Error(\n        'Cannot close `' +\n          token.type +\n          '` (' +\n          stringifyPosition({\n            start: token.start,\n            end: token.end\n          }) +\n          '): it’s not open'\n      )\n    } else if (open[0].type !== token.type) {\n      if (onExitError) {\n        onExitError.call(this, token, open[0])\n      } else {\n        const handler = open[1] || defaultOnError\n        handler.call(this, token, open[0])\n      }\n    }\n\n    node.position.end = point(token.end)\n    return node\n  }\n  /**\n   * @this {CompileContext}\n   * @returns {string}\n   */\n\n  function resume() {\n    return toString(this.stack.pop())\n  } //\n  // Handlers.\n  //\n\n  /** @type {Handle} */\n\n  function onenterlistordered() {\n    setData('expectingFirstListItemValue', true)\n  }\n  /** @type {Handle} */\n\n  function onenterlistitemvalue(token) {\n    if (getData('expectingFirstListItemValue')) {\n      const ancestor =\n        /** @type {List} */\n        this.stack[this.stack.length - 2]\n      ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n      setData('expectingFirstListItemValue')\n    }\n  }\n  /** @type {Handle} */\n\n  function onexitcodefencedfenceinfo() {\n    const data = this.resume()\n    const node =\n      /** @type {Code} */\n      this.stack[this.stack.length - 1]\n    node.lang = data\n  }\n  /** @type {Handle} */\n\n  function onexitcodefencedfencemeta() {\n    const data = this.resume()\n    const node =\n      /** @type {Code} */\n      this.stack[this.stack.length - 1]\n    node.meta = data\n  }\n  /** @type {Handle} */\n\n  function onexitcodefencedfence() {\n    // Exit if this is the closing fence.\n    if (getData('flowCodeInside')) return\n    this.buffer()\n    setData('flowCodeInside', true)\n  }\n  /** @type {Handle} */\n\n  function onexitcodefenced() {\n    const data = this.resume()\n    const node =\n      /** @type {Code} */\n      this.stack[this.stack.length - 1]\n    node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n    setData('flowCodeInside')\n  }\n  /** @type {Handle} */\n\n  function onexitcodeindented() {\n    const data = this.resume()\n    const node =\n      /** @type {Code} */\n      this.stack[this.stack.length - 1]\n    node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n  }\n  /** @type {Handle} */\n\n  function onexitdefinitionlabelstring(token) {\n    // Discard label, use the source content instead.\n    const label = this.resume()\n    const node =\n      /** @type {Definition} */\n      this.stack[this.stack.length - 1]\n    node.label = label\n    node.identifier = normalizeIdentifier(\n      this.sliceSerialize(token)\n    ).toLowerCase()\n  }\n  /** @type {Handle} */\n\n  function onexitdefinitiontitlestring() {\n    const data = this.resume()\n    const node =\n      /** @type {Definition} */\n      this.stack[this.stack.length - 1]\n    node.title = data\n  }\n  /** @type {Handle} */\n\n  function onexitdefinitiondestinationstring() {\n    const data = this.resume()\n    const node =\n      /** @type {Definition} */\n      this.stack[this.stack.length - 1]\n    node.url = data\n  }\n  /** @type {Handle} */\n\n  function onexitatxheadingsequence(token) {\n    const node =\n      /** @type {Heading} */\n      this.stack[this.stack.length - 1]\n\n    if (!node.depth) {\n      const depth = this.sliceSerialize(token).length\n      node.depth = depth\n    }\n  }\n  /** @type {Handle} */\n\n  function onexitsetextheadingtext() {\n    setData('setextHeadingSlurpLineEnding', true)\n  }\n  /** @type {Handle} */\n\n  function onexitsetextheadinglinesequence(token) {\n    const node =\n      /** @type {Heading} */\n      this.stack[this.stack.length - 1]\n    node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n  }\n  /** @type {Handle} */\n\n  function onexitsetextheading() {\n    setData('setextHeadingSlurpLineEnding')\n  }\n  /** @type {Handle} */\n\n  function onenterdata(token) {\n    const parent =\n      /** @type {Parent} */\n      this.stack[this.stack.length - 1]\n    /** @type {Node} */\n\n    let tail = parent.children[parent.children.length - 1]\n\n    if (!tail || tail.type !== 'text') {\n      // Add a new text node.\n      tail = text() // @ts-expect-error: we’ll add `end` later.\n\n      tail.position = {\n        start: point(token.start)\n      } // @ts-expect-error: Assume `parent` accepts `text`.\n\n      parent.children.push(tail)\n    }\n\n    this.stack.push(tail)\n  }\n  /** @type {Handle} */\n\n  function onexitdata(token) {\n    const tail = this.stack.pop()\n    tail.value += this.sliceSerialize(token)\n    tail.position.end = point(token.end)\n  }\n  /** @type {Handle} */\n\n  function onexitlineending(token) {\n    const context = this.stack[this.stack.length - 1]\n\n    // If we’re at a hard break, include the line ending in there.\n    if (getData('atHardBreak')) {\n      const tail = context.children[context.children.length - 1]\n      tail.position.end = point(token.end)\n      setData('atHardBreak')\n      return\n    }\n\n    if (\n      !getData('setextHeadingSlurpLineEnding') &&\n      config.canContainEols.includes(context.type)\n    ) {\n      onenterdata.call(this, token)\n      onexitdata.call(this, token)\n    }\n  }\n  /** @type {Handle} */\n\n  function onexithardbreak() {\n    setData('atHardBreak', true)\n  }\n  /** @type {Handle} */\n\n  function onexithtmlflow() {\n    const data = this.resume()\n    const node =\n      /** @type {HTML} */\n      this.stack[this.stack.length - 1]\n    node.value = data\n  }\n  /** @type {Handle} */\n\n  function onexithtmltext() {\n    const data = this.resume()\n    const node =\n      /** @type {HTML} */\n      this.stack[this.stack.length - 1]\n    node.value = data\n  }\n  /** @type {Handle} */\n\n  function onexitcodetext() {\n    const data = this.resume()\n    const node =\n      /** @type {InlineCode} */\n      this.stack[this.stack.length - 1]\n    node.value = data\n  }\n  /** @type {Handle} */\n\n  function onexitlink() {\n    const context =\n      /** @type {Link & {identifier: string, label: string}} */\n      this.stack[this.stack.length - 1] // To do: clean.\n\n    if (getData('inReference')) {\n      context.type += 'Reference' // @ts-expect-error: mutate.\n\n      context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n      delete context.url\n      delete context.title\n    } else {\n      // @ts-expect-error: mutate.\n      delete context.identifier // @ts-expect-error: mutate.\n\n      delete context.label\n    }\n\n    setData('referenceType')\n  }\n  /** @type {Handle} */\n\n  function onexitimage() {\n    const context =\n      /** @type {Image & {identifier: string, label: string}} */\n      this.stack[this.stack.length - 1] // To do: clean.\n\n    if (getData('inReference')) {\n      context.type += 'Reference' // @ts-expect-error: mutate.\n\n      context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n      delete context.url\n      delete context.title\n    } else {\n      // @ts-expect-error: mutate.\n      delete context.identifier // @ts-expect-error: mutate.\n\n      delete context.label\n    }\n\n    setData('referenceType')\n  }\n  /** @type {Handle} */\n\n  function onexitlabeltext(token) {\n    const ancestor =\n      /** @type {(Link|Image) & {identifier: string, label: string}} */\n      this.stack[this.stack.length - 2]\n    const string = this.sliceSerialize(token)\n    ancestor.label = decodeString(string)\n    ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n  }\n  /** @type {Handle} */\n\n  function onexitlabel() {\n    const fragment =\n      /** @type {Fragment} */\n      this.stack[this.stack.length - 1]\n    const value = this.resume()\n    const node =\n      /** @type {(Link|Image) & {identifier: string, label: string}} */\n      this.stack[this.stack.length - 1] // Assume a reference.\n\n    setData('inReference', true)\n\n    if (node.type === 'link') {\n      // @ts-expect-error: Assume static phrasing content.\n      node.children = fragment.children\n    } else {\n      node.alt = value\n    }\n  }\n  /** @type {Handle} */\n\n  function onexitresourcedestinationstring() {\n    const data = this.resume()\n    const node =\n      /** @type {Link|Image} */\n      this.stack[this.stack.length - 1]\n    node.url = data\n  }\n  /** @type {Handle} */\n\n  function onexitresourcetitlestring() {\n    const data = this.resume()\n    const node =\n      /** @type {Link|Image} */\n      this.stack[this.stack.length - 1]\n    node.title = data\n  }\n  /** @type {Handle} */\n\n  function onexitresource() {\n    setData('inReference')\n  }\n  /** @type {Handle} */\n\n  function onenterreference() {\n    setData('referenceType', 'collapsed')\n  }\n  /** @type {Handle} */\n\n  function onexitreferencestring(token) {\n    const label = this.resume()\n    const node =\n      /** @type {LinkReference|ImageReference} */\n      this.stack[this.stack.length - 1]\n    node.label = label\n    node.identifier = normalizeIdentifier(\n      this.sliceSerialize(token)\n    ).toLowerCase()\n    setData('referenceType', 'full')\n  }\n  /** @type {Handle} */\n\n  function onexitcharacterreferencemarker(token) {\n    setData('characterReferenceType', token.type)\n  }\n  /** @type {Handle} */\n\n  function onexitcharacterreferencevalue(token) {\n    const data = this.sliceSerialize(token)\n    const type = getData('characterReferenceType')\n    /** @type {string} */\n\n    let value\n\n    if (type) {\n      value = decodeNumericCharacterReference(\n        data,\n        type === 'characterReferenceMarkerNumeric' ? 10 : 16\n      )\n      setData('characterReferenceType')\n    } else {\n      // @ts-expect-error `decodeNamedCharacterReference` can return false for\n      // invalid named character references, but everything we’ve tokenized is\n      // valid.\n      value = decodeNamedCharacterReference(data)\n    }\n\n    const tail = this.stack.pop()\n    tail.value += value\n    tail.position.end = point(token.end)\n  }\n  /** @type {Handle} */\n\n  function onexitautolinkprotocol(token) {\n    onexitdata.call(this, token)\n    const node =\n      /** @type {Link} */\n      this.stack[this.stack.length - 1]\n    node.url = this.sliceSerialize(token)\n  }\n  /** @type {Handle} */\n\n  function onexitautolinkemail(token) {\n    onexitdata.call(this, token)\n    const node =\n      /** @type {Link} */\n      this.stack[this.stack.length - 1]\n    node.url = 'mailto:' + this.sliceSerialize(token)\n  } //\n  // Creaters.\n  //\n\n  /** @returns {Blockquote} */\n\n  function blockQuote() {\n    return {\n      type: 'blockquote',\n      children: []\n    }\n  }\n  /** @returns {Code} */\n\n  function codeFlow() {\n    return {\n      type: 'code',\n      lang: null,\n      meta: null,\n      value: ''\n    }\n  }\n  /** @returns {InlineCode} */\n\n  function codeText() {\n    return {\n      type: 'inlineCode',\n      value: ''\n    }\n  }\n  /** @returns {Definition} */\n\n  function definition() {\n    return {\n      type: 'definition',\n      identifier: '',\n      label: null,\n      title: null,\n      url: ''\n    }\n  }\n  /** @returns {Emphasis} */\n\n  function emphasis() {\n    return {\n      type: 'emphasis',\n      children: []\n    }\n  }\n  /** @returns {Heading} */\n\n  function heading() {\n    // @ts-expect-error `depth` will be set later.\n    return {\n      type: 'heading',\n      depth: undefined,\n      children: []\n    }\n  }\n  /** @returns {Break} */\n\n  function hardBreak() {\n    return {\n      type: 'break'\n    }\n  }\n  /** @returns {HTML} */\n\n  function html() {\n    return {\n      type: 'html',\n      value: ''\n    }\n  }\n  /** @returns {Image} */\n\n  function image() {\n    return {\n      type: 'image',\n      title: null,\n      url: '',\n      alt: null\n    }\n  }\n  /** @returns {Link} */\n\n  function link() {\n    return {\n      type: 'link',\n      title: null,\n      url: '',\n      children: []\n    }\n  }\n  /**\n   * @param {Token} token\n   * @returns {List}\n   */\n\n  function list(token) {\n    return {\n      type: 'list',\n      ordered: token.type === 'listOrdered',\n      start: null,\n      // @ts-expect-error Patched.\n      spread: token._spread,\n      children: []\n    }\n  }\n  /**\n   * @param {Token} token\n   * @returns {ListItem}\n   */\n\n  function listItem(token) {\n    return {\n      type: 'listItem',\n      // @ts-expect-error Patched.\n      spread: token._spread,\n      checked: null,\n      children: []\n    }\n  }\n  /** @returns {Paragraph} */\n\n  function paragraph() {\n    return {\n      type: 'paragraph',\n      children: []\n    }\n  }\n  /** @returns {Strong} */\n\n  function strong() {\n    return {\n      type: 'strong',\n      children: []\n    }\n  }\n  /** @returns {Text} */\n\n  function text() {\n    return {\n      type: 'text',\n      value: ''\n    }\n  }\n  /** @returns {ThematicBreak} */\n\n  function thematicBreak() {\n    return {\n      type: 'thematicBreak'\n    }\n  }\n}\n/**\n * @param {Extension} combined\n * @param {Array<Extension|Array<Extension>>} extensions\n * @returns {Extension}\n */\n\nfunction configure(combined, extensions) {\n  let index = -1\n\n  while (++index < extensions.length) {\n    const value = extensions[index]\n\n    if (Array.isArray(value)) {\n      configure(combined, value)\n    } else {\n      extension(combined, value)\n    }\n  }\n\n  return combined\n}\n/**\n * @param {Extension} combined\n * @param {Extension} extension\n * @returns {void}\n */\n\nfunction extension(combined, extension) {\n  /** @type {string} */\n  let key\n\n  for (key in extension) {\n    if (own.call(extension, key)) {\n      const list = key === 'canContainEols' || key === 'transforms'\n      const maybe = own.call(combined, key) ? combined[key] : undefined\n      /* c8 ignore next */\n\n      const left = maybe || (combined[key] = list ? [] : {})\n      const right = extension[key]\n\n      if (right) {\n        if (list) {\n          // @ts-expect-error: `left` is an array.\n          combined[key] = [...left, ...right]\n        } else {\n          Object.assign(left, right)\n        }\n      }\n    }\n  }\n}\n/** @type {OnEnterError} */\n\nfunction defaultOnError(left, right) {\n  if (left) {\n    throw new Error(\n      'Cannot close `' +\n        left.type +\n        '` (' +\n        stringifyPosition({\n          start: left.start,\n          end: left.end\n        }) +\n        '): a different token (`' +\n        right.type +\n        '`, ' +\n        stringifyPosition({\n          start: right.start,\n          end: right.end\n        }) +\n        ') is open'\n    )\n  } else {\n    throw new Error(\n      'Cannot close document, a token (`' +\n        right.type +\n        '`, ' +\n        stringifyPosition({\n          start: right.start,\n          end: right.end\n        }) +\n        ') is still open'\n    )\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * @param {Array<Event>} events\n * @returns {Array<Event>}\n */\n\nexport function postprocess(events) {\n  while (!subtokenize(events)) {\n    // Empty\n  }\n\n  return events\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Create} Create\n */\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n/**\n * @param {ParseOptions} [options]\n * @returns {ParseContext}\n */\n\nexport function parse(options = {}) {\n  /** @type {FullNormalizedExtension} */\n  // @ts-expect-error `defaultConstructs` is full, so the result will be too.\n  const constructs = combineExtensions(\n    // @ts-expect-error Same as above.\n    [defaultConstructs].concat(options.extensions || [])\n  )\n  /** @type {ParseContext} */\n\n  const parser = {\n    defined: [],\n    lazy: {},\n    constructs,\n    content: create(content),\n    document: create(document),\n    flow: create(flow),\n    string: create(string),\n    text: create(text)\n  }\n  return parser\n  /**\n   * @param {InitialConstruct} initial\n   */\n\n  function create(initial) {\n    return creator\n    /** @type {Create} */\n\n    function creator(from) {\n      return createTokenizer(parser, initial, from)\n    }\n  }\n}\n","import remarkParse from './lib/index.js'\n\nexport default remarkParse\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/** @type {import('unified').Plugin<[Options?] | void[], string, Root>} */\nexport default function remarkParse(options) {\n  /** @type {import('unified').ParserFunction<Root>} */\n  const parser = (doc) => {\n    // Assume options.\n    const settings = /** @type {Options} */ (this.data('settings'))\n\n    return fromMarkdown(\n      doc,\n      Object.assign({}, settings, options, {\n        // Note: these options are not in the readme.\n        // The goal is for them to be set by plugins on `data` instead of being\n        // passed by users.\n        extensions: this.data('micromarkExtensions') || [],\n        mdastExtensions: this.data('fromMarkdownExtensions') || []\n      })\n    )\n  }\n\n  Object.assign(this, {Parser: parser})\n}\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri` below).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * Then, a regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`,\n * or `/^https?$/i` for `img[src]`.\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string|undefined} url\n * @param {RegExp} [protocol]\n * @returns {string}\n */\nexport function sanitizeUri(url, protocol) {\n  const value = encode(normalizeUri(url || ''))\n\n  if (!protocol) {\n    return value\n  }\n\n  const colon = value.indexOf(':')\n  const questionMark = value.indexOf('?')\n  const numberSign = value.indexOf('#')\n  const slash = value.indexOf('/')\n\n  if (\n    // If there is no protocol, it’s relative.\n    colon < 0 || // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n    (slash > -1 && colon > slash) ||\n    (questionMark > -1 && colon > questionMark) ||\n    (numberSign > -1 && colon > numberSign) || // It is a protocol, it should be allowed.\n    protocol.test(value.slice(0, colon))\n  ) {\n    return value\n  }\n\n  return ''\n}\n/**\n * Normalize a URL (such as used in definitions).\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * @returns {string}\n */\n\nexport function normalizeUri(value) {\n  /** @type {Array<string>} */\n  const result = []\n  let index = -1\n  let start = 0\n  let skip = 0\n\n  while (++index < value.length) {\n    const code = value.charCodeAt(index)\n    /** @type {string} */\n\n    let replace = '' // A correct percent encoded value.\n\n    if (\n      code === 37 &&\n      asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n      asciiAlphanumeric(value.charCodeAt(index + 2))\n    ) {\n      skip = 2\n    } // ASCII.\n    else if (code < 128) {\n      if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n        replace = String.fromCharCode(code)\n      }\n    } // Astral.\n    else if (code > 55295 && code < 57344) {\n      const next = value.charCodeAt(index + 1) // A correct surrogate pair.\n\n      if (code < 56320 && next > 56319 && next < 57344) {\n        replace = String.fromCharCode(code, next)\n        skip = 1\n      } // Lone surrogate.\n      else {\n        replace = '\\uFFFD'\n      }\n    } // Unicode.\n    else {\n      replace = String.fromCharCode(code)\n    }\n\n    if (replace) {\n      result.push(value.slice(start, index), encodeURIComponent(replace))\n      start = index + skip + 1\n      replace = ''\n    }\n\n    if (skip) {\n      index += skip\n      skip = 0\n    }\n  }\n\n  return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n *\n * @typedef {string} Type\n * @typedef {Object<string, unknown>} Props\n *\n * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.<Type|Props|TestFunctionAnything>} Test\n */\n\n/**\n * Check if a node passes a test\n *\n * @callback TestFunctionAnything\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean|void}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} X\n * @callback TestFunctionPredicate\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is X}\n */\n\n/**\n * @callback AssertAnything\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} Y\n * @callback AssertPredicate\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is Y}\n */\n\nexport const is =\n  /**\n   * Check if a node passes a test.\n   * When a `parent` node is known the `index` of node should also be given.\n   *\n   * @type {(\n   *   (<T extends Node>(node: unknown, test: T['type']|Partial<T>|TestFunctionPredicate<T>|Array.<T['type']|Partial<T>|TestFunctionPredicate<T>>, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => node is T) &\n   *   ((node?: unknown, test?: Test, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => boolean)\n   * )}\n   */\n  (\n    /**\n     * Check if a node passes a test.\n     * When a `parent` node is known the `index` of node should also be given.\n     *\n     * @param {unknown} [node] Node to check\n     * @param {Test} [test]\n     * When nullish, checks if `node` is a `Node`.\n     * When `string`, works like passing `function (node) {return node.type === test}`.\n     * When `function` checks if function passed the node is true.\n     * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n     * When `array`, checks any one of the subtests pass.\n     * @param {number|null|undefined} [index] Position of `node` in `parent`\n     * @param {Parent|null|undefined} [parent] Parent of `node`\n     * @param {unknown} [context] Context object to invoke `test` with\n     * @returns {boolean} Whether test passed and `node` is a `Node` (object with `type` set to non-empty `string`).\n     */\n    // eslint-disable-next-line max-params\n    function is(node, test, index, parent, context) {\n      const check = convert(test)\n\n      if (\n        index !== undefined &&\n        index !== null &&\n        (typeof index !== 'number' ||\n          index < 0 ||\n          index === Number.POSITIVE_INFINITY)\n      ) {\n        throw new Error('Expected positive finite index')\n      }\n\n      if (\n        parent !== undefined &&\n        parent !== null &&\n        (!is(parent) || !parent.children)\n      ) {\n        throw new Error('Expected parent node')\n      }\n\n      if (\n        (parent === undefined || parent === null) !==\n        (index === undefined || index === null)\n      ) {\n        throw new Error('Expected both parent and index')\n      }\n\n      // @ts-expect-error Looks like a node.\n      return node && node.type && typeof node.type === 'string'\n        ? Boolean(check.call(context, node, index, parent))\n        : false\n    }\n  )\n\nexport const convert =\n  /**\n   * @type {(\n   *   (<T extends Node>(test: T['type']|Partial<T>|TestFunctionPredicate<T>) => AssertPredicate<T>) &\n   *   ((test?: Test) => AssertAnything)\n   * )}\n   */\n  (\n    /**\n     * Generate an assertion from a check.\n     * @param {Test} [test]\n     * When nullish, checks if `node` is a `Node`.\n     * When `string`, works like passing `function (node) {return node.type === test}`.\n     * When `function` checks if function passed the node is true.\n     * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n     * When `array`, checks any one of the subtests pass.\n     * @returns {AssertAnything}\n     */\n    function (test) {\n      if (test === undefined || test === null) {\n        return ok\n      }\n\n      if (typeof test === 'string') {\n        return typeFactory(test)\n      }\n\n      if (typeof test === 'object') {\n        return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n      }\n\n      if (typeof test === 'function') {\n        return castFactory(test)\n      }\n\n      throw new Error('Expected function, string, or object as test')\n    }\n  )\n/**\n * @param {Array.<Type|Props|TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n  /** @type {Array.<AssertAnything>} */\n  const checks = []\n  let index = -1\n\n  while (++index < tests.length) {\n    checks[index] = convert(tests[index])\n  }\n\n  return castFactory(any)\n\n  /**\n   * @this {unknown}\n   * @param {unknown[]} parameters\n   * @returns {boolean}\n   */\n  function any(...parameters) {\n    let index = -1\n\n    while (++index < checks.length) {\n      if (checks[index].call(this, ...parameters)) return true\n    }\n\n    return false\n  }\n}\n\n/**\n * Utility to assert each property in `test` is represented in `node`, and each\n * values are strictly equal.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n  return castFactory(all)\n\n  /**\n   * @param {Node} node\n   * @returns {boolean}\n   */\n  function all(node) {\n    /** @type {string} */\n    let key\n\n    for (key in check) {\n      // @ts-expect-error: hush, it sure works as an index.\n      if (node[key] !== check[key]) return false\n    }\n\n    return true\n  }\n}\n\n/**\n * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n *\n * @param {Type} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n  return castFactory(type)\n\n  /**\n   * @param {Node} node\n   */\n  function type(node) {\n    return node && node.type === check\n  }\n}\n\n/**\n * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n  return assertion\n\n  /**\n   * @this {unknown}\n   * @param {Array.<unknown>} parameters\n   * @returns {boolean}\n   */\n  function assertion(...parameters) {\n    // @ts-expect-error: spreading is fine.\n    return Boolean(check.call(this, ...parameters))\n  }\n}\n\n// Utility to return true.\nfunction ok() {\n  return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('./complex-types.js').Action} Action\n * @typedef {import('./complex-types.js').Index} Index\n * @typedef {import('./complex-types.js').ActionTuple} ActionTuple\n * @typedef {import('./complex-types.js').VisitorResult} VisitorResult\n * @typedef {import('./complex-types.js').Visitor} Visitor\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal\n */\nexport const CONTINUE = true\n/**\n * Do not traverse this node’s children\n */\nexport const SKIP = 'skip'\n/**\n * Stop traversing immediately\n */\nexport const EXIT = false\n\n/**\n * Visit children of tree which pass test.\n *\n * @param tree\n *   Tree to walk\n * @param [test]\n *   `unist-util-is`-compatible test\n * @param visitor\n *   Function called for nodes that pass `test`.\n * @param [reverse=false]\n *   Traverse in reverse preorder (NRL) instead of preorder (NLR) (default).\n */\nexport const visitParents =\n  /**\n   * @type {(\n   *   (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: import('./complex-types.js').BuildVisitor<Tree, Check>, reverse?: boolean) => void) &\n   *   (<Tree extends Node>(tree: Tree, visitor: import('./complex-types.js').BuildVisitor<Tree>, reverse?: boolean) => void)\n   * )}\n   */\n  (\n    /**\n     * @param {Node} tree\n     * @param {Test} test\n     * @param {import('./complex-types.js').Visitor<Node>} visitor\n     * @param {boolean} [reverse=false]\n     */\n    function (tree, test, visitor, reverse) {\n      if (typeof test === 'function' && typeof visitor !== 'function') {\n        reverse = visitor\n        // @ts-expect-error no visitor given, so `visitor` is test.\n        visitor = test\n        test = null\n      }\n\n      const is = convert(test)\n      const step = reverse ? -1 : 1\n\n      factory(tree, null, [])()\n\n      /**\n       * @param {Node} node\n       * @param {number?} index\n       * @param {Array<Parent>} parents\n       */\n      function factory(node, index, parents) {\n        /** @type {Record<string, unknown>} */\n        // @ts-expect-error: hush\n        const value = typeof node === 'object' && node !== null ? node : {}\n        /** @type {string|undefined} */\n        let name\n\n        if (typeof value.type === 'string') {\n          name =\n            typeof value.tagName === 'string'\n              ? value.tagName\n              : typeof value.name === 'string'\n              ? value.name\n              : undefined\n\n          Object.defineProperty(visit, 'name', {\n            value:\n              'node (' +\n              color(value.type + (name ? '<' + name + '>' : '')) +\n              ')'\n          })\n        }\n\n        return visit\n\n        function visit() {\n          /** @type {ActionTuple} */\n          let result = []\n          /** @type {ActionTuple} */\n          let subresult\n          /** @type {number} */\n          let offset\n          /** @type {Array<Parent>} */\n          let grandparents\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          // @ts-expect-error looks like a parent.\n          if (node.children && result[0] !== SKIP) {\n            // @ts-expect-error looks like a parent.\n            offset = (reverse ? node.children.length : -1) + step\n            // @ts-expect-error looks like a parent.\n            grandparents = parents.concat(node)\n\n            // @ts-expect-error looks like a parent.\n            while (offset > -1 && offset < node.children.length) {\n              // @ts-expect-error looks like a parent.\n              subresult = factory(node.children[offset], offset, grandparents)()\n\n              if (subresult[0] === EXIT) {\n                return subresult\n              }\n\n              offset =\n                typeof subresult[1] === 'number' ? subresult[1] : offset + step\n            }\n          }\n\n          return result\n        }\n      }\n    }\n  )\n\n/**\n * @param {VisitorResult} value\n * @returns {ActionTuple}\n */\nfunction toResult(value) {\n  if (Array.isArray(value)) {\n    return value\n  }\n\n  if (typeof value === 'number') {\n    return [CONTINUE, value]\n  }\n\n  return [value]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n * @typedef {import('./complex-types.js').Visitor} Visitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit children of tree which pass test.\n *\n * @param tree\n *   Tree to walk\n * @param [test]\n *   `unist-util-is`-compatible test\n * @param visitor\n *   Function called for nodes that pass `test`.\n * @param reverse\n *   Traverse in reverse preorder (NRL) instead of preorder (NLR) (default).\n */\nexport const visit =\n  /**\n   * @type {(\n   *   (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: import('./complex-types.js').BuildVisitor<Tree, Check>, reverse?: boolean) => void) &\n   *   (<Tree extends Node>(tree: Tree, visitor: import('./complex-types.js').BuildVisitor<Tree>, reverse?: boolean) => void)\n   * )}\n   */\n  (\n    /**\n     * @param {Node} tree\n     * @param {Test} test\n     * @param {import('./complex-types.js').Visitor} visitor\n     * @param {boolean} [reverse]\n     */\n    function (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      /**\n       * @param {Node} node\n       * @param {Array<Parent>} parents\n       */\n      function overload(node, parents) {\n        const parent = parents[parents.length - 1]\n        return visitor(\n          node,\n          parent ? parent.children.indexOf(node) : null,\n          parent\n        )\n      }\n    }\n  )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n","/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Node} Node\n * @typedef {Record<string, unknown> & {type: string, position?: PositionLike|undefined}} NodeLike\n * @typedef {import('unist').Point} Point\n *\n * @typedef {Partial<Point>} PointLike\n *\n * @typedef PositionLike\n * @property {PointLike} [start]\n * @property {PointLike} [end]\n */\n\nexport const pointStart = point('start')\nexport const pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike|Node} [node]\n * @returns {Position}\n */\nexport function position(node) {\n  return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start'|'end'} type\n */\nfunction point(type) {\n  return point\n\n  /**\n   * Get the positional info of `node`.\n   *\n   * @param {NodeLike|Node} [node]\n   * @returns {Point}\n   */\n  function point(node) {\n    const point = (node && node.position && node.position[type]) || {}\n\n    return {\n      line: point.line || null,\n      column: point.column || null,\n      offset: point.offset > -1 ? point.offset : null\n    }\n  }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Definition} Definition\n */\n\n/**\n * @typedef {Root | Content} Node\n *\n * @callback GetDefinition\n *   Get a definition by identifier.\n * @param {string | null | undefined} [identifier]\n *   Identifier of definition.\n * @returns {Definition | null}\n *   Definition corresponding to `identifier` or `null`.\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find definitions in `tree`.\n *\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} tree\n *   Tree to check.\n * @returns {GetDefinition}\n *   Getter.\n */\nexport function definitions(tree) {\n  /** @type {Record<string, Definition>} */\n  const cache = Object.create(null)\n\n  if (!tree || !tree.type) {\n    throw new Error('mdast-util-definitions expected node')\n  }\n\n  visit(tree, 'definition', (definition) => {\n    const id = clean(definition.identifier)\n    if (id && !own.call(cache, id)) {\n      cache[id] = definition\n    }\n  })\n\n  return definition\n\n  /** @type {GetDefinition} */\n  function definition(identifier) {\n    const id = clean(identifier)\n    // To do: next major: return `undefined` when not found.\n    return id && own.call(cache, id) ? cache[id] : null\n  }\n}\n\n/**\n * @param {string | null | undefined} [value]\n * @returns {string}\n */\nfunction clean(value) {\n  return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('hast').Element} Element\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  if (index === -1) {\n    state.footnoteOrder.push(id)\n    state.footnoteCounts[id] = 1\n    counter = state.footnoteOrder.length\n  } else {\n    state.footnoteCounts[id]++\n    counter = index + 1\n  }\n\n  const reuseCounter = state.footnoteCounts[id]\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + state.clobberPrefix + 'fn-' + safeId,\n      id:\n        state.clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Reference} Reference\n * @typedef {import('mdast').Root} Root\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Reference>} References\n */\n\n// To do: next major: always return array.\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n *   Info passed around.\n * @param {References} node\n *   Reference node (image, link).\n * @returns {ElementContent | Array<ElementContent>}\n *   hast content.\n */\nexport function revert(state, node) {\n  const subtype = node.referenceType\n  let suffix = ']'\n\n  if (subtype === 'collapsed') {\n    suffix += '[]'\n  } else if (subtype === 'full') {\n    suffix += '[' + (node.label || node.identifier) + ']'\n  }\n\n  if (node.type === 'imageReference') {\n    return {type: 'text', value: '![' + node.alt + suffix}\n  }\n\n  const contents = state.all(node)\n  const head = contents[0]\n\n  if (head && head.type === 'text') {\n    head.value = '[' + head.value\n  } else {\n    contents.unshift({type: 'text', value: '['})\n  }\n\n  const tail = contents[contents.length - 1]\n\n  if (tail && tail.type === 'text') {\n    tail.value += suffix\n  } else {\n    contents.push({type: 'text', value: suffix})\n  }\n\n  return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Parent>} Parents\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ListItem} node\n *   mdast node.\n * @param {Parents | null | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function listItem(state, node, parent) {\n  const results = state.all(node)\n  const loose = parent ? listLoose(parent) : listItemLoose(node)\n  /** @type {Properties} */\n  const properties = {}\n  /** @type {Array<ElementContent>} */\n  const children = []\n\n  if (typeof node.checked === 'boolean') {\n    const head = results[0]\n    /** @type {Element} */\n    let paragraph\n\n    if (head && head.type === 'element' && head.tagName === 'p') {\n      paragraph = head\n    } else {\n      paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n      results.unshift(paragraph)\n    }\n\n    if (paragraph.children.length > 0) {\n      paragraph.children.unshift({type: 'text', value: ' '})\n    }\n\n    paragraph.children.unshift({\n      type: 'element',\n      tagName: 'input',\n      properties: {type: 'checkbox', checked: node.checked, disabled: true},\n      children: []\n    })\n\n    // According to github-markdown-css, this class hides bullet.\n    // See: <https://github.com/sindresorhus/github-markdown-css>.\n    properties.className = ['task-list-item']\n  }\n\n  let index = -1\n\n  while (++index < results.length) {\n    const child = results[index]\n\n    // Add eols before nodes, except if this is a loose, first paragraph.\n    if (\n      loose ||\n      index !== 0 ||\n      child.type !== 'element' ||\n      child.tagName !== 'p'\n    ) {\n      children.push({type: 'text', value: '\\n'})\n    }\n\n    if (child.type === 'element' && child.tagName === 'p' && !loose) {\n      children.push(...child.children)\n    } else {\n      children.push(child)\n    }\n  }\n\n  const tail = results[results.length - 1]\n\n  // Add a final eol.\n  if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n    children.push({type: 'text', value: '\\n'})\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'li', properties, children}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n  let loose = false\n  if (node.type === 'list') {\n    loose = node.spread || false\n    const children = node.children\n    let index = -1\n\n    while (!loose && ++index < children.length) {\n      loose = listItemLoose(children[index])\n    }\n  }\n\n  return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n  const spread = node.spread\n\n  return spread === undefined || spread === null\n    ? node.children.length > 1\n    : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n *   Value to trim.\n * @returns {string}\n *   Trimmed value.\n */\nexport function trimLines(value) {\n  const source = String(value)\n  const search = /\\r?\\n|\\r/g\n  let match = search.exec(source)\n  let last = 0\n  /** @type {Array<string>} */\n  const lines = []\n\n  while (match) {\n    lines.push(\n      trimLine(source.slice(last, match.index), last > 0, true),\n      match[0]\n    )\n\n    last = match.index + match[0].length\n    match = search.exec(source)\n  }\n\n  lines.push(trimLine(source.slice(last), last > 0, false))\n\n  return lines.join('')\n}\n\n/**\n * @param {string} value\n *   Line to trim.\n * @param {boolean} start\n *   Whether to trim the start of the line.\n * @param {boolean} end\n *   Whether to trim the end of the line.\n * @returns {string}\n *   Trimmed line.\n */\nfunction trimLine(value, start, end) {\n  let startIndex = 0\n  let endIndex = value.length\n\n  if (start) {\n    let code = value.codePointAt(startIndex)\n\n    while (code === tab || code === space) {\n      startIndex++\n      code = value.codePointAt(startIndex)\n    }\n  }\n\n  if (end) {\n    let code = value.codePointAt(endIndex - 1)\n\n    while (code === tab || code === space) {\n      endIndex--\n      code = value.codePointAt(endIndex - 1)\n    }\n  }\n\n  return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {footnote} from './footnote.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n */\nexport const handlers = {\n  blockquote,\n  break: hardBreak,\n  code,\n  delete: strikethrough,\n  emphasis,\n  footnoteReference,\n  footnote,\n  heading,\n  html,\n  imageReference,\n  image,\n  inlineCode,\n  linkReference,\n  link,\n  listItem,\n  list,\n  paragraph,\n  root,\n  strong,\n  table,\n  tableCell,\n  tableRow,\n  text,\n  thematicBreak,\n  toml: ignore,\n  yaml: ignore,\n  definition: ignore,\n  footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n  // To do: next major: return `undefined`.\n  return null\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Blockquote} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function blockquote(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'blockquote',\n    properties: {},\n    children: state.wrap(state.all(node), true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Break} node\n *   mdast node.\n * @returns {Array<Element | Text>}\n *   hast element content.\n */\nexport function hardBreak(state, node) {\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n  state.patch(node, result)\n  return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Code} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function code(state, node) {\n  const value = node.value ? node.value + '\\n' : ''\n  // To do: next major, use `node.lang` w/o regex, the splitting’s been going\n  // on for years in remark now.\n  const lang = node.lang ? node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/) : null\n  /** @type {Properties} */\n  const properties = {}\n\n  if (lang) {\n    properties.className = ['language-' + lang]\n  }\n\n  // Create `<code>`.\n  /** @type {Element} */\n  let result = {\n    type: 'element',\n    tagName: 'code',\n    properties,\n    children: [{type: 'text', value}]\n  }\n\n  if (node.meta) {\n    result.data = {meta: node.meta}\n  }\n\n  state.patch(node, result)\n  result = state.applyData(node, result)\n\n  // Create `<pre>`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../state.js').State} State\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n// To do: when both:\n// * <https://github.com/micromark/micromark-extension-footnote>\n// * <https://github.com/syntax-tree/mdast-util-footnote>\n// …are archived, remove this (also from mdast).\n// These inline notes are not used in GFM.\n\n/**\n * Turn an mdast `footnote` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Footnote} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnote(state, node) {\n  const footnoteById = state.footnoteById\n  let no = 1\n\n  while (no in footnoteById) no++\n\n  const identifier = String(no)\n\n  footnoteById[identifier] = {\n    type: 'footnoteDefinition',\n    identifier,\n    children: [{type: 'paragraph', children: node.children}],\n    position: node.position\n  }\n\n  return footnoteReference(state, {\n    type: 'footnoteReference',\n    identifier,\n    position: node.position\n  })\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').HTML} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Raw | Element | null}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.dangerous) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  // To do: next major: return `undefined`.\n  return null\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {ElementContent | Array<ElementContent>}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {ElementContent | Array<ElementContent>}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(def.url || '')}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastRoot | HastElement}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array<Element>} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start.line && end.line) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Parent>} Parents\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | null | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array<ElementContent>} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(node, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastText | HastElement}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} MdastRoot\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n * @typedef {Extract<MdastNodes, MdastParent>} MdastParents\n *\n * @typedef EmbeddedHastFields\n *   hast fields.\n * @property {string | null | undefined} [hName]\n *   Generate a specific element with this tag name instead.\n * @property {HastProperties | null | undefined} [hProperties]\n *   Generate an element with these properties instead.\n * @property {Array<HastElementContent> | null | undefined} [hChildren]\n *   Generate an element with this content instead.\n *\n * @typedef {Record<string, unknown> & EmbeddedHastFields} MdastData\n *   mdast data with embedded hast fields.\n *\n * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData\n *   mdast node with embedded hast data.\n *\n * @typedef PointLike\n *   Point-like value.\n * @property {number | null | undefined} [line]\n *   Line.\n * @property {number | null | undefined} [column]\n *   Column.\n * @property {number | null | undefined} [offset]\n *   Offset.\n *\n * @typedef PositionLike\n *   Position-like value.\n * @property {PointLike | null | undefined} [start]\n *   Point-like value.\n * @property {PointLike | null | undefined} [end]\n *   Point-like value.\n *\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | null | undefined} parent\n *   Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n *   hast node.\n *\n * @callback HFunctionProps\n *   Signature of `state` for when props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {HastProperties} props\n *   Properties.\n * @param {Array<HastElementContent> | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @callback HFunctionNoProps\n *   Signature of `state` for when no props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {Array<HastElementContent> | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @typedef HFields\n *   Info on `state`.\n * @property {boolean} dangerous\n *   Whether HTML is allowed.\n * @property {string} clobberPrefix\n *   Prefix to use to prevent DOM clobbering.\n * @property {string} footnoteLabel\n *   Label to use to introduce the footnote section.\n * @property {string} footnoteLabelTagName\n *   HTML used for the footnote label.\n * @property {HastProperties} footnoteLabelProperties\n *   Properties on the HTML tag used for the footnote label.\n * @property {string} footnoteBackLabel\n *   Label to use from backreferences back to their footnote call.\n * @property {(identifier: string) => MdastDefinition | null} definition\n *   Definition cache.\n * @property {Record<string, MdastFootnoteDefinition>} footnoteById\n *   Footnote definitions by their identifier.\n * @property {Array<string>} footnoteOrder\n *   Identifiers of order when footnote calls first appear in tree order.\n * @property {Record<string, number>} footnoteCounts\n *   Counts for how often the same footnote was called.\n * @property {Handlers} handlers\n *   Applied handlers.\n * @property {Handler} unknownHandler\n *   Handler for any none not in `passThrough` or otherwise handled.\n * @property {(from: MdastNodes, node: HastNodes) => void} patch\n *   Copy a node’s positional info.\n * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => Type | HastElement} applyData\n *   Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array<HastElementContent> | null | undefined} one\n *   Transform an mdast node to hast.\n * @property {(node: MdastNodes) => Array<HastElementContent>} all\n *   Transform the children of an mdast parent to hast.\n * @property {<Type extends HastContent>(nodes: Array<Type>, loose?: boolean | null | undefined) => Array<Type | HastText>} wrap\n *   Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment\n *   Like `state` but lower-level and usable on non-elements.\n *   Deprecated: use `patch` and `applyData`.\n * @property {Array<string>} passThrough\n *   List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree.\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` attribute on footnotes to prevent it from\n *   *clobbering*.\n * @property {string | null | undefined} [footnoteBackLabel='Back to content']\n *   Label to use from backreferences back to their footnote call (affects\n *   screen readers).\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n *   Label to use for the footnotes section (affects screen readers).\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n *   Properties to use on the footnote label (note that `id: 'footnote-label'`\n *   is always added as footnote calls use it with `aria-describedby` to\n *   provide an accessible label).\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n *   Tag name to use for the footnote label.\n * @property {Handlers | null | undefined} [handlers]\n *   Extra handlers for nodes.\n * @property {Array<string> | null | undefined} [passThrough]\n *   List of custom mdast node types to pass through (keep) in hast (note that\n *   the node itself is passed, but eventual children are transformed).\n * @property {Handler | null | undefined} [unknownHandler]\n *   Handler for all unknown nodes.\n *\n * @typedef {Record<string, Handler>} Handlers\n *   Handle nodes.\n *\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} State\n *   Info passed around.\n */\n\nimport {visit} from 'unist-util-visit'\nimport {position, pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n *   mdast node to transform.\n * @param {Options | null | undefined} [options]\n *   Configuration.\n * @returns {State}\n *   `state` function.\n */\nexport function createState(tree, options) {\n  const settings = options || {}\n  const dangerous = settings.allowDangerousHtml || false\n  /** @type {Record<string, MdastFootnoteDefinition>} */\n  const footnoteById = {}\n\n  // To do: next major: add `options` to state, remove:\n  // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,\n  // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,\n  // `unknownHandler`.\n\n  // To do: next major: move to `state.options.allowDangerousHtml`.\n  state.dangerous = dangerous\n  // To do: next major: move to `state.options`.\n  state.clobberPrefix =\n    settings.clobberPrefix === undefined || settings.clobberPrefix === null\n      ? 'user-content-'\n      : settings.clobberPrefix\n  // To do: next major: move to `state.options`.\n  state.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelProperties = settings.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  // To do: next major: move to `state.options`.\n  state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n  // To do: next major: move to `state.options`.\n  state.unknownHandler = settings.unknownHandler\n  // To do: next major: move to `state.options`.\n  state.passThrough = settings.passThrough\n\n  state.handlers = {...handlers, ...settings.handlers}\n\n  // To do: next major: replace utility with `definitionById` object, so we\n  // only walk once (as we need footnotes too).\n  state.definition = definitions(tree)\n  state.footnoteById = footnoteById\n  /** @type {Array<string>} */\n  state.footnoteOrder = []\n  /** @type {Record<string, number>} */\n  state.footnoteCounts = {}\n\n  state.patch = patch\n  state.applyData = applyData\n  state.one = oneBound\n  state.all = allBound\n  state.wrap = wrap\n  // To do: next major: remove `augment`.\n  state.augment = augment\n\n  visit(tree, 'footnoteDefinition', (definition) => {\n    const id = String(definition.identifier).toUpperCase()\n\n    // Mimick CM behavior of link definitions.\n    // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8290999/index.js#L26>.\n    if (!own.call(footnoteById, id)) {\n      footnoteById[id] = definition\n    }\n  })\n\n  // @ts-expect-error Hush, it’s fine!\n  return state\n\n  /**\n   * Finalise the created `right`, a hast node, from `left`, an mdast node.\n   *\n   * @param {MdastNodeWithData | PositionLike | null | undefined} left\n   * @param {HastElementContent} right\n   * @returns {HastElementContent}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function augment(left, right) {\n    // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n    if (left && 'data' in left && left.data) {\n      /** @type {MdastData} */\n      const data = left.data\n\n      if (data.hName) {\n        if (right.type !== 'element') {\n          right = {\n            type: 'element',\n            tagName: '',\n            properties: {},\n            children: []\n          }\n        }\n\n        right.tagName = data.hName\n      }\n\n      if (right.type === 'element' && data.hProperties) {\n        right.properties = {...right.properties, ...data.hProperties}\n      }\n\n      if ('children' in right && right.children && data.hChildren) {\n        right.children = data.hChildren\n      }\n    }\n\n    if (left) {\n      const ctx = 'type' in left ? left : {position: left}\n\n      if (!generated(ctx)) {\n        // @ts-expect-error: fine.\n        right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n      }\n    }\n\n    return right\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Create an element for `node`.\n   *\n   * @type {HFunctionProps}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function state(node, tagName, props, children) {\n    if (Array.isArray(props)) {\n      children = props\n      props = {}\n    }\n\n    // @ts-expect-error augmenting an element yields an element.\n    return augment(node, {\n      type: 'element',\n      tagName,\n      properties: props || {},\n      children: children || []\n    })\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Transform an mdast node into a hast node.\n   *\n   * @param {MdastNodes} node\n   *   mdast node.\n   * @param {MdastParents | null | undefined} [parent]\n   *   Parent of `node`.\n   * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n   *   Resulting hast node.\n   */\n  function oneBound(node, parent) {\n    // @ts-expect-error: that’s a state :)\n    return one(state, node, parent)\n  }\n\n  /**\n   * Transform the children of an mdast node into hast nodes.\n   *\n   * @param {MdastNodes} parent\n   *   mdast node to compile\n   * @returns {Array<HastElementContent>}\n   *   Resulting hast nodes.\n   */\n  function allBound(parent) {\n    // @ts-expect-error: that’s a state :)\n    return all(state, parent)\n  }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n *   mdast node to copy from.\n * @param {HastNodes} to\n *   hast node to copy into.\n * @returns {void}\n *   Nothing.\n */\nfunction patch(from, to) {\n  if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n *   Node type.\n * @param {MdastNodes} from\n *   mdast node to use data from.\n * @param {Type} to\n *   hast node to change.\n * @returns {Type | HastElement}\n *   Nothing.\n */\nfunction applyData(from, to) {\n  /** @type {Type | HastElement} */\n  let result = to\n\n  // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n  if (from && from.data) {\n    const hName = from.data.hName\n    const hChildren = from.data.hChildren\n    const hProperties = from.data.hProperties\n\n    if (typeof hName === 'string') {\n      // Transforming the node resulted in an element with a different name\n      // than wanted:\n      if (result.type === 'element') {\n        result.tagName = hName\n      }\n      // Transforming the node resulted in a non-element, which happens for\n      // raw, text, and root nodes (unless custom handlers are passed).\n      // The intent is likely to keep the content around (otherwise: pass\n      // `hChildren`).\n      else {\n        result = {\n          type: 'element',\n          tagName: hName,\n          properties: {},\n          children: []\n        }\n\n        // To do: next major: take the children from the `root`, or inject the\n        // raw/text/comment or so into the element?\n        // if ('children' in node) {\n        //   // @ts-expect-error: assume `children` are allowed in elements.\n        //   result.children = node.children\n        // } else {\n        //   // @ts-expect-error: assume `node` is allowed in elements.\n        //   result.children.push(node)\n        // }\n      }\n    }\n\n    if (result.type === 'element' && hProperties) {\n      result.properties = {...result.properties, ...hProperties}\n    }\n\n    if (\n      'children' in result &&\n      result.children &&\n      hChildren !== null &&\n      hChildren !== undefined\n    ) {\n      // @ts-expect-error: assume valid children are defined.\n      result.children = hChildren\n    }\n  }\n\n  return result\n}\n\n/**\n * Transform an mdast node into a hast node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   mdast node.\n * @param {MdastParents | null | undefined} [parent]\n *   Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n *   Resulting hast node.\n */\n// To do: next major: do not expose, keep bound.\nexport function one(state, node, parent) {\n  const type = node && node.type\n\n  // Fail on non-nodes.\n  if (!type) {\n    throw new Error('Expected node, got `' + node + '`')\n  }\n\n  if (own.call(state.handlers, type)) {\n    return state.handlers[type](state, node, parent)\n  }\n\n  if (state.passThrough && state.passThrough.includes(type)) {\n    // To do: next major: deep clone.\n    // @ts-expect-error: types of passed through nodes are expected to be added manually.\n    return 'children' in node ? {...node, children: all(state, node)} : node\n  }\n\n  if (state.unknownHandler) {\n    return state.unknownHandler(state, node, parent)\n  }\n\n  return defaultUnknownHandler(state, node)\n}\n\n/**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} parent\n *   mdast node to compile\n * @returns {Array<HastElementContent>}\n *   Resulting hast nodes.\n */\n// To do: next major: do not expose, keep bound.\nexport function all(state, parent) {\n  /** @type {Array<HastElementContent>} */\n  const values = []\n\n  if ('children' in parent) {\n    const nodes = parent.children\n    let index = -1\n    while (++index < nodes.length) {\n      const result = one(state, nodes[index], parent)\n\n      // To do: see if we van clean this? Can we merge texts?\n      if (result) {\n        if (index && nodes[index - 1].type === 'break') {\n          if (!Array.isArray(result) && result.type === 'text') {\n            result.value = result.value.replace(/^\\s+/, '')\n          }\n\n          if (!Array.isArray(result) && result.type === 'element') {\n            const head = result.children[0]\n\n            if (head && head.type === 'text') {\n              head.value = head.value.replace(/^\\s+/, '')\n            }\n          }\n        }\n\n        if (Array.isArray(result)) {\n          values.push(...result)\n        } else {\n          values.push(result)\n        }\n      }\n    }\n  }\n\n  return values\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   Unknown mdast node.\n * @returns {HastText | HastElement}\n *   Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n  const data = node.data || {}\n  /** @type {HastText | HastElement} */\n  const result =\n    'value' in node &&\n    !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n      ? {type: 'text', value: node.value}\n      : {\n          type: 'element',\n          tagName: 'div',\n          properties: {},\n          children: all(state, node)\n        }\n\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastContent} Type\n *   Node type.\n * @param {Array<Type>} nodes\n *   List of nodes to wrap.\n * @param {boolean | null | undefined} [loose=false]\n *   Whether to add line endings at start and end.\n * @returns {Array<Type | HastText>}\n *   Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n  /** @type {Array<Type | HastText>} */\n  const result = []\n  let index = -1\n\n  if (loose) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  while (++index < nodes.length) {\n    if (index) result.push({type: 'text', value: '\\n'})\n    result.push(nodes[index])\n  }\n\n  if (loose && nodes.length > 0) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  return result\n}\n","/**\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef NodeLike\n * @property {PositionLike | null | undefined} [position]\n */\n\n/**\n * Check if `node` is generated.\n *\n * @param {NodeLike | null | undefined} [node]\n *   Node to check.\n * @returns {boolean}\n *   Whether `node` is generated (does not have positional info).\n */\nexport function generated(node) {\n  return (\n    !node ||\n    !node.position ||\n    !node.position.start ||\n    !node.position.start.line ||\n    !node.position.start.column ||\n    !node.position.end ||\n    !node.position.end.line ||\n    !node.position.end.column\n  )\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Root} HastRoot\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Root} MdastRoot\n *\n * @typedef {import('./state.js').Options} Options\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n */\n\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * *   `hast-util-to-html` also has an option `allowDangerousHtml` which will\n *     output the raw HTML.\n *     This is typically discouraged as noted by the option name but is useful\n *     if you completely trust authors\n * *   `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n *     into standard hast nodes (`element`, `text`, etc).\n *     This is a heavy task as it needs a full HTML parser, but it is the only\n *     way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * *   when the node has a `value` (and doesn’t have `data.hName`,\n *     `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n *     node\n * *   otherwise, create a `<div>` element (which could be changed with\n *     `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n *   mdast tree.\n * @param {Options | null | undefined} [options]\n *   Configuration.\n * @returns {HastNodes | null | undefined}\n *   hast tree.\n */\n// To do: next major: always return a single `root`.\nexport function toHast(tree, options) {\n  const state = createState(tree, options)\n  const node = state.one(tree, null)\n  const foot = footer(state)\n\n  if (foot) {\n    // @ts-expect-error If there’s a footer, there were definitions, meaning block\n    // content.\n    // So assume `node` is a parent node.\n    node.children.push({type: 'text', value: '\\n'}, foot)\n  }\n\n  // To do: next major: always return root?\n  return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n *   Info passed around.\n * @returns {Element | undefined}\n *   `section` element or `undefined`.\n */\nexport function footer(state) {\n  /** @type {Array<ElementContent>} */\n  const listItems = []\n  let index = -1\n\n  while (++index < state.footnoteOrder.length) {\n    const def = state.footnoteById[state.footnoteOrder[index]]\n\n    if (!def) {\n      continue\n    }\n\n    const content = state.all(def)\n    const id = String(def.identifier).toUpperCase()\n    const safeId = normalizeUri(id.toLowerCase())\n    let referenceIndex = 0\n    /** @type {Array<ElementContent>} */\n    const backReferences = []\n\n    while (++referenceIndex <= state.footnoteCounts[id]) {\n      /** @type {Element} */\n      const backReference = {\n        type: 'element',\n        tagName: 'a',\n        properties: {\n          href:\n            '#' +\n            state.clobberPrefix +\n            'fnref-' +\n            safeId +\n            (referenceIndex > 1 ? '-' + referenceIndex : ''),\n          dataFootnoteBackref: true,\n          className: ['data-footnote-backref'],\n          ariaLabel: state.footnoteBackLabel\n        },\n        children: [{type: 'text', value: '↩'}]\n      }\n\n      if (referenceIndex > 1) {\n        backReference.children.push({\n          type: 'element',\n          tagName: 'sup',\n          children: [{type: 'text', value: String(referenceIndex)}]\n        })\n      }\n\n      if (backReferences.length > 0) {\n        backReferences.push({type: 'text', value: ' '})\n      }\n\n      backReferences.push(backReference)\n    }\n\n    const tail = content[content.length - 1]\n\n    if (tail && tail.type === 'element' && tail.tagName === 'p') {\n      const tailTail = tail.children[tail.children.length - 1]\n      if (tailTail && tailTail.type === 'text') {\n        tailTail.value += ' '\n      } else {\n        tail.children.push({type: 'text', value: ' '})\n      }\n\n      tail.children.push(...backReferences)\n    } else {\n      content.push(...backReferences)\n    }\n\n    /** @type {Element} */\n    const listItem = {\n      type: 'element',\n      tagName: 'li',\n      properties: {id: state.clobberPrefix + 'fn-' + safeId},\n      children: state.wrap(content, true)\n    }\n\n    state.patch(def, listItem)\n\n    listItems.push(listItem)\n  }\n\n  if (listItems.length === 0) {\n    return\n  }\n\n  return {\n    type: 'element',\n    tagName: 'section',\n    properties: {dataFootnotes: true, className: ['footnotes']},\n    children: [\n      {\n        type: 'element',\n        tagName: state.footnoteLabelTagName,\n        properties: {\n          // To do: use structured clone.\n          ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),\n          id: 'footnote-label'\n        },\n        children: [{type: 'text', value: state.footnoteLabel}]\n      },\n      {type: 'text', value: '\\n'},\n      {\n        type: 'element',\n        tagName: 'ol',\n        properties: {},\n        children: state.wrap(listItems, true)\n      },\n      {type: 'text', value: '\\n'}\n    ]\n  }\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor<any, any, any, any>} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `<MdastRoot, HastRoot>` overload doesn’t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * *   If a destination processor is given, that processor runs with a new HTML\n *     (hast) tree (bridge-mode).\n *     As the given processor runs with a hast tree, and rehype plugins support\n *     hast, that means rehype plugins can be used with the given processor.\n *     The hast tree is discarded in the end.\n *     It’s highly unlikely that you want to do this.\n * *   The common case is to not pass a destination processor, in which case the\n *     current processor continues running with a new HTML (hast) tree\n *     (mutate-mode).\n *     As the current processor continues with a hast tree, and rehype plugins\n *     support hast, that means rehype plugins can be used after\n *     `remark-rehype`.\n *     It’s likely that this is what you want to do.\n *\n * @param destination\n *   Optional unified processor.\n * @param options\n *   Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n  /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n  (\n    function (destination, options) {\n      return destination && 'run' in destination\n        ? bridge(destination, options)\n        : mutate(destination || options)\n    }\n  )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n  return (node, file, next) => {\n    destination.run(toHast(node, options), file, (error) => {\n      next(error)\n    })\n  }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n  // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n  return (node) => toHast(node, options)\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nexport class Schema {\n  /**\n   * @constructor\n   * @param {Properties} property\n   * @param {Normal} normal\n   * @param {string} [space]\n   */\n  constructor(property, normal, space) {\n    this.property = property\n    this.normal = normal\n    if (space) {\n      this.space = space\n    }\n  }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n  /** @type {Properties} */\n  const property = {}\n  /** @type {Normal} */\n  const normal = {}\n  let index = -1\n\n  while (++index < definitions.length) {\n    Object.assign(property, definitions[index].property)\n    Object.assign(normal, definitions[index].normal)\n  }\n\n  return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n  return value.toLowerCase()\n}\n","export class Info {\n  /**\n   * @constructor\n   * @param {string} property\n   * @param {string} attribute\n   */\n  constructor(property, attribute) {\n    /** @type {string} */\n    this.property = property\n    /** @type {string} */\n    this.attribute = attribute\n  }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n  return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n  /**\n   * @constructor\n   * @param {string} property\n   * @param {string} attribute\n   * @param {number|null} [mask]\n   * @param {string} [space]\n   */\n  constructor(property, attribute, mask, space) {\n    let index = -1\n\n    super(property, attribute)\n\n    mark(this, 'space', space)\n\n    if (typeof mask === 'number') {\n      while (++index < checks.length) {\n        const check = checks[index]\n        mark(this, checks[index], (mask & types[check]) === types[check])\n      }\n    }\n  }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n  if (value) {\n    // @ts-expect-error: assume `value` matches the expected value of `key`.\n    values[key] = value\n  }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n  /** @type {Properties} */\n  const property = {}\n  /** @type {Normal} */\n  const normal = {}\n  /** @type {string} */\n  let prop\n\n  for (prop in definition.properties) {\n    if (own.call(definition.properties, prop)) {\n      const value = definition.properties[prop]\n      const info = new DefinedInfo(\n        prop,\n        definition.transform(definition.attributes || {}, prop),\n        value,\n        definition.space\n      )\n\n      if (\n        definition.mustUseProperty &&\n        definition.mustUseProperty.includes(prop)\n      ) {\n        info.mustUseProperty = true\n      }\n\n      property[prop] = info\n\n      normal[normalize(prop)] = prop\n      normal[normalize(info.attribute)] = prop\n    }\n  }\n\n  return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n  space: 'xlink',\n  transform(_, prop) {\n    return 'xlink:' + prop.slice(5).toLowerCase()\n  },\n  properties: {\n    xLinkActuate: null,\n    xLinkArcRole: null,\n    xLinkHref: null,\n    xLinkRole: null,\n    xLinkShow: null,\n    xLinkTitle: null,\n    xLinkType: null\n  }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n  space: 'xml',\n  transform(_, prop) {\n    return 'xml:' + prop.slice(3).toLowerCase()\n  },\n  properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n  return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n  return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n  space: 'xmlns',\n  attributes: {xmlnsxlink: 'xmlns:xlink'},\n  transform: caseInsensitiveTransform,\n  properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n  transform(_, prop) {\n    return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n  },\n  properties: {\n    ariaActiveDescendant: null,\n    ariaAtomic: booleanish,\n    ariaAutoComplete: null,\n    ariaBusy: booleanish,\n    ariaChecked: booleanish,\n    ariaColCount: number,\n    ariaColIndex: number,\n    ariaColSpan: number,\n    ariaControls: spaceSeparated,\n    ariaCurrent: null,\n    ariaDescribedBy: spaceSeparated,\n    ariaDetails: null,\n    ariaDisabled: booleanish,\n    ariaDropEffect: spaceSeparated,\n    ariaErrorMessage: null,\n    ariaExpanded: booleanish,\n    ariaFlowTo: spaceSeparated,\n    ariaGrabbed: booleanish,\n    ariaHasPopup: null,\n    ariaHidden: booleanish,\n    ariaInvalid: null,\n    ariaKeyShortcuts: null,\n    ariaLabel: null,\n    ariaLabelledBy: spaceSeparated,\n    ariaLevel: number,\n    ariaLive: null,\n    ariaModal: booleanish,\n    ariaMultiLine: booleanish,\n    ariaMultiSelectable: booleanish,\n    ariaOrientation: null,\n    ariaOwns: spaceSeparated,\n    ariaPlaceholder: null,\n    ariaPosInSet: number,\n    ariaPressed: booleanish,\n    ariaReadOnly: booleanish,\n    ariaRelevant: null,\n    ariaRequired: booleanish,\n    ariaRoleDescription: spaceSeparated,\n    ariaRowCount: number,\n    ariaRowIndex: number,\n    ariaRowSpan: number,\n    ariaSelected: booleanish,\n    ariaSetSize: number,\n    ariaSort: null,\n    ariaValueMax: number,\n    ariaValueMin: number,\n    ariaValueNow: number,\n    ariaValueText: null,\n    role: null\n  }\n})\n","import {\n  boolean,\n  overloadedBoolean,\n  booleanish,\n  number,\n  spaceSeparated,\n  commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n  space: 'html',\n  attributes: {\n    acceptcharset: 'accept-charset',\n    classname: 'class',\n    htmlfor: 'for',\n    httpequiv: 'http-equiv'\n  },\n  transform: caseInsensitiveTransform,\n  mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n  properties: {\n    // Standard Properties.\n    abbr: null,\n    accept: commaSeparated,\n    acceptCharset: spaceSeparated,\n    accessKey: spaceSeparated,\n    action: null,\n    allow: null,\n    allowFullScreen: boolean,\n    allowPaymentRequest: boolean,\n    allowUserMedia: boolean,\n    alt: null,\n    as: null,\n    async: boolean,\n    autoCapitalize: null,\n    autoComplete: spaceSeparated,\n    autoFocus: boolean,\n    autoPlay: boolean,\n    capture: boolean,\n    charSet: null,\n    checked: boolean,\n    cite: null,\n    className: spaceSeparated,\n    cols: number,\n    colSpan: null,\n    content: null,\n    contentEditable: booleanish,\n    controls: boolean,\n    controlsList: spaceSeparated,\n    coords: number | commaSeparated,\n    crossOrigin: null,\n    data: null,\n    dateTime: null,\n    decoding: null,\n    default: boolean,\n    defer: boolean,\n    dir: null,\n    dirName: null,\n    disabled: boolean,\n    download: overloadedBoolean,\n    draggable: booleanish,\n    encType: null,\n    enterKeyHint: null,\n    form: null,\n    formAction: null,\n    formEncType: null,\n    formMethod: null,\n    formNoValidate: boolean,\n    formTarget: null,\n    headers: spaceSeparated,\n    height: number,\n    hidden: boolean,\n    high: number,\n    href: null,\n    hrefLang: null,\n    htmlFor: spaceSeparated,\n    httpEquiv: spaceSeparated,\n    id: null,\n    imageSizes: null,\n    imageSrcSet: null,\n    inputMode: null,\n    integrity: null,\n    is: null,\n    isMap: boolean,\n    itemId: null,\n    itemProp: spaceSeparated,\n    itemRef: spaceSeparated,\n    itemScope: boolean,\n    itemType: spaceSeparated,\n    kind: null,\n    label: null,\n    lang: null,\n    language: null,\n    list: null,\n    loading: null,\n    loop: boolean,\n    low: number,\n    manifest: null,\n    max: null,\n    maxLength: number,\n    media: null,\n    method: null,\n    min: null,\n    minLength: number,\n    multiple: boolean,\n    muted: boolean,\n    name: null,\n    nonce: null,\n    noModule: boolean,\n    noValidate: boolean,\n    onAbort: null,\n    onAfterPrint: null,\n    onAuxClick: null,\n    onBeforePrint: null,\n    onBeforeUnload: null,\n    onBlur: null,\n    onCancel: null,\n    onCanPlay: null,\n    onCanPlayThrough: null,\n    onChange: null,\n    onClick: null,\n    onClose: null,\n    onContextLost: null,\n    onContextMenu: null,\n    onContextRestored: null,\n    onCopy: null,\n    onCueChange: null,\n    onCut: null,\n    onDblClick: null,\n    onDrag: null,\n    onDragEnd: null,\n    onDragEnter: null,\n    onDragExit: null,\n    onDragLeave: null,\n    onDragOver: null,\n    onDragStart: null,\n    onDrop: null,\n    onDurationChange: null,\n    onEmptied: null,\n    onEnded: null,\n    onError: null,\n    onFocus: null,\n    onFormData: null,\n    onHashChange: null,\n    onInput: null,\n    onInvalid: null,\n    onKeyDown: null,\n    onKeyPress: null,\n    onKeyUp: null,\n    onLanguageChange: null,\n    onLoad: null,\n    onLoadedData: null,\n    onLoadedMetadata: null,\n    onLoadEnd: null,\n    onLoadStart: null,\n    onMessage: null,\n    onMessageError: null,\n    onMouseDown: null,\n    onMouseEnter: null,\n    onMouseLeave: null,\n    onMouseMove: null,\n    onMouseOut: null,\n    onMouseOver: null,\n    onMouseUp: null,\n    onOffline: null,\n    onOnline: null,\n    onPageHide: null,\n    onPageShow: null,\n    onPaste: null,\n    onPause: null,\n    onPlay: null,\n    onPlaying: null,\n    onPopState: null,\n    onProgress: null,\n    onRateChange: null,\n    onRejectionHandled: null,\n    onReset: null,\n    onResize: null,\n    onScroll: null,\n    onSecurityPolicyViolation: null,\n    onSeeked: null,\n    onSeeking: null,\n    onSelect: null,\n    onSlotChange: null,\n    onStalled: null,\n    onStorage: null,\n    onSubmit: null,\n    onSuspend: null,\n    onTimeUpdate: null,\n    onToggle: null,\n    onUnhandledRejection: null,\n    onUnload: null,\n    onVolumeChange: null,\n    onWaiting: null,\n    onWheel: null,\n    open: boolean,\n    optimum: number,\n    pattern: null,\n    ping: spaceSeparated,\n    placeholder: null,\n    playsInline: boolean,\n    poster: null,\n    preload: null,\n    readOnly: boolean,\n    referrerPolicy: null,\n    rel: spaceSeparated,\n    required: boolean,\n    reversed: boolean,\n    rows: number,\n    rowSpan: number,\n    sandbox: spaceSeparated,\n    scope: null,\n    scoped: boolean,\n    seamless: boolean,\n    selected: boolean,\n    shape: null,\n    size: number,\n    sizes: null,\n    slot: null,\n    span: number,\n    spellCheck: booleanish,\n    src: null,\n    srcDoc: null,\n    srcLang: null,\n    srcSet: null,\n    start: number,\n    step: null,\n    style: null,\n    tabIndex: number,\n    target: null,\n    title: null,\n    translate: null,\n    type: null,\n    typeMustMatch: boolean,\n    useMap: null,\n    value: booleanish,\n    width: number,\n    wrap: null,\n\n    // Legacy.\n    // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n    align: null, // Several. Use CSS `text-align` instead,\n    aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n    archive: spaceSeparated, // `<object>`. List of URIs to archives\n    axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n    background: null, // `<body>`. Use CSS `background-image` instead\n    bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n    border: number, // `<table>`. Use CSS `border-width` instead,\n    borderColor: null, // `<table>`. Use CSS `border-color` instead,\n    bottomMargin: number, // `<body>`\n    cellPadding: null, // `<table>`\n    cellSpacing: null, // `<table>`\n    char: null, // Several table elements. When `align=char`, sets the character to align on\n    charOff: null, // Several table elements. When `char`, offsets the alignment\n    classId: null, // `<object>`\n    clear: null, // `<br>`. Use CSS `clear` instead\n    code: null, // `<object>`\n    codeBase: null, // `<object>`\n    codeType: null, // `<object>`\n    color: null, // `<font>` and `<hr>`. Use CSS instead\n    compact: boolean, // Lists. Use CSS to reduce space between items instead\n    declare: boolean, // `<object>`\n    event: null, // `<script>`\n    face: null, // `<font>`. Use CSS instead\n    frame: null, // `<table>`\n    frameBorder: null, // `<iframe>`. Use CSS `border` instead\n    hSpace: number, // `<img>` and `<object>`\n    leftMargin: number, // `<body>`\n    link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n    longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n    lowSrc: null, // `<img>`. Use a `<picture>`\n    marginHeight: number, // `<body>`\n    marginWidth: number, // `<body>`\n    noResize: boolean, // `<frame>`\n    noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n    noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n    noWrap: boolean, // `<td>` and `<th>`\n    object: null, // `<applet>`\n    profile: null, // `<head>`\n    prompt: null, // `<isindex>`\n    rev: null, // `<link>`\n    rightMargin: number, // `<body>`\n    rules: null, // `<table>`\n    scheme: null, // `<meta>`\n    scrolling: booleanish, // `<frame>`. Use overflow in the child context\n    standby: null, // `<object>`\n    summary: null, // `<table>`\n    text: null, // `<body>`. Use CSS `color` instead\n    topMargin: number, // `<body>`\n    valueType: null, // `<param>`\n    version: null, // `<html>`. Use a doctype.\n    vAlign: null, // Several. Use CSS `vertical-align` instead\n    vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n    vSpace: number, // `<img>` and `<object>`\n\n    // Non-standard Properties.\n    allowTransparency: null,\n    autoCorrect: null,\n    autoSave: null,\n    disablePictureInPicture: boolean,\n    disableRemotePlayback: boolean,\n    prefix: null,\n    property: null,\n    results: number,\n    security: null,\n    unselectable: null\n  }\n})\n","import {\n  boolean,\n  number,\n  spaceSeparated,\n  commaSeparated,\n  commaOrSpaceSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseSensitiveTransform} from './util/case-sensitive-transform.js'\n\nexport const svg = create({\n  space: 'svg',\n  attributes: {\n    accentHeight: 'accent-height',\n    alignmentBaseline: 'alignment-baseline',\n    arabicForm: 'arabic-form',\n    baselineShift: 'baseline-shift',\n    capHeight: 'cap-height',\n    className: 'class',\n    clipPath: 'clip-path',\n    clipRule: 'clip-rule',\n    colorInterpolation: 'color-interpolation',\n    colorInterpolationFilters: 'color-interpolation-filters',\n    colorProfile: 'color-profile',\n    colorRendering: 'color-rendering',\n    crossOrigin: 'crossorigin',\n    dataType: 'datatype',\n    dominantBaseline: 'dominant-baseline',\n    enableBackground: 'enable-background',\n    fillOpacity: 'fill-opacity',\n    fillRule: 'fill-rule',\n    floodColor: 'flood-color',\n    floodOpacity: 'flood-opacity',\n    fontFamily: 'font-family',\n    fontSize: 'font-size',\n    fontSizeAdjust: 'font-size-adjust',\n    fontStretch: 'font-stretch',\n    fontStyle: 'font-style',\n    fontVariant: 'font-variant',\n    fontWeight: 'font-weight',\n    glyphName: 'glyph-name',\n    glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n    glyphOrientationVertical: 'glyph-orientation-vertical',\n    hrefLang: 'hreflang',\n    horizAdvX: 'horiz-adv-x',\n    horizOriginX: 'horiz-origin-x',\n    horizOriginY: 'horiz-origin-y',\n    imageRendering: 'image-rendering',\n    letterSpacing: 'letter-spacing',\n    lightingColor: 'lighting-color',\n    markerEnd: 'marker-end',\n    markerMid: 'marker-mid',\n    markerStart: 'marker-start',\n    navDown: 'nav-down',\n    navDownLeft: 'nav-down-left',\n    navDownRight: 'nav-down-right',\n    navLeft: 'nav-left',\n    navNext: 'nav-next',\n    navPrev: 'nav-prev',\n    navRight: 'nav-right',\n    navUp: 'nav-up',\n    navUpLeft: 'nav-up-left',\n    navUpRight: 'nav-up-right',\n    onAbort: 'onabort',\n    onActivate: 'onactivate',\n    onAfterPrint: 'onafterprint',\n    onBeforePrint: 'onbeforeprint',\n    onBegin: 'onbegin',\n    onCancel: 'oncancel',\n    onCanPlay: 'oncanplay',\n    onCanPlayThrough: 'oncanplaythrough',\n    onChange: 'onchange',\n    onClick: 'onclick',\n    onClose: 'onclose',\n    onCopy: 'oncopy',\n    onCueChange: 'oncuechange',\n    onCut: 'oncut',\n    onDblClick: 'ondblclick',\n    onDrag: 'ondrag',\n    onDragEnd: 'ondragend',\n    onDragEnter: 'ondragenter',\n    onDragExit: 'ondragexit',\n    onDragLeave: 'ondragleave',\n    onDragOver: 'ondragover',\n    onDragStart: 'ondragstart',\n    onDrop: 'ondrop',\n    onDurationChange: 'ondurationchange',\n    onEmptied: 'onemptied',\n    onEnd: 'onend',\n    onEnded: 'onended',\n    onError: 'onerror',\n    onFocus: 'onfocus',\n    onFocusIn: 'onfocusin',\n    onFocusOut: 'onfocusout',\n    onHashChange: 'onhashchange',\n    onInput: 'oninput',\n    onInvalid: 'oninvalid',\n    onKeyDown: 'onkeydown',\n    onKeyPress: 'onkeypress',\n    onKeyUp: 'onkeyup',\n    onLoad: 'onload',\n    onLoadedData: 'onloadeddata',\n    onLoadedMetadata: 'onloadedmetadata',\n    onLoadStart: 'onloadstart',\n    onMessage: 'onmessage',\n    onMouseDown: 'onmousedown',\n    onMouseEnter: 'onmouseenter',\n    onMouseLeave: 'onmouseleave',\n    onMouseMove: 'onmousemove',\n    onMouseOut: 'onmouseout',\n    onMouseOver: 'onmouseover',\n    onMouseUp: 'onmouseup',\n    onMouseWheel: 'onmousewheel',\n    onOffline: 'onoffline',\n    onOnline: 'ononline',\n    onPageHide: 'onpagehide',\n    onPageShow: 'onpageshow',\n    onPaste: 'onpaste',\n    onPause: 'onpause',\n    onPlay: 'onplay',\n    onPlaying: 'onplaying',\n    onPopState: 'onpopstate',\n    onProgress: 'onprogress',\n    onRateChange: 'onratechange',\n    onRepeat: 'onrepeat',\n    onReset: 'onreset',\n    onResize: 'onresize',\n    onScroll: 'onscroll',\n    onSeeked: 'onseeked',\n    onSeeking: 'onseeking',\n    onSelect: 'onselect',\n    onShow: 'onshow',\n    onStalled: 'onstalled',\n    onStorage: 'onstorage',\n    onSubmit: 'onsubmit',\n    onSuspend: 'onsuspend',\n    onTimeUpdate: 'ontimeupdate',\n    onToggle: 'ontoggle',\n    onUnload: 'onunload',\n    onVolumeChange: 'onvolumechange',\n    onWaiting: 'onwaiting',\n    onZoom: 'onzoom',\n    overlinePosition: 'overline-position',\n    overlineThickness: 'overline-thickness',\n    paintOrder: 'paint-order',\n    panose1: 'panose-1',\n    pointerEvents: 'pointer-events',\n    referrerPolicy: 'referrerpolicy',\n    renderingIntent: 'rendering-intent',\n    shapeRendering: 'shape-rendering',\n    stopColor: 'stop-color',\n    stopOpacity: 'stop-opacity',\n    strikethroughPosition: 'strikethrough-position',\n    strikethroughThickness: 'strikethrough-thickness',\n    strokeDashArray: 'stroke-dasharray',\n    strokeDashOffset: 'stroke-dashoffset',\n    strokeLineCap: 'stroke-linecap',\n    strokeLineJoin: 'stroke-linejoin',\n    strokeMiterLimit: 'stroke-miterlimit',\n    strokeOpacity: 'stroke-opacity',\n    strokeWidth: 'stroke-width',\n    tabIndex: 'tabindex',\n    textAnchor: 'text-anchor',\n    textDecoration: 'text-decoration',\n    textRendering: 'text-rendering',\n    typeOf: 'typeof',\n    underlinePosition: 'underline-position',\n    underlineThickness: 'underline-thickness',\n    unicodeBidi: 'unicode-bidi',\n    unicodeRange: 'unicode-range',\n    unitsPerEm: 'units-per-em',\n    vAlphabetic: 'v-alphabetic',\n    vHanging: 'v-hanging',\n    vIdeographic: 'v-ideographic',\n    vMathematical: 'v-mathematical',\n    vectorEffect: 'vector-effect',\n    vertAdvY: 'vert-adv-y',\n    vertOriginX: 'vert-origin-x',\n    vertOriginY: 'vert-origin-y',\n    wordSpacing: 'word-spacing',\n    writingMode: 'writing-mode',\n    xHeight: 'x-height',\n    // These were camelcased in Tiny. Now lowercased in SVG 2\n    playbackOrder: 'playbackorder',\n    timelineBegin: 'timelinebegin'\n  },\n  transform: caseSensitiveTransform,\n  properties: {\n    about: commaOrSpaceSeparated,\n    accentHeight: number,\n    accumulate: null,\n    additive: null,\n    alignmentBaseline: null,\n    alphabetic: number,\n    amplitude: number,\n    arabicForm: null,\n    ascent: number,\n    attributeName: null,\n    attributeType: null,\n    azimuth: number,\n    bandwidth: null,\n    baselineShift: null,\n    baseFrequency: null,\n    baseProfile: null,\n    bbox: null,\n    begin: null,\n    bias: number,\n    by: null,\n    calcMode: null,\n    capHeight: number,\n    className: spaceSeparated,\n    clip: null,\n    clipPath: null,\n    clipPathUnits: null,\n    clipRule: null,\n    color: null,\n    colorInterpolation: null,\n    colorInterpolationFilters: null,\n    colorProfile: null,\n    colorRendering: null,\n    content: null,\n    contentScriptType: null,\n    contentStyleType: null,\n    crossOrigin: null,\n    cursor: null,\n    cx: null,\n    cy: null,\n    d: null,\n    dataType: null,\n    defaultAction: null,\n    descent: number,\n    diffuseConstant: number,\n    direction: null,\n    display: null,\n    dur: null,\n    divisor: number,\n    dominantBaseline: null,\n    download: boolean,\n    dx: null,\n    dy: null,\n    edgeMode: null,\n    editable: null,\n    elevation: number,\n    enableBackground: null,\n    end: null,\n    event: null,\n    exponent: number,\n    externalResourcesRequired: null,\n    fill: null,\n    fillOpacity: number,\n    fillRule: null,\n    filter: null,\n    filterRes: null,\n    filterUnits: null,\n    floodColor: null,\n    floodOpacity: null,\n    focusable: null,\n    focusHighlight: null,\n    fontFamily: null,\n    fontSize: null,\n    fontSizeAdjust: null,\n    fontStretch: null,\n    fontStyle: null,\n    fontVariant: null,\n    fontWeight: null,\n    format: null,\n    fr: null,\n    from: null,\n    fx: null,\n    fy: null,\n    g1: commaSeparated,\n    g2: commaSeparated,\n    glyphName: commaSeparated,\n    glyphOrientationHorizontal: null,\n    glyphOrientationVertical: null,\n    glyphRef: null,\n    gradientTransform: null,\n    gradientUnits: null,\n    handler: null,\n    hanging: number,\n    hatchContentUnits: null,\n    hatchUnits: null,\n    height: null,\n    href: null,\n    hrefLang: null,\n    horizAdvX: number,\n    horizOriginX: number,\n    horizOriginY: number,\n    id: null,\n    ideographic: number,\n    imageRendering: null,\n    initialVisibility: null,\n    in: null,\n    in2: null,\n    intercept: number,\n    k: number,\n    k1: number,\n    k2: number,\n    k3: number,\n    k4: number,\n    kernelMatrix: commaOrSpaceSeparated,\n    kernelUnitLength: null,\n    keyPoints: null, // SEMI_COLON_SEPARATED\n    keySplines: null, // SEMI_COLON_SEPARATED\n    keyTimes: null, // SEMI_COLON_SEPARATED\n    kerning: null,\n    lang: null,\n    lengthAdjust: null,\n    letterSpacing: null,\n    lightingColor: null,\n    limitingConeAngle: number,\n    local: null,\n    markerEnd: null,\n    markerMid: null,\n    markerStart: null,\n    markerHeight: null,\n    markerUnits: null,\n    markerWidth: null,\n    mask: null,\n    maskContentUnits: null,\n    maskUnits: null,\n    mathematical: null,\n    max: null,\n    media: null,\n    mediaCharacterEncoding: null,\n    mediaContentEncodings: null,\n    mediaSize: number,\n    mediaTime: null,\n    method: null,\n    min: null,\n    mode: null,\n    name: null,\n    navDown: null,\n    navDownLeft: null,\n    navDownRight: null,\n    navLeft: null,\n    navNext: null,\n    navPrev: null,\n    navRight: null,\n    navUp: null,\n    navUpLeft: null,\n    navUpRight: null,\n    numOctaves: null,\n    observer: null,\n    offset: null,\n    onAbort: null,\n    onActivate: null,\n    onAfterPrint: null,\n    onBeforePrint: null,\n    onBegin: null,\n    onCancel: null,\n    onCanPlay: null,\n    onCanPlayThrough: null,\n    onChange: null,\n    onClick: null,\n    onClose: null,\n    onCopy: null,\n    onCueChange: null,\n    onCut: null,\n    onDblClick: null,\n    onDrag: null,\n    onDragEnd: null,\n    onDragEnter: null,\n    onDragExit: null,\n    onDragLeave: null,\n    onDragOver: null,\n    onDragStart: null,\n    onDrop: null,\n    onDurationChange: null,\n    onEmptied: null,\n    onEnd: null,\n    onEnded: null,\n    onError: null,\n    onFocus: null,\n    onFocusIn: null,\n    onFocusOut: null,\n    onHashChange: null,\n    onInput: null,\n    onInvalid: null,\n    onKeyDown: null,\n    onKeyPress: null,\n    onKeyUp: null,\n    onLoad: null,\n    onLoadedData: null,\n    onLoadedMetadata: null,\n    onLoadStart: null,\n    onMessage: null,\n    onMouseDown: null,\n    onMouseEnter: null,\n    onMouseLeave: null,\n    onMouseMove: null,\n    onMouseOut: null,\n    onMouseOver: null,\n    onMouseUp: null,\n    onMouseWheel: null,\n    onOffline: null,\n    onOnline: null,\n    onPageHide: null,\n    onPageShow: null,\n    onPaste: null,\n    onPause: null,\n    onPlay: null,\n    onPlaying: null,\n    onPopState: null,\n    onProgress: null,\n    onRateChange: null,\n    onRepeat: null,\n    onReset: null,\n    onResize: null,\n    onScroll: null,\n    onSeeked: null,\n    onSeeking: null,\n    onSelect: null,\n    onShow: null,\n    onStalled: null,\n    onStorage: null,\n    onSubmit: null,\n    onSuspend: null,\n    onTimeUpdate: null,\n    onToggle: null,\n    onUnload: null,\n    onVolumeChange: null,\n    onWaiting: null,\n    onZoom: null,\n    opacity: null,\n    operator: null,\n    order: null,\n    orient: null,\n    orientation: null,\n    origin: null,\n    overflow: null,\n    overlay: null,\n    overlinePosition: number,\n    overlineThickness: number,\n    paintOrder: null,\n    panose1: null,\n    path: null,\n    pathLength: number,\n    patternContentUnits: null,\n    patternTransform: null,\n    patternUnits: null,\n    phase: null,\n    ping: spaceSeparated,\n    pitch: null,\n    playbackOrder: null,\n    pointerEvents: null,\n    points: null,\n    pointsAtX: number,\n    pointsAtY: number,\n    pointsAtZ: number,\n    preserveAlpha: null,\n    preserveAspectRatio: null,\n    primitiveUnits: null,\n    propagate: null,\n    property: commaOrSpaceSeparated,\n    r: null,\n    radius: null,\n    referrerPolicy: null,\n    refX: null,\n    refY: null,\n    rel: commaOrSpaceSeparated,\n    rev: commaOrSpaceSeparated,\n    renderingIntent: null,\n    repeatCount: null,\n    repeatDur: null,\n    requiredExtensions: commaOrSpaceSeparated,\n    requiredFeatures: commaOrSpaceSeparated,\n    requiredFonts: commaOrSpaceSeparated,\n    requiredFormats: commaOrSpaceSeparated,\n    resource: null,\n    restart: null,\n    result: null,\n    rotate: null,\n    rx: null,\n    ry: null,\n    scale: null,\n    seed: null,\n    shapeRendering: null,\n    side: null,\n    slope: null,\n    snapshotTime: null,\n    specularConstant: number,\n    specularExponent: number,\n    spreadMethod: null,\n    spacing: null,\n    startOffset: null,\n    stdDeviation: null,\n    stemh: null,\n    stemv: null,\n    stitchTiles: null,\n    stopColor: null,\n    stopOpacity: null,\n    strikethroughPosition: number,\n    strikethroughThickness: number,\n    string: null,\n    stroke: null,\n    strokeDashArray: commaOrSpaceSeparated,\n    strokeDashOffset: null,\n    strokeLineCap: null,\n    strokeLineJoin: null,\n    strokeMiterLimit: number,\n    strokeOpacity: number,\n    strokeWidth: null,\n    style: null,\n    surfaceScale: number,\n    syncBehavior: null,\n    syncBehaviorDefault: null,\n    syncMaster: null,\n    syncTolerance: null,\n    syncToleranceDefault: null,\n    systemLanguage: commaOrSpaceSeparated,\n    tabIndex: number,\n    tableValues: null,\n    target: null,\n    targetX: number,\n    targetY: number,\n    textAnchor: null,\n    textDecoration: null,\n    textRendering: null,\n    textLength: null,\n    timelineBegin: null,\n    title: null,\n    transformBehavior: null,\n    type: null,\n    typeOf: commaOrSpaceSeparated,\n    to: null,\n    transform: null,\n    u1: null,\n    u2: null,\n    underlinePosition: number,\n    underlineThickness: number,\n    unicode: null,\n    unicodeBidi: null,\n    unicodeRange: null,\n    unitsPerEm: number,\n    values: null,\n    vAlphabetic: number,\n    vMathematical: number,\n    vectorEffect: null,\n    vHanging: number,\n    vIdeographic: number,\n    version: null,\n    vertAdvY: number,\n    vertOriginX: number,\n    vertOriginY: number,\n    viewBox: null,\n    viewTarget: null,\n    visibility: null,\n    width: null,\n    widths: null,\n    wordSpacing: null,\n    writingMode: null,\n    x: null,\n    x1: null,\n    x2: null,\n    xChannelSelector: null,\n    xHeight: number,\n    y: null,\n    y1: null,\n    y2: null,\n    yChannelSelector: null,\n    z: null,\n    zoomAndPan: null\n  }\n})\n","/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nimport {merge} from './lib/util/merge.js'\nimport {xlink} from './lib/xlink.js'\nimport {xml} from './lib/xml.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\n\nexport {find} from './lib/find.js'\nexport {hastToReact} from './lib/hast-to-react.js'\nexport {normalize} from './lib/normalize.js'\nexport const html = merge([xml, xlink, xmlns, aria, htmlBase], 'html')\nexport const svg = merge([xml, xlink, xmlns, aria, svgBase], 'svg')\n","import {visit} from 'unist-util-visit'\n\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n *\n * @callback AllowElement\n * @param {Element} element\n * @param {number} index\n * @param {Element|Root} parent\n * @returns {boolean|undefined}\n *\n * @typedef Options\n * @property {Array<string>} [allowedElements]\n * @property {Array<string>} [disallowedElements=[]]\n * @property {AllowElement} [allowElement]\n * @property {boolean} [unwrapDisallowed=false]\n */\n\n/**\n * @type {import('unified').Plugin<[Options], Root>}\n */\nexport default function rehypeFilter(options) {\n  if (options.allowedElements && options.disallowedElements) {\n    throw new TypeError(\n      'Only one of `allowedElements` and `disallowedElements` should be defined'\n    )\n  }\n\n  if (\n    options.allowedElements ||\n    options.disallowedElements ||\n    options.allowElement\n  ) {\n    return (tree) => {\n      visit(tree, 'element', (node, index, parent_) => {\n        const parent = /** @type {Element|Root} */ (parent_)\n        /** @type {boolean|undefined} */\n        let remove\n\n        if (options.allowedElements) {\n          remove = !options.allowedElements.includes(node.tagName)\n        } else if (options.disallowedElements) {\n          remove = options.disallowedElements.includes(node.tagName)\n        }\n\n        if (!remove && options.allowElement && typeof index === 'number') {\n          remove = !options.allowElement(node, index, parent)\n        }\n\n        if (remove && typeof index === 'number') {\n          if (options.unwrapDisallowed && node.children) {\n            parent.children.splice(index, 1, ...node.children)\n          } else {\n            parent.children.splice(index, 1)\n          }\n\n          return index\n        }\n\n        return undefined\n      })\n    }\n  }\n}\n","/**\n * @param {unknown} thing\n * @returns {boolean}\n */\nexport function whitespace(thing) {\n  /** @type {string} */\n  var value =\n    // @ts-ignore looks like a node.\n    thing && typeof thing === 'object' && thing.type === 'text'\n      ? // @ts-ignore looks like a text.\n        thing.value || ''\n      : thing\n\n  // HTML whitespace expression.\n  // See <https://html.spec.whatwg.org/#space-character>.\n  return typeof value === 'string' && value.replace(/[ \\t\\n\\f\\r]/g, '') === ''\n}\n","/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\nimport {normalize} from './normalize.js'\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\n\nconst valid = /^data[-\\w.:]+$/i\nconst dash = /-[a-z]/g\nconst cap = /[A-Z]/g\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nexport function find(schema, value) {\n  const normal = normalize(value)\n  let prop = value\n  let Type = Info\n\n  if (normal in schema.normal) {\n    return schema.property[schema.normal[normal]]\n  }\n\n  if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n    // Attribute or property.\n    if (value.charAt(4) === '-') {\n      // Turn it into a property.\n      const rest = value.slice(5).replace(dash, camelcase)\n      prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n    } else {\n      // Turn it into an attribute.\n      const rest = value.slice(4)\n\n      if (!dash.test(rest)) {\n        let dashes = rest.replace(cap, kebab)\n\n        if (dashes.charAt(0) !== '-') {\n          dashes = '-' + dashes\n        }\n\n        value = 'data' + dashes\n      }\n    }\n\n    Type = DefinedInfo\n  }\n\n  return new Type(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n  return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n  return $0.charAt(1).toUpperCase()\n}\n","export const hastToReact = {\n  classId: 'classID',\n  dataType: 'datatype',\n  itemId: 'itemID',\n  strokeDashArray: 'strokeDasharray',\n  strokeDashOffset: 'strokeDashoffset',\n  strokeLineCap: 'strokeLinecap',\n  strokeLineJoin: 'strokeLinejoin',\n  strokeMiterLimit: 'strokeMiterlimit',\n  typeOf: 'typeof',\n  xLinkActuate: 'xlinkActuate',\n  xLinkArcRole: 'xlinkArcrole',\n  xLinkHref: 'xlinkHref',\n  xLinkRole: 'xlinkRole',\n  xLinkShow: 'xlinkShow',\n  xLinkTitle: 'xlinkTitle',\n  xLinkType: 'xlinkType',\n  xmlnsXLink: 'xmlnsXlink'\n}\n","/**\n * Parse space separated tokens to an array of strings.\n *\n * @param {string} value Space separated tokens\n * @returns {Array.<string>} Tokens\n */\nexport function parse(value) {\n  const input = String(value || '').trim()\n  return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated tokens.\n *\n * @param {Array.<string|number>} values Tokens\n * @returns {string} Space separated tokens\n */\nexport function stringify(values) {\n  return values.join(' ').trim()\n}\n","/**\n * @typedef {Object} StringifyOptions\n * @property {boolean} [padLeft=true] Whether to pad a space before a token (`boolean`, default: `true`).\n * @property {boolean} [padRight=false] Whether to pad a space after a token (`boolean`, default: `false`).\n */\n\n/**\n * Parse comma separated tokens to an array.\n *\n * @param {string} value\n * @returns {Array.<string>}\n */\nexport function parse(value) {\n  /** @type {Array.<string>} */\n  var tokens = []\n  var input = String(value || '')\n  var index = input.indexOf(',')\n  var start = 0\n  /** @type {boolean} */\n  var end\n  /** @type {string} */\n  var token\n\n  while (!end) {\n    if (index === -1) {\n      index = input.length\n      end = true\n    }\n\n    token = input.slice(start, index).trim()\n\n    if (token || !end) {\n      tokens.push(token)\n    }\n\n    start = index + 1\n    index = input.indexOf(',', start)\n  }\n\n  return tokens\n}\n\n/**\n * Serialize an array of strings to comma separated tokens.\n *\n * @param {Array.<string|number>} values\n * @param {StringifyOptions} [options]\n * @returns {string}\n */\nexport function stringify(values, options) {\n  var settings = options || {}\n\n  // Ensure the last empty entry is seen.\n  if (values[values.length - 1] === '') {\n    values = values.concat('')\n  }\n\n  return values\n    .join(\n      (settings.padRight ? ' ' : '') +\n        ',' +\n        (settings.padLeft === false ? '' : ' ')\n    )\n    .trim()\n}\n","import StyleToObject from './index.js';\n\nexport default StyleToObject;\n","const protocols = ['http', 'https', 'mailto', 'tel']\n\n/**\n * @param {string} uri\n * @returns {string}\n */\nexport function uriTransformer(uri) {\n  const url = (uri || '').trim()\n  const first = url.charAt(0)\n\n  if (first === '#' || first === '/') {\n    return url\n  }\n\n  const colon = url.indexOf(':')\n  if (colon === -1) {\n    return url\n  }\n\n  let index = -1\n\n  while (++index < protocols.length) {\n    const protocol = protocols[index]\n\n    if (\n      colon === protocol.length &&\n      url.slice(0, protocol.length).toLowerCase() === protocol\n    ) {\n      return url\n    }\n  }\n\n  index = url.indexOf('?')\n  if (index !== -1 && colon > index) {\n    return url\n  }\n\n  index = url.indexOf('#')\n  if (index !== -1 && colon > index) {\n    return url\n  }\n\n  // eslint-disable-next-line no-script-url\n  return 'javascript:void(0)'\n}\n","/**\n * @template T\n * @typedef {import('react').ComponentType<T>} ComponentType<T>\n */\n\n/**\n * @template T\n * @typedef {import('react').ComponentPropsWithoutRef<T>} ComponentPropsWithoutRef<T>\n */\n\n/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('unist').Position} Position\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('./complex-types.js').ReactMarkdownProps} ReactMarkdownProps\n *\n * @typedef Raw\n * @property {'raw'} type\n * @property {string} value\n *\n * @typedef Context\n * @property {Options} options\n * @property {Schema} schema\n * @property {number} listDepth\n *\n * @callback TransformLink\n * @param {string} href\n * @param {Array<ElementContent>} children\n * @param {string?} title\n * @returns {string}\n *\n * @callback TransformImage\n * @param {string} src\n * @param {string} alt\n * @param {string?} title\n * @returns {string}\n *\n * @typedef {import('react').HTMLAttributeAnchorTarget} TransformLinkTargetType\n *\n * @callback TransformLinkTarget\n * @param {string} href\n * @param {Array<ElementContent>} children\n * @param {string?} title\n * @returns {TransformLinkTargetType|undefined}\n *\n * @typedef {keyof JSX.IntrinsicElements} ReactMarkdownNames\n *\n * To do: is `data-sourcepos` typeable?\n *\n * @typedef {ComponentPropsWithoutRef<'code'> & ReactMarkdownProps & {inline?: boolean}} CodeProps\n * @typedef {ComponentPropsWithoutRef<'h1'> & ReactMarkdownProps & {level: number}} HeadingProps\n * @typedef {ComponentPropsWithoutRef<'li'> & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} LiProps\n * @typedef {ComponentPropsWithoutRef<'ol'> & ReactMarkdownProps & {depth: number, ordered: true}} OrderedListProps\n * @typedef {ComponentPropsWithoutRef<'td'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: false}} TableDataCellProps\n * @typedef {ComponentPropsWithoutRef<'th'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: true}} TableHeaderCellProps\n * @typedef {ComponentPropsWithoutRef<'tr'> & ReactMarkdownProps & {isHeader: boolean}} TableRowProps\n * @typedef {ComponentPropsWithoutRef<'ul'> & ReactMarkdownProps & {depth: number, ordered: false}} UnorderedListProps\n *\n * @typedef {ComponentType<CodeProps>} CodeComponent\n * @typedef {ComponentType<HeadingProps>} HeadingComponent\n * @typedef {ComponentType<LiProps>} LiComponent\n * @typedef {ComponentType<OrderedListProps>} OrderedListComponent\n * @typedef {ComponentType<TableDataCellProps>} TableDataCellComponent\n * @typedef {ComponentType<TableHeaderCellProps>} TableHeaderCellComponent\n * @typedef {ComponentType<TableRowProps>} TableRowComponent\n * @typedef {ComponentType<UnorderedListProps>} UnorderedListComponent\n *\n * @typedef SpecialComponents\n * @property {CodeComponent|ReactMarkdownNames} code\n * @property {HeadingComponent|ReactMarkdownNames} h1\n * @property {HeadingComponent|ReactMarkdownNames} h2\n * @property {HeadingComponent|ReactMarkdownNames} h3\n * @property {HeadingComponent|ReactMarkdownNames} h4\n * @property {HeadingComponent|ReactMarkdownNames} h5\n * @property {HeadingComponent|ReactMarkdownNames} h6\n * @property {LiComponent|ReactMarkdownNames} li\n * @property {OrderedListComponent|ReactMarkdownNames} ol\n * @property {TableDataCellComponent|ReactMarkdownNames} td\n * @property {TableHeaderCellComponent|ReactMarkdownNames} th\n * @property {TableRowComponent|ReactMarkdownNames} tr\n * @property {UnorderedListComponent|ReactMarkdownNames} ul\n *\n * @typedef {Partial<Omit<import('./complex-types.js').NormalComponents, keyof SpecialComponents> & SpecialComponents>} Components\n *\n * @typedef Options\n * @property {boolean} [sourcePos=false]\n * @property {boolean} [rawSourcePos=false]\n * @property {boolean} [skipHtml=false]\n * @property {boolean} [includeElementIndex=false]\n * @property {null|false|TransformLink} [transformLinkUri]\n * @property {TransformImage} [transformImageUri]\n * @property {TransformLinkTargetType|TransformLinkTarget} [linkTarget]\n * @property {Components} [components]\n */\n\nimport React from 'react'\nimport ReactIs from 'react-is'\nimport {whitespace} from 'hast-util-whitespace'\nimport {svg, find, hastToReact} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport style from 'style-to-object'\nimport {uriTransformer} from './uri-transformer.js'\n\nconst own = {}.hasOwnProperty\n\n// The table-related elements that must not contain whitespace text according\n// to React.\nconst tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr'])\n\n/**\n * @param {Context} context\n * @param {Element|Root} node\n */\nexport function childrenToReact(context, node) {\n  /** @type {Array<ReactNode>} */\n  const children = []\n  let childIndex = -1\n  /** @type {Comment|Doctype|Element|Raw|Text} */\n  let child\n\n  while (++childIndex < node.children.length) {\n    child = node.children[childIndex]\n\n    if (child.type === 'element') {\n      children.push(toReact(context, child, childIndex, node))\n    } else if (child.type === 'text') {\n      // Currently, a warning is triggered by react for *any* white space in\n      // tables.\n      // So we drop it.\n      // See: <https://github.com/facebook/react/pull/7081>.\n      // See: <https://github.com/facebook/react/pull/7515>.\n      // See: <https://github.com/remarkjs/remark-react/issues/64>.\n      // See: <https://github.com/remarkjs/react-markdown/issues/576>.\n      if (\n        node.type !== 'element' ||\n        !tableElements.has(node.tagName) ||\n        !whitespace(child)\n      ) {\n        children.push(child.value)\n      }\n    } else if (child.type === 'raw' && !context.options.skipHtml) {\n      // Default behavior is to show (encoded) HTML.\n      children.push(child.value)\n    }\n  }\n\n  return children\n}\n\n/**\n * @param {Context} context\n * @param {Element} node\n * @param {number} index\n * @param {Element|Root} parent\n */\nfunction toReact(context, node, index, parent) {\n  const options = context.options\n  const transform =\n    options.transformLinkUri === undefined\n      ? uriTransformer\n      : options.transformLinkUri\n  const parentSchema = context.schema\n  /** @type {ReactMarkdownNames} */\n  // @ts-expect-error assume a known HTML/SVG element.\n  const name = node.tagName\n  /** @type {Record<string, unknown>} */\n  const properties = {}\n  let schema = parentSchema\n  /** @type {string} */\n  let property\n\n  if (parentSchema.space === 'html' && name === 'svg') {\n    schema = svg\n    context.schema = schema\n  }\n\n  if (node.properties) {\n    for (property in node.properties) {\n      if (own.call(node.properties, property)) {\n        addProperty(properties, property, node.properties[property], context)\n      }\n    }\n  }\n\n  if (name === 'ol' || name === 'ul') {\n    context.listDepth++\n  }\n\n  const children = childrenToReact(context, node)\n\n  if (name === 'ol' || name === 'ul') {\n    context.listDepth--\n  }\n\n  // Restore parent schema.\n  context.schema = parentSchema\n\n  // Nodes created by plugins do not have positional info, in which case we use\n  // an object that matches the position interface.\n  const position = node.position || {\n    start: {line: null, column: null, offset: null},\n    end: {line: null, column: null, offset: null}\n  }\n  const component =\n    options.components && own.call(options.components, name)\n      ? options.components[name]\n      : name\n  const basic = typeof component === 'string' || component === React.Fragment\n\n  if (!ReactIs.isValidElementType(component)) {\n    throw new TypeError(\n      `Component for name \\`${name}\\` not defined or is not renderable`\n    )\n  }\n\n  properties.key = [\n    name,\n    position.start.line,\n    position.start.column,\n    index\n  ].join('-')\n\n  if (name === 'a' && options.linkTarget) {\n    properties.target =\n      typeof options.linkTarget === 'function'\n        ? options.linkTarget(\n            String(properties.href || ''),\n            node.children,\n            typeof properties.title === 'string' ? properties.title : null\n          )\n        : options.linkTarget\n  }\n\n  if (name === 'a' && transform) {\n    properties.href = transform(\n      String(properties.href || ''),\n      node.children,\n      typeof properties.title === 'string' ? properties.title : null\n    )\n  }\n\n  if (\n    !basic &&\n    name === 'code' &&\n    parent.type === 'element' &&\n    parent.tagName !== 'pre'\n  ) {\n    properties.inline = true\n  }\n\n  if (\n    !basic &&\n    (name === 'h1' ||\n      name === 'h2' ||\n      name === 'h3' ||\n      name === 'h4' ||\n      name === 'h5' ||\n      name === 'h6')\n  ) {\n    properties.level = Number.parseInt(name.charAt(1), 10)\n  }\n\n  if (name === 'img' && options.transformImageUri) {\n    properties.src = options.transformImageUri(\n      String(properties.src || ''),\n      String(properties.alt || ''),\n      typeof properties.title === 'string' ? properties.title : null\n    )\n  }\n\n  if (!basic && name === 'li' && parent.type === 'element') {\n    const input = getInputElement(node)\n    properties.checked =\n      input && input.properties ? Boolean(input.properties.checked) : null\n    properties.index = getElementsBeforeCount(parent, node)\n    properties.ordered = parent.tagName === 'ol'\n  }\n\n  if (!basic && (name === 'ol' || name === 'ul')) {\n    properties.ordered = name === 'ol'\n    properties.depth = context.listDepth\n  }\n\n  if (name === 'td' || name === 'th') {\n    if (properties.align) {\n      if (!properties.style) properties.style = {}\n      // @ts-expect-error assume `style` is an object\n      properties.style.textAlign = properties.align\n      delete properties.align\n    }\n\n    if (!basic) {\n      properties.isHeader = name === 'th'\n    }\n  }\n\n  if (!basic && name === 'tr' && parent.type === 'element') {\n    properties.isHeader = Boolean(parent.tagName === 'thead')\n  }\n\n  // If `sourcePos` is given, pass source information (line/column info from markdown source).\n  if (options.sourcePos) {\n    properties['data-sourcepos'] = flattenPosition(position)\n  }\n\n  if (!basic && options.rawSourcePos) {\n    properties.sourcePosition = node.position\n  }\n\n  // If `includeElementIndex` is given, pass node index info to components.\n  if (!basic && options.includeElementIndex) {\n    properties.index = getElementsBeforeCount(parent, node)\n    properties.siblingCount = getElementsBeforeCount(parent)\n  }\n\n  if (!basic) {\n    properties.node = node\n  }\n\n  // Ensure no React warnings are emitted for void elements w/ children.\n  return children.length > 0\n    ? React.createElement(component, properties, children)\n    : React.createElement(component, properties)\n}\n\n/**\n * @param {Element|Root} node\n * @returns {Element?}\n */\nfunction getInputElement(node) {\n  let index = -1\n\n  while (++index < node.children.length) {\n    const child = node.children[index]\n\n    if (child.type === 'element' && child.tagName === 'input') {\n      return child\n    }\n  }\n\n  return null\n}\n\n/**\n * @param {Element|Root} parent\n * @param {Element} [node]\n * @returns {number}\n */\nfunction getElementsBeforeCount(parent, node) {\n  let index = -1\n  let count = 0\n\n  while (++index < parent.children.length) {\n    if (parent.children[index] === node) break\n    if (parent.children[index].type === 'element') count++\n  }\n\n  return count\n}\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n */\nfunction addProperty(props, prop, value, ctx) {\n  const info = find(ctx.schema, prop)\n  let result = value\n\n  // Ignore nullish and `NaN` values.\n  // eslint-disable-next-line no-self-compare\n  if (result === null || result === undefined || result !== result) {\n    return\n  }\n\n  // Accept `array`.\n  // Most props are space-separated.\n  if (Array.isArray(result)) {\n    result = info.commaSeparated ? commas(result) : spaces(result)\n  }\n\n  if (info.property === 'style' && typeof result === 'string') {\n    result = parseStyle(result)\n  }\n\n  if (info.space && info.property) {\n    props[\n      own.call(hastToReact, info.property)\n        ? hastToReact[info.property]\n        : info.property\n    ] = result\n  } else if (info.attribute) {\n    props[info.attribute] = result\n  }\n}\n\n/**\n * @param {string} value\n * @returns {Record<string, string>}\n */\nfunction parseStyle(value) {\n  /** @type {Record<string, string>} */\n  const result = {}\n\n  try {\n    style(value, iterator)\n  } catch {\n    // Silent.\n  }\n\n  return result\n\n  /**\n   * @param {string} name\n   * @param {string} v\n   */\n  function iterator(name, v) {\n    const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name\n    result[k.replace(/-([a-z])/g, styleReplacer)] = v\n  }\n}\n\n/**\n * @param {unknown} _\n * @param {string} $1\n */\nfunction styleReplacer(_, $1) {\n  return $1.toUpperCase()\n}\n\n/**\n * @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos\n * @returns {string}\n */\nfunction flattenPosition(pos) {\n  return [\n    pos.start.line,\n    ':',\n    pos.start.column,\n    '-',\n    pos.end.line,\n    ':',\n    pos.end.column\n  ]\n    .map(String)\n    .join('')\n}\n","/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('react').ReactElement<{}>} ReactElement\n * @typedef {import('unified').PluggableList} PluggableList\n * @typedef {import('hast').Root} Root\n * @typedef {import('./rehype-filter.js').Options} FilterOptions\n * @typedef {import('./ast-to-react.js').Options} TransformOptions\n *\n * @typedef CoreOptions\n * @property {string} children\n *\n * @typedef PluginOptions\n * @property {PluggableList} [remarkPlugins=[]]\n * @property {PluggableList} [rehypePlugins=[]]\n * @property {import('remark-rehype').Options | undefined} [remarkRehypeOptions={}]\n *\n * @typedef LayoutOptions\n * @property {string} [className]\n *\n * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions\n *\n * @typedef Deprecation\n * @property {string} id\n * @property {string} [to]\n */\n\nimport React from 'react'\nimport {VFile} from 'vfile'\nimport {unified} from 'unified'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport PropTypes from 'prop-types'\nimport {html} from 'property-information'\nimport rehypeFilter from './rehype-filter.js'\nimport {childrenToReact} from './ast-to-react.js'\n\nconst own = {}.hasOwnProperty\nconst changelog =\n  'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {Record<string, Deprecation>} */\nconst deprecated = {\n  plugins: {to: 'remarkPlugins', id: 'change-plugins-to-remarkplugins'},\n  renderers: {to: 'components', id: 'change-renderers-to-components'},\n  astPlugins: {id: 'remove-buggy-html-in-markdown-parser'},\n  allowDangerousHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n  escapeHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n  source: {to: 'children', id: 'change-source-to-children'},\n  allowNode: {\n    to: 'allowElement',\n    id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n  },\n  allowedTypes: {\n    to: 'allowedElements',\n    id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n  },\n  disallowedTypes: {\n    to: 'disallowedElements',\n    id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n  },\n  includeNodeIndex: {\n    to: 'includeElementIndex',\n    id: 'change-includenodeindex-to-includeelementindex'\n  }\n}\n\n/**\n * React component to render markdown.\n *\n * @param {ReactMarkdownOptions} options\n * @returns {ReactElement}\n */\nexport function ReactMarkdown(options) {\n  for (const key in deprecated) {\n    if (own.call(deprecated, key) && own.call(options, key)) {\n      const deprecation = deprecated[key]\n      console.warn(\n        `[react-markdown] Warning: please ${\n          deprecation.to ? `use \\`${deprecation.to}\\` instead of` : 'remove'\n        } \\`${key}\\` (see <${changelog}#${deprecation.id}> for more info)`\n      )\n      delete deprecated[key]\n    }\n  }\n\n  const processor = unified()\n    .use(remarkParse)\n    .use(options.remarkPlugins || [])\n    .use(remarkRehype, {\n      ...options.remarkRehypeOptions,\n      allowDangerousHtml: true\n    })\n    .use(options.rehypePlugins || [])\n    .use(rehypeFilter, options)\n\n  const file = new VFile()\n\n  if (typeof options.children === 'string') {\n    file.value = options.children\n  } else if (options.children !== undefined && options.children !== null) {\n    console.warn(\n      `[react-markdown] Warning: please pass a string as \\`children\\` (not: \\`${options.children}\\`)`\n    )\n  }\n\n  const hastNode = processor.runSync(processor.parse(file), file)\n\n  if (hastNode.type !== 'root') {\n    throw new TypeError('Expected a `root` node')\n  }\n\n  /** @type {ReactElement} */\n  let result = React.createElement(\n    React.Fragment,\n    {},\n    childrenToReact({options, schema: html, listDepth: 0}, hastNode)\n  )\n\n  if (options.className) {\n    result = React.createElement('div', {className: options.className}, result)\n  }\n\n  return result\n}\n\nReactMarkdown.propTypes = {\n  // Core options:\n  children: PropTypes.string,\n  // Layout options:\n  className: PropTypes.string,\n  // Filter options:\n  allowElement: PropTypes.func,\n  allowedElements: PropTypes.arrayOf(PropTypes.string),\n  disallowedElements: PropTypes.arrayOf(PropTypes.string),\n  unwrapDisallowed: PropTypes.bool,\n  // Plugin options:\n  remarkPlugins: PropTypes.arrayOf(\n    PropTypes.oneOfType([\n      PropTypes.object,\n      PropTypes.func,\n      PropTypes.arrayOf(\n        PropTypes.oneOfType([\n          PropTypes.bool,\n          PropTypes.string,\n          PropTypes.object,\n          PropTypes.func,\n          PropTypes.arrayOf(\n            // prettier-ignore\n            // type-coverage:ignore-next-line\n            PropTypes.any\n          )\n        ])\n      )\n    ])\n  ),\n  rehypePlugins: PropTypes.arrayOf(\n    PropTypes.oneOfType([\n      PropTypes.object,\n      PropTypes.func,\n      PropTypes.arrayOf(\n        PropTypes.oneOfType([\n          PropTypes.bool,\n          PropTypes.string,\n          PropTypes.object,\n          PropTypes.func,\n          PropTypes.arrayOf(\n            // prettier-ignore\n            // type-coverage:ignore-next-line\n            PropTypes.any\n          )\n        ])\n      )\n    ])\n  ),\n  // Transform options:\n  sourcePos: PropTypes.bool,\n  rawSourcePos: PropTypes.bool,\n  skipHtml: PropTypes.bool,\n  includeElementIndex: PropTypes.bool,\n  transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n  linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n  transformImageUri: PropTypes.func,\n  components: PropTypes.object\n}\n","export default function _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport React from 'react'; // Get all possible permutations of all power sets\n//\n// Super simple, non-algorithmic solution since the\n// number of class names will not be greater than 4\n\nfunction powerSetPermutations(arr) {\n  var arrLength = arr.length;\n  if (arrLength === 0 || arrLength === 1) return arr;\n\n  if (arrLength === 2) {\n    // prettier-ignore\n    return [arr[0], arr[1], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0])];\n  }\n\n  if (arrLength === 3) {\n    return [arr[0], arr[1], arr[2], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n  }\n\n  if (arrLength >= 4) {\n    // Currently does not support more than 4 extra\n    // class names (after `.token` has been removed)\n    return [arr[0], arr[1], arr[2], arr[3], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n  }\n}\n\nvar classNameCombinations = {};\n\nfunction getClassNameCombinations(classNames) {\n  if (classNames.length === 0 || classNames.length === 1) return classNames;\n  var key = classNames.join('.');\n\n  if (!classNameCombinations[key]) {\n    classNameCombinations[key] = powerSetPermutations(classNames);\n  }\n\n  return classNameCombinations[key];\n}\n\nexport function createStyleObject(classNames) {\n  var elementStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var stylesheet = arguments.length > 2 ? arguments[2] : undefined;\n  var nonTokenClassNames = classNames.filter(function (className) {\n    return className !== 'token';\n  });\n  var classNamesCombinations = getClassNameCombinations(nonTokenClassNames);\n  return classNamesCombinations.reduce(function (styleObject, className) {\n    return _objectSpread(_objectSpread({}, styleObject), stylesheet[className]);\n  }, elementStyle);\n}\nexport function createClassNameString(classNames) {\n  return classNames.join(' ');\n}\nexport function createChildren(stylesheet, useInlineStyles) {\n  var childrenCount = 0;\n  return function (children) {\n    childrenCount += 1;\n    return children.map(function (child, i) {\n      return createElement({\n        node: child,\n        stylesheet: stylesheet,\n        useInlineStyles: useInlineStyles,\n        key: \"code-segment-\".concat(childrenCount, \"-\").concat(i)\n      });\n    });\n  };\n}\nexport default function createElement(_ref) {\n  var node = _ref.node,\n      stylesheet = _ref.stylesheet,\n      _ref$style = _ref.style,\n      style = _ref$style === void 0 ? {} : _ref$style,\n      useInlineStyles = _ref.useInlineStyles,\n      key = _ref.key;\n  var properties = node.properties,\n      type = node.type,\n      TagName = node.tagName,\n      value = node.value;\n\n  if (type === 'text') {\n    return value;\n  } else if (TagName) {\n    var childrenCreator = createChildren(stylesheet, useInlineStyles);\n    var props;\n\n    if (!useInlineStyles) {\n      props = _objectSpread(_objectSpread({}, properties), {}, {\n        className: createClassNameString(properties.className)\n      });\n    } else {\n      var allStylesheetSelectors = Object.keys(stylesheet).reduce(function (classes, selector) {\n        selector.split('.').forEach(function (className) {\n          if (!classes.includes(className)) classes.push(className);\n        });\n        return classes;\n      }, []); // For compatibility with older versions of react-syntax-highlighter\n\n      var startingClassName = properties.className && properties.className.includes('token') ? ['token'] : [];\n      var className = properties.className && startingClassName.concat(properties.className.filter(function (className) {\n        return !allStylesheetSelectors.includes(className);\n      }));\n      props = _objectSpread(_objectSpread({}, properties), {}, {\n        className: createClassNameString(className) || undefined,\n        style: createStyleObject(properties.className, Object.assign({}, properties.style, style), stylesheet)\n      });\n    }\n\n    var children = childrenCreator(node.children);\n    return /*#__PURE__*/React.createElement(TagName, _extends({\n      key: key\n    }, props), children);\n  }\n}","export default (function (astGenerator, language) {\n  var langs = astGenerator.listLanguages();\n  return langs.indexOf(language) !== -1;\n});","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"language\", \"children\", \"style\", \"customStyle\", \"codeTagProps\", \"useInlineStyles\", \"showLineNumbers\", \"showInlineLineNumbers\", \"startingLineNumber\", \"lineNumberContainerStyle\", \"lineNumberStyle\", \"wrapLines\", \"wrapLongLines\", \"lineProps\", \"renderer\", \"PreTag\", \"CodeTag\", \"code\", \"astGenerator\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport React from 'react';\nimport createElement from './create-element';\nimport checkForListedLanguage from './checkForListedLanguage';\nvar newLineRegex = /\\n/g;\n\nfunction getNewLines(str) {\n  return str.match(newLineRegex);\n}\n\nfunction getAllLineNumbers(_ref) {\n  var lines = _ref.lines,\n      startingLineNumber = _ref.startingLineNumber,\n      style = _ref.style;\n  return lines.map(function (_, i) {\n    var number = i + startingLineNumber;\n    return /*#__PURE__*/React.createElement(\"span\", {\n      key: \"line-\".concat(i),\n      className: \"react-syntax-highlighter-line-number\",\n      style: typeof style === 'function' ? style(number) : style\n    }, \"\".concat(number, \"\\n\"));\n  });\n}\n\nfunction AllLineNumbers(_ref2) {\n  var codeString = _ref2.codeString,\n      codeStyle = _ref2.codeStyle,\n      _ref2$containerStyle = _ref2.containerStyle,\n      containerStyle = _ref2$containerStyle === void 0 ? {\n    \"float\": 'left',\n    paddingRight: '10px'\n  } : _ref2$containerStyle,\n      _ref2$numberStyle = _ref2.numberStyle,\n      numberStyle = _ref2$numberStyle === void 0 ? {} : _ref2$numberStyle,\n      startingLineNumber = _ref2.startingLineNumber;\n  return /*#__PURE__*/React.createElement(\"code\", {\n    style: Object.assign({}, codeStyle, containerStyle)\n  }, getAllLineNumbers({\n    lines: codeString.replace(/\\n$/, '').split('\\n'),\n    style: numberStyle,\n    startingLineNumber: startingLineNumber\n  }));\n}\n\nfunction getEmWidthOfNumber(num) {\n  return \"\".concat(num.toString().length, \".25em\");\n}\n\nfunction getInlineLineNumber(lineNumber, inlineLineNumberStyle) {\n  return {\n    type: 'element',\n    tagName: 'span',\n    properties: {\n      key: \"line-number--\".concat(lineNumber),\n      className: ['comment', 'linenumber', 'react-syntax-highlighter-line-number'],\n      style: inlineLineNumberStyle\n    },\n    children: [{\n      type: 'text',\n      value: lineNumber\n    }]\n  };\n}\n\nfunction assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber) {\n  // minimally necessary styling for line numbers\n  var defaultLineNumberStyle = {\n    display: 'inline-block',\n    minWidth: getEmWidthOfNumber(largestLineNumber),\n    paddingRight: '1em',\n    textAlign: 'right',\n    userSelect: 'none'\n  }; // prep custom styling\n\n  var customLineNumberStyle = typeof lineNumberStyle === 'function' ? lineNumberStyle(lineNumber) : lineNumberStyle; // combine\n\n  var assembledStyle = _objectSpread(_objectSpread({}, defaultLineNumberStyle), customLineNumberStyle);\n\n  return assembledStyle;\n}\n\nfunction createLineElement(_ref3) {\n  var children = _ref3.children,\n      lineNumber = _ref3.lineNumber,\n      lineNumberStyle = _ref3.lineNumberStyle,\n      largestLineNumber = _ref3.largestLineNumber,\n      showInlineLineNumbers = _ref3.showInlineLineNumbers,\n      _ref3$lineProps = _ref3.lineProps,\n      lineProps = _ref3$lineProps === void 0 ? {} : _ref3$lineProps,\n      _ref3$className = _ref3.className,\n      className = _ref3$className === void 0 ? [] : _ref3$className,\n      showLineNumbers = _ref3.showLineNumbers,\n      wrapLongLines = _ref3.wrapLongLines;\n  var properties = typeof lineProps === 'function' ? lineProps(lineNumber) : lineProps;\n  properties['className'] = className;\n\n  if (lineNumber && showInlineLineNumbers) {\n    var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n    children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n  }\n\n  if (wrapLongLines & showLineNumbers) {\n    properties.style = _objectSpread(_objectSpread({}, properties.style), {}, {\n      display: 'flex'\n    });\n  }\n\n  return {\n    type: 'element',\n    tagName: 'span',\n    properties: properties,\n    children: children\n  };\n}\n\nfunction flattenCodeTree(tree) {\n  var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  var newTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n  for (var i = 0; i < tree.length; i++) {\n    var node = tree[i];\n\n    if (node.type === 'text') {\n      newTree.push(createLineElement({\n        children: [node],\n        className: _toConsumableArray(new Set(className))\n      }));\n    } else if (node.children) {\n      var classNames = className.concat(node.properties.className);\n      flattenCodeTree(node.children, classNames).forEach(function (i) {\n        return newTree.push(i);\n      });\n    }\n  }\n\n  return newTree;\n}\n\nfunction processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines) {\n  var _ref4;\n\n  var tree = flattenCodeTree(codeTree.value);\n  var newTree = [];\n  var lastLineBreakIndex = -1;\n  var index = 0;\n\n  function createWrappedLine(children, lineNumber) {\n    var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n    return createLineElement({\n      children: children,\n      lineNumber: lineNumber,\n      lineNumberStyle: lineNumberStyle,\n      largestLineNumber: largestLineNumber,\n      showInlineLineNumbers: showInlineLineNumbers,\n      lineProps: lineProps,\n      className: className,\n      showLineNumbers: showLineNumbers,\n      wrapLongLines: wrapLongLines\n    });\n  }\n\n  function createUnwrappedLine(children, lineNumber) {\n    if (showLineNumbers && lineNumber && showInlineLineNumbers) {\n      var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n      children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n    }\n\n    return children;\n  }\n\n  function createLine(children, lineNumber) {\n    var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n    return wrapLines || className.length > 0 ? createWrappedLine(children, lineNumber, className) : createUnwrappedLine(children, lineNumber);\n  }\n\n  var _loop = function _loop() {\n    var node = tree[index];\n    var value = node.children[0].value;\n    var newLines = getNewLines(value);\n\n    if (newLines) {\n      var splitValue = value.split('\\n');\n      splitValue.forEach(function (text, i) {\n        var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n        var newChild = {\n          type: 'text',\n          value: \"\".concat(text, \"\\n\")\n        }; // if it's the first line\n\n        if (i === 0) {\n          var _children = tree.slice(lastLineBreakIndex + 1, index).concat(createLineElement({\n            children: [newChild],\n            className: node.properties.className\n          }));\n\n          var _line = createLine(_children, lineNumber);\n\n          newTree.push(_line); // if it's the last line\n        } else if (i === splitValue.length - 1) {\n          var stringChild = tree[index + 1] && tree[index + 1].children && tree[index + 1].children[0];\n          var lastLineInPreviousSpan = {\n            type: 'text',\n            value: \"\".concat(text)\n          };\n\n          if (stringChild) {\n            var newElem = createLineElement({\n              children: [lastLineInPreviousSpan],\n              className: node.properties.className\n            });\n            tree.splice(index + 1, 0, newElem);\n          } else {\n            var _children2 = [lastLineInPreviousSpan];\n\n            var _line2 = createLine(_children2, lineNumber, node.properties.className);\n\n            newTree.push(_line2);\n          } // if it's neither the first nor the last line\n\n        } else {\n          var _children3 = [newChild];\n\n          var _line3 = createLine(_children3, lineNumber, node.properties.className);\n\n          newTree.push(_line3);\n        }\n      });\n      lastLineBreakIndex = index;\n    }\n\n    index++;\n  };\n\n  while (index < tree.length) {\n    _loop();\n  }\n\n  if (lastLineBreakIndex !== tree.length - 1) {\n    var children = tree.slice(lastLineBreakIndex + 1, tree.length);\n\n    if (children && children.length) {\n      var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n      var line = createLine(children, lineNumber);\n      newTree.push(line);\n    }\n  }\n\n  return wrapLines ? newTree : (_ref4 = []).concat.apply(_ref4, newTree);\n}\n\nfunction defaultRenderer(_ref5) {\n  var rows = _ref5.rows,\n      stylesheet = _ref5.stylesheet,\n      useInlineStyles = _ref5.useInlineStyles;\n  return rows.map(function (node, i) {\n    return createElement({\n      node: node,\n      stylesheet: stylesheet,\n      useInlineStyles: useInlineStyles,\n      key: \"code-segement\".concat(i)\n    });\n  });\n} // only highlight.js has the highlightAuto method\n\n\nfunction isHighlightJs(astGenerator) {\n  return astGenerator && typeof astGenerator.highlightAuto !== 'undefined';\n}\n\nfunction getCodeTree(_ref6) {\n  var astGenerator = _ref6.astGenerator,\n      language = _ref6.language,\n      code = _ref6.code,\n      defaultCodeValue = _ref6.defaultCodeValue;\n\n  // figure out whether we're using lowlight/highlight or refractor/prism\n  // then attempt highlighting accordingly\n  // lowlight/highlight?\n  if (isHighlightJs(astGenerator)) {\n    var hasLanguage = checkForListedLanguage(astGenerator, language);\n\n    if (language === 'text') {\n      return {\n        value: defaultCodeValue,\n        language: 'text'\n      };\n    } else if (hasLanguage) {\n      return astGenerator.highlight(language, code);\n    } else {\n      return astGenerator.highlightAuto(code);\n    }\n  } // must be refractor/prism, then\n\n\n  try {\n    return language && language !== 'text' ? {\n      value: astGenerator.highlight(code, language)\n    } : {\n      value: defaultCodeValue\n    };\n  } catch (e) {\n    return {\n      value: defaultCodeValue\n    };\n  }\n}\n\nexport default function (defaultAstGenerator, defaultStyle) {\n  return function SyntaxHighlighter(_ref7) {\n    var language = _ref7.language,\n        children = _ref7.children,\n        _ref7$style = _ref7.style,\n        style = _ref7$style === void 0 ? defaultStyle : _ref7$style,\n        _ref7$customStyle = _ref7.customStyle,\n        customStyle = _ref7$customStyle === void 0 ? {} : _ref7$customStyle,\n        _ref7$codeTagProps = _ref7.codeTagProps,\n        codeTagProps = _ref7$codeTagProps === void 0 ? {\n      className: language ? \"language-\".concat(language) : undefined,\n      style: _objectSpread(_objectSpread({}, style['code[class*=\"language-\"]']), style[\"code[class*=\\\"language-\".concat(language, \"\\\"]\")])\n    } : _ref7$codeTagProps,\n        _ref7$useInlineStyles = _ref7.useInlineStyles,\n        useInlineStyles = _ref7$useInlineStyles === void 0 ? true : _ref7$useInlineStyles,\n        _ref7$showLineNumbers = _ref7.showLineNumbers,\n        showLineNumbers = _ref7$showLineNumbers === void 0 ? false : _ref7$showLineNumbers,\n        _ref7$showInlineLineN = _ref7.showInlineLineNumbers,\n        showInlineLineNumbers = _ref7$showInlineLineN === void 0 ? true : _ref7$showInlineLineN,\n        _ref7$startingLineNum = _ref7.startingLineNumber,\n        startingLineNumber = _ref7$startingLineNum === void 0 ? 1 : _ref7$startingLineNum,\n        lineNumberContainerStyle = _ref7.lineNumberContainerStyle,\n        _ref7$lineNumberStyle = _ref7.lineNumberStyle,\n        lineNumberStyle = _ref7$lineNumberStyle === void 0 ? {} : _ref7$lineNumberStyle,\n        wrapLines = _ref7.wrapLines,\n        _ref7$wrapLongLines = _ref7.wrapLongLines,\n        wrapLongLines = _ref7$wrapLongLines === void 0 ? false : _ref7$wrapLongLines,\n        _ref7$lineProps = _ref7.lineProps,\n        lineProps = _ref7$lineProps === void 0 ? {} : _ref7$lineProps,\n        renderer = _ref7.renderer,\n        _ref7$PreTag = _ref7.PreTag,\n        PreTag = _ref7$PreTag === void 0 ? 'pre' : _ref7$PreTag,\n        _ref7$CodeTag = _ref7.CodeTag,\n        CodeTag = _ref7$CodeTag === void 0 ? 'code' : _ref7$CodeTag,\n        _ref7$code = _ref7.code,\n        code = _ref7$code === void 0 ? (Array.isArray(children) ? children[0] : children) || '' : _ref7$code,\n        astGenerator = _ref7.astGenerator,\n        rest = _objectWithoutProperties(_ref7, _excluded);\n\n    astGenerator = astGenerator || defaultAstGenerator;\n    var allLineNumbers = showLineNumbers ? /*#__PURE__*/React.createElement(AllLineNumbers, {\n      containerStyle: lineNumberContainerStyle,\n      codeStyle: codeTagProps.style || {},\n      numberStyle: lineNumberStyle,\n      startingLineNumber: startingLineNumber,\n      codeString: code\n    }) : null;\n    var defaultPreStyle = style.hljs || style['pre[class*=\"language-\"]'] || {\n      backgroundColor: '#fff'\n    };\n    var generatorClassName = isHighlightJs(astGenerator) ? 'hljs' : 'prismjs';\n    var preProps = useInlineStyles ? Object.assign({}, rest, {\n      style: Object.assign({}, defaultPreStyle, customStyle)\n    }) : Object.assign({}, rest, {\n      className: rest.className ? \"\".concat(generatorClassName, \" \").concat(rest.className) : generatorClassName,\n      style: Object.assign({}, customStyle)\n    });\n\n    if (wrapLongLines) {\n      codeTagProps.style = _objectSpread(_objectSpread({}, codeTagProps.style), {}, {\n        whiteSpace: 'pre-wrap'\n      });\n    } else {\n      codeTagProps.style = _objectSpread(_objectSpread({}, codeTagProps.style), {}, {\n        whiteSpace: 'pre'\n      });\n    }\n\n    if (!astGenerator) {\n      return /*#__PURE__*/React.createElement(PreTag, preProps, allLineNumbers, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, code));\n    }\n    /*\n     * Some custom renderers rely on individual row elements so we need to turn wrapLines on\n     * if renderer is provided and wrapLines is undefined.\n     */\n\n\n    if (wrapLines === undefined && renderer || wrapLongLines) wrapLines = true;\n    renderer = renderer || defaultRenderer;\n    var defaultCodeValue = [{\n      type: 'text',\n      value: code\n    }];\n    var codeTree = getCodeTree({\n      astGenerator: astGenerator,\n      language: language,\n      code: code,\n      defaultCodeValue: defaultCodeValue\n    });\n\n    if (codeTree.language === null) {\n      codeTree.value = defaultCodeValue;\n    } // determine largest line number so that we can force minWidth on all linenumber elements\n\n\n    var largestLineNumber = codeTree.value.length + startingLineNumber;\n    var rows = processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines);\n    return /*#__PURE__*/React.createElement(PreTag, preProps, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, !showInlineLineNumbers && allLineNumbers, renderer({\n      rows: rows,\n      stylesheet: style,\n      useInlineStyles: useInlineStyles\n    })));\n  };\n}","export default {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"black\",\n    \"background\": \"none\",\n    \"textShadow\": \"0 1px white\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"black\",\n    \"background\": \"#f5f2f0\",\n    \"textShadow\": \"0 1px white\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#f5f2f0\",\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"slategray\"\n  },\n  \"prolog\": {\n    \"color\": \"slategray\"\n  },\n  \"doctype\": {\n    \"color\": \"slategray\"\n  },\n  \"cdata\": {\n    \"color\": \"slategray\"\n  },\n  \"punctuation\": {\n    \"color\": \"#999\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"property\": {\n    \"color\": \"#905\"\n  },\n  \"tag\": {\n    \"color\": \"#905\"\n  },\n  \"boolean\": {\n    \"color\": \"#905\"\n  },\n  \"number\": {\n    \"color\": \"#905\"\n  },\n  \"constant\": {\n    \"color\": \"#905\"\n  },\n  \"symbol\": {\n    \"color\": \"#905\"\n  },\n  \"deleted\": {\n    \"color\": \"#905\"\n  },\n  \"selector\": {\n    \"color\": \"#690\"\n  },\n  \"attr-name\": {\n    \"color\": \"#690\"\n  },\n  \"string\": {\n    \"color\": \"#690\"\n  },\n  \"char\": {\n    \"color\": \"#690\"\n  },\n  \"builtin\": {\n    \"color\": \"#690\"\n  },\n  \"inserted\": {\n    \"color\": \"#690\"\n  },\n  \"operator\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\"\n  },\n  \"entity\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\"\n  },\n  \"atrule\": {\n    \"color\": \"#07a\"\n  },\n  \"attr-value\": {\n    \"color\": \"#07a\"\n  },\n  \"keyword\": {\n    \"color\": \"#07a\"\n  },\n  \"function\": {\n    \"color\": \"#DD4A68\"\n  },\n  \"class-name\": {\n    \"color\": \"#DD4A68\"\n  },\n  \"regex\": {\n    \"color\": \"#e90\"\n  },\n  \"important\": {\n    \"color\": \"#e90\",\n    \"fontWeight\": \"bold\"\n  },\n  \"variable\": {\n    \"color\": \"#e90\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  }\n};","import highlight from './highlight';\nimport defaultStyle from './styles/prism/prism';\nimport refractor from 'refractor';\nimport supportedLanguages from './languages/prism/supported-languages';\nvar highlighter = highlight(refractor, defaultStyle);\nhighlighter.supportedLanguages = supportedLanguages;\nexport default highlighter;","//\n// This file has been auto-generated by the `npm run build-languages-prism` task\n//\nexport default ['abap', 'abnf', 'actionscript', 'ada', 'agda', 'al', 'antlr4', 'apacheconf', 'apex', 'apl', 'applescript', 'aql', 'arduino', 'arff', 'asciidoc', 'asm6502', 'asmatmel', 'aspnet', 'autohotkey', 'autoit', 'avisynth', 'avro-idl', 'bash', 'basic', 'batch', 'bbcode', 'bicep', 'birb', 'bison', 'bnf', 'brainfuck', 'brightscript', 'bro', 'bsl', 'c', 'cfscript', 'chaiscript', 'cil', 'clike', 'clojure', 'cmake', 'cobol', 'coffeescript', 'concurnas', 'coq', 'cpp', 'crystal', 'csharp', 'cshtml', 'csp', 'css-extras', 'css', 'csv', 'cypher', 'd', 'dart', 'dataweave', 'dax', 'dhall', 'diff', 'django', 'dns-zone-file', 'docker', 'dot', 'ebnf', 'editorconfig', 'eiffel', 'ejs', 'elixir', 'elm', 'erb', 'erlang', 'etlua', 'excel-formula', 'factor', 'false', 'firestore-security-rules', 'flow', 'fortran', 'fsharp', 'ftl', 'gap', 'gcode', 'gdscript', 'gedcom', 'gherkin', 'git', 'glsl', 'gml', 'gn', 'go-module', 'go', 'graphql', 'groovy', 'haml', 'handlebars', 'haskell', 'haxe', 'hcl', 'hlsl', 'hoon', 'hpkp', 'hsts', 'http', 'ichigojam', 'icon', 'icu-message-format', 'idris', 'iecst', 'ignore', 'inform7', 'ini', 'io', 'j', 'java', 'javadoc', 'javadoclike', 'javascript', 'javastacktrace', 'jexl', 'jolie', 'jq', 'js-extras', 'js-templates', 'jsdoc', 'json', 'json5', 'jsonp', 'jsstacktrace', 'jsx', 'julia', 'keepalived', 'keyman', 'kotlin', 'kumir', 'kusto', 'latex', 'latte', 'less', 'lilypond', 'liquid', 'lisp', 'livescript', 'llvm', 'log', 'lolcode', 'lua', 'magma', 'makefile', 'markdown', 'markup-templating', 'markup', 'matlab', 'maxscript', 'mel', 'mermaid', 'mizar', 'mongodb', 'monkey', 'moonscript', 'n1ql', 'n4js', 'nand2tetris-hdl', 'naniscript', 'nasm', 'neon', 'nevod', 'nginx', 'nim', 'nix', 'nsis', 'objectivec', 'ocaml', 'opencl', 'openqasm', 'oz', 'parigp', 'parser', 'pascal', 'pascaligo', 'pcaxis', 'peoplecode', 'perl', 'php-extras', 'php', 'phpdoc', 'plsql', 'powerquery', 'powershell', 'processing', 'prolog', 'promql', 'properties', 'protobuf', 'psl', 'pug', 'puppet', 'pure', 'purebasic', 'purescript', 'python', 'q', 'qml', 'qore', 'qsharp', 'r', 'racket', 'reason', 'regex', 'rego', 'renpy', 'rest', 'rip', 'roboconf', 'robotframework', 'ruby', 'rust', 'sas', 'sass', 'scala', 'scheme', 'scss', 'shell-session', 'smali', 'smalltalk', 'smarty', 'sml', 'solidity', 'solution-file', 'soy', 'sparql', 'splunk-spl', 'sqf', 'sql', 'squirrel', 'stan', 'stylus', 'swift', 'systemd', 't4-cs', 't4-templating', 't4-vb', 'tap', 'tcl', 'textile', 'toml', 'tremor', 'tsx', 'tt2', 'turtle', 'twig', 'typescript', 'typoscript', 'unrealscript', 'uorazor', 'uri', 'v', 'vala', 'vbnet', 'velocity', 'verilog', 'vhdl', 'vim', 'visual-basic', 'warpscript', 'wasm', 'web-idl', 'wiki', 'wolfram', 'wren', 'xeora', 'xml-doc', 'xojo', 'xquery', 'yaml', 'yang', 'zig'];","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n  asciiAlpha,\n  asciiAlphanumeric,\n  asciiControl,\n  asciiDigit,\n  markdownLineEndingOrSpace,\n  markdownLineEnding,\n  unicodePunctuation,\n  unicodeWhitespace\n} from 'micromark-util-character'\nconst www = {\n  tokenize: tokenizeWww,\n  partial: true\n}\nconst domain = {\n  tokenize: tokenizeDomain,\n  partial: true\n}\nconst path = {\n  tokenize: tokenizePath,\n  partial: true\n}\nconst punctuation = {\n  tokenize: tokenizePunctuation,\n  partial: true\n}\nconst namedCharacterReference = {\n  tokenize: tokenizeNamedCharacterReference,\n  partial: true\n}\nconst wwwAutolink = {\n  tokenize: tokenizeWwwAutolink,\n  previous: previousWww\n}\nconst httpAutolink = {\n  tokenize: tokenizeHttpAutolink,\n  previous: previousHttp\n}\nconst emailAutolink = {\n  tokenize: tokenizeEmailAutolink,\n  previous: previousEmail\n}\n/** @type {ConstructRecord} */\n\nconst text = {}\n/** @type {Extension} */\n\nexport const gfmAutolinkLiteral = {\n  text\n}\nlet code = 48 // Add alphanumerics.\n\nwhile (code < 123) {\n  text[code] = emailAutolink\n  code++\n  if (code === 58) code = 65\n  else if (code === 91) code = 97\n}\n\ntext[43] = emailAutolink\ntext[45] = emailAutolink\ntext[46] = emailAutolink\ntext[95] = emailAutolink\ntext[72] = [emailAutolink, httpAutolink]\ntext[104] = [emailAutolink, httpAutolink]\ntext[87] = [emailAutolink, wwwAutolink]\ntext[119] = [emailAutolink, wwwAutolink]\n/** @type {Tokenizer} */\n\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n  const self = this\n  /** @type {boolean} */\n\n  let hasDot\n  /** @type {boolean|undefined} */\n\n  let hasDigitInLastSegment\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (\n      !gfmAtext(code) ||\n      !previousEmail(self.previous) ||\n      previousUnbalanced(self.events)\n    ) {\n      return nok(code)\n    }\n\n    effects.enter('literalAutolink')\n    effects.enter('literalAutolinkEmail')\n    return atext(code)\n  }\n  /** @type {State} */\n\n  function atext(code) {\n    if (gfmAtext(code)) {\n      effects.consume(code)\n      return atext\n    }\n\n    if (code === 64) {\n      effects.consume(code)\n      return label\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function label(code) {\n    if (code === 46) {\n      return effects.check(punctuation, done, dotContinuation)(code)\n    }\n\n    if (code === 45 || code === 95) {\n      return effects.check(punctuation, nok, dashOrUnderscoreContinuation)(code)\n    }\n\n    if (asciiAlphanumeric(code)) {\n      if (!hasDigitInLastSegment && asciiDigit(code)) {\n        hasDigitInLastSegment = true\n      }\n\n      effects.consume(code)\n      return label\n    }\n\n    return done(code)\n  }\n  /** @type {State} */\n\n  function dotContinuation(code) {\n    effects.consume(code)\n    hasDot = true\n    hasDigitInLastSegment = undefined\n    return label\n  }\n  /** @type {State} */\n\n  function dashOrUnderscoreContinuation(code) {\n    effects.consume(code)\n    return afterDashOrUnderscore\n  }\n  /** @type {State} */\n\n  function afterDashOrUnderscore(code) {\n    if (code === 46) {\n      return effects.check(punctuation, nok, dotContinuation)(code)\n    }\n\n    return label(code)\n  }\n  /** @type {State} */\n\n  function done(code) {\n    if (hasDot && !hasDigitInLastSegment) {\n      effects.exit('literalAutolinkEmail')\n      effects.exit('literalAutolink')\n      return ok(code)\n    }\n\n    return nok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n  const self = this\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (\n      (code !== 87 && code !== 119) ||\n      !previousWww(self.previous) ||\n      previousUnbalanced(self.events)\n    ) {\n      return nok(code)\n    }\n\n    effects.enter('literalAutolink')\n    effects.enter('literalAutolinkWww') // For `www.` we check instead of attempt, because when it matches, GH\n    // treats it as part of a domain (yes, it says a valid domain must come\n    // after `www.`, but that’s not how it’s implemented by them).\n\n    return effects.check(\n      www,\n      effects.attempt(domain, effects.attempt(path, done), nok),\n      nok\n    )(code)\n  }\n  /** @type {State} */\n\n  function done(code) {\n    effects.exit('literalAutolinkWww')\n    effects.exit('literalAutolink')\n    return ok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHttpAutolink(effects, ok, nok) {\n  const self = this\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (\n      (code !== 72 && code !== 104) ||\n      !previousHttp(self.previous) ||\n      previousUnbalanced(self.events)\n    ) {\n      return nok(code)\n    }\n\n    effects.enter('literalAutolink')\n    effects.enter('literalAutolinkHttp')\n    effects.consume(code)\n    return t1\n  }\n  /** @type {State} */\n\n  function t1(code) {\n    if (code === 84 || code === 116) {\n      effects.consume(code)\n      return t2\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function t2(code) {\n    if (code === 84 || code === 116) {\n      effects.consume(code)\n      return p\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function p(code) {\n    if (code === 80 || code === 112) {\n      effects.consume(code)\n      return s\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function s(code) {\n    if (code === 83 || code === 115) {\n      effects.consume(code)\n      return colon\n    }\n\n    return colon(code)\n  }\n  /** @type {State} */\n\n  function colon(code) {\n    if (code === 58) {\n      effects.consume(code)\n      return slash1\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function slash1(code) {\n    if (code === 47) {\n      effects.consume(code)\n      return slash2\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function slash2(code) {\n    if (code === 47) {\n      effects.consume(code)\n      return after\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function after(code) {\n    return code === null ||\n      asciiControl(code) ||\n      unicodeWhitespace(code) ||\n      unicodePunctuation(code)\n      ? nok(code)\n      : effects.attempt(domain, effects.attempt(path, done), nok)(code)\n  }\n  /** @type {State} */\n\n  function done(code) {\n    effects.exit('literalAutolinkHttp')\n    effects.exit('literalAutolink')\n    return ok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeWww(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.consume(code)\n    return w2\n  }\n  /** @type {State} */\n\n  function w2(code) {\n    if (code === 87 || code === 119) {\n      effects.consume(code)\n      return w3\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function w3(code) {\n    if (code === 87 || code === 119) {\n      effects.consume(code)\n      return dot\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function dot(code) {\n    if (code === 46) {\n      effects.consume(code)\n      return after\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function after(code) {\n    return code === null || markdownLineEnding(code) ? nok(code) : ok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDomain(effects, ok, nok) {\n  /** @type {boolean|undefined} */\n  let hasUnderscoreInLastSegment\n  /** @type {boolean|undefined} */\n\n  let hasUnderscoreInLastLastSegment\n  return domain\n  /** @type {State} */\n\n  function domain(code) {\n    if (code === 38) {\n      return effects.check(\n        namedCharacterReference,\n        done,\n        punctuationContinuation\n      )(code)\n    }\n\n    if (code === 46 || code === 95) {\n      return effects.check(punctuation, done, punctuationContinuation)(code)\n    } // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n    // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n    // so that’s Unicode.\n    // Instead of some new production for Unicode alphanumerics, markdown\n    // already has that for Unicode punctuation and whitespace, so use those.\n\n    if (\n      code === null ||\n      asciiControl(code) ||\n      unicodeWhitespace(code) ||\n      (code !== 45 && unicodePunctuation(code))\n    ) {\n      return done(code)\n    }\n\n    effects.consume(code)\n    return domain\n  }\n  /** @type {State} */\n\n  function punctuationContinuation(code) {\n    if (code === 46) {\n      hasUnderscoreInLastLastSegment = hasUnderscoreInLastSegment\n      hasUnderscoreInLastSegment = undefined\n      effects.consume(code)\n      return domain\n    }\n\n    if (code === 95) hasUnderscoreInLastSegment = true\n    effects.consume(code)\n    return domain\n  }\n  /** @type {State} */\n\n  function done(code) {\n    if (!hasUnderscoreInLastLastSegment && !hasUnderscoreInLastSegment) {\n      return ok(code)\n    }\n\n    return nok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizePath(effects, ok) {\n  let balance = 0\n  return inPath\n  /** @type {State} */\n\n  function inPath(code) {\n    if (code === 38) {\n      return effects.check(\n        namedCharacterReference,\n        ok,\n        continuedPunctuation\n      )(code)\n    }\n\n    if (code === 40) {\n      balance++\n    }\n\n    if (code === 41) {\n      return effects.check(\n        punctuation,\n        parenAtPathEnd,\n        continuedPunctuation\n      )(code)\n    }\n\n    if (pathEnd(code)) {\n      return ok(code)\n    }\n\n    if (trailingPunctuation(code)) {\n      return effects.check(punctuation, ok, continuedPunctuation)(code)\n    }\n\n    effects.consume(code)\n    return inPath\n  }\n  /** @type {State} */\n\n  function continuedPunctuation(code) {\n    effects.consume(code)\n    return inPath\n  }\n  /** @type {State} */\n\n  function parenAtPathEnd(code) {\n    balance--\n    return balance < 0 ? ok(code) : continuedPunctuation(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNamedCharacterReference(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.consume(code)\n    return inside\n  }\n  /** @type {State} */\n\n  function inside(code) {\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      return inside\n    }\n\n    if (code === 59) {\n      effects.consume(code)\n      return after\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function after(code) {\n    // If the named character reference is followed by the end of the path, it’s\n    // not continued punctuation.\n    return pathEnd(code) ? ok(code) : nok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizePunctuation(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.consume(code)\n    return after\n  }\n  /** @type {State} */\n\n  function after(code) {\n    // Check the next.\n    if (trailingPunctuation(code)) {\n      effects.consume(code)\n      return after\n    } // If the punctuation marker is followed by the end of the path, it’s not\n    // continued punctuation.\n\n    return pathEnd(code) ? ok(code) : nok(code)\n  }\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction trailingPunctuation(code) {\n  return (\n    code === 33 ||\n    code === 34 ||\n    code === 39 ||\n    code === 41 ||\n    code === 42 ||\n    code === 44 ||\n    code === 46 ||\n    code === 58 ||\n    code === 59 ||\n    code === 60 ||\n    code === 63 ||\n    code === 95 ||\n    code === 126\n  )\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction pathEnd(code) {\n  return code === null || code === 60 || markdownLineEndingOrSpace(code)\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction gfmAtext(code) {\n  return (\n    code === 43 ||\n    code === 45 ||\n    code === 46 ||\n    code === 95 ||\n    asciiAlphanumeric(code)\n  )\n}\n/** @type {Previous} */\n\nfunction previousWww(code) {\n  return (\n    code === null ||\n    code === 40 ||\n    code === 42 ||\n    code === 95 ||\n    code === 126 ||\n    markdownLineEndingOrSpace(code)\n  )\n}\n/** @type {Previous} */\n\nfunction previousHttp(code) {\n  return code === null || !asciiAlpha(code)\n}\n/** @type {Previous} */\n\nfunction previousEmail(code) {\n  return code !== 47 && previousHttp(code)\n}\n/**\n * @param {Array<Event>} events\n * @returns {boolean}\n */\n\nfunction previousUnbalanced(events) {\n  let index = events.length\n  let result = false\n\n  while (index--) {\n    const token = events[index][1]\n\n    if (\n      (token.type === 'labelLink' || token.type === 'labelImage') &&\n      !token._balanced\n    ) {\n      result = true\n      break\n    } // @ts-expect-error If we’ve seen this token, and it was marked as not\n    // having any unbalanced bracket before it, we can exit.\n\n    if (token._gfmAutolinkLiteralWalkedInto) {\n      result = false\n      break\n    }\n  }\n\n  if (events.length > 0 && !result) {\n    // @ts-expect-error Mark the last token as “walked into” w/o finding\n    // anything.\n    events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true\n  }\n\n  return result\n}\n","export default {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#e3eaf2\",\n    \"background\": \"none\",\n    \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#e3eaf2\",\n    \"background\": \"#111b27\",\n    \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \"0.5em 0\",\n    \"overflow\": \"auto\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#111b27\",\n    \"padding\": \"0.1em 0.3em\",\n    \"borderRadius\": \"0.3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"prolog\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"doctype\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"cdata\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"punctuation\": {\n    \"color\": \"#e3eaf2\"\n  },\n  \"delimiter.important\": {\n    \"color\": \"#66cccc\",\n    \"fontWeight\": \"inherit\"\n  },\n  \"selector.parent\": {\n    \"color\": \"#66cccc\"\n  },\n  \"tag\": {\n    \"color\": \"#66cccc\"\n  },\n  \"tag.punctuation\": {\n    \"color\": \"#66cccc\"\n  },\n  \"attr-name\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"boolean\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"boolean.important\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"number\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"constant\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"selector.attribute\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"class-name\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"key\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"parameter\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"property\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"property-access\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"variable\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"attr-value\": {\n    \"color\": \"#91d076\"\n  },\n  \"inserted\": {\n    \"color\": \"#91d076\"\n  },\n  \"color\": {\n    \"color\": \"#91d076\"\n  },\n  \"selector.value\": {\n    \"color\": \"#91d076\"\n  },\n  \"string\": {\n    \"color\": \"#91d076\"\n  },\n  \"string.url-link\": {\n    \"color\": \"#91d076\"\n  },\n  \"builtin\": {\n    \"color\": \"#f4adf4\"\n  },\n  \"keyword-array\": {\n    \"color\": \"#f4adf4\"\n  },\n  \"package\": {\n    \"color\": \"#f4adf4\"\n  },\n  \"regex\": {\n    \"color\": \"#f4adf4\"\n  },\n  \"function\": {\n    \"color\": \"#c699e3\"\n  },\n  \"selector.class\": {\n    \"color\": \"#c699e3\"\n  },\n  \"selector.id\": {\n    \"color\": \"#c699e3\"\n  },\n  \"atrule.rule\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"combinator\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"keyword\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"operator\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"pseudo-class\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"pseudo-element\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"selector\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"unit\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"deleted\": {\n    \"color\": \"#cd6660\"\n  },\n  \"important\": {\n    \"color\": \"#cd6660\",\n    \"fontWeight\": \"bold\"\n  },\n  \"keyword-this\": {\n    \"color\": \"#6cb8e6\",\n    \"fontWeight\": \"bold\"\n  },\n  \"this\": {\n    \"color\": \"#6cb8e6\",\n    \"fontWeight\": \"bold\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"entity\": {\n    \"cursor\": \"help\"\n  },\n  \".language-markdown .token.title\": {\n    \"color\": \"#6cb8e6\",\n    \"fontWeight\": \"bold\"\n  },\n  \".language-markdown .token.title .token.punctuation\": {\n    \"color\": \"#6cb8e6\",\n    \"fontWeight\": \"bold\"\n  },\n  \".language-markdown .token.blockquote.punctuation\": {\n    \"color\": \"#f4adf4\"\n  },\n  \".language-markdown .token.code\": {\n    \"color\": \"#66cccc\"\n  },\n  \".language-markdown .token.hr.punctuation\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \".language-markdown .token.url .token.content\": {\n    \"color\": \"#91d076\"\n  },\n  \".language-markdown .token.url-link\": {\n    \"color\": \"#e6d37a\"\n  },\n  \".language-markdown .token.list.punctuation\": {\n    \"color\": \"#f4adf4\"\n  },\n  \".language-markdown .token.table-header\": {\n    \"color\": \"#e3eaf2\"\n  },\n  \".language-json .token.operator\": {\n    \"color\": \"#e3eaf2\"\n  },\n  \".language-scss .token.variable\": {\n    \"color\": \"#66cccc\"\n  },\n  \"token.tab:not(:empty):before\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"token.cr:before\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"token.lf:before\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"token.space:before\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6da\",\n    \"textDecoration\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6da\",\n    \"textDecoration\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6da\",\n    \"textDecoration\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6da\",\n    \"textDecoration\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#8da1b9\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#8da1b9\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#8da1b9\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"linear-gradient(to right, #3c526d5f 70%, #3c526d55)\"\n  },\n  \".line-highlight.line-highlight:before\": {\n    \"backgroundColor\": \"#8da1b9\",\n    \"color\": \"#111b27\",\n    \"boxShadow\": \"0 1px #3c526d\"\n  },\n  \".line-highlight.line-highlight[data-end]:after\": {\n    \"backgroundColor\": \"#8da1b9\",\n    \"color\": \"#111b27\",\n    \"boxShadow\": \"0 1px #3c526d\"\n  },\n  \"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before\": {\n    \"backgroundColor\": \"#8da1b918\"\n  },\n  \".line-numbers.line-numbers .line-numbers-rows\": {\n    \"borderRight\": \"1px solid #0b121b\",\n    \"background\": \"#0b121b7a\"\n  },\n  \".line-numbers .line-numbers-rows > span:before\": {\n    \"color\": \"#8da1b9da\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-1\": {\n    \"color\": \"#e6d37a\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-5\": {\n    \"color\": \"#e6d37a\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-9\": {\n    \"color\": \"#e6d37a\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-2\": {\n    \"color\": \"#f4adf4\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-6\": {\n    \"color\": \"#f4adf4\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-10\": {\n    \"color\": \"#f4adf4\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-3\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-7\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-11\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-4\": {\n    \"color\": \"#c699e3\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-8\": {\n    \"color\": \"#c699e3\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-12\": {\n    \"color\": \"#c699e3\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"#cd66601f\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"#cd66601f\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"#91d0761f\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"#91d0761f\"\n  },\n  \".command-line .command-line-prompt\": {\n    \"borderRight\": \"1px solid #0b121b\"\n  },\n  \".command-line .command-line-prompt > span:before\": {\n    \"color\": \"#8da1b9da\"\n  }\n};","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {blankLine} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n  markdownLineEnding,\n  markdownLineEndingOrSpace\n} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nconst indent = {\n  tokenize: tokenizeIndent,\n  partial: true\n}\n/**\n * @returns {Extension}\n */\n\nexport function gfmFootnote() {\n  /** @type {Extension} */\n  return {\n    document: {\n      [91]: {\n        tokenize: tokenizeDefinitionStart,\n        continuation: {\n          tokenize: tokenizeDefinitionContinuation\n        },\n        exit: gfmFootnoteDefinitionEnd\n      }\n    },\n    text: {\n      [91]: {\n        tokenize: tokenizeGfmFootnoteCall\n      },\n      [93]: {\n        add: 'after',\n        tokenize: tokenizePotentialGfmFootnoteCall,\n        resolveTo: resolveToPotentialGfmFootnoteCall\n      }\n    }\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n  const self = this\n  let index = self.events.length\n  /** @type {Array<string>} */\n  // @ts-expect-error It’s fine!\n\n  const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n  /** @type {Token} */\n\n  let labelStart // Find an opening.\n\n  while (index--) {\n    const token = self.events[index][1]\n\n    if (token.type === 'labelImage') {\n      labelStart = token\n      break\n    } // Exit if we’ve walked far enough.\n\n    if (\n      token.type === 'gfmFootnoteCall' ||\n      token.type === 'labelLink' ||\n      token.type === 'label' ||\n      token.type === 'image' ||\n      token.type === 'link'\n    ) {\n      break\n    }\n  }\n\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (!labelStart || !labelStart._balanced) {\n      return nok(code)\n    }\n\n    const id = normalizeIdentifier(\n      self.sliceSerialize({\n        start: labelStart.end,\n        end: self.now()\n      })\n    )\n\n    if (id.charCodeAt(0) !== 94 || !defined.includes(id.slice(1))) {\n      return nok(code)\n    }\n\n    effects.enter('gfmFootnoteCallLabelMarker')\n    effects.consume(code)\n    effects.exit('gfmFootnoteCallLabelMarker')\n    return ok(code)\n  }\n}\n/** @type {Resolver} */\n\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n  let index = events.length\n  /** @type {Token|undefined} */\n\n  let labelStart // Find an opening.\n\n  while (index--) {\n    if (\n      events[index][1].type === 'labelImage' &&\n      events[index][0] === 'enter'\n    ) {\n      labelStart = events[index][1]\n      break\n    }\n  }\n\n  // Change the `labelImageMarker` to a `data`.\n  events[index + 1][1].type = 'data'\n  events[index + 3][1].type = 'gfmFootnoteCallLabelMarker' // The whole (without `!`):\n\n  const call = {\n    type: 'gfmFootnoteCall',\n    start: Object.assign({}, events[index + 3][1].start),\n    end: Object.assign({}, events[events.length - 1][1].end)\n  } // The `^` marker\n\n  const marker = {\n    type: 'gfmFootnoteCallMarker',\n    start: Object.assign({}, events[index + 3][1].end),\n    end: Object.assign({}, events[index + 3][1].end)\n  } // Increment the end 1 character.\n\n  marker.end.column++\n  marker.end.offset++\n  marker.end._bufferIndex++\n  const string = {\n    type: 'gfmFootnoteCallString',\n    start: Object.assign({}, marker.end),\n    end: Object.assign({}, events[events.length - 1][1].start)\n  }\n  const chunk = {\n    type: 'chunkString',\n    contentType: 'string',\n    start: Object.assign({}, string.start),\n    end: Object.assign({}, string.end)\n  }\n  /** @type {Array<Event>} */\n\n  const replacement = [\n    // Take the `labelImageMarker` (now `data`, the `!`)\n    events[index + 1],\n    events[index + 2],\n    ['enter', call, context], // The `[`\n    events[index + 3],\n    events[index + 4], // The `^`.\n    ['enter', marker, context],\n    ['exit', marker, context], // Everything in between.\n    ['enter', string, context],\n    ['enter', chunk, context],\n    ['exit', chunk, context],\n    ['exit', string, context], // The ending (`]`, properly parsed and labelled).\n    events[events.length - 2],\n    events[events.length - 1],\n    ['exit', call, context]\n  ]\n  events.splice(index, events.length - index + 1, ...replacement)\n  return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n  const self = this\n  /** @type {Array<string>} */\n  // @ts-expect-error It’s fine!\n\n  const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n  let size = 0\n  /** @type {boolean} */\n\n  let data\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('gfmFootnoteCall')\n    effects.enter('gfmFootnoteCallLabelMarker')\n    effects.consume(code)\n    effects.exit('gfmFootnoteCallLabelMarker')\n    return callStart\n  }\n  /** @type {State} */\n\n  function callStart(code) {\n    if (code !== 94) return nok(code)\n    effects.enter('gfmFootnoteCallMarker')\n    effects.consume(code)\n    effects.exit('gfmFootnoteCallMarker')\n    effects.enter('gfmFootnoteCallString')\n    effects.enter('chunkString').contentType = 'string'\n    return callData\n  }\n  /** @type {State} */\n\n  function callData(code) {\n    /** @type {Token} */\n    let token\n\n    if (code === null || code === 91 || size++ > 999) {\n      return nok(code)\n    }\n\n    if (code === 93) {\n      if (!data) {\n        return nok(code)\n      }\n\n      effects.exit('chunkString')\n      token = effects.exit('gfmFootnoteCallString')\n      return defined.includes(normalizeIdentifier(self.sliceSerialize(token)))\n        ? end(code)\n        : nok(code)\n    }\n\n    effects.consume(code)\n\n    if (!markdownLineEndingOrSpace(code)) {\n      data = true\n    }\n\n    return code === 92 ? callEscape : callData\n  }\n  /** @type {State} */\n\n  function callEscape(code) {\n    if (code === 91 || code === 92 || code === 93) {\n      effects.consume(code)\n      size++\n      return callData\n    }\n\n    return callData(code)\n  }\n  /** @type {State} */\n\n  function end(code) {\n    effects.enter('gfmFootnoteCallLabelMarker')\n    effects.consume(code)\n    effects.exit('gfmFootnoteCallLabelMarker')\n    effects.exit('gfmFootnoteCall')\n    return ok\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n  const self = this\n  /** @type {Array<string>} */\n  // @ts-expect-error It’s fine!\n\n  const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n  /** @type {string} */\n\n  let identifier\n  let size = 0\n  /** @type {boolean|undefined} */\n\n  let data\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('gfmFootnoteDefinition')._container = true\n    effects.enter('gfmFootnoteDefinitionLabel')\n    effects.enter('gfmFootnoteDefinitionLabelMarker')\n    effects.consume(code)\n    effects.exit('gfmFootnoteDefinitionLabelMarker')\n    return labelStart\n  }\n  /** @type {State} */\n\n  function labelStart(code) {\n    if (code === 94) {\n      effects.enter('gfmFootnoteDefinitionMarker')\n      effects.consume(code)\n      effects.exit('gfmFootnoteDefinitionMarker')\n      effects.enter('gfmFootnoteDefinitionLabelString')\n      return atBreak\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function atBreak(code) {\n    /** @type {Token} */\n    let token\n\n    if (code === null || code === 91 || size > 999) {\n      return nok(code)\n    }\n\n    if (code === 93) {\n      if (!data) {\n        return nok(code)\n      }\n\n      token = effects.exit('gfmFootnoteDefinitionLabelString')\n      identifier = normalizeIdentifier(self.sliceSerialize(token))\n      effects.enter('gfmFootnoteDefinitionLabelMarker')\n      effects.consume(code)\n      effects.exit('gfmFootnoteDefinitionLabelMarker')\n      effects.exit('gfmFootnoteDefinitionLabel')\n      return labelAfter\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      size++\n      return atBreak\n    }\n\n    effects.enter('chunkString').contentType = 'string'\n    return label(code)\n  }\n  /** @type {State} */\n\n  function label(code) {\n    if (\n      code === null ||\n      markdownLineEnding(code) ||\n      code === 91 ||\n      code === 93 ||\n      size > 999\n    ) {\n      effects.exit('chunkString')\n      return atBreak(code)\n    }\n\n    if (!markdownLineEndingOrSpace(code)) {\n      data = true\n    }\n\n    size++\n    effects.consume(code)\n    return code === 92 ? labelEscape : label\n  }\n  /** @type {State} */\n\n  function labelEscape(code) {\n    if (code === 91 || code === 92 || code === 93) {\n      effects.consume(code)\n      size++\n      return label\n    }\n\n    return label(code)\n  }\n  /** @type {State} */\n\n  function labelAfter(code) {\n    if (code === 58) {\n      effects.enter('definitionMarker')\n      effects.consume(code)\n      effects.exit('definitionMarker') // Any whitespace after the marker is eaten, forming indented code\n      // is not possible.\n      // No space is also fine, just like a block quote marker.\n\n      return factorySpace(effects, done, 'gfmFootnoteDefinitionWhitespace')\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function done(code) {\n    if (!defined.includes(identifier)) {\n      defined.push(identifier)\n    }\n\n    return ok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n  // Either a blank line, which is okay, or an indented thing.\n  return effects.check(blankLine, ok, effects.attempt(indent, ok, nok))\n}\n/** @type {Exiter} */\n\nfunction gfmFootnoteDefinitionEnd(effects) {\n  effects.exit('gfmFootnoteDefinition')\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeIndent(effects, ok, nok) {\n  const self = this\n  return factorySpace(\n    effects,\n    afterPrefix,\n    'gfmFootnoteDefinitionIndent',\n    4 + 1\n  )\n  /** @type {State} */\n\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1]\n    return tail &&\n      tail[1].type === 'gfmFootnoteDefinitionIndent' &&\n      tail[2].sliceSerialize(tail[1], true).length === 4\n      ? ok(code)\n      : nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n/**\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean} [singleTilde=true]\n *   Whether to support strikethrough with a single tilde (`boolean`, default:\n *   `true`).\n *   Single tildes work on github.com, but are technically prohibited by the\n *   GFM spec.\n */\nimport {splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/**\n * @param {Options} [options]\n * @returns {Extension}\n */\nexport function gfmStrikethrough(options = {}) {\n  let single = options.singleTilde\n  const tokenizer = {\n    tokenize: tokenizeStrikethrough,\n    resolveAll: resolveAllStrikethrough\n  }\n\n  if (single === null || single === undefined) {\n    single = true\n  }\n\n  return {\n    text: {\n      [126]: tokenizer\n    },\n    insideSpan: {\n      null: [tokenizer]\n    },\n    attentionMarkers: {\n      null: [126]\n    }\n  }\n  /**\n   * Take events and resolve strikethrough.\n   *\n   * @type {Resolver}\n   */\n\n  function resolveAllStrikethrough(events, context) {\n    let index = -1 // Walk through all events.\n\n    while (++index < events.length) {\n      // Find a token that can close.\n      if (\n        events[index][0] === 'enter' &&\n        events[index][1].type === 'strikethroughSequenceTemporary' &&\n        events[index][1]._close\n      ) {\n        let open = index // Now walk back to find an opener.\n\n        while (open--) {\n          // Find a token that can open the closer.\n          if (\n            events[open][0] === 'exit' &&\n            events[open][1].type === 'strikethroughSequenceTemporary' &&\n            events[open][1]._open && // If the sizes are the same:\n            events[index][1].end.offset - events[index][1].start.offset ===\n              events[open][1].end.offset - events[open][1].start.offset\n          ) {\n            events[index][1].type = 'strikethroughSequence'\n            events[open][1].type = 'strikethroughSequence'\n            const strikethrough = {\n              type: 'strikethrough',\n              start: Object.assign({}, events[open][1].start),\n              end: Object.assign({}, events[index][1].end)\n            }\n            const text = {\n              type: 'strikethroughText',\n              start: Object.assign({}, events[open][1].end),\n              end: Object.assign({}, events[index][1].start)\n            } // Opening.\n\n            const nextEvents = [\n              ['enter', strikethrough, context],\n              ['enter', events[open][1], context],\n              ['exit', events[open][1], context],\n              ['enter', text, context]\n            ] // Between.\n\n            splice(\n              nextEvents,\n              nextEvents.length,\n              0,\n              resolveAll(\n                context.parser.constructs.insideSpan.null,\n                events.slice(open + 1, index),\n                context\n              )\n            ) // Closing.\n\n            splice(nextEvents, nextEvents.length, 0, [\n              ['exit', text, context],\n              ['enter', events[index][1], context],\n              ['exit', events[index][1], context],\n              ['exit', strikethrough, context]\n            ])\n            splice(events, open - 1, index - open + 3, nextEvents)\n            index = open + nextEvents.length - 2\n            break\n          }\n        }\n      }\n    }\n\n    index = -1\n\n    while (++index < events.length) {\n      if (events[index][1].type === 'strikethroughSequenceTemporary') {\n        events[index][1].type = 'data'\n      }\n    }\n\n    return events\n  }\n  /** @type {Tokenizer} */\n\n  function tokenizeStrikethrough(effects, ok, nok) {\n    const previous = this.previous\n    const events = this.events\n    let size = 0\n    return start\n    /** @type {State} */\n\n    function start(code) {\n      if (\n        previous === 126 &&\n        events[events.length - 1][1].type !== 'characterEscape'\n      ) {\n        return nok(code)\n      }\n\n      effects.enter('strikethroughSequenceTemporary')\n      return more(code)\n    }\n    /** @type {State} */\n\n    function more(code) {\n      const before = classifyCharacter(previous)\n\n      if (code === 126) {\n        // If this is the third marker, exit.\n        if (size > 1) return nok(code)\n        effects.consume(code)\n        size++\n        return more\n      }\n\n      if (size < 2 && !single) return nok(code)\n      const token = effects.exit('strikethroughSequenceTemporary')\n      const after = classifyCharacter(code)\n      token._open = !after || (after === 2 && Boolean(before))\n      token._close = !before || (before === 2 && Boolean(after))\n      return ok(code)\n    }\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n */\n\n/**\n * @typedef {'left'|'center'|'right'|'none'} Align\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n  markdownLineEnding,\n  markdownLineEndingOrSpace,\n  markdownSpace\n} from 'micromark-util-character'\n\n/** @type {Extension} */\nexport const gfmTable = {\n  flow: {\n    null: {\n      tokenize: tokenizeTable,\n      resolve: resolveTable\n    }\n  }\n}\nconst nextPrefixedOrBlank = {\n  tokenize: tokenizeNextPrefixedOrBlank,\n  partial: true\n}\n/** @type {Resolver} */\n\nfunction resolveTable(events, context) {\n  let index = -1\n  /** @type {boolean|undefined} */\n\n  let inHead\n  /** @type {boolean|undefined} */\n\n  let inDelimiterRow\n  /** @type {boolean|undefined} */\n\n  let inRow\n  /** @type {number|undefined} */\n\n  let contentStart\n  /** @type {number|undefined} */\n\n  let contentEnd\n  /** @type {number|undefined} */\n\n  let cellStart\n  /** @type {boolean|undefined} */\n\n  let seenCellInRow\n\n  while (++index < events.length) {\n    const token = events[index][1]\n\n    if (inRow) {\n      if (token.type === 'temporaryTableCellContent') {\n        contentStart = contentStart || index\n        contentEnd = index\n      }\n\n      if (\n        // Combine separate content parts into one.\n        (token.type === 'tableCellDivider' || token.type === 'tableRow') &&\n        contentEnd\n      ) {\n        const content = {\n          type: 'tableContent',\n          start: events[contentStart][1].start,\n          end: events[contentEnd][1].end\n        }\n        /** @type {Token} */\n\n        const text = {\n          type: 'chunkText',\n          start: content.start,\n          end: content.end,\n          // @ts-expect-error It’s fine.\n          contentType: 'text'\n        }\n        events.splice(\n          contentStart,\n          contentEnd - contentStart + 1,\n          ['enter', content, context],\n          ['enter', text, context],\n          ['exit', text, context],\n          ['exit', content, context]\n        )\n        index -= contentEnd - contentStart - 3\n        contentStart = undefined\n        contentEnd = undefined\n      }\n    }\n\n    if (\n      events[index][0] === 'exit' &&\n      cellStart !== undefined &&\n      cellStart + (seenCellInRow ? 0 : 1) < index &&\n      (token.type === 'tableCellDivider' ||\n        (token.type === 'tableRow' &&\n          (cellStart + 3 < index ||\n            events[cellStart][1].type !== 'whitespace')))\n    ) {\n      const cell = {\n        type: inDelimiterRow\n          ? 'tableDelimiter'\n          : inHead\n          ? 'tableHeader'\n          : 'tableData',\n        start: events[cellStart][1].start,\n        end: events[index][1].end\n      }\n      events.splice(index + (token.type === 'tableCellDivider' ? 1 : 0), 0, [\n        'exit',\n        cell,\n        context\n      ])\n      events.splice(cellStart, 0, ['enter', cell, context])\n      index += 2\n      cellStart = index + 1\n      seenCellInRow = true\n    }\n\n    if (token.type === 'tableRow') {\n      inRow = events[index][0] === 'enter'\n\n      if (inRow) {\n        cellStart = index + 1\n        seenCellInRow = false\n      }\n    }\n\n    if (token.type === 'tableDelimiterRow') {\n      inDelimiterRow = events[index][0] === 'enter'\n\n      if (inDelimiterRow) {\n        cellStart = index + 1\n        seenCellInRow = false\n      }\n    }\n\n    if (token.type === 'tableHead') {\n      inHead = events[index][0] === 'enter'\n    }\n  }\n\n  return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTable(effects, ok, nok) {\n  const self = this\n  /** @type {Array<Align>} */\n\n  const align = []\n  let tableHeaderCount = 0\n  /** @type {boolean|undefined} */\n\n  let seenDelimiter\n  /** @type {boolean|undefined} */\n\n  let hasDash\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    // @ts-expect-error Custom.\n    effects.enter('table')._align = align\n    effects.enter('tableHead')\n    effects.enter('tableRow') // If we start with a pipe, we open a cell marker.\n\n    if (code === 124) {\n      return cellDividerHead(code)\n    }\n\n    tableHeaderCount++\n    effects.enter('temporaryTableCellContent') // Can’t be space or eols at the start of a construct, so we’re in a cell.\n\n    return inCellContentHead(code)\n  }\n  /** @type {State} */\n\n  function cellDividerHead(code) {\n    effects.enter('tableCellDivider')\n    effects.consume(code)\n    effects.exit('tableCellDivider')\n    seenDelimiter = true\n    return cellBreakHead\n  }\n  /** @type {State} */\n\n  function cellBreakHead(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return atRowEndHead(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.enter('whitespace')\n      effects.consume(code)\n      return inWhitespaceHead\n    }\n\n    if (seenDelimiter) {\n      seenDelimiter = undefined\n      tableHeaderCount++\n    }\n\n    if (code === 124) {\n      return cellDividerHead(code)\n    } // Anything else is cell content.\n\n    effects.enter('temporaryTableCellContent')\n    return inCellContentHead(code)\n  }\n  /** @type {State} */\n\n  function inWhitespaceHead(code) {\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return inWhitespaceHead\n    }\n\n    effects.exit('whitespace')\n    return cellBreakHead(code)\n  }\n  /** @type {State} */\n\n  function inCellContentHead(code) {\n    // EOF, whitespace, pipe\n    if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n      effects.exit('temporaryTableCellContent')\n      return cellBreakHead(code)\n    }\n\n    effects.consume(code)\n    return code === 92 ? inCellContentEscapeHead : inCellContentHead\n  }\n  /** @type {State} */\n\n  function inCellContentEscapeHead(code) {\n    if (code === 92 || code === 124) {\n      effects.consume(code)\n      return inCellContentHead\n    } // Anything else.\n\n    return inCellContentHead(code)\n  }\n  /** @type {State} */\n\n  function atRowEndHead(code) {\n    if (code === null) {\n      return nok(code)\n    }\n\n    effects.exit('tableRow')\n    effects.exit('tableHead')\n    const originalInterrupt = self.interrupt\n    self.interrupt = true\n    return effects.attempt(\n      {\n        tokenize: tokenizeRowEnd,\n        partial: true\n      },\n      function (code) {\n        self.interrupt = originalInterrupt\n        effects.enter('tableDelimiterRow')\n        return atDelimiterRowBreak(code)\n      },\n      function (code) {\n        self.interrupt = originalInterrupt\n        return nok(code)\n      }\n    )(code)\n  }\n  /** @type {State} */\n\n  function atDelimiterRowBreak(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return rowEndDelimiter(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.enter('whitespace')\n      effects.consume(code)\n      return inWhitespaceDelimiter\n    }\n\n    if (code === 45) {\n      effects.enter('tableDelimiterFiller')\n      effects.consume(code)\n      hasDash = true\n      align.push('none')\n      return inFillerDelimiter\n    }\n\n    if (code === 58) {\n      effects.enter('tableDelimiterAlignment')\n      effects.consume(code)\n      effects.exit('tableDelimiterAlignment')\n      align.push('left')\n      return afterLeftAlignment\n    } // If we start with a pipe, we open a cell marker.\n\n    if (code === 124) {\n      effects.enter('tableCellDivider')\n      effects.consume(code)\n      effects.exit('tableCellDivider')\n      return atDelimiterRowBreak\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function inWhitespaceDelimiter(code) {\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return inWhitespaceDelimiter\n    }\n\n    effects.exit('whitespace')\n    return atDelimiterRowBreak(code)\n  }\n  /** @type {State} */\n\n  function inFillerDelimiter(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return inFillerDelimiter\n    }\n\n    effects.exit('tableDelimiterFiller')\n\n    if (code === 58) {\n      effects.enter('tableDelimiterAlignment')\n      effects.consume(code)\n      effects.exit('tableDelimiterAlignment')\n      align[align.length - 1] =\n        align[align.length - 1] === 'left' ? 'center' : 'right'\n      return afterRightAlignment\n    }\n\n    return atDelimiterRowBreak(code)\n  }\n  /** @type {State} */\n\n  function afterLeftAlignment(code) {\n    if (code === 45) {\n      effects.enter('tableDelimiterFiller')\n      effects.consume(code)\n      hasDash = true\n      return inFillerDelimiter\n    } // Anything else is not ok.\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function afterRightAlignment(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return rowEndDelimiter(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.enter('whitespace')\n      effects.consume(code)\n      return inWhitespaceDelimiter\n    } // `|`\n\n    if (code === 124) {\n      effects.enter('tableCellDivider')\n      effects.consume(code)\n      effects.exit('tableCellDivider')\n      return atDelimiterRowBreak\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function rowEndDelimiter(code) {\n    effects.exit('tableDelimiterRow') // Exit if there was no dash at all, or if the header cell count is not the\n    // delimiter cell count.\n\n    if (!hasDash || tableHeaderCount !== align.length) {\n      return nok(code)\n    }\n\n    if (code === null) {\n      return tableClose(code)\n    }\n\n    return effects.check(\n      nextPrefixedOrBlank,\n      tableClose,\n      effects.attempt(\n        {\n          tokenize: tokenizeRowEnd,\n          partial: true\n        },\n        factorySpace(effects, bodyStart, 'linePrefix', 4),\n        tableClose\n      )\n    )(code)\n  }\n  /** @type {State} */\n\n  function tableClose(code) {\n    effects.exit('table')\n    return ok(code)\n  }\n  /** @type {State} */\n\n  function bodyStart(code) {\n    effects.enter('tableBody')\n    return rowStartBody(code)\n  }\n  /** @type {State} */\n\n  function rowStartBody(code) {\n    effects.enter('tableRow') // If we start with a pipe, we open a cell marker.\n\n    if (code === 124) {\n      return cellDividerBody(code)\n    }\n\n    effects.enter('temporaryTableCellContent') // Can’t be space or eols at the start of a construct, so we’re in a cell.\n\n    return inCellContentBody(code)\n  }\n  /** @type {State} */\n\n  function cellDividerBody(code) {\n    effects.enter('tableCellDivider')\n    effects.consume(code)\n    effects.exit('tableCellDivider')\n    return cellBreakBody\n  }\n  /** @type {State} */\n\n  function cellBreakBody(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return atRowEndBody(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.enter('whitespace')\n      effects.consume(code)\n      return inWhitespaceBody\n    } // `|`\n\n    if (code === 124) {\n      return cellDividerBody(code)\n    } // Anything else is cell content.\n\n    effects.enter('temporaryTableCellContent')\n    return inCellContentBody(code)\n  }\n  /** @type {State} */\n\n  function inWhitespaceBody(code) {\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return inWhitespaceBody\n    }\n\n    effects.exit('whitespace')\n    return cellBreakBody(code)\n  }\n  /** @type {State} */\n\n  function inCellContentBody(code) {\n    // EOF, whitespace, pipe\n    if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n      effects.exit('temporaryTableCellContent')\n      return cellBreakBody(code)\n    }\n\n    effects.consume(code)\n    return code === 92 ? inCellContentEscapeBody : inCellContentBody\n  }\n  /** @type {State} */\n\n  function inCellContentEscapeBody(code) {\n    if (code === 92 || code === 124) {\n      effects.consume(code)\n      return inCellContentBody\n    } // Anything else.\n\n    return inCellContentBody(code)\n  }\n  /** @type {State} */\n\n  function atRowEndBody(code) {\n    effects.exit('tableRow')\n\n    if (code === null) {\n      return tableBodyClose(code)\n    }\n\n    return effects.check(\n      nextPrefixedOrBlank,\n      tableBodyClose,\n      effects.attempt(\n        {\n          tokenize: tokenizeRowEnd,\n          partial: true\n        },\n        factorySpace(effects, rowStartBody, 'linePrefix', 4),\n        tableBodyClose\n      )\n    )(code)\n  }\n  /** @type {State} */\n\n  function tableBodyClose(code) {\n    effects.exit('tableBody')\n    return tableClose(code)\n  }\n  /** @type {Tokenizer} */\n\n  function tokenizeRowEnd(effects, ok, nok) {\n    return start\n    /** @type {State} */\n\n    function start(code) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return factorySpace(effects, prefixed, 'linePrefix')\n    }\n    /** @type {State} */\n\n    function prefixed(code) {\n      // Blank or interrupting line.\n      if (\n        self.parser.lazy[self.now().line] ||\n        code === null ||\n        markdownLineEnding(code)\n      ) {\n        return nok(code)\n      }\n\n      const tail = self.events[self.events.length - 1] // Indented code can interrupt delimiter and body rows.\n\n      if (\n        !self.parser.constructs.disable.null.includes('codeIndented') &&\n        tail &&\n        tail[1].type === 'linePrefix' &&\n        tail[2].sliceSerialize(tail[1], true).length >= 4\n      ) {\n        return nok(code)\n      }\n\n      self._gfmTableDynamicInterruptHack = true\n      return effects.check(\n        self.parser.constructs.flow,\n        function (code) {\n          self._gfmTableDynamicInterruptHack = false\n          return nok(code)\n        },\n        function (code) {\n          self._gfmTableDynamicInterruptHack = false\n          return ok(code)\n        }\n      )(code)\n    }\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNextPrefixedOrBlank(effects, ok, nok) {\n  let size = 0\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    // This is a check, so we don’t care about tokens, but we open a bogus one\n    // so we’re valid.\n    effects.enter('check') // EOL.\n\n    effects.consume(code)\n    return whitespace\n  }\n  /** @type {State} */\n\n  function whitespace(code) {\n    if (code === -1 || code === 32) {\n      effects.consume(code)\n      size++\n      return size === 4 ? ok : whitespace\n    } // EOF or whitespace\n\n    if (code === null || markdownLineEndingOrSpace(code)) {\n      return ok(code)\n    } // Anything else.\n\n    return nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n  markdownLineEndingOrSpace,\n  markdownLineEnding\n} from 'micromark-util-character'\nconst tasklistCheck = {\n  tokenize: tokenizeTasklistCheck\n}\nexport const gfmTaskListItem = {\n  text: {\n    [91]: tasklistCheck\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n  const self = this\n  return open\n  /** @type {State} */\n\n  function open(code) {\n    if (\n      // Exit if there’s stuff before.\n      self.previous !== null || // Exit if not in the first content that is the first child of a list\n      // item.\n      !self._gfmTasklistFirstContentOfListItem\n    ) {\n      return nok(code)\n    }\n\n    effects.enter('taskListCheck')\n    effects.enter('taskListCheckMarker')\n    effects.consume(code)\n    effects.exit('taskListCheckMarker')\n    return inside\n  }\n  /** @type {State} */\n\n  function inside(code) {\n    // To match how GH works in comments, use `markdownSpace` (`[ \\t]`) instead\n    // of `markdownLineEndingOrSpace` (`[ \\t\\r\\n]`).\n    if (markdownLineEndingOrSpace(code)) {\n      effects.enter('taskListCheckValueUnchecked')\n      effects.consume(code)\n      effects.exit('taskListCheckValueUnchecked')\n      return close\n    }\n\n    if (code === 88 || code === 120) {\n      effects.enter('taskListCheckValueChecked')\n      effects.consume(code)\n      effects.exit('taskListCheckValueChecked')\n      return close\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function close(code) {\n    if (code === 93) {\n      effects.enter('taskListCheckMarker')\n      effects.consume(code)\n      effects.exit('taskListCheckMarker')\n      effects.exit('taskListCheck')\n      return effects.check(\n        {\n          tokenize: spaceThenNonSpace\n        },\n        ok,\n        nok\n      )\n    }\n\n    return nok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction spaceThenNonSpace(effects, ok, nok) {\n  const self = this\n  return factorySpace(effects, after, 'whitespace')\n  /** @type {State} */\n\n  function after(code) {\n    const tail = self.events[self.events.length - 1]\n    return (\n      // We either found spaces…\n      ((tail && tail[1].type === 'whitespace') || // …or it was followed by a line ending, in which case, there has to be\n        // non-whitespace after that line ending, because otherwise we’d get an\n        // EOF as the content is closed with blank lines.\n        markdownLineEnding(code)) &&\n        code !== null\n        ? ok(code)\n        : nok(code)\n    )\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n */\n\nimport {\n  combineExtensions,\n  combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n  gfmAutolinkLiteral,\n  gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n  gfmStrikethrough,\n  gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n  gfmTaskListItem,\n  gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Support GFM or markdown on github.com.\n *\n * @param {Options} [options]\n * @returns {Extension}\n */\nexport function gfm(options) {\n  return combineExtensions([\n    gfmAutolinkLiteral,\n    gfmFootnote(),\n    gfmStrikethrough(options),\n    gfmTable,\n    gfmTaskListItem\n  ])\n}\n\n/**\n * Support to compile GFM to HTML.\n *\n * @param {HtmlOptions} [options]\n * @returns {HtmlExtension}\n */\nexport function gfmHtml(options) {\n  return combineHtmlExtensions([\n    gfmAutolinkLiteralHtml,\n    gfmFootnoteHtml(options),\n    gfmStrikethroughHtml,\n    gfmTableHtml,\n    gfmTagfilterHtml,\n    gfmTaskListItemHtml\n  ])\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n *   Value to search in.\n * @param {string} character\n *   Character (or substring) to look for.\n * @return {number}\n *   Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n  const source = String(value)\n\n  if (typeof character !== 'string') {\n    throw new TypeError('Expected character')\n  }\n\n  let count = 0\n  let index = source.indexOf(character)\n\n  while (index !== -1) {\n    count++\n    index = source.indexOf(character, index + character.length)\n  }\n\n  return count\n}\n","/**\n * @typedef Options\n *   Configuration (optional).\n * @property {Test} [ignore]\n *   `unist-util-is` test used to assert parents\n *\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Text} Text\n * @typedef {Content|Root} Node\n * @typedef {Exclude<Extract<Node, import('mdast').Parent>, Root>} Parent\n *\n * @typedef {import('unist-util-visit-parents').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n *\n * @typedef RegExpMatchObject\n * @property {number} index\n * @property {string} input\n * @property {[Root, ...Array<Parent>, Text]} stack\n *\n * @typedef {string|RegExp} Find\n * @typedef {string|ReplaceFunction} Replace\n *\n * @typedef {[Find, Replace]} FindAndReplaceTuple\n * @typedef {Record<string, Replace>} FindAndReplaceSchema\n * @typedef {Array<FindAndReplaceTuple>} FindAndReplaceList\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * @typedef {Array<Pair>} Pairs\n */\n\n/**\n * @callback ReplaceFunction\n * @param {...any} parameters\n * @returns {Array<PhrasingContent>|PhrasingContent|string|false|undefined|null}\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param tree mdast tree\n * @param find Value to find and remove. When `string`, escaped and made into a global `RegExp`\n * @param [replace] Value to insert.\n *   * When `string`, turned into a Text node.\n *   * When `Function`, called with the results of calling `RegExp.exec` as\n *     arguments, in which case it can return a single or a list of `Node`,\n *     a `string` (which is wrapped in a `Text` node), or `false` to not replace\n * @param [options] Configuration.\n */\nexport const findAndReplace =\n  /**\n   * @type {(\n   *   ((tree: Node, find: Find, replace?: Replace, options?: Options) => Node) &\n   *   ((tree: Node, schema: FindAndReplaceSchema|FindAndReplaceList, options?: Options) => Node)\n   * )}\n   **/\n  (\n    /**\n     * @param {Node} tree\n     * @param {Find|FindAndReplaceSchema|FindAndReplaceList} find\n     * @param {Replace|Options} [replace]\n     * @param {Options} [options]\n     */\n    function (tree, find, replace, options) {\n      /** @type {Options|undefined} */\n      let settings\n      /** @type {FindAndReplaceSchema|FindAndReplaceList} */\n      let schema\n\n      if (typeof find === 'string' || find instanceof RegExp) {\n        // @ts-expect-error don’t expect options twice.\n        schema = [[find, replace]]\n        settings = options\n      } else {\n        schema = find\n        // @ts-expect-error don’t expect replace twice.\n        settings = replace\n      }\n\n      if (!settings) {\n        settings = {}\n      }\n\n      const ignored = convert(settings.ignore || [])\n      const pairs = toPairs(schema)\n      let pairIndex = -1\n\n      while (++pairIndex < pairs.length) {\n        visitParents(tree, 'text', visitor)\n      }\n\n      return tree\n\n      /** @type {import('unist-util-visit-parents/complex-types').BuildVisitor<Root, 'text'>} */\n      function visitor(node, parents) {\n        let index = -1\n        /** @type {Parent|undefined} */\n        let grandparent\n\n        while (++index < parents.length) {\n          const parent = /** @type {Parent} */ (parents[index])\n\n          if (\n            ignored(\n              parent,\n              // @ts-expect-error mdast vs. unist parent.\n              grandparent ? grandparent.children.indexOf(parent) : undefined,\n              grandparent\n            )\n          ) {\n            return\n          }\n\n          grandparent = parent\n        }\n\n        if (grandparent) {\n          // @ts-expect-error: stack is fine.\n          return handler(node, parents)\n        }\n      }\n\n      /**\n       * @param {Text} node\n       * @param {[Root, ...Array<Parent>]} parents\n       * @returns {VisitorResult}\n       */\n      function handler(node, parents) {\n        const parent = parents[parents.length - 1]\n        const find = pairs[pairIndex][0]\n        const replace = pairs[pairIndex][1]\n        let start = 0\n        // @ts-expect-error: TS is wrong, some of these children can be text.\n        const index = parent.children.indexOf(node)\n        let change = false\n        /** @type {Array<PhrasingContent>} */\n        let nodes = []\n        /** @type {number|undefined} */\n        let position\n\n        find.lastIndex = 0\n\n        let match = find.exec(node.value)\n\n        while (match) {\n          position = match.index\n          /** @type {RegExpMatchObject} */\n          const matchObject = {\n            index: match.index,\n            input: match.input,\n            stack: [...parents, node]\n          }\n          let value = replace(...match, matchObject)\n\n          if (typeof value === 'string') {\n            value = value.length > 0 ? {type: 'text', value} : undefined\n          }\n\n          if (value !== false) {\n            if (start !== position) {\n              nodes.push({\n                type: 'text',\n                value: node.value.slice(start, position)\n              })\n            }\n\n            if (Array.isArray(value)) {\n              nodes.push(...value)\n            } else if (value) {\n              nodes.push(value)\n            }\n\n            start = position + match[0].length\n            change = true\n          }\n\n          if (!find.global) {\n            break\n          }\n\n          match = find.exec(node.value)\n        }\n\n        if (change) {\n          if (start < node.value.length) {\n            nodes.push({type: 'text', value: node.value.slice(start)})\n          }\n\n          parent.children.splice(index, 1, ...nodes)\n        } else {\n          nodes = [node]\n        }\n\n        return index + nodes.length\n      }\n    }\n  )\n\n/**\n * @param {FindAndReplaceSchema|FindAndReplaceList} schema\n * @returns {Pairs}\n */\nfunction toPairs(schema) {\n  /** @type {Pairs} */\n  const result = []\n\n  if (typeof schema !== 'object') {\n    throw new TypeError('Expected array or object as schema')\n  }\n\n  if (Array.isArray(schema)) {\n    let index = -1\n\n    while (++index < schema.length) {\n      result.push([\n        toExpression(schema[index][0]),\n        toFunction(schema[index][1])\n      ])\n    }\n  } else {\n    /** @type {string} */\n    let key\n\n    for (key in schema) {\n      if (own.call(schema, key)) {\n        result.push([toExpression(key), toFunction(schema[key])])\n      }\n    }\n  }\n\n  return result\n}\n\n/**\n * @param {Find} find\n * @returns {RegExp}\n */\nfunction toExpression(find) {\n  return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * @param {Replace} replace\n * @returns {ReplaceFunction}\n */\nfunction toFunction(replace) {\n  return typeof replace === 'function' ? replace : () => replace\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Transform} FromMarkdownTransform\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown/lib/types.js').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction\n * @typedef {import('mdast-util-find-and-replace').RegExpMatchObject} RegExpMatchObject\n * @typedef {import('mdast-util-find-and-replace').PhrasingContent} PhrasingContent\n */\n\nimport {ccount} from 'ccount'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\n\nconst inConstruct = 'phrasing'\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n/** @type {FromMarkdownExtension} */\nexport const gfmAutolinkLiteralFromMarkdown = {\n  transforms: [transformGfmAutolinkLiterals],\n  enter: {\n    literalAutolink: enterLiteralAutolink,\n    literalAutolinkEmail: enterLiteralAutolinkValue,\n    literalAutolinkHttp: enterLiteralAutolinkValue,\n    literalAutolinkWww: enterLiteralAutolinkValue\n  },\n  exit: {\n    literalAutolink: exitLiteralAutolink,\n    literalAutolinkEmail: exitLiteralAutolinkEmail,\n    literalAutolinkHttp: exitLiteralAutolinkHttp,\n    literalAutolinkWww: exitLiteralAutolinkWww\n  }\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmAutolinkLiteralToMarkdown = {\n  unsafe: [\n    {\n      character: '@',\n      before: '[+\\\\-.\\\\w]',\n      after: '[\\\\-.\\\\w]',\n      inConstruct,\n      notInConstruct\n    },\n    {\n      character: '.',\n      before: '[Ww]',\n      after: '[\\\\-.\\\\w]',\n      inConstruct,\n      notInConstruct\n    },\n    {character: ':', before: '[ps]', after: '\\\\/', inConstruct, notInConstruct}\n  ]\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterLiteralAutolink(token) {\n  this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterLiteralAutolinkValue(token) {\n  this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkHttp(token) {\n  this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkWww(token) {\n  this.config.exit.data.call(this, token)\n  const node = /** @type {Link} */ (this.stack[this.stack.length - 1])\n  node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkEmail(token) {\n  this.config.exit.autolinkEmail.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolink(token) {\n  this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n  findAndReplace(\n    tree,\n    [\n      [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n      [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n    ],\n    {ignore: ['link', 'linkReference']}\n  )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n  let prefix = ''\n\n  // Not an expected previous character.\n  if (!previous(match)) {\n    return false\n  }\n\n  // Treat `www` as part of the domain.\n  if (/^w/i.test(protocol)) {\n    domain = protocol + domain\n    protocol = ''\n    prefix = 'http://'\n  }\n\n  if (!isCorrectDomain(domain)) {\n    return false\n  }\n\n  const parts = splitUrl(domain + path)\n\n  if (!parts[0]) return false\n\n  /** @type {PhrasingContent} */\n  const result = {\n    type: 'link',\n    title: null,\n    url: prefix + protocol + parts[0],\n    children: [{type: 'text', value: protocol + parts[0]}]\n  }\n\n  if (parts[1]) {\n    return [result, {type: 'text', value: parts[1]}]\n  }\n\n  return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n */\nfunction findEmail(_, atext, label, match) {\n  if (\n    // Not an expected previous character.\n    !previous(match, true) ||\n    // Label ends in not allowed character.\n    /[_-\\d]$/.test(label)\n  ) {\n    return false\n  }\n\n  return {\n    type: 'link',\n    title: null,\n    url: 'mailto:' + atext + '@' + label,\n    children: [{type: 'text', value: atext + '@' + label}]\n  }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n  const parts = domain.split('.')\n\n  if (\n    parts.length < 2 ||\n    (parts[parts.length - 1] &&\n      (/_/.test(parts[parts.length - 1]) ||\n        !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n    (parts[parts.length - 2] &&\n      (/_/.test(parts[parts.length - 2]) ||\n        !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n  ) {\n    return false\n  }\n\n  return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string|undefined]}\n */\nfunction splitUrl(url) {\n  const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n  /** @type {number} */\n  let closingParenIndex\n  /** @type {number} */\n  let openingParens\n  /** @type {number} */\n  let closingParens\n  /** @type {string|undefined} */\n  let trail\n\n  if (trailExec) {\n    url = url.slice(0, trailExec.index)\n    trail = trailExec[0]\n    closingParenIndex = trail.indexOf(')')\n    openingParens = ccount(url, '(')\n    closingParens = ccount(url, ')')\n\n    while (closingParenIndex !== -1 && openingParens > closingParens) {\n      url += trail.slice(0, closingParenIndex + 1)\n      trail = trail.slice(closingParenIndex + 1)\n      closingParenIndex = trail.indexOf(')')\n      closingParens++\n    }\n  }\n\n  return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n  const code = match.input.charCodeAt(match.index - 1)\n\n  return (\n    (match.index === 0 ||\n      unicodeWhitespace(code) ||\n      unicodePunctuation(code)) &&\n    (!email || code !== 47)\n  )\n}\n","/**\n * @typedef {import('mdast').Association} Association\n */\n\nimport {decodeString} from 'micromark-util-decode-string'\n\n/**\n * The `label` of an association is the string value: character escapes and\n * references work, and casing is intact.\n * The `identifier` is used to match one association to another: controversially,\n * character escapes and references don’t work in this matching: `&copy;` does\n * not match `©`, and `\\+` does not match `+`.\n * But casing is ignored (and whitespace) is trimmed and collapsed: ` A\\nb`\n * matches `a b`.\n * So, we do prefer the label when figuring out how we’re going to serialize:\n * it has whitespace, casing, and we can ignore most useless character escapes\n * and all character references.\n *\n * @param {Association} node\n * @returns {string}\n */\nexport function association(node) {\n  if (node.label || !node.identifier) {\n    return node.label || ''\n  }\n\n  return decodeString(node.identifier)\n}\n","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('../types.js').TrackFields} TrackFields\n */\n\n/**\n * Functions to track output positions.\n * This info isn’t used yet but suchs functionality allows line wrapping,\n * and theoretically source maps (though, is there practical use in that?).\n *\n * @param {TrackFields} options_\n */\nexport function track(options_) {\n  // Defaults are used to prevent crashes when older utilities somehow activate\n  // this code.\n  /* c8 ignore next 5 */\n  const options = options_ || {}\n  const now = options.now || {}\n  let lineShift = options.lineShift || 0\n  let line = now.line || 1\n  let column = now.column || 1\n\n  return {move, current, shift}\n\n  /**\n   * Get the current tracked info.\n   *\n   * @returns {{now: Point, lineShift: number}}\n   */\n  function current() {\n    return {now: {line, column}, lineShift}\n  }\n\n  /**\n   * Define an increased line shift (the typical indent for lines).\n   *\n   * @param {number} value\n   */\n  function shift(value) {\n    lineShift += value\n  }\n\n  /**\n   * Move past a string.\n   *\n   * @param {string} value\n   * @returns {string}\n   */\n  function move(value = '') {\n    const chunks = value.split(/\\r?\\n|\\r/g)\n    const tail = chunks[chunks.length - 1]\n    line += chunks.length - 1\n    column =\n      chunks.length === 1 ? column + tail.length : 1 + tail.length + lineShift\n    return value\n  }\n}\n","/**\n * @typedef {import('../types.js').Node} Node\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').Join} Join\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').TrackFields} TrackFields\n */\n\nimport {track} from './track.js'\n\n/**\n * @param {Parent} parent\n * @param {Context} context\n * @param {TrackFields} safeOptions\n * @returns {string}\n */\nexport function containerFlow(parent, context, safeOptions) {\n  const indexStack = context.indexStack\n  const children = parent.children || []\n  const tracker = track(safeOptions)\n  /** @type {Array<string>} */\n  const results = []\n  let index = -1\n\n  indexStack.push(-1)\n\n  while (++index < children.length) {\n    const child = children[index]\n\n    indexStack[indexStack.length - 1] = index\n\n    results.push(\n      tracker.move(\n        context.handle(child, parent, context, {\n          before: '\\n',\n          after: '\\n',\n          ...tracker.current()\n        })\n      )\n    )\n\n    if (child.type !== 'list') {\n      context.bulletLastUsed = undefined\n    }\n\n    if (index < children.length - 1) {\n      results.push(tracker.move(between(child, children[index + 1])))\n    }\n  }\n\n  indexStack.pop()\n\n  return results.join('')\n\n  /**\n   * @param {Node} left\n   * @param {Node} right\n   * @returns {string}\n   */\n  function between(left, right) {\n    let index = context.join.length\n\n    while (index--) {\n      const result = context.join[index](left, right, parent, context)\n\n      if (result === true || result === 1) {\n        break\n      }\n\n      if (typeof result === 'number') {\n        return '\\n'.repeat(1 + result)\n      }\n\n      if (result === false) {\n        return '\\n\\n<!---->\\n\\n'\n      }\n    }\n\n    return '\\n\\n'\n  }\n}\n","/**\n * @callback Map\n * @param {string} value\n * @param {number} line\n * @param {boolean} blank\n * @returns {string}\n */\n\nconst eol = /\\r?\\n|\\r/g\n\n/**\n * @param {string} value\n * @param {Map} map\n * @returns {string}\n */\nexport function indentLines(value, map) {\n  /** @type {Array<string>} */\n  const result = []\n  let start = 0\n  let line = 0\n  /** @type {RegExpExecArray|null} */\n  let match\n\n  while ((match = eol.exec(value))) {\n    one(value.slice(start, match.index))\n    result.push(match[0])\n    start = match.index + match[0].length\n    line++\n  }\n\n  one(value.slice(start))\n\n  return result.join('')\n\n  /**\n   * @param {string} value\n   */\n  function one(value) {\n    result.push(map(value, line, !value))\n  }\n}\n","/**\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Unsafe} pattern\n * @returns {RegExp}\n */\nexport function patternCompile(pattern) {\n  if (!pattern._compiled) {\n    const before =\n      (pattern.atBreak ? '[\\\\r\\\\n][\\\\t ]*' : '') +\n      (pattern.before ? '(?:' + pattern.before + ')' : '')\n\n    pattern._compiled = new RegExp(\n      (before ? '(' + before + ')' : '') +\n        (/[|\\\\{}()[\\]^$+*?.-]/.test(pattern.character) ? '\\\\' : '') +\n        pattern.character +\n        (pattern.after ? '(?:' + pattern.after + ')' : ''),\n      'g'\n    )\n  }\n\n  return pattern._compiled\n}\n","/**\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Array<string>} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n  return (\n    listInScope(stack, pattern.inConstruct, true) &&\n    !listInScope(stack, pattern.notInConstruct, false)\n  )\n}\n\n/**\n * @param {Array<string>} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n  if (!list) {\n    return none\n  }\n\n  if (typeof list === 'string') {\n    list = [list]\n  }\n\n  let index = -1\n\n  while (++index < list.length) {\n    if (stack.includes(list[index])) {\n      return true\n    }\n  }\n\n  return false\n}\n","/**\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').SafeOptions} SafeOptions\n */\n\nimport {patternCompile} from './pattern-compile.js'\nimport {patternInScope} from './pattern-in-scope.js'\n\n/**\n * @param {Context} context\n * @param {string|null|undefined} input\n * @param {SafeOptions & {encode?: Array<string>}} config\n * @returns {string}\n */\nexport function safe(context, input, config) {\n  const value = (config.before || '') + (input || '') + (config.after || '')\n  /** @type {Array<number>} */\n  const positions = []\n  /** @type {Array<string>} */\n  const result = []\n  /** @type {Record<number, {before: boolean, after: boolean}>} */\n  const infos = {}\n  let index = -1\n\n  while (++index < context.unsafe.length) {\n    const pattern = context.unsafe[index]\n\n    if (!patternInScope(context.stack, pattern)) {\n      continue\n    }\n\n    const expression = patternCompile(pattern)\n    /** @type {RegExpExecArray|null} */\n    let match\n\n    while ((match = expression.exec(value))) {\n      const before = 'before' in pattern || Boolean(pattern.atBreak)\n      const after = 'after' in pattern\n      const position = match.index + (before ? match[1].length : 0)\n\n      if (positions.includes(position)) {\n        if (infos[position].before && !before) {\n          infos[position].before = false\n        }\n\n        if (infos[position].after && !after) {\n          infos[position].after = false\n        }\n      } else {\n        positions.push(position)\n        infos[position] = {before, after}\n      }\n    }\n  }\n\n  positions.sort(numerical)\n\n  let start = config.before ? config.before.length : 0\n  const end = value.length - (config.after ? config.after.length : 0)\n  index = -1\n\n  while (++index < positions.length) {\n    const position = positions[index]\n\n    // Character before or after matched:\n    if (position < start || position >= end) {\n      continue\n    }\n\n    // If this character is supposed to be escaped because it has a condition on\n    // the next character, and the next character is definitly being escaped,\n    // then skip this escape.\n    if (\n      (position + 1 < end &&\n        positions[index + 1] === position + 1 &&\n        infos[position].after &&\n        !infos[position + 1].before &&\n        !infos[position + 1].after) ||\n      (positions[index - 1] === position - 1 &&\n        infos[position].before &&\n        !infos[position - 1].before &&\n        !infos[position - 1].after)\n    ) {\n      continue\n    }\n\n    if (start !== position) {\n      // If we have to use a character reference, an ampersand would be more\n      // correct, but as backslashes only care about punctuation, either will\n      // do the trick\n      result.push(escapeBackslashes(value.slice(start, position), '\\\\'))\n    }\n\n    start = position\n\n    if (\n      /[!-/:-@[-`{-~]/.test(value.charAt(position)) &&\n      (!config.encode || !config.encode.includes(value.charAt(position)))\n    ) {\n      // Character escape.\n      result.push('\\\\')\n    } else {\n      // Character reference.\n      result.push(\n        '&#x' + value.charCodeAt(position).toString(16).toUpperCase() + ';'\n      )\n      start++\n    }\n  }\n\n  result.push(escapeBackslashes(value.slice(start, end), config.after))\n\n  return result.join('')\n}\n\n/**\n * @param {number} a\n * @param {number} b\n * @returns {number}\n */\nfunction numerical(a, b) {\n  return a - b\n}\n\n/**\n * @param {string} value\n * @param {string} after\n * @returns {string}\n */\nfunction escapeBackslashes(value, after) {\n  const expression = /\\\\(?=[!-/:-@[-`{-~])/g\n  /** @type {Array<number>} */\n  const positions = []\n  /** @type {Array<string>} */\n  const results = []\n  const whole = value + after\n  let index = -1\n  let start = 0\n  /** @type {RegExpExecArray|null} */\n  let match\n\n  while ((match = expression.exec(whole))) {\n    positions.push(match.index)\n  }\n\n  while (++index < positions.length) {\n    if (start !== positions[index]) {\n      results.push(value.slice(start, positions[index]))\n    }\n\n    results.push('\\\\')\n    start = positions[index]\n  }\n\n  results.push(value.slice(start))\n\n  return results.join('')\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Map} Map\n */\n\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {association} from 'mdast-util-to-markdown/lib/util/association.js'\nimport {containerFlow} from 'mdast-util-to-markdown/lib/util/container-flow.js'\nimport {indentLines} from 'mdast-util-to-markdown/lib/util/indent-lines.js'\nimport {safe} from 'mdast-util-to-markdown/lib/util/safe.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n/**\n * @returns {FromMarkdownExtension}\n */\nexport function gfmFootnoteFromMarkdown() {\n  return {\n    enter: {\n      gfmFootnoteDefinition: enterFootnoteDefinition,\n      gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n      gfmFootnoteCall: enterFootnoteCall,\n      gfmFootnoteCallString: enterFootnoteCallString\n    },\n    exit: {\n      gfmFootnoteDefinition: exitFootnoteDefinition,\n      gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n      gfmFootnoteCall: exitFootnoteCall,\n      gfmFootnoteCallString: exitFootnoteCallString\n    }\n  }\n\n  /** @type {FromMarkdownHandle} */\n  function enterFootnoteDefinition(token) {\n    this.enter(\n      {type: 'footnoteDefinition', identifier: '', label: '', children: []},\n      token\n    )\n  }\n\n  /** @type {FromMarkdownHandle} */\n  function enterFootnoteDefinitionLabelString() {\n    this.buffer()\n  }\n\n  /** @type {FromMarkdownHandle} */\n  function exitFootnoteDefinitionLabelString(token) {\n    const label = this.resume()\n    const node = /** @type {FootnoteDefinition} */ (\n      this.stack[this.stack.length - 1]\n    )\n    node.label = label\n    node.identifier = normalizeIdentifier(\n      this.sliceSerialize(token)\n    ).toLowerCase()\n  }\n\n  /** @type {FromMarkdownHandle} */\n  function exitFootnoteDefinition(token) {\n    this.exit(token)\n  }\n\n  /** @type {FromMarkdownHandle} */\n  function enterFootnoteCall(token) {\n    this.enter({type: 'footnoteReference', identifier: '', label: ''}, token)\n  }\n\n  /** @type {FromMarkdownHandle} */\n  function enterFootnoteCallString() {\n    this.buffer()\n  }\n\n  /** @type {FromMarkdownHandle} */\n  function exitFootnoteCallString(token) {\n    const label = this.resume()\n    const node = /** @type {FootnoteDefinition} */ (\n      this.stack[this.stack.length - 1]\n    )\n    node.label = label\n    node.identifier = normalizeIdentifier(\n      this.sliceSerialize(token)\n    ).toLowerCase()\n  }\n\n  /** @type {FromMarkdownHandle} */\n  function exitFootnoteCall(token) {\n    this.exit(token)\n  }\n}\n\n/**\n * @returns {ToMarkdownExtension}\n */\nexport function gfmFootnoteToMarkdown() {\n  footnoteReference.peek = footnoteReferencePeek\n\n  return {\n    // This is on by default already.\n    unsafe: [{character: '[', inConstruct: ['phrasing', 'label', 'reference']}],\n    handlers: {footnoteDefinition, footnoteReference}\n  }\n\n  /**\n   * @type {ToMarkdownHandle}\n   * @param {FootnoteReference} node\n   */\n  function footnoteReference(node, _, context, safeOptions) {\n    const tracker = track(safeOptions)\n    let value = tracker.move('[^')\n    const exit = context.enter('footnoteReference')\n    const subexit = context.enter('reference')\n    value += tracker.move(\n      safe(context, association(node), {\n        ...tracker.current(),\n        before: value,\n        after: ']'\n      })\n    )\n    subexit()\n    exit()\n    value += tracker.move(']')\n    return value\n  }\n\n  /** @type {ToMarkdownHandle} */\n  function footnoteReferencePeek() {\n    return '['\n  }\n\n  /**\n   * @type {ToMarkdownHandle}\n   * @param {FootnoteDefinition} node\n   */\n  function footnoteDefinition(node, _, context, safeOptions) {\n    const tracker = track(safeOptions)\n    let value = tracker.move('[^')\n    const exit = context.enter('footnoteDefinition')\n    const subexit = context.enter('label')\n    value += tracker.move(\n      safe(context, association(node), {\n        ...tracker.current(),\n        before: value,\n        after: ']'\n      })\n    )\n    subexit()\n    value += tracker.move(\n      ']:' + (node.children && node.children.length > 0 ? ' ' : '')\n    )\n    tracker.shift(4)\n    value += tracker.move(\n      indentLines(containerFlow(node, context, tracker.current()), map)\n    )\n    exit()\n\n    return value\n\n    /** @type {Map} */\n    function map(line, index, blank) {\n      if (index) {\n        return (blank ? '' : '    ') + line\n      }\n\n      return line\n    }\n  }\n}\n","/**\n * @typedef {import('../types.js').Node} Node\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').SafeOptions} SafeOptions\n * @typedef {import('../types.js').Context} Context\n */\n\nimport {track} from './track.js'\n\n/**\n * @param {Parent} parent\n * @param {Context} context\n * @param {SafeOptions} safeOptions\n * @returns {string}\n */\nexport function containerPhrasing(parent, context, safeOptions) {\n  const indexStack = context.indexStack\n  const children = parent.children || []\n  /** @type {Array<string>} */\n  const results = []\n  let index = -1\n  let before = safeOptions.before\n\n  indexStack.push(-1)\n  let tracker = track(safeOptions)\n\n  while (++index < children.length) {\n    const child = children[index]\n    /** @type {string} */\n    let after\n\n    indexStack[indexStack.length - 1] = index\n\n    if (index + 1 < children.length) {\n      // @ts-expect-error: hush, it’s actually a `zwitch`.\n      let handle = context.handle.handlers[children[index + 1].type]\n      if (handle && handle.peek) handle = handle.peek\n      after = handle\n        ? handle(children[index + 1], parent, context, {\n            before: '',\n            after: '',\n            ...tracker.current()\n          }).charAt(0)\n        : ''\n    } else {\n      after = safeOptions.after\n    }\n\n    // In some cases, html (text) can be found in phrasing right after an eol.\n    // When we’d serialize that, in most cases that would be seen as html\n    // (flow).\n    // As we can’t escape or so to prevent it from happening, we take a somewhat\n    // reasonable approach: replace that eol with a space.\n    // See: <https://github.com/syntax-tree/mdast-util-to-markdown/issues/15>\n    if (\n      results.length > 0 &&\n      (before === '\\r' || before === '\\n') &&\n      child.type === 'html'\n    ) {\n      results[results.length - 1] = results[results.length - 1].replace(\n        /(\\r?\\n|\\r)$/,\n        ' '\n      )\n      before = ' '\n\n      // To do: does this work to reset tracker?\n      tracker = track(safeOptions)\n      tracker.move(results.join(''))\n    }\n\n    results.push(\n      tracker.move(\n        context.handle(child, parent, context, {\n          ...tracker.current(),\n          before,\n          after\n        })\n      )\n    )\n\n    before = results[results.length - 1].slice(-1)\n  }\n\n  indexStack.pop()\n\n  return results.join('')\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {containerPhrasing} from 'mdast-util-to-markdown/lib/util/container-phrasing.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmStrikethroughFromMarkdown = {\n  canContainEols: ['delete'],\n  enter: {strikethrough: enterStrikethrough},\n  exit: {strikethrough: exitStrikethrough}\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmStrikethroughToMarkdown = {\n  unsafe: [{character: '~', inConstruct: 'phrasing'}],\n  handlers: {delete: handleDelete}\n}\n\nhandleDelete.peek = peekDelete\n\n/** @type {FromMarkdownHandle} */\nfunction enterStrikethrough(token) {\n  this.enter({type: 'delete', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitStrikethrough(token) {\n  this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, context, safeOptions) {\n  const tracker = track(safeOptions)\n  const exit = context.enter('emphasis')\n  let value = tracker.move('~~')\n  value += containerPhrasing(node, context, {\n    ...tracker.current(),\n    before: value,\n    after: '~'\n  })\n  value += tracker.move('~~')\n  exit()\n  return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n  return '~'\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../types.js').Handle} Handle\n */\n\nimport {patternCompile} from '../util/pattern-compile.js'\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @type {Handle}\n * @param {InlineCode} node\n */\nexport function inlineCode(node, _, context) {\n  let value = node.value || ''\n  let sequence = '`'\n  let index = -1\n\n  // If there is a single grave accent on its own in the code, use a fence of\n  // two.\n  // If there are two in a row, use one.\n  while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n    sequence += '`'\n  }\n\n  // If this is not just spaces or eols (tabs don’t count), and either the\n  // first or last character are a space, eol, or tick, then pad with spaces.\n  if (\n    /[^ \\r\\n]/.test(value) &&\n    ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n  ) {\n    value = ' ' + value + ' '\n  }\n\n  // We have a potential problem: certain characters after eols could result in\n  // blocks being seen.\n  // For example, if someone injected the string `'\\n# b'`, then that would\n  // result in an ATX heading.\n  // We can’t escape characters in `inlineCode`, but because eols are\n  // transformed to spaces when going from markdown to HTML anyway, we can swap\n  // them out.\n  while (++index < context.unsafe.length) {\n    const pattern = context.unsafe[index]\n    const expression = patternCompile(pattern)\n    /** @type {RegExpExecArray|null} */\n    let match\n\n    // Only look for `atBreak`s.\n    // Btw: note that `atBreak` patterns will always start the regex at LF or\n    // CR.\n    if (!pattern.atBreak) continue\n\n    while ((match = expression.exec(value))) {\n      let position = match.index\n\n      // Support CRLF (patterns only look for one of the characters).\n      if (\n        value.charCodeAt(position) === 10 /* `\\n` */ &&\n        value.charCodeAt(position - 1) === 13 /* `\\r` */\n      ) {\n        position--\n      }\n\n      value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n    }\n  }\n\n  return sequence + value + sequence\n}\n\n/**\n * @type {Handle}\n */\nfunction inlineCodePeek() {\n  return '`'\n}\n","/**\n * @typedef Options\n *   Configuration (optional).\n * @property {string|null|Array<string|null|undefined>} [align]\n *   One style for all columns, or styles for their respective columns.\n *   Each style is either `'l'` (left), `'r'` (right), or `'c'` (center).\n *   Other values are treated as `''`, which doesn’t place the colon in the\n *   alignment row but does align left.\n *   *Only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean} [padding=true]\n *   Whether to add a space of padding between delimiters and cells.\n *\n *   When `true`, there is padding:\n *\n *   ```markdown\n *   | Alpha | B     |\n *   | ----- | ----- |\n *   | C     | Delta |\n *   ```\n *\n *   When `false`, there is no padding:\n *\n *   ```markdown\n *   |Alpha|B    |\n *   |-----|-----|\n *   |C    |Delta|\n *   ```\n * @property {boolean} [delimiterStart=true]\n *   Whether to begin each row with the delimiter.\n *\n *   > 👉 **Note**: please don’t use this: it could create fragile structures\n *   > that aren’t understandable to some markdown parsers.\n *\n *   When `true`, there are starting delimiters:\n *\n *   ```markdown\n *   | Alpha | B     |\n *   | ----- | ----- |\n *   | C     | Delta |\n *   ```\n *\n *   When `false`, there are no starting delimiters:\n *\n *   ```markdown\n *   Alpha | B     |\n *   ----- | ----- |\n *   C     | Delta |\n *   ```\n * @property {boolean} [delimiterEnd=true]\n *   Whether to end each row with the delimiter.\n *\n *   > 👉 **Note**: please don’t use this: it could create fragile structures\n *   > that aren’t understandable to some markdown parsers.\n *\n *   When `true`, there are ending delimiters:\n *\n *   ```markdown\n *   | Alpha | B     |\n *   | ----- | ----- |\n *   | C     | Delta |\n *   ```\n *\n *   When `false`, there are no ending delimiters:\n *\n *   ```markdown\n *   | Alpha | B\n *   | ----- | -----\n *   | C     | Delta\n *   ```\n * @property {boolean} [alignDelimiters=true]\n *   Whether to align the delimiters.\n *   By default, they are aligned:\n *\n *   ```markdown\n *   | Alpha | B     |\n *   | ----- | ----- |\n *   | C     | Delta |\n *   ```\n *\n *   Pass `false` to make them staggered:\n *\n *   ```markdown\n *   | Alpha | B |\n *   | - | - |\n *   | C | Delta |\n *   ```\n * @property {(value: string) => number} [stringLength]\n *   Function to detect the length of table cell content.\n *   This is used when aligning the delimiters (`|`) between table cells.\n *   Full-width characters and emoji mess up delimiter alignment when viewing\n *   the markdown source.\n *   To fix this, you can pass this function, which receives the cell content\n *   and returns its “visible” size.\n *   Note that what is and isn’t visible depends on where the text is displayed.\n *\n *   Without such a function, the following:\n *\n *   ```js\n *   markdownTable([\n *     ['Alpha', 'Bravo'],\n *     ['中文', 'Charlie'],\n *     ['👩‍❤️‍👩', 'Delta']\n *   ])\n *   ```\n *\n *   Yields:\n *\n *   ```markdown\n *   | Alpha | Bravo |\n *   | - | - |\n *   | 中文 | Charlie |\n *   | 👩‍❤️‍👩 | Delta |\n *   ```\n *\n *   With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n *   ```js\n *   import stringWidth from 'string-width'\n *\n *   markdownTable(\n *     [\n *       ['Alpha', 'Bravo'],\n *       ['中文', 'Charlie'],\n *       ['👩‍❤️‍👩', 'Delta']\n *     ],\n *     {stringLength: stringWidth}\n *   )\n *   ```\n *\n *   Yields:\n *\n *   ```markdown\n *   | Alpha | Bravo   |\n *   | ----- | ------- |\n *   | 中文  | Charlie |\n *   | 👩‍❤️‍👩    | Delta   |\n *   ```\n */\n\n/**\n * @typedef {Options} MarkdownTableOptions\n * @todo\n *   Remove next major.\n */\n\n/**\n * Generate a markdown ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables)) table..\n *\n * @param {Array<Array<string|null|undefined>>} table\n *   Table data (matrix of strings).\n * @param {Options} [options]\n *   Configuration (optional).\n * @returns {string}\n */\nexport function markdownTable(table, options = {}) {\n  const align = (options.align || []).concat()\n  const stringLength = options.stringLength || defaultStringLength\n  /** @type {Array<number>} Character codes as symbols for alignment per column. */\n  const alignments = []\n  /** @type {Array<Array<string>>} Cells per row. */\n  const cellMatrix = []\n  /** @type {Array<Array<number>>} Sizes of each cell per row. */\n  const sizeMatrix = []\n  /** @type {Array<number>} */\n  const longestCellByColumn = []\n  let mostCellsPerRow = 0\n  let rowIndex = -1\n\n  // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n  // do superfluous work when aligning, so optimize for aligning.\n  while (++rowIndex < table.length) {\n    /** @type {Array<string>} */\n    const row = []\n    /** @type {Array<number>} */\n    const sizes = []\n    let columnIndex = -1\n\n    if (table[rowIndex].length > mostCellsPerRow) {\n      mostCellsPerRow = table[rowIndex].length\n    }\n\n    while (++columnIndex < table[rowIndex].length) {\n      const cell = serialize(table[rowIndex][columnIndex])\n\n      if (options.alignDelimiters !== false) {\n        const size = stringLength(cell)\n        sizes[columnIndex] = size\n\n        if (\n          longestCellByColumn[columnIndex] === undefined ||\n          size > longestCellByColumn[columnIndex]\n        ) {\n          longestCellByColumn[columnIndex] = size\n        }\n      }\n\n      row.push(cell)\n    }\n\n    cellMatrix[rowIndex] = row\n    sizeMatrix[rowIndex] = sizes\n  }\n\n  // Figure out which alignments to use.\n  let columnIndex = -1\n\n  if (typeof align === 'object' && 'length' in align) {\n    while (++columnIndex < mostCellsPerRow) {\n      alignments[columnIndex] = toAlignment(align[columnIndex])\n    }\n  } else {\n    const code = toAlignment(align)\n\n    while (++columnIndex < mostCellsPerRow) {\n      alignments[columnIndex] = code\n    }\n  }\n\n  // Inject the alignment row.\n  columnIndex = -1\n  /** @type {Array<string>} */\n  const row = []\n  /** @type {Array<number>} */\n  const sizes = []\n\n  while (++columnIndex < mostCellsPerRow) {\n    const code = alignments[columnIndex]\n    let before = ''\n    let after = ''\n\n    if (code === 99 /* `c` */) {\n      before = ':'\n      after = ':'\n    } else if (code === 108 /* `l` */) {\n      before = ':'\n    } else if (code === 114 /* `r` */) {\n      after = ':'\n    }\n\n    // There *must* be at least one hyphen-minus in each alignment cell.\n    let size =\n      options.alignDelimiters === false\n        ? 1\n        : Math.max(\n            1,\n            longestCellByColumn[columnIndex] - before.length - after.length\n          )\n\n    const cell = before + '-'.repeat(size) + after\n\n    if (options.alignDelimiters !== false) {\n      size = before.length + size + after.length\n\n      if (size > longestCellByColumn[columnIndex]) {\n        longestCellByColumn[columnIndex] = size\n      }\n\n      sizes[columnIndex] = size\n    }\n\n    row[columnIndex] = cell\n  }\n\n  // Inject the alignment row.\n  cellMatrix.splice(1, 0, row)\n  sizeMatrix.splice(1, 0, sizes)\n\n  rowIndex = -1\n  /** @type {Array<string>} */\n  const lines = []\n\n  while (++rowIndex < cellMatrix.length) {\n    const row = cellMatrix[rowIndex]\n    const sizes = sizeMatrix[rowIndex]\n    columnIndex = -1\n    /** @type {Array<string>} */\n    const line = []\n\n    while (++columnIndex < mostCellsPerRow) {\n      const cell = row[columnIndex] || ''\n      let before = ''\n      let after = ''\n\n      if (options.alignDelimiters !== false) {\n        const size =\n          longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n        const code = alignments[columnIndex]\n\n        if (code === 114 /* `r` */) {\n          before = ' '.repeat(size)\n        } else if (code === 99 /* `c` */) {\n          if (size % 2) {\n            before = ' '.repeat(size / 2 + 0.5)\n            after = ' '.repeat(size / 2 - 0.5)\n          } else {\n            before = ' '.repeat(size / 2)\n            after = before\n          }\n        } else {\n          after = ' '.repeat(size)\n        }\n      }\n\n      if (options.delimiterStart !== false && !columnIndex) {\n        line.push('|')\n      }\n\n      if (\n        options.padding !== false &&\n        // Don’t add the opening space if we’re not aligning and the cell is\n        // empty: there will be a closing space.\n        !(options.alignDelimiters === false && cell === '') &&\n        (options.delimiterStart !== false || columnIndex)\n      ) {\n        line.push(' ')\n      }\n\n      if (options.alignDelimiters !== false) {\n        line.push(before)\n      }\n\n      line.push(cell)\n\n      if (options.alignDelimiters !== false) {\n        line.push(after)\n      }\n\n      if (options.padding !== false) {\n        line.push(' ')\n      }\n\n      if (\n        options.delimiterEnd !== false ||\n        columnIndex !== mostCellsPerRow - 1\n      ) {\n        line.push('|')\n      }\n    }\n\n    lines.push(\n      options.delimiterEnd === false\n        ? line.join('').replace(/ +$/, '')\n        : line.join('')\n    )\n  }\n\n  return lines.join('\\n')\n}\n\n/**\n * @param {string|null|undefined} [value]\n * @returns {string}\n */\nfunction serialize(value) {\n  return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string} value\n * @returns {number}\n */\nfunction defaultStringLength(value) {\n  return value.length\n}\n\n/**\n * @param {string|null|undefined} value\n * @returns {number}\n */\nfunction toAlignment(value) {\n  const code = typeof value === 'string' ? value.codePointAt(0) : 0\n\n  return code === 67 /* `C` */ || code === 99 /* `c` */\n    ? 99 /* `c` */\n    : code === 76 /* `L` */ || code === 108 /* `l` */\n    ? 108 /* `l` */\n    : code === 82 /* `R` */ || code === 114 /* `r` */\n    ? 114 /* `r` */\n    : 0\n}\n","/**\n * @typedef {import('mdast').AlignType} AlignType\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('markdown-table').MarkdownTableOptions} MarkdownTableOptions\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Context} ToMarkdownContext\n * @typedef {import('mdast-util-to-markdown').SafeOptions} SafeOptions\n *\n * @typedef Options\n * @property {boolean} [tableCellPadding=true]\n * @property {boolean} [tablePipeAlign=true]\n * @property {MarkdownTableOptions['stringLength']} [stringLength]\n */\n\nimport {containerPhrasing} from 'mdast-util-to-markdown/lib/util/container-phrasing.js'\nimport {inlineCode} from 'mdast-util-to-markdown/lib/handle/inline-code.js'\nimport {markdownTable} from 'markdown-table'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmTableFromMarkdown = {\n  enter: {\n    table: enterTable,\n    tableData: enterCell,\n    tableHeader: enterCell,\n    tableRow: enterRow\n  },\n  exit: {\n    codeText: exitCodeText,\n    table: exitTable,\n    tableData: exit,\n    tableHeader: exit,\n    tableRow: exit\n  }\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterTable(token) {\n  /** @type {Array<'left'|'right'|'center'|'none'>} */\n  // @ts-expect-error: `align` is custom.\n  const align = token._align\n  this.enter(\n    {\n      type: 'table',\n      align: align.map((d) => (d === 'none' ? null : d)),\n      children: []\n    },\n    token\n  )\n  this.setData('inTable', true)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitTable(token) {\n  this.exit(token)\n  this.setData('inTable')\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterRow(token) {\n  this.enter({type: 'tableRow', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exit(token) {\n  this.exit(token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterCell(token) {\n  this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/** @type {FromMarkdownHandle} */\nfunction exitCodeText(token) {\n  let value = this.resume()\n\n  if (this.getData('inTable')) {\n    value = value.replace(/\\\\([\\\\|])/g, replace)\n  }\n\n  const node = /** @type {InlineCode} */ (this.stack[this.stack.length - 1])\n  node.value = value\n  this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n  // Pipes work, backslashes don’t (but can’t escape pipes).\n  return $1 === '|' ? $1 : $0\n}\n\n/**\n * @param {Options} [options]\n * @returns {ToMarkdownExtension}\n */\nexport function gfmTableToMarkdown(options) {\n  const settings = options || {}\n  const padding = settings.tableCellPadding\n  const alignDelimiters = settings.tablePipeAlign\n  const stringLength = settings.stringLength\n  const around = padding ? ' ' : '|'\n\n  return {\n    unsafe: [\n      {character: '\\r', inConstruct: 'tableCell'},\n      {character: '\\n', inConstruct: 'tableCell'},\n      // A pipe, when followed by a tab or space (padding), or a dash or colon\n      // (unpadded delimiter row), could result in a table.\n      {atBreak: true, character: '|', after: '[\\t :-]'},\n      // A pipe in a cell must be encoded.\n      {character: '|', inConstruct: 'tableCell'},\n      // A colon must be followed by a dash, in which case it could start a\n      // delimiter row.\n      {atBreak: true, character: ':', after: '-'},\n      // A delimiter row can also start with a dash, when followed by more\n      // dashes, a colon, or a pipe.\n      // This is a stricter version than the built in check for lists, thematic\n      // breaks, and setex heading underlines though:\n      // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/51a2038/lib/unsafe.js#L57>\n      {atBreak: true, character: '-', after: '[:|-]'}\n    ],\n    handlers: {\n      table: handleTable,\n      tableRow: handleTableRow,\n      tableCell: handleTableCell,\n      inlineCode: inlineCodeWithTable\n    }\n  }\n\n  /**\n   * @type {ToMarkdownHandle}\n   * @param {Table} node\n   */\n  function handleTable(node, _, context, safeOptions) {\n    return serializeData(\n      handleTableAsData(node, context, safeOptions),\n      // @ts-expect-error: fixed in `markdown-table@3.0.1`.\n      node.align\n    )\n  }\n\n  /**\n   * This function isn’t really used normally, because we handle rows at the\n   * table level.\n   * But, if someone passes in a table row, this ensures we make somewhat sense.\n   *\n   * @type {ToMarkdownHandle}\n   * @param {TableRow} node\n   */\n  function handleTableRow(node, _, context, safeOptions) {\n    const row = handleTableRowAsData(node, context, safeOptions)\n    // `markdown-table` will always add an align row\n    const value = serializeData([row])\n    return value.slice(0, value.indexOf('\\n'))\n  }\n\n  /**\n   * @type {ToMarkdownHandle}\n   * @param {TableCell} node\n   */\n  function handleTableCell(node, _, context, safeOptions) {\n    const exit = context.enter('tableCell')\n    const subexit = context.enter('phrasing')\n    const value = containerPhrasing(node, context, {\n      ...safeOptions,\n      before: around,\n      after: around\n    })\n    subexit()\n    exit()\n    return value\n  }\n\n  /**\n   * @param {Array<Array<string>>} matrix\n   * @param {Array<string>} [align]\n   */\n  function serializeData(matrix, align) {\n    return markdownTable(matrix, {\n      align,\n      alignDelimiters,\n      padding,\n      stringLength\n    })\n  }\n\n  /**\n   * @param {Table} node\n   * @param {ToMarkdownContext} context\n   * @param {SafeOptions} safeOptions\n   */\n  function handleTableAsData(node, context, safeOptions) {\n    const children = node.children\n    let index = -1\n    /** @type {Array<Array<string>>} */\n    const result = []\n    const subexit = context.enter('table')\n\n    while (++index < children.length) {\n      result[index] = handleTableRowAsData(\n        children[index],\n        context,\n        safeOptions\n      )\n    }\n\n    subexit()\n\n    return result\n  }\n\n  /**\n   * @param {TableRow} node\n   * @param {ToMarkdownContext} context\n   * @param {SafeOptions} safeOptions\n   */\n  function handleTableRowAsData(node, context, safeOptions) {\n    const children = node.children\n    let index = -1\n    /** @type {Array<string>} */\n    const result = []\n    const subexit = context.enter('tableRow')\n\n    while (++index < children.length) {\n      // Note: the positional info as used here is incorrect.\n      // Making it correct would be impossible due to aligning cells?\n      // And it would need copy/pasting `markdown-table` into this project.\n      result[index] = handleTableCell(\n        children[index],\n        node,\n        context,\n        safeOptions\n      )\n    }\n\n    subexit()\n\n    return result\n  }\n\n  /**\n   * @type {ToMarkdownHandle}\n   * @param {InlineCode} node\n   */\n  function inlineCodeWithTable(node, parent, context) {\n    let value = inlineCode(node, parent, context)\n\n    if (context.stack.includes('tableCell')) {\n      value = value.replace(/\\|/g, '\\\\$&')\n    }\n\n    return value\n  }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').List} List\n * @typedef {import('../util/indent-lines.js').Map} Map\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').Handle} Handle\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\nimport {containerFlow} from '../util/container-flow.js'\nimport {indentLines} from '../util/indent-lines.js'\nimport {track} from '../util/track.js'\n\n/**\n * @type {Handle}\n * @param {ListItem} node\n */\nexport function listItem(node, parent, context, safeOptions) {\n  const listItemIndent = checkListItemIndent(context)\n  let bullet = context.bulletCurrent || checkBullet(context)\n\n  // Add the marker value for ordered lists.\n  if (parent && parent.type === 'list' && parent.ordered) {\n    bullet =\n      (typeof parent.start === 'number' && parent.start > -1\n        ? parent.start\n        : 1) +\n      (context.options.incrementListMarker === false\n        ? 0\n        : parent.children.indexOf(node)) +\n      bullet\n  }\n\n  let size = bullet.length + 1\n\n  if (\n    listItemIndent === 'tab' ||\n    (listItemIndent === 'mixed' &&\n      ((parent && parent.type === 'list' && parent.spread) || node.spread))\n  ) {\n    size = Math.ceil(size / 4) * 4\n  }\n\n  const tracker = track(safeOptions)\n  tracker.move(bullet + ' '.repeat(size - bullet.length))\n  tracker.shift(size)\n  const exit = context.enter('listItem')\n  const value = indentLines(\n    containerFlow(node, context, tracker.current()),\n    map\n  )\n  exit()\n\n  return value\n\n  /** @type {Map} */\n  function map(line, index, blank) {\n    if (index) {\n      return (blank ? '' : ' '.repeat(size)) + line\n    }\n\n    return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n  }\n}\n","/**\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {Context} context\n * @returns {Exclude<Options['listItemIndent'], undefined>}\n */\nexport function checkListItemIndent(context) {\n  const style = context.options.listItemIndent || 'tab'\n\n  // To do: remove in a major.\n  // @ts-expect-error: deprecated.\n  if (style === 1 || style === '1') {\n    return 'one'\n  }\n\n  if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n    throw new Error(\n      'Cannot serialize items with `' +\n        style +\n        '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n    )\n  }\n\n  return style\n}\n","/**\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {Context} context\n * @returns {Exclude<Options['bullet'], undefined>}\n */\nexport function checkBullet(context) {\n  const marker = context.options.bullet || '*'\n\n  if (marker !== '*' && marker !== '+' && marker !== '-') {\n    throw new Error(\n      'Cannot serialize items with `' +\n        marker +\n        '` for `options.bullet`, expected `*`, `+`, or `-`'\n    )\n  }\n\n  return marker\n}\n","/**\n * @typedef {Extract<import('mdast').Root|import('mdast').Content, import('unist').Parent>} Parent\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').BlockContent} BlockContent\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {listItem} from 'mdast-util-to-markdown/lib/handle/list-item.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmTaskListItemFromMarkdown = {\n  exit: {\n    taskListCheckValueChecked: exitCheck,\n    taskListCheckValueUnchecked: exitCheck,\n    paragraph: exitParagraphWithTaskListItem\n  }\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmTaskListItemToMarkdown = {\n  unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n  handlers: {listItem: listItemWithTaskListItem}\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitCheck(token) {\n  const node = /** @type {ListItem} */ (this.stack[this.stack.length - 2])\n  // We’re always in a paragraph, in a list item.\n  node.checked = token.type === 'taskListCheckValueChecked'\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitParagraphWithTaskListItem(token) {\n  const parent = /** @type {Parent} */ (this.stack[this.stack.length - 2])\n  const node = /** @type {Paragraph} */ (this.stack[this.stack.length - 1])\n  const siblings = parent.children\n  const head = node.children[0]\n  let index = -1\n  /** @type {Paragraph|undefined} */\n  let firstParaghraph\n\n  if (\n    parent &&\n    parent.type === 'listItem' &&\n    typeof parent.checked === 'boolean' &&\n    head &&\n    head.type === 'text'\n  ) {\n    while (++index < siblings.length) {\n      const sibling = siblings[index]\n      if (sibling.type === 'paragraph') {\n        firstParaghraph = sibling\n        break\n      }\n    }\n\n    if (firstParaghraph === node) {\n      // Must start with a space or a tab.\n      head.value = head.value.slice(1)\n\n      if (head.value.length === 0) {\n        node.children.shift()\n      } else if (\n        node.position &&\n        head.position &&\n        typeof head.position.start.offset === 'number'\n      ) {\n        head.position.start.column++\n        head.position.start.offset++\n        node.position.start = Object.assign({}, head.position.start)\n      }\n    }\n  }\n\n  this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, context, safeOptions) {\n  const head = node.children[0]\n  const checkable =\n    typeof node.checked === 'boolean' && head && head.type === 'paragraph'\n  const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '\n  const tracker = track(safeOptions)\n\n  if (checkable) {\n    tracker.move(checkbox)\n  }\n\n  let value = listItem(node, parent, context, {\n    ...safeOptions,\n    ...tracker.current()\n  })\n\n  if (checkable) {\n    value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n  }\n\n  return value\n\n  /**\n   * @param {string} $0\n   * @returns {string}\n   */\n  function check($0) {\n    return $0 + checkbox\n  }\n}\n","/**\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n *\n * @typedef {import('mdast-util-gfm-table').Options} Options\n */\n\nimport {\n  gfmAutolinkLiteralFromMarkdown,\n  gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n  gfmFootnoteFromMarkdown,\n  gfmFootnoteToMarkdown\n} from 'mdast-util-gfm-footnote'\nimport {\n  gfmStrikethroughFromMarkdown,\n  gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n  gfmTaskListItemFromMarkdown,\n  gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * @returns {Array<FromMarkdownExtension>}\n */\nexport function gfmFromMarkdown() {\n  return [\n    gfmAutolinkLiteralFromMarkdown,\n    gfmFootnoteFromMarkdown(),\n    gfmStrikethroughFromMarkdown,\n    gfmTableFromMarkdown,\n    gfmTaskListItemFromMarkdown\n  ]\n}\n\n/**\n * @param {Options} [options]\n * @returns {ToMarkdownExtension}\n */\nexport function gfmToMarkdown(options) {\n  return {\n    extensions: [\n      gfmAutolinkLiteralToMarkdown,\n      gfmFootnoteToMarkdown(),\n      gfmStrikethroughToMarkdown,\n      gfmTableToMarkdown(options),\n      gfmTaskListItemToMarkdown\n    ]\n  }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('micromark-extension-gfm').Options & import('mdast-util-gfm').Options} Options\n */\n\nimport {gfm} from 'micromark-extension-gfm'\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\n\n/**\n * Plugin to support GFM (autolink literals, footnotes, strikethrough, tables, tasklists).\n *\n * @type {import('unified').Plugin<[Options?]|void[], Root>}\n */\nexport default function remarkGfm(options = {}) {\n  const data = this.data()\n\n  add('micromarkExtensions', gfm(options))\n  add('fromMarkdownExtensions', gfmFromMarkdown())\n  add('toMarkdownExtensions', gfmToMarkdown(options))\n\n  /**\n   * @param {string} field\n   * @param {unknown} value\n   */\n  function add(field, value) {\n    const list = /** @type {unknown[]} */ (\n      // Other extensions\n      /* c8 ignore next 2 */\n      data[field] ? data[field] : (data[field] = [])\n    )\n\n    list.push(value)\n  }\n}\n","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n */\n\nvar search = /[#.]/g\n\n/**\n * Create a hast element from a simple CSS selector.\n *\n * @param selector A simple CSS selector.\n *   Can contain a tag-name (`foo`), classes (`.bar`), and an ID (`#baz`).\n *   Multiple classes are allowed.\n *   Uses the last ID if multiple IDs are found.\n * @param [defaultTagName='div'] Tag name to use if `selector` does not specify one.\n */\nexport const parseSelector =\n  /**\n   * @type {(\n   *  <Selector extends string, DefaultTagName extends string = 'div'>(selector?: Selector, defaultTagName?: DefaultTagName) => Element & {tagName: import('./extract.js').ExtractTagName<Selector, DefaultTagName>}\n   * )}\n   */\n  (\n    /**\n     * @param {string} [selector]\n     * @param {string} [defaultTagName='div']\n     * @returns {Element}\n     */\n    function (selector, defaultTagName = 'div') {\n      var value = selector || ''\n      /** @type {Properties} */\n      var props = {}\n      var start = 0\n      /** @type {string} */\n      var subvalue\n      /** @type {string} */\n      var previous\n      /** @type {RegExpMatchArray} */\n      var match\n\n      while (start < value.length) {\n        search.lastIndex = start\n        match = search.exec(value)\n        subvalue = value.slice(start, match ? match.index : value.length)\n\n        if (subvalue) {\n          if (!previous) {\n            defaultTagName = subvalue\n          } else if (previous === '#') {\n            props.id = subvalue\n          } else if (Array.isArray(props.className)) {\n            props.className.push(subvalue)\n          } else {\n            props.className = [subvalue]\n          }\n\n          start += subvalue.length\n        }\n\n        if (match) {\n          previous = match[0]\n          start++\n        }\n      }\n\n      return {\n        type: 'element',\n        tagName: defaultTagName,\n        properties: props,\n        children: []\n      }\n    }\n  )\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {Root['children'][number]} Child\n * @typedef {Child|Root} Node\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n *\n * @typedef {Root|Element} HResult\n * @typedef {string|number} HStyleValue\n * @typedef {Record<string, HStyleValue>} HStyle\n * @typedef {string|number|boolean|null|undefined} HPrimitiveValue\n * @typedef {Array<string|number>} HArrayValue\n * @typedef {HPrimitiveValue|HArrayValue} HPropertyValue\n * @typedef {{[property: string]: HPropertyValue|HStyle}} HProperties\n *   Acceptable properties value.\n *\n * @typedef {string|number|null|undefined} HPrimitiveChild\n * @typedef {Array<Node|HPrimitiveChild>} HArrayChild\n * @typedef {Node|HPrimitiveChild|HArrayChild} HChild\n *   Acceptable child value\n */\n\nimport {find, normalize} from 'property-information'\nimport {parseSelector} from 'hast-util-parse-selector'\nimport {parse as spaces} from 'space-separated-tokens'\nimport {parse as commas} from 'comma-separated-tokens'\n\nconst buttonTypes = new Set(['menu', 'submit', 'reset', 'button'])\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Schema} schema\n * @param {string} defaultTagName\n * @param {Array<string>} [caseSensitive]\n */\nexport function core(schema, defaultTagName, caseSensitive) {\n  const adjust = caseSensitive && createAdjustMap(caseSensitive)\n\n  const h =\n    /**\n     * @type {{\n     *   (): Root\n     *   (selector: null|undefined, ...children: Array<HChild>): Root\n     *   (selector: string, properties?: HProperties, ...children: Array<HChild>): Element\n     *   (selector: string, ...children: Array<HChild>): Element\n     * }}\n     */\n    (\n      /**\n       * Hyperscript compatible DSL for creating virtual hast trees.\n       *\n       * @param {string|null} [selector]\n       * @param {HProperties|HChild} [properties]\n       * @param {Array<HChild>} children\n       * @returns {HResult}\n       */\n      function (selector, properties, ...children) {\n        let index = -1\n        /** @type {HResult} */\n        let node\n\n        if (selector === undefined || selector === null) {\n          node = {type: 'root', children: []}\n          // @ts-expect-error Properties are not supported for roots.\n          children.unshift(properties)\n        } else {\n          node = parseSelector(selector, defaultTagName)\n          // Normalize the name.\n          node.tagName = node.tagName.toLowerCase()\n          if (adjust && own.call(adjust, node.tagName)) {\n            node.tagName = adjust[node.tagName]\n          }\n\n          // Handle props.\n          if (isProperties(properties, node.tagName)) {\n            /** @type {string} */\n            let key\n\n            for (key in properties) {\n              if (own.call(properties, key)) {\n                // @ts-expect-error `node.properties` is set.\n                addProperty(schema, node.properties, key, properties[key])\n              }\n            }\n          } else {\n            children.unshift(properties)\n          }\n        }\n\n        // Handle children.\n        while (++index < children.length) {\n          addChild(node.children, children[index])\n        }\n\n        if (node.type === 'element' && node.tagName === 'template') {\n          node.content = {type: 'root', children: node.children}\n          node.children = []\n        }\n\n        return node\n      }\n    )\n\n  return h\n}\n\n/**\n * @param {HProperties|HChild} value\n * @param {string} name\n * @returns {value is HProperties}\n */\nfunction isProperties(value, name) {\n  if (\n    value === null ||\n    value === undefined ||\n    typeof value !== 'object' ||\n    Array.isArray(value)\n  ) {\n    return false\n  }\n\n  if (name === 'input' || !value.type || typeof value.type !== 'string') {\n    return true\n  }\n\n  if ('children' in value && Array.isArray(value.children)) {\n    return false\n  }\n\n  if (name === 'button') {\n    return buttonTypes.has(value.type.toLowerCase())\n  }\n\n  return !('value' in value)\n}\n\n/**\n * @param {Schema} schema\n * @param {Properties} properties\n * @param {string} key\n * @param {HStyle|HPropertyValue} value\n * @returns {void}\n */\nfunction addProperty(schema, properties, key, value) {\n  const info = find(schema, key)\n  let index = -1\n  /** @type {HPropertyValue} */\n  let result\n\n  // Ignore nullish and NaN values.\n  if (value === undefined || value === null) return\n\n  if (typeof value === 'number') {\n    // Ignore NaN.\n    if (Number.isNaN(value)) return\n\n    result = value\n  }\n  // Booleans.\n  else if (typeof value === 'boolean') {\n    result = value\n  }\n  // Handle list values.\n  else if (typeof value === 'string') {\n    if (info.spaceSeparated) {\n      result = spaces(value)\n    } else if (info.commaSeparated) {\n      result = commas(value)\n    } else if (info.commaOrSpaceSeparated) {\n      result = spaces(commas(value).join(' '))\n    } else {\n      result = parsePrimitive(info, info.property, value)\n    }\n  } else if (Array.isArray(value)) {\n    result = value.concat()\n  } else {\n    result = info.property === 'style' ? style(value) : String(value)\n  }\n\n  if (Array.isArray(result)) {\n    /** @type {Array<string|number>} */\n    const finalResult = []\n\n    while (++index < result.length) {\n      // @ts-expect-error Assume no booleans in array.\n      finalResult[index] = parsePrimitive(info, info.property, result[index])\n    }\n\n    result = finalResult\n  }\n\n  // Class names (which can be added both on the `selector` and here).\n  if (info.property === 'className' && Array.isArray(properties.className)) {\n    // @ts-expect-error Assume no booleans in `className`.\n    result = properties.className.concat(result)\n  }\n\n  properties[info.property] = result\n}\n\n/**\n * @param {Array<Child>} nodes\n * @param {HChild} value\n * @returns {void}\n */\nfunction addChild(nodes, value) {\n  let index = -1\n\n  if (value === undefined || value === null) {\n    // Empty.\n  } else if (typeof value === 'string' || typeof value === 'number') {\n    nodes.push({type: 'text', value: String(value)})\n  } else if (Array.isArray(value)) {\n    while (++index < value.length) {\n      addChild(nodes, value[index])\n    }\n  } else if (typeof value === 'object' && 'type' in value) {\n    if (value.type === 'root') {\n      addChild(nodes, value.children)\n    } else {\n      nodes.push(value)\n    }\n  } else {\n    throw new Error('Expected node, nodes, or string, got `' + value + '`')\n  }\n}\n\n/**\n * Parse a single primitives.\n *\n * @param {Info} info\n * @param {string} name\n * @param {HPrimitiveValue} value\n * @returns {HPrimitiveValue}\n */\nfunction parsePrimitive(info, name, value) {\n  if (typeof value === 'string') {\n    if (info.number && value && !Number.isNaN(Number(value))) {\n      return Number(value)\n    }\n\n    if (\n      (info.boolean || info.overloadedBoolean) &&\n      (value === '' || normalize(value) === normalize(name))\n    ) {\n      return true\n    }\n  }\n\n  return value\n}\n\n/**\n * @param {HStyle} value\n * @returns {string}\n */\nfunction style(value) {\n  /** @type {Array<string>} */\n  const result = []\n  /** @type {string} */\n  let key\n\n  for (key in value) {\n    if (own.call(value, key)) {\n      result.push([key, value[key]].join(': '))\n    }\n  }\n\n  return result.join('; ')\n}\n\n/**\n * @param {Array<string>} values\n * @returns {Record<string, string>}\n */\nfunction createAdjustMap(values) {\n  /** @type {Record<string, string>} */\n  const result = {}\n  let index = -1\n\n  while (++index < values.length) {\n    result[values[index].toLowerCase()] = values[index]\n  }\n\n  return result\n}\n","export const svgCaseSensitiveTagNames = [\n  'altGlyph',\n  'altGlyphDef',\n  'altGlyphItem',\n  'animateColor',\n  'animateMotion',\n  'animateTransform',\n  'clipPath',\n  'feBlend',\n  'feColorMatrix',\n  'feComponentTransfer',\n  'feComposite',\n  'feConvolveMatrix',\n  'feDiffuseLighting',\n  'feDisplacementMap',\n  'feDistantLight',\n  'feDropShadow',\n  'feFlood',\n  'feFuncA',\n  'feFuncB',\n  'feFuncG',\n  'feFuncR',\n  'feGaussianBlur',\n  'feImage',\n  'feMerge',\n  'feMergeNode',\n  'feMorphology',\n  'feOffset',\n  'fePointLight',\n  'feSpecularLighting',\n  'feSpotLight',\n  'feTile',\n  'feTurbulence',\n  'foreignObject',\n  'glyphRef',\n  'linearGradient',\n  'radialGradient',\n  'solidColor',\n  'textArea',\n  'textPath'\n]\n","/**\n * @typedef {import('./core.js').HChild} Child\n * @typedef {import('./core.js').HProperties} Properties\n *\n * @typedef {import('./jsx-classic').Element} s.JSX.Element\n * @typedef {import('./jsx-classic').IntrinsicAttributes} s.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic').IntrinsicElements} s.JSX.IntrinsicElements\n * @typedef {import('./jsx-classic').ElementChildrenAttribute} s.JSX.ElementChildrenAttribute\n */\n\nimport {svg} from 'property-information'\nimport {core} from './core.js'\nimport {svgCaseSensitiveTagNames} from './svg-case-sensitive-tag-names.js'\n\nexport const s = core(svg, 'g', svgCaseSensitiveTagNames)\n","/**\n * @typedef {import('./core.js').HChild} Child Acceptable child value\n * @typedef {import('./core.js').HProperties} Properties Acceptable properties value.\n *\n * @typedef {import('./jsx-classic').Element} h.JSX.Element\n * @typedef {import('./jsx-classic').IntrinsicAttributes} h.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic').IntrinsicElements} h.JSX.IntrinsicElements\n * @typedef {import('./jsx-classic').ElementChildrenAttribute} h.JSX.ElementChildrenAttribute\n */\n\nimport {html} from 'property-information'\nimport {core} from './core.js'\n\nexport const h = core(html, 'div')\n","/**\n * Map of web namespaces.\n *\n * @type {Record<string, string>}\n */\nexport const webNamespaces = {\n  html: 'http://www.w3.org/1999/xhtml',\n  mathml: 'http://www.w3.org/1998/Math/MathML',\n  svg: 'http://www.w3.org/2000/svg',\n  xlink: 'http://www.w3.org/1999/xlink',\n  xml: 'http://www.w3.org/XML/1998/namespace',\n  xmlns: 'http://www.w3.org/2000/xmlns/'\n}\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('hast').Parent} Parent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {Parent['children'][number]} Child\n * @typedef {Element['children'][number]} ElementChild\n * @typedef {Child|Root} Node\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentType} P5Doctype\n * @typedef {import('parse5').CommentNode} P5Comment\n * @typedef {import('parse5').TextNode} P5Text\n * @typedef {import('parse5').Element} P5Element\n * @typedef {import('parse5').ElementLocation} P5ElementLocation\n * @typedef {import('parse5').Location} P5Location\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {import('parse5').Node} P5Node\n *\n * @typedef {'html'|'svg'} Space\n *\n * @callback Handler\n * @param {Context} ctx\n * @param {P5Node} node\n * @param {Array.<Child>} [children]\n * @returns {Node}\n *\n * @typedef Options\n * @property {Space} [space='html'] Whether the root of the tree is in the `'html'` or `'svg'` space. If an element in with the SVG namespace is found in `ast`, `fromParse5` automatically switches to the SVG space when entering the element, and switches back when leaving\n * @property {VFile} [file] `VFile`, used to add positional information to nodes. If given, the file should have the original HTML source as its contents\n * @property {boolean} [verbose=false] Whether to add extra positional information about starting tags, closing tags, and attributes to elements. Note: not used without `file`\n *\n * @typedef Context\n * @property {Schema} schema\n * @property {VFile|undefined} file\n * @property {boolean|undefined} verbose\n * @property {boolean} location\n */\n\nimport {h, s} from 'hastscript'\nimport {html, svg, find} from 'property-information'\nimport {location} from 'vfile-location'\nimport {webNamespaces} from 'web-namespaces'\n\nconst own = {}.hasOwnProperty\n\n// Handlers.\nconst map = {\n  '#document': root,\n  '#document-fragment': root,\n  '#text': text,\n  '#comment': comment,\n  '#documentType': doctype\n}\n\n/**\n * Transform Parse5’s AST to a hast tree.\n *\n * @param {P5Node} ast\n * @param {Options|VFile} [options]\n */\nexport function fromParse5(ast, options = {}) {\n  /** @type {Options} */\n  let settings\n  /** @type {VFile|undefined} */\n  let file\n\n  if (isFile(options)) {\n    file = options\n    settings = {}\n  } else {\n    file = options.file\n    settings = options\n  }\n\n  return transform(\n    {\n      schema: settings.space === 'svg' ? svg : html,\n      file,\n      verbose: settings.verbose,\n      location: false\n    },\n    ast\n  )\n}\n\n/**\n * Transform children.\n *\n * @param {Context} ctx\n * @param {P5Node} ast\n * @returns {Node}\n */\nfunction transform(ctx, ast) {\n  const schema = ctx.schema\n  /** @type {Handler} */\n  // @ts-expect-error: index is fine.\n  const fn = own.call(map, ast.nodeName) ? map[ast.nodeName] : element\n  /** @type {Array.<Child>|undefined} */\n  let children\n\n  // Element.\n  if ('tagName' in ast) {\n    ctx.schema = ast.namespaceURI === webNamespaces.svg ? svg : html\n  }\n\n  if ('childNodes' in ast) {\n    children = nodes(ctx, ast.childNodes)\n  }\n\n  const result = fn(ctx, ast, children)\n\n  if ('sourceCodeLocation' in ast && ast.sourceCodeLocation && ctx.file) {\n    // @ts-expect-error It’s fine.\n    const position = createLocation(ctx, result, ast.sourceCodeLocation)\n\n    if (position) {\n      ctx.location = true\n      result.position = position\n    }\n  }\n\n  ctx.schema = schema\n\n  return result\n}\n\n/**\n * Transform children.\n *\n * @param {Context} ctx\n * @param {Array.<P5Node>} children\n * @returns {Array.<Child>}\n */\nfunction nodes(ctx, children) {\n  let index = -1\n  /** @type {Array.<Child>} */\n  const result = []\n\n  while (++index < children.length) {\n    // @ts-expect-error Assume no roots in children.\n    result[index] = transform(ctx, children[index])\n  }\n\n  return result\n}\n\n/**\n * Transform a document.\n * Stores `ast.quirksMode` in `node.data.quirksMode`.\n *\n * @type {Handler}\n * @param {P5Document} ast\n * @param {Array.<Child>} children\n * @returns {Root}\n */\nfunction root(ctx, ast, children) {\n  /** @type {Root} */\n  const result = {\n    type: 'root',\n    children,\n    data: {quirksMode: ast.mode === 'quirks' || ast.mode === 'limited-quirks'}\n  }\n\n  if (ctx.file && ctx.location) {\n    const doc = String(ctx.file)\n    const loc = location(doc)\n    result.position = {\n      start: loc.toPoint(0),\n      end: loc.toPoint(doc.length)\n    }\n  }\n\n  return result\n}\n\n/**\n * Transform a doctype.\n *\n * @type {Handler}\n * @returns {Doctype}\n */\nfunction doctype() {\n  // @ts-expect-error Types are out of date.\n  return {type: 'doctype'}\n}\n\n/**\n * Transform a text.\n *\n * @type {Handler}\n * @param {P5Text} ast\n * @returns {Text}\n */\nfunction text(_, ast) {\n  return {type: 'text', value: ast.value}\n}\n\n/**\n * Transform a comment.\n *\n * @type {Handler}\n * @param {P5Comment} ast\n * @returns {Comment}\n */\nfunction comment(_, ast) {\n  return {type: 'comment', value: ast.data}\n}\n\n/**\n * Transform an element.\n *\n * @type {Handler}\n * @param {P5Element} ast\n * @param {Array.<ElementChild>} children\n * @returns {Element}\n */\nfunction element(ctx, ast, children) {\n  const fn = ctx.schema.space === 'svg' ? s : h\n  let index = -1\n  /** @type {Object.<string, string>} */\n  const props = {}\n\n  while (++index < ast.attrs.length) {\n    const attribute = ast.attrs[index]\n    props[(attribute.prefix ? attribute.prefix + ':' : '') + attribute.name] =\n      attribute.value\n  }\n\n  const result = fn(ast.tagName, props, children)\n\n  if (result.tagName === 'template' && 'content' in ast) {\n    const pos = ast.sourceCodeLocation\n    const startTag = pos && pos.startTag && position(pos.startTag)\n    const endTag = pos && pos.endTag && position(pos.endTag)\n\n    /** @type {Root} */\n    // @ts-expect-error Types are wrong.\n    const content = transform(ctx, ast.content)\n\n    if (startTag && endTag && ctx.file) {\n      content.position = {start: startTag.end, end: endTag.start}\n    }\n\n    result.content = content\n  }\n\n  return result\n}\n\n/**\n * Create clean positional information.\n *\n * @param {Context} ctx\n * @param {Node} node\n * @param {P5ElementLocation} location\n * @returns {Position|null}\n */\nfunction createLocation(ctx, node, location) {\n  const result = position(location)\n\n  if (node.type === 'element') {\n    const tail = node.children[node.children.length - 1]\n\n    // Bug for unclosed with children.\n    // See: <https://github.com/inikulin/parse5/issues/109>.\n    if (\n      result &&\n      !location.endTag &&\n      tail &&\n      tail.position &&\n      tail.position.end\n    ) {\n      result.end = Object.assign({}, tail.position.end)\n    }\n\n    if (ctx.verbose) {\n      /** @type {Object.<string, Position|null>} */\n      const props = {}\n      /** @type {string} */\n      let key\n\n      for (key in location.attrs) {\n        if (own.call(location.attrs, key)) {\n          props[find(ctx.schema, key).property] = position(location.attrs[key])\n        }\n      }\n\n      node.data = {\n        position: {\n          opening: position(location.startTag),\n          closing: location.endTag ? position(location.endTag) : null,\n          properties: props\n        }\n      }\n    }\n  }\n\n  return result\n}\n\n/**\n * @param {P5Location} loc\n * @returns {Position|null}\n */\nfunction position(loc) {\n  const start = point({\n    line: loc.startLine,\n    column: loc.startCol,\n    offset: loc.startOffset\n  })\n  const end = point({\n    line: loc.endLine,\n    column: loc.endCol,\n    offset: loc.endOffset\n  })\n  // @ts-expect-error `null` is fine.\n  return start || end ? {start, end} : null\n}\n\n/**\n * @param {Point} point\n * @returns {Point|null}\n */\nfunction point(point) {\n  return point.line && point.column ? point : null\n}\n\n/**\n * @param {VFile|Options} value\n * @returns {value is VFile}\n */\nfunction isFile(value) {\n  return 'messages' in value\n}\n","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {Pick<Point, 'line'|'column'>} PositionalPoint\n * @typedef {Required<Point>} FullPoint\n * @typedef {NonNullable<Point['offset']>} Offset\n */\n\n/**\n * Get transform functions for the given `document`.\n *\n * @param {string|Uint8Array|VFile} file\n */\nexport function location(file) {\n  var value = String(file)\n  /** @type {Array.<number>} */\n  var indices = []\n  var search = /\\r?\\n|\\r/g\n\n  while (search.test(value)) {\n    indices.push(search.lastIndex)\n  }\n\n  indices.push(value.length + 1)\n\n  return {toPoint, toOffset}\n\n  /**\n   * Get the line and column-based `point` for `offset` in the bound indices.\n   * Returns a point with `undefined` values when given invalid or out of bounds\n   * input.\n   *\n   * @param {Offset} offset\n   * @returns {FullPoint}\n   */\n  function toPoint(offset) {\n    var index = -1\n\n    if (offset > -1 && offset < indices[indices.length - 1]) {\n      while (++index < indices.length) {\n        if (indices[index] > offset) {\n          return {\n            line: index + 1,\n            column: offset - (indices[index - 1] || 0) + 1,\n            offset\n          }\n        }\n      }\n    }\n\n    return {line: undefined, column: undefined, offset: undefined}\n  }\n\n  /**\n   * Get the `offset` for a line and column-based `point` in the bound indices.\n   * Returns `-1` when given invalid or out of bounds input.\n   *\n   * @param {PositionalPoint} point\n   * @returns {Offset}\n   */\n  function toOffset(point) {\n    var line = point && point.line\n    var column = point && point.column\n    /** @type {number} */\n    var offset\n\n    if (\n      typeof line === 'number' &&\n      typeof column === 'number' &&\n      !Number.isNaN(line) &&\n      !Number.isNaN(column) &&\n      line - 1 in indices\n    ) {\n      offset = (indices[line - 2] || 0) + column - 1 || 0\n    }\n\n    return offset > -1 && offset < indices[indices.length - 1] ? offset : -1\n  }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('unist-util-is').AssertPredicate<Element>} AssertElement\n * @typedef {import('unist-util-is').AssertPredicate<Text>} AssertText\n * @typedef {import('unist-util-is').AssertPredicate<Root>} AssertRoot\n *\n * @callback CreateElementLike\n * @param {string} name\n * @param {any} attributes\n * @param {Array.<string|any>} [children]\n * @returns {any}\n *\n * @typedef Context\n * @property {html|svg} schema\n * @property {string|null} prefix\n * @property {number} key\n * @property {boolean} react\n * @property {boolean} vue\n * @property {boolean} vdom\n * @property {boolean} hyperscript\n *\n * @typedef Options\n * @property {string|null} [prefix]\n * @property {'html'|'svg'} [space]\n */\n\nimport {html, svg, find, hastToReact} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport style from 'style-to-object'\nimport {webNamespaces} from 'web-namespaces'\nimport {convert} from 'unist-util-is'\n\nconst ns = /** @type {Record<string, string>} */ (webNamespaces)\nconst toReact = /** @type {Record<string, string>} */ (hastToReact)\n\nconst own = {}.hasOwnProperty\n\n/** @type {AssertRoot} */\n// @ts-expect-error it’s correct.\nconst root = convert('root')\n/** @type {AssertElement} */\n// @ts-expect-error it’s correct.\nconst element = convert('element')\n/** @type {AssertText} */\n// @ts-expect-error it’s correct.\nconst text = convert('text')\n\n/**\n * @template {CreateElementLike} H\n * @param {H} h\n * @param {Element|Root} tree\n * @param {string|boolean|Options} [options]\n * @returns {ReturnType<H>}\n */\nexport function toH(h, tree, options) {\n  if (typeof h !== 'function') {\n    throw new TypeError('h is not a function')\n  }\n\n  const r = react(h)\n  const v = vue(h)\n  const vd = vdom(h)\n  /** @type {string|boolean|null|undefined} */\n  let prefix\n  /** @type {Element} */\n  let node\n\n  if (typeof options === 'string' || typeof options === 'boolean') {\n    prefix = options\n    options = {}\n  } else {\n    if (!options) options = {}\n    prefix = options.prefix\n  }\n\n  if (root(tree)) {\n    // @ts-expect-error Allow `doctypes` in there, we’ll filter them out later.\n    node =\n      tree.children.length === 1 && element(tree.children[0])\n        ? tree.children[0]\n        : {\n            type: 'element',\n            tagName: 'div',\n            properties: {},\n            children: tree.children\n          }\n  } else if (element(tree)) {\n    node = tree\n  } else {\n    throw new Error(\n      // @ts-expect-error runtime.\n      'Expected root or element, not `' + ((tree && tree.type) || tree) + '`'\n    )\n  }\n\n  return transform(h, node, {\n    schema: options.space === 'svg' ? svg : html,\n    prefix:\n      prefix === undefined || prefix === null\n        ? r || v || vd\n          ? 'h-'\n          : null\n        : typeof prefix === 'string'\n        ? prefix\n        : prefix\n        ? 'h-'\n        : null,\n    key: 0,\n    react: r,\n    vue: v,\n    vdom: vd,\n    hyperscript: hyperscript(h)\n  })\n}\n\n/**\n * Transform a hast node through a hyperscript interface to *anything*!\n *\n * @template {CreateElementLike} H\n * @param {H} h\n * @param {Element} node\n * @param {Context} ctx\n */\nfunction transform(h, node, ctx) {\n  const parentSchema = ctx.schema\n  let schema = parentSchema\n  let name = node.tagName\n  /** @type {Record<string, unknown>} */\n  const attributes = {}\n  /** @type {Array.<ReturnType<H>|string>} */\n  const nodes = []\n  let index = -1\n  /** @type {string} */\n  let key\n\n  if (parentSchema.space === 'html' && name.toLowerCase() === 'svg') {\n    schema = svg\n    ctx.schema = schema\n  }\n\n  for (key in node.properties) {\n    if (node.properties && own.call(node.properties, key)) {\n      addAttribute(attributes, key, node.properties[key], ctx, name)\n    }\n  }\n\n  if (ctx.vdom) {\n    if (schema.space === 'html') {\n      name = name.toUpperCase()\n    } else if (schema.space) {\n      attributes.namespace = ns[schema.space]\n    }\n  }\n\n  if (ctx.prefix) {\n    ctx.key++\n    attributes.key = ctx.prefix + ctx.key\n  }\n\n  if (node.children) {\n    while (++index < node.children.length) {\n      const value = node.children[index]\n\n      if (element(value)) {\n        nodes.push(transform(h, value, ctx))\n      } else if (text(value)) {\n        nodes.push(value.value)\n      }\n    }\n  }\n\n  // Restore parent schema.\n  ctx.schema = parentSchema\n\n  // Ensure no React warnings are triggered for void elements having children\n  // passed in.\n  return nodes.length > 0\n    ? h.call(node, name, attributes, nodes)\n    : h.call(node, name, attributes)\n}\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n * @param {string} name\n */\n// eslint-disable-next-line complexity, max-params\nfunction addAttribute(props, prop, value, ctx, name) {\n  const info = find(ctx.schema, prop)\n  /** @type {string|undefined} */\n  let subprop\n\n  // Ignore nullish and `NaN` values.\n  // Ignore `false` and falsey known booleans for hyperlike DSLs.\n  if (\n    value === undefined ||\n    value === null ||\n    (typeof value === 'number' && Number.isNaN(value)) ||\n    (value === false && (ctx.vue || ctx.vdom || ctx.hyperscript)) ||\n    (!value && info.boolean && (ctx.vue || ctx.vdom || ctx.hyperscript))\n  ) {\n    return\n  }\n\n  if (Array.isArray(value)) {\n    // Accept `array`.\n    // Most props are space-separated.\n    value = info.commaSeparated ? commas(value) : spaces(value)\n  }\n\n  // Treat `true` and truthy known booleans.\n  if (info.boolean && ctx.hyperscript) {\n    value = ''\n  }\n\n  // VDOM, Vue, and React accept `style` as object.\n  if (\n    info.property === 'style' &&\n    typeof value === 'string' &&\n    (ctx.react || ctx.vue || ctx.vdom)\n  ) {\n    value = parseStyle(value, name)\n  }\n\n  if (ctx.vue) {\n    if (info.property !== 'style') subprop = 'attrs'\n  } else if (!info.mustUseProperty) {\n    if (ctx.vdom) {\n      if (info.property !== 'style') subprop = 'attributes'\n    } else if (ctx.hyperscript) {\n      subprop = 'attrs'\n    }\n  }\n\n  if (subprop) {\n    props[subprop] = Object.assign(props[subprop] || {}, {\n      [info.attribute]: value\n    })\n  } else if (info.space && ctx.react) {\n    props[toReact[info.property] || info.property] = value\n  } else {\n    props[info.attribute] = value\n  }\n}\n\n/**\n * Check if `h` is `react.createElement`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction react(h) {\n  /** @type {unknown} */\n  const node = h('div', {})\n  return Boolean(\n    node &&\n      // @ts-expect-error Looks like a React node.\n      ('_owner' in node || '_store' in node) &&\n      // @ts-expect-error Looks like a React node.\n      (node.key === undefined || node.key === null)\n  )\n}\n\n/**\n * Check if `h` is `hyperscript`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction hyperscript(h) {\n  return 'context' in h && 'cleanup' in h\n}\n\n/**\n * Check if `h` is `virtual-dom/h`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction vdom(h) {\n  /** @type {unknown} */\n  const node = h('div', {})\n  // @ts-expect-error Looks like a vnode.\n  return node.type === 'VirtualNode'\n}\n\n/**\n * Check if `h` is Vue.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction vue(h) {\n  /** @type {unknown} */\n  const node = h('div', {})\n  // @ts-expect-error Looks like a Vue node.\n  return Boolean(node && node.context && node.context._isVue)\n}\n\n/**\n * @param {string} value\n * @param {string} tagName\n * @returns {Record<string, string>}\n */\nfunction parseStyle(value, tagName) {\n  /** @type {Record<string, string>} */\n  const result = {}\n\n  try {\n    style(value, (name, value) => {\n      if (name.slice(0, 4) === '-ms-') name = 'ms-' + name.slice(4)\n\n      result[\n        name.replace(\n          /-([a-z])/g,\n          /**\n           * @param {string} _\n           * @param {string} $1\n           * @returns {string}\n           */ (_, $1) => $1.toUpperCase()\n        )\n      ] = value\n    })\n  } catch (error) {\n    error.message =\n      tagName + '[style]' + error.message.slice('undefined'.length)\n    throw error\n  }\n\n  return result\n}\n","var own = {}.hasOwnProperty\n\n/**\n * @callback Handler\n * @param {...unknown} value\n * @return {unknown}\n *\n * @typedef {Record<string, Handler>} Handlers\n *\n * @typedef {Object} Options\n * @property {Handler} [unknown]\n * @property {Handler} [invalid]\n * @property {Handlers} [handlers]\n */\n\n/**\n * Handle values based on a property.\n *\n * @param {string} key\n * @param {Options} [options]\n */\nexport function zwitch(key, options) {\n  var settings = options || {}\n\n  /**\n   * Handle one value.\n   * Based on the bound `key`, a respective handler will be called.\n   * If `value` is not an object, or doesn’t have a `key` property, the special\n   * “invalid” handler will be called.\n   * If `value` has an unknown `key`, the special “unknown” handler will be\n   * called.\n   *\n   * All arguments, and the context object, are passed through to the handler,\n   * and it’s result is returned.\n   *\n   * @param {...unknown} [value]\n   * @this {unknown}\n   * @returns {unknown}\n   * @property {Handler} invalid\n   * @property {Handler} unknown\n   * @property {Handlers} handlers\n   */\n  function one(value) {\n    var fn = one.invalid\n    var handlers = one.handlers\n\n    if (value && own.call(value, key)) {\n      fn = own.call(handlers, value[key]) ? handlers[value[key]] : one.unknown\n    }\n\n    if (fn) {\n      return fn.apply(this, arguments)\n    }\n  }\n\n  one.handlers = settings.handlers || {}\n  one.invalid = settings.invalid\n  one.unknown = settings.unknown\n\n  return one\n}\n","/**\n * @typedef {import('parse5').Node} P5Node\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentFragment} P5Fragment\n * @typedef {import('parse5').DocumentType} P5Doctype\n * @typedef {import('parse5').CommentNode} P5Comment\n * @typedef {import('parse5').TextNode} P5Text\n * @typedef {import('parse5').Element} P5Element\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {import('parse5').ParentNode} P5Parent\n * @typedef {Exclude<P5Node, P5Document|P5Fragment>} P5Child\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('property-information').Info} Info\n * @typedef {'html'|'svg'} Space\n * @typedef {import('hast').Parent} Parent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {Parent['children'][number]} Child\n * @typedef {Child|Root} Node\n *\n * @callback Handle\n * @param {Node} node\n * @param {Schema} schema\n * @returns {P5Node}\n */\n\nimport {html, svg, find} from 'property-information'\nimport {toH} from 'hast-to-hyperscript'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nvar own = {}.hasOwnProperty\n\nvar one = zwitch('type', {handlers: {root, element, text, comment, doctype}})\n\n/**\n * Transform a tree from hast to Parse5’s AST.\n *\n * @param {Node} tree\n * @param {Space} [space='html']\n * @returns {P5Node}\n */\nexport function toParse5(tree, space) {\n  // @ts-ignore Types are wrong.\n  return one(tree, space === 'svg' ? svg : html)\n}\n\n/**\n * @type {Handle}\n * @param {Root} node\n * @returns {P5Document}\n */\nfunction root(node, schema) {\n  /** @type {P5Document} */\n  var p5 = {\n    nodeName: '#document',\n    mode: (node.data || {}).quirksMode ? 'quirks' : 'no-quirks',\n    childNodes: []\n  }\n  // @ts-ignore Assume correct children.\n  p5.childNodes = all(node.children, p5, schema)\n  return patch(node, p5)\n}\n\n/**\n * @type {Handle}\n * @param {Root} node\n * @returns {P5Fragment}\n */\nfunction fragment(node, schema) {\n  /** @type {P5Fragment} */\n  var p5 = {nodeName: '#document-fragment', childNodes: []}\n  // @ts-ignore Assume correct children.\n  p5.childNodes = all(node.children, p5, schema)\n  return patch(node, p5)\n}\n\n/**\n * @type {Handle}\n * @param {Doctype} node\n * @returns {P5Doctype}\n */\nfunction doctype(node) {\n  return patch(node, {\n    nodeName: '#documentType',\n    name: 'html',\n    publicId: '',\n    systemId: '',\n    parentNode: undefined\n  })\n}\n\n/**\n * @type {Handle}\n * @param {Text} node\n * @returns {P5Text}\n */\nfunction text(node) {\n  return patch(node, {\n    nodeName: '#text',\n    value: node.value,\n    parentNode: undefined\n  })\n}\n\n/**\n * @type {Handle}\n * @param {Comment} node\n * @returns {P5Comment}\n */\nfunction comment(node) {\n  return patch(node, {\n    nodeName: '#comment',\n    data: node.value,\n    parentNode: undefined\n  })\n}\n\n/**\n * @type {Handle}\n * @param {Element} node\n * @returns {P5Element}\n */\nfunction element(node, schema) {\n  /** @type {Space} */\n  // @ts-ignore Assume space.\n  var space = schema.space\n  return toH(h, Object.assign({}, node, {children: []}), {space})\n\n  /**\n   * @param {string} name\n   * @param {Object.<string, string|boolean|number>} attrs\n   */\n  function h(name, attrs) {\n    /** @type {Array.<P5Attribute>} */\n    var values = []\n    /** @type {Info} */\n    var info\n    /** @type {P5Attribute} */\n    var value\n    /** @type {string} */\n    var key\n    /** @type {number} */\n    var index\n    /** @type {P5Element} */\n    var p5\n\n    for (key in attrs) {\n      if (!own.call(attrs, key) || attrs[key] === false) {\n        continue\n      }\n\n      info = find(schema, key)\n\n      if (info.boolean && !attrs[key]) {\n        continue\n      }\n\n      value = {name: key, value: attrs[key] === true ? '' : String(attrs[key])}\n\n      if (info.space && info.space !== 'html' && info.space !== 'svg') {\n        index = key.indexOf(':')\n\n        if (index < 0) {\n          value.prefix = ''\n        } else {\n          value.name = key.slice(index + 1)\n          value.prefix = key.slice(0, index)\n        }\n\n        value.namespace = webNamespaces[info.space]\n      }\n\n      values.push(value)\n    }\n\n    if (schema.space === 'html' && node.tagName === 'svg') schema = svg\n\n    p5 = patch(node, {\n      nodeName: name,\n      tagName: name,\n      attrs: values,\n      namespaceURI: webNamespaces[schema.space],\n      childNodes: [],\n      parentNode: undefined\n    })\n\n    // @ts-ignore Assume correct children.\n    p5.childNodes = all(node.children, p5, schema)\n\n    // @ts-ignore Types are wrong.\n    if (name === 'template') p5.content = fragment(node.content, schema)\n\n    return p5\n  }\n}\n\n/**\n * @param {Array.<Child>} children\n * @param {P5Parent} p5\n * @param {Schema} schema\n * @returns {Array.<P5Child>}\n */\nfunction all(children, p5, schema) {\n  var index = -1\n  /** @type {Array.<P5Child>} */\n  var result = []\n  /** @type {P5Child} */\n  var child\n\n  if (children) {\n    while (++index < children.length) {\n      // @ts-ignore Assume child.\n      child = one(children[index], schema)\n\n      // @ts-ignore types are wrong.\n      child.parentNode = p5\n\n      result.push(child)\n    }\n  }\n\n  return result\n}\n\n/**\n * Patch specific properties.\n *\n * @template {P5Node} T\n * @param {Node} node\n * @param {T} p5\n * @returns {T}\n */\nfunction patch(node, p5) {\n  var position = node.position\n\n  if (position && position.start && position.end) {\n    // @ts-ignore Types are wrong.\n    p5.sourceCodeLocation = {\n      startLine: position.start.line,\n      startCol: position.start.column,\n      startOffset: position.start.offset,\n      endLine: position.end.line,\n      endCol: position.end.column,\n      endOffset: position.end.offset\n    }\n  }\n\n  return p5\n}\n","/**\n * List of HTML void tag names.\n *\n * @type {Array<string>}\n */\nexport const htmlVoidElements = [\n  'area',\n  'base',\n  'basefont',\n  'bgsound',\n  'br',\n  'col',\n  'command',\n  'embed',\n  'frame',\n  'hr',\n  'image',\n  'img',\n  'input',\n  'isindex',\n  'keygen',\n  'link',\n  'menuitem',\n  'meta',\n  'nextid',\n  'param',\n  'source',\n  'track',\n  'wbr'\n]\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentFragment} P5Fragment\n * @typedef {Omit<import('parse5').Element, 'parentNode'>} P5Element\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {Omit<import('parse5').Location, 'startOffset' | 'endOffset'> & {startOffset: number|undefined, endOffset: number|undefined}} P5Location\n * @typedef {import('parse5').ParserOptions} P5ParserOptions\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Content} Content\n * @typedef {Root|Content} Node\n * @typedef {import('../complex-types').Raw} Raw\n *\n * @typedef {Omit<Comment, 'value'> & {value: {stitch: Node}}} Stitch\n *\n * @typedef Options\n * @property {Array<string>} [passThrough]\n *   List of custom hast node types to pass through (keep) in hast.\n *   If the passed through nodes have children, those children are expected to\n *   be hast and will be handled.\n *\n * @typedef HiddenTokenizer\n * @property {Array<HiddenLocationTracker>} __mixins\n *   Way too simple, but works for us.\n * @property {HiddenPreprocessor} preprocessor\n * @property {(value: string) => void} write\n * @property {() => number} _consume\n * @property {Array<HiddenToken>} tokenQueue\n * @property {string} state\n * @property {string} returnState\n * @property {number} charRefCode\n * @property {Array<number>} tempBuff\n * @property {Function} _flushCodePointsConsumedAsCharacterReference\n * @property {string} lastStartTagName\n * @property {number} consumedAfterSnapshot\n * @property {boolean} active\n * @property {HiddenToken|undefined} currentCharacterToken\n * @property {HiddenToken|undefined} currentToken\n * @property {unknown} currentAttr\n * @property {Function} NAMED_CHARACTER_REFERENCE_STATE\n * @property {Function} NUMERIC_CHARACTER_REFERENCE_END_STATE\n *\n * @typedef {Record<string, unknown> & {location: P5Location}} HiddenToken\n *\n * @typedef HiddenPreprocessor\n * @property {string|undefined} html\n * @property {number} pos\n * @property {number} lastGapPos\n * @property {number} lastCharPos\n * @property {Array<number>} gapStack\n * @property {boolean} skipNextNewLine\n * @property {boolean} lastChunkWritten\n * @property {boolean} endOfChunkHit\n *\n * @typedef HiddenLocationTracker\n * @property {P5Location|undefined} currentAttrLocation\n * @property {P5Location} ctLoc\n * @property {HiddenPosTracker} posTracker\n *\n * @typedef HiddenPosTracker\n * @property {boolean} isEol\n * @property {number} lineStartPos\n * @property {number} droppedBufferSize\n * @property {number} offset\n * @property {number} col\n * @property {number} line\n */\n\n// @ts-expect-error: untyped.\nimport Parser from 'parse5/lib/parser/index.js'\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {visit} from 'unist-util-visit'\nimport {fromParse5} from 'hast-util-from-parse5'\nimport {toParse5} from 'hast-util-to-parse5'\nimport {htmlVoidElements} from 'html-void-elements'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nconst inTemplateMode = 'IN_TEMPLATE_MODE'\nconst dataState = 'DATA_STATE'\nconst characterToken = 'CHARACTER_TOKEN'\nconst startTagToken = 'START_TAG_TOKEN'\nconst endTagToken = 'END_TAG_TOKEN'\nconst commentToken = 'COMMENT_TOKEN'\nconst doctypeToken = 'DOCTYPE_TOKEN'\n\n/** @type {P5ParserOptions} */\nconst parseOptions = {sourceCodeLocationInfo: true, scriptingEnabled: false}\n\n/**\n * Given a hast tree and an optional vfile (for positional info), return a new\n * parsed-again hast tree.\n *\n * @param tree\n *   Original hast tree.\n * @param file\n *   Virtual file for positional info, optional.\n * @param options\n *   Configuration.\n */\nexport const raw =\n  /**\n   * @type {(\n   *   ((tree: Node, file: VFile|undefined, options?: Options) => Node) &\n   *   ((tree: Node, options?: Options) => Node)\n   * )}\n   */\n  (\n    /**\n     * @param {Node} tree\n     * @param {VFile} [file]\n     * @param {Options} [options]\n     */\n    function (tree, file, options) {\n      let index = -1\n      const parser = new Parser(parseOptions)\n      const one = zwitch('type', {\n        // @ts-expect-error: hush.\n        handlers: {root, element, text, comment, doctype, raw: handleRaw},\n        // @ts-expect-error: hush.\n        unknown\n      })\n      /** @type {boolean|undefined} */\n      let stitches\n      /** @type {HiddenTokenizer|undefined} */\n      let tokenizer\n      /** @type {HiddenPreprocessor|undefined} */\n      let preprocessor\n      /** @type {HiddenPosTracker|undefined} */\n      let posTracker\n      /** @type {HiddenLocationTracker|undefined} */\n      let locationTracker\n\n      if (isOptions(file)) {\n        options = file\n        file = undefined\n      }\n\n      if (options && options.passThrough) {\n        while (++index < options.passThrough.length) {\n          // @ts-expect-error: hush.\n          one.handlers[options.passThrough[index]] = stitch\n        }\n      }\n\n      const result = fromParse5(\n        documentMode(tree) ? document() : fragment(),\n        file\n      )\n\n      if (stitches) {\n        visit(result, 'comment', (node, index, parent) => {\n          const stitch = /** @type {Stitch} */ (/** @type {unknown} */ (node))\n          if (stitch.value.stitch && parent !== null && index !== null) {\n            // @ts-expect-error: assume the stitch is allowed.\n            parent.children[index] = stitch.value.stitch\n            return index\n          }\n        })\n      }\n\n      // Unpack if possible and when not given a `root`.\n      if (\n        tree.type !== 'root' &&\n        result.type === 'root' &&\n        result.children.length === 1\n      ) {\n        return result.children[0]\n      }\n\n      return result\n\n      /**\n       * @returns {P5Fragment}\n       */\n      function fragment() {\n        /** @type {P5Element} */\n        const context = {\n          nodeName: 'template',\n          tagName: 'template',\n          attrs: [],\n          namespaceURI: webNamespaces.html,\n          childNodes: []\n        }\n        /** @type {P5Element} */\n        const mock = {\n          nodeName: 'documentmock',\n          tagName: 'documentmock',\n          attrs: [],\n          namespaceURI: webNamespaces.html,\n          childNodes: []\n        }\n        /** @type {P5Fragment} */\n        const doc = {nodeName: '#document-fragment', childNodes: []}\n\n        parser._bootstrap(mock, context)\n        parser._pushTmplInsertionMode(inTemplateMode)\n        parser._initTokenizerForFragmentParsing()\n        parser._insertFakeRootElement()\n        parser._resetInsertionMode()\n        parser._findFormInFragmentContext()\n\n        tokenizer = parser.tokenizer\n        /* c8 ignore next */\n        if (!tokenizer) throw new Error('Expected `tokenizer`')\n        preprocessor = tokenizer.preprocessor\n        locationTracker = tokenizer.__mixins[0]\n        posTracker = locationTracker.posTracker\n\n        one(tree)\n\n        resetTokenizer()\n\n        parser._adoptNodes(mock.childNodes[0], doc)\n\n        return doc\n      }\n\n      /**\n       * @returns {P5Document}\n       */\n      function document() {\n        /** @type {P5Document} */\n        const doc = parser.treeAdapter.createDocument()\n\n        parser._bootstrap(doc, undefined)\n        tokenizer = parser.tokenizer\n        /* c8 ignore next */\n        if (!tokenizer) throw new Error('Expected `tokenizer`')\n        preprocessor = tokenizer.preprocessor\n        locationTracker = tokenizer.__mixins[0]\n        posTracker = locationTracker.posTracker\n\n        one(tree)\n\n        resetTokenizer()\n\n        return doc\n      }\n\n      /**\n       * @param {Array<Content>} nodes\n       * @returns {void}\n       */\n      function all(nodes) {\n        let index = -1\n\n        /* istanbul ignore else - invalid nodes, see rehypejs/rehype-raw#7. */\n        if (nodes) {\n          while (++index < nodes.length) {\n            one(nodes[index])\n          }\n        }\n      }\n\n      /**\n       * @param {Root} node\n       * @returns {void}\n       */\n      function root(node) {\n        all(node.children)\n      }\n\n      /**\n       * @param {Element} node\n       * @returns {void}\n       */\n      function element(node) {\n        resetTokenizer()\n        parser._processToken(startTag(node), webNamespaces.html)\n\n        all(node.children)\n\n        if (!htmlVoidElements.includes(node.tagName)) {\n          resetTokenizer()\n          parser._processToken(endTag(node))\n        }\n      }\n\n      /**\n       * @param {Text} node\n       * @returns {void}\n       */\n      function text(node) {\n        resetTokenizer()\n        parser._processToken({\n          type: characterToken,\n          chars: node.value,\n          location: createParse5Location(node)\n        })\n      }\n\n      /**\n       * @param {Doctype} node\n       * @returns {void}\n       */\n      function doctype(node) {\n        resetTokenizer()\n        parser._processToken({\n          type: doctypeToken,\n          name: 'html',\n          forceQuirks: false,\n          publicId: '',\n          systemId: '',\n          location: createParse5Location(node)\n        })\n      }\n\n      /**\n       * @param {Comment|Stitch} node\n       * @returns {void}\n       */\n      function comment(node) {\n        resetTokenizer()\n        parser._processToken({\n          type: commentToken,\n          data: node.value,\n          location: createParse5Location(node)\n        })\n      }\n\n      /**\n       * @param {Raw} node\n       * @returns {void}\n       */\n      function handleRaw(node) {\n        const start = pointStart(node)\n        const line = start.line || 1\n        const column = start.column || 1\n        const offset = start.offset || 0\n\n        /* c8 ignore next 4 */\n        if (!preprocessor) throw new Error('Expected `preprocessor`')\n        if (!tokenizer) throw new Error('Expected `tokenizer`')\n        if (!posTracker) throw new Error('Expected `posTracker`')\n        if (!locationTracker) throw new Error('Expected `locationTracker`')\n\n        // Reset preprocessor:\n        // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/tokenizer/preprocessor.js#L17>.\n        preprocessor.html = undefined\n        preprocessor.pos = -1\n        preprocessor.lastGapPos = -1\n        preprocessor.lastCharPos = -1\n        preprocessor.gapStack = []\n        preprocessor.skipNextNewLine = false\n        preprocessor.lastChunkWritten = false\n        preprocessor.endOfChunkHit = false\n\n        // Reset preprocessor mixin:\n        // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/position-tracking/preprocessor-mixin.js>.\n        posTracker.isEol = false\n        posTracker.lineStartPos = -column + 1 // Looks weird, but ensures we get correct positional info.\n        posTracker.droppedBufferSize = offset\n        posTracker.offset = 0\n        posTracker.col = 1\n        posTracker.line = line\n\n        // Reset location tracker:\n        // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/location-info/tokenizer-mixin.js>.\n        locationTracker.currentAttrLocation = undefined\n        locationTracker.ctLoc = createParse5Location(node)\n\n        // See the code for `parse` and `parseFragment`:\n        // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/parser/index.js#L371>.\n        tokenizer.write(node.value)\n        parser._runParsingLoop(null)\n\n        // Character references hang, so if we ended there, we need to flush\n        // those too.\n        // We reset the preprocessor as if the document ends here.\n        // Then one single call to the relevant state does the trick, parse5\n        // consumes the whole token.\n        if (\n          tokenizer.state === 'NAMED_CHARACTER_REFERENCE_STATE' ||\n          tokenizer.state === 'NUMERIC_CHARACTER_REFERENCE_END_STATE'\n        ) {\n          preprocessor.lastChunkWritten = true\n          tokenizer[tokenizer.state](tokenizer._consume())\n        }\n      }\n\n      /**\n       * @param {Node} node\n       */\n      function stitch(node) {\n        stitches = true\n\n        /** @type {Node} */\n        let clone\n\n        // Recurse, because to somewhat handle `[<x>]</x>` (where `[]` denotes the\n        // passed through node).\n        if ('children' in node) {\n          clone = {\n            ...node,\n            children: raw(\n              {type: 'root', children: node.children},\n              file,\n              options\n              // @ts-expect-error Assume a given parent yields a parent.\n            ).children\n          }\n        } else {\n          clone = {...node}\n        }\n\n        // Hack: `value` is supposed to be a string, but as none of the tools\n        // (`parse5` or `hast-util-from-parse5`) looks at it, we can pass nodes\n        // through.\n        comment({type: 'comment', value: {stitch: clone}})\n      }\n\n      function resetTokenizer() {\n        /* c8 ignore next 2 */\n        if (!tokenizer) throw new Error('Expected `tokenizer`')\n        if (!posTracker) throw new Error('Expected `posTracker`')\n\n        // Process final characters if they’re still there after hibernating.\n        // Similar to:\n        // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/location-info/tokenizer-mixin.js#L95>.\n        const token = tokenizer.currentCharacterToken\n\n        if (token) {\n          token.location.endLine = posTracker.line\n          token.location.endCol = posTracker.col + 1\n          token.location.endOffset = posTracker.offset + 1\n          parser._processToken(token)\n        }\n\n        // Reset tokenizer:\n        // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/tokenizer/index.js#L218-L234>.\n        // Especially putting it back in the `data` state is useful: some elements,\n        // like textareas and iframes, change the state.\n        // See GH-7.\n        // But also if broken HTML is in `raw`, and then a correct element is given.\n        // See GH-11.\n        tokenizer.tokenQueue = []\n        tokenizer.state = dataState\n        tokenizer.returnState = ''\n        tokenizer.charRefCode = -1\n        tokenizer.tempBuff = []\n        tokenizer.lastStartTagName = ''\n        tokenizer.consumedAfterSnapshot = -1\n        tokenizer.active = false\n        tokenizer.currentCharacterToken = undefined\n        tokenizer.currentToken = undefined\n        tokenizer.currentAttr = undefined\n      }\n    }\n  )\n/**\n * @param {Element} node\n * @returns {HiddenToken}\n */\nfunction startTag(node) {\n  /** @type {P5Location} */\n  const location = Object.assign(createParse5Location(node))\n  // @ts-expect-error extra positional info.\n  location.startTag = Object.assign({}, location)\n\n  // Untyped token.\n  return {\n    type: startTagToken,\n    tagName: node.tagName,\n    selfClosing: false,\n    attrs: attributes(node),\n    location\n  }\n}\n\n/**\n * @param {Element} node\n * @returns {Array<P5Attribute>}\n */\nfunction attributes(node) {\n  return toParse5({\n    tagName: node.tagName,\n    type: 'element',\n    properties: node.properties,\n    children: []\n    // @ts-expect-error Assume element.\n  }).attrs\n}\n\n/**\n * @param {Element} node\n * @returns {HiddenToken}\n */\nfunction endTag(node) {\n  /** @type {P5Location} */\n  const location = Object.assign(createParse5Location(node))\n  // @ts-expect-error extra positional info.\n  location.startTag = Object.assign({}, location)\n\n  // Untyped token.\n  return {\n    type: endTagToken,\n    tagName: node.tagName,\n    attrs: [],\n    location\n  }\n}\n\n/**\n * @param {Node} node\n */\nfunction unknown(node) {\n  throw new Error('Cannot compile `' + node.type + '` node')\n}\n\n/**\n * @param {Node} node\n * @returns {boolean}\n */\nfunction documentMode(node) {\n  const head = node.type === 'root' ? node.children[0] : node\n  return Boolean(\n    head &&\n      (head.type === 'doctype' ||\n        (head.type === 'element' && head.tagName === 'html'))\n  )\n}\n\n/**\n * @param {Node|Stitch} node\n * @returns {P5Location}\n */\nfunction createParse5Location(node) {\n  const start = pointStart(node)\n  const end = pointEnd(node)\n\n  return {\n    startLine: start.line,\n    startCol: start.column,\n    startOffset: start.offset,\n    endLine: end.line,\n    endCol: end.column,\n    endOffset: end.offset\n  }\n}\n\n/**\n * @param {VFile|Options|undefined} value\n * @return {value is Options}\n */\nfunction isOptions(value) {\n  return Boolean(value && !('message' in value && 'messages' in value))\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-raw').Options} Options\n * @typedef {import('hast-util-raw')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {raw} from 'hast-util-raw'\n\n/**\n * Plugin to parse the tree again (and raw nodes).\n * Keeping positional info OK.  🙌\n *\n * @type {import('unified').Plugin<[Options?] | Array<void>, Root>}\n */\nexport default function rehypeRaw(options = {}) {\n  return (tree, file) => {\n    // Assume that when a root was given, it’s also returned.\n    const result = /** @type {Root} */ (raw(tree, file, options))\n    return result\n  }\n}\n","import * as React from \"react\";\nconst SVGComponent = (props) => (\n  <svg\n    height={512}\n    style={{\n      enableBackground: \"new 0 0 512 512\",\n    }}\n    viewBox=\"0 0 512 512\"\n    width={512}\n    xmlSpace=\"preserve\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    role=\"img\"\n    {...props}\n  >\n    <path d=\"m184.7 413.1 2.1-1.8 156.5-136c5.3-4.6 8.6-11.5 8.6-19.2 0-7.7-3.4-14.6-8.6-19.2L187.1 101l-2.6-2.3C182 97 179 96 175.8 96c-8.7 0-15.8 7.4-15.8 16.6v286.8c0 9.2 7.1 16.6 15.8 16.6 3.3 0 6.4-1.1 8.9-2.9z\" />\n    <path\n      style={{\n        fill: \"#fff\",\n        strokeWidth: 0.498539,\n      }}\n      d=\"M171.101 414.868c-4.514-1.611-8.561-5.771-10.18-10.464-.834-2.42-1.217-288.516-.393-293.894.907-5.921 3.926-10.216 8.895-12.657 3.95-1.94 9.155-1.937 12.793.007 3.343 1.785 161.905 139.906 164.376 143.184 3.021 4.01 4.472 8.2 4.757 13.742.186 3.605.037 5.49-.609 7.727-1.173 4.064-3.454 8.202-5.94 10.774-1.146 1.186-37.704 33.115-81.239 70.955-55.39 48.142-79.907 69.15-81.66 69.97-3.43 1.606-7.454 1.85-10.8.656z\"\n    />\n  </svg>\n);\nexport default SVGComponent;\n","import * as React from \"react\";\nconst SVGComponent = (props) => (\n  <svg\n    height={512}\n    style={{\n      enableBackground: \"new 0 0 512 512\",\n    }}\n    viewBox=\"0 0 512 512\"\n    width={512}\n    xmlSpace=\"preserve\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    role=\"img\"\n    {...props}\n  >\n    <path d=\"m98.9 184.7 1.8 2.1 136 156.5c4.6 5.3 11.5 8.6 19.2 8.6 7.7 0 14.6-3.4 19.2-8.6L411 187.1l2.3-2.6c1.7-2.5 2.7-5.5 2.7-8.7 0-8.7-7.4-15.8-16.6-15.8H112.6c-9.2 0-16.6 7.1-16.6 15.8 0 3.3 1.1 6.4 2.9 8.9z\" />\n    <path\n      style={{\n        fill: \"#fff\",\n        strokeWidth: 0.498539,\n      }}\n      d=\"M248.273 350.336c-4.083-1.397-7.187-3.22-9.662-5.673-1.064-1.054-32.92-37.549-70.793-81.098-48.133-55.35-69.23-79.958-70.096-81.76-1.803-3.758-1.753-8.546.131-12.382 2.335-4.755 6.517-7.824 12.058-8.848 4.16-.769 288.018-.769 292.178 0 5.54 1.024 9.723 4.093 12.058 8.848 1.847 3.762 1.927 9.146.186 12.495-1.265 2.433-139.44 161.51-142.47 164.02-6.161 5.108-16.1 6.96-23.59 4.398z\"\n    />\n  </svg>\n);\nexport default SVGComponent;\n","import './App.css';\nimport { useState, useCallback } from \"react\";\nimport data from \"./data\";\nimport ReactMarkdown from 'react-markdown';\nimport { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';\n// Theme examples: https://react-syntax-highlighter.github.io/react-syntax-highlighter/demo/prism.html\nimport { coldarkDark } from 'react-syntax-highlighter/dist/esm/styles/prism';\nimport remarkGfm from 'remark-gfm';\nimport rehypeRaw from 'rehype-raw';\nimport RightArrow from \"./components/right_arrow\";\nimport DownArrow from \"./components/down_arrow\";\n\n// TODO: Future, have a way to bookmark to specific entries\n\n// Copy icon reference:\n// https://github.com/react-syntax-highlighter/react-syntax-highlighter/issues/132\n\nfunction debounce(fn, wait, immediate) {\n  let timeout;\n\n  return (...args) => {\n    const context = this;\n\n    const later = () => {\n      timeout = null;\n      if (!immediate) fn.apply(context, args);\n    };\n\n    const callNow = immediate && !timeout;\n    clearTimeout(timeout);\n    timeout = setTimeout(later, wait);\n\n    if (callNow) {\n      fn.apply(context, args);\n    }\n  };\n}\n\n// const types = data.items.map(item => item.type);\n\nfunction filterData(data, filter = \"\", typeFilter = \"all\") {\n  // console.warn(\"filterData\");\n  \n  if (typeFilter === \"all\" && filter.length) return data;\n\n  const typeFilteredItems = {};\n  typeFilteredItems.items = typeFilter !== \"all\" ? data.items.filter(item => item.type === typeFilter) : data.items;\n\n  if (filter.length) return typeFilteredItems;\n\n  const filtered = {};\n  filtered.items = filter.length ? typeFilteredItems.items.filter(item => {\n    // console.warn(\"title\", filter.toLowerCase(), item.title.toLowerCase(), item.title.toLowerCase().includes(filter.toLowerCase()));\n    // console.warn(\"content\", filter.toLowerCase(), item.content.toLowerCase(), item.content.toLowerCase().includes(filter.toLowerCase()));\n    return item.title.toLowerCase().includes(filter.toLowerCase()) || item.content.toLowerCase().includes(filter.toLowerCase());\n  }) : typeFilteredItems.items;\n\n  return filtered;\n};\n\nfunction App() {\n  const [filter, setFilter] = useState(\"\");\n  const [typeFilter, setTypeFilter] = useState(\"all\");\n  const [expandedItems, setExpandedItems] = useState([]);\n  const [expandedCategories, setExpandedCategories] = useState([]);\n  // Alphabetize categories\n  // data.items.sort((fa, fb) => {\n  //   if (fa.category < fb.category) {\n  //     return -1;\n  //   }\n  //   if (fa.category > fb.category) {\n  //       return 1;\n  //   }\n  //   return 0;\n  // });\n  function handleFilter(event) {\n    // console.warn(\"handleFilter\");\n    debounce(setFilter(event.target.value), 300);\n  }\n\n  const handleExpandItem = useCallback((event) => {\n    // console.warn(\"handleExpandItem\");\n    const newExpanded = expandedItems.includes(event) ? expandedItems.filter(i => i !== event) : [...expandedItems, event];\n    setExpandedItems(newExpanded);\n  }, [expandedItems]);\n\n  const handleCategoryClick = useCallback((event) => {\n    // console.warn(\"handleCategoryClick\");\n    const newExpandedCategory = expandedCategories.includes(event) ? expandedCategories.filter(i => i !== event) : [...expandedCategories, event];\n    setExpandedCategories(newExpandedCategory);\n  }, [expandedCategories]);\n\n  function expandAll() {\n    setExpandedCategories(data.categories.map(category => category.title));\n  }\n\n  function collapseAll() {\n    setExpandedItems([]);\n    setExpandedCategories([]);\n  }\n\n  // function handleTypeFilterClick(type) {\n  //   // console.warn(\"handleTypeFilterClick\");\n  //   setTypeFilter(type);\n  // }\n\n  function clearFilters() {\n    setFilter(\"\");\n    setTypeFilter(\"all\");\n  }\n\n  // console.warn(\"expandedCategories\", expandedCategories);\n  // console.warn(\"expandedItems\", expandedItems);\n  const filtered = filter.length || typeFilter !== \"all\" ? filterData(data, filter, typeFilter) : data;\n  // console.warn(\"render\");\n  return (\n    <div className=\"App\">\n      <div className={\"inputFilter\"}>\n        <span align=\"center\"><input type=\"text\" onChange={handleFilter} value={filter} /> Search</span>\n        <span align=\"center\"> 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝<a href=\"https://github.com/tteck/Proxmox/blob/main/LICENSE\"><img alt=\"License MIT\" src=\"https://img.shields.io/badge/license-MIT-blue\" /></a> <a href=\"https://github.com/tteck/Proxmox/discussions\"><img src=\"https://img.shields.io/badge/%F0%9F%92%AC-Discussions-teal\" alt=\"Discussions\" /></a> <a href=\"https://github.com/tteck/Proxmox/blob/main/CHANGELOG.md\"><img src=\"https://img.shields.io/badge/🔶-Changelog-maroon\" alt=\"Changelog\" /></a> <a href=\"https://github.com/tteck/Proxmox/blob/main/USER_SUBMITTED_GUIDES.md\"><img src=\"https://img.shields.io/badge/🧭-Guides-navy\" alt=\"Guides\" /></a> <a href=\"https://ko-fi.com/D1D7EP4GF\"><img src=\"https://img.shields.io/badge/%E2%98%95-Buy%20me%20a%20coffee-brown\" alt=\"Buy me a coffee\" /></a></span>\n        {/* <span className=\"typeFilter\">Type: {[\"all\", ...new Set(types)].map(type =>\n          <span onClick={() => handleTypeFilterClick(type)} key={type} className={typeFilter === type ? \"typeFilterSelected\" : \"typeFilterNotSelected\"}> {type} </span>\n        )}</span> */}\n      </div>\n      {filtered.items.length === 0 && <div>No items match your criteria <button onClick={clearFilters}>Clear Filters</button></div>}\n      <div><span onClick={expandAll}>  󠀠 󠀠 󠀠➕ 󠀠 󠀠</span>  󠀠 <span onClick={collapseAll}> 󠀠 󠀠 󠀠➖ 󠀠 󠀠</span></div>\n      {filtered.items?.map((item, index) => {\n        return <div className={\"App-items\"} key={item.title} >\n          {/** Show Category \n            * Since Categories are flatted, only show the category the first time it appears while mapping through.\n            */}\n          {(index === 0 || filtered.items[index === 0 ? 0 : index - 1].category !== item.category) && <div onClick={() => handleCategoryClick(item.category)} className={\"itemCategory\"}>\n            {/* <img className={\"categoryLogo\"} src={data.categories.filter(category => category.title === item.category)[0]?.logo_url || data.categories[0].logo_url} alt=\"logo\" /> */}\n            {item.category}{(((filter && item.title.toLowerCase().includes(filter.toLowerCase())) || expandedItems.includes(item.title)) || expandedCategories.includes(item.category)) ? <DownArrow className=\"navArrow\" alt=\"Expanded\" /> : <RightArrow className=\"navArrow\" alt=\"Collapsed\" />} </div>}\n\n          {/* Show Item Title */}\n          {(((filter && item.title.toLowerCase().includes(filter.toLowerCase())) || expandedItems.includes(item.title)) || expandedCategories.includes(item.category)) && <span onClick={() => handleExpandItem(item.title)} className={\"itemTitle\"}>{item.title}</span>}\n\n          {\n            ((filter && item.title.toLowerCase().includes(filter.toLowerCase())) || expandedItems.includes(item.title)) && <div className=\"item\">\n              <ReactMarkdown\n                children={item.content}\n                remarkPlugins={[remarkGfm]}\n                rehypePlugins={[rehypeRaw]}\n                components={{\n                  code({ node, inline, className, children, ...props }) {\n                    const match = /language-(\\w+)/.exec(className || '');\n                    return !inline && match ? (\n                      <>\n                        <CopyButton valueToCopy={String(children)} />\n                        <SyntaxHighlighter\n                          children={String(children).replace(/\\n$/, '')}\n                          style={coldarkDark}\n                          language={match[1]}\n                          PreTag=\"div\"\n                          {...props}\n                        />\n                      </>\n                    ) : (\n                      <code className={className} {...props}>\n                        {children}\n                      </code>\n                    );\n                  }\n                }}\n              />\n            </div>}\n        </div>;\n      })}\n    </div>\n  );\n}\nfunction CopyButton({ valueToCopy }) {\n  function handleClick(text) {\n    navigator.clipboard.writeText(text);\n  }\n\n  return <button onClick={() => handleClick(valueToCopy)}>Copy</button>;\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.css';\nimport App from './App';\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n  <React.StrictMode>\n    <App />\n  </React.StrictMode>\n);\n\n"],"names":["hasOwn","Object","prototype","hasOwnProperty","toStr","toString","defineProperty","gOPD","getOwnPropertyDescriptor","isArray","arr","Array","call","isPlainObject","obj","key","hasOwnConstructor","hasIsPrototypeOf","constructor","setProperty","target","options","name","enumerable","configurable","value","newValue","writable","getProperty","module","exports","extend","src","copy","copyIsArray","clone","arguments","i","length","deep","selector","defaultTagName","subvalue","previous","match","props","start","search","lastIndex","exec","slice","index","id","className","push","type","tagName","properties","children","find","require","normalize","parseSelector","spaces","commas","schema","caseSensitive","adjust","values","result","toLowerCase","createAdjustMap","property","node","own","isChildren","unshift","addProperty","addChild","content","info","undefined","spaceSeparated","commaSeparated","commaOrSpaceSeparated","join","style","concat","parsePrimitive","parsePrimitives","isNode","nodes","Error","String","number","positiveNumber","isNaN","Number","boolean","overloadedBoolean","html","factory","displayName","val","input","indexOf","end","trim","DefinedInfo","Info","data","normal","prop","Type","valid","test","charAt","attribute","replace","dash","camelcase","toUpperCase","datasetToProperty","cap","kebab","datasetToAttribute","$0","merge","xlink","xml","xmlns","aria","types","create","booleanish","transform","_","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","caseInsensitiveTransform","space","attributes","acceptcharset","classname","htmlfor","httpequiv","mustUseProperty","abbr","accept","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","alt","as","async","autoCapitalize","autoComplete","autoFocus","autoPlay","capture","charSet","checked","cite","cols","colSpan","contentEditable","controls","controlsList","coords","crossOrigin","dateTime","decoding","default","defer","dir","dirName","disabled","download","draggable","encType","enterKeyHint","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","kind","label","lang","language","list","loading","loop","low","manifest","max","maxLength","media","method","min","minLength","multiple","muted","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforePrint","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextMenu","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","open","optimum","pattern","ping","placeholder","playsInline","poster","preload","readOnly","referrerPolicy","rel","required","reversed","rows","rowSpan","sandbox","scope","scoped","seamless","selected","shape","size","sizes","slot","span","spellCheck","srcDoc","srcLang","srcSet","step","tabIndex","title","translate","typeMustMatch","useMap","width","wrap","align","aLink","archive","axis","background","bgColor","border","borderColor","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","clear","code","codeBase","codeType","color","compact","declare","event","face","frame","frameBorder","hSpace","leftMargin","link","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","object","profile","prompt","rev","rightMargin","rules","scheme","scrolling","standby","summary","text","topMargin","valueType","version","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","prefix","results","security","unselectable","caseSensitiveTransform","Schema","definition","defined","checks","checksLength","mask","check","mark","this","proto","xtend","definitions","apply","powers","increment","Math","pow","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xmlLang","xmlBase","xmlSpace","xmlnsxlink","xmlnsXLink","split","whiteSpace","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","str","TypeError","lineno","column","updatePosition","lines","lastIndexOf","position","line","Position","whitespace","source","errorsList","error","msg","err","reason","filename","silent","re","m","comments","c","comment","pos","declaration","ret","decl","decls","declarations","character","charCodeAt","alphabetical","decimal","isBuffer","el","characters","entity","document","createElement","innerHTML","textContent","legacy","invalid","hexadecimal","alphanumerical","decodeEntity","option","settings","defaults","indent","entityCharacters","namedEntity","terminated","reference","following","warning","output","begin","prev","next","diff","additional","nonTerminated","handleText","handleReference","handleWarning","textContext","referenceContext","warningContext","queue","now","parseError","noop","fromCharCode","hexa","deci","tests","prohibited","parseInt","bases","disallowed","flush","offset","messages","parse","Function","DOCUMENT_MODE","VALID_DOCTYPE_NAME","QUIRKS_MODE_PUBLIC_ID_PREFIXES","QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES","QUIRKS_MODE_PUBLIC_IDS","LIMITED_QUIRKS_PUBLIC_ID_PREFIXES","LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES","enquoteDoctypeId","quote","hasPrefix","publicId","prefixes","isConforming","token","systemId","getDocumentMode","QUIRKS","LIMITED_QUIRKS","NO_QUIRKS","serializeContent","controlCharacterInInputStream","noncharacterInInputStream","surrogateInInputStream","nonVoidHtmlElementStartTagWithTrailingSolidus","endTagWithAttributes","endTagWithTrailingSolidus","unexpectedSolidusInTag","unexpectedNullCharacter","unexpectedQuestionMarkInsteadOfTagName","invalidFirstCharacterOfTagName","unexpectedEqualsSignBeforeAttributeName","missingEndTagName","unexpectedCharacterInAttributeName","unknownNamedCharacterReference","missingSemicolonAfterCharacterReference","unexpectedCharacterAfterDoctypeSystemIdentifier","unexpectedCharacterInUnquotedAttributeValue","eofBeforeTagName","eofInTag","missingAttributeValue","missingWhitespaceBetweenAttributes","missingWhitespaceAfterDoctypePublicKeyword","missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers","missingWhitespaceAfterDoctypeSystemKeyword","missingQuoteBeforeDoctypePublicIdentifier","missingQuoteBeforeDoctypeSystemIdentifier","missingDoctypePublicIdentifier","missingDoctypeSystemIdentifier","abruptDoctypePublicIdentifier","abruptDoctypeSystemIdentifier","cdataInHtmlContent","incorrectlyOpenedComment","eofInScriptHtmlCommentLikeText","eofInDoctype","nestedComment","abruptClosingOfEmptyComment","eofInComment","incorrectlyClosedComment","eofInCdata","absenceOfDigitsInNumericCharacterReference","nullCharacterReference","surrogateCharacterReference","characterReferenceOutsideUnicodeRange","controlCharacterReference","noncharacterCharacterReference","missingWhitespaceBeforeDoctypeName","missingDoctypeName","invalidCharacterSequenceAfterDoctypeName","duplicateAttribute","nonConformingDoctype","missingDoctype","misplacedDoctype","endTagWithoutMatchingOpenElement","closingOfElementWithOpenChildElements","disallowedContentInNoscriptInHead","openElementsLeftAfterEof","abandonedHeadElementChild","misplacedStartTagForHeadElement","nestedNoscriptInHead","eofInElementThatCanContainOnlyText","Tokenizer","HTML","$","TAG_NAMES","NS","NAMESPACES","ATTRS","MIME_TYPES","SVG_ATTRS_ADJUSTMENT_MAP","attributename","attributetype","basefrequency","baseprofile","calcmode","clippathunits","diffuseconstant","edgemode","filterunits","glyphref","gradienttransform","gradientunits","kernelmatrix","kernelunitlength","keypoints","keysplines","keytimes","lengthadjust","limitingconeangle","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","numoctaves","pathlength","patterncontentunits","patterntransform","patternunits","pointsatx","pointsaty","pointsatz","preservealpha","preserveaspectratio","primitiveunits","refx","refy","repeatcount","repeatdur","requiredextensions","requiredfeatures","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","surfacescale","systemlanguage","tablevalues","targetx","targety","textlength","viewbox","viewtarget","xchannelselector","ychannelselector","zoomandpan","XML_ATTRS_ADJUSTMENT_MAP","namespace","XLINK","XML","XMLNS","SVG_TAG_NAMES_ADJUSTMENT_MAP","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","clippath","feblend","fecolormatrix","fecomponenttransfer","fecomposite","feconvolvematrix","fediffuselighting","fedisplacementmap","fedistantlight","feflood","fefunca","fefuncb","fefuncg","fefuncr","fegaussianblur","feimage","femerge","femergenode","femorphology","feoffset","fepointlight","fespecularlighting","fespotlight","fetile","feturbulence","foreignobject","lineargradient","radialgradient","textpath","EXITS_FOREIGN_CONTENT","B","BIG","BLOCKQUOTE","BODY","BR","CENTER","CODE","DD","DIV","DL","DT","EM","EMBED","H1","H2","H3","H4","H5","H6","HEAD","HR","I","IMG","LI","LISTING","MENU","META","NOBR","OL","P","PRE","RUBY","S","SMALL","SPAN","STRONG","STRIKE","SUB","SUP","TABLE","TT","U","UL","VAR","causesExit","startTagToken","tn","FONT","getTokenAttr","COLOR","SIZE","FACE","adjustTokenMathMLAttrs","attrs","adjustTokenSVGAttrs","adjustedAttrName","adjustTokenXMLAttrs","adjustedAttrEntry","adjustTokenSVGTagName","adjustedTagName","isIntegrationPoint","ns","foreignNS","MATHML","ANNOTATION_XML","ENCODING","SVG","FOREIGN_OBJECT","DESC","TITLE","isHtmlIntegrationPoint","MI","MO","MN","MS","MTEXT","isMathMLTextIntegrationPoint","TYPE","ACTION","PROMPT","NAME","A","ADDRESS","APPLET","AREA","ARTICLE","ASIDE","BASE","BASEFONT","BGSOUND","BUTTON","CAPTION","COL","COLGROUP","DETAILS","DIALOG","DIR","FIELDSET","FIGCAPTION","FIGURE","FOOTER","FORM","FRAME","FRAMESET","HEADER","HGROUP","IMAGE","INPUT","IFRAME","KEYGEN","LABEL","LINK","MAIN","MALIGNMARK","MARQUEE","MATH","MGLYPH","NAV","NOFRAMES","NOEMBED","NOSCRIPT","OBJECT","OPTGROUP","OPTION","PARAM","PLAINTEXT","RB","RP","RT","RTC","SCRIPT","SECTION","SELECT","SOURCE","STYLE","SUMMARY","TBODY","TEMPLATE","TEXTAREA","TFOOT","TD","TH","THEAD","TR","TRACK","WBR","XMP","SPECIAL_ELEMENTS","UNDEFINED_CODE_POINTS","REPLACEMENT_CHARACTER","CODE_POINTS","EOF","NULL","TABULATION","CARRIAGE_RETURN","LINE_FEED","FORM_FEED","SPACE","EXCLAMATION_MARK","QUOTATION_MARK","NUMBER_SIGN","AMPERSAND","APOSTROPHE","HYPHEN_MINUS","SOLIDUS","DIGIT_0","DIGIT_9","SEMICOLON","LESS_THAN_SIGN","EQUALS_SIGN","GREATER_THAN_SIGN","QUESTION_MARK","LATIN_CAPITAL_A","LATIN_CAPITAL_F","LATIN_CAPITAL_X","LATIN_CAPITAL_Z","RIGHT_SQUARE_BRACKET","GRAVE_ACCENT","LATIN_SMALL_A","LATIN_SMALL_F","LATIN_SMALL_X","LATIN_SMALL_Z","CODE_POINT_SEQUENCES","DASH_DASH_STRING","DOCTYPE_STRING","CDATA_START_STRING","SCRIPT_STRING","PUBLIC_STRING","SYSTEM_STRING","isSurrogate","cp","isSurrogatePair","getSurrogatePairCodePoint","cp1","cp2","isControlCodePoint","isUndefinedCodePoint","ErrorReportingMixinBase","host","opts","posTracker","onParseError","startLine","endLine","startCol","endCol","col","startOffset","endOffset","_setErrorLocation","mxn","_err","_reportError","ErrorReportingTokenizerMixin","LocationInfoTokenizerMixin","Mixin","ErrorReportingParserMixin","parser","ctLoc","locBeforeToken","orig","_bootstrap","fragmentContext","install","tokenizer","_processInputToken","location","beforeToken","PositionTrackingPreprocessorMixin","ErrorReportingPreprocessorMixin","preprocessor","lastErrOffset","preprocessorMixin","LocationInfoOpenElementStackMixin","stack","onItemPop","pop","current","popAllUpToHtmlElement","stackTop","items","remove","element","LocationInfoParserMixin","treeAdapter","lastStartTagToken","lastFosterParentingLocation","currentToken","loc","assign","startTag","setNodeSourceCodeLocation","closingToken","getNodeSourceCodeLocation","getTagName","endLoc","END_TAG_TOKEN","endTag","updateNodeSourceCodeLocation","tokenizerMixin","openElements","_setEndLocation","_runParsingLoop","scriptHandler","_processTokenInForeignContent","_processToken","hasInScope","_setDocumentType","documentChildren","getChildNodes","cnLength","isDocumentTypeNode","_attachElementToTree","_setStartLocation","_appendElement","namespaceURI","_insertElement","_insertTemplate","tmplContent","getTemplateContent","_insertFakeRootElement","_appendCommentNode","parent","commentNode","_findFosterParentingLocation","_insertCharacters","hasFosterParent","_shouldFosterParentOnInsertion","currentTmplContent","siblings","textNodeIdx","beforeElement","textNode","currentAttrLocation","currentAttr","methods","_createStartTagToken","_createEndTagToken","_createCommentToken","_createDoctypeToken","initialName","_createCharacterToken","ch","currentCharacterToken","_createEOFToken","_getCurrentLocation","_createAttr","attrNameFirstCh","_leaveAttrName","toState","_attachCurrentAttrLocationInfo","_leaveAttrValue","_emitCurrentToken","EOF_TOKEN","_emitCurrentCharacterToken","keys","MODE","forEach","modeName","state","isEol","lineStartPos","droppedBufferSize","advance","retreat","dropParsedChunk","prevPos","reduction","FormattingElementList","entries","bookmark","newElement","candidates","neAttrsLength","getAttrList","neTagName","neNamespaceURI","getNamespaceURI","entry","MARKER_ENTRY","elementAttrs","idx","_getNoahArkConditionCandidates","cLength","neAttrs","neAttrsMap","neAttr","j","cAttr","splice","NOAH_ARK_CAPACITY","_ensureNoahArkCondition","ELEMENT_ENTRY","bookmarkIdx","OpenElementStack","defaultTreeAdapter","mergeOptions","doctype","foreignContent","ERR","unicode","DEFAULT_OPTIONS","scriptingEnabled","sourceCodeLocationInfo","HIDDEN_INPUT_TYPE","INITIAL_MODE","BEFORE_HTML_MODE","BEFORE_HEAD_MODE","IN_HEAD_MODE","IN_HEAD_NO_SCRIPT_MODE","AFTER_HEAD_MODE","IN_BODY_MODE","TEXT_MODE","IN_TABLE_MODE","IN_TABLE_TEXT_MODE","IN_CAPTION_MODE","IN_COLUMN_GROUP_MODE","IN_TABLE_BODY_MODE","IN_ROW_MODE","IN_CELL_MODE","IN_SELECT_MODE","IN_SELECT_IN_TABLE_MODE","IN_TEMPLATE_MODE","AFTER_BODY_MODE","IN_FRAMESET_MODE","AFTER_FRAMESET_MODE","AFTER_AFTER_BODY_MODE","AFTER_AFTER_FRAMESET_MODE","INSERTION_MODE_RESET_MAP","TEMPLATE_INSERTION_MODE_SWITCH_MAP","TOKEN_HANDLERS","CHARACTER_TOKEN","tokenInInitialMode","NULL_CHARACTER_TOKEN","WHITESPACE_CHARACTER_TOKEN","ignoreToken","COMMENT_TOKEN","appendComment","DOCTYPE_TOKEN","p","mode","forceQuirks","setDocumentMode","insertionMode","START_TAG_TOKEN","tokenBeforeHtml","tokenBeforeHead","startTagInBody","headElement","tokenInHead","insertCharacters","startTagInHead","endTagInHead","tokenInHeadNoScript","tokenAfterHead","framesetOk","characterInBody","whitespaceCharacterInBody","endTagInBody","eofInBody","pendingScript","originalInsertionMode","characterInTable","startTagInTable","endTagInTable","pendingCharacterTokens","hasNonWhitespacePendingCharacterToken","tokenInTableText","hasInTableScope","generateImpliedEndTags","popUntilTagNamePopped","activeFormattingElements","clearToLastMarker","tokenInColumnGroup","ackSelfClosing","currentTagName","clearBackToTableBodyContext","_insertFakeElement","hasTableBodyContextInTableScope","clearBackToTableRowContext","insertMarker","_closeTableCell","startTagInSelect","endTagInSelect","_resetInsertionMode","newInsertionMode","_popTmplInsertionMode","_pushTmplInsertionMode","eofInTemplate","tokenAfterBody","stopParsing","isRootHtmlElementCurrent","tokenAfterAfterBody","appendCommentToDocument","Parser","createDocument","write","documentMock","_initTokenizerForFragmentParsing","_findFormInFragmentContext","rootElement","getFirstChild","fragment","createDocumentFragment","_adoptNodes","stopped","formElement","tmplInsertionModeStack","tmplInsertionModeStackTop","currentTmplInsertionMode","skipNextNewLine","fosterParentingEnabled","_setupTokenizerCDATAMode","getNextToken","HIBERNATION_TOKEN","chars","substr","writeCallback","script","_getAdjustedCurrentElement","allowCDATA","_isIntegrationPoint","nextTokenizerState","getParentNode","RCDATA","RAWTEXT","SCRIPT_DATA","setDocumentType","_fosterParentElement","appendChild","tmpl","setTemplateContent","createCommentNode","_fosterParentText","insertText","donor","recipient","child","detachNode","isCharacterToken","characterInForeignContent","nullCharacterInForeignContent","currentNs","selfClosing","startTagInForeignContent","popUntilElementPopped","endTagInForeignContent","_shouldProcessTokenInForeignContent","listLength","unopenIdx","contains","popUntilTableCellPopped","generateImpliedEndTagsWithExclusion","last","_resetInsertionModeForSelect","selectIdx","ancestor","_isElementCausesFosterParenting","openElement","insertBefore","insertTextBefore","aaObtainFormattingElementEntry","formattingElementEntry","getElementEntryInScopeWithTagName","removeEntry","genericEndTagInBody","aaObtainFurthestBlock","furthestBlock","_isSpecialElement","aaInnerLoop","formattingElement","lastElement","nextElement","getCommonAncestor","elementEntry","getElementEntry","counterOverflow","aaRecreateElementFromEntry","aaInsertLastNodeInCommonAncestor","commonAncestor","aaReplaceFormattingElement","insertElementAfterBookmark","insertAfter","callAdoptionAgency","_switchToTextParsing","tmplCount","generateImpliedEndTagsThoroughly","errCode","_reconstructActiveFormattingElements","addressStartTagInBody","hasInButtonScope","_closePElement","preStartTagInBody","bStartTagInBody","pushElement","appletStartTagInBody","areaStartTagInBody","paramStartTagInBody","noembedStartTagInBody","optgroupStartTagInBody","rbStartTagInBody","genericStartTagInBody","activeElementEntry","aStartTagInBody","numberedHeaderStartTagInBody","elementTn","closeTn","listItemStartTagInBody","hrStartTagInBody","rtStartTagInBody","xmpStartTagInBody","svgStartTagInBody","adoptAttributes","htmlStartTagInBody","bodyElement","tryPeekProperlyNestedBodyElement","bodyStartTagInBody","inTemplate","formStartTagInBody","nobrStartTagInBody","mathStartTagInBody","menuStartTagInBody","tableStartTagInBody","inputType","inputStartTagInBody","imageStartTagInBody","buttonStartTagInBody","iframeStartTagInBody","selectStartTagInBody","framesetStartTagInBody","textareaStartTagInBody","plaintextStartTagInBody","addressEndTagInBody","appletEndTagInBody","pEndTagInBody","hasInListItemScope","liEndTagInBody","ddEndTagInBody","hasNumberedHeaderInScope","popUntilNumberedHeaderPopped","numberedHeaderEndTagInBody","brEndTagInBody","bodyEndTagInBody","htmlEndTagInBody","formEndTagInBody","curTn","tokenInTable","clearBackToTableContext","tdStartTagInTable","colStartTagInTable","formStartTagInTable","tableStartTagInTable","tbodyStartTagInTable","inputStartTagInTable","captionStartTagInTable","colgroupStartTagInTable","savedFosterParentingState","_processTokenInBodyMode","hasInSelectScope","prevOpenElement","prevOpenElementTn","isImpliedEndTagRequired","isImpliedEndTagRequiredThoroughly","isScopingElement","_isInTemplate","_updateCurrentElement","oldElement","_indexOf","referenceElement","insertionIdx","poppedElement","elementIdx","exclusionTagName","Preprocessor","neTree","$$","C1_CONTROLS_REFERENCE_REPLACEMENTS","DATA_STATE","RCDATA_STATE","RAWTEXT_STATE","SCRIPT_DATA_STATE","PLAINTEXT_STATE","TAG_OPEN_STATE","END_TAG_OPEN_STATE","TAG_NAME_STATE","RCDATA_LESS_THAN_SIGN_STATE","RCDATA_END_TAG_OPEN_STATE","RCDATA_END_TAG_NAME_STATE","RAWTEXT_LESS_THAN_SIGN_STATE","RAWTEXT_END_TAG_OPEN_STATE","RAWTEXT_END_TAG_NAME_STATE","SCRIPT_DATA_LESS_THAN_SIGN_STATE","SCRIPT_DATA_END_TAG_OPEN_STATE","SCRIPT_DATA_END_TAG_NAME_STATE","SCRIPT_DATA_ESCAPE_START_STATE","SCRIPT_DATA_ESCAPE_START_DASH_STATE","SCRIPT_DATA_ESCAPED_STATE","SCRIPT_DATA_ESCAPED_DASH_STATE","SCRIPT_DATA_ESCAPED_DASH_DASH_STATE","SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE","SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE","SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE","SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE","SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE","BEFORE_ATTRIBUTE_NAME_STATE","ATTRIBUTE_NAME_STATE","AFTER_ATTRIBUTE_NAME_STATE","BEFORE_ATTRIBUTE_VALUE_STATE","ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE","ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE","ATTRIBUTE_VALUE_UNQUOTED_STATE","AFTER_ATTRIBUTE_VALUE_QUOTED_STATE","SELF_CLOSING_START_TAG_STATE","BOGUS_COMMENT_STATE","MARKUP_DECLARATION_OPEN_STATE","COMMENT_START_STATE","COMMENT_START_DASH_STATE","COMMENT_STATE","COMMENT_LESS_THAN_SIGN_STATE","COMMENT_LESS_THAN_SIGN_BANG_STATE","COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE","COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE","COMMENT_END_DASH_STATE","COMMENT_END_STATE","COMMENT_END_BANG_STATE","DOCTYPE_STATE","BEFORE_DOCTYPE_NAME_STATE","DOCTYPE_NAME_STATE","AFTER_DOCTYPE_NAME_STATE","AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE","BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE","DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE","DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE","AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE","BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE","AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE","BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE","DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE","DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE","AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE","BOGUS_DOCTYPE_STATE","CDATA_SECTION_STATE","CDATA_SECTION_BRACKET_STATE","CDATA_SECTION_END_STATE","CHARACTER_REFERENCE_STATE","NAMED_CHARACTER_REFERENCE_STATE","AMBIGUOUS_AMPERSAND_STATE","NUMERIC_CHARACTER_REFERENCE_STATE","HEXADEMICAL_CHARACTER_REFERENCE_START_STATE","DECIMAL_CHARACTER_REFERENCE_START_STATE","HEXADEMICAL_CHARACTER_REFERENCE_STATE","DECIMAL_CHARACTER_REFERENCE_STATE","NUMERIC_CHARACTER_REFERENCE_END_STATE","isWhitespace","isAsciiDigit","isAsciiUpper","isAsciiLower","isAsciiLetter","isAsciiAlphaNumeric","isAsciiUpperHexDigit","isAsciiLowerHexDigit","toAsciiLowerCodePoint","toChar","toAsciiLowerChar","findNamedEntityTreeBranch","nodeIx","branchCount","lo","hi","mid","midCp","tokenQueue","returnState","charRefCode","tempBuff","lastStartTagName","consumedAfterSnapshot","active","_consume","_unconsume","_ensureHibernation","shift","chunk","isLastChunk","insertHtmlAtCurrentPos","endOfChunkHit","startCp","consumedCount","isMatch","patternLength","patternPos","patternCp","ct","_appendCharToCurrentCharacterToken","codePoints","_emitCodePoint","excess","inNode","HAS_DATA_FLAG","withSemicolon","_isCharacterReferenceInAttribute","nextCp","_emitSeveralCodePoints","_emitEOFToken","_emitChars","_reconsumeInState","_isTempBufferEqualToScriptString","_consumeSequenceIfMatch","_flushCodePointsConsumedAsCharacterReference","matchResult","_matchNamedCharacterReference","_isCharacterReferenceAttributeQuirk","_errOnNextCodePoint","isAsciiHexDigit","replacement","DATA","attrName","Uint16Array","lastGapPos","lastCharPos","gapStack","lastChunkWritten","bufferWaterline","_addGap","substring","_processSurrogate","_checkForProblematicCharacters","nodeName","childNodes","parentNode","createTextNode","newNode","referenceNode","templateElement","contentElement","doctypeNode","prevNode","recipientAttrsMap","getTextNodeContent","getCommentNodeContent","getDocumentTypeNodeName","getDocumentTypeNodePublicId","getDocumentTypeNodeSystemId","isTextNode","isCommentNode","isElementNode","sourceCodeLocation","endLocation","reduce","merged","optObj","originalMethods","overriddenMethods","_getOverriddenMethods","Ctor","__mixins","mixin","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","string","symbol","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","aa","ca","a","b","encodeURIComponent","da","Set","ea","fa","ha","add","ia","window","ja","ka","la","ma","v","d","e","f","g","acceptsBooleans","attributeName","attributeNamespace","propertyName","sanitizeURL","removeEmptyString","z","ra","sa","ta","pa","qa","oa","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","Symbol","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","Ma","Na","Oa","prepareStackTrace","set","Reflect","construct","l","h","k","includes","Pa","tag","render","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","Va","_valueTracker","get","getValue","setValue","stopTracking","Ua","Wa","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","ownerDocument","eb","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","valueOf","firstChild","removeChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","tb","menuitem","area","base","br","embed","hr","img","keygen","meta","param","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","addEventListener","removeEventListener","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","date","datetime","email","month","password","range","tel","time","url","week","me","ne","oe","listeners","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","Oe","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","defaultView","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","instance","listener","D","of","has","pf","qf","rf","random","sf","bind","passive","n","t","J","x","u","w","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","setTimeout","Gf","clearTimeout","Hf","Promise","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","context","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","eventTime","lane","payload","callback","dh","K","eh","fh","gh","q","r","y","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","ref","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","done","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","gi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","pi","qi","ri","destroy","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","message","digest","Li","Mi","console","Ni","WeakMap","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","suppressHydrationWarning","onclick","createElementNS","T","Hj","Ij","Jj","Kj","Lj","WeakSet","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","display","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","ceil","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","cache","pendingSuspenseBoundaries","dl","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","querySelectorAll","JSON","stringify","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","SuspenseList","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isSuspenseList","isValidElementType","getModuleId","typeOf","StyleToObject","hasIterator","len","__self","__source","jsx","jsxs","setState","forceUpdate","escape","_status","_result","Children","map","count","toArray","only","PureComponent","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","ctx","globalThis","self","global","restore","Prism","manual","disableWorkerMessageHandler","decode","markup","css","clike","js","Refractor","refract","register","grammar","languages","highlight","sup","util","alias","registered","listLanguages","encode","tokens","Token","env","stringifyAll","classes","hooks","run","refractor","abap","lookbehind","keyword","operator","punctuation","aliases","abnf","coreRules","greedy","inside","terminal","repetition","RegExp","rule","actionscript","ada","variable","agda","function","antlr4","command","annotation","constant","g4","apacheconf","regex","refractorSql","apex","keywords","insertClassName","classNameInside","sql","trigger","apl","statement","assignment","dfn","applescript","aql","identifier","refractorCpp","arduino","builtin","ino","arff","asciidoc","quoted","interpreted","table","specifiers","admonition","callout","macro","inline","italic","bold","copyFromAsciiDoc","o","rest","adoc","asm6502","directive","asmatmel","refractorCsharp","aspnet","csharp","javascript","autohotkey","important","autoit","avisynth","replacements","allinternals","argument","avs","avroIdl","avdl","bash","envVars","commandAfterHeredoc","insideString","environment","shebang","toBeCopied","shell","basic","batch","parameter","bbcode","shortcode","bicep","interpolation","expression","datatype","decorator","birb","metadata","refractorC","bison","delimiter","bnf","rbnf","brainfuck","pointer","decrement","branching","brightscript","bro","bsl","oscript","cfscript","cfc","chaiscript","cpp","cil","clojure","cmake","inserted","cobol","level","coffeescript","coffee","concurnas","langext","conc","coq","commentSource","punct","modName","generic","refractorRuby","crystal","ruby","args","expansion","nested","depthLog2","keywordKinds","keywordsToPattern","words","typeDeclarationKeywords","nonTypeKeywords","nonContextualKeywords","nestedRound","genericName","typeExpressionWithoutTuple","tupleElement","tuple","typeExpression","typeInside","regularString","verbatimString","regularStringOrCharacter","regularStringCharacterOrComment","roundExpression","attrTarget","attr","formatString","mInterpolationRound","mInterpolation","sInterpolationRound","sInterpolation","createInterpolationInside","interpolationRound","dotnet","cs","cshtml","commentLike","stringLike","round","square","curly","angle","tagAttrs","tagContent","tagRegion","block","razor","csp","none","hash","cssExtras","selectorInside","class","combinator","unit","hexcode","atrule","addInlined","addAttribute","csv","cypher","relationship","dart","packagePrefix","generics","dataweave","dax","measure","dhall","coord","PREFIXES","unchanged","refractorMarkupTemplating","django","filter","markupTemplating","buildPlaceholders","tokenizePlaceholders","jinja2","dnsZoneFile","docker","spaceAfterBackSlash","stringRule","commentRule","instruction","dockerfile","dot","ID","IDInside","withID","gv","ebnf","special","editorconfig","section","eiffel","ejs","eta","elixir","doc","atom","elm","hvariable","erb","erlang","refractorLua","etlua","lua","excelFormula","sheet","file","path","cell","row","factor","comment_inside","string_inside","regexp","combinators","arrToWordsRegExp","builtins","$false","firestoreSecurityRules","flow","fortran","fsharp","ftl","FTL_EXPR","gap","continuation","gcode","checksum","gdscript","gedcom","gherkin","tableRow","pystring","feature","scenario","outline","git","deleted","glsl","gml","gamemakerlanguage","gn","gni","goModule","go","graphql","description","markdown","scalar","validTokens","currentIndex","startToken","inputVariables","isTokenType","getToken","definitionEnd","findClosingBracket","addAlias","mutationEnd","varToken","close","stackHeight","groovy","haml","filters","all_filters","handlebars","brackets","hbs","haskell","hs","haxe","reification","hcl","heredoc","hlsl","hoon","hpkp","hsts","http","headerValueOf","uri","header","langs","httpLanguages","json","plain","suffixTypes","getSuffixPattern","contentType","suffix","ichigojam","icon","icuMessageFormat","stringPattern","argumentSource","nestedMessage","refractorHaskell","idris","idr","iecst","address","ignore","gitignore","hgignore","npmignore","inform7","substitution","verb","ini","io","adverb","conjunction","java","classNamePrefix","refractorJava","refractorJavadoclike","javadoc","codeLinePattern","memberReference","field","javadoclike","addSupport","javaDocLike","docLanguage","tokenName","docCommentSupport","hashbang","javastacktrace","exceptions","more","jexl","jolie","aggregates","redirects","jq","stringInterpolation","jsExtras","withId","imports","spread","arrow","dom","maybeClassNameTokens","jsTemplates","templateString","templateLiteralPattern","interpolationObject","interpolationPunctuationObject","interpolationPattern","createTemplate","getPlaceholder","counter","tokenizeWithHooks","tokenize","tokenizeInterpolationExpression","tempGrammar","tokenizeEmbedded","_tokens","placeholderCounter","placeholderMap","embeddedTokens","interpolationExpression","placeholders","walkTokens","s","before","middle","after","afterTokens","Boolean","supportedLanguages","typescript","ts","tsx","stringContent","findTemplateStrings","embedded","refractorTypescript","jsdoc","parameterPrefix","example","null","webmanifest","refractorJson","json5","jsonp","jsstacktrace","braces","stringifyToken","openedTags","notTagNorBrace","openedBraces","plainText","julia","keepalived","ip","keyman","kotlin","interpolationInside","kt","kts","kumir","nonId","wrapId","prolog","kum","kusto","latex","funcPattern","insideEqu","cdata","equation","headline","tex","refractorPhp","latte","php","markupLatte","less","refractorScheme","lilypond","schemeExpression","ly","liquid","empty","insideRaw","tagMatch","lisp","simple_form","primitive","marker","par","nestedPar","heading","interactive","defvar","defun","lambda","car","arg","varform","forms","arglist","sublist","elisp","emacs","livescript","llvm","exception","separator","domain","uuid","lolcode","magma","generator","makefile","inner","createInline","tableCell","tableLine","yaml","blockquote","strike","codeLang","codeBlock","cls","tagPattern","fromCodePoint","known","KNOWN_ENTITY_NAMES","plugins","autoloader","floor","loadLanguages","ele","getElementById","amp","lt","gt","quot","defineProperties","placeholderPattern","replaceFilter","tokenStack","includedCdataInside","def","mathml","svg","ssml","rss","matlab","maxscript","mel","flag","mermaid","mizar","mongodb","operators","operatorsSource","monkey","moonscript","moon","n1ql","n4js","n4jsd","nand2tetrisHdl","naniscript","expressionDef","params","getTextContent","define","nani","bracket","bracketsIndex","isBracketsBalanced","nasm","neon","literal","nevod","fields","quantifier","colon","nginx","nim","nix","antiquotation","nsis","objectivec","objc","ocaml","variant","opencl","openqasm","qasm","oz","parigp","pascal","asm","objectpascal","pascaligo","accum","pcaxis","tlist","px","peoplecode","pcode","perl","filehandle","phpExtras","package","string_interpolation","phpdoc","plsql","powerquery","pq","mscript","powershell","processing","promql","vectorMatching","protobuf","builtinTypes","psl","pug","each","branch","filter_pattern","puppet","pure","inlineLanguageRe","purebasic","pbfasm","purescript","purs","python","py","qml","jsString","jsComment","jsExpr","qore","qsharp","qualifiedName","interpolationExpr","qs","ellipsis","racket","rkt","specialEscape","rangeChar","groupName","backreference","anchor","group","alternation","rego","renpy","rpy","rip","roboconf","component","optional","wildcard","robotframework","createSection","extendecInside","docTag","testNameLike","testPropertyLike","documentation","variables","tasks","robot","percentExpression","symbolName","rust","multilineComment","sas","numericConstant","macroVariable","macroKeyword","format","equals","altformat","globalStatements","submitStatement","actionSets","casActions","datalines","sass","scala","SortedBNF","scss","refractorBash","shellSession","strings","user","smali","smalltalk","smarty","smartyPattern","smartyLiteralMode","sml","word","smlnj","solidity","sol","solutionFile","guid","soy","numberPattern","soyLitteralMode","refractorTurtle","sparql","rq","splunkSpl","sqf","squirrel","stan","higherOrderFunctions","constraint","stylus","swift","nil","omit","systemd","quotesSource","refractorT4Templating","t4Cs","t4","createT4","t4Templating","createBlock","contentAlias","insideLang","standard","refractorVbnet","t4Vb","refractorYaml","tap","fail","pass","pragma","bailout","plan","subtest","yamlish","tcl","textile","modifierRegex","parenthesesRegex","withModifier","modifierTokens","phrase","modifier","image","footnote","acronym","phraseInside","nestedPatterns","phraseInlineInside","phraseTableInside","toml","insertKey","tremor","extractor","troy","trickle","refractorJsx","tt2","turtle","trig","twig","at","typoscript","tsconfig","unrealscript","category","uscript","uorazor","query","pair","authority","port","vala","refractorBasic","vbnet","velocity","unparsed","verilog","vhdl","vim","visualBasic","vba","warpscript","wasm","webIdl","wiki","emphasis","nowiki","wolfram","blank","mathematica","wren","xeora","xeoracube","xmlDoc","insertDocComment","docComment","slashDocComment","tickDocComment","xojo","xquery","extension","anchorOrAlias","plainKey","createValuePattern","yml","yang","zig","IDENTIFIER","ALIGN","_self","uniqueId","plainTextGrammar","objId","deepClone","visited","getLanguage","parentElement","setLanguage","classList","currentScript","scripts","getElementsByTagName","isActive","defaultActivation","no","plaintext","txt","redef","insert","root","newToken","old","DFS","propertyType","highlightAll","highlightAllUnder","container","elements","highlightElement","insertHighlightedCode","highlightedCode","hasAttribute","Worker","worker","onmessage","evt","postMessage","immediateClose","tokenList","LinkedList","addAfter","head","matchGrammar","all","callbacks","matchedStr","matchPattern","lookbehindLength","startNode","startPos","rematch","patterns","cause","patternObj","currentNode","reach","removeCount","from","to","matchStr","removeFrom","removeRange","nestedRematch","highlightAutomaticallyCallback","readyState","requestAnimationFrame","WorkerGlobalScope","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","ReferenceError","__esModule","Constructor","_defineProperties","descriptor","protoProps","staticProps","getPrototypeOf","isNativeReflectConstruct","possibleConstructorReturn","Derived","hasNativeReflectConstruct","Super","NewTarget","superPropBase","_get","receiver","desc","_getPrototypeOf","setPrototypeOf","__proto__","subClass","superClass","sham","Proxy","_typeof","assertThisInitialized","_setPrototypeOf","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","toStringTag","_defineProperty","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread2","getOwnPropertyDescriptors","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","_arrayLikeToArray","arr2","_iterableToArray","iter","_unsupportedIterableToArray","minLen","_toConsumableArray","_arrayWithHoles","_nonIterableRest","_slicedToArray","_i","_s","_e","_arr","_n","_d","_classCallCheck","_createClass","_inherits","_isNativeReflectConstruct","_assertThisInitialized","_possibleConstructorReturn","_createSuper","_construct","Parent","Class","_wrapNativeSuper","_cache","fn","Wrapper","stringifyPosition","point","VFileMessage","place","origin","parts","fatal","ruleId","actual","expected","note","basename","ext","assertPath","seenNonSlash","firstNonSlashEnd","extIndex","dirname","unmatchedSlash","extname","startPart","startDot","preDotState","joined","segments","sep","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","normalizeString","proc","cwd","isUrl","fileURLOrPath","urlToPath","URL","protocol","hostname","pathname","third","decodeURIComponent","getPathFromURLPosix","VFile","buffer","history","stored","assertNonEmpty","assertPart","stem","encoding","part","_toArray","bail","middleware","called","parameters","fnExpectsCallback","unified","frozen","transformers","fns","pipeline","middlewareIndex","use","middelware","trough","attachers","freezeIndex","processor","assertUnfrozen","Compiler","freeze","attacher","transformer","POSITIVE_INFINITY","addPlugin","addList","addPreset","plugin","isPlainObj","vfile","assertParser","newable","assertCompiler","assertNode","compile","executor","reject","tree","runSync","complete","assertDone","process","processSync","destination","asyncName","looksLikeAVFile","includeImageAlt","one","chunkStart","combineExtensions","extensions","syntaxExtension","hook","right","constructs","existing","asciiAlpha","regexCheck","asciiDigit","asciiHexDigit","asciiAlphanumeric","asciiPunctuation","asciiAtext","asciiControl","markdownLineEndingOrSpace","markdownLineEnding","markdownSpace","unicodeWhitespace","unicodePunctuation","factorySpace","limit","enter","consume","exit","contentStart","attempt","contentInitial","lineStart","childFlow","childToken","lineStartOffset","continued","item","containerState","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","events","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","containerContinue","_tokenizer","flowContinue","writeToChild","eof","stream","sliceStream","defineSkip","seen","nok","disable","blankLine","partial","subtokenize","lineIndex","otherIndex","otherEvent","subevents","jumps","_isInFirstContentOfListItem","subcontent","_container","eventIndex","startPosition","startPositions","childEvents","gaps","breaks","_gfmTasklistFirstContentOfListItem","contentEnd","continuationConstruct","contentContinue","prefixed","sliceSerialize","initial","flowInitial","afterConstruct","resolver","resolveAll","createResolver","initializeFactory","notText","atBreak","resolveAllLineSuffixes","extraResolver","chunks","bufferIndex","tabs","_index","_bufferIndex","createTokenizer","initialize","columnStart","resolveAllConstructs","accountForPotentialSkip","constructFactory","addResult","onsuccessfulcheck","expandTabs","atTab","serializeChunks","main","startIndex","startBufferIndex","endIndex","endBufferIndex","sliceChunks","chunkIndex","onreturn","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleMapOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","store","resolveTo","thematicBreak","sequence","initialSize","atMarker","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","notBlank","furtherBlankLines","notInCurrentItem","indentConstruct","blockQuote","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","destinationEnclosedBefore","destinationRaw","destinationEnclosed","destinationEnclosedEscape","destinationRawEscape","factoryLabel","markerType","labelEscape","factoryTitle","atFirstTitleBreak","atTitleBreak","titleEscape","factoryWhitespace","normalizeIdentifier","labelAfter","titleConstruct","codeIndented","afterStartPrefix","afterPrefix","indentedContent","headingAtx","fenceOpenInside","headingBreak","setextUnderline","paragraph","closingSequence","closingSequenceEnd","htmlBlockNames","htmlRawNames","htmlFlow","declarationStart","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","basicSelfClosing","completeAttributeNameBefore","completeClosingTagAfter","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCharacterDataInside","continuationAtLineEnding","nextBlankConstruct","htmlContinueStart","htmlLineEnd","continuationRawEndTag","codeFenced","closingFenceConstruct","closingSequenceStart","sizeOpen","nonLazyLine","initialPrefix","sequenceOpen","infoOpen","openAfter","infoAfter","decodeNamedCharacterReference","characterReference","numeric","characterEscape","lineEnding","labelEnd","labelStart","_balanced","_inactive","balanced","afterLabelEnd","resourceConstruct","fullReferenceConstruct","collapsedReferenceConstruct","insideSpan","destinationAfter","between","afterLabel","labelStartImage","classifyCharacter","attention","attentionMarkers","_open","_close","openingSequence","nextEvents","movePoint","autolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","htmlText","declarationOpen","tagOpen","commentOpen","cdataOpen","commentStart","commentStartDash","commentClose","atLineEnding","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","labelStartLink","hardBreakEscape","codeText","tailExitIndex","headEnterIndex","resolveText","decodeNumericCharacterReference","characterEscapeOrReference","decodeString","$1","$2","hex","fromMarkdown","config","configure","transforms","canContainEols","opener","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","hardBreak","hardBreakTrailing","htmlFlowData","htmlTextData","listItem","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","resource","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","mdastExtensions","listStack","resume","setData","getData","prepareList","handler","defaultOnError","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","_spread","and","errorHandler","onExitError","depth","referenceType","ordered","compiler","postprocess","defaultConstructs","atCarriageReturn","endPosition","preprocess","combined","normalizeUri","skip","convert","castFactory","typeFactory","anyFactory","propsFactory","visitParents","visitor","reverse","parents","visit","subresult","grandparents","toResult","pointStart","pointEnd","clean","footnoteReference","safeId","footnoteOrder","footnoteCounts","reuseCounter","clobberPrefix","dataFootnoteRef","patch","applyData","revert","subtype","contents","listItemLoose","trimLines","trimLine","codePointAt","handlers","break","footnoteById","dangerous","imageReference","inlineCode","linkReference","loose","listLoose","firstRow","tableContent","cellIndex","cells","alignValue","footnoteDefinition","createState","allowDangerousHtml","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","footnoteBackLabel","unknownHandler","passThrough","augment","hName","hProperties","hChildren","defaultUnknownHandler","toHast","foot","listItems","referenceIndex","backReferences","backReference","dataFootnoteBackref","tailTail","dataFootnotes","footer","bridge","mutate","onContextLost","onContextRestored","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillRule","floodColor","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","textAnchor","textDecoration","textRendering","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","defaultAction","descent","diffuseConstant","direction","dur","divisor","dx","dy","edgeMode","editable","elevation","exponent","externalResourcesRequired","fill","filterRes","filterUnits","focusable","focusHighlight","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","observer","orient","orientation","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u1","u2","viewBox","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","zoomAndPan","htmlBase","svgBase","rehypeFilter","allowedElements","disallowedElements","allowElement","parent_","unwrapDisallowed","thing","dashes","hastToReact","padRight","padLeft","protocols","uriTransformer","first","tableElements","childrenToReact","childIndex","toReact","skipHtml","transformLinkUri","parentSchema","listDepth","components","React","ReactIs","linkTarget","transformImageUri","getInputElement","getElementsBeforeCount","textAlign","isHeader","sourcePos","rawSourcePos","sourcePosition","includeElementIndex","siblingCount","styleReplacer","parseStyle","deprecated","renderers","astPlugins","escapeHtml","allowNode","allowedTypes","disallowedTypes","includeNodeIndex","ReactMarkdown","deprecation","warn","remarkParse","remarkPlugins","remarkRehype","remarkRehypeOptions","rehypePlugins","hastNode","_extends","_objectSpread","propTypes","classNameCombinations","getClassNameCombinations","classNames","arrLength","powerSetPermutations","createStyleObject","elementStyle","stylesheet","nonTokenClassNames","classNamesCombinations","styleObject","createClassNameString","_ref","_ref$style","useInlineStyles","TagName","childrenCreator","childrenCount","createChildren","allStylesheetSelectors","startingClassName","_excluded","newLineRegex","AllLineNumbers","_ref2","codeString","codeStyle","_ref2$containerStyle","containerStyle","paddingRight","_ref2$numberStyle","numberStyle","startingLineNumber","getAllLineNumbers","getInlineLineNumber","lineNumber","inlineLineNumberStyle","assembleLineNumberStyles","lineNumberStyle","largestLineNumber","num","defaultLineNumberStyle","minWidth","userSelect","customLineNumberStyle","createLineElement","_ref3","showInlineLineNumbers","_ref3$lineProps","lineProps","_ref3$className","showLineNumbers","wrapLongLines","flattenCodeTree","newTree","processLines","codeTree","wrapLines","_ref4","lastLineBreakIndex","createWrappedLine","createUnwrappedLine","createLine","_loop","splitValue","newChild","_line","stringChild","lastLineInPreviousSpan","newElem","_line2","_line3","defaultRenderer","_ref5","isHighlightJs","astGenerator","highlightAuto","defaultAstGenerator","defaultStyle","highlighter","_ref7","_ref7$style","_ref7$customStyle","customStyle","_ref7$codeTagProps","codeTagProps","_ref7$useInlineStyles","_ref7$showLineNumbers","_ref7$showInlineLineN","_ref7$startingLineNum","lineNumberContainerStyle","_ref7$lineNumberStyle","_ref7$wrapLongLines","_ref7$lineProps","renderer","_ref7$PreTag","PreTag","_ref7$CodeTag","CodeTag","_ref7$code","allLineNumbers","defaultPreStyle","hljs","backgroundColor","generatorClassName","preProps","defaultCodeValue","_ref6","hasLanguage","checkForListedLanguage","getCodeTree","www","w2","w3","hasUnderscoreInLastSegment","hasUnderscoreInLastLastSegment","namedCharacterReference","punctuationContinuation","inPath","continuedPunctuation","parenAtPathEnd","pathEnd","trailingPunctuation","wwwAutolink","previousWww","previousUnbalanced","httpAutolink","previousHttp","t1","t2","slash1","slash2","emailAutolink","hasDot","hasDigitInLastSegment","gfmAtext","previousEmail","atext","dotContinuation","dashOrUnderscoreContinuation","afterDashOrUnderscore","gfmAutolinkLiteral","_gfmAutolinkLiteralWalkedInto","gfmFootnote","tokenizeDefinitionStart","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","tokenizeGfmFootnoteCall","tokenizePotentialGfmFootnoteCall","resolveToPotentialGfmFootnoteCall","gfmFootnotes","callStart","callData","callEscape","gfmStrikethrough","single","singleTilde","tokenizeStrikethrough","resolveAllStrikethrough","strikethrough","gfmTable","seenDelimiter","hasDash","tableHeaderCount","_align","cellDividerHead","inCellContentHead","cellBreakHead","originalInterrupt","tokenizeRowEnd","atDelimiterRowBreak","atRowEndHead","inWhitespaceHead","inCellContentEscapeHead","rowEndDelimiter","inWhitespaceDelimiter","inFillerDelimiter","afterLeftAlignment","afterRightAlignment","tableClose","nextPrefixedOrBlank","bodyStart","rowStartBody","cellDividerBody","inCellContentBody","cellBreakBody","tableBodyClose","atRowEndBody","inWhitespaceBody","inCellContentEscapeBody","inHead","inDelimiterRow","inRow","cellStart","seenCellInRow","tasklistCheck","spaceThenNonSpace","gfmTaskListItem","gfm","ccount","findAndReplace","ignored","pairs","toExpression","toFunction","toPairs","pairIndex","grandparent","change","matchObject","inConstruct","notInConstruct","gfmAutolinkLiteralFromMarkdown","findUrl","findEmail","literalAutolink","literalAutolinkEmail","enterLiteralAutolinkValue","literalAutolinkHttp","literalAutolinkWww","gfmAutolinkLiteralToMarkdown","unsafe","isCorrectDomain","closingParenIndex","openingParens","closingParens","trail","trailExec","splitUrl","association","options_","lineShift","move","containerFlow","safeOptions","indexStack","tracker","handle","bulletLastUsed","eol","indentLines","patternCompile","_compiled","patternInScope","listInScope","safe","positions","infos","sort","numerical","escapeBackslashes","whole","gfmFootnoteToMarkdown","peek","subexit","containerPhrasing","gfmStrikethroughFromMarkdown","gfmStrikethroughToMarkdown","handleDelete","serialize","defaultStringLength","toAlignment","gfmTableFromMarkdown","tableData","enterCell","tableHeader","gfmTableToMarkdown","padding","tableCellPadding","alignDelimiters","tablePipeAlign","stringLength","around","serializeData","handleTableRowAsData","handleTableAsData","handleTableCell","matrix","alignments","cellMatrix","sizeMatrix","longestCellByColumn","mostCellsPerRow","rowIndex","columnIndex","delimiterStart","delimiterEnd","markdownTable","listItemIndent","checkListItemIndent","bullet","bulletCurrent","checkBullet","incrementListMarker","gfmTaskListItemFromMarkdown","taskListCheckValueChecked","exitCheck","taskListCheckValueUnchecked","firstParaghraph","gfmTaskListItemToMarkdown","checkable","checkbox","gfmFromMarkdown","gfmFootnoteDefinition","gfmFootnoteDefinitionLabelString","gfmFootnoteCall","gfmFootnoteCallString","gfmToMarkdown","remarkGfm","buttonTypes","core","isProperties","finalResult","webNamespaces","ast","verbose","opening","closing","createLocation","quirksMode","indices","toPoint","toOffset","isFile","toH","react","_isVue","vue","vdom","hyperscript","subprop","zwitch","unknown","p5","htmlVoidElements","endTagToken","parseOptions","raw","stitches","locationTracker","resetTokenizer","createParse5Location","stitch","fromParse5","mock","toParse5","rehypeRaw","CopyButton","valueToCopy","clipboard","writeText","setFilter","typeFilter","setTypeFilter","expandedItems","setExpandedItems","expandedCategories","setExpandedCategories","handleExpandItem","newExpanded","handleCategoryClick","newExpandedCategory","filtered","typeFilteredItems","filterData","wait","immediate","timeout","debounce","coldarkDark","ReactDOM"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"static/js/main.12b83e58.js","mappings":"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AAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,IAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,KAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,M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AAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,KAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,KAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,KAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,KAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,KAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,MAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SAASnsF,EAAQ,OAC3BotF,EAAUjB,SA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+6E,QAAQ,EACRpB,MAAO,WAET4L,MAAO,CACLvlF,QAASm7E,OACP,YAAY9xE,OACV,MACA,CAEE67E,EACA,wBAAwB77E,OAAS67E,EACjC,6CAA6C77E,OAC3C27E,EACA,MAAM37E,OACN67E,EACF,QAAQ77E,OACN67E,EACA,cAAc77E,OACd27E,EACA,YAAY37E,OACd,SAASA,OACP67E,EACA,cAAc77E,OACd27E,EACA,MAAM37E,OACN67E,EACA,gBAAgB77E,OAChB67E,EACF,QAAQ77E,OACN27E,EACA,MAAM37E,OACN67E,EACA,MACA,UAAU77E,OACV,MACA,WAAWA,OACX27E,EACA,KACA,MAAM37E,OACN67E,EACA,MACFv2F,KAAK,KACP,KAEJ6rF,YAAY,EACZO,QAAQ,EACRC,OAAQ,CACNP,QAAS,QACT+D,OAAQoG,IAGZxG,UAAW,CACTp+E,QACE,wKACFw6E,YAAY,EACZO,QAAQ,EACRC,OAAQ,CACNP,QAAS,QACT+D,OAAQoG,IAGZ75F,MAAO,CACLiV,QAASm7E,OACP,YAAY9xE,OACV,kBAAkBA,OAClB,MACA,QAAQA,OACR,IACA27E,EALF,OAQE,eAAe37E,OACf,IACA27E,EACA,IACAC,EACA,IACAE,EACAH,EACA,MAEJxK,YAAY,EACZO,QAAQ,EACRpB,MAAO,WACPqB,OAAQ,CACNP,QAAS,KACT+D,OAAQoG,IAGZ,oBAAqB,CACnB5kF,QAAS,iBACTw6E,YAAY,EACZb,MAAO,cAGXhB,EAAMY,UAAUiM,MAAQ7M,EAAMY,UAAUsL,MACzC,CA7MA,CA6MElM,EACL,CAtNAxtF,EAAOC,QAAUy5F,EACjBA,EAAOj1F,YAAc,SACrBi1F,EAAOjK,QAAU,CAAC,wCCClB,SAAS6K,EAAI9M,IAWV,SAAWA,GAKV,SAAS5tF,EAAMse,GACb,OAAO8xE,OACL,UAAU9xE,OAAS,MAAQA,EAAS,IAAM,cAAcA,OACxD,IAEJ,CACAsvE,EAAMY,UAAUkM,IAAM,CACpBrH,UAAW,CACTp+E,QACE,6ZACFw6E,YAAY,EACZb,MAAO,YAET90E,OAAQ,CACN7E,QAASjV,EAAM,qBAAqBse,QACpCmxE,YAAY,GAEdkL,KAAM,CACJ1lF,QAASjV,EAAM,SAASse,QACxBmxE,YAAY,EACZb,MAAO,WAETn/E,MAAO,CACLwF,QAASjV,EAAM,oBAAoBse,QACnCmxE,YAAY,EACZb,MAAO,UAETgM,KAAM,CACJ3lF,QAASjV,EAAM,iCAAiCse,QAChDmxE,YAAY,EACZb,MAAO,UAETvzD,KAAM,CACJpmB,QAASjV,EACP,kCAAkCse,OAChC,IACA,cAAcA,OACd,IACA,0DAA0DA,QAE9DmxE,YAAY,EACZb,MAAO,MACPqB,OAAQ,CACN2D,UAAW,OAGflE,QAAS,CACP,CACEz6E,QAASjV,EAAM,mBAAmBse,QAClCmxE,YAAY,EACZb,MAAO,UAET,CACE35E,QAASjV,EAAM,YAAYse,QAC3BmxE,YAAY,EACZb,MAAO,SAGXgB,YAAa,IAEhB,CAjEA,CAiEEhC,EACL,CAhFAxtF,EAAOC,QAAUq6F,EACjBA,EAAI71F,YAAc,MAClB61F,EAAI7K,QAAU,kCCCd,SAASgL,EAAUjN,IAChB,SAAWA,GACV,IACIkN,EADA13C,EAAS,gDAEbwqC,EAAMY,UAAUP,IAAIltF,SAAW,CAC7BkU,QAAS24E,EAAMY,UAAUP,IAAIltF,SAASkU,QACtCw6E,YAAY,EACZQ,OAAS6K,EAAiB,CACxB,iBACE,+DACF,eAAgB,UAChBC,MAAO,WACPp5F,GAAI,UACJiE,UAAW,CACTqP,QAASm7E,OAAO,oBAAsBhtC,EAAO9kC,OAAS,SACtD0xE,QAAQ,EACRC,OAAQ,CACNL,YAAa,UACb,mBAAoB,CAClB36E,QAAS,aACTw6E,YAAY,EACZb,MAAO,WAETtiE,UAAW,CACTrX,QAAS,4CACTw6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,QAGjB,YAAa,CACX36E,QAAS,oCACTw6E,YAAY,GAEd,aAAc,CACZrsC,EACA,CACEnuC,QAAS,4CACTw6E,YAAY,IAGhBE,SAAU,cAGd,OAAQ,CACN,CACE16E,QAAS,kDACTw6E,YAAY,EACZQ,OAAQ,CACN5rF,OAAQ,SACRsrF,SAAU,SAGd,CACE16E,QAAS,gCACTw6E,YAAY,IAGhBuL,WAAY,cAIZpL,YAAa,UAGjBhC,EAAMY,UAAUP,IAAY,OAAEgC,OAAO,8BAA8BA,OACjE6K,EACFlN,EAAMY,UAAUl/C,aAAa,MAAO,WAAY,CAC9CkhD,SAAU,CACRv7E,QACE,8EACFw6E,YAAY,KAGhB,IAAIwL,EAAO,CACThmF,QAAS,+BACTw6E,YAAY,GAEVprF,EAAS,CACX4Q,QAAS,uCACTw6E,YAAY,GAEd7B,EAAMY,UAAUl/C,aAAa,MAAO,WAAY,CAC9CqgD,SAAU,CACR16E,QAAS,qBACTw6E,YAAY,GAIdyL,QAAS,CACPjmF,QAAS,qBACT25E,MAAO,SAETt2E,MAAO,CACL,CACErD,QACE,o6CACFw6E,YAAY,GAEd,CACEx6E,QACE,4JACFg7E,OAAQ,CACNgL,KAAMA,EACN52F,OAAQA,EACRqsF,SAAU,eACVd,YAAa,WAKnB5vE,OAAQ,kBACRi7E,KAAMA,EACN52F,OAAQA,GAEX,CAlHA,CAkHEupF,EACL,CAvHAxtF,EAAOC,QAAUw6F,EACjBA,EAAUh2F,YAAc,YACxBg2F,EAAUhL,QAAU,kCCCpB,SAAS5B,EAAIL,IACV,SAAWA,GACV,IAAIxqC,EACF,8EACFwqC,EAAMY,UAAUP,IAAM,CACpB/uE,QAAS,mBACTi8E,OAAQ,CACNlmF,QAAS,iDACTg7E,OAAQ,CACNI,KAAM,WACN,6BAA8B,CAC5Bp7E,QACE,4FACFw6E,YAAY,EACZb,MAAO,YAETc,QAAS,CACPz6E,QAAS,yCACTw6E,YAAY,KAIlB9uB,IAAK,CAEH1rD,QAASm7E,OACP,eACEhtC,EAAO9kC,OACP,IACA,8BAA8BA,OAC9B,OACF,KAEF0xE,QAAQ,EACRC,OAAQ,CACNS,SAAU,QACVd,YAAa,UACbxsC,OAAQ,CACNnuC,QAASm7E,OAAO,IAAMhtC,EAAO9kC,OAAS,KACtCswE,MAAO,SAIb7tF,SAAU,CACRkU,QAASm7E,OACP,qDACEhtC,EAAO9kC,OACP,iBAEJmxE,YAAY,GAEdrsC,OAAQ,CACNnuC,QAASmuC,EACT4sC,QAAQ,GAEVjtF,SAAU,CACRkS,QACE,oFACFw6E,YAAY,GAEdmE,UAAW,gBACXlD,SAAU,CACRz7E,QAAS,kCACTw6E,YAAY,GAEdG,YAAa,aAEfhC,EAAMY,UAAUP,IAAY,OAAEgC,OAAOiD,KAAOtF,EAAMY,UAAUP,IAC5D,IAAID,EAASJ,EAAMY,UAAUR,OACzBA,IACFA,EAAOxlC,IAAI4yC,WAAW,QAAS,OAC/BpN,EAAOxlC,IAAI6yC,aAAa,QAAS,OAEpC,CAvEA,CAuEEzN,EACL,CA5EAxtF,EAAOC,QAAU4tF,EACjBA,EAAIppF,YAAc,MAClBopF,EAAI4B,QAAU,iCCCd,SAASyL,EAAI1N,GAEXA,EAAMY,UAAU8M,IAAM,CACpBt7F,MAAO,iCACP4vF,YAAa,IAEjB,CATAxvF,EAAOC,QAAUi7F,EACjBA,EAAIz2F,YAAc,MAClBy2F,EAAIzL,QAAU,kCCCd,SAAS0L,EAAO3N,GACdA,EAAMY,UAAU+M,OAAS,CAEvBr8E,QAAS,SACTkkC,OAAQ,CACNnuC,QAAS,8CACT+6E,QAAQ,GAEV,aAAc,CACZ/6E,QAAS,8CACTw6E,YAAY,EACZO,QAAQ,GAEVwL,aAAc,CACZvmF,QACE,kFACFw6E,YAAY,EACZO,QAAQ,EACRpB,MAAO,YAETmD,WAAY,CACV98E,QAAS,oBACT+6E,QAAQ,GAEVQ,SAAU,QAEVd,QACE,4YACFgB,SAAU,mBACVjsF,QAAS,2BACTJ,OAAQ,uDAERsrF,SAAU,8CACVC,YAAa,eAEjB,CAtCAxvF,EAAOC,QAAUk7F,EACjBA,EAAO12F,YAAc,SACrB02F,EAAO1L,QAAU,kCCCjB,SAAS3qC,EAAE0oC,GACTA,EAAMY,UAAUtpC,EAAI0oC,EAAMY,UAAUluF,OAAO,QAAS,CAClD4e,QAAS,CACP,CAEEjK,QAAS,WACT+6E,QAAQ,GAEV,CACE/6E,QAASm7E,OACP,YAAY9xE,OACV,MACA,CAGE,0DAA0DA,OAC1D,SAASA,OACT,mBAAmBA,QACnB1a,KAAK,KACP,KAEJ6rF,YAAY,EACZO,QAAQ,IAGZ5sC,OAAQ,CACN,CACEnuC,QAASm7E,OACP,CAEE,qCAAqC9xE,OACrC,6DAA6DA,OAG7D,+BAA+BA,OAE/B,qBAAqBA,OACrB,0CAA0CA,QAC1C1a,KAAK,KACP,KAEFosF,QAAQ,GAEV,CACE/6E,QAAS,+BACT+6E,QAAQ,EACRpB,MAAO,iBAIXc,QACE,u0BACFrrF,OAAQ,CAGN,2EACA,CACE4Q,QACE,2FACFw6E,YAAY,IAGhBE,SACE,sHAEJ/B,EAAMY,UAAUl/C,aAAa,IAAK,SAAU,CAG1Cv3B,KAAM,6BAER61E,EAAMY,UAAUl/C,aAAa,IAAK,UAAW,CAC3CvsC,SAAU,WAEZ6qF,EAAMY,UAAUl/C,aAAa,IAAK,WAAY,CAC5Cg/C,SAAU,CAERr5E,QACE,sNACF25E,MAAO,aAGb,CApFAxuF,EAAOC,QAAU6kD,EACjBA,EAAErgD,YAAc,IAChBqgD,EAAE2qC,QAAU,iCCCZ,SAAS4L,EAAK7N,IACX,SAAWA,GACV,IAAIwD,EAAW,CACb,2BACA,8WAEEsK,EAAgB,uDACjBp9E,OACC1c,EAAY,CACdqT,QAASm7E,OAAOsL,EAAgB,gCAAgCp9E,QAChEmxE,YAAY,EACZQ,OAAQ,CACN3jE,UAAW,CACTrX,QAAS,2CACTg7E,OAAQ,CACNL,YAAa,SAKrBhC,EAAMY,UAAUiN,KAAO7N,EAAMY,UAAUluF,OAAO,QAAS,CACrD,aAAc,CACZsB,EACA,CAGEqT,QAASm7E,OACPsL,EAAgB,+BAA+Bp9E,QAEjDmxE,YAAY,EACZQ,OAAQruF,EAAUquF,SAGtBP,QAAS0B,EACTzB,SACE,mFAEJ/B,EAAMY,UAAUl/C,aAAa,OAAQ,SAAU,CAC7C,iBAAkB,CAChBr6B,QACE,mEACF+6E,QAAQ,EACRC,OAAQ,CACNkF,cAAe,CACblgF,QACE,6DACFw6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,aACbwF,WAAY,CACVngF,QAAS,UACTg7E,OAAQrC,EAAMY,UAAUiN,QAI9Br4C,OAAQ,YAGZA,YAAQ5/C,IAEVoqF,EAAMY,UAAUl/C,aAAa,OAAQ,aAAc,CACjDkmD,SAAU,CACRvgF,QAAS,OACT25E,MAAO,cAGXhB,EAAMY,UAAUl/C,aAAa,OAAQ,aAAc,CACjDqsD,SAAU,CACR1mF,QACE,sEACFg7E,OAAQ,CACN,aAAcruF,EACd8tF,QAAS0B,EACTxB,YAAa,YACbD,SAAU,WAIjB,CA7EA,CA6EE/B,EACL,CAlFAxtF,EAAOC,QAAUo7F,EACjBA,EAAK52F,YAAc,OACnB42F,EAAK5L,QAAU,kCCCf,SAAS+L,EAAUhO,IAChB,SAAWA,GACVA,EAAMY,UAAUoN,UAAY,CAC1Bj7B,IAAK,iDACL59D,SAAU,CACRkS,QAAS,wDACT+6E,QAAQ,GAEV5sC,OAAQ,CACNnuC,QAAS,qCACT+6E,QAAQ,GAEV,YACE,8DACF7vB,KAAM,CACJlrD,QAAS,eACT+6E,QAAQ,GAEV9wE,QAAS,CACP,CACEjK,QAAS,kCACTw6E,YAAY,EACZO,QAAQ,GAEV,CACE/6E,QAAS,mBACTw6E,YAAY,EACZO,QAAQ,IAGZiB,MAAO,CACLh8E,QAAS,iCACT+6E,QAAQ,GAEVN,QACE,0GACFgB,SAAU,wBACVrsF,OAAQ,qCACRurF,YAAa,iBACbD,SAAU,wCACVlrF,QAAS,qBAEZ,CAzCA,CAyCEmpF,EACL,CA9CAxtF,EAAOC,QAAUu7F,EACjBA,EAAU/2F,YAAc,YACxB+2F,EAAU/L,QAAU,kCCCpB,SAASgM,EAAIjO,GACXA,EAAMY,UAAUqN,IAAM,CACpB38E,QAAS,CACPjK,QAAS,8CACTw6E,YAAY,GAEd,aAAc,CACZx6E,QACE,yEACF25E,MAAO,UAETkN,QAAS,CACP7mF,QAAS,wBACT25E,MAAO,YAETxrC,OAAQ,CACNnuC,QAAS,sBACT+6E,QAAQ,GAEVU,SACE,ywFACFhB,QACE,6EACFjrF,QAAS,CACPwQ,QAAS,2BACT25E,MAAO,YAETvqF,OAAQ,4BACRsrF,SAAU,6DACVC,YAAa,iBAEjB,CAlCAxvF,EAAOC,QAAUw7F,EACjBA,EAAIh3F,YAAc,MAClBg3F,EAAIhM,QAAU,kCCCd,SAASkM,EAAMnO,GAGbA,EAAMY,UAAUuN,MAAQ,CAItB78E,QACE,yEACFkkC,OAAQ,CACNnuC,QAAS,4DACT+6E,QAAQ,EACRC,OAAQ,CACNkF,cAAe,CACblgF,QAAS,eACTg7E,OAAQ,CACNmF,WAAY,CACVngF,QAAS,wBACTw6E,YAAY,EACZb,MAAO,iBACPqB,OAAQ,MAEVL,YAAa,cAKrBnhF,MAAO,CACLwG,QAAS,UACT+6E,QAAQ,GAEVrvB,IAAK,CAEH1rD,QACE,yFACF+6E,QAAQ,GAEVd,IAAK,CAEHj6E,QAAS,yCACT+6E,QAAQ,EACRC,OAAQ,CACNS,SAAU,OACVf,SAAU,KACVa,SAAU,YAGdoK,KAAM,CAEJ3lF,QAAS,4BACTg7E,OAAQ,CACNS,SAAU,SACVf,SAAU,IACVtrF,OAAQ,mBAIZqrF,QACE,qFACFwC,QAAS,oBACTztF,QAAS,qBACTJ,OACE,gFACFsrF,SACE,qGACFC,YAAa,qBAEb,aAAc,gBAEhBhC,EAAMY,UAAUuN,MAAM34C,OAAO6sC,OAAOkF,cAAclF,OAAOmF,WAAWnF,OAClErC,EAAMY,UAAUuN,KACpB,CA1EA37F,EAAOC,QAAU07F,EACjBA,EAAMl3F,YAAc,QACpBk3F,EAAMlM,QAAU,kCCChB,SAASruE,EAAKosE,IACX,SAAWA,GACVA,EAAMY,UAAUhtE,KAAO,CACrBw6E,MAAO,CAEL,4BACA,YACA,YAQJ,IAAIC,EAAW,CACb,eAAgB,IAChB,gBAAiB,IACjB,gBAAiB,IACjB,iBAAkB,IAClBC,UAAW,IACX16E,KAAM,KAERhjB,OAAOkkC,KAAKu5D,GAAUr5D,SAAQ,SAAU/iC,GACtC,IAAIib,EAASmhF,EAASp8F,GAClB+uF,EAAQ,GACP,QAAQlpF,KAAK7F,IAEhB+uF,EAAM/sF,KAAK,MAAML,KAAK3B,GAAM,IAEjB,SAATA,GACF+uF,EAAM/sF,KAAK,QAEb+rF,EAAMY,UAAUhtE,KAAK3hB,GAAQ,CAC3BoV,QAASm7E,OACP,QAAUt1E,EAAS,iCACnB,KAEF8zE,MAAOA,EACPqB,OAAQ,CACN9xE,KAAM,CACJlJ,QAAS,+BACTw6E,YAAY,GAEd30E,OAAQ,CACN7F,QAAS,SACT25E,MAAO,MAAMptF,KAAK3B,GAAM,KAIhC,IACArB,OAAOK,eAAe+uF,EAAMY,UAAUhtE,KAAM,WAAY,CACtDxhB,MAAOi8F,GAEV,CArDA,CAqDErO,EACL,CA1DAxtF,EAAOC,QAAUmhB,EACjBA,EAAK3c,YAAc,OACnB2c,EAAKquE,QAAU,sCCHf,IAAIsM,EAA4Bh6F,EAAQ,KAIxC,SAASi6F,EAAOxO,GACdA,EAAMU,SAAS6N,GAGd,SAAWvO,GACVA,EAAMY,UAAU4N,OAAS,CACvBl9E,QAAS,mBACTspC,IAAK,CACHvzC,QAAS,oBACTw6E,YAAY,EACZb,MAAO,WAET+G,UAAW,CACT1gF,QAAS,4BACT25E,MAAO,eAETxrC,OAAQ,CACNnuC,QAAS,kCACT+6E,QAAQ,GAEVqM,OAAQ,CACNpnF,QAAS,UACTw6E,YAAY,EACZb,MAAO,YAETlpF,KAAM,CACJuP,QAAS,mCACTw6E,YAAY,EACZb,MAAO,YAET8B,SAAU,wBACVhB,QACE,gFACFC,SAAU,oDACVtrF,OAAQ,oBACRI,QAAS,2BACT+rF,SAAU,UACVZ,YAAa,iBAEf,IAAI36E,EAAU,kDACVqnF,EAAmB1O,EAAMY,UAAU,qBACvCZ,EAAMyB,MAAM3qC,IAAI,mBAAmB,SAAUwqC,GAC3CoN,EAAiBC,kBAAkBrN,EAAK,SAAUj6E,EACpD,IACA24E,EAAMyB,MAAM3qC,IAAI,kBAAkB,SAAUwqC,GAC1CoN,EAAiBE,qBAAqBtN,EAAK,SAC7C,IACAtB,EAAMY,UAAUiO,OAAS7O,EAAMY,UAAU4N,OACzCxO,EAAMyB,MAAM3qC,IAAI,mBAAmB,SAAUwqC,GAC3CoN,EAAiBC,kBAAkBrN,EAAK,SAAUj6E,EACpD,IACA24E,EAAMyB,MAAM3qC,IAAI,kBAAkB,SAAUwqC,GAC1CoN,EAAiBE,qBAAqBtN,EAAK,SAC7C,GACD,CAlDA,CAkDEtB,EACL,CA1DAxtF,EAAOC,QAAU+7F,EACjBA,EAAOv3F,YAAc,SACrBu3F,EAAOvM,QAAU,CAAC,yCCClB,SAAS6M,EAAY9O,GACnBA,EAAMY,UAAU,iBAAmB,CACjCtvE,QAAS,MACTkkC,OAAQ,CACNnuC,QAAS,wBACT+6E,QAAQ,GAEVQ,SAAU,CACR,CACEv7E,QAAS,wBACTw6E,YAAY,GAEd,CACEx6E,QAAS,kBACTw6E,YAAY,IAGhBC,QAAS,qCACTqL,MAAO,CAEL9lF,QAAS,gCACTw6E,YAAY,EACZb,MAAO,WAET9sF,KAAM,CAEJmT,QACE,2XACFw6E,YAAY,EACZb,MAAO,WAETgB,YAAa,QAEfhC,EAAMY,UAAU,YAAcZ,EAAMY,UAAU,gBAChD,CArCApuF,EAAOC,QAAUq8F,EACjBA,EAAY73F,YAAc,cAC1B63F,EAAY7M,QAAU,kCCCtB,SAAS8M,EAAO/O,IACb,SAAWA,GAGV,IAAIgP,EACF,sDAAsDt+E,OACpDpU,EAAQ,0CAA0CoU,OAAOzY,QAC3D,YACA,WACE,OAAO+2F,CACT,IAEEx5C,EACF,0EACG9kC,OACDoC,EAAS,8CAA8CpC,OAAOzY,QAChE,UACA,WACE,OAAOu9C,CACT,IAEEy5C,EAAa,CACf5nF,QAASm7E,OAAOhtC,GAChB4sC,QAAQ,GAEN8M,EAAc,CAChB7nF,QAAS,gBACTw6E,YAAY,EACZO,QAAQ,GAOV,SAASlxE,EAAGR,EAAQuzC,GAQlB,OAPAvzC,EAASA,EACNzY,QAAQ,UAAU,WACjB,OAAO6a,CACT,IACC7a,QAAQ,SAAS,WAChB,OAAOqE,CACT,IACKkmF,OAAO9xE,EAAQuzC,EACxB,CACA+7B,EAAMY,UAAUmO,OAAS,CACvBI,YAAa,CACX9nF,QACE,kNACFw6E,YAAY,EACZO,QAAQ,EACRC,OAAQ,CACNrwF,QAAS,CACPqV,QAAS6J,EACP,gDAAgDR,OAChD,KAEFmxE,YAAY,EACZO,QAAQ,EACRC,OAAQ,CACNltF,SAAU,CACRkS,QAAS,iBACTw6E,YAAY,GAEdrsC,OAAQ,CACNy5C,EACA,CACE5nF,QAAS,8BACTw6E,YAAY,IAGhBE,SAAU,OACVC,YAAa,MAGjBF,QAAS,CACP,CAEEz6E,QAAS6J,EACP,iEACGR,OACH,KAEFmxE,YAAY,EACZO,QAAQ,GAEV,CAEE/6E,QAAS6J,EACP,iEACGR,OACH,KAEFmxE,YAAY,EACZO,QAAQ,GAEV,CAEE/6E,QAAS6J,EAAG,oBAAoBR,OAAQ,KACxCmxE,YAAY,EACZO,QAAQ,GAEV,CACE/6E,QAAS,OACT+6E,QAAQ,IAGZ9wE,QAAS49E,EACT15C,OAAQy5C,EACRrM,SAAU,2BACVb,SAAU,SAGdzwE,QAAS49E,GAEXlP,EAAMY,UAAUwO,WAAapP,EAAMY,UAAUmO,MAC9C,CAnHA,CAmHE/O,EACL,CAxHAxtF,EAAOC,QAAUs8F,EACjBA,EAAO93F,YAAc,SACrB83F,EAAO9M,QAAU,CAAC,6CCClB,SAASoN,EAAIrP,IAEV,SAAWA,GACV,IAAIsP,EACF,MACA,CAEE,uCAAuC5+E,OACvC,4BAA4BA,OAC5B,gCAAgCA,OAChC,+EACGA,QACH1a,KAAK,KACP,IACEu5F,EAAW,CACbnP,OAAQ,CACN/4E,QAAS,oBACTw6E,YAAY,EACZb,MAAO,CAAC,kBAAmB,gBAAiB,gBAC5CqB,OAAQrC,EAAMY,UAAUR,SAQ5B,SAASoP,EAAO9+E,EAAQuzC,GACtB,OAAOu+B,OACL9xE,EAAOzY,QAAQ,SAAS,WACtB,OAAOq3F,CACT,IACArrC,EAEJ,CACA+7B,EAAMY,UAAUyO,IAAM,CACpB/9E,QAAS,CACPjK,QAAS,gCACT+6E,QAAQ,GAEV,aAAc,CACZ/6E,QAASmoF,EACP,+CAA+C9+E,OAC/C,KAEFmxE,YAAY,EACZO,QAAQ,EACRpB,MAAO,aACPqB,OAAQkN,GAEV,aAAc,CACZloF,QAASmoF,EAAO,oBAAoB9+E,QACpCmxE,YAAY,EACZO,QAAQ,EACRC,OAAQkN,GAEV,YAAa,CACXloF,QAASmoF,EAAO,qCAAqC9+E,QACrDmxE,YAAY,EACZO,QAAQ,EACRC,OAAQkN,GAEVzN,QAAS,mDACT,gBAAiB,CACfz6E,QAAS,uDACTw6E,YAAY,EACZb,MAAO,WAET5rF,KAAM,CACJiS,QAASmoF,EAAO,+BAA+B9+E,QAC/CmxE,YAAY,EACZO,QAAQ,EACRC,OAAQkN,GAEVxN,SAAU,aACVC,YAAa,cAEfhC,EAAMY,UAAU6O,GAAKzP,EAAMY,UAAUyO,GACtC,CA5EA,CA4EErP,EACL,CAlFAxtF,EAAOC,QAAU48F,EACjBA,EAAIp4F,YAAc,MAClBo4F,EAAIpN,QAAU,CAAC,qCCCf,SAASyN,EAAK1P,GACZA,EAAMY,UAAU8O,KAAO,CACrBp+E,QAAS,mBACTkkC,OAAQ,CACNnuC,QAAS,0BACT+6E,QAAQ,GAEVuN,QAAS,CACPtoF,QAAS,gBACT+6E,QAAQ,EACRpB,MAAO,cAETxzE,WAAY,CACVnG,QAAS,iDACTw6E,YAAY,EACZb,MAAO,CAAC,OAAQ,YAElByB,KAAM,mCACNT,YAAa,6BACbD,SAAU,WAEd,CAxBAvvF,EAAOC,QAAUi9F,EACjBA,EAAKz4F,YAAc,OACnBy4F,EAAKzN,QAAU,kCCCf,SAAS2N,EAAa5P,GACpBA,EAAMY,UAAUgP,aAAe,CAE7Bt+E,QAAS,SACTu+E,QAAS,CACPxoF,QAAS,mBACTw6E,YAAY,EACZb,MAAO,WACPqB,OAAQ,CACNgB,MAAO,oBAEPtB,SAAU,oBACVC,YAAa,cAGjBtwF,IAAK,CACH2V,QAAS,+BACTw6E,YAAY,EACZb,MAAO,aAET5uF,MAAO,CACLiV,QAAS,MACT25E,MAAO,aACPqB,OAAQ,CACNL,YAAa,OAIrB,CA/BAxvF,EAAOC,QAAUm9F,EACjBA,EAAa34F,YAAc,eAC3B24F,EAAa3N,QAAU,kCCCvB,SAAS6N,EAAO9P,GACdA,EAAMY,UAAUkP,OAAS,CACvBx+E,QAAS,OACTkkC,OAAQ,CAEN,CACEnuC,QAAS,0BACT+6E,QAAQ,GAEV,CACE/6E,QAAS,0BACT+6E,QAAQ,GAEV,CACE/6E,QAAS,4CACT+6E,QAAQ,IAIZj4E,KAAM,sBACN23E,QACE,+YACFjrF,QAAS,sBAET,aAAc,qBACdJ,OAAQ,CAEN,mCACA,oFAEFurF,YAAa,+CACbD,SAAU,+CAEd,CApCAvvF,EAAOC,QAAUq9F,EACjBA,EAAO74F,YAAc,SACrB64F,EAAO7N,QAAU,sCCHjB,IAAIsM,EAA4Bh6F,EAAQ,KAIxC,SAASw7F,EAAI/P,GACXA,EAAMU,SAAS6N,GACd,SAAWvO,GACVA,EAAMY,UAAUmP,IAAM,CACpBhI,UAAW,CACT1gF,QAAS,qBACT25E,MAAO,eAET1vE,QAAS,YACT,sBAAuB,CACrBjK,QAAS,UACTg7E,OAAQrC,EAAMY,UAAUkF,aAG5B9F,EAAMyB,MAAM3qC,IAAI,mBAAmB,SAAUwqC,GAE3CtB,EAAMY,UAAU,qBAAqB+N,kBACnCrN,EACA,MAHe,qBAMnB,IACAtB,EAAMyB,MAAM3qC,IAAI,kBAAkB,SAAUwqC,GAC1CtB,EAAMY,UAAU,qBAAqBgO,qBAAqBtN,EAAK,MACjE,IACAtB,EAAMY,UAAUoP,IAAMhQ,EAAMY,UAAUmP,GACvC,CAxBA,CAwBE/P,EACL,CA9BAxtF,EAAOC,QAAUs9F,EACjBA,EAAI94F,YAAc,MAClB84F,EAAI9N,QAAU,CAAC,sCCCf,SAASgO,EAAOjQ,GACdA,EAAMY,UAAUqP,OAAS,CACvBC,IAAK,CACH7oF,QACE,6FACFg7E,OAAQ,CACNrqF,UAAW,QACXw9C,OAAQ,gBAGZlkC,QAAS,CACPjK,QAAS,MACT+6E,QAAQ,GAGViB,MAAO,CACLh8E,QACE,6LACF+6E,QAAQ,GAEV5sC,OAAQ,CACN,CAEEnuC,QACE,iNACF+6E,QAAQ,EACRC,OAAQ,CAER,GAEF,CACEh7E,QAAS,sBACT+6E,QAAQ,EACRC,OAAQ,CAER,GAEF,CAEEh7E,QAAS,gDACT+6E,QAAQ,EACRC,OAAQ,CAER,IAGJ8N,KAAM,CAEJ9oF,QAAS,eACTw6E,YAAY,EACZb,MAAO,UAETxuF,OAAQ,CACN6U,QAAS,eACT25E,MAAO,cAGT,YAAa,iBACbqF,SAAU,CAERh/E,QAAS,eACTw6E,YAAY,EACZb,MAAO,YAEThpF,UAAW,CACTqP,QAAS,OACT25E,MAAO,YAET8B,SAAU,sDACVrsF,OAAQ,kEACRqrF,QACE,kNACFjrF,QAAS,yBACTkrF,SAAU,CACR,2FACA,CAEE16E,QAAS,eACTw6E,YAAY,GAEd,CAEEx6E,QAAS,eACTw6E,YAAY,IAGhBG,YAAa,uBAEfhC,EAAMY,UAAUqP,OAAOz6C,OAAOxgB,SAAQ,SAAUqwD,GAC9CA,EAAEhD,OAAS,CACTkF,cAAe,CACblgF,QAAS,aACTg7E,OAAQ,CACN0F,UAAW,CACT1gF,QAAS,WACT25E,MAAO,eAETsE,KAAMtF,EAAMY,UAAUqP,SAI9B,GACF,CAzGAz9F,EAAOC,QAAUw9F,EACjBA,EAAOh5F,YAAc,SACrBg5F,EAAOhO,QAAU,kCCCjB,SAASmO,EAAIpQ,GACXA,EAAMY,UAAUwP,IAAM,CACpB9+E,QAAS,sBACTnH,KAAM,CACJ9C,QACE,0EACF+6E,QAAQ,GAEV5sC,OAAQ,CACN,CAEEnuC,QAAS,iBACT+6E,QAAQ,GAEV,CACE/6E,QAAS,wBACT+6E,QAAQ,IAGZ,mBAAoB,CAIlB/6E,QACE,wGACFw6E,YAAY,EACZQ,OAAQ,CACNP,QAAS,+BAGbA,QACE,kFAEFwC,QACE,0PAEF7tF,OAAQ,mDAQRsrF,SAAU,0DAEVsO,UAAW,8BACXnN,SAAU,8BACVlB,YAAa,gBAEjB,CArDAxvF,EAAOC,QAAU29F,EACjBA,EAAIn5F,YAAc,MAClBm5F,EAAInO,QAAU,sCCHd,IAAI6H,EAAgBv1F,EAAQ,MACxBg6F,EAA4Bh6F,EAAQ,KAIxC,SAAS+7F,EAAItQ,GACXA,EAAMU,SAASoJ,GACf9J,EAAMU,SAAS6N,GACd,SAAWvO,GACVA,EAAMY,UAAU0P,IAAM,CACpBvI,UAAW,CACT1gF,QAAS,wBACTw6E,YAAY,EACZb,MAAO,eAETgJ,KAAM,CACJ3iF,QAAS,eACT25E,MAAO,gBACPqB,OAAQrC,EAAMY,UAAUoJ,OAG5BhK,EAAMyB,MAAM3qC,IAAI,mBAAmB,SAAUwqC,GAG3CtB,EAAMY,UAAU,qBAAqB+N,kBACnCrN,EACA,MAHA,4FAMJ,IACAtB,EAAMyB,MAAM3qC,IAAI,kBAAkB,SAAUwqC,GAC1CtB,EAAMY,UAAU,qBAAqBgO,qBAAqBtN,EAAK,MACjE,GACD,CAzBA,CAyBEtB,EACL,CAhCAxtF,EAAOC,QAAU69F,EACjBA,EAAIr5F,YAAc,MAClBq5F,EAAIrO,QAAU,iCCAd,SAASsO,EAAOvQ,GACdA,EAAMY,UAAU2P,OAAS,CACvBj/E,QAAS,MACTkkC,OAAQ,CACNnuC,QAAS,wBACT+6E,QAAQ,GAEV,kBAAmB,CACjB/6E,QAAS,8BACT25E,MAAO,YAET,cAAe,CACb35E,QAAS,wBACT25E,MAAO,QAETnqF,QAAS,qBACTirF,QAAS,0DACTrrF,OAAQ,CACN,SACA,mBACA,8CAEFqsF,SAAU,sBACVF,SAAU,CAERv7E,QAAS,gCACTw6E,YAAY,GAEdE,SAAU,CACR,+GACA,CAEE16E,QAAS,iBACTw6E,YAAY,GAEd,CAEEx6E,QAAS,iBACTw6E,YAAY,IAGhBsO,KAAM,gBACNnO,YAAa,wBAEjB,CA/CAxvF,EAAOC,QAAU89F,EACjBA,EAAOt5F,YAAc,SACrBs5F,EAAOtO,QAAU,sCCHjB,IAAIuO,EAAej8F,EAAQ,MACvBg6F,EAA4Bh6F,EAAQ,KAIxC,SAASk8F,EAAMzQ,GACbA,EAAMU,SAAS8P,GACfxQ,EAAMU,SAAS6N,GACd,SAAWvO,GACVA,EAAMY,UAAU6P,MAAQ,CACtB1I,UAAW,CACT1gF,QAAS,iBACT25E,MAAO,eAET,eAAgB,CACd35E,QAAS,UACTg7E,OAAQrC,EAAMY,UAAU8P,MAG5B1Q,EAAMyB,MAAM3qC,IAAI,mBAAmB,SAAUwqC,GAE3CtB,EAAMY,UAAU,qBAAqB+N,kBACnCrN,EACA,QAHY,gBAMhB,IACAtB,EAAMyB,MAAM3qC,IAAI,kBAAkB,SAAUwqC,GAC1CtB,EAAMY,UAAU,qBAAqBgO,qBAAqBtN,EAAK,QACjE,GACD,CAtBA,CAsBEtB,EACL,CA7BAxtF,EAAOC,QAAUg+F,EACjBA,EAAMx5F,YAAc,QACpBw5F,EAAMxO,QAAU,kCCAhB,SAAS0O,EAAa3Q,GACpBA,EAAMY,UAAU,iBAAmB,CACjCtvE,QAAS,CACPjK,QAAS,qCACTw6E,YAAY,EACZO,QAAQ,GAEV5sC,OAAQ,CACNnuC,QAAS,sBACT+6E,QAAQ,GAEV/uE,UAAW,CAQThM,QACE,uEACF+6E,QAAQ,EACRpB,MAAO,SACPqB,OAAQ,CACNN,SAAU,KACVC,YAAa,IACb4O,MAAO,CACLvpF,QAAS,WACT25E,MAAO,YAET6P,KAAM,CACJxpF,QAAS,eACTg7E,OAAQ,CACNL,YAAa,UAGjB8O,KAAM,YAGV,gBAAiB,CACfzpF,QAAS,oBACT25E,MAAO,WAETpuB,MAAO,CACLvrD,QACE,uEACF25E,MAAO,WACPqB,OAAQ,CACNN,SAAU,IACVgP,KAAM,mBACN7gF,OAAQ,aACR8gF,IAAK,WAGTD,KAAM,CAGJ1pF,QAAS,uDACT25E,MAAO,YAETvqF,OAAQ,+CACRI,QAAS,sBACTkrF,SAAU,yBACVC,YAAa,eAEfhC,EAAMY,UAAgB,KAAIZ,EAAMY,UAAe,IAC7CZ,EAAMY,UAAU,gBACpB,CAtEApuF,EAAOC,QAAUk+F,EACjBA,EAAa15F,YAAc,eAC3B05F,EAAa1O,QAAU,kCCCvB,SAASgP,EAAOjR,IACb,SAAWA,GACV,IAAIkR,EAAiB,CACnBpO,SACE,iFAEAqO,EAAgB,CAClB16F,OAAQ,gBAENw6F,EAAS,CACX3/E,QAAS,CACP,CAEEjK,QAAS,oBACTw6E,YAAY,EACZQ,OAAQ6O,GAGV,CAEE7pF,QAAS,mCACTw6E,YAAY,EACZO,QAAQ,EACRC,OAAQ6O,GAEV,CAEE7pF,QAAS,8CACTw6E,YAAY,EACZO,QAAQ,EACRC,OAAQ6O,IAGZz6F,OAAQ,CACN,CAEE4Q,QAAS,yBACTw6E,YAAY,GAEd,CAEEx6E,QAAS,yDACTw6E,YAAY,GAEd,CAEEx6E,QAAS,iCACTw6E,YAAY,GAEd,CAEEx6E,QAAS,iCACTw6E,YAAY,GAEd,CAEEx6E,QAAS,8BACTw6E,YAAY,GAEd,CAGEx6E,QACE,8DACFw6E,YAAY,GAEd,CAEEx6E,QAAS,mCACTw6E,YAAY,GAEd,CAOEx6E,QACE,yEACFw6E,YAAY,IAIhBuP,OAAQ,CACN/pF,QACE,sEACFw6E,YAAY,EACZb,MAAO,SACPqB,OAAQ,CACNO,SAAU,OACVd,QAAS,oBACTC,SAAU,CACR16E,QAAS,6BACTw6E,YAAY,KAIlBhrF,QAAS,CACPwQ,QAAS,qBACTw6E,YAAY,GAGd,gBAAiB,CACfx6E,QAAS,wCACTw6E,YAAY,EACZO,QAAQ,EACRpB,MAAO,SACPqB,OAAQ,CACN5rF,OAAQ,gBAGZ,mBAAoB,CAClB,CAEE4Q,QAAS,0DACTw6E,YAAY,EACZO,QAAQ,EACRpB,MAAO,SACPqB,OAAQ,CACN5rF,OAAQ06F,EAAc16F,OAEtB,wBAAyB,CACvB4Q,QAAS,0BACTw6E,YAAY,EACZb,MAAO,cAIb,CAEE35E,QAAS,6DACTw6E,YAAY,EACZO,QAAQ,EACRpB,MAAO,SACPqB,OAAQ8O,GAEV,CAEE9pF,QAAS,6CACTw6E,YAAY,EACZO,QAAQ,EACRpB,MAAO,SACPqB,OAAQ8O,IAGZ,gBAAiB,CACf9pF,QAAS,yCACTw6E,YAAY,EACZb,MAAO,WACPqB,OAAQ,CAGN7sC,OAAQ,CACNnuC,QAAS,cACTw6E,YAAY,KAkBlB,yBAA0B,CACxB,CAEEx6E,QAAS,uCACTw6E,YAAY,EACZb,MAAO,YAET,CAEE35E,QAAS,eACTw6E,YAAY,EACZb,MAAO,YAET,CAEE35E,QAAS,iBACTw6E,YAAY,EACZb,MAAO,aAGXqQ,YAAa,CACXhqF,QAAS,KACTw6E,YAAY,EACZb,MAAO,WAET,iBAAkB,CAChB35E,QAAS,KACTw6E,YAAY,EACZb,MAAO,YAET,oBAAqB,CACnB35E,QAAS,KACTw6E,YAAY,EACZb,MAAO,YAET,eAAgB,CACd35E,QAAS,KACTw6E,YAAY,EACZb,MAAO,YAET,mBAAoB,CAElB35E,QAAS,iCACTw6E,YAAY,EACZb,MAAO,WAET,uBAAwB,CACtB35E,QAAS,KACTw6E,YAAY,EACZb,MAAO,YA0BT,4BAA6B,CAC3B35E,QACE,0MACFw6E,YAAY,EACZb,MAAO,WAET,eAAgB,CACd35E,QAAS,6DACTw6E,YAAY,EACZO,QAAQ,EACRpB,MAAO,YAET,wBAAyB,CACvB35E,QAAS,uBACTw6E,YAAY,EACZb,MAAO,YAGT,gCAAiC,CAC/B,CAEE35E,QAAS,wBACTw6E,YAAY,EACZb,MAAO,YAET,CAEE35E,QAAS,iBACTw6E,YAAY,EACZb,MAAO,aAIX,sBAAuB,CACrB,CAEE35E,QAAS,iBACTw6E,YAAY,EACZb,MAAO,YAET,CAEE35E,QAAS,iBACTw6E,YAAY,EACZb,MAAO,aAGX,cAAe,CACb35E,QAAS,0BACTw6E,YAAY,GAiBdrsC,OAAQ,CACNnuC,QAAS,qBACT+6E,QAAQ,EACRC,OAAQ8O,IAGRjT,EAAS,SAAUnuE,GACrB,OAAQA,EAAM,IAAI9X,QAAQ,4BAA6B,OACzD,EACIq5F,EAAmB,SAAUjgG,GAC/B,OAAO,IAAImxF,OAAO,aAAenxF,EAAIitF,IAAIJ,GAAQloF,KAAK,KAAO,aAC/D,EACIu7F,EAAW,CACb,iBAAkB,CAChB,KACA,QACA,QACA,OACA,UACA,MACA,WACA,kBACA,MACA,OACA,YACA,aACA,OACA,WACA,OACA,OACA,QACA,WACA,OACA,QACA,OACA,MACA,IACA,IACA,QACA,QACA,QACA,OACA,kBACA,MACA,SACA,MACA,QACA,OACA,QACA,SACA,OACA,UACA,UACA,OACA,UACA,MACA,gBACA,WACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,QACA,UACA,YACA,OACA,QACA,OACA,SACA,gBACA,SACA,QACA,YACA,WACA,oBACA,kBACA,OACA,YACA,MACA,QACA,MACA,QACA,MACA,iBACA,WAEF,uBAAwB,CAEtB,UACA,YACA,YACA,KACA,SACA,MACA,IACA,WACA,KACA,SACA,QACA,SACA,YACA,aACA,WACA,SACA,UACA,gBACA,oBACA,YACA,UACA,mBACA,KACA,WACA,IACA,KACA,MAEF,oBAAqB,CACnB,aACA,WACA,SACA,mBACA,SACA,aACA,aACA,YACA,mBACA,kBACA,WACA,aACA,OACA,WACA,UACA,aACA,YACA,WACA,OACA,OACA,MACA,WACA,UACA,SACA,UACA,aACA,aACA,SACA,QACA,UACA,oBACA,aACA,cACA,OACA,SACA,gBACA,oBACA,gCACA,iCACA,YACA,UACA,WACA,SACA,aACA,aACA,UACA,SACA,OACA,eACA,eACA,QACA,OACA,SACA,YACA,UACA,QACA,WACA,cACA,WACA,QACA,YACA,aACA,aACA,qBACA,SACA,SACA,WACA,eACA,UACA,aACA,OACA,UACA,QACA,SACA,SACA,OACA,aACA,WACA,YACA,MACA,aACA,UACA,aACA,SACA,cACA,YACA,OACA,YACA,SACA,YACA,iBACA,UACA,eACA,UACA,gBACA,eACA,YACA,mBACA,UACA,SACA,WACA,OACA,aACA,oBACA,YACA,UACA,UACA,YACA,WACA,WACA,aACA,OACA,cACA,iBACA,QACA,UACA,YACA,gBACA,cACA,oBACA,MACA,UACA,OACA,SACA,OACA,sBACA,aACA,aACA,mBACA,UACA,cACA,SACA,aACA,WACA,kBACA,OACA,OACA,QACA,QACA,QACA,YACA,SACA,eACA,eACA,WACA,WACA,MACA,aACA,YACA,WACA,QACA,oBACA,eACA,OACA,cACA,QACA,UACA,UACA,OACA,cACA,SACA,OACA,gBACA,YACA,eAEF,eAAgB,CACd,UACA,kBACA,MACA,cACA,iBACA,aACA,UACA,eACA,UACA,WACA,cACA,MACA,IACA,IACA,cACA,IACA,MACA,IACA,KACA,SACA,cACA,wBACA,OACA,IACA,OACA,IACA,WACA,SACA,cACA,KACA,QACA,aACA,SACA,QACA,SACA,QACA,QACA,QACA,UACA,SACA,UACA,WACA,KACA,iBACA,KACA,MACA,UACA,aACA,KACA,KACA,MACA,QACA,WACA,SACA,KACA,UACA,UACA,MACA,SACA,KACA,SACA,QACA,OACA,WACA,aACA,UACA,WACA,OACA,YACA,cACA,QACA,MACA,iBACA,YACA,yBACA,aACA,QACA,aACA,QACA,UACA,MACA,SACA,wBACA,MACA,OACA,KACA,OACA,WACA,QACA,YACA,cAGJ3gG,OAAOkkC,KAAKy8D,GAAUv8D,SAAQ,SAAUylB,GACtCw2C,EAAOx2C,GAAGpzC,QAAUiqF,EAAiBC,EAAS92C,GAChD,IAyNAw2C,EAAOI,YAAYhqF,QAAUiqF,EAxNX,CAEhB,MACA,QACA,OACA,MACA,OACA,QACA,QACA,OACA,QACA,UACA,MACA,MACA,OACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,QACA,MACA,SACA,KACA,UACA,YACA,MACA,OACA,YACA,QACA,OACA,QACA,OACA,QACA,UACA,KACA,QACA,OACA,SACA,aACA,aACA,WACA,QACA,UACA,OACA,KACA,OACA,SACA,QACA,OACA,SACA,MACA,OACA,SACA,MACA,WACA,YACA,iBACA,kBACA,SACA,YACA,QACA,YACA,YACA,WACA,cACA,UACA,YACA,gBACA,mBACA,SACA,MACA,UACA,cACA,aACA,SACA,cACA,OACA,eACA,YACA,UACA,eACA,eACA,aACA,kBACA,QACA,aACA,SACA,eACA,YACA,eACA,WACA,SACA,WACA,aACA,OACA,YACA,gBACA,eACA,OACA,UACA,UACA,YACA,gBACA,iBACA,kBACA,gBACA,UACA,OACA,YACA,cACA,UACA,cACA,aACA,OACA,aACA,iBACA,aACA,OACA,eACA,cACA,WACA,gBACA,YACA,UACA,QACA,aACA,QACA,OACA,aACA,UACA,aACA,aACA,QACA,OACA,YACA,iBACA,YACA,UACA,eACA,cACA,iBACA,YACA,oBACA,kBACA,QACA,iBACA,eACA,gBACA,kBACA,cACA,gBACA,gBACA,kBACA,cACA,OACA,UACA,YACA,YACA,UACA,eACA,iBACA,aACA,OACA,SACA,cACA,qBACA,SACA,mBACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,gBACA,cACA,iBACA,cACA,eACA,aACA,cACA,WACA,iBACA,oBACA,cACA,qBACA,WACA,eACA,mBACA,oBACA,iBACA,UACA,iBACA,iBACA,cACA,SACA,gBACA,eACA,eACA,aACA,aACA,UACA,oBACA,eACA,YACA,cACA,wBACA,oBAGFtR,EAAMY,UAAUqQ,OAASA,CAC1B,CAr5BA,CAq5BEjR,EACL,CA15BAxtF,EAAOC,QAAUw+F,EACjBA,EAAOh6F,YAAc,SACrBg6F,EAAOhP,QAAU,kCCCjB,SAASuP,EAAOxR,IACb,SAAWA,GAMVA,EAAMY,UAAiB,MAAI,CACzBtvE,QAAS,CACPjK,QAAS,aAEXmuC,OAAQ,CACNnuC,QAAS,UACT+6E,QAAQ,GAEV,iBAAkB,CAChB/6E,QAAS,mBACT25E,MAAO,UAET,iBAAkB,CAChB35E,QAAS,OACT25E,MAAO,aAETvqF,OAAQ,MACRsrF,SAAU,sCACVC,YAAa,QACbY,SAAU,QACV,eAAgB,CACdv7E,QAAS,eACT25E,MAAO,QAGZ,CA/BA,CA+BEhB,EACL,CApCAxtF,EAAOC,QAAU++F,EACjBA,EAAOv6F,YAAc,SACrBu6F,EAAOvP,QAAU,kCCCjB,SAAS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CE,s0BACFqF,UAAW,CACT9/E,QAAS,cACT25E,MAAO,YAET4B,SAAU,aACVnsF,OAAQ,gBACRsrF,SAAU,mBACVC,YAAa,wBAEjB,CAjBAxvF,EAAOC,QAAUswG,EACjBA,EAAM9rG,YAAc,QACpB8rG,EAAM9gB,QAAU,kCCChB,SAAS+gB,EAAQhjB,IACd,SAAWA,GACV,IAAIijB,EAAY,CAEd,MACA,MACA,OACA,MACA,MACA,OACA,MACA,OACA,OACA,OACA,OACA,MACA,UACA,QACA,QACA,cACA,OACA,SACA,QACA,SACA,iBACA,aACA,QACA,cACA,OACA,aACA,QACA,gBACA,cACA,gBACA,cACA,WACA,aACA,QACA,SACA,eACA,OACA,OACA,OACA,OACA,UACA,OACA,eACA,SACA,YACA,OACA,QACA,QACA,WACA,QACA,YACA,SACA,QACA,OACA,aACA,UACA,cACA,aACA,SACA,aACA,SACA,WACA,eACA,SACA,cACA,SACA,qBACA,gBACA,UACA,SACA,SACA,OACA,kBACA,WACA,UACA,eACA,eACA,UACA,OACA,QACA,QACA,eACA,aACA,SACA,UACA,mBACA,OACA,eACA,QACA,SACA,OACA,YACA,mBACA,OACA,kBACA,eACA,iBACA,QACA,SACA,QACA,SACA,SACA,OACA,cACA,YACA,QACA,OACA,UACA,gBACA,QACA,WACA,OACA,iBACA,eACA,kBACA,gBACA,cACA,aACA,aACA,oBACA,UACA,MACA,OACA,UACA,SACA,SACA,YACA,MACA,OACA,QACA,UACA,MACA,gBACA,gBACA,aACA,WACA,YACA,gBACA,WACA,eACA,QACA,QACA,OACA,WACA,MACA,OACA,SACA,MACA,OACA,SACA,OACA,OACA,gBACA,QACA,OACA,eACA,UACA,OACA,SACA,YACA,MACA,OACA,iBACA,MACA,OACA,QACA,oBACA,SACA,UACA,aACA,gBACA,cACA,cACA,cACA,gBACA,SACA,SACA,UACA,iBACA,aACA,mBACA,eACA,YACA,QACA,OACA,SACA,SACA,QACA,aACA,cACA,cA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,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E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","sources":["../node_modules/extend/index.js","../node_modules/hast-util-parse-selector/index.js","../node_modules/hastscript/factory.js","../node_modules/hastscript/html.js","../node_modules/hastscript/index.js","../node_modules/hastscript/node_modules/comma-separated-tokens/index.js","../node_modules/hastscript/node_modules/property-information/find.js","../node_modules/hastscript/node_modules/property-information/html.js","../node_modules/hastscript/node_modules/property-information/lib/aria.js","../node_modules/hastscript/node_modules/property-information/lib/html.js","../node_modules/hastscript/node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/hastscript/node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/hastscript/node_modules/property-information/lib/util/create.js","../node_modules/hastscript/node_modules/property-information/lib/util/defined-info.js","../node_modules/hastscript/node_modules/property-information/lib/util/info.js","../node_modules/hastscript/node_modules/property-information/lib/util/merge.js","../node_modules/hastscript/node_modules/property-information/lib/util/schema.js","../node_modules/hastscript/node_modules/property-information/lib/util/types.js","../node_modules/hastscript/node_modules/property-information/lib/xlink.js","../node_modules/hastscript/node_modules/property-information/lib/xml.js","../node_modules/hastscript/node_modules/property-information/lib/xmlns.js","../node_modules/hastscript/node_modules/property-information/normalize.js","../node_modules/hastscript/node_modules/space-separated-tokens/index.js","../node_modules/inline-style-parser/index.js","../node_modules/is-alphabetical/index.js","../node_modules/is-alphanumerical/index.js","../node_modules/is-buffer/index.js","../node_modules/is-decimal/index.js","../node_modules/is-hexadecimal/index.js","../node_modules/parse-entities/decode-entity.browser.js","../node_modules/parse-entities/index.js","../node_modules/parse5/lib/common/doctype.js","../node_modules/parse5/lib/common/error-codes.js","../node_modules/parse5/lib/common/foreign-content.js","../node_modules/parse5/lib/common/html.js","../node_modules/parse5/lib/common/unicode.js","../node_modules/parse5/lib/extensions/error-reporting/mixin-base.js","../node_modules/parse5/lib/extensions/error-reporting/parser-mixin.js","../node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js","../node_modules/parse5/lib/extensions/error-reporting/tokenizer-mixin.js","../node_modules/parse5/lib/extensions/location-info/open-element-stack-mixin.js","../node_modules/parse5/lib/extensions/location-info/parser-mixin.js","../node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js","../node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js","../node_modules/parse5/lib/parser/formatting-element-list.js","../node_modules/parse5/lib/parser/index.js","../node_modules/parse5/lib/parser/open-element-stack.js","../node_modules/parse5/lib/tokenizer/index.js","../node_modules/parse5/lib/tokenizer/named-entity-data.js","../node_modules/parse5/lib/tokenizer/preprocessor.js","../node_modules/parse5/lib/tree-adapters/default.js","../node_modules/parse5/lib/utils/merge-options.js","../node_modules/parse5/lib/utils/mixin.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-markdown/node_modules/react-is/index.js","../node_modules/react-markdown/node_modules/style-to-object/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/refractor/core.js","../node_modules/refractor/index.js","../node_modules/refractor/lang/abap.js","../node_modules/refractor/lang/abnf.js","../node_modules/refractor/lang/actionscript.js","../node_modules/refractor/lang/ada.js","../node_modules/refractor/lang/agda.js","../node_modules/refractor/lang/al.js","../node_modules/refractor/lang/antlr4.js","../node_modules/refractor/lang/apacheconf.js","../node_modules/refractor/lang/apex.js","../node_modules/refractor/lang/apl.js","../node_modules/refractor/lang/applescript.js","../node_modules/refractor/lang/aql.js","../node_modules/refractor/lang/arduino.js","../node_modules/refractor/lang/arff.js","../node_modules/refractor/lang/asciidoc.js","../node_modules/refractor/lang/asm6502.js","../node_modules/refractor/lang/asmatmel.js","../node_modules/refractor/lang/aspnet.js","../node_modules/refractor/lang/autohotkey.js","../node_modules/refractor/lang/autoit.js","../node_modules/refractor/lang/avisynth.js","../node_modules/refractor/lang/avro-idl.js","../node_modules/refractor/lang/bash.js","../node_modules/refractor/lang/basic.js","../node_modules/refractor/lang/batch.js","../node_modules/refractor/lang/bbcode.js","../node_modules/refractor/lang/bicep.js","../node_modules/refractor/lang/birb.js","../node_modules/refractor/lang/bison.js","../node_modules/refractor/lang/bnf.js","../node_modules/refractor/lang/brainfuck.js","../node_modules/refractor/lang/brightscript.js","../node_modules/refractor/lang/bro.js","../node_modules/refractor/lang/bsl.js","../node_modules/refractor/lang/c.js","../node_modules/refractor/lang/cfscript.js","../node_modules/refractor/lang/chaiscript.js","../node_modules/refractor/lang/cil.js","../node_modules/refractor/lang/clike.js","../node_modules/refractor/lang/clojure.js","../node_modules/refractor/lang/cmake.js","../node_modules/refractor/lang/cobol.js","../node_modules/refractor/lang/coffeescript.js","../node_modules/refractor/lang/concurnas.js","../node_modules/refractor/lang/coq.js","../node_modules/refractor/lang/cpp.js","../node_modules/refractor/lang/crystal.js","../node_modules/refractor/lang/csharp.js","../node_modules/refractor/lang/cshtml.js","../node_modules/refractor/lang/csp.js","../node_modules/refractor/lang/css-extras.js","../node_modules/refractor/lang/css.js","../node_modules/refractor/lang/csv.js","../node_modules/refractor/lang/cypher.js","../node_modules/refractor/lang/d.js","../node_modules/refractor/lang/dart.js","../node_modules/refractor/lang/dataweave.js","../node_modules/refractor/lang/dax.js","../node_modules/refractor/lang/dhall.js","../node_modules/refractor/lang/diff.js","../node_modules/refractor/lang/django.js","../node_modules/refractor/lang/dns-zone-file.js","../node_modules/refractor/lang/docker.js","../node_modules/refractor/lang/dot.js","../node_modules/refractor/lang/ebnf.js","../node_modules/refractor/lang/editorconfig.js","../node_modules/refractor/lang/eiffel.js","../node_modules/refractor/lang/ejs.js","../node_modules/refractor/lang/elixir.js","../node_modules/refractor/lang/elm.js","../node_modules/refractor/lang/erb.js","../node_modules/refractor/lang/erlang.js","../node_modules/refractor/lang/etlua.js","../node_modules/refractor/lang/excel-formula.js","../node_modules/refractor/lang/factor.js","../node_modules/refractor/lang/false.js","../node_modules/refractor/lang/firestore-security-rules.js","../node_modules/refractor/lang/flow.js","../node_modules/refractor/lang/fortran.js","../node_modules/refractor/lang/fsharp.js","../node_modules/refractor/lang/ftl.js","../node_modules/refractor/lang/gap.js","../node_modules/refractor/lang/gcode.js","../node_modules/refractor/lang/gdscript.js","../node_modules/refractor/lang/gedcom.js","../node_modules/refractor/lang/gherkin.js","../node_modules/refractor/lang/git.js","../node_modules/refractor/lang/glsl.js","../node_modules/refractor/lang/gml.js","../node_modules/refractor/lang/gn.js","../node_modules/refractor/lang/go-module.js","../node_modules/refractor/lang/go.js","../node_modules/refractor/lang/graphql.js","../node_modules/refractor/lang/groovy.js","../node_modules/refractor/lang/haml.js","../node_modules/refractor/lang/handlebars.js","../node_modules/refractor/lang/haskell.js","../node_modules/refractor/lang/haxe.js","../node_modules/refractor/lang/hcl.js","../node_modules/refractor/lang/hlsl.js","../node_modules/refractor/lang/hoon.js","../node_modules/refractor/lang/hpkp.js","../node_modules/refractor/lang/hsts.js","../node_modules/refractor/lang/http.js","../node_modules/refractor/lang/ichigojam.js","../node_modules/refractor/lang/icon.js","../node_modules/refractor/lang/icu-message-format.js","../node_modules/refractor/lang/idris.js","../node_modules/refractor/lang/iecst.js","../node_modules/refractor/lang/ignore.js","../node_modules/refractor/lang/inform7.js","../node_modules/refractor/lang/ini.js","../node_modules/refractor/lang/io.js","../node_modules/refractor/lang/j.js","../node_modules/refractor/lang/java.js","../node_modules/refractor/lang/javadoc.js","../node_modules/refractor/lang/javadoclike.js","../node_modules/refractor/lang/javascript.js","../node_modules/refractor/lang/javastacktrace.js","../node_modules/refractor/lang/jexl.js","../node_modules/refractor/lang/jolie.js","../node_modules/refractor/lang/jq.js","../node_modules/refractor/lang/js-extras.js","../node_modules/refractor/lang/js-templates.js","../node_modules/refractor/lang/jsdoc.js","../node_modules/refractor/lang/json.js","../node_modules/refractor/lang/json5.js","../node_modules/refractor/lang/jsonp.js","../node_modules/refractor/lang/jsstacktrace.js","../node_modules/refractor/lang/jsx.js","../node_modules/refractor/lang/julia.js","../node_modules/refractor/lang/keepalived.js","../node_modules/refractor/lang/keyman.js","../node_modules/refractor/lang/kotlin.js","../node_modules/refractor/lang/kumir.js","../node_modules/refractor/lang/kusto.js","../node_modules/refractor/lang/latex.js","../node_modules/refractor/lang/latte.js","../node_modules/refractor/lang/less.js","../node_modules/refractor/lang/lilypond.js","../node_modules/refractor/lang/liquid.js","../node_modules/refractor/lang/lisp.js","../node_modules/refractor/lang/livescript.js","../node_modules/refractor/lang/llvm.js","../node_modules/refractor/lang/log.js","../node_modules/refractor/lang/lolcode.js","../node_modules/refractor/lang/lua.js","../node_modules/refractor/lang/magma.js","../node_modules/refractor/lang/makefile.js","../node_modules/refractor/lang/markdown.js","../node_modules/refractor/lang/markup-templating.js","../node_modules/refractor/lang/markup.js","../node_modules/refractor/lang/matlab.js","../node_modules/refractor/lang/maxscript.js","../node_modules/refractor/lang/mel.js","../node_modules/refractor/lang/mermaid.js","../node_modules/refractor/lang/mizar.js","../node_modules/refractor/lang/mongodb.js","../node_modules/refractor/lang/monkey.js","../node_modules/refractor/lang/moonscript.js","../node_modules/refractor/lang/n1ql.js","../node_modules/refractor/lang/n4js.js","../node_modules/refractor/lang/nand2tetris-hdl.js","../node_modules/refractor/lang/naniscript.js","../node_modules/refractor/lang/nasm.js","../node_modules/refractor/lang/neon.js","../node_modules/refractor/lang/nevod.js","../node_modules/refractor/lang/nginx.js","../node_modules/refractor/lang/nim.js","../node_modules/refractor/lang/nix.js","../node_modules/refractor/lang/nsis.js","../node_modules/refractor/lang/objectivec.js","../node_modules/refractor/lang/ocaml.js","../node_modules/refractor/lang/opencl.js","../node_modules/refractor/lang/openqasm.js","../node_modules/refractor/lang/oz.js","../node_modules/refractor/lang/parigp.js","../node_modules/refractor/lang/parser.js","../node_modules/refractor/lang/pascal.js","../node_modules/refractor/lang/pascaligo.js","../node_modules/refractor/lang/pcaxis.js","../node_modules/refractor/lang/peoplecode.js","../node_modules/refractor/lang/perl.js","../node_modules/refractor/lang/php-extras.js","../node_modules/refractor/lang/php.js","../node_modules/refractor/lang/phpdoc.js","../node_modules/refractor/lang/plsql.js","../node_modules/refractor/lang/powerquery.js","../node_modules/refractor/lang/powershell.js","../node_modules/refractor/lang/processing.js","../node_modules/refractor/lang/prolog.js","../node_modules/refractor/lang/promql.js","../node_modules/refractor/lang/properties.js","../node_modules/refractor/lang/protobuf.js","../node_modules/refractor/lang/psl.js","../node_modules/refractor/lang/pug.js","../node_modules/refractor/lang/puppet.js","../node_modules/refractor/lang/pure.js","../node_modules/refractor/lang/purebasic.js","../node_modules/refractor/lang/purescript.js","../node_modules/refractor/lang/python.js","../node_modules/refractor/lang/q.js","../node_modules/refractor/lang/qml.js","../node_modules/refractor/lang/qore.js","../node_modules/refractor/lang/qsharp.js","../node_modules/refractor/lang/r.js","../node_modules/refractor/lang/racket.js","../node_modules/refractor/lang/reason.js","../node_modules/refractor/lang/regex.js","../node_modules/refractor/lang/rego.js","../node_modules/refractor/lang/renpy.js","../node_modules/refractor/lang/rest.js","../node_modules/refractor/lang/rip.js","../node_modules/refractor/lang/roboconf.js","../node_modules/refractor/lang/robotframework.js","../node_modules/refractor/lang/ruby.js","../node_modules/refractor/lang/rust.js","../node_modules/refractor/lang/sas.js","../node_modules/refractor/lang/sass.js","../node_modules/refractor/lang/scala.js","../node_modules/refractor/lang/scheme.js","../node_modules/refractor/lang/scss.js","../node_modules/refractor/lang/shell-session.js","../node_modules/refractor/lang/smali.js","../node_modules/refractor/lang/smalltalk.js","../node_modules/refractor/lang/smarty.js","../node_modules/refractor/lang/sml.js","../node_modules/refractor/lang/solidity.js","../node_modules/refractor/lang/solution-file.js","../node_modules/refractor/lang/soy.js","../node_modules/refractor/lang/sparql.js","../node_modules/refractor/lang/splunk-spl.js","../node_modules/refractor/lang/sqf.js","../node_modules/refractor/lang/sql.js","../node_modules/refractor/lang/squirrel.js","../node_modules/refractor/lang/stan.js","../node_modules/refractor/lang/stylus.js","../node_modules/refractor/lang/swift.js","../node_modules/refractor/lang/systemd.js","../node_modules/refractor/lang/t4-cs.js","../node_modules/refractor/lang/t4-templating.js","../node_modules/refractor/lang/t4-vb.js","../node_modules/refractor/lang/tap.js","../node_modules/refractor/lang/tcl.js","../node_modules/refractor/lang/textile.js","../node_modules/refractor/lang/toml.js","../node_modules/refractor/lang/tremor.js","../node_modules/refractor/lang/tsx.js","../node_modules/refractor/lang/tt2.js","../node_modules/refractor/lang/turtle.js","../node_modules/refractor/lang/twig.js","../node_modules/refractor/lang/typescript.js","../node_modules/refractor/lang/typoscript.js","../node_modules/refractor/lang/unrealscript.js","../node_modules/refractor/lang/uorazor.js","../node_modules/refractor/lang/uri.js","../node_modules/refractor/lang/v.js","../node_modules/refractor/lang/vala.js","../node_modules/refractor/lang/vbnet.js","../node_modules/refractor/lang/velocity.js","../node_modules/refractor/lang/verilog.js","../node_modules/refractor/lang/vhdl.js","../node_modules/refractor/lang/vim.js","../node_modules/refractor/lang/visual-basic.js","../node_modules/refractor/lang/warpscript.js","../node_modules/refractor/lang/wasm.js","../node_modules/refractor/lang/web-idl.js","../node_modules/refractor/lang/wiki.js","../node_modules/refractor/lang/wolfram.js","../node_modules/refractor/lang/wren.js","../node_modules/refractor/lang/xeora.js","../node_modules/refractor/lang/xml-doc.js","../node_modules/refractor/lang/xojo.js","../node_modules/refractor/lang/xquery.js","../node_modules/refractor/lang/yaml.js","../node_modules/refractor/lang/yang.js","../node_modules/refractor/lang/zig.js","../node_modules/refractor/node_modules/prismjs/components/prism-core.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/style-to-object/index.js","../node_modules/xtend/immutable.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/get.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/superPropBase.js","../node_modules/@babel/runtime/helpers/typeof.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","data.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/unist-util-stringify-position/index.js","../node_modules/vfile-message/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/bail/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/index.js","../node_modules/unified/lib/index.js","../node_modules/mdast-util-to-string/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/parse.js","../node_modules/remark-parse/index.js","../node_modules/remark-parse/lib/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/unist-util-is/index.js","../node_modules/unist-util-visit-parents/index.js","../node_modules/unist-util-visit/index.js","../node_modules/unist-util-position/index.js","../node_modules/mdast-util-definitions/lib/index.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/unist-util-generated/lib/index.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/remark-rehype/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/index.js","../node_modules/react-markdown/lib/rehype-filter.js","../node_modules/hast-util-whitespace/index.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/space-separated-tokens/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/react-markdown/node_modules/style-to-object/index.mjs","../node_modules/react-markdown/lib/uri-transformer.js","../node_modules/react-markdown/lib/ast-to-react.js","../node_modules/react-markdown/lib/react-markdown.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-syntax-highlighter/dist/esm/create-element.js","../node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js","../node_modules/react-syntax-highlighter/dist/esm/highlight.js","../node_modules/react-syntax-highlighter/dist/esm/styles/prism/prism.js","../node_modules/react-syntax-highlighter/dist/esm/prism.js","../node_modules/react-syntax-highlighter/dist/esm/languages/prism/supported-languages.js","../node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","../node_modules/react-syntax-highlighter/dist/esm/styles/prism/coldark-dark.js","../node_modules/micromark-extension-gfm-footnote/lib/syntax.js","../node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","../node_modules/micromark-extension-gfm-table/lib/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","../node_modules/micromark-extension-gfm/index.js","../node_modules/ccount/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-gfm-autolink-literal/index.js","../node_modules/mdast-util-to-markdown/lib/util/association.js","../node_modules/mdast-util-to-markdown/lib/util/track.js","../node_modules/mdast-util-to-markdown/lib/util/container-flow.js","../node_modules/mdast-util-to-markdown/lib/util/indent-lines.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../node_modules/mdast-util-to-markdown/lib/util/safe.js","../node_modules/mdast-util-gfm-footnote/index.js","../node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js","../node_modules/mdast-util-gfm-strikethrough/index.js","../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../node_modules/markdown-table/index.js","../node_modules/mdast-util-gfm-table/lib/index.js","../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../node_modules/mdast-util-gfm-task-list-item/index.js","../node_modules/mdast-util-gfm/lib/index.js","../node_modules/remark-gfm/index.js","../node_modules/hast-util-from-parse5/node_modules/hast-util-parse-selector/index.js","../node_modules/hast-util-from-parse5/node_modules/hastscript/lib/core.js","../node_modules/hast-util-from-parse5/node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","../node_modules/hast-util-from-parse5/node_modules/hastscript/lib/svg.js","../node_modules/hast-util-from-parse5/node_modules/hastscript/lib/html.js","../node_modules/web-namespaces/index.js","../node_modules/hast-util-from-parse5/lib/index.js","../node_modules/vfile-location/index.js","../node_modules/hast-to-hyperscript/index.js","../node_modules/zwitch/index.js","../node_modules/hast-util-to-parse5/lib/index.js","../node_modules/html-void-elements/index.js","../node_modules/hast-util-raw/lib/index.js","../node_modules/rehype-raw/index.js","components/right_arrow.js","components/down_arrow.js","App.js","index.js"],"sourcesContent":["'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","'use strict'\n\nmodule.exports = parse\n\nvar search = /[#.]/g\n\n// Create a hast element from a simple CSS selector.\nfunction parse(selector, defaultTagName) {\n  var value = selector || ''\n  var name = defaultTagName || 'div'\n  var props = {}\n  var start = 0\n  var subvalue\n  var previous\n  var match\n\n  while (start < value.length) {\n    search.lastIndex = start\n    match = search.exec(value)\n    subvalue = value.slice(start, match ? match.index : value.length)\n\n    if (subvalue) {\n      if (!previous) {\n        name = subvalue\n      } else if (previous === '#') {\n        props.id = subvalue\n      } else if (props.className) {\n        props.className.push(subvalue)\n      } else {\n        props.className = [subvalue]\n      }\n\n      start += subvalue.length\n    }\n\n    if (match) {\n      previous = match[0]\n      start++\n    }\n  }\n\n  return {type: 'element', tagName: name, properties: props, children: []}\n}\n","'use strict'\n\nvar find = require('property-information/find')\nvar normalize = require('property-information/normalize')\nvar parseSelector = require('hast-util-parse-selector')\nvar spaces = require('space-separated-tokens').parse\nvar commas = require('comma-separated-tokens').parse\n\nmodule.exports = factory\n\nvar own = {}.hasOwnProperty\n\nfunction factory(schema, defaultTagName, caseSensitive) {\n  var adjust = caseSensitive ? createAdjustMap(caseSensitive) : null\n\n  return h\n\n  // Hyperscript compatible DSL for creating virtual hast trees.\n  function h(selector, properties) {\n    var node = parseSelector(selector, defaultTagName)\n    var children = Array.prototype.slice.call(arguments, 2)\n    var name = node.tagName.toLowerCase()\n    var property\n\n    node.tagName = adjust && own.call(adjust, name) ? adjust[name] : name\n\n    if (properties && isChildren(properties, node)) {\n      children.unshift(properties)\n      properties = null\n    }\n\n    if (properties) {\n      for (property in properties) {\n        addProperty(node.properties, property, properties[property])\n      }\n    }\n\n    addChild(node.children, children)\n\n    if (node.tagName === 'template') {\n      node.content = {type: 'root', children: node.children}\n      node.children = []\n    }\n\n    return node\n  }\n\n  function addProperty(properties, key, value) {\n    var info\n    var property\n    var result\n\n    // Ignore nullish and NaN values.\n    if (value === null || value === undefined || value !== value) {\n      return\n    }\n\n    info = find(schema, key)\n    property = info.property\n    result = value\n\n    // Handle list values.\n    if (typeof result === 'string') {\n      if (info.spaceSeparated) {\n        result = spaces(result)\n      } else if (info.commaSeparated) {\n        result = commas(result)\n      } else if (info.commaOrSpaceSeparated) {\n        result = spaces(commas(result).join(' '))\n      }\n    }\n\n    // Accept `object` on style.\n    if (property === 'style' && typeof value !== 'string') {\n      result = style(result)\n    }\n\n    // Class-names (which can be added both on the `selector` and here).\n    if (property === 'className' && properties.className) {\n      result = properties.className.concat(result)\n    }\n\n    properties[property] = parsePrimitives(info, property, result)\n  }\n}\n\nfunction isChildren(value, node) {\n  return (\n    typeof value === 'string' ||\n    'length' in value ||\n    isNode(node.tagName, value)\n  )\n}\n\nfunction isNode(tagName, value) {\n  var type = value.type\n\n  if (tagName === 'input' || !type || typeof type !== 'string') {\n    return false\n  }\n\n  if (typeof value.children === 'object' && 'length' in value.children) {\n    return true\n  }\n\n  type = type.toLowerCase()\n\n  if (tagName === 'button') {\n    return (\n      type !== 'menu' &&\n      type !== 'submit' &&\n      type !== 'reset' &&\n      type !== 'button'\n    )\n  }\n\n  return 'value' in value\n}\n\nfunction addChild(nodes, value) {\n  var index\n  var length\n\n  if (typeof value === 'string' || typeof value === 'number') {\n    nodes.push({type: 'text', value: String(value)})\n    return\n  }\n\n  if (typeof value === 'object' && 'length' in value) {\n    index = -1\n    length = value.length\n\n    while (++index < length) {\n      addChild(nodes, value[index])\n    }\n\n    return\n  }\n\n  if (typeof value !== 'object' || !('type' in value)) {\n    throw new Error('Expected node, nodes, or string, got `' + value + '`')\n  }\n\n  nodes.push(value)\n}\n\n// Parse a (list of) primitives.\nfunction parsePrimitives(info, name, value) {\n  var index\n  var length\n  var result\n\n  if (typeof value !== 'object' || !('length' in value)) {\n    return parsePrimitive(info, name, value)\n  }\n\n  length = value.length\n  index = -1\n  result = []\n\n  while (++index < length) {\n    result[index] = parsePrimitive(info, name, value[index])\n  }\n\n  return result\n}\n\n// Parse a single primitives.\nfunction parsePrimitive(info, name, value) {\n  var result = value\n\n  if (info.number || info.positiveNumber) {\n    if (!isNaN(result) && result !== '') {\n      result = Number(result)\n    }\n  } else if (info.boolean || info.overloadedBoolean) {\n    // Accept `boolean` and `string`.\n    if (\n      typeof result === 'string' &&\n      (result === '' || normalize(value) === normalize(name))\n    ) {\n      result = true\n    }\n  }\n\n  return result\n}\n\nfunction style(value) {\n  var result = []\n  var key\n\n  for (key in value) {\n    result.push([key, value[key]].join(': '))\n  }\n\n  return result.join('; ')\n}\n\nfunction createAdjustMap(values) {\n  var length = values.length\n  var index = -1\n  var result = {}\n  var value\n\n  while (++index < length) {\n    value = values[index]\n    result[value.toLowerCase()] = value\n  }\n\n  return result\n}\n","'use strict'\n\nvar schema = require('property-information/html')\nvar factory = require('./factory')\n\nvar html = factory(schema, 'div')\nhtml.displayName = 'html'\n\nmodule.exports = html\n","'use strict'\n\nmodule.exports = require('./html')\n","'use strict'\n\nexports.parse = parse\nexports.stringify = stringify\n\nvar comma = ','\nvar space = ' '\nvar empty = ''\n\n// Parse comma-separated tokens to an array.\nfunction parse(value) {\n  var values = []\n  var input = String(value || empty)\n  var index = input.indexOf(comma)\n  var lastIndex = 0\n  var end = false\n  var val\n\n  while (!end) {\n    if (index === -1) {\n      index = input.length\n      end = true\n    }\n\n    val = input.slice(lastIndex, index).trim()\n\n    if (val || !end) {\n      values.push(val)\n    }\n\n    lastIndex = index + 1\n    index = input.indexOf(comma, lastIndex)\n  }\n\n  return values\n}\n\n// Compile an array to comma-separated tokens.\n// `options.padLeft` (default: `true`) pads a space left of each token, and\n// `options.padRight` (default: `false`) pads a space to the right of each token.\nfunction stringify(values, options) {\n  var settings = options || {}\n  var left = settings.padLeft === false ? empty : space\n  var right = settings.padRight ? space : empty\n\n  // Ensure the last empty entry is seen.\n  if (values[values.length - 1] === empty) {\n    values = values.concat(empty)\n  }\n\n  return values.join(right + comma + left).trim()\n}\n","'use strict'\n\nvar normalize = require('./normalize')\nvar DefinedInfo = require('./lib/util/defined-info')\nvar Info = require('./lib/util/info')\n\nvar data = 'data'\n\nmodule.exports = find\n\nvar valid = /^data[-\\w.:]+$/i\nvar dash = /-[a-z]/g\nvar cap = /[A-Z]/g\n\nfunction find(schema, value) {\n  var normal = normalize(value)\n  var prop = value\n  var Type = Info\n\n  if (normal in schema.normal) {\n    return schema.property[schema.normal[normal]]\n  }\n\n  if (normal.length > 4 && normal.slice(0, 4) === data && valid.test(value)) {\n    // Attribute or property.\n    if (value.charAt(4) === '-') {\n      prop = datasetToProperty(value)\n    } else {\n      value = datasetToAttribute(value)\n    }\n\n    Type = DefinedInfo\n  }\n\n  return new Type(prop, value)\n}\n\nfunction datasetToProperty(attribute) {\n  var value = attribute.slice(5).replace(dash, camelcase)\n  return data + value.charAt(0).toUpperCase() + value.slice(1)\n}\n\nfunction datasetToAttribute(property) {\n  var value = property.slice(4)\n\n  if (dash.test(value)) {\n    return property\n  }\n\n  value = value.replace(cap, kebab)\n\n  if (value.charAt(0) !== '-') {\n    value = '-' + value\n  }\n\n  return data + value\n}\n\nfunction kebab($0) {\n  return '-' + $0.toLowerCase()\n}\n\nfunction camelcase($0) {\n  return $0.charAt(1).toUpperCase()\n}\n","'use strict'\n\nvar merge = require('./lib/util/merge')\nvar xlink = require('./lib/xlink')\nvar xml = require('./lib/xml')\nvar xmlns = require('./lib/xmlns')\nvar aria = require('./lib/aria')\nvar html = require('./lib/html')\n\nmodule.exports = merge([xml, xlink, xmlns, aria, html])\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\n\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\n\nmodule.exports = create({\n  transform: ariaTransform,\n  properties: {\n    ariaActiveDescendant: null,\n    ariaAtomic: booleanish,\n    ariaAutoComplete: null,\n    ariaBusy: booleanish,\n    ariaChecked: booleanish,\n    ariaColCount: number,\n    ariaColIndex: number,\n    ariaColSpan: number,\n    ariaControls: spaceSeparated,\n    ariaCurrent: null,\n    ariaDescribedBy: spaceSeparated,\n    ariaDetails: null,\n    ariaDisabled: booleanish,\n    ariaDropEffect: spaceSeparated,\n    ariaErrorMessage: null,\n    ariaExpanded: booleanish,\n    ariaFlowTo: spaceSeparated,\n    ariaGrabbed: booleanish,\n    ariaHasPopup: null,\n    ariaHidden: booleanish,\n    ariaInvalid: null,\n    ariaKeyShortcuts: null,\n    ariaLabel: null,\n    ariaLabelledBy: spaceSeparated,\n    ariaLevel: number,\n    ariaLive: null,\n    ariaModal: booleanish,\n    ariaMultiLine: booleanish,\n    ariaMultiSelectable: booleanish,\n    ariaOrientation: null,\n    ariaOwns: spaceSeparated,\n    ariaPlaceholder: null,\n    ariaPosInSet: number,\n    ariaPressed: booleanish,\n    ariaReadOnly: booleanish,\n    ariaRelevant: null,\n    ariaRequired: booleanish,\n    ariaRoleDescription: spaceSeparated,\n    ariaRowCount: number,\n    ariaRowIndex: number,\n    ariaRowSpan: number,\n    ariaSelected: booleanish,\n    ariaSetSize: number,\n    ariaSort: null,\n    ariaValueMax: number,\n    ariaValueMin: number,\n    ariaValueNow: number,\n    ariaValueText: null,\n    role: null\n  }\n})\n\nfunction ariaTransform(_, prop) {\n  return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n}\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\nvar caseInsensitiveTransform = require('./util/case-insensitive-transform')\n\nvar boolean = types.boolean\nvar overloadedBoolean = types.overloadedBoolean\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\nvar commaSeparated = types.commaSeparated\n\nmodule.exports = create({\n  space: 'html',\n  attributes: {\n    acceptcharset: 'accept-charset',\n    classname: 'class',\n    htmlfor: 'for',\n    httpequiv: 'http-equiv'\n  },\n  transform: caseInsensitiveTransform,\n  mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n  properties: {\n    // Standard Properties.\n    abbr: null,\n    accept: commaSeparated,\n    acceptCharset: spaceSeparated,\n    accessKey: spaceSeparated,\n    action: null,\n    allow: null,\n    allowFullScreen: boolean,\n    allowPaymentRequest: boolean,\n    allowUserMedia: boolean,\n    alt: null,\n    as: null,\n    async: boolean,\n    autoCapitalize: null,\n    autoComplete: spaceSeparated,\n    autoFocus: boolean,\n    autoPlay: boolean,\n    capture: boolean,\n    charSet: null,\n    checked: boolean,\n    cite: null,\n    className: spaceSeparated,\n    cols: number,\n    colSpan: null,\n    content: null,\n    contentEditable: booleanish,\n    controls: boolean,\n    controlsList: spaceSeparated,\n    coords: number | commaSeparated,\n    crossOrigin: null,\n    data: null,\n    dateTime: null,\n    decoding: null,\n    default: boolean,\n    defer: boolean,\n    dir: null,\n    dirName: null,\n    disabled: boolean,\n    download: overloadedBoolean,\n    draggable: booleanish,\n    encType: null,\n    enterKeyHint: null,\n    form: null,\n    formAction: null,\n    formEncType: null,\n    formMethod: null,\n    formNoValidate: boolean,\n    formTarget: null,\n    headers: spaceSeparated,\n    height: number,\n    hidden: boolean,\n    high: number,\n    href: null,\n    hrefLang: null,\n    htmlFor: spaceSeparated,\n    httpEquiv: spaceSeparated,\n    id: null,\n    imageSizes: null,\n    imageSrcSet: commaSeparated,\n    inputMode: null,\n    integrity: null,\n    is: null,\n    isMap: boolean,\n    itemId: null,\n    itemProp: spaceSeparated,\n    itemRef: spaceSeparated,\n    itemScope: boolean,\n    itemType: spaceSeparated,\n    kind: null,\n    label: null,\n    lang: null,\n    language: null,\n    list: null,\n    loading: null,\n    loop: boolean,\n    low: number,\n    manifest: null,\n    max: null,\n    maxLength: number,\n    media: null,\n    method: null,\n    min: null,\n    minLength: number,\n    multiple: boolean,\n    muted: boolean,\n    name: null,\n    nonce: null,\n    noModule: boolean,\n    noValidate: boolean,\n    onAbort: null,\n    onAfterPrint: null,\n    onAuxClick: null,\n    onBeforePrint: null,\n    onBeforeUnload: null,\n    onBlur: null,\n    onCancel: null,\n    onCanPlay: null,\n    onCanPlayThrough: null,\n    onChange: null,\n    onClick: null,\n    onClose: null,\n    onContextMenu: null,\n    onCopy: null,\n    onCueChange: null,\n    onCut: null,\n    onDblClick: null,\n    onDrag: null,\n    onDragEnd: null,\n    onDragEnter: null,\n    onDragExit: null,\n    onDragLeave: null,\n    onDragOver: null,\n    onDragStart: null,\n    onDrop: null,\n    onDurationChange: null,\n    onEmptied: null,\n    onEnded: null,\n    onError: null,\n    onFocus: null,\n    onFormData: null,\n    onHashChange: null,\n    onInput: null,\n    onInvalid: null,\n    onKeyDown: null,\n    onKeyPress: null,\n    onKeyUp: null,\n    onLanguageChange: null,\n    onLoad: null,\n    onLoadedData: null,\n    onLoadedMetadata: null,\n    onLoadEnd: null,\n    onLoadStart: null,\n    onMessage: null,\n    onMessageError: null,\n    onMouseDown: null,\n    onMouseEnter: null,\n    onMouseLeave: null,\n    onMouseMove: null,\n    onMouseOut: null,\n    onMouseOver: null,\n    onMouseUp: null,\n    onOffline: null,\n    onOnline: null,\n    onPageHide: null,\n    onPageShow: null,\n    onPaste: null,\n    onPause: null,\n    onPlay: null,\n    onPlaying: null,\n    onPopState: null,\n    onProgress: null,\n    onRateChange: null,\n    onRejectionHandled: null,\n    onReset: null,\n    onResize: null,\n    onScroll: null,\n    onSecurityPolicyViolation: null,\n    onSeeked: null,\n    onSeeking: null,\n    onSelect: null,\n    onSlotChange: null,\n    onStalled: null,\n    onStorage: null,\n    onSubmit: null,\n    onSuspend: null,\n    onTimeUpdate: null,\n    onToggle: null,\n    onUnhandledRejection: null,\n    onUnload: null,\n    onVolumeChange: null,\n    onWaiting: null,\n    onWheel: null,\n    open: boolean,\n    optimum: number,\n    pattern: null,\n    ping: spaceSeparated,\n    placeholder: null,\n    playsInline: boolean,\n    poster: null,\n    preload: null,\n    readOnly: boolean,\n    referrerPolicy: null,\n    rel: spaceSeparated,\n    required: boolean,\n    reversed: boolean,\n    rows: number,\n    rowSpan: number,\n    sandbox: spaceSeparated,\n    scope: null,\n    scoped: boolean,\n    seamless: boolean,\n    selected: boolean,\n    shape: null,\n    size: number,\n    sizes: null,\n    slot: null,\n    span: number,\n    spellCheck: booleanish,\n    src: null,\n    srcDoc: null,\n    srcLang: null,\n    srcSet: commaSeparated,\n    start: number,\n    step: null,\n    style: null,\n    tabIndex: number,\n    target: null,\n    title: null,\n    translate: null,\n    type: null,\n    typeMustMatch: boolean,\n    useMap: null,\n    value: booleanish,\n    width: number,\n    wrap: null,\n\n    // Legacy.\n    // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n    align: null, // Several. Use CSS `text-align` instead,\n    aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n    archive: spaceSeparated, // `<object>`. List of URIs to archives\n    axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n    background: null, // `<body>`. Use CSS `background-image` instead\n    bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n    border: number, // `<table>`. Use CSS `border-width` instead,\n    borderColor: null, // `<table>`. Use CSS `border-color` instead,\n    bottomMargin: number, // `<body>`\n    cellPadding: null, // `<table>`\n    cellSpacing: null, // `<table>`\n    char: null, // Several table elements. When `align=char`, sets the character to align on\n    charOff: null, // Several table elements. When `char`, offsets the alignment\n    classId: null, // `<object>`\n    clear: null, // `<br>`. Use CSS `clear` instead\n    code: null, // `<object>`\n    codeBase: null, // `<object>`\n    codeType: null, // `<object>`\n    color: null, // `<font>` and `<hr>`. Use CSS instead\n    compact: boolean, // Lists. Use CSS to reduce space between items instead\n    declare: boolean, // `<object>`\n    event: null, // `<script>`\n    face: null, // `<font>`. Use CSS instead\n    frame: null, // `<table>`\n    frameBorder: null, // `<iframe>`. Use CSS `border` instead\n    hSpace: number, // `<img>` and `<object>`\n    leftMargin: number, // `<body>`\n    link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n    longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n    lowSrc: null, // `<img>`. Use a `<picture>`\n    marginHeight: number, // `<body>`\n    marginWidth: number, // `<body>`\n    noResize: boolean, // `<frame>`\n    noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n    noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n    noWrap: boolean, // `<td>` and `<th>`\n    object: null, // `<applet>`\n    profile: null, // `<head>`\n    prompt: null, // `<isindex>`\n    rev: null, // `<link>`\n    rightMargin: number, // `<body>`\n    rules: null, // `<table>`\n    scheme: null, // `<meta>`\n    scrolling: booleanish, // `<frame>`. Use overflow in the child context\n    standby: null, // `<object>`\n    summary: null, // `<table>`\n    text: null, // `<body>`. Use CSS `color` instead\n    topMargin: number, // `<body>`\n    valueType: null, // `<param>`\n    version: null, // `<html>`. Use a doctype.\n    vAlign: null, // Several. Use CSS `vertical-align` instead\n    vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n    vSpace: number, // `<img>` and `<object>`\n\n    // Non-standard Properties.\n    allowTransparency: null,\n    autoCorrect: null,\n    autoSave: null,\n    disablePictureInPicture: boolean,\n    disableRemotePlayback: boolean,\n    prefix: null,\n    property: null,\n    results: number,\n    security: null,\n    unselectable: null\n  }\n})\n","'use strict'\n\nvar caseSensitiveTransform = require('./case-sensitive-transform')\n\nmodule.exports = caseInsensitiveTransform\n\nfunction caseInsensitiveTransform(attributes, property) {\n  return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","'use strict'\n\nmodule.exports = caseSensitiveTransform\n\nfunction caseSensitiveTransform(attributes, attribute) {\n  return attribute in attributes ? attributes[attribute] : attribute\n}\n","'use strict'\n\nvar normalize = require('../../normalize')\nvar Schema = require('./schema')\nvar DefinedInfo = require('./defined-info')\n\nmodule.exports = create\n\nfunction create(definition) {\n  var space = definition.space\n  var mustUseProperty = definition.mustUseProperty || []\n  var attributes = definition.attributes || {}\n  var props = definition.properties\n  var transform = definition.transform\n  var property = {}\n  var normal = {}\n  var prop\n  var info\n\n  for (prop in props) {\n    info = new DefinedInfo(\n      prop,\n      transform(attributes, prop),\n      props[prop],\n      space\n    )\n\n    if (mustUseProperty.indexOf(prop) !== -1) {\n      info.mustUseProperty = true\n    }\n\n    property[prop] = info\n\n    normal[normalize(prop)] = prop\n    normal[normalize(info.attribute)] = prop\n  }\n\n  return new Schema(property, normal, space)\n}\n","'use strict'\n\nvar Info = require('./info')\nvar types = require('./types')\n\nmodule.exports = DefinedInfo\n\nDefinedInfo.prototype = new Info()\nDefinedInfo.prototype.defined = true\n\nvar checks = [\n  'boolean',\n  'booleanish',\n  'overloadedBoolean',\n  'number',\n  'commaSeparated',\n  'spaceSeparated',\n  'commaOrSpaceSeparated'\n]\nvar checksLength = checks.length\n\nfunction DefinedInfo(property, attribute, mask, space) {\n  var index = -1\n  var check\n\n  mark(this, 'space', space)\n\n  Info.call(this, property, attribute)\n\n  while (++index < checksLength) {\n    check = checks[index]\n    mark(this, check, (mask & types[check]) === types[check])\n  }\n}\n\nfunction mark(values, key, value) {\n  if (value) {\n    values[key] = value\n  }\n}\n","'use strict'\n\nmodule.exports = Info\n\nvar proto = Info.prototype\n\nproto.space = null\nproto.attribute = null\nproto.property = null\nproto.boolean = false\nproto.booleanish = false\nproto.overloadedBoolean = false\nproto.number = false\nproto.commaSeparated = false\nproto.spaceSeparated = false\nproto.commaOrSpaceSeparated = false\nproto.mustUseProperty = false\nproto.defined = false\n\nfunction Info(property, attribute) {\n  this.property = property\n  this.attribute = attribute\n}\n","'use strict'\n\nvar xtend = require('xtend')\nvar Schema = require('./schema')\n\nmodule.exports = merge\n\nfunction merge(definitions) {\n  var length = definitions.length\n  var property = []\n  var normal = []\n  var index = -1\n  var info\n  var space\n\n  while (++index < length) {\n    info = definitions[index]\n    property.push(info.property)\n    normal.push(info.normal)\n    space = info.space\n  }\n\n  return new Schema(\n    xtend.apply(null, property),\n    xtend.apply(null, normal),\n    space\n  )\n}\n","'use strict'\n\nmodule.exports = Schema\n\nvar proto = Schema.prototype\n\nproto.space = null\nproto.normal = {}\nproto.property = {}\n\nfunction Schema(property, normal, space) {\n  this.property = property\n  this.normal = normal\n\n  if (space) {\n    this.space = space\n  }\n}\n","'use strict'\n\nvar powers = 0\n\nexports.boolean = increment()\nexports.booleanish = increment()\nexports.overloadedBoolean = increment()\nexports.number = increment()\nexports.spaceSeparated = increment()\nexports.commaSeparated = increment()\nexports.commaOrSpaceSeparated = increment()\n\nfunction increment() {\n  return Math.pow(2, ++powers)\n}\n","'use strict'\n\nvar create = require('./util/create')\n\nmodule.exports = create({\n  space: 'xlink',\n  transform: xlinkTransform,\n  properties: {\n    xLinkActuate: null,\n    xLinkArcRole: null,\n    xLinkHref: null,\n    xLinkRole: null,\n    xLinkShow: null,\n    xLinkTitle: null,\n    xLinkType: null\n  }\n})\n\nfunction xlinkTransform(_, prop) {\n  return 'xlink:' + prop.slice(5).toLowerCase()\n}\n","'use strict'\n\nvar create = require('./util/create')\n\nmodule.exports = create({\n  space: 'xml',\n  transform: xmlTransform,\n  properties: {\n    xmlLang: null,\n    xmlBase: null,\n    xmlSpace: null\n  }\n})\n\nfunction xmlTransform(_, prop) {\n  return 'xml:' + prop.slice(3).toLowerCase()\n}\n","'use strict'\n\nvar create = require('./util/create')\nvar caseInsensitiveTransform = require('./util/case-insensitive-transform')\n\nmodule.exports = create({\n  space: 'xmlns',\n  attributes: {\n    xmlnsxlink: 'xmlns:xlink'\n  },\n  transform: caseInsensitiveTransform,\n  properties: {\n    xmlns: null,\n    xmlnsXLink: null\n  }\n})\n","'use strict'\n\nmodule.exports = normalize\n\nfunction normalize(value) {\n  return value.toLowerCase()\n}\n","'use strict'\n\nexports.parse = parse\nexports.stringify = stringify\n\nvar empty = ''\nvar space = ' '\nvar whiteSpace = /[ \\t\\n\\r\\f]+/g\n\nfunction parse(value) {\n  var input = String(value || empty).trim()\n  return input === empty ? [] : input.split(whiteSpace)\n}\n\nfunction stringify(values) {\n  return values.join(space).trim()\n}\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n  if (typeof style !== 'string') {\n    throw new TypeError('First argument must be a string');\n  }\n\n  if (!style) return [];\n\n  options = options || {};\n\n  /**\n   * Positional.\n   */\n  var lineno = 1;\n  var column = 1;\n\n  /**\n   * Update lineno and column based on `str`.\n   *\n   * @param {String} str\n   */\n  function updatePosition(str) {\n    var lines = str.match(NEWLINE_REGEX);\n    if (lines) lineno += lines.length;\n    var i = str.lastIndexOf(NEWLINE);\n    column = ~i ? str.length - i : column + str.length;\n  }\n\n  /**\n   * Mark position and patch `node.position`.\n   *\n   * @return {Function}\n   */\n  function position() {\n    var start = { line: lineno, column: column };\n    return function(node) {\n      node.position = new Position(start);\n      whitespace();\n      return node;\n    };\n  }\n\n  /**\n   * Store position information for a node.\n   *\n   * @constructor\n   * @property {Object} start\n   * @property {Object} end\n   * @property {undefined|String} source\n   */\n  function Position(start) {\n    this.start = start;\n    this.end = { line: lineno, column: column };\n    this.source = options.source;\n  }\n\n  /**\n   * Non-enumerable source string.\n   */\n  Position.prototype.content = style;\n\n  var errorsList = [];\n\n  /**\n   * Error `msg`.\n   *\n   * @param {String} msg\n   * @throws {Error}\n   */\n  function error(msg) {\n    var err = new Error(\n      options.source + ':' + lineno + ':' + column + ': ' + msg\n    );\n    err.reason = msg;\n    err.filename = options.source;\n    err.line = lineno;\n    err.column = column;\n    err.source = style;\n\n    if (options.silent) {\n      errorsList.push(err);\n    } else {\n      throw err;\n    }\n  }\n\n  /**\n   * Match `re` and return captures.\n   *\n   * @param {RegExp} re\n   * @return {undefined|Array}\n   */\n  function match(re) {\n    var m = re.exec(style);\n    if (!m) return;\n    var str = m[0];\n    updatePosition(str);\n    style = style.slice(str.length);\n    return m;\n  }\n\n  /**\n   * Parse whitespace.\n   */\n  function whitespace() {\n    match(WHITESPACE_REGEX);\n  }\n\n  /**\n   * Parse comments.\n   *\n   * @param {Object[]} [rules]\n   * @return {Object[]}\n   */\n  function comments(rules) {\n    var c;\n    rules = rules || [];\n    while ((c = comment())) {\n      if (c !== false) {\n        rules.push(c);\n      }\n    }\n    return rules;\n  }\n\n  /**\n   * Parse comment.\n   *\n   * @return {Object}\n   * @throws {Error}\n   */\n  function comment() {\n    var pos = position();\n    if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n    var i = 2;\n    while (\n      EMPTY_STRING != style.charAt(i) &&\n      (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n    ) {\n      ++i;\n    }\n    i += 2;\n\n    if (EMPTY_STRING === style.charAt(i - 1)) {\n      return error('End of comment missing');\n    }\n\n    var str = style.slice(2, i - 2);\n    column += 2;\n    updatePosition(str);\n    style = style.slice(i);\n    column += 2;\n\n    return pos({\n      type: TYPE_COMMENT,\n      comment: str\n    });\n  }\n\n  /**\n   * Parse declaration.\n   *\n   * @return {Object}\n   * @throws {Error}\n   */\n  function declaration() {\n    var pos = position();\n\n    // prop\n    var prop = match(PROPERTY_REGEX);\n    if (!prop) return;\n    comment();\n\n    // :\n    if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n    // val\n    var val = match(VALUE_REGEX);\n\n    var ret = pos({\n      type: TYPE_DECLARATION,\n      property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n      value: val\n        ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n        : EMPTY_STRING\n    });\n\n    // ;\n    match(SEMICOLON_REGEX);\n\n    return ret;\n  }\n\n  /**\n   * Parse declarations.\n   *\n   * @return {Object[]}\n   */\n  function declarations() {\n    var decls = [];\n\n    comments(decls);\n\n    // declarations\n    var decl;\n    while ((decl = declaration())) {\n      if (decl !== false) {\n        decls.push(decl);\n        comments(decls);\n      }\n    }\n\n    return decls;\n  }\n\n  whitespace();\n  return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n  return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","'use strict'\n\nmodule.exports = alphabetical\n\n// Check if the given character code, or the character code at the first\n// character, is alphabetical.\nfunction alphabetical(character) {\n  var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n  return (\n    (code >= 97 && code <= 122) /* a-z */ ||\n    (code >= 65 && code <= 90) /* A-Z */\n  )\n}\n","'use strict'\n\nvar alphabetical = require('is-alphabetical')\nvar decimal = require('is-decimal')\n\nmodule.exports = alphanumerical\n\n// Check if the given character code, or the character code at the first\n// character, is alphanumerical.\nfunction alphanumerical(character) {\n  return alphabetical(character) || decimal(character)\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n  return obj != null && obj.constructor != null &&\n    typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict'\n\nmodule.exports = decimal\n\n// Check if the given character code, or the character code at the first\n// character, is decimal.\nfunction decimal(character) {\n  var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n  return code >= 48 && code <= 57 /* 0-9 */\n}\n","'use strict'\n\nmodule.exports = hexadecimal\n\n// Check if the given character code, or the character code at the first\n// character, is hexadecimal.\nfunction hexadecimal(character) {\n  var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n  return (\n    (code >= 97 /* a */ && code <= 102) /* z */ ||\n    (code >= 65 /* A */ && code <= 70) /* Z */ ||\n    (code >= 48 /* A */ && code <= 57) /* Z */\n  )\n}\n","'use strict'\n\n/* eslint-env browser */\n\nvar el\n\nvar semicolon = 59 //  ';'\n\nmodule.exports = decodeEntity\n\nfunction decodeEntity(characters) {\n  var entity = '&' + characters + ';'\n  var char\n\n  el = el || document.createElement('i')\n  el.innerHTML = entity\n  char = el.textContent\n\n  // Some entities do not require the closing semicolon (`&not` - for instance),\n  // which leads to situations where parsing the assumed entity of &notit; 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 (`&semi;`), we can\n  // assume that the matching was incomplete\n  if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n    return false\n  }\n\n  // If the decoded string is equal to the input, the entity was not valid\n  return char === entity ? false : char\n}\n","'use strict'\n\nvar legacy = require('character-entities-legacy')\nvar invalid = require('character-reference-invalid')\nvar decimal = require('is-decimal')\nvar hexadecimal = require('is-hexadecimal')\nvar alphanumerical = require('is-alphanumerical')\nvar decodeEntity = require('./decode-entity')\n\nmodule.exports = parseEntities\n\nvar own = {}.hasOwnProperty\nvar fromCharCode = String.fromCharCode\nvar noop = Function.prototype\n\n// Default settings.\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}\n\n// Characters.\nvar tab = 9 // '\\t'\nvar lineFeed = 10 // '\\n'\nvar formFeed = 12 // '\\f'\nvar space = 32 // ' '\nvar ampersand = 38 // '&'\nvar semicolon = 59 // ';'\nvar lessThan = 60 // '<'\nvar equalsTo = 61 // '='\nvar numberSign = 35 // '#'\nvar uppercaseX = 88 // 'X'\nvar lowercaseX = 120 // 'x'\nvar replacementCharacter = 65533 // '�'\n\n// Reference types.\nvar name = 'named'\nvar hexa = 'hexadecimal'\nvar deci = 'decimal'\n\n// Map of bases.\nvar bases = {}\n\nbases[hexa] = 16\nbases[deci] = 10\n\n// 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).\nvar tests = {}\n\ntests[name] = alphanumerical\ntests[deci] = decimal\ntests[hexa] = hexadecimal\n\n// Warning types.\nvar namedNotTerminated = 1\nvar numericNotTerminated = 2\nvar namedEmpty = 3\nvar numericEmpty = 4\nvar namedUnknown = 5\nvar numericDisallowed = 6\nvar numericProhibited = 7\n\n// Warning messages.\nvar messages = {}\n\nmessages[namedNotTerminated] =\n  'Named character references must be terminated by a semicolon'\nmessages[numericNotTerminated] =\n  '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] =\n  'Numeric character references cannot be disallowed'\nmessages[numericProhibited] =\n  'Numeric character references cannot be outside the permissible Unicode range'\n\n// Wrap to ensure clean parameters are given to `parse`.\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] =\n      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}\n\n// Parse entities.\n// eslint-disable-next-line complexity\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  }\n\n  // Cache the current point.\n  prev = now()\n\n  // Wrap `handleWarning`.\n  warning = handleWarning ? parseError : noop\n\n  // Ensure the algorithm walks over the first character and the end\n  // (inclusive).\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)\n\n      // The behaviour depends on the identity of the next character.\n      if (\n        following === tab ||\n        following === lineFeed ||\n        following === formFeed ||\n        following === space ||\n        following === ampersand ||\n        following === lessThan ||\n        following !== following ||\n        (additional && following === additional)\n      ) {\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\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\n\n        // The behaviour further depends on the next character.\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)\n\n        // 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        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\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) {\n        // 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          }\n\n          // If the reference is not terminated, warn.\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        }\n\n        // When terminated and number, parse as either hexadecimal or decimal.\n        reference = parseInt(characters, bases[type])\n\n        // Trigger a warning when the parsed number is prohibited, and replace\n        // with replacement character.\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 = ''\n\n          // Trigger a warning when the parsed number should not be used.\n          if (disallowed(reference)) {\n            warning(numericDisallowed, diff)\n          }\n\n          // Stringify the number.\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      }\n\n      // Found it!\n      // First eat the queued characters as normal text, then eat an entity.\n      if (reference) {\n        flush()\n\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(\n            referenceContext,\n            reference,\n            {start: prev, end: next},\n            value.slice(start - 1, end)\n          )\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 (\n        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  }\n\n  // Return the reduced nodes.\n  return result.join('')\n\n  // Get current position.\n  function now() {\n    return {\n      line: line,\n      column: column,\n      offset: index + (pos.offset || 0)\n    }\n  }\n\n  // “Throw” a parse-error: a warning.\n  function parseError(code, offset) {\n    var position = now()\n\n    position.column += offset\n    position.offset += offset\n\n    handleWarning.call(warningContext, messages[code], position, code)\n  }\n\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  function flush() {\n    if (queue) {\n      result.push(queue)\n\n      if (handleText) {\n        handleText.call(textContext, queue, {start: prev, end: now()})\n      }\n\n      queue = ''\n    }\n  }\n}\n\n// Check if `character` is outside the permissible unicode range.\nfunction prohibited(code) {\n  return (code >= 0xd800 && code <= 0xdfff) || code > 0x10ffff\n}\n\n// Check if `character` is disallowed.\nfunction disallowed(code) {\n  return (\n    (code >= 0x0001 && code <= 0x0008) ||\n    code === 0x000b ||\n    (code >= 0x000d && code <= 0x001f) ||\n    (code >= 0x007f && code <= 0x009f) ||\n    (code >= 0xfdd0 && code <= 0xfdef) ||\n    (code & 0xffff) === 0xffff ||\n    (code & 0xffff) === 0xfffe\n  )\n}\n","'use strict';\n\nconst { DOCUMENT_MODE } = require('./html');\n\n//Const\nconst VALID_DOCTYPE_NAME = 'html';\nconst VALID_SYSTEM_ID = 'about:legacy-compat';\nconst QUIRKS_MODE_SYSTEM_ID = 'http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd';\n\nconst QUIRKS_MODE_PUBLIC_ID_PREFIXES = [\n    '+//silmaril//dtd html pro v0r11 19970101//',\n    '-//as//dtd html 3.0 aswedit + extensions//',\n    '-//advasoft ltd//dtd html 3.0 aswedit + extensions//',\n    '-//ietf//dtd html 2.0 level 1//',\n    '-//ietf//dtd html 2.0 level 2//',\n    '-//ietf//dtd html 2.0 strict level 1//',\n    '-//ietf//dtd html 2.0 strict level 2//',\n    '-//ietf//dtd html 2.0 strict//',\n    '-//ietf//dtd html 2.0//',\n    '-//ietf//dtd html 2.1e//',\n    '-//ietf//dtd html 3.0//',\n    '-//ietf//dtd html 3.2 final//',\n    '-//ietf//dtd html 3.2//',\n    '-//ietf//dtd html 3//',\n    '-//ietf//dtd html level 0//',\n    '-//ietf//dtd html level 1//',\n    '-//ietf//dtd html level 2//',\n    '-//ietf//dtd html level 3//',\n    '-//ietf//dtd html strict level 0//',\n    '-//ietf//dtd html strict level 1//',\n    '-//ietf//dtd html strict level 2//',\n    '-//ietf//dtd html strict level 3//',\n    '-//ietf//dtd html strict//',\n    '-//ietf//dtd html//',\n    '-//metrius//dtd metrius presentational//',\n    '-//microsoft//dtd internet explorer 2.0 html strict//',\n    '-//microsoft//dtd internet explorer 2.0 html//',\n    '-//microsoft//dtd internet explorer 2.0 tables//',\n    '-//microsoft//dtd internet explorer 3.0 html strict//',\n    '-//microsoft//dtd internet explorer 3.0 html//',\n    '-//microsoft//dtd internet explorer 3.0 tables//',\n    '-//netscape comm. corp.//dtd html//',\n    '-//netscape comm. corp.//dtd strict html//',\n    \"-//o'reilly and associates//dtd html 2.0//\",\n    \"-//o'reilly and associates//dtd html extended 1.0//\",\n    \"-//o'reilly and associates//dtd html extended relaxed 1.0//\",\n    '-//sq//dtd html 2.0 hotmetal + extensions//',\n    '-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//',\n    '-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//',\n    '-//spyglass//dtd html 2.0 extended//',\n    '-//sun microsystems corp.//dtd hotjava html//',\n    '-//sun microsystems corp.//dtd hotjava strict html//',\n    '-//w3c//dtd html 3 1995-03-24//',\n    '-//w3c//dtd html 3.2 draft//',\n    '-//w3c//dtd html 3.2 final//',\n    '-//w3c//dtd html 3.2//',\n    '-//w3c//dtd html 3.2s draft//',\n    '-//w3c//dtd html 4.0 frameset//',\n    '-//w3c//dtd html 4.0 transitional//',\n    '-//w3c//dtd html experimental 19960712//',\n    '-//w3c//dtd html experimental 970421//',\n    '-//w3c//dtd w3 html//',\n    '-//w3o//dtd w3 html 3.0//',\n    '-//webtechs//dtd mozilla html 2.0//',\n    '-//webtechs//dtd mozilla html//'\n];\n\nconst QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = QUIRKS_MODE_PUBLIC_ID_PREFIXES.concat([\n    '-//w3c//dtd html 4.01 frameset//',\n    '-//w3c//dtd html 4.01 transitional//'\n]);\n\nconst QUIRKS_MODE_PUBLIC_IDS = ['-//w3o//dtd w3 html strict 3.0//en//', '-/w3c/dtd html 4.0 transitional/en', 'html'];\nconst LIMITED_QUIRKS_PUBLIC_ID_PREFIXES = ['-//w3c//dtd xhtml 1.0 frameset//', '-//w3c//dtd xhtml 1.0 transitional//'];\n\nconst LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES = LIMITED_QUIRKS_PUBLIC_ID_PREFIXES.concat([\n    '-//w3c//dtd html 4.01 frameset//',\n    '-//w3c//dtd html 4.01 transitional//'\n]);\n\n//Utils\nfunction enquoteDoctypeId(id) {\n    const quote = id.indexOf('\"') !== -1 ? \"'\" : '\"';\n\n    return quote + id + quote;\n}\n\nfunction hasPrefix(publicId, prefixes) {\n    for (let i = 0; i < prefixes.length; i++) {\n        if (publicId.indexOf(prefixes[i]) === 0) {\n            return true;\n        }\n    }\n\n    return false;\n}\n\n//API\nexports.isConforming = function(token) {\n    return (\n        token.name === VALID_DOCTYPE_NAME &&\n        token.publicId === null &&\n        (token.systemId === null || token.systemId === VALID_SYSTEM_ID)\n    );\n};\n\nexports.getDocumentMode = function(token) {\n    if (token.name !== VALID_DOCTYPE_NAME) {\n        return DOCUMENT_MODE.QUIRKS;\n    }\n\n    const systemId = token.systemId;\n\n    if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID) {\n        return DOCUMENT_MODE.QUIRKS;\n    }\n\n    let publicId = token.publicId;\n\n    if (publicId !== null) {\n        publicId = publicId.toLowerCase();\n\n        if (QUIRKS_MODE_PUBLIC_IDS.indexOf(publicId) > -1) {\n            return DOCUMENT_MODE.QUIRKS;\n        }\n\n        let prefixes = systemId === null ? QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES : QUIRKS_MODE_PUBLIC_ID_PREFIXES;\n\n        if (hasPrefix(publicId, prefixes)) {\n            return DOCUMENT_MODE.QUIRKS;\n        }\n\n        prefixes =\n            systemId === null ? LIMITED_QUIRKS_PUBLIC_ID_PREFIXES : LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES;\n\n        if (hasPrefix(publicId, prefixes)) {\n            return DOCUMENT_MODE.LIMITED_QUIRKS;\n        }\n    }\n\n    return DOCUMENT_MODE.NO_QUIRKS;\n};\n\nexports.serializeContent = function(name, publicId, systemId) {\n    let str = '!DOCTYPE ';\n\n    if (name) {\n        str += name;\n    }\n\n    if (publicId) {\n        str += ' PUBLIC ' + enquoteDoctypeId(publicId);\n    } else if (systemId) {\n        str += ' SYSTEM';\n    }\n\n    if (systemId !== null) {\n        str += ' ' + enquoteDoctypeId(systemId);\n    }\n\n    return str;\n};\n","'use strict';\n\nmodule.exports = {\n    controlCharacterInInputStream: 'control-character-in-input-stream',\n    noncharacterInInputStream: 'noncharacter-in-input-stream',\n    surrogateInInputStream: 'surrogate-in-input-stream',\n    nonVoidHtmlElementStartTagWithTrailingSolidus: 'non-void-html-element-start-tag-with-trailing-solidus',\n    endTagWithAttributes: 'end-tag-with-attributes',\n    endTagWithTrailingSolidus: 'end-tag-with-trailing-solidus',\n    unexpectedSolidusInTag: 'unexpected-solidus-in-tag',\n    unexpectedNullCharacter: 'unexpected-null-character',\n    unexpectedQuestionMarkInsteadOfTagName: 'unexpected-question-mark-instead-of-tag-name',\n    invalidFirstCharacterOfTagName: 'invalid-first-character-of-tag-name',\n    unexpectedEqualsSignBeforeAttributeName: 'unexpected-equals-sign-before-attribute-name',\n    missingEndTagName: 'missing-end-tag-name',\n    unexpectedCharacterInAttributeName: 'unexpected-character-in-attribute-name',\n    unknownNamedCharacterReference: 'unknown-named-character-reference',\n    missingSemicolonAfterCharacterReference: 'missing-semicolon-after-character-reference',\n    unexpectedCharacterAfterDoctypeSystemIdentifier: 'unexpected-character-after-doctype-system-identifier',\n    unexpectedCharacterInUnquotedAttributeValue: 'unexpected-character-in-unquoted-attribute-value',\n    eofBeforeTagName: 'eof-before-tag-name',\n    eofInTag: 'eof-in-tag',\n    missingAttributeValue: 'missing-attribute-value',\n    missingWhitespaceBetweenAttributes: 'missing-whitespace-between-attributes',\n    missingWhitespaceAfterDoctypePublicKeyword: 'missing-whitespace-after-doctype-public-keyword',\n    missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers:\n        'missing-whitespace-between-doctype-public-and-system-identifiers',\n    missingWhitespaceAfterDoctypeSystemKeyword: 'missing-whitespace-after-doctype-system-keyword',\n    missingQuoteBeforeDoctypePublicIdentifier: 'missing-quote-before-doctype-public-identifier',\n    missingQuoteBeforeDoctypeSystemIdentifier: 'missing-quote-before-doctype-system-identifier',\n    missingDoctypePublicIdentifier: 'missing-doctype-public-identifier',\n    missingDoctypeSystemIdentifier: 'missing-doctype-system-identifier',\n    abruptDoctypePublicIdentifier: 'abrupt-doctype-public-identifier',\n    abruptDoctypeSystemIdentifier: 'abrupt-doctype-system-identifier',\n    cdataInHtmlContent: 'cdata-in-html-content',\n    incorrectlyOpenedComment: 'incorrectly-opened-comment',\n    eofInScriptHtmlCommentLikeText: 'eof-in-script-html-comment-like-text',\n    eofInDoctype: 'eof-in-doctype',\n    nestedComment: 'nested-comment',\n    abruptClosingOfEmptyComment: 'abrupt-closing-of-empty-comment',\n    eofInComment: 'eof-in-comment',\n    incorrectlyClosedComment: 'incorrectly-closed-comment',\n    eofInCdata: 'eof-in-cdata',\n    absenceOfDigitsInNumericCharacterReference: 'absence-of-digits-in-numeric-character-reference',\n    nullCharacterReference: 'null-character-reference',\n    surrogateCharacterReference: 'surrogate-character-reference',\n    characterReferenceOutsideUnicodeRange: 'character-reference-outside-unicode-range',\n    controlCharacterReference: 'control-character-reference',\n    noncharacterCharacterReference: 'noncharacter-character-reference',\n    missingWhitespaceBeforeDoctypeName: 'missing-whitespace-before-doctype-name',\n    missingDoctypeName: 'missing-doctype-name',\n    invalidCharacterSequenceAfterDoctypeName: 'invalid-character-sequence-after-doctype-name',\n    duplicateAttribute: 'duplicate-attribute',\n    nonConformingDoctype: 'non-conforming-doctype',\n    missingDoctype: 'missing-doctype',\n    misplacedDoctype: 'misplaced-doctype',\n    endTagWithoutMatchingOpenElement: 'end-tag-without-matching-open-element',\n    closingOfElementWithOpenChildElements: 'closing-of-element-with-open-child-elements',\n    disallowedContentInNoscriptInHead: 'disallowed-content-in-noscript-in-head',\n    openElementsLeftAfterEof: 'open-elements-left-after-eof',\n    abandonedHeadElementChild: 'abandoned-head-element-child',\n    misplacedStartTagForHeadElement: 'misplaced-start-tag-for-head-element',\n    nestedNoscriptInHead: 'nested-noscript-in-head',\n    eofInElementThatCanContainOnlyText: 'eof-in-element-that-can-contain-only-text'\n};\n","'use strict';\n\nconst Tokenizer = require('../tokenizer');\nconst HTML = require('./html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\nconst ATTRS = HTML.ATTRS;\n\n//MIME types\nconst MIME_TYPES = {\n    TEXT_HTML: 'text/html',\n    APPLICATION_XML: 'application/xhtml+xml'\n};\n\n//Attributes\nconst DEFINITION_URL_ATTR = 'definitionurl';\nconst ADJUSTED_DEFINITION_URL_ATTR = 'definitionURL';\nconst SVG_ATTRS_ADJUSTMENT_MAP = {\n    attributename: 'attributeName',\n    attributetype: 'attributeType',\n    basefrequency: 'baseFrequency',\n    baseprofile: 'baseProfile',\n    calcmode: 'calcMode',\n    clippathunits: 'clipPathUnits',\n    diffuseconstant: 'diffuseConstant',\n    edgemode: 'edgeMode',\n    filterunits: 'filterUnits',\n    glyphref: 'glyphRef',\n    gradienttransform: 'gradientTransform',\n    gradientunits: 'gradientUnits',\n    kernelmatrix: 'kernelMatrix',\n    kernelunitlength: 'kernelUnitLength',\n    keypoints: 'keyPoints',\n    keysplines: 'keySplines',\n    keytimes: 'keyTimes',\n    lengthadjust: 'lengthAdjust',\n    limitingconeangle: 'limitingConeAngle',\n    markerheight: 'markerHeight',\n    markerunits: 'markerUnits',\n    markerwidth: 'markerWidth',\n    maskcontentunits: 'maskContentUnits',\n    maskunits: 'maskUnits',\n    numoctaves: 'numOctaves',\n    pathlength: 'pathLength',\n    patterncontentunits: 'patternContentUnits',\n    patterntransform: 'patternTransform',\n    patternunits: 'patternUnits',\n    pointsatx: 'pointsAtX',\n    pointsaty: 'pointsAtY',\n    pointsatz: 'pointsAtZ',\n    preservealpha: 'preserveAlpha',\n    preserveaspectratio: 'preserveAspectRatio',\n    primitiveunits: 'primitiveUnits',\n    refx: 'refX',\n    refy: 'refY',\n    repeatcount: 'repeatCount',\n    repeatdur: 'repeatDur',\n    requiredextensions: 'requiredExtensions',\n    requiredfeatures: 'requiredFeatures',\n    specularconstant: 'specularConstant',\n    specularexponent: 'specularExponent',\n    spreadmethod: 'spreadMethod',\n    startoffset: 'startOffset',\n    stddeviation: 'stdDeviation',\n    stitchtiles: 'stitchTiles',\n    surfacescale: 'surfaceScale',\n    systemlanguage: 'systemLanguage',\n    tablevalues: 'tableValues',\n    targetx: 'targetX',\n    targety: 'targetY',\n    textlength: 'textLength',\n    viewbox: 'viewBox',\n    viewtarget: 'viewTarget',\n    xchannelselector: 'xChannelSelector',\n    ychannelselector: 'yChannelSelector',\n    zoomandpan: 'zoomAndPan'\n};\n\nconst XML_ATTRS_ADJUSTMENT_MAP = {\n    'xlink:actuate': { prefix: 'xlink', name: 'actuate', namespace: NS.XLINK },\n    'xlink:arcrole': { prefix: 'xlink', name: 'arcrole', namespace: NS.XLINK },\n    'xlink:href': { prefix: 'xlink', name: 'href', namespace: NS.XLINK },\n    'xlink:role': { prefix: 'xlink', name: 'role', namespace: NS.XLINK },\n    'xlink:show': { prefix: 'xlink', name: 'show', namespace: NS.XLINK },\n    'xlink:title': { prefix: 'xlink', name: 'title', namespace: NS.XLINK },\n    'xlink:type': { prefix: 'xlink', name: 'type', namespace: NS.XLINK },\n    'xml:base': { prefix: 'xml', name: 'base', namespace: NS.XML },\n    'xml:lang': { prefix: 'xml', name: 'lang', namespace: NS.XML },\n    'xml:space': { prefix: 'xml', name: 'space', namespace: NS.XML },\n    xmlns: { prefix: '', name: 'xmlns', namespace: NS.XMLNS },\n    'xmlns:xlink': { prefix: 'xmlns', name: 'xlink', namespace: NS.XMLNS }\n};\n\n//SVG tag names adjustment map\nconst SVG_TAG_NAMES_ADJUSTMENT_MAP = (exports.SVG_TAG_NAMES_ADJUSTMENT_MAP = {\n    altglyph: 'altGlyph',\n    altglyphdef: 'altGlyphDef',\n    altglyphitem: 'altGlyphItem',\n    animatecolor: 'animateColor',\n    animatemotion: 'animateMotion',\n    animatetransform: 'animateTransform',\n    clippath: 'clipPath',\n    feblend: 'feBlend',\n    fecolormatrix: 'feColorMatrix',\n    fecomponenttransfer: 'feComponentTransfer',\n    fecomposite: 'feComposite',\n    feconvolvematrix: 'feConvolveMatrix',\n    fediffuselighting: 'feDiffuseLighting',\n    fedisplacementmap: 'feDisplacementMap',\n    fedistantlight: 'feDistantLight',\n    feflood: 'feFlood',\n    fefunca: 'feFuncA',\n    fefuncb: 'feFuncB',\n    fefuncg: 'feFuncG',\n    fefuncr: 'feFuncR',\n    fegaussianblur: 'feGaussianBlur',\n    feimage: 'feImage',\n    femerge: 'feMerge',\n    femergenode: 'feMergeNode',\n    femorphology: 'feMorphology',\n    feoffset: 'feOffset',\n    fepointlight: 'fePointLight',\n    fespecularlighting: 'feSpecularLighting',\n    fespotlight: 'feSpotLight',\n    fetile: 'feTile',\n    feturbulence: 'feTurbulence',\n    foreignobject: 'foreignObject',\n    glyphref: 'glyphRef',\n    lineargradient: 'linearGradient',\n    radialgradient: 'radialGradient',\n    textpath: 'textPath'\n});\n\n//Tags that causes exit from foreign content\nconst EXITS_FOREIGN_CONTENT = {\n    [$.B]: true,\n    [$.BIG]: true,\n    [$.BLOCKQUOTE]: true,\n    [$.BODY]: true,\n    [$.BR]: true,\n    [$.CENTER]: true,\n    [$.CODE]: true,\n    [$.DD]: true,\n    [$.DIV]: true,\n    [$.DL]: true,\n    [$.DT]: true,\n    [$.EM]: true,\n    [$.EMBED]: true,\n    [$.H1]: true,\n    [$.H2]: true,\n    [$.H3]: true,\n    [$.H4]: true,\n    [$.H5]: true,\n    [$.H6]: true,\n    [$.HEAD]: true,\n    [$.HR]: true,\n    [$.I]: true,\n    [$.IMG]: true,\n    [$.LI]: true,\n    [$.LISTING]: true,\n    [$.MENU]: true,\n    [$.META]: true,\n    [$.NOBR]: true,\n    [$.OL]: true,\n    [$.P]: true,\n    [$.PRE]: true,\n    [$.RUBY]: true,\n    [$.S]: true,\n    [$.SMALL]: true,\n    [$.SPAN]: true,\n    [$.STRONG]: true,\n    [$.STRIKE]: true,\n    [$.SUB]: true,\n    [$.SUP]: true,\n    [$.TABLE]: true,\n    [$.TT]: true,\n    [$.U]: true,\n    [$.UL]: true,\n    [$.VAR]: true\n};\n\n//Check exit from foreign content\nexports.causesExit = function(startTagToken) {\n    const tn = startTagToken.tagName;\n    const isFontWithAttrs =\n        tn === $.FONT &&\n        (Tokenizer.getTokenAttr(startTagToken, ATTRS.COLOR) !== null ||\n            Tokenizer.getTokenAttr(startTagToken, ATTRS.SIZE) !== null ||\n            Tokenizer.getTokenAttr(startTagToken, ATTRS.FACE) !== null);\n\n    return isFontWithAttrs ? true : EXITS_FOREIGN_CONTENT[tn];\n};\n\n//Token adjustments\nexports.adjustTokenMathMLAttrs = function(token) {\n    for (let i = 0; i < token.attrs.length; i++) {\n        if (token.attrs[i].name === DEFINITION_URL_ATTR) {\n            token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR;\n            break;\n        }\n    }\n};\n\nexports.adjustTokenSVGAttrs = function(token) {\n    for (let i = 0; i < token.attrs.length; i++) {\n        const adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name];\n\n        if (adjustedAttrName) {\n            token.attrs[i].name = adjustedAttrName;\n        }\n    }\n};\n\nexports.adjustTokenXMLAttrs = function(token) {\n    for (let i = 0; i < token.attrs.length; i++) {\n        const adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name];\n\n        if (adjustedAttrEntry) {\n            token.attrs[i].prefix = adjustedAttrEntry.prefix;\n            token.attrs[i].name = adjustedAttrEntry.name;\n            token.attrs[i].namespace = adjustedAttrEntry.namespace;\n        }\n    }\n};\n\nexports.adjustTokenSVGTagName = function(token) {\n    const adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP[token.tagName];\n\n    if (adjustedTagName) {\n        token.tagName = adjustedTagName;\n    }\n};\n\n//Integration points\nfunction isMathMLTextIntegrationPoint(tn, ns) {\n    return ns === NS.MATHML && (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS || tn === $.MTEXT);\n}\n\nfunction isHtmlIntegrationPoint(tn, ns, attrs) {\n    if (ns === NS.MATHML && tn === $.ANNOTATION_XML) {\n        for (let i = 0; i < attrs.length; i++) {\n            if (attrs[i].name === ATTRS.ENCODING) {\n                const value = attrs[i].value.toLowerCase();\n\n                return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML;\n            }\n        }\n    }\n\n    return ns === NS.SVG && (tn === $.FOREIGN_OBJECT || tn === $.DESC || tn === $.TITLE);\n}\n\nexports.isIntegrationPoint = function(tn, ns, attrs, foreignNS) {\n    if ((!foreignNS || foreignNS === NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs)) {\n        return true;\n    }\n\n    if ((!foreignNS || foreignNS === NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns)) {\n        return true;\n    }\n\n    return false;\n};\n","'use strict';\n\nconst NS = (exports.NAMESPACES = {\n    HTML: 'http://www.w3.org/1999/xhtml',\n    MATHML: 'http://www.w3.org/1998/Math/MathML',\n    SVG: 'http://www.w3.org/2000/svg',\n    XLINK: 'http://www.w3.org/1999/xlink',\n    XML: 'http://www.w3.org/XML/1998/namespace',\n    XMLNS: 'http://www.w3.org/2000/xmlns/'\n});\n\nexports.ATTRS = {\n    TYPE: 'type',\n    ACTION: 'action',\n    ENCODING: 'encoding',\n    PROMPT: 'prompt',\n    NAME: 'name',\n    COLOR: 'color',\n    FACE: 'face',\n    SIZE: 'size'\n};\n\nexports.DOCUMENT_MODE = {\n    NO_QUIRKS: 'no-quirks',\n    QUIRKS: 'quirks',\n    LIMITED_QUIRKS: 'limited-quirks'\n};\n\nconst $ = (exports.TAG_NAMES = {\n    A: 'a',\n    ADDRESS: 'address',\n    ANNOTATION_XML: 'annotation-xml',\n    APPLET: 'applet',\n    AREA: 'area',\n    ARTICLE: 'article',\n    ASIDE: 'aside',\n\n    B: 'b',\n    BASE: 'base',\n    BASEFONT: 'basefont',\n    BGSOUND: 'bgsound',\n    BIG: 'big',\n    BLOCKQUOTE: 'blockquote',\n    BODY: 'body',\n    BR: 'br',\n    BUTTON: 'button',\n\n    CAPTION: 'caption',\n    CENTER: 'center',\n    CODE: 'code',\n    COL: 'col',\n    COLGROUP: 'colgroup',\n\n    DD: 'dd',\n    DESC: 'desc',\n    DETAILS: 'details',\n    DIALOG: 'dialog',\n    DIR: 'dir',\n    DIV: 'div',\n    DL: 'dl',\n    DT: 'dt',\n\n    EM: 'em',\n    EMBED: 'embed',\n\n    FIELDSET: 'fieldset',\n    FIGCAPTION: 'figcaption',\n    FIGURE: 'figure',\n    FONT: 'font',\n    FOOTER: 'footer',\n    FOREIGN_OBJECT: 'foreignObject',\n    FORM: 'form',\n    FRAME: 'frame',\n    FRAMESET: 'frameset',\n\n    H1: 'h1',\n    H2: 'h2',\n    H3: 'h3',\n    H4: 'h4',\n    H5: 'h5',\n    H6: 'h6',\n    HEAD: 'head',\n    HEADER: 'header',\n    HGROUP: 'hgroup',\n    HR: 'hr',\n    HTML: 'html',\n\n    I: 'i',\n    IMG: 'img',\n    IMAGE: 'image',\n    INPUT: 'input',\n    IFRAME: 'iframe',\n\n    KEYGEN: 'keygen',\n\n    LABEL: 'label',\n    LI: 'li',\n    LINK: 'link',\n    LISTING: 'listing',\n\n    MAIN: 'main',\n    MALIGNMARK: 'malignmark',\n    MARQUEE: 'marquee',\n    MATH: 'math',\n    MENU: 'menu',\n    META: 'meta',\n    MGLYPH: 'mglyph',\n    MI: 'mi',\n    MO: 'mo',\n    MN: 'mn',\n    MS: 'ms',\n    MTEXT: 'mtext',\n\n    NAV: 'nav',\n    NOBR: 'nobr',\n    NOFRAMES: 'noframes',\n    NOEMBED: 'noembed',\n    NOSCRIPT: 'noscript',\n\n    OBJECT: 'object',\n    OL: 'ol',\n    OPTGROUP: 'optgroup',\n    OPTION: 'option',\n\n    P: 'p',\n    PARAM: 'param',\n    PLAINTEXT: 'plaintext',\n    PRE: 'pre',\n\n    RB: 'rb',\n    RP: 'rp',\n    RT: 'rt',\n    RTC: 'rtc',\n    RUBY: 'ruby',\n\n    S: 's',\n    SCRIPT: 'script',\n    SECTION: 'section',\n    SELECT: 'select',\n    SOURCE: 'source',\n    SMALL: 'small',\n    SPAN: 'span',\n    STRIKE: 'strike',\n    STRONG: 'strong',\n    STYLE: 'style',\n    SUB: 'sub',\n    SUMMARY: 'summary',\n    SUP: 'sup',\n\n    TABLE: 'table',\n    TBODY: 'tbody',\n    TEMPLATE: 'template',\n    TEXTAREA: 'textarea',\n    TFOOT: 'tfoot',\n    TD: 'td',\n    TH: 'th',\n    THEAD: 'thead',\n    TITLE: 'title',\n    TR: 'tr',\n    TRACK: 'track',\n    TT: 'tt',\n\n    U: 'u',\n    UL: 'ul',\n\n    SVG: 'svg',\n\n    VAR: 'var',\n\n    WBR: 'wbr',\n\n    XMP: 'xmp'\n});\n\nexports.SPECIAL_ELEMENTS = {\n    [NS.HTML]: {\n        [$.ADDRESS]: true,\n        [$.APPLET]: true,\n        [$.AREA]: true,\n        [$.ARTICLE]: true,\n        [$.ASIDE]: true,\n        [$.BASE]: true,\n        [$.BASEFONT]: true,\n        [$.BGSOUND]: true,\n        [$.BLOCKQUOTE]: true,\n        [$.BODY]: true,\n        [$.BR]: true,\n        [$.BUTTON]: true,\n        [$.CAPTION]: true,\n        [$.CENTER]: true,\n        [$.COL]: true,\n        [$.COLGROUP]: true,\n        [$.DD]: true,\n        [$.DETAILS]: true,\n        [$.DIR]: true,\n        [$.DIV]: true,\n        [$.DL]: true,\n        [$.DT]: true,\n        [$.EMBED]: true,\n        [$.FIELDSET]: true,\n        [$.FIGCAPTION]: true,\n        [$.FIGURE]: true,\n        [$.FOOTER]: true,\n        [$.FORM]: true,\n        [$.FRAME]: true,\n        [$.FRAMESET]: true,\n        [$.H1]: true,\n        [$.H2]: true,\n        [$.H3]: true,\n        [$.H4]: true,\n        [$.H5]: true,\n        [$.H6]: true,\n        [$.HEAD]: true,\n        [$.HEADER]: true,\n        [$.HGROUP]: true,\n        [$.HR]: true,\n        [$.HTML]: true,\n        [$.IFRAME]: true,\n        [$.IMG]: true,\n        [$.INPUT]: true,\n        [$.LI]: true,\n        [$.LINK]: true,\n        [$.LISTING]: true,\n        [$.MAIN]: true,\n        [$.MARQUEE]: true,\n        [$.MENU]: true,\n        [$.META]: true,\n        [$.NAV]: true,\n        [$.NOEMBED]: true,\n        [$.NOFRAMES]: true,\n        [$.NOSCRIPT]: true,\n        [$.OBJECT]: true,\n        [$.OL]: true,\n        [$.P]: true,\n        [$.PARAM]: true,\n        [$.PLAINTEXT]: true,\n        [$.PRE]: true,\n        [$.SCRIPT]: true,\n        [$.SECTION]: true,\n        [$.SELECT]: true,\n        [$.SOURCE]: true,\n        [$.STYLE]: true,\n        [$.SUMMARY]: true,\n        [$.TABLE]: true,\n        [$.TBODY]: true,\n        [$.TD]: true,\n        [$.TEMPLATE]: true,\n        [$.TEXTAREA]: true,\n        [$.TFOOT]: true,\n        [$.TH]: true,\n        [$.THEAD]: true,\n        [$.TITLE]: true,\n        [$.TR]: true,\n        [$.TRACK]: true,\n        [$.UL]: true,\n        [$.WBR]: true,\n        [$.XMP]: true\n    },\n    [NS.MATHML]: {\n        [$.MI]: true,\n        [$.MO]: true,\n        [$.MN]: true,\n        [$.MS]: true,\n        [$.MTEXT]: true,\n        [$.ANNOTATION_XML]: true\n    },\n    [NS.SVG]: {\n        [$.TITLE]: true,\n        [$.FOREIGN_OBJECT]: true,\n        [$.DESC]: true\n    }\n};\n","'use strict';\n\nconst UNDEFINED_CODE_POINTS = [\n    0xfffe,\n    0xffff,\n    0x1fffe,\n    0x1ffff,\n    0x2fffe,\n    0x2ffff,\n    0x3fffe,\n    0x3ffff,\n    0x4fffe,\n    0x4ffff,\n    0x5fffe,\n    0x5ffff,\n    0x6fffe,\n    0x6ffff,\n    0x7fffe,\n    0x7ffff,\n    0x8fffe,\n    0x8ffff,\n    0x9fffe,\n    0x9ffff,\n    0xafffe,\n    0xaffff,\n    0xbfffe,\n    0xbffff,\n    0xcfffe,\n    0xcffff,\n    0xdfffe,\n    0xdffff,\n    0xefffe,\n    0xeffff,\n    0xffffe,\n    0xfffff,\n    0x10fffe,\n    0x10ffff\n];\n\nexports.REPLACEMENT_CHARACTER = '\\uFFFD';\n\nexports.CODE_POINTS = {\n    EOF: -1,\n    NULL: 0x00,\n    TABULATION: 0x09,\n    CARRIAGE_RETURN: 0x0d,\n    LINE_FEED: 0x0a,\n    FORM_FEED: 0x0c,\n    SPACE: 0x20,\n    EXCLAMATION_MARK: 0x21,\n    QUOTATION_MARK: 0x22,\n    NUMBER_SIGN: 0x23,\n    AMPERSAND: 0x26,\n    APOSTROPHE: 0x27,\n    HYPHEN_MINUS: 0x2d,\n    SOLIDUS: 0x2f,\n    DIGIT_0: 0x30,\n    DIGIT_9: 0x39,\n    SEMICOLON: 0x3b,\n    LESS_THAN_SIGN: 0x3c,\n    EQUALS_SIGN: 0x3d,\n    GREATER_THAN_SIGN: 0x3e,\n    QUESTION_MARK: 0x3f,\n    LATIN_CAPITAL_A: 0x41,\n    LATIN_CAPITAL_F: 0x46,\n    LATIN_CAPITAL_X: 0x58,\n    LATIN_CAPITAL_Z: 0x5a,\n    RIGHT_SQUARE_BRACKET: 0x5d,\n    GRAVE_ACCENT: 0x60,\n    LATIN_SMALL_A: 0x61,\n    LATIN_SMALL_F: 0x66,\n    LATIN_SMALL_X: 0x78,\n    LATIN_SMALL_Z: 0x7a,\n    REPLACEMENT_CHARACTER: 0xfffd\n};\n\nexports.CODE_POINT_SEQUENCES = {\n    DASH_DASH_STRING: [0x2d, 0x2d], //--\n    DOCTYPE_STRING: [0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45], //DOCTYPE\n    CDATA_START_STRING: [0x5b, 0x43, 0x44, 0x41, 0x54, 0x41, 0x5b], //[CDATA[\n    SCRIPT_STRING: [0x73, 0x63, 0x72, 0x69, 0x70, 0x74], //script\n    PUBLIC_STRING: [0x50, 0x55, 0x42, 0x4c, 0x49, 0x43], //PUBLIC\n    SYSTEM_STRING: [0x53, 0x59, 0x53, 0x54, 0x45, 0x4d] //SYSTEM\n};\n\n//Surrogates\nexports.isSurrogate = function(cp) {\n    return cp >= 0xd800 && cp <= 0xdfff;\n};\n\nexports.isSurrogatePair = function(cp) {\n    return cp >= 0xdc00 && cp <= 0xdfff;\n};\n\nexports.getSurrogatePairCodePoint = function(cp1, cp2) {\n    return (cp1 - 0xd800) * 0x400 + 0x2400 + cp2;\n};\n\n//NOTE: excluding NULL and ASCII whitespace\nexports.isControlCodePoint = function(cp) {\n    return (\n        (cp !== 0x20 && cp !== 0x0a && cp !== 0x0d && cp !== 0x09 && cp !== 0x0c && cp >= 0x01 && cp <= 0x1f) ||\n        (cp >= 0x7f && cp <= 0x9f)\n    );\n};\n\nexports.isUndefinedCodePoint = function(cp) {\n    return (cp >= 0xfdd0 && cp <= 0xfdef) || UNDEFINED_CODE_POINTS.indexOf(cp) > -1;\n};\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingMixinBase extends Mixin {\n    constructor(host, opts) {\n        super(host);\n\n        this.posTracker = null;\n        this.onParseError = opts.onParseError;\n    }\n\n    _setErrorLocation(err) {\n        err.startLine = err.endLine = this.posTracker.line;\n        err.startCol = err.endCol = this.posTracker.col;\n        err.startOffset = err.endOffset = this.posTracker.offset;\n    }\n\n    _reportError(code) {\n        const err = {\n            code: code,\n            startLine: -1,\n            startCol: -1,\n            startOffset: -1,\n            endLine: -1,\n            endCol: -1,\n            endOffset: -1\n        };\n\n        this._setErrorLocation(err);\n        this.onParseError(err);\n    }\n\n    _getOverriddenMethods(mxn) {\n        return {\n            _err(code) {\n                mxn._reportError(code);\n            }\n        };\n    }\n}\n\nmodule.exports = ErrorReportingMixinBase;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst ErrorReportingTokenizerMixin = require('./tokenizer-mixin');\nconst LocationInfoTokenizerMixin = require('../location-info/tokenizer-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingParserMixin extends ErrorReportingMixinBase {\n    constructor(parser, opts) {\n        super(parser, opts);\n\n        this.opts = opts;\n        this.ctLoc = null;\n        this.locBeforeToken = false;\n    }\n\n    _setErrorLocation(err) {\n        if (this.ctLoc) {\n            err.startLine = this.ctLoc.startLine;\n            err.startCol = this.ctLoc.startCol;\n            err.startOffset = this.ctLoc.startOffset;\n\n            err.endLine = this.locBeforeToken ? this.ctLoc.startLine : this.ctLoc.endLine;\n            err.endCol = this.locBeforeToken ? this.ctLoc.startCol : this.ctLoc.endCol;\n            err.endOffset = this.locBeforeToken ? this.ctLoc.startOffset : this.ctLoc.endOffset;\n        }\n    }\n\n    _getOverriddenMethods(mxn, orig) {\n        return {\n            _bootstrap(document, fragmentContext) {\n                orig._bootstrap.call(this, document, fragmentContext);\n\n                Mixin.install(this.tokenizer, ErrorReportingTokenizerMixin, mxn.opts);\n                Mixin.install(this.tokenizer, LocationInfoTokenizerMixin);\n            },\n\n            _processInputToken(token) {\n                mxn.ctLoc = token.location;\n\n                orig._processInputToken.call(this, token);\n            },\n\n            _err(code, options) {\n                mxn.locBeforeToken = options && options.beforeToken;\n                mxn._reportError(code);\n            }\n        };\n    }\n}\n\nmodule.exports = ErrorReportingParserMixin;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst PositionTrackingPreprocessorMixin = require('../position-tracking/preprocessor-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingPreprocessorMixin extends ErrorReportingMixinBase {\n    constructor(preprocessor, opts) {\n        super(preprocessor, opts);\n\n        this.posTracker = Mixin.install(preprocessor, PositionTrackingPreprocessorMixin);\n        this.lastErrOffset = -1;\n    }\n\n    _reportError(code) {\n        //NOTE: avoid reporting error twice on advance/retreat\n        if (this.lastErrOffset !== this.posTracker.offset) {\n            this.lastErrOffset = this.posTracker.offset;\n            super._reportError(code);\n        }\n    }\n}\n\nmodule.exports = ErrorReportingPreprocessorMixin;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst ErrorReportingPreprocessorMixin = require('./preprocessor-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingTokenizerMixin extends ErrorReportingMixinBase {\n    constructor(tokenizer, opts) {\n        super(tokenizer, opts);\n\n        const preprocessorMixin = Mixin.install(tokenizer.preprocessor, ErrorReportingPreprocessorMixin, opts);\n\n        this.posTracker = preprocessorMixin.posTracker;\n    }\n}\n\nmodule.exports = ErrorReportingTokenizerMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass LocationInfoOpenElementStackMixin extends Mixin {\n    constructor(stack, opts) {\n        super(stack);\n\n        this.onItemPop = opts.onItemPop;\n    }\n\n    _getOverriddenMethods(mxn, orig) {\n        return {\n            pop() {\n                mxn.onItemPop(this.current);\n                orig.pop.call(this);\n            },\n\n            popAllUpToHtmlElement() {\n                for (let i = this.stackTop; i > 0; i--) {\n                    mxn.onItemPop(this.items[i]);\n                }\n\n                orig.popAllUpToHtmlElement.call(this);\n            },\n\n            remove(element) {\n                mxn.onItemPop(this.current);\n                orig.remove.call(this, element);\n            }\n        };\n    }\n}\n\nmodule.exports = LocationInfoOpenElementStackMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\nconst Tokenizer = require('../../tokenizer');\nconst LocationInfoTokenizerMixin = require('./tokenizer-mixin');\nconst LocationInfoOpenElementStackMixin = require('./open-element-stack-mixin');\nconst HTML = require('../../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\n\nclass LocationInfoParserMixin extends Mixin {\n    constructor(parser) {\n        super(parser);\n\n        this.parser = parser;\n        this.treeAdapter = this.parser.treeAdapter;\n        this.posTracker = null;\n        this.lastStartTagToken = null;\n        this.lastFosterParentingLocation = null;\n        this.currentToken = null;\n    }\n\n    _setStartLocation(element) {\n        let loc = null;\n\n        if (this.lastStartTagToken) {\n            loc = Object.assign({}, this.lastStartTagToken.location);\n            loc.startTag = this.lastStartTagToken.location;\n        }\n\n        this.treeAdapter.setNodeSourceCodeLocation(element, loc);\n    }\n\n    _setEndLocation(element, closingToken) {\n        const loc = this.treeAdapter.getNodeSourceCodeLocation(element);\n\n        if (loc) {\n            if (closingToken.location) {\n                const ctLoc = closingToken.location;\n                const tn = this.treeAdapter.getTagName(element);\n\n                // NOTE: For cases like <p> <p> </p> - First 'p' closes without a closing\n                // tag and for cases like <td> <p> </td> - 'p' closes without a closing tag.\n                const isClosingEndTag = closingToken.type === Tokenizer.END_TAG_TOKEN && tn === closingToken.tagName;\n                const endLoc = {};\n                if (isClosingEndTag) {\n                    endLoc.endTag = Object.assign({}, ctLoc);\n                    endLoc.endLine = ctLoc.endLine;\n                    endLoc.endCol = ctLoc.endCol;\n                    endLoc.endOffset = ctLoc.endOffset;\n                } else {\n                    endLoc.endLine = ctLoc.startLine;\n                    endLoc.endCol = ctLoc.startCol;\n                    endLoc.endOffset = ctLoc.startOffset;\n                }\n\n                this.treeAdapter.updateNodeSourceCodeLocation(element, endLoc);\n            }\n        }\n    }\n\n    _getOverriddenMethods(mxn, orig) {\n        return {\n            _bootstrap(document, fragmentContext) {\n                orig._bootstrap.call(this, document, fragmentContext);\n\n                mxn.lastStartTagToken = null;\n                mxn.lastFosterParentingLocation = null;\n                mxn.currentToken = null;\n\n                const tokenizerMixin = Mixin.install(this.tokenizer, LocationInfoTokenizerMixin);\n\n                mxn.posTracker = tokenizerMixin.posTracker;\n\n                Mixin.install(this.openElements, LocationInfoOpenElementStackMixin, {\n                    onItemPop: function(element) {\n                        mxn._setEndLocation(element, mxn.currentToken);\n                    }\n                });\n            },\n\n            _runParsingLoop(scriptHandler) {\n                orig._runParsingLoop.call(this, scriptHandler);\n\n                // NOTE: generate location info for elements\n                // that remains on open element stack\n                for (let i = this.openElements.stackTop; i >= 0; i--) {\n                    mxn._setEndLocation(this.openElements.items[i], mxn.currentToken);\n                }\n            },\n\n            //Token processing\n            _processTokenInForeignContent(token) {\n                mxn.currentToken = token;\n                orig._processTokenInForeignContent.call(this, token);\n            },\n\n            _processToken(token) {\n                mxn.currentToken = token;\n                orig._processToken.call(this, token);\n\n                //NOTE: <body> and <html> are never popped from the stack, so we need to updated\n                //their end location explicitly.\n                const requireExplicitUpdate =\n                    token.type === Tokenizer.END_TAG_TOKEN &&\n                    (token.tagName === $.HTML || (token.tagName === $.BODY && this.openElements.hasInScope($.BODY)));\n\n                if (requireExplicitUpdate) {\n                    for (let i = this.openElements.stackTop; i >= 0; i--) {\n                        const element = this.openElements.items[i];\n\n                        if (this.treeAdapter.getTagName(element) === token.tagName) {\n                            mxn._setEndLocation(element, token);\n                            break;\n                        }\n                    }\n                }\n            },\n\n            //Doctype\n            _setDocumentType(token) {\n                orig._setDocumentType.call(this, token);\n\n                const documentChildren = this.treeAdapter.getChildNodes(this.document);\n                const cnLength = documentChildren.length;\n\n                for (let i = 0; i < cnLength; i++) {\n                    const node = documentChildren[i];\n\n                    if (this.treeAdapter.isDocumentTypeNode(node)) {\n                        this.treeAdapter.setNodeSourceCodeLocation(node, token.location);\n                        break;\n                    }\n                }\n            },\n\n            //Elements\n            _attachElementToTree(element) {\n                //NOTE: _attachElementToTree is called from _appendElement, _insertElement and _insertTemplate methods.\n                //So we will use token location stored in this methods for the element.\n                mxn._setStartLocation(element);\n                mxn.lastStartTagToken = null;\n                orig._attachElementToTree.call(this, element);\n            },\n\n            _appendElement(token, namespaceURI) {\n                mxn.lastStartTagToken = token;\n                orig._appendElement.call(this, token, namespaceURI);\n            },\n\n            _insertElement(token, namespaceURI) {\n                mxn.lastStartTagToken = token;\n                orig._insertElement.call(this, token, namespaceURI);\n            },\n\n            _insertTemplate(token) {\n                mxn.lastStartTagToken = token;\n                orig._insertTemplate.call(this, token);\n\n                const tmplContent = this.treeAdapter.getTemplateContent(this.openElements.current);\n\n                this.treeAdapter.setNodeSourceCodeLocation(tmplContent, null);\n            },\n\n            _insertFakeRootElement() {\n                orig._insertFakeRootElement.call(this);\n                this.treeAdapter.setNodeSourceCodeLocation(this.openElements.current, null);\n            },\n\n            //Comments\n            _appendCommentNode(token, parent) {\n                orig._appendCommentNode.call(this, token, parent);\n\n                const children = this.treeAdapter.getChildNodes(parent);\n                const commentNode = children[children.length - 1];\n\n                this.treeAdapter.setNodeSourceCodeLocation(commentNode, token.location);\n            },\n\n            //Text\n            _findFosterParentingLocation() {\n                //NOTE: store last foster parenting location, so we will be able to find inserted text\n                //in case of foster parenting\n                mxn.lastFosterParentingLocation = orig._findFosterParentingLocation.call(this);\n\n                return mxn.lastFosterParentingLocation;\n            },\n\n            _insertCharacters(token) {\n                orig._insertCharacters.call(this, token);\n\n                const hasFosterParent = this._shouldFosterParentOnInsertion();\n\n                const parent =\n                    (hasFosterParent && mxn.lastFosterParentingLocation.parent) ||\n                    this.openElements.currentTmplContent ||\n                    this.openElements.current;\n\n                const siblings = this.treeAdapter.getChildNodes(parent);\n\n                const textNodeIdx =\n                    hasFosterParent && mxn.lastFosterParentingLocation.beforeElement\n                        ? siblings.indexOf(mxn.lastFosterParentingLocation.beforeElement) - 1\n                        : siblings.length - 1;\n\n                const textNode = siblings[textNodeIdx];\n\n                //NOTE: if we have location assigned by another token, then just update end position\n                const tnLoc = this.treeAdapter.getNodeSourceCodeLocation(textNode);\n\n                if (tnLoc) {\n                    const { endLine, endCol, endOffset } = token.location;\n                    this.treeAdapter.updateNodeSourceCodeLocation(textNode, { endLine, endCol, endOffset });\n                } else {\n                    this.treeAdapter.setNodeSourceCodeLocation(textNode, token.location);\n                }\n            }\n        };\n    }\n}\n\nmodule.exports = LocationInfoParserMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\nconst Tokenizer = require('../../tokenizer');\nconst PositionTrackingPreprocessorMixin = require('../position-tracking/preprocessor-mixin');\n\nclass LocationInfoTokenizerMixin extends Mixin {\n    constructor(tokenizer) {\n        super(tokenizer);\n\n        this.tokenizer = tokenizer;\n        this.posTracker = Mixin.install(tokenizer.preprocessor, PositionTrackingPreprocessorMixin);\n        this.currentAttrLocation = null;\n        this.ctLoc = null;\n    }\n\n    _getCurrentLocation() {\n        return {\n            startLine: this.posTracker.line,\n            startCol: this.posTracker.col,\n            startOffset: this.posTracker.offset,\n            endLine: -1,\n            endCol: -1,\n            endOffset: -1\n        };\n    }\n\n    _attachCurrentAttrLocationInfo() {\n        this.currentAttrLocation.endLine = this.posTracker.line;\n        this.currentAttrLocation.endCol = this.posTracker.col;\n        this.currentAttrLocation.endOffset = this.posTracker.offset;\n\n        const currentToken = this.tokenizer.currentToken;\n        const currentAttr = this.tokenizer.currentAttr;\n\n        if (!currentToken.location.attrs) {\n            currentToken.location.attrs = Object.create(null);\n        }\n\n        currentToken.location.attrs[currentAttr.name] = this.currentAttrLocation;\n    }\n\n    _getOverriddenMethods(mxn, orig) {\n        const methods = {\n            _createStartTagToken() {\n                orig._createStartTagToken.call(this);\n                this.currentToken.location = mxn.ctLoc;\n            },\n\n            _createEndTagToken() {\n                orig._createEndTagToken.call(this);\n                this.currentToken.location = mxn.ctLoc;\n            },\n\n            _createCommentToken() {\n                orig._createCommentToken.call(this);\n                this.currentToken.location = mxn.ctLoc;\n            },\n\n            _createDoctypeToken(initialName) {\n                orig._createDoctypeToken.call(this, initialName);\n                this.currentToken.location = mxn.ctLoc;\n            },\n\n            _createCharacterToken(type, ch) {\n                orig._createCharacterToken.call(this, type, ch);\n                this.currentCharacterToken.location = mxn.ctLoc;\n            },\n\n            _createEOFToken() {\n                orig._createEOFToken.call(this);\n                this.currentToken.location = mxn._getCurrentLocation();\n            },\n\n            _createAttr(attrNameFirstCh) {\n                orig._createAttr.call(this, attrNameFirstCh);\n                mxn.currentAttrLocation = mxn._getCurrentLocation();\n            },\n\n            _leaveAttrName(toState) {\n                orig._leaveAttrName.call(this, toState);\n                mxn._attachCurrentAttrLocationInfo();\n            },\n\n            _leaveAttrValue(toState) {\n                orig._leaveAttrValue.call(this, toState);\n                mxn._attachCurrentAttrLocationInfo();\n            },\n\n            _emitCurrentToken() {\n                const ctLoc = this.currentToken.location;\n\n                //NOTE: if we have pending character token make it's end location equal to the\n                //current token's start location.\n                if (this.currentCharacterToken) {\n                    this.currentCharacterToken.location.endLine = ctLoc.startLine;\n                    this.currentCharacterToken.location.endCol = ctLoc.startCol;\n                    this.currentCharacterToken.location.endOffset = ctLoc.startOffset;\n                }\n\n                if (this.currentToken.type === Tokenizer.EOF_TOKEN) {\n                    ctLoc.endLine = ctLoc.startLine;\n                    ctLoc.endCol = ctLoc.startCol;\n                    ctLoc.endOffset = ctLoc.startOffset;\n                } else {\n                    ctLoc.endLine = mxn.posTracker.line;\n                    ctLoc.endCol = mxn.posTracker.col + 1;\n                    ctLoc.endOffset = mxn.posTracker.offset + 1;\n                }\n\n                orig._emitCurrentToken.call(this);\n            },\n\n            _emitCurrentCharacterToken() {\n                const ctLoc = this.currentCharacterToken && this.currentCharacterToken.location;\n\n                //NOTE: if we have character token and it's location wasn't set in the _emitCurrentToken(),\n                //then set it's location at the current preprocessor position.\n                //We don't need to increment preprocessor position, since character token\n                //emission is always forced by the start of the next character token here.\n                //So, we already have advanced position.\n                if (ctLoc && ctLoc.endOffset === -1) {\n                    ctLoc.endLine = mxn.posTracker.line;\n                    ctLoc.endCol = mxn.posTracker.col;\n                    ctLoc.endOffset = mxn.posTracker.offset;\n                }\n\n                orig._emitCurrentCharacterToken.call(this);\n            }\n        };\n\n        //NOTE: patch initial states for each mode to obtain token start position\n        Object.keys(Tokenizer.MODE).forEach(modeName => {\n            const state = Tokenizer.MODE[modeName];\n\n            methods[state] = function(cp) {\n                mxn.ctLoc = mxn._getCurrentLocation();\n                orig[state].call(this, cp);\n            };\n        });\n\n        return methods;\n    }\n}\n\nmodule.exports = LocationInfoTokenizerMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass PositionTrackingPreprocessorMixin extends Mixin {\n    constructor(preprocessor) {\n        super(preprocessor);\n\n        this.preprocessor = preprocessor;\n        this.isEol = false;\n        this.lineStartPos = 0;\n        this.droppedBufferSize = 0;\n\n        this.offset = 0;\n        this.col = 0;\n        this.line = 1;\n    }\n\n    _getOverriddenMethods(mxn, orig) {\n        return {\n            advance() {\n                const pos = this.pos + 1;\n                const ch = this.html[pos];\n\n                //NOTE: LF should be in the last column of the line\n                if (mxn.isEol) {\n                    mxn.isEol = false;\n                    mxn.line++;\n                    mxn.lineStartPos = pos;\n                }\n\n                if (ch === '\\n' || (ch === '\\r' && this.html[pos + 1] !== '\\n')) {\n                    mxn.isEol = true;\n                }\n\n                mxn.col = pos - mxn.lineStartPos + 1;\n                mxn.offset = mxn.droppedBufferSize + pos;\n\n                return orig.advance.call(this);\n            },\n\n            retreat() {\n                orig.retreat.call(this);\n\n                mxn.isEol = false;\n                mxn.col = this.pos - mxn.lineStartPos + 1;\n            },\n\n            dropParsedChunk() {\n                const prevPos = this.pos;\n\n                orig.dropParsedChunk.call(this);\n\n                const reduction = prevPos - this.pos;\n\n                mxn.lineStartPos -= reduction;\n                mxn.droppedBufferSize += reduction;\n                mxn.offset = mxn.droppedBufferSize + this.pos;\n            }\n        };\n    }\n}\n\nmodule.exports = PositionTrackingPreprocessorMixin;\n","'use strict';\n\n//Const\nconst NOAH_ARK_CAPACITY = 3;\n\n//List of formatting elements\nclass FormattingElementList {\n    constructor(treeAdapter) {\n        this.length = 0;\n        this.entries = [];\n        this.treeAdapter = treeAdapter;\n        this.bookmark = null;\n    }\n\n    //Noah Ark's condition\n    //OPTIMIZATION: at first we try to find possible candidates for exclusion using\n    //lightweight heuristics without thorough attributes check.\n    _getNoahArkConditionCandidates(newElement) {\n        const candidates = [];\n\n        if (this.length >= NOAH_ARK_CAPACITY) {\n            const neAttrsLength = this.treeAdapter.getAttrList(newElement).length;\n            const neTagName = this.treeAdapter.getTagName(newElement);\n            const neNamespaceURI = this.treeAdapter.getNamespaceURI(newElement);\n\n            for (let i = this.length - 1; i >= 0; i--) {\n                const entry = this.entries[i];\n\n                if (entry.type === FormattingElementList.MARKER_ENTRY) {\n                    break;\n                }\n\n                const element = entry.element;\n                const elementAttrs = this.treeAdapter.getAttrList(element);\n\n                const isCandidate =\n                    this.treeAdapter.getTagName(element) === neTagName &&\n                    this.treeAdapter.getNamespaceURI(element) === neNamespaceURI &&\n                    elementAttrs.length === neAttrsLength;\n\n                if (isCandidate) {\n                    candidates.push({ idx: i, attrs: elementAttrs });\n                }\n            }\n        }\n\n        return candidates.length < NOAH_ARK_CAPACITY ? [] : candidates;\n    }\n\n    _ensureNoahArkCondition(newElement) {\n        const candidates = this._getNoahArkConditionCandidates(newElement);\n        let cLength = candidates.length;\n\n        if (cLength) {\n            const neAttrs = this.treeAdapter.getAttrList(newElement);\n            const neAttrsLength = neAttrs.length;\n            const neAttrsMap = Object.create(null);\n\n            //NOTE: build attrs map for the new element so we can perform fast lookups\n            for (let i = 0; i < neAttrsLength; i++) {\n                const neAttr = neAttrs[i];\n\n                neAttrsMap[neAttr.name] = neAttr.value;\n            }\n\n            for (let i = 0; i < neAttrsLength; i++) {\n                for (let j = 0; j < cLength; j++) {\n                    const cAttr = candidates[j].attrs[i];\n\n                    if (neAttrsMap[cAttr.name] !== cAttr.value) {\n                        candidates.splice(j, 1);\n                        cLength--;\n                    }\n\n                    if (candidates.length < NOAH_ARK_CAPACITY) {\n                        return;\n                    }\n                }\n            }\n\n            //NOTE: remove bottommost candidates until Noah's Ark condition will not be met\n            for (let i = cLength - 1; i >= NOAH_ARK_CAPACITY - 1; i--) {\n                this.entries.splice(candidates[i].idx, 1);\n                this.length--;\n            }\n        }\n    }\n\n    //Mutations\n    insertMarker() {\n        this.entries.push({ type: FormattingElementList.MARKER_ENTRY });\n        this.length++;\n    }\n\n    pushElement(element, token) {\n        this._ensureNoahArkCondition(element);\n\n        this.entries.push({\n            type: FormattingElementList.ELEMENT_ENTRY,\n            element: element,\n            token: token\n        });\n\n        this.length++;\n    }\n\n    insertElementAfterBookmark(element, token) {\n        let bookmarkIdx = this.length - 1;\n\n        for (; bookmarkIdx >= 0; bookmarkIdx--) {\n            if (this.entries[bookmarkIdx] === this.bookmark) {\n                break;\n            }\n        }\n\n        this.entries.splice(bookmarkIdx + 1, 0, {\n            type: FormattingElementList.ELEMENT_ENTRY,\n            element: element,\n            token: token\n        });\n\n        this.length++;\n    }\n\n    removeEntry(entry) {\n        for (let i = this.length - 1; i >= 0; i--) {\n            if (this.entries[i] === entry) {\n                this.entries.splice(i, 1);\n                this.length--;\n                break;\n            }\n        }\n    }\n\n    clearToLastMarker() {\n        while (this.length) {\n            const entry = this.entries.pop();\n\n            this.length--;\n\n            if (entry.type === FormattingElementList.MARKER_ENTRY) {\n                break;\n            }\n        }\n    }\n\n    //Search\n    getElementEntryInScopeWithTagName(tagName) {\n        for (let i = this.length - 1; i >= 0; i--) {\n            const entry = this.entries[i];\n\n            if (entry.type === FormattingElementList.MARKER_ENTRY) {\n                return null;\n            }\n\n            if (this.treeAdapter.getTagName(entry.element) === tagName) {\n                return entry;\n            }\n        }\n\n        return null;\n    }\n\n    getElementEntry(element) {\n        for (let i = this.length - 1; i >= 0; i--) {\n            const entry = this.entries[i];\n\n            if (entry.type === FormattingElementList.ELEMENT_ENTRY && entry.element === element) {\n                return entry;\n            }\n        }\n\n        return null;\n    }\n}\n\n//Entry types\nFormattingElementList.MARKER_ENTRY = 'MARKER_ENTRY';\nFormattingElementList.ELEMENT_ENTRY = 'ELEMENT_ENTRY';\n\nmodule.exports = FormattingElementList;\n","'use strict';\n\nconst Tokenizer = require('../tokenizer');\nconst OpenElementStack = require('./open-element-stack');\nconst FormattingElementList = require('./formatting-element-list');\nconst LocationInfoParserMixin = require('../extensions/location-info/parser-mixin');\nconst ErrorReportingParserMixin = require('../extensions/error-reporting/parser-mixin');\nconst Mixin = require('../utils/mixin');\nconst defaultTreeAdapter = require('../tree-adapters/default');\nconst mergeOptions = require('../utils/merge-options');\nconst doctype = require('../common/doctype');\nconst foreignContent = require('../common/foreign-content');\nconst ERR = require('../common/error-codes');\nconst unicode = require('../common/unicode');\nconst HTML = require('../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\nconst ATTRS = HTML.ATTRS;\n\nconst DEFAULT_OPTIONS = {\n    scriptingEnabled: true,\n    sourceCodeLocationInfo: false,\n    onParseError: null,\n    treeAdapter: defaultTreeAdapter\n};\n\n//Misc constants\nconst HIDDEN_INPUT_TYPE = 'hidden';\n\n//Adoption agency loops iteration count\nconst AA_OUTER_LOOP_ITER = 8;\nconst AA_INNER_LOOP_ITER = 3;\n\n//Insertion modes\nconst INITIAL_MODE = 'INITIAL_MODE';\nconst BEFORE_HTML_MODE = 'BEFORE_HTML_MODE';\nconst BEFORE_HEAD_MODE = 'BEFORE_HEAD_MODE';\nconst IN_HEAD_MODE = 'IN_HEAD_MODE';\nconst IN_HEAD_NO_SCRIPT_MODE = 'IN_HEAD_NO_SCRIPT_MODE';\nconst AFTER_HEAD_MODE = 'AFTER_HEAD_MODE';\nconst IN_BODY_MODE = 'IN_BODY_MODE';\nconst TEXT_MODE = 'TEXT_MODE';\nconst IN_TABLE_MODE = 'IN_TABLE_MODE';\nconst IN_TABLE_TEXT_MODE = 'IN_TABLE_TEXT_MODE';\nconst IN_CAPTION_MODE = 'IN_CAPTION_MODE';\nconst IN_COLUMN_GROUP_MODE = 'IN_COLUMN_GROUP_MODE';\nconst IN_TABLE_BODY_MODE = 'IN_TABLE_BODY_MODE';\nconst IN_ROW_MODE = 'IN_ROW_MODE';\nconst IN_CELL_MODE = 'IN_CELL_MODE';\nconst IN_SELECT_MODE = 'IN_SELECT_MODE';\nconst IN_SELECT_IN_TABLE_MODE = 'IN_SELECT_IN_TABLE_MODE';\nconst IN_TEMPLATE_MODE = 'IN_TEMPLATE_MODE';\nconst AFTER_BODY_MODE = 'AFTER_BODY_MODE';\nconst IN_FRAMESET_MODE = 'IN_FRAMESET_MODE';\nconst AFTER_FRAMESET_MODE = 'AFTER_FRAMESET_MODE';\nconst AFTER_AFTER_BODY_MODE = 'AFTER_AFTER_BODY_MODE';\nconst AFTER_AFTER_FRAMESET_MODE = 'AFTER_AFTER_FRAMESET_MODE';\n\n//Insertion mode reset map\nconst INSERTION_MODE_RESET_MAP = {\n    [$.TR]: IN_ROW_MODE,\n    [$.TBODY]: IN_TABLE_BODY_MODE,\n    [$.THEAD]: IN_TABLE_BODY_MODE,\n    [$.TFOOT]: IN_TABLE_BODY_MODE,\n    [$.CAPTION]: IN_CAPTION_MODE,\n    [$.COLGROUP]: IN_COLUMN_GROUP_MODE,\n    [$.TABLE]: IN_TABLE_MODE,\n    [$.BODY]: IN_BODY_MODE,\n    [$.FRAMESET]: IN_FRAMESET_MODE\n};\n\n//Template insertion mode switch map\nconst TEMPLATE_INSERTION_MODE_SWITCH_MAP = {\n    [$.CAPTION]: IN_TABLE_MODE,\n    [$.COLGROUP]: IN_TABLE_MODE,\n    [$.TBODY]: IN_TABLE_MODE,\n    [$.TFOOT]: IN_TABLE_MODE,\n    [$.THEAD]: IN_TABLE_MODE,\n    [$.COL]: IN_COLUMN_GROUP_MODE,\n    [$.TR]: IN_TABLE_BODY_MODE,\n    [$.TD]: IN_ROW_MODE,\n    [$.TH]: IN_ROW_MODE\n};\n\n//Token handlers map for insertion modes\nconst TOKEN_HANDLERS = {\n    [INITIAL_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenInInitialMode,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInInitialMode,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: doctypeInInitialMode,\n        [Tokenizer.START_TAG_TOKEN]: tokenInInitialMode,\n        [Tokenizer.END_TAG_TOKEN]: tokenInInitialMode,\n        [Tokenizer.EOF_TOKEN]: tokenInInitialMode\n    },\n    [BEFORE_HTML_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenBeforeHtml,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenBeforeHtml,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagBeforeHtml,\n        [Tokenizer.END_TAG_TOKEN]: endTagBeforeHtml,\n        [Tokenizer.EOF_TOKEN]: tokenBeforeHtml\n    },\n    [BEFORE_HEAD_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenBeforeHead,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenBeforeHead,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n        [Tokenizer.START_TAG_TOKEN]: startTagBeforeHead,\n        [Tokenizer.END_TAG_TOKEN]: endTagBeforeHead,\n        [Tokenizer.EOF_TOKEN]: tokenBeforeHead\n    },\n    [IN_HEAD_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenInHead,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInHead,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n        [Tokenizer.START_TAG_TOKEN]: startTagInHead,\n        [Tokenizer.END_TAG_TOKEN]: endTagInHead,\n        [Tokenizer.EOF_TOKEN]: tokenInHead\n    },\n    [IN_HEAD_NO_SCRIPT_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenInHeadNoScript,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInHeadNoScript,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n        [Tokenizer.START_TAG_TOKEN]: startTagInHeadNoScript,\n        [Tokenizer.END_TAG_TOKEN]: endTagInHeadNoScript,\n        [Tokenizer.EOF_TOKEN]: tokenInHeadNoScript\n    },\n    [AFTER_HEAD_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenAfterHead,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterHead,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n        [Tokenizer.START_TAG_TOKEN]: startTagAfterHead,\n        [Tokenizer.END_TAG_TOKEN]: endTagAfterHead,\n        [Tokenizer.EOF_TOKEN]: tokenAfterHead\n    },\n    [IN_BODY_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInBody,\n        [Tokenizer.END_TAG_TOKEN]: endTagInBody,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [TEXT_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: ignoreToken,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: ignoreToken,\n        [Tokenizer.END_TAG_TOKEN]: endTagInText,\n        [Tokenizer.EOF_TOKEN]: eofInText\n    },\n    [IN_TABLE_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInTable,\n        [Tokenizer.END_TAG_TOKEN]: endTagInTable,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [IN_TABLE_TEXT_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: characterInTableText,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInTableText,\n        [Tokenizer.COMMENT_TOKEN]: tokenInTableText,\n        [Tokenizer.DOCTYPE_TOKEN]: tokenInTableText,\n        [Tokenizer.START_TAG_TOKEN]: tokenInTableText,\n        [Tokenizer.END_TAG_TOKEN]: tokenInTableText,\n        [Tokenizer.EOF_TOKEN]: tokenInTableText\n    },\n    [IN_CAPTION_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInCaption,\n        [Tokenizer.END_TAG_TOKEN]: endTagInCaption,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [IN_COLUMN_GROUP_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenInColumnGroup,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInColumnGroup,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInColumnGroup,\n        [Tokenizer.END_TAG_TOKEN]: endTagInColumnGroup,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [IN_TABLE_BODY_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInTableBody,\n        [Tokenizer.END_TAG_TOKEN]: endTagInTableBody,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [IN_ROW_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInRow,\n        [Tokenizer.END_TAG_TOKEN]: endTagInRow,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [IN_CELL_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInCell,\n        [Tokenizer.END_TAG_TOKEN]: endTagInCell,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [IN_SELECT_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInSelect,\n        [Tokenizer.END_TAG_TOKEN]: endTagInSelect,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [IN_SELECT_IN_TABLE_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInSelectInTable,\n        [Tokenizer.END_TAG_TOKEN]: endTagInSelectInTable,\n        [Tokenizer.EOF_TOKEN]: eofInBody\n    },\n    [IN_TEMPLATE_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInTemplate,\n        [Tokenizer.END_TAG_TOKEN]: endTagInTemplate,\n        [Tokenizer.EOF_TOKEN]: eofInTemplate\n    },\n    [AFTER_BODY_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenAfterBody,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterBody,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n        [Tokenizer.COMMENT_TOKEN]: appendCommentToRootHtmlElement,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagAfterBody,\n        [Tokenizer.END_TAG_TOKEN]: endTagAfterBody,\n        [Tokenizer.EOF_TOKEN]: stopParsing\n    },\n    [IN_FRAMESET_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagInFrameset,\n        [Tokenizer.END_TAG_TOKEN]: endTagInFrameset,\n        [Tokenizer.EOF_TOKEN]: stopParsing\n    },\n    [AFTER_FRAMESET_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n        [Tokenizer.COMMENT_TOKEN]: appendComment,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagAfterFrameset,\n        [Tokenizer.END_TAG_TOKEN]: endTagAfterFrameset,\n        [Tokenizer.EOF_TOKEN]: stopParsing\n    },\n    [AFTER_AFTER_BODY_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: tokenAfterAfterBody,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterAfterBody,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n        [Tokenizer.COMMENT_TOKEN]: appendCommentToDocument,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagAfterAfterBody,\n        [Tokenizer.END_TAG_TOKEN]: tokenAfterAfterBody,\n        [Tokenizer.EOF_TOKEN]: stopParsing\n    },\n    [AFTER_AFTER_FRAMESET_MODE]: {\n        [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n        [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n        [Tokenizer.COMMENT_TOKEN]: appendCommentToDocument,\n        [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n        [Tokenizer.START_TAG_TOKEN]: startTagAfterAfterFrameset,\n        [Tokenizer.END_TAG_TOKEN]: ignoreToken,\n        [Tokenizer.EOF_TOKEN]: stopParsing\n    }\n};\n\n//Parser\nclass Parser {\n    constructor(options) {\n        this.options = mergeOptions(DEFAULT_OPTIONS, options);\n\n        this.treeAdapter = this.options.treeAdapter;\n        this.pendingScript = null;\n\n        if (this.options.sourceCodeLocationInfo) {\n            Mixin.install(this, LocationInfoParserMixin);\n        }\n\n        if (this.options.onParseError) {\n            Mixin.install(this, ErrorReportingParserMixin, { onParseError: this.options.onParseError });\n        }\n    }\n\n    // API\n    parse(html) {\n        const document = this.treeAdapter.createDocument();\n\n        this._bootstrap(document, null);\n        this.tokenizer.write(html, true);\n        this._runParsingLoop(null);\n\n        return document;\n    }\n\n    parseFragment(html, fragmentContext) {\n        //NOTE: use <template> element as a fragment context if context element was not provided,\n        //so we will parse in \"forgiving\" manner\n        if (!fragmentContext) {\n            fragmentContext = this.treeAdapter.createElement($.TEMPLATE, NS.HTML, []);\n        }\n\n        //NOTE: create fake element which will be used as 'document' for fragment parsing.\n        //This is important for jsdom there 'document' can't be recreated, therefore\n        //fragment parsing causes messing of the main `document`.\n        const documentMock = this.treeAdapter.createElement('documentmock', NS.HTML, []);\n\n        this._bootstrap(documentMock, fragmentContext);\n\n        if (this.treeAdapter.getTagName(fragmentContext) === $.TEMPLATE) {\n            this._pushTmplInsertionMode(IN_TEMPLATE_MODE);\n        }\n\n        this._initTokenizerForFragmentParsing();\n        this._insertFakeRootElement();\n        this._resetInsertionMode();\n        this._findFormInFragmentContext();\n        this.tokenizer.write(html, true);\n        this._runParsingLoop(null);\n\n        const rootElement = this.treeAdapter.getFirstChild(documentMock);\n        const fragment = this.treeAdapter.createDocumentFragment();\n\n        this._adoptNodes(rootElement, fragment);\n\n        return fragment;\n    }\n\n    //Bootstrap parser\n    _bootstrap(document, fragmentContext) {\n        this.tokenizer = new Tokenizer(this.options);\n\n        this.stopped = false;\n\n        this.insertionMode = INITIAL_MODE;\n        this.originalInsertionMode = '';\n\n        this.document = document;\n        this.fragmentContext = fragmentContext;\n\n        this.headElement = null;\n        this.formElement = null;\n\n        this.openElements = new OpenElementStack(this.document, this.treeAdapter);\n        this.activeFormattingElements = new FormattingElementList(this.treeAdapter);\n\n        this.tmplInsertionModeStack = [];\n        this.tmplInsertionModeStackTop = -1;\n        this.currentTmplInsertionMode = null;\n\n        this.pendingCharacterTokens = [];\n        this.hasNonWhitespacePendingCharacterToken = false;\n\n        this.framesetOk = true;\n        this.skipNextNewLine = false;\n        this.fosterParentingEnabled = false;\n    }\n\n    //Errors\n    _err() {\n        // NOTE: err reporting is noop by default. Enabled by mixin.\n    }\n\n    //Parsing loop\n    _runParsingLoop(scriptHandler) {\n        while (!this.stopped) {\n            this._setupTokenizerCDATAMode();\n\n            const token = this.tokenizer.getNextToken();\n\n            if (token.type === Tokenizer.HIBERNATION_TOKEN) {\n                break;\n            }\n\n            if (this.skipNextNewLine) {\n                this.skipNextNewLine = false;\n\n                if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN && token.chars[0] === '\\n') {\n                    if (token.chars.length === 1) {\n                        continue;\n                    }\n\n                    token.chars = token.chars.substr(1);\n                }\n            }\n\n            this._processInputToken(token);\n\n            if (scriptHandler && this.pendingScript) {\n                break;\n            }\n        }\n    }\n\n    runParsingLoopForCurrentChunk(writeCallback, scriptHandler) {\n        this._runParsingLoop(scriptHandler);\n\n        if (scriptHandler && this.pendingScript) {\n            const script = this.pendingScript;\n\n            this.pendingScript = null;\n\n            scriptHandler(script);\n\n            return;\n        }\n\n        if (writeCallback) {\n            writeCallback();\n        }\n    }\n\n    //Text parsing\n    _setupTokenizerCDATAMode() {\n        const current = this._getAdjustedCurrentElement();\n\n        this.tokenizer.allowCDATA =\n            current &&\n            current !== this.document &&\n            this.treeAdapter.getNamespaceURI(current) !== NS.HTML &&\n            !this._isIntegrationPoint(current);\n    }\n\n    _switchToTextParsing(currentToken, nextTokenizerState) {\n        this._insertElement(currentToken, NS.HTML);\n        this.tokenizer.state = nextTokenizerState;\n        this.originalInsertionMode = this.insertionMode;\n        this.insertionMode = TEXT_MODE;\n    }\n\n    switchToPlaintextParsing() {\n        this.insertionMode = TEXT_MODE;\n        this.originalInsertionMode = IN_BODY_MODE;\n        this.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n    }\n\n    //Fragment parsing\n    _getAdjustedCurrentElement() {\n        return this.openElements.stackTop === 0 && this.fragmentContext\n            ? this.fragmentContext\n            : this.openElements.current;\n    }\n\n    _findFormInFragmentContext() {\n        let node = this.fragmentContext;\n\n        do {\n            if (this.treeAdapter.getTagName(node) === $.FORM) {\n                this.formElement = node;\n                break;\n            }\n\n            node = this.treeAdapter.getParentNode(node);\n        } while (node);\n    }\n\n    _initTokenizerForFragmentParsing() {\n        if (this.treeAdapter.getNamespaceURI(this.fragmentContext) === NS.HTML) {\n            const tn = this.treeAdapter.getTagName(this.fragmentContext);\n\n            if (tn === $.TITLE || tn === $.TEXTAREA) {\n                this.tokenizer.state = Tokenizer.MODE.RCDATA;\n            } else if (\n                tn === $.STYLE ||\n                tn === $.XMP ||\n                tn === $.IFRAME ||\n                tn === $.NOEMBED ||\n                tn === $.NOFRAMES ||\n                tn === $.NOSCRIPT\n            ) {\n                this.tokenizer.state = Tokenizer.MODE.RAWTEXT;\n            } else if (tn === $.SCRIPT) {\n                this.tokenizer.state = Tokenizer.MODE.SCRIPT_DATA;\n            } else if (tn === $.PLAINTEXT) {\n                this.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n            }\n        }\n    }\n\n    //Tree mutation\n    _setDocumentType(token) {\n        const name = token.name || '';\n        const publicId = token.publicId || '';\n        const systemId = token.systemId || '';\n\n        this.treeAdapter.setDocumentType(this.document, name, publicId, systemId);\n    }\n\n    _attachElementToTree(element) {\n        if (this._shouldFosterParentOnInsertion()) {\n            this._fosterParentElement(element);\n        } else {\n            const parent = this.openElements.currentTmplContent || this.openElements.current;\n\n            this.treeAdapter.appendChild(parent, element);\n        }\n    }\n\n    _appendElement(token, namespaceURI) {\n        const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n\n        this._attachElementToTree(element);\n    }\n\n    _insertElement(token, namespaceURI) {\n        const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n\n        this._attachElementToTree(element);\n        this.openElements.push(element);\n    }\n\n    _insertFakeElement(tagName) {\n        const element = this.treeAdapter.createElement(tagName, NS.HTML, []);\n\n        this._attachElementToTree(element);\n        this.openElements.push(element);\n    }\n\n    _insertTemplate(token) {\n        const tmpl = this.treeAdapter.createElement(token.tagName, NS.HTML, token.attrs);\n        const content = this.treeAdapter.createDocumentFragment();\n\n        this.treeAdapter.setTemplateContent(tmpl, content);\n        this._attachElementToTree(tmpl);\n        this.openElements.push(tmpl);\n    }\n\n    _insertFakeRootElement() {\n        const element = this.treeAdapter.createElement($.HTML, NS.HTML, []);\n\n        this.treeAdapter.appendChild(this.openElements.current, element);\n        this.openElements.push(element);\n    }\n\n    _appendCommentNode(token, parent) {\n        const commentNode = this.treeAdapter.createCommentNode(token.data);\n\n        this.treeAdapter.appendChild(parent, commentNode);\n    }\n\n    _insertCharacters(token) {\n        if (this._shouldFosterParentOnInsertion()) {\n            this._fosterParentText(token.chars);\n        } else {\n            const parent = this.openElements.currentTmplContent || this.openElements.current;\n\n            this.treeAdapter.insertText(parent, token.chars);\n        }\n    }\n\n    _adoptNodes(donor, recipient) {\n        for (let child = this.treeAdapter.getFirstChild(donor); child; child = this.treeAdapter.getFirstChild(donor)) {\n            this.treeAdapter.detachNode(child);\n            this.treeAdapter.appendChild(recipient, child);\n        }\n    }\n\n    //Token processing\n    _shouldProcessTokenInForeignContent(token) {\n        const current = this._getAdjustedCurrentElement();\n\n        if (!current || current === this.document) {\n            return false;\n        }\n\n        const ns = this.treeAdapter.getNamespaceURI(current);\n\n        if (ns === NS.HTML) {\n            return false;\n        }\n\n        if (\n            this.treeAdapter.getTagName(current) === $.ANNOTATION_XML &&\n            ns === NS.MATHML &&\n            token.type === Tokenizer.START_TAG_TOKEN &&\n            token.tagName === $.SVG\n        ) {\n            return false;\n        }\n\n        const isCharacterToken =\n            token.type === Tokenizer.CHARACTER_TOKEN ||\n            token.type === Tokenizer.NULL_CHARACTER_TOKEN ||\n            token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN;\n\n        const isMathMLTextStartTag =\n            token.type === Tokenizer.START_TAG_TOKEN && token.tagName !== $.MGLYPH && token.tagName !== $.MALIGNMARK;\n\n        if ((isMathMLTextStartTag || isCharacterToken) && this._isIntegrationPoint(current, NS.MATHML)) {\n            return false;\n        }\n\n        if (\n            (token.type === Tokenizer.START_TAG_TOKEN || isCharacterToken) &&\n            this._isIntegrationPoint(current, NS.HTML)\n        ) {\n            return false;\n        }\n\n        return token.type !== Tokenizer.EOF_TOKEN;\n    }\n\n    _processToken(token) {\n        TOKEN_HANDLERS[this.insertionMode][token.type](this, token);\n    }\n\n    _processTokenInBodyMode(token) {\n        TOKEN_HANDLERS[IN_BODY_MODE][token.type](this, token);\n    }\n\n    _processTokenInForeignContent(token) {\n        if (token.type === Tokenizer.CHARACTER_TOKEN) {\n            characterInForeignContent(this, token);\n        } else if (token.type === Tokenizer.NULL_CHARACTER_TOKEN) {\n            nullCharacterInForeignContent(this, token);\n        } else if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN) {\n            insertCharacters(this, token);\n        } else if (token.type === Tokenizer.COMMENT_TOKEN) {\n            appendComment(this, token);\n        } else if (token.type === Tokenizer.START_TAG_TOKEN) {\n            startTagInForeignContent(this, token);\n        } else if (token.type === Tokenizer.END_TAG_TOKEN) {\n            endTagInForeignContent(this, token);\n        }\n    }\n\n    _processInputToken(token) {\n        if (this._shouldProcessTokenInForeignContent(token)) {\n            this._processTokenInForeignContent(token);\n        } else {\n            this._processToken(token);\n        }\n\n        if (token.type === Tokenizer.START_TAG_TOKEN && token.selfClosing && !token.ackSelfClosing) {\n            this._err(ERR.nonVoidHtmlElementStartTagWithTrailingSolidus);\n        }\n    }\n\n    //Integration points\n    _isIntegrationPoint(element, foreignNS) {\n        const tn = this.treeAdapter.getTagName(element);\n        const ns = this.treeAdapter.getNamespaceURI(element);\n        const attrs = this.treeAdapter.getAttrList(element);\n\n        return foreignContent.isIntegrationPoint(tn, ns, attrs, foreignNS);\n    }\n\n    //Active formatting elements reconstruction\n    _reconstructActiveFormattingElements() {\n        const listLength = this.activeFormattingElements.length;\n\n        if (listLength) {\n            let unopenIdx = listLength;\n            let entry = null;\n\n            do {\n                unopenIdx--;\n                entry = this.activeFormattingElements.entries[unopenIdx];\n\n                if (entry.type === FormattingElementList.MARKER_ENTRY || this.openElements.contains(entry.element)) {\n                    unopenIdx++;\n                    break;\n                }\n            } while (unopenIdx > 0);\n\n            for (let i = unopenIdx; i < listLength; i++) {\n                entry = this.activeFormattingElements.entries[i];\n                this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));\n                entry.element = this.openElements.current;\n            }\n        }\n    }\n\n    //Close elements\n    _closeTableCell() {\n        this.openElements.generateImpliedEndTags();\n        this.openElements.popUntilTableCellPopped();\n        this.activeFormattingElements.clearToLastMarker();\n        this.insertionMode = IN_ROW_MODE;\n    }\n\n    _closePElement() {\n        this.openElements.generateImpliedEndTagsWithExclusion($.P);\n        this.openElements.popUntilTagNamePopped($.P);\n    }\n\n    //Insertion modes\n    _resetInsertionMode() {\n        for (let i = this.openElements.stackTop, last = false; i >= 0; i--) {\n            let element = this.openElements.items[i];\n\n            if (i === 0) {\n                last = true;\n\n                if (this.fragmentContext) {\n                    element = this.fragmentContext;\n                }\n            }\n\n            const tn = this.treeAdapter.getTagName(element);\n            const newInsertionMode = INSERTION_MODE_RESET_MAP[tn];\n\n            if (newInsertionMode) {\n                this.insertionMode = newInsertionMode;\n                break;\n            } else if (!last && (tn === $.TD || tn === $.TH)) {\n                this.insertionMode = IN_CELL_MODE;\n                break;\n            } else if (!last && tn === $.HEAD) {\n                this.insertionMode = IN_HEAD_MODE;\n                break;\n            } else if (tn === $.SELECT) {\n                this._resetInsertionModeForSelect(i);\n                break;\n            } else if (tn === $.TEMPLATE) {\n                this.insertionMode = this.currentTmplInsertionMode;\n                break;\n            } else if (tn === $.HTML) {\n                this.insertionMode = this.headElement ? AFTER_HEAD_MODE : BEFORE_HEAD_MODE;\n                break;\n            } else if (last) {\n                this.insertionMode = IN_BODY_MODE;\n                break;\n            }\n        }\n    }\n\n    _resetInsertionModeForSelect(selectIdx) {\n        if (selectIdx > 0) {\n            for (let i = selectIdx - 1; i > 0; i--) {\n                const ancestor = this.openElements.items[i];\n                const tn = this.treeAdapter.getTagName(ancestor);\n\n                if (tn === $.TEMPLATE) {\n                    break;\n                } else if (tn === $.TABLE) {\n                    this.insertionMode = IN_SELECT_IN_TABLE_MODE;\n                    return;\n                }\n            }\n        }\n\n        this.insertionMode = IN_SELECT_MODE;\n    }\n\n    _pushTmplInsertionMode(mode) {\n        this.tmplInsertionModeStack.push(mode);\n        this.tmplInsertionModeStackTop++;\n        this.currentTmplInsertionMode = mode;\n    }\n\n    _popTmplInsertionMode() {\n        this.tmplInsertionModeStack.pop();\n        this.tmplInsertionModeStackTop--;\n        this.currentTmplInsertionMode = this.tmplInsertionModeStack[this.tmplInsertionModeStackTop];\n    }\n\n    //Foster parenting\n    _isElementCausesFosterParenting(element) {\n        const tn = this.treeAdapter.getTagName(element);\n\n        return tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR;\n    }\n\n    _shouldFosterParentOnInsertion() {\n        return this.fosterParentingEnabled && this._isElementCausesFosterParenting(this.openElements.current);\n    }\n\n    _findFosterParentingLocation() {\n        const location = {\n            parent: null,\n            beforeElement: null\n        };\n\n        for (let i = this.openElements.stackTop; i >= 0; i--) {\n            const openElement = this.openElements.items[i];\n            const tn = this.treeAdapter.getTagName(openElement);\n            const ns = this.treeAdapter.getNamespaceURI(openElement);\n\n            if (tn === $.TEMPLATE && ns === NS.HTML) {\n                location.parent = this.treeAdapter.getTemplateContent(openElement);\n                break;\n            } else if (tn === $.TABLE) {\n                location.parent = this.treeAdapter.getParentNode(openElement);\n\n                if (location.parent) {\n                    location.beforeElement = openElement;\n                } else {\n                    location.parent = this.openElements.items[i - 1];\n                }\n\n                break;\n            }\n        }\n\n        if (!location.parent) {\n            location.parent = this.openElements.items[0];\n        }\n\n        return location;\n    }\n\n    _fosterParentElement(element) {\n        const location = this._findFosterParentingLocation();\n\n        if (location.beforeElement) {\n            this.treeAdapter.insertBefore(location.parent, element, location.beforeElement);\n        } else {\n            this.treeAdapter.appendChild(location.parent, element);\n        }\n    }\n\n    _fosterParentText(chars) {\n        const location = this._findFosterParentingLocation();\n\n        if (location.beforeElement) {\n            this.treeAdapter.insertTextBefore(location.parent, chars, location.beforeElement);\n        } else {\n            this.treeAdapter.insertText(location.parent, chars);\n        }\n    }\n\n    //Special elements\n    _isSpecialElement(element) {\n        const tn = this.treeAdapter.getTagName(element);\n        const ns = this.treeAdapter.getNamespaceURI(element);\n\n        return HTML.SPECIAL_ELEMENTS[ns][tn];\n    }\n}\n\nmodule.exports = Parser;\n\n//Adoption agency algorithm\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#adoptionAgency)\n//------------------------------------------------------------------\n\n//Steps 5-8 of the algorithm\nfunction aaObtainFormattingElementEntry(p, token) {\n    let formattingElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(token.tagName);\n\n    if (formattingElementEntry) {\n        if (!p.openElements.contains(formattingElementEntry.element)) {\n            p.activeFormattingElements.removeEntry(formattingElementEntry);\n            formattingElementEntry = null;\n        } else if (!p.openElements.hasInScope(token.tagName)) {\n            formattingElementEntry = null;\n        }\n    } else {\n        genericEndTagInBody(p, token);\n    }\n\n    return formattingElementEntry;\n}\n\n//Steps 9 and 10 of the algorithm\nfunction aaObtainFurthestBlock(p, formattingElementEntry) {\n    let furthestBlock = null;\n\n    for (let i = p.openElements.stackTop; i >= 0; i--) {\n        const element = p.openElements.items[i];\n\n        if (element === formattingElementEntry.element) {\n            break;\n        }\n\n        if (p._isSpecialElement(element)) {\n            furthestBlock = element;\n        }\n    }\n\n    if (!furthestBlock) {\n        p.openElements.popUntilElementPopped(formattingElementEntry.element);\n        p.activeFormattingElements.removeEntry(formattingElementEntry);\n    }\n\n    return furthestBlock;\n}\n\n//Step 13 of the algorithm\nfunction aaInnerLoop(p, furthestBlock, formattingElement) {\n    let lastElement = furthestBlock;\n    let nextElement = p.openElements.getCommonAncestor(furthestBlock);\n\n    for (let i = 0, element = nextElement; element !== formattingElement; i++, element = nextElement) {\n        //NOTE: store next element for the next loop iteration (it may be deleted from the stack by step 9.5)\n        nextElement = p.openElements.getCommonAncestor(element);\n\n        const elementEntry = p.activeFormattingElements.getElementEntry(element);\n        const counterOverflow = elementEntry && i >= AA_INNER_LOOP_ITER;\n        const shouldRemoveFromOpenElements = !elementEntry || counterOverflow;\n\n        if (shouldRemoveFromOpenElements) {\n            if (counterOverflow) {\n                p.activeFormattingElements.removeEntry(elementEntry);\n            }\n\n            p.openElements.remove(element);\n        } else {\n            element = aaRecreateElementFromEntry(p, elementEntry);\n\n            if (lastElement === furthestBlock) {\n                p.activeFormattingElements.bookmark = elementEntry;\n            }\n\n            p.treeAdapter.detachNode(lastElement);\n            p.treeAdapter.appendChild(element, lastElement);\n            lastElement = element;\n        }\n    }\n\n    return lastElement;\n}\n\n//Step 13.7 of the algorithm\nfunction aaRecreateElementFromEntry(p, elementEntry) {\n    const ns = p.treeAdapter.getNamespaceURI(elementEntry.element);\n    const newElement = p.treeAdapter.createElement(elementEntry.token.tagName, ns, elementEntry.token.attrs);\n\n    p.openElements.replace(elementEntry.element, newElement);\n    elementEntry.element = newElement;\n\n    return newElement;\n}\n\n//Step 14 of the algorithm\nfunction aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) {\n    if (p._isElementCausesFosterParenting(commonAncestor)) {\n        p._fosterParentElement(lastElement);\n    } else {\n        const tn = p.treeAdapter.getTagName(commonAncestor);\n        const ns = p.treeAdapter.getNamespaceURI(commonAncestor);\n\n        if (tn === $.TEMPLATE && ns === NS.HTML) {\n            commonAncestor = p.treeAdapter.getTemplateContent(commonAncestor);\n        }\n\n        p.treeAdapter.appendChild(commonAncestor, lastElement);\n    }\n}\n\n//Steps 15-19 of the algorithm\nfunction aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry) {\n    const ns = p.treeAdapter.getNamespaceURI(formattingElementEntry.element);\n    const token = formattingElementEntry.token;\n    const newElement = p.treeAdapter.createElement(token.tagName, ns, token.attrs);\n\n    p._adoptNodes(furthestBlock, newElement);\n    p.treeAdapter.appendChild(furthestBlock, newElement);\n\n    p.activeFormattingElements.insertElementAfterBookmark(newElement, formattingElementEntry.token);\n    p.activeFormattingElements.removeEntry(formattingElementEntry);\n\n    p.openElements.remove(formattingElementEntry.element);\n    p.openElements.insertAfter(furthestBlock, newElement);\n}\n\n//Algorithm entry point\nfunction callAdoptionAgency(p, token) {\n    let formattingElementEntry;\n\n    for (let i = 0; i < AA_OUTER_LOOP_ITER; i++) {\n        formattingElementEntry = aaObtainFormattingElementEntry(p, token, formattingElementEntry);\n\n        if (!formattingElementEntry) {\n            break;\n        }\n\n        const furthestBlock = aaObtainFurthestBlock(p, formattingElementEntry);\n\n        if (!furthestBlock) {\n            break;\n        }\n\n        p.activeFormattingElements.bookmark = formattingElementEntry;\n\n        const lastElement = aaInnerLoop(p, furthestBlock, formattingElementEntry.element);\n        const commonAncestor = p.openElements.getCommonAncestor(formattingElementEntry.element);\n\n        p.treeAdapter.detachNode(lastElement);\n        aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement);\n        aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry);\n    }\n}\n\n//Generic token handlers\n//------------------------------------------------------------------\nfunction ignoreToken() {\n    //NOTE: do nothing =)\n}\n\nfunction misplacedDoctype(p) {\n    p._err(ERR.misplacedDoctype);\n}\n\nfunction appendComment(p, token) {\n    p._appendCommentNode(token, p.openElements.currentTmplContent || p.openElements.current);\n}\n\nfunction appendCommentToRootHtmlElement(p, token) {\n    p._appendCommentNode(token, p.openElements.items[0]);\n}\n\nfunction appendCommentToDocument(p, token) {\n    p._appendCommentNode(token, p.document);\n}\n\nfunction insertCharacters(p, token) {\n    p._insertCharacters(token);\n}\n\nfunction stopParsing(p) {\n    p.stopped = true;\n}\n\n// The \"initial\" insertion mode\n//------------------------------------------------------------------\nfunction doctypeInInitialMode(p, token) {\n    p._setDocumentType(token);\n\n    const mode = token.forceQuirks ? HTML.DOCUMENT_MODE.QUIRKS : doctype.getDocumentMode(token);\n\n    if (!doctype.isConforming(token)) {\n        p._err(ERR.nonConformingDoctype);\n    }\n\n    p.treeAdapter.setDocumentMode(p.document, mode);\n\n    p.insertionMode = BEFORE_HTML_MODE;\n}\n\nfunction tokenInInitialMode(p, token) {\n    p._err(ERR.missingDoctype, { beforeToken: true });\n    p.treeAdapter.setDocumentMode(p.document, HTML.DOCUMENT_MODE.QUIRKS);\n    p.insertionMode = BEFORE_HTML_MODE;\n    p._processToken(token);\n}\n\n// The \"before html\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHtml(p, token) {\n    if (token.tagName === $.HTML) {\n        p._insertElement(token, NS.HTML);\n        p.insertionMode = BEFORE_HEAD_MODE;\n    } else {\n        tokenBeforeHtml(p, token);\n    }\n}\n\nfunction endTagBeforeHtml(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML || tn === $.HEAD || tn === $.BODY || tn === $.BR) {\n        tokenBeforeHtml(p, token);\n    }\n}\n\nfunction tokenBeforeHtml(p, token) {\n    p._insertFakeRootElement();\n    p.insertionMode = BEFORE_HEAD_MODE;\n    p._processToken(token);\n}\n\n// The \"before head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHead(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (tn === $.HEAD) {\n        p._insertElement(token, NS.HTML);\n        p.headElement = p.openElements.current;\n        p.insertionMode = IN_HEAD_MODE;\n    } else {\n        tokenBeforeHead(p, token);\n    }\n}\n\nfunction endTagBeforeHead(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HEAD || tn === $.BODY || tn === $.HTML || tn === $.BR) {\n        tokenBeforeHead(p, token);\n    } else {\n        p._err(ERR.endTagWithoutMatchingOpenElement);\n    }\n}\n\nfunction tokenBeforeHead(p, token) {\n    p._insertFakeElement($.HEAD);\n    p.headElement = p.openElements.current;\n    p.insertionMode = IN_HEAD_MODE;\n    p._processToken(token);\n}\n\n// The \"in head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHead(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (tn === $.BASE || tn === $.BASEFONT || tn === $.BGSOUND || tn === $.LINK || tn === $.META) {\n        p._appendElement(token, NS.HTML);\n        token.ackSelfClosing = true;\n    } else if (tn === $.TITLE) {\n        p._switchToTextParsing(token, Tokenizer.MODE.RCDATA);\n    } else if (tn === $.NOSCRIPT) {\n        if (p.options.scriptingEnabled) {\n            p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n        } else {\n            p._insertElement(token, NS.HTML);\n            p.insertionMode = IN_HEAD_NO_SCRIPT_MODE;\n        }\n    } else if (tn === $.NOFRAMES || tn === $.STYLE) {\n        p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n    } else if (tn === $.SCRIPT) {\n        p._switchToTextParsing(token, Tokenizer.MODE.SCRIPT_DATA);\n    } else if (tn === $.TEMPLATE) {\n        p._insertTemplate(token, NS.HTML);\n        p.activeFormattingElements.insertMarker();\n        p.framesetOk = false;\n        p.insertionMode = IN_TEMPLATE_MODE;\n        p._pushTmplInsertionMode(IN_TEMPLATE_MODE);\n    } else if (tn === $.HEAD) {\n        p._err(ERR.misplacedStartTagForHeadElement);\n    } else {\n        tokenInHead(p, token);\n    }\n}\n\nfunction endTagInHead(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HEAD) {\n        p.openElements.pop();\n        p.insertionMode = AFTER_HEAD_MODE;\n    } else if (tn === $.BODY || tn === $.BR || tn === $.HTML) {\n        tokenInHead(p, token);\n    } else if (tn === $.TEMPLATE) {\n        if (p.openElements.tmplCount > 0) {\n            p.openElements.generateImpliedEndTagsThoroughly();\n\n            if (p.openElements.currentTagName !== $.TEMPLATE) {\n                p._err(ERR.closingOfElementWithOpenChildElements);\n            }\n\n            p.openElements.popUntilTagNamePopped($.TEMPLATE);\n            p.activeFormattingElements.clearToLastMarker();\n            p._popTmplInsertionMode();\n            p._resetInsertionMode();\n        } else {\n            p._err(ERR.endTagWithoutMatchingOpenElement);\n        }\n    } else {\n        p._err(ERR.endTagWithoutMatchingOpenElement);\n    }\n}\n\nfunction tokenInHead(p, token) {\n    p.openElements.pop();\n    p.insertionMode = AFTER_HEAD_MODE;\n    p._processToken(token);\n}\n\n// The \"in head no script\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHeadNoScript(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (\n        tn === $.BASEFONT ||\n        tn === $.BGSOUND ||\n        tn === $.HEAD ||\n        tn === $.LINK ||\n        tn === $.META ||\n        tn === $.NOFRAMES ||\n        tn === $.STYLE\n    ) {\n        startTagInHead(p, token);\n    } else if (tn === $.NOSCRIPT) {\n        p._err(ERR.nestedNoscriptInHead);\n    } else {\n        tokenInHeadNoScript(p, token);\n    }\n}\n\nfunction endTagInHeadNoScript(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.NOSCRIPT) {\n        p.openElements.pop();\n        p.insertionMode = IN_HEAD_MODE;\n    } else if (tn === $.BR) {\n        tokenInHeadNoScript(p, token);\n    } else {\n        p._err(ERR.endTagWithoutMatchingOpenElement);\n    }\n}\n\nfunction tokenInHeadNoScript(p, token) {\n    const errCode =\n        token.type === Tokenizer.EOF_TOKEN ? ERR.openElementsLeftAfterEof : ERR.disallowedContentInNoscriptInHead;\n\n    p._err(errCode);\n    p.openElements.pop();\n    p.insertionMode = IN_HEAD_MODE;\n    p._processToken(token);\n}\n\n// The \"after head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterHead(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (tn === $.BODY) {\n        p._insertElement(token, NS.HTML);\n        p.framesetOk = false;\n        p.insertionMode = IN_BODY_MODE;\n    } else if (tn === $.FRAMESET) {\n        p._insertElement(token, NS.HTML);\n        p.insertionMode = IN_FRAMESET_MODE;\n    } else if (\n        tn === $.BASE ||\n        tn === $.BASEFONT ||\n        tn === $.BGSOUND ||\n        tn === $.LINK ||\n        tn === $.META ||\n        tn === $.NOFRAMES ||\n        tn === $.SCRIPT ||\n        tn === $.STYLE ||\n        tn === $.TEMPLATE ||\n        tn === $.TITLE\n    ) {\n        p._err(ERR.abandonedHeadElementChild);\n        p.openElements.push(p.headElement);\n        startTagInHead(p, token);\n        p.openElements.remove(p.headElement);\n    } else if (tn === $.HEAD) {\n        p._err(ERR.misplacedStartTagForHeadElement);\n    } else {\n        tokenAfterHead(p, token);\n    }\n}\n\nfunction endTagAfterHead(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.BODY || tn === $.HTML || tn === $.BR) {\n        tokenAfterHead(p, token);\n    } else if (tn === $.TEMPLATE) {\n        endTagInHead(p, token);\n    } else {\n        p._err(ERR.endTagWithoutMatchingOpenElement);\n    }\n}\n\nfunction tokenAfterHead(p, token) {\n    p._insertFakeElement($.BODY);\n    p.insertionMode = IN_BODY_MODE;\n    p._processToken(token);\n}\n\n// The \"in body\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n    p._insertCharacters(token);\n}\n\nfunction characterInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n    p._insertCharacters(token);\n    p.framesetOk = false;\n}\n\nfunction htmlStartTagInBody(p, token) {\n    if (p.openElements.tmplCount === 0) {\n        p.treeAdapter.adoptAttributes(p.openElements.items[0], token.attrs);\n    }\n}\n\nfunction bodyStartTagInBody(p, token) {\n    const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n\n    if (bodyElement && p.openElements.tmplCount === 0) {\n        p.framesetOk = false;\n        p.treeAdapter.adoptAttributes(bodyElement, token.attrs);\n    }\n}\n\nfunction framesetStartTagInBody(p, token) {\n    const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n\n    if (p.framesetOk && bodyElement) {\n        p.treeAdapter.detachNode(bodyElement);\n        p.openElements.popAllUpToHtmlElement();\n        p._insertElement(token, NS.HTML);\n        p.insertionMode = IN_FRAMESET_MODE;\n    }\n}\n\nfunction addressStartTagInBody(p, token) {\n    if (p.openElements.hasInButtonScope($.P)) {\n        p._closePElement();\n    }\n\n    p._insertElement(token, NS.HTML);\n}\n\nfunction numberedHeaderStartTagInBody(p, token) {\n    if (p.openElements.hasInButtonScope($.P)) {\n        p._closePElement();\n    }\n\n    const tn = p.openElements.currentTagName;\n\n    if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n        p.openElements.pop();\n    }\n\n    p._insertElement(token, NS.HTML);\n}\n\nfunction preStartTagInBody(p, token) {\n    if (p.openElements.hasInButtonScope($.P)) {\n        p._closePElement();\n    }\n\n    p._insertElement(token, NS.HTML);\n    //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n    //on to the next one. (Newlines at the start of pre blocks are ignored as an authoring convenience.)\n    p.skipNextNewLine = true;\n    p.framesetOk = false;\n}\n\nfunction formStartTagInBody(p, token) {\n    const inTemplate = p.openElements.tmplCount > 0;\n\n    if (!p.formElement || inTemplate) {\n        if (p.openElements.hasInButtonScope($.P)) {\n            p._closePElement();\n        }\n\n        p._insertElement(token, NS.HTML);\n\n        if (!inTemplate) {\n            p.formElement = p.openElements.current;\n        }\n    }\n}\n\nfunction listItemStartTagInBody(p, token) {\n    p.framesetOk = false;\n\n    const tn = token.tagName;\n\n    for (let i = p.openElements.stackTop; i >= 0; i--) {\n        const element = p.openElements.items[i];\n        const elementTn = p.treeAdapter.getTagName(element);\n        let closeTn = null;\n\n        if (tn === $.LI && elementTn === $.LI) {\n            closeTn = $.LI;\n        } else if ((tn === $.DD || tn === $.DT) && (elementTn === $.DD || elementTn === $.DT)) {\n            closeTn = elementTn;\n        }\n\n        if (closeTn) {\n            p.openElements.generateImpliedEndTagsWithExclusion(closeTn);\n            p.openElements.popUntilTagNamePopped(closeTn);\n            break;\n        }\n\n        if (elementTn !== $.ADDRESS && elementTn !== $.DIV && elementTn !== $.P && p._isSpecialElement(element)) {\n            break;\n        }\n    }\n\n    if (p.openElements.hasInButtonScope($.P)) {\n        p._closePElement();\n    }\n\n    p._insertElement(token, NS.HTML);\n}\n\nfunction plaintextStartTagInBody(p, token) {\n    if (p.openElements.hasInButtonScope($.P)) {\n        p._closePElement();\n    }\n\n    p._insertElement(token, NS.HTML);\n    p.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n}\n\nfunction buttonStartTagInBody(p, token) {\n    if (p.openElements.hasInScope($.BUTTON)) {\n        p.openElements.generateImpliedEndTags();\n        p.openElements.popUntilTagNamePopped($.BUTTON);\n    }\n\n    p._reconstructActiveFormattingElements();\n    p._insertElement(token, NS.HTML);\n    p.framesetOk = false;\n}\n\nfunction aStartTagInBody(p, token) {\n    const activeElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName($.A);\n\n    if (activeElementEntry) {\n        callAdoptionAgency(p, token);\n        p.openElements.remove(activeElementEntry.element);\n        p.activeFormattingElements.removeEntry(activeElementEntry);\n    }\n\n    p._reconstructActiveFormattingElements();\n    p._insertElement(token, NS.HTML);\n    p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction bStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n    p._insertElement(token, NS.HTML);\n    p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction nobrStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n\n    if (p.openElements.hasInScope($.NOBR)) {\n        callAdoptionAgency(p, token);\n        p._reconstructActiveFormattingElements();\n    }\n\n    p._insertElement(token, NS.HTML);\n    p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction appletStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n    p._insertElement(token, NS.HTML);\n    p.activeFormattingElements.insertMarker();\n    p.framesetOk = false;\n}\n\nfunction tableStartTagInBody(p, token) {\n    if (\n        p.treeAdapter.getDocumentMode(p.document) !== HTML.DOCUMENT_MODE.QUIRKS &&\n        p.openElements.hasInButtonScope($.P)\n    ) {\n        p._closePElement();\n    }\n\n    p._insertElement(token, NS.HTML);\n    p.framesetOk = false;\n    p.insertionMode = IN_TABLE_MODE;\n}\n\nfunction areaStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n    p._appendElement(token, NS.HTML);\n    p.framesetOk = false;\n    token.ackSelfClosing = true;\n}\n\nfunction inputStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n    p._appendElement(token, NS.HTML);\n\n    const inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);\n\n    if (!inputType || inputType.toLowerCase() !== HIDDEN_INPUT_TYPE) {\n        p.framesetOk = false;\n    }\n\n    token.ackSelfClosing = true;\n}\n\nfunction paramStartTagInBody(p, token) {\n    p._appendElement(token, NS.HTML);\n    token.ackSelfClosing = true;\n}\n\nfunction hrStartTagInBody(p, token) {\n    if (p.openElements.hasInButtonScope($.P)) {\n        p._closePElement();\n    }\n\n    p._appendElement(token, NS.HTML);\n    p.framesetOk = false;\n    token.ackSelfClosing = true;\n}\n\nfunction imageStartTagInBody(p, token) {\n    token.tagName = $.IMG;\n    areaStartTagInBody(p, token);\n}\n\nfunction textareaStartTagInBody(p, token) {\n    p._insertElement(token, NS.HTML);\n    //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n    //on to the next one. (Newlines at the start of textarea elements are ignored as an authoring convenience.)\n    p.skipNextNewLine = true;\n    p.tokenizer.state = Tokenizer.MODE.RCDATA;\n    p.originalInsertionMode = p.insertionMode;\n    p.framesetOk = false;\n    p.insertionMode = TEXT_MODE;\n}\n\nfunction xmpStartTagInBody(p, token) {\n    if (p.openElements.hasInButtonScope($.P)) {\n        p._closePElement();\n    }\n\n    p._reconstructActiveFormattingElements();\n    p.framesetOk = false;\n    p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\nfunction iframeStartTagInBody(p, token) {\n    p.framesetOk = false;\n    p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\n//NOTE: here we assume that we always act as an user agent with enabled plugins, so we parse\n//<noembed> as a rawtext.\nfunction noembedStartTagInBody(p, token) {\n    p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\nfunction selectStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n    p._insertElement(token, NS.HTML);\n    p.framesetOk = false;\n\n    if (\n        p.insertionMode === IN_TABLE_MODE ||\n        p.insertionMode === IN_CAPTION_MODE ||\n        p.insertionMode === IN_TABLE_BODY_MODE ||\n        p.insertionMode === IN_ROW_MODE ||\n        p.insertionMode === IN_CELL_MODE\n    ) {\n        p.insertionMode = IN_SELECT_IN_TABLE_MODE;\n    } else {\n        p.insertionMode = IN_SELECT_MODE;\n    }\n}\n\nfunction optgroupStartTagInBody(p, token) {\n    if (p.openElements.currentTagName === $.OPTION) {\n        p.openElements.pop();\n    }\n\n    p._reconstructActiveFormattingElements();\n    p._insertElement(token, NS.HTML);\n}\n\nfunction rbStartTagInBody(p, token) {\n    if (p.openElements.hasInScope($.RUBY)) {\n        p.openElements.generateImpliedEndTags();\n    }\n\n    p._insertElement(token, NS.HTML);\n}\n\nfunction rtStartTagInBody(p, token) {\n    if (p.openElements.hasInScope($.RUBY)) {\n        p.openElements.generateImpliedEndTagsWithExclusion($.RTC);\n    }\n\n    p._insertElement(token, NS.HTML);\n}\n\nfunction menuStartTagInBody(p, token) {\n    if (p.openElements.hasInButtonScope($.P)) {\n        p._closePElement();\n    }\n\n    p._insertElement(token, NS.HTML);\n}\n\nfunction mathStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n\n    foreignContent.adjustTokenMathMLAttrs(token);\n    foreignContent.adjustTokenXMLAttrs(token);\n\n    if (token.selfClosing) {\n        p._appendElement(token, NS.MATHML);\n    } else {\n        p._insertElement(token, NS.MATHML);\n    }\n\n    token.ackSelfClosing = true;\n}\n\nfunction svgStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n\n    foreignContent.adjustTokenSVGAttrs(token);\n    foreignContent.adjustTokenXMLAttrs(token);\n\n    if (token.selfClosing) {\n        p._appendElement(token, NS.SVG);\n    } else {\n        p._insertElement(token, NS.SVG);\n    }\n\n    token.ackSelfClosing = true;\n}\n\nfunction genericStartTagInBody(p, token) {\n    p._reconstructActiveFormattingElements();\n    p._insertElement(token, NS.HTML);\n}\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction startTagInBody(p, token) {\n    const tn = token.tagName;\n\n    switch (tn.length) {\n        case 1:\n            if (tn === $.I || tn === $.S || tn === $.B || tn === $.U) {\n                bStartTagInBody(p, token);\n            } else if (tn === $.P) {\n                addressStartTagInBody(p, token);\n            } else if (tn === $.A) {\n                aStartTagInBody(p, token);\n            } else {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 2:\n            if (tn === $.DL || tn === $.OL || tn === $.UL) {\n                addressStartTagInBody(p, token);\n            } else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n                numberedHeaderStartTagInBody(p, token);\n            } else if (tn === $.LI || tn === $.DD || tn === $.DT) {\n                listItemStartTagInBody(p, token);\n            } else if (tn === $.EM || tn === $.TT) {\n                bStartTagInBody(p, token);\n            } else if (tn === $.BR) {\n                areaStartTagInBody(p, token);\n            } else if (tn === $.HR) {\n                hrStartTagInBody(p, token);\n            } else if (tn === $.RB) {\n                rbStartTagInBody(p, token);\n            } else if (tn === $.RT || tn === $.RP) {\n                rtStartTagInBody(p, token);\n            } else if (tn !== $.TH && tn !== $.TD && tn !== $.TR) {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 3:\n            if (tn === $.DIV || tn === $.DIR || tn === $.NAV) {\n                addressStartTagInBody(p, token);\n            } else if (tn === $.PRE) {\n                preStartTagInBody(p, token);\n            } else if (tn === $.BIG) {\n                bStartTagInBody(p, token);\n            } else if (tn === $.IMG || tn === $.WBR) {\n                areaStartTagInBody(p, token);\n            } else if (tn === $.XMP) {\n                xmpStartTagInBody(p, token);\n            } else if (tn === $.SVG) {\n                svgStartTagInBody(p, token);\n            } else if (tn === $.RTC) {\n                rbStartTagInBody(p, token);\n            } else if (tn !== $.COL) {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 4:\n            if (tn === $.HTML) {\n                htmlStartTagInBody(p, token);\n            } else if (tn === $.BASE || tn === $.LINK || tn === $.META) {\n                startTagInHead(p, token);\n            } else if (tn === $.BODY) {\n                bodyStartTagInBody(p, token);\n            } else if (tn === $.MAIN || tn === $.MENU) {\n                addressStartTagInBody(p, token);\n            } else if (tn === $.FORM) {\n                formStartTagInBody(p, token);\n            } else if (tn === $.CODE || tn === $.FONT) {\n                bStartTagInBody(p, token);\n            } else if (tn === $.NOBR) {\n                nobrStartTagInBody(p, token);\n            } else if (tn === $.AREA) {\n                areaStartTagInBody(p, token);\n            } else if (tn === $.MATH) {\n                mathStartTagInBody(p, token);\n            } else if (tn === $.MENU) {\n                menuStartTagInBody(p, token);\n            } else if (tn !== $.HEAD) {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 5:\n            if (tn === $.STYLE || tn === $.TITLE) {\n                startTagInHead(p, token);\n            } else if (tn === $.ASIDE) {\n                addressStartTagInBody(p, token);\n            } else if (tn === $.SMALL) {\n                bStartTagInBody(p, token);\n            } else if (tn === $.TABLE) {\n                tableStartTagInBody(p, token);\n            } else if (tn === $.EMBED) {\n                areaStartTagInBody(p, token);\n            } else if (tn === $.INPUT) {\n                inputStartTagInBody(p, token);\n            } else if (tn === $.PARAM || tn === $.TRACK) {\n                paramStartTagInBody(p, token);\n            } else if (tn === $.IMAGE) {\n                imageStartTagInBody(p, token);\n            } else if (tn !== $.FRAME && tn !== $.TBODY && tn !== $.TFOOT && tn !== $.THEAD) {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 6:\n            if (tn === $.SCRIPT) {\n                startTagInHead(p, token);\n            } else if (\n                tn === $.CENTER ||\n                tn === $.FIGURE ||\n                tn === $.FOOTER ||\n                tn === $.HEADER ||\n                tn === $.HGROUP ||\n                tn === $.DIALOG\n            ) {\n                addressStartTagInBody(p, token);\n            } else if (tn === $.BUTTON) {\n                buttonStartTagInBody(p, token);\n            } else if (tn === $.STRIKE || tn === $.STRONG) {\n                bStartTagInBody(p, token);\n            } else if (tn === $.APPLET || tn === $.OBJECT) {\n                appletStartTagInBody(p, token);\n            } else if (tn === $.KEYGEN) {\n                areaStartTagInBody(p, token);\n            } else if (tn === $.SOURCE) {\n                paramStartTagInBody(p, token);\n            } else if (tn === $.IFRAME) {\n                iframeStartTagInBody(p, token);\n            } else if (tn === $.SELECT) {\n                selectStartTagInBody(p, token);\n            } else if (tn === $.OPTION) {\n                optgroupStartTagInBody(p, token);\n            } else {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 7:\n            if (tn === $.BGSOUND) {\n                startTagInHead(p, token);\n            } else if (\n                tn === $.DETAILS ||\n                tn === $.ADDRESS ||\n                tn === $.ARTICLE ||\n                tn === $.SECTION ||\n                tn === $.SUMMARY\n            ) {\n                addressStartTagInBody(p, token);\n            } else if (tn === $.LISTING) {\n                preStartTagInBody(p, token);\n            } else if (tn === $.MARQUEE) {\n                appletStartTagInBody(p, token);\n            } else if (tn === $.NOEMBED) {\n                noembedStartTagInBody(p, token);\n            } else if (tn !== $.CAPTION) {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 8:\n            if (tn === $.BASEFONT) {\n                startTagInHead(p, token);\n            } else if (tn === $.FRAMESET) {\n                framesetStartTagInBody(p, token);\n            } else if (tn === $.FIELDSET) {\n                addressStartTagInBody(p, token);\n            } else if (tn === $.TEXTAREA) {\n                textareaStartTagInBody(p, token);\n            } else if (tn === $.TEMPLATE) {\n                startTagInHead(p, token);\n            } else if (tn === $.NOSCRIPT) {\n                if (p.options.scriptingEnabled) {\n                    noembedStartTagInBody(p, token);\n                } else {\n                    genericStartTagInBody(p, token);\n                }\n            } else if (tn === $.OPTGROUP) {\n                optgroupStartTagInBody(p, token);\n            } else if (tn !== $.COLGROUP) {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 9:\n            if (tn === $.PLAINTEXT) {\n                plaintextStartTagInBody(p, token);\n            } else {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        case 10:\n            if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION) {\n                addressStartTagInBody(p, token);\n            } else {\n                genericStartTagInBody(p, token);\n            }\n\n            break;\n\n        default:\n            genericStartTagInBody(p, token);\n    }\n}\n\nfunction bodyEndTagInBody(p) {\n    if (p.openElements.hasInScope($.BODY)) {\n        p.insertionMode = AFTER_BODY_MODE;\n    }\n}\n\nfunction htmlEndTagInBody(p, token) {\n    if (p.openElements.hasInScope($.BODY)) {\n        p.insertionMode = AFTER_BODY_MODE;\n        p._processToken(token);\n    }\n}\n\nfunction addressEndTagInBody(p, token) {\n    const tn = token.tagName;\n\n    if (p.openElements.hasInScope(tn)) {\n        p.openElements.generateImpliedEndTags();\n        p.openElements.popUntilTagNamePopped(tn);\n    }\n}\n\nfunction formEndTagInBody(p) {\n    const inTemplate = p.openElements.tmplCount > 0;\n    const formElement = p.formElement;\n\n    if (!inTemplate) {\n        p.formElement = null;\n    }\n\n    if ((formElement || inTemplate) && p.openElements.hasInScope($.FORM)) {\n        p.openElements.generateImpliedEndTags();\n\n        if (inTemplate) {\n            p.openElements.popUntilTagNamePopped($.FORM);\n        } else {\n            p.openElements.remove(formElement);\n        }\n    }\n}\n\nfunction pEndTagInBody(p) {\n    if (!p.openElements.hasInButtonScope($.P)) {\n        p._insertFakeElement($.P);\n    }\n\n    p._closePElement();\n}\n\nfunction liEndTagInBody(p) {\n    if (p.openElements.hasInListItemScope($.LI)) {\n        p.openElements.generateImpliedEndTagsWithExclusion($.LI);\n        p.openElements.popUntilTagNamePopped($.LI);\n    }\n}\n\nfunction ddEndTagInBody(p, token) {\n    const tn = token.tagName;\n\n    if (p.openElements.hasInScope(tn)) {\n        p.openElements.generateImpliedEndTagsWithExclusion(tn);\n        p.openElements.popUntilTagNamePopped(tn);\n    }\n}\n\nfunction numberedHeaderEndTagInBody(p) {\n    if (p.openElements.hasNumberedHeaderInScope()) {\n        p.openElements.generateImpliedEndTags();\n        p.openElements.popUntilNumberedHeaderPopped();\n    }\n}\n\nfunction appletEndTagInBody(p, token) {\n    const tn = token.tagName;\n\n    if (p.openElements.hasInScope(tn)) {\n        p.openElements.generateImpliedEndTags();\n        p.openElements.popUntilTagNamePopped(tn);\n        p.activeFormattingElements.clearToLastMarker();\n    }\n}\n\nfunction brEndTagInBody(p) {\n    p._reconstructActiveFormattingElements();\n    p._insertFakeElement($.BR);\n    p.openElements.pop();\n    p.framesetOk = false;\n}\n\nfunction genericEndTagInBody(p, token) {\n    const tn = token.tagName;\n\n    for (let i = p.openElements.stackTop; i > 0; i--) {\n        const element = p.openElements.items[i];\n\n        if (p.treeAdapter.getTagName(element) === tn) {\n            p.openElements.generateImpliedEndTagsWithExclusion(tn);\n            p.openElements.popUntilElementPopped(element);\n            break;\n        }\n\n        if (p._isSpecialElement(element)) {\n            break;\n        }\n    }\n}\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction endTagInBody(p, token) {\n    const tn = token.tagName;\n\n    switch (tn.length) {\n        case 1:\n            if (tn === $.A || tn === $.B || tn === $.I || tn === $.S || tn === $.U) {\n                callAdoptionAgency(p, token);\n            } else if (tn === $.P) {\n                pEndTagInBody(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        case 2:\n            if (tn === $.DL || tn === $.UL || tn === $.OL) {\n                addressEndTagInBody(p, token);\n            } else if (tn === $.LI) {\n                liEndTagInBody(p, token);\n            } else if (tn === $.DD || tn === $.DT) {\n                ddEndTagInBody(p, token);\n            } else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n                numberedHeaderEndTagInBody(p, token);\n            } else if (tn === $.BR) {\n                brEndTagInBody(p, token);\n            } else if (tn === $.EM || tn === $.TT) {\n                callAdoptionAgency(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        case 3:\n            if (tn === $.BIG) {\n                callAdoptionAgency(p, token);\n            } else if (tn === $.DIR || tn === $.DIV || tn === $.NAV || tn === $.PRE) {\n                addressEndTagInBody(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        case 4:\n            if (tn === $.BODY) {\n                bodyEndTagInBody(p, token);\n            } else if (tn === $.HTML) {\n                htmlEndTagInBody(p, token);\n            } else if (tn === $.FORM) {\n                formEndTagInBody(p, token);\n            } else if (tn === $.CODE || tn === $.FONT || tn === $.NOBR) {\n                callAdoptionAgency(p, token);\n            } else if (tn === $.MAIN || tn === $.MENU) {\n                addressEndTagInBody(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        case 5:\n            if (tn === $.ASIDE) {\n                addressEndTagInBody(p, token);\n            } else if (tn === $.SMALL) {\n                callAdoptionAgency(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        case 6:\n            if (\n                tn === $.CENTER ||\n                tn === $.FIGURE ||\n                tn === $.FOOTER ||\n                tn === $.HEADER ||\n                tn === $.HGROUP ||\n                tn === $.DIALOG\n            ) {\n                addressEndTagInBody(p, token);\n            } else if (tn === $.APPLET || tn === $.OBJECT) {\n                appletEndTagInBody(p, token);\n            } else if (tn === $.STRIKE || tn === $.STRONG) {\n                callAdoptionAgency(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        case 7:\n            if (\n                tn === $.ADDRESS ||\n                tn === $.ARTICLE ||\n                tn === $.DETAILS ||\n                tn === $.SECTION ||\n                tn === $.SUMMARY ||\n                tn === $.LISTING\n            ) {\n                addressEndTagInBody(p, token);\n            } else if (tn === $.MARQUEE) {\n                appletEndTagInBody(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        case 8:\n            if (tn === $.FIELDSET) {\n                addressEndTagInBody(p, token);\n            } else if (tn === $.TEMPLATE) {\n                endTagInHead(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        case 10:\n            if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION) {\n                addressEndTagInBody(p, token);\n            } else {\n                genericEndTagInBody(p, token);\n            }\n\n            break;\n\n        default:\n            genericEndTagInBody(p, token);\n    }\n}\n\nfunction eofInBody(p, token) {\n    if (p.tmplInsertionModeStackTop > -1) {\n        eofInTemplate(p, token);\n    } else {\n        p.stopped = true;\n    }\n}\n\n// The \"text\" insertion mode\n//------------------------------------------------------------------\nfunction endTagInText(p, token) {\n    if (token.tagName === $.SCRIPT) {\n        p.pendingScript = p.openElements.current;\n    }\n\n    p.openElements.pop();\n    p.insertionMode = p.originalInsertionMode;\n}\n\nfunction eofInText(p, token) {\n    p._err(ERR.eofInElementThatCanContainOnlyText);\n    p.openElements.pop();\n    p.insertionMode = p.originalInsertionMode;\n    p._processToken(token);\n}\n\n// The \"in table\" insertion mode\n//------------------------------------------------------------------\nfunction characterInTable(p, token) {\n    const curTn = p.openElements.currentTagName;\n\n    if (curTn === $.TABLE || curTn === $.TBODY || curTn === $.TFOOT || curTn === $.THEAD || curTn === $.TR) {\n        p.pendingCharacterTokens = [];\n        p.hasNonWhitespacePendingCharacterToken = false;\n        p.originalInsertionMode = p.insertionMode;\n        p.insertionMode = IN_TABLE_TEXT_MODE;\n        p._processToken(token);\n    } else {\n        tokenInTable(p, token);\n    }\n}\n\nfunction captionStartTagInTable(p, token) {\n    p.openElements.clearBackToTableContext();\n    p.activeFormattingElements.insertMarker();\n    p._insertElement(token, NS.HTML);\n    p.insertionMode = IN_CAPTION_MODE;\n}\n\nfunction colgroupStartTagInTable(p, token) {\n    p.openElements.clearBackToTableContext();\n    p._insertElement(token, NS.HTML);\n    p.insertionMode = IN_COLUMN_GROUP_MODE;\n}\n\nfunction colStartTagInTable(p, token) {\n    p.openElements.clearBackToTableContext();\n    p._insertFakeElement($.COLGROUP);\n    p.insertionMode = IN_COLUMN_GROUP_MODE;\n    p._processToken(token);\n}\n\nfunction tbodyStartTagInTable(p, token) {\n    p.openElements.clearBackToTableContext();\n    p._insertElement(token, NS.HTML);\n    p.insertionMode = IN_TABLE_BODY_MODE;\n}\n\nfunction tdStartTagInTable(p, token) {\n    p.openElements.clearBackToTableContext();\n    p._insertFakeElement($.TBODY);\n    p.insertionMode = IN_TABLE_BODY_MODE;\n    p._processToken(token);\n}\n\nfunction tableStartTagInTable(p, token) {\n    if (p.openElements.hasInTableScope($.TABLE)) {\n        p.openElements.popUntilTagNamePopped($.TABLE);\n        p._resetInsertionMode();\n        p._processToken(token);\n    }\n}\n\nfunction inputStartTagInTable(p, token) {\n    const inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);\n\n    if (inputType && inputType.toLowerCase() === HIDDEN_INPUT_TYPE) {\n        p._appendElement(token, NS.HTML);\n    } else {\n        tokenInTable(p, token);\n    }\n\n    token.ackSelfClosing = true;\n}\n\nfunction formStartTagInTable(p, token) {\n    if (!p.formElement && p.openElements.tmplCount === 0) {\n        p._insertElement(token, NS.HTML);\n        p.formElement = p.openElements.current;\n        p.openElements.pop();\n    }\n}\n\nfunction startTagInTable(p, token) {\n    const tn = token.tagName;\n\n    switch (tn.length) {\n        case 2:\n            if (tn === $.TD || tn === $.TH || tn === $.TR) {\n                tdStartTagInTable(p, token);\n            } else {\n                tokenInTable(p, token);\n            }\n\n            break;\n\n        case 3:\n            if (tn === $.COL) {\n                colStartTagInTable(p, token);\n            } else {\n                tokenInTable(p, token);\n            }\n\n            break;\n\n        case 4:\n            if (tn === $.FORM) {\n                formStartTagInTable(p, token);\n            } else {\n                tokenInTable(p, token);\n            }\n\n            break;\n\n        case 5:\n            if (tn === $.TABLE) {\n                tableStartTagInTable(p, token);\n            } else if (tn === $.STYLE) {\n                startTagInHead(p, token);\n            } else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n                tbodyStartTagInTable(p, token);\n            } else if (tn === $.INPUT) {\n                inputStartTagInTable(p, token);\n            } else {\n                tokenInTable(p, token);\n            }\n\n            break;\n\n        case 6:\n            if (tn === $.SCRIPT) {\n                startTagInHead(p, token);\n            } else {\n                tokenInTable(p, token);\n            }\n\n            break;\n\n        case 7:\n            if (tn === $.CAPTION) {\n                captionStartTagInTable(p, token);\n            } else {\n                tokenInTable(p, token);\n            }\n\n            break;\n\n        case 8:\n            if (tn === $.COLGROUP) {\n                colgroupStartTagInTable(p, token);\n            } else if (tn === $.TEMPLATE) {\n                startTagInHead(p, token);\n            } else {\n                tokenInTable(p, token);\n            }\n\n            break;\n\n        default:\n            tokenInTable(p, token);\n    }\n}\n\nfunction endTagInTable(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.TABLE) {\n        if (p.openElements.hasInTableScope($.TABLE)) {\n            p.openElements.popUntilTagNamePopped($.TABLE);\n            p._resetInsertionMode();\n        }\n    } else if (tn === $.TEMPLATE) {\n        endTagInHead(p, token);\n    } else if (\n        tn !== $.BODY &&\n        tn !== $.CAPTION &&\n        tn !== $.COL &&\n        tn !== $.COLGROUP &&\n        tn !== $.HTML &&\n        tn !== $.TBODY &&\n        tn !== $.TD &&\n        tn !== $.TFOOT &&\n        tn !== $.TH &&\n        tn !== $.THEAD &&\n        tn !== $.TR\n    ) {\n        tokenInTable(p, token);\n    }\n}\n\nfunction tokenInTable(p, token) {\n    const savedFosterParentingState = p.fosterParentingEnabled;\n\n    p.fosterParentingEnabled = true;\n    p._processTokenInBodyMode(token);\n    p.fosterParentingEnabled = savedFosterParentingState;\n}\n\n// The \"in table text\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInTableText(p, token) {\n    p.pendingCharacterTokens.push(token);\n}\n\nfunction characterInTableText(p, token) {\n    p.pendingCharacterTokens.push(token);\n    p.hasNonWhitespacePendingCharacterToken = true;\n}\n\nfunction tokenInTableText(p, token) {\n    let i = 0;\n\n    if (p.hasNonWhitespacePendingCharacterToken) {\n        for (; i < p.pendingCharacterTokens.length; i++) {\n            tokenInTable(p, p.pendingCharacterTokens[i]);\n        }\n    } else {\n        for (; i < p.pendingCharacterTokens.length; i++) {\n            p._insertCharacters(p.pendingCharacterTokens[i]);\n        }\n    }\n\n    p.insertionMode = p.originalInsertionMode;\n    p._processToken(token);\n}\n\n// The \"in caption\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCaption(p, token) {\n    const tn = token.tagName;\n\n    if (\n        tn === $.CAPTION ||\n        tn === $.COL ||\n        tn === $.COLGROUP ||\n        tn === $.TBODY ||\n        tn === $.TD ||\n        tn === $.TFOOT ||\n        tn === $.TH ||\n        tn === $.THEAD ||\n        tn === $.TR\n    ) {\n        if (p.openElements.hasInTableScope($.CAPTION)) {\n            p.openElements.generateImpliedEndTags();\n            p.openElements.popUntilTagNamePopped($.CAPTION);\n            p.activeFormattingElements.clearToLastMarker();\n            p.insertionMode = IN_TABLE_MODE;\n            p._processToken(token);\n        }\n    } else {\n        startTagInBody(p, token);\n    }\n}\n\nfunction endTagInCaption(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.CAPTION || tn === $.TABLE) {\n        if (p.openElements.hasInTableScope($.CAPTION)) {\n            p.openElements.generateImpliedEndTags();\n            p.openElements.popUntilTagNamePopped($.CAPTION);\n            p.activeFormattingElements.clearToLastMarker();\n            p.insertionMode = IN_TABLE_MODE;\n\n            if (tn === $.TABLE) {\n                p._processToken(token);\n            }\n        }\n    } else if (\n        tn !== $.BODY &&\n        tn !== $.COL &&\n        tn !== $.COLGROUP &&\n        tn !== $.HTML &&\n        tn !== $.TBODY &&\n        tn !== $.TD &&\n        tn !== $.TFOOT &&\n        tn !== $.TH &&\n        tn !== $.THEAD &&\n        tn !== $.TR\n    ) {\n        endTagInBody(p, token);\n    }\n}\n\n// The \"in column group\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInColumnGroup(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (tn === $.COL) {\n        p._appendElement(token, NS.HTML);\n        token.ackSelfClosing = true;\n    } else if (tn === $.TEMPLATE) {\n        startTagInHead(p, token);\n    } else {\n        tokenInColumnGroup(p, token);\n    }\n}\n\nfunction endTagInColumnGroup(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.COLGROUP) {\n        if (p.openElements.currentTagName === $.COLGROUP) {\n            p.openElements.pop();\n            p.insertionMode = IN_TABLE_MODE;\n        }\n    } else if (tn === $.TEMPLATE) {\n        endTagInHead(p, token);\n    } else if (tn !== $.COL) {\n        tokenInColumnGroup(p, token);\n    }\n}\n\nfunction tokenInColumnGroup(p, token) {\n    if (p.openElements.currentTagName === $.COLGROUP) {\n        p.openElements.pop();\n        p.insertionMode = IN_TABLE_MODE;\n        p._processToken(token);\n    }\n}\n\n// The \"in table body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTableBody(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.TR) {\n        p.openElements.clearBackToTableBodyContext();\n        p._insertElement(token, NS.HTML);\n        p.insertionMode = IN_ROW_MODE;\n    } else if (tn === $.TH || tn === $.TD) {\n        p.openElements.clearBackToTableBodyContext();\n        p._insertFakeElement($.TR);\n        p.insertionMode = IN_ROW_MODE;\n        p._processToken(token);\n    } else if (\n        tn === $.CAPTION ||\n        tn === $.COL ||\n        tn === $.COLGROUP ||\n        tn === $.TBODY ||\n        tn === $.TFOOT ||\n        tn === $.THEAD\n    ) {\n        if (p.openElements.hasTableBodyContextInTableScope()) {\n            p.openElements.clearBackToTableBodyContext();\n            p.openElements.pop();\n            p.insertionMode = IN_TABLE_MODE;\n            p._processToken(token);\n        }\n    } else {\n        startTagInTable(p, token);\n    }\n}\n\nfunction endTagInTableBody(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n        if (p.openElements.hasInTableScope(tn)) {\n            p.openElements.clearBackToTableBodyContext();\n            p.openElements.pop();\n            p.insertionMode = IN_TABLE_MODE;\n        }\n    } else if (tn === $.TABLE) {\n        if (p.openElements.hasTableBodyContextInTableScope()) {\n            p.openElements.clearBackToTableBodyContext();\n            p.openElements.pop();\n            p.insertionMode = IN_TABLE_MODE;\n            p._processToken(token);\n        }\n    } else if (\n        (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP) ||\n        (tn !== $.HTML && tn !== $.TD && tn !== $.TH && tn !== $.TR)\n    ) {\n        endTagInTable(p, token);\n    }\n}\n\n// The \"in row\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInRow(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.TH || tn === $.TD) {\n        p.openElements.clearBackToTableRowContext();\n        p._insertElement(token, NS.HTML);\n        p.insertionMode = IN_CELL_MODE;\n        p.activeFormattingElements.insertMarker();\n    } else if (\n        tn === $.CAPTION ||\n        tn === $.COL ||\n        tn === $.COLGROUP ||\n        tn === $.TBODY ||\n        tn === $.TFOOT ||\n        tn === $.THEAD ||\n        tn === $.TR\n    ) {\n        if (p.openElements.hasInTableScope($.TR)) {\n            p.openElements.clearBackToTableRowContext();\n            p.openElements.pop();\n            p.insertionMode = IN_TABLE_BODY_MODE;\n            p._processToken(token);\n        }\n    } else {\n        startTagInTable(p, token);\n    }\n}\n\nfunction endTagInRow(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.TR) {\n        if (p.openElements.hasInTableScope($.TR)) {\n            p.openElements.clearBackToTableRowContext();\n            p.openElements.pop();\n            p.insertionMode = IN_TABLE_BODY_MODE;\n        }\n    } else if (tn === $.TABLE) {\n        if (p.openElements.hasInTableScope($.TR)) {\n            p.openElements.clearBackToTableRowContext();\n            p.openElements.pop();\n            p.insertionMode = IN_TABLE_BODY_MODE;\n            p._processToken(token);\n        }\n    } else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n        if (p.openElements.hasInTableScope(tn) || p.openElements.hasInTableScope($.TR)) {\n            p.openElements.clearBackToTableRowContext();\n            p.openElements.pop();\n            p.insertionMode = IN_TABLE_BODY_MODE;\n            p._processToken(token);\n        }\n    } else if (\n        (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP) ||\n        (tn !== $.HTML && tn !== $.TD && tn !== $.TH)\n    ) {\n        endTagInTable(p, token);\n    }\n}\n\n// The \"in cell\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCell(p, token) {\n    const tn = token.tagName;\n\n    if (\n        tn === $.CAPTION ||\n        tn === $.COL ||\n        tn === $.COLGROUP ||\n        tn === $.TBODY ||\n        tn === $.TD ||\n        tn === $.TFOOT ||\n        tn === $.TH ||\n        tn === $.THEAD ||\n        tn === $.TR\n    ) {\n        if (p.openElements.hasInTableScope($.TD) || p.openElements.hasInTableScope($.TH)) {\n            p._closeTableCell();\n            p._processToken(token);\n        }\n    } else {\n        startTagInBody(p, token);\n    }\n}\n\nfunction endTagInCell(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.TD || tn === $.TH) {\n        if (p.openElements.hasInTableScope(tn)) {\n            p.openElements.generateImpliedEndTags();\n            p.openElements.popUntilTagNamePopped(tn);\n            p.activeFormattingElements.clearToLastMarker();\n            p.insertionMode = IN_ROW_MODE;\n        }\n    } else if (tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR) {\n        if (p.openElements.hasInTableScope(tn)) {\n            p._closeTableCell();\n            p._processToken(token);\n        }\n    } else if (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP && tn !== $.HTML) {\n        endTagInBody(p, token);\n    }\n}\n\n// The \"in select\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelect(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (tn === $.OPTION) {\n        if (p.openElements.currentTagName === $.OPTION) {\n            p.openElements.pop();\n        }\n\n        p._insertElement(token, NS.HTML);\n    } else if (tn === $.OPTGROUP) {\n        if (p.openElements.currentTagName === $.OPTION) {\n            p.openElements.pop();\n        }\n\n        if (p.openElements.currentTagName === $.OPTGROUP) {\n            p.openElements.pop();\n        }\n\n        p._insertElement(token, NS.HTML);\n    } else if (tn === $.INPUT || tn === $.KEYGEN || tn === $.TEXTAREA || tn === $.SELECT) {\n        if (p.openElements.hasInSelectScope($.SELECT)) {\n            p.openElements.popUntilTagNamePopped($.SELECT);\n            p._resetInsertionMode();\n\n            if (tn !== $.SELECT) {\n                p._processToken(token);\n            }\n        }\n    } else if (tn === $.SCRIPT || tn === $.TEMPLATE) {\n        startTagInHead(p, token);\n    }\n}\n\nfunction endTagInSelect(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.OPTGROUP) {\n        const prevOpenElement = p.openElements.items[p.openElements.stackTop - 1];\n        const prevOpenElementTn = prevOpenElement && p.treeAdapter.getTagName(prevOpenElement);\n\n        if (p.openElements.currentTagName === $.OPTION && prevOpenElementTn === $.OPTGROUP) {\n            p.openElements.pop();\n        }\n\n        if (p.openElements.currentTagName === $.OPTGROUP) {\n            p.openElements.pop();\n        }\n    } else if (tn === $.OPTION) {\n        if (p.openElements.currentTagName === $.OPTION) {\n            p.openElements.pop();\n        }\n    } else if (tn === $.SELECT && p.openElements.hasInSelectScope($.SELECT)) {\n        p.openElements.popUntilTagNamePopped($.SELECT);\n        p._resetInsertionMode();\n    } else if (tn === $.TEMPLATE) {\n        endTagInHead(p, token);\n    }\n}\n\n//12.2.5.4.17 The \"in select in table\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelectInTable(p, token) {\n    const tn = token.tagName;\n\n    if (\n        tn === $.CAPTION ||\n        tn === $.TABLE ||\n        tn === $.TBODY ||\n        tn === $.TFOOT ||\n        tn === $.THEAD ||\n        tn === $.TR ||\n        tn === $.TD ||\n        tn === $.TH\n    ) {\n        p.openElements.popUntilTagNamePopped($.SELECT);\n        p._resetInsertionMode();\n        p._processToken(token);\n    } else {\n        startTagInSelect(p, token);\n    }\n}\n\nfunction endTagInSelectInTable(p, token) {\n    const tn = token.tagName;\n\n    if (\n        tn === $.CAPTION ||\n        tn === $.TABLE ||\n        tn === $.TBODY ||\n        tn === $.TFOOT ||\n        tn === $.THEAD ||\n        tn === $.TR ||\n        tn === $.TD ||\n        tn === $.TH\n    ) {\n        if (p.openElements.hasInTableScope(tn)) {\n            p.openElements.popUntilTagNamePopped($.SELECT);\n            p._resetInsertionMode();\n            p._processToken(token);\n        }\n    } else {\n        endTagInSelect(p, token);\n    }\n}\n\n// The \"in template\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTemplate(p, token) {\n    const tn = token.tagName;\n\n    if (\n        tn === $.BASE ||\n        tn === $.BASEFONT ||\n        tn === $.BGSOUND ||\n        tn === $.LINK ||\n        tn === $.META ||\n        tn === $.NOFRAMES ||\n        tn === $.SCRIPT ||\n        tn === $.STYLE ||\n        tn === $.TEMPLATE ||\n        tn === $.TITLE\n    ) {\n        startTagInHead(p, token);\n    } else {\n        const newInsertionMode = TEMPLATE_INSERTION_MODE_SWITCH_MAP[tn] || IN_BODY_MODE;\n\n        p._popTmplInsertionMode();\n        p._pushTmplInsertionMode(newInsertionMode);\n        p.insertionMode = newInsertionMode;\n        p._processToken(token);\n    }\n}\n\nfunction endTagInTemplate(p, token) {\n    if (token.tagName === $.TEMPLATE) {\n        endTagInHead(p, token);\n    }\n}\n\nfunction eofInTemplate(p, token) {\n    if (p.openElements.tmplCount > 0) {\n        p.openElements.popUntilTagNamePopped($.TEMPLATE);\n        p.activeFormattingElements.clearToLastMarker();\n        p._popTmplInsertionMode();\n        p._resetInsertionMode();\n        p._processToken(token);\n    } else {\n        p.stopped = true;\n    }\n}\n\n// The \"after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterBody(p, token) {\n    if (token.tagName === $.HTML) {\n        startTagInBody(p, token);\n    } else {\n        tokenAfterBody(p, token);\n    }\n}\n\nfunction endTagAfterBody(p, token) {\n    if (token.tagName === $.HTML) {\n        if (!p.fragmentContext) {\n            p.insertionMode = AFTER_AFTER_BODY_MODE;\n        }\n    } else {\n        tokenAfterBody(p, token);\n    }\n}\n\nfunction tokenAfterBody(p, token) {\n    p.insertionMode = IN_BODY_MODE;\n    p._processToken(token);\n}\n\n// The \"in frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInFrameset(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (tn === $.FRAMESET) {\n        p._insertElement(token, NS.HTML);\n    } else if (tn === $.FRAME) {\n        p._appendElement(token, NS.HTML);\n        token.ackSelfClosing = true;\n    } else if (tn === $.NOFRAMES) {\n        startTagInHead(p, token);\n    }\n}\n\nfunction endTagInFrameset(p, token) {\n    if (token.tagName === $.FRAMESET && !p.openElements.isRootHtmlElementCurrent()) {\n        p.openElements.pop();\n\n        if (!p.fragmentContext && p.openElements.currentTagName !== $.FRAMESET) {\n            p.insertionMode = AFTER_FRAMESET_MODE;\n        }\n    }\n}\n\n// The \"after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterFrameset(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (tn === $.NOFRAMES) {\n        startTagInHead(p, token);\n    }\n}\n\nfunction endTagAfterFrameset(p, token) {\n    if (token.tagName === $.HTML) {\n        p.insertionMode = AFTER_AFTER_FRAMESET_MODE;\n    }\n}\n\n// The \"after after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterBody(p, token) {\n    if (token.tagName === $.HTML) {\n        startTagInBody(p, token);\n    } else {\n        tokenAfterAfterBody(p, token);\n    }\n}\n\nfunction tokenAfterAfterBody(p, token) {\n    p.insertionMode = IN_BODY_MODE;\n    p._processToken(token);\n}\n\n// The \"after after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterFrameset(p, token) {\n    const tn = token.tagName;\n\n    if (tn === $.HTML) {\n        startTagInBody(p, token);\n    } else if (tn === $.NOFRAMES) {\n        startTagInHead(p, token);\n    }\n}\n\n// The rules for parsing tokens in foreign content\n//------------------------------------------------------------------\nfunction nullCharacterInForeignContent(p, token) {\n    token.chars = unicode.REPLACEMENT_CHARACTER;\n    p._insertCharacters(token);\n}\n\nfunction characterInForeignContent(p, token) {\n    p._insertCharacters(token);\n    p.framesetOk = false;\n}\n\nfunction startTagInForeignContent(p, token) {\n    if (foreignContent.causesExit(token) && !p.fragmentContext) {\n        while (\n            p.treeAdapter.getNamespaceURI(p.openElements.current) !== NS.HTML &&\n            !p._isIntegrationPoint(p.openElements.current)\n        ) {\n            p.openElements.pop();\n        }\n\n        p._processToken(token);\n    } else {\n        const current = p._getAdjustedCurrentElement();\n        const currentNs = p.treeAdapter.getNamespaceURI(current);\n\n        if (currentNs === NS.MATHML) {\n            foreignContent.adjustTokenMathMLAttrs(token);\n        } else if (currentNs === NS.SVG) {\n            foreignContent.adjustTokenSVGTagName(token);\n            foreignContent.adjustTokenSVGAttrs(token);\n        }\n\n        foreignContent.adjustTokenXMLAttrs(token);\n\n        if (token.selfClosing) {\n            p._appendElement(token, currentNs);\n        } else {\n            p._insertElement(token, currentNs);\n        }\n\n        token.ackSelfClosing = true;\n    }\n}\n\nfunction endTagInForeignContent(p, token) {\n    for (let i = p.openElements.stackTop; i > 0; i--) {\n        const element = p.openElements.items[i];\n\n        if (p.treeAdapter.getNamespaceURI(element) === NS.HTML) {\n            p._processToken(token);\n            break;\n        }\n\n        if (p.treeAdapter.getTagName(element).toLowerCase() === token.tagName) {\n            p.openElements.popUntilElementPopped(element);\n            break;\n        }\n    }\n}\n","'use strict';\n\nconst HTML = require('../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\n\n//Element utils\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction isImpliedEndTagRequired(tn) {\n    switch (tn.length) {\n        case 1:\n            return tn === $.P;\n\n        case 2:\n            return tn === $.RB || tn === $.RP || tn === $.RT || tn === $.DD || tn === $.DT || tn === $.LI;\n\n        case 3:\n            return tn === $.RTC;\n\n        case 6:\n            return tn === $.OPTION;\n\n        case 8:\n            return tn === $.OPTGROUP;\n    }\n\n    return false;\n}\n\nfunction isImpliedEndTagRequiredThoroughly(tn) {\n    switch (tn.length) {\n        case 1:\n            return tn === $.P;\n\n        case 2:\n            return (\n                tn === $.RB ||\n                tn === $.RP ||\n                tn === $.RT ||\n                tn === $.DD ||\n                tn === $.DT ||\n                tn === $.LI ||\n                tn === $.TD ||\n                tn === $.TH ||\n                tn === $.TR\n            );\n\n        case 3:\n            return tn === $.RTC;\n\n        case 5:\n            return tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD;\n\n        case 6:\n            return tn === $.OPTION;\n\n        case 7:\n            return tn === $.CAPTION;\n\n        case 8:\n            return tn === $.OPTGROUP || tn === $.COLGROUP;\n    }\n\n    return false;\n}\n\nfunction isScopingElement(tn, ns) {\n    switch (tn.length) {\n        case 2:\n            if (tn === $.TD || tn === $.TH) {\n                return ns === NS.HTML;\n            } else if (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS) {\n                return ns === NS.MATHML;\n            }\n\n            break;\n\n        case 4:\n            if (tn === $.HTML) {\n                return ns === NS.HTML;\n            } else if (tn === $.DESC) {\n                return ns === NS.SVG;\n            }\n\n            break;\n\n        case 5:\n            if (tn === $.TABLE) {\n                return ns === NS.HTML;\n            } else if (tn === $.MTEXT) {\n                return ns === NS.MATHML;\n            } else if (tn === $.TITLE) {\n                return ns === NS.SVG;\n            }\n\n            break;\n\n        case 6:\n            return (tn === $.APPLET || tn === $.OBJECT) && ns === NS.HTML;\n\n        case 7:\n            return (tn === $.CAPTION || tn === $.MARQUEE) && ns === NS.HTML;\n\n        case 8:\n            return tn === $.TEMPLATE && ns === NS.HTML;\n\n        case 13:\n            return tn === $.FOREIGN_OBJECT && ns === NS.SVG;\n\n        case 14:\n            return tn === $.ANNOTATION_XML && ns === NS.MATHML;\n    }\n\n    return false;\n}\n\n//Stack of open elements\nclass OpenElementStack {\n    constructor(document, treeAdapter) {\n        this.stackTop = -1;\n        this.items = [];\n        this.current = document;\n        this.currentTagName = null;\n        this.currentTmplContent = null;\n        this.tmplCount = 0;\n        this.treeAdapter = treeAdapter;\n    }\n\n    //Index of element\n    _indexOf(element) {\n        let idx = -1;\n\n        for (let i = this.stackTop; i >= 0; i--) {\n            if (this.items[i] === element) {\n                idx = i;\n                break;\n            }\n        }\n        return idx;\n    }\n\n    //Update current element\n    _isInTemplate() {\n        return this.currentTagName === $.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === NS.HTML;\n    }\n\n    _updateCurrentElement() {\n        this.current = this.items[this.stackTop];\n        this.currentTagName = this.current && this.treeAdapter.getTagName(this.current);\n\n        this.currentTmplContent = this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : null;\n    }\n\n    //Mutations\n    push(element) {\n        this.items[++this.stackTop] = element;\n        this._updateCurrentElement();\n\n        if (this._isInTemplate()) {\n            this.tmplCount++;\n        }\n    }\n\n    pop() {\n        this.stackTop--;\n\n        if (this.tmplCount > 0 && this._isInTemplate()) {\n            this.tmplCount--;\n        }\n\n        this._updateCurrentElement();\n    }\n\n    replace(oldElement, newElement) {\n        const idx = this._indexOf(oldElement);\n\n        this.items[idx] = newElement;\n\n        if (idx === this.stackTop) {\n            this._updateCurrentElement();\n        }\n    }\n\n    insertAfter(referenceElement, newElement) {\n        const insertionIdx = this._indexOf(referenceElement) + 1;\n\n        this.items.splice(insertionIdx, 0, newElement);\n\n        if (insertionIdx === ++this.stackTop) {\n            this._updateCurrentElement();\n        }\n    }\n\n    popUntilTagNamePopped(tagName) {\n        while (this.stackTop > -1) {\n            const tn = this.currentTagName;\n            const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n            this.pop();\n\n            if (tn === tagName && ns === NS.HTML) {\n                break;\n            }\n        }\n    }\n\n    popUntilElementPopped(element) {\n        while (this.stackTop > -1) {\n            const poppedElement = this.current;\n\n            this.pop();\n\n            if (poppedElement === element) {\n                break;\n            }\n        }\n    }\n\n    popUntilNumberedHeaderPopped() {\n        while (this.stackTop > -1) {\n            const tn = this.currentTagName;\n            const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n            this.pop();\n\n            if (\n                tn === $.H1 ||\n                tn === $.H2 ||\n                tn === $.H3 ||\n                tn === $.H4 ||\n                tn === $.H5 ||\n                (tn === $.H6 && ns === NS.HTML)\n            ) {\n                break;\n            }\n        }\n    }\n\n    popUntilTableCellPopped() {\n        while (this.stackTop > -1) {\n            const tn = this.currentTagName;\n            const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n            this.pop();\n\n            if (tn === $.TD || (tn === $.TH && ns === NS.HTML)) {\n                break;\n            }\n        }\n    }\n\n    popAllUpToHtmlElement() {\n        //NOTE: here we assume that root <html> element is always first in the open element stack, so\n        //we perform this fast stack clean up.\n        this.stackTop = 0;\n        this._updateCurrentElement();\n    }\n\n    clearBackToTableContext() {\n        while (\n            (this.currentTagName !== $.TABLE && this.currentTagName !== $.TEMPLATE && this.currentTagName !== $.HTML) ||\n            this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n        ) {\n            this.pop();\n        }\n    }\n\n    clearBackToTableBodyContext() {\n        while (\n            (this.currentTagName !== $.TBODY &&\n                this.currentTagName !== $.TFOOT &&\n                this.currentTagName !== $.THEAD &&\n                this.currentTagName !== $.TEMPLATE &&\n                this.currentTagName !== $.HTML) ||\n            this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n        ) {\n            this.pop();\n        }\n    }\n\n    clearBackToTableRowContext() {\n        while (\n            (this.currentTagName !== $.TR && this.currentTagName !== $.TEMPLATE && this.currentTagName !== $.HTML) ||\n            this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n        ) {\n            this.pop();\n        }\n    }\n\n    remove(element) {\n        for (let i = this.stackTop; i >= 0; i--) {\n            if (this.items[i] === element) {\n                this.items.splice(i, 1);\n                this.stackTop--;\n                this._updateCurrentElement();\n                break;\n            }\n        }\n    }\n\n    //Search\n    tryPeekProperlyNestedBodyElement() {\n        //Properly nested <body> element (should be second element in stack).\n        const element = this.items[1];\n\n        return element && this.treeAdapter.getTagName(element) === $.BODY ? element : null;\n    }\n\n    contains(element) {\n        return this._indexOf(element) > -1;\n    }\n\n    getCommonAncestor(element) {\n        let elementIdx = this._indexOf(element);\n\n        return --elementIdx >= 0 ? this.items[elementIdx] : null;\n    }\n\n    isRootHtmlElementCurrent() {\n        return this.stackTop === 0 && this.currentTagName === $.HTML;\n    }\n\n    //Element in scope\n    hasInScope(tagName) {\n        for (let i = this.stackTop; i >= 0; i--) {\n            const tn = this.treeAdapter.getTagName(this.items[i]);\n            const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n            if (tn === tagName && ns === NS.HTML) {\n                return true;\n            }\n\n            if (isScopingElement(tn, ns)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    hasNumberedHeaderInScope() {\n        for (let i = this.stackTop; i >= 0; i--) {\n            const tn = this.treeAdapter.getTagName(this.items[i]);\n            const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n            if (\n                (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) &&\n                ns === NS.HTML\n            ) {\n                return true;\n            }\n\n            if (isScopingElement(tn, ns)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    hasInListItemScope(tagName) {\n        for (let i = this.stackTop; i >= 0; i--) {\n            const tn = this.treeAdapter.getTagName(this.items[i]);\n            const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n            if (tn === tagName && ns === NS.HTML) {\n                return true;\n            }\n\n            if (((tn === $.UL || tn === $.OL) && ns === NS.HTML) || isScopingElement(tn, ns)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    hasInButtonScope(tagName) {\n        for (let i = this.stackTop; i >= 0; i--) {\n            const tn = this.treeAdapter.getTagName(this.items[i]);\n            const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n            if (tn === tagName && ns === NS.HTML) {\n                return true;\n            }\n\n            if ((tn === $.BUTTON && ns === NS.HTML) || isScopingElement(tn, ns)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    hasInTableScope(tagName) {\n        for (let i = this.stackTop; i >= 0; i--) {\n            const tn = this.treeAdapter.getTagName(this.items[i]);\n            const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n            if (ns !== NS.HTML) {\n                continue;\n            }\n\n            if (tn === tagName) {\n                return true;\n            }\n\n            if (tn === $.TABLE || tn === $.TEMPLATE || tn === $.HTML) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    hasTableBodyContextInTableScope() {\n        for (let i = this.stackTop; i >= 0; i--) {\n            const tn = this.treeAdapter.getTagName(this.items[i]);\n            const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n            if (ns !== NS.HTML) {\n                continue;\n            }\n\n            if (tn === $.TBODY || tn === $.THEAD || tn === $.TFOOT) {\n                return true;\n            }\n\n            if (tn === $.TABLE || tn === $.HTML) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    hasInSelectScope(tagName) {\n        for (let i = this.stackTop; i >= 0; i--) {\n            const tn = this.treeAdapter.getTagName(this.items[i]);\n            const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n            if (ns !== NS.HTML) {\n                continue;\n            }\n\n            if (tn === tagName) {\n                return true;\n            }\n\n            if (tn !== $.OPTION && tn !== $.OPTGROUP) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    //Implied end tags\n    generateImpliedEndTags() {\n        while (isImpliedEndTagRequired(this.currentTagName)) {\n            this.pop();\n        }\n    }\n\n    generateImpliedEndTagsThoroughly() {\n        while (isImpliedEndTagRequiredThoroughly(this.currentTagName)) {\n            this.pop();\n        }\n    }\n\n    generateImpliedEndTagsWithExclusion(exclusionTagName) {\n        while (isImpliedEndTagRequired(this.currentTagName) && this.currentTagName !== exclusionTagName) {\n            this.pop();\n        }\n    }\n}\n\nmodule.exports = OpenElementStack;\n","'use strict';\n\nconst Preprocessor = require('./preprocessor');\nconst unicode = require('../common/unicode');\nconst neTree = require('./named-entity-data');\nconst ERR = require('../common/error-codes');\n\n//Aliases\nconst $ = unicode.CODE_POINTS;\nconst $$ = unicode.CODE_POINT_SEQUENCES;\n\n//C1 Unicode control character reference replacements\nconst C1_CONTROLS_REFERENCE_REPLACEMENTS = {\n    0x80: 0x20ac,\n    0x82: 0x201a,\n    0x83: 0x0192,\n    0x84: 0x201e,\n    0x85: 0x2026,\n    0x86: 0x2020,\n    0x87: 0x2021,\n    0x88: 0x02c6,\n    0x89: 0x2030,\n    0x8a: 0x0160,\n    0x8b: 0x2039,\n    0x8c: 0x0152,\n    0x8e: 0x017d,\n    0x91: 0x2018,\n    0x92: 0x2019,\n    0x93: 0x201c,\n    0x94: 0x201d,\n    0x95: 0x2022,\n    0x96: 0x2013,\n    0x97: 0x2014,\n    0x98: 0x02dc,\n    0x99: 0x2122,\n    0x9a: 0x0161,\n    0x9b: 0x203a,\n    0x9c: 0x0153,\n    0x9e: 0x017e,\n    0x9f: 0x0178\n};\n\n// Named entity tree flags\nconst HAS_DATA_FLAG = 1 << 0;\nconst DATA_DUPLET_FLAG = 1 << 1;\nconst HAS_BRANCHES_FLAG = 1 << 2;\nconst MAX_BRANCH_MARKER_VALUE = HAS_DATA_FLAG | DATA_DUPLET_FLAG | HAS_BRANCHES_FLAG;\n\n//States\nconst DATA_STATE = 'DATA_STATE';\nconst RCDATA_STATE = 'RCDATA_STATE';\nconst RAWTEXT_STATE = 'RAWTEXT_STATE';\nconst SCRIPT_DATA_STATE = 'SCRIPT_DATA_STATE';\nconst PLAINTEXT_STATE = 'PLAINTEXT_STATE';\nconst TAG_OPEN_STATE = 'TAG_OPEN_STATE';\nconst END_TAG_OPEN_STATE = 'END_TAG_OPEN_STATE';\nconst TAG_NAME_STATE = 'TAG_NAME_STATE';\nconst RCDATA_LESS_THAN_SIGN_STATE = 'RCDATA_LESS_THAN_SIGN_STATE';\nconst RCDATA_END_TAG_OPEN_STATE = 'RCDATA_END_TAG_OPEN_STATE';\nconst RCDATA_END_TAG_NAME_STATE = 'RCDATA_END_TAG_NAME_STATE';\nconst RAWTEXT_LESS_THAN_SIGN_STATE = 'RAWTEXT_LESS_THAN_SIGN_STATE';\nconst RAWTEXT_END_TAG_OPEN_STATE = 'RAWTEXT_END_TAG_OPEN_STATE';\nconst RAWTEXT_END_TAG_NAME_STATE = 'RAWTEXT_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_END_TAG_OPEN_STATE = 'SCRIPT_DATA_END_TAG_OPEN_STATE';\nconst SCRIPT_DATA_END_TAG_NAME_STATE = 'SCRIPT_DATA_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_ESCAPE_START_STATE = 'SCRIPT_DATA_ESCAPE_START_STATE';\nconst SCRIPT_DATA_ESCAPE_START_DASH_STATE = 'SCRIPT_DATA_ESCAPE_START_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_STATE = 'SCRIPT_DATA_ESCAPED_STATE';\nconst SCRIPT_DATA_ESCAPED_DASH_STATE = 'SCRIPT_DATA_ESCAPED_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_DASH_DASH_STATE = 'SCRIPT_DATA_ESCAPED_DASH_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE = 'SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE';\nconst SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE = 'SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE';\nconst BEFORE_ATTRIBUTE_NAME_STATE = 'BEFORE_ATTRIBUTE_NAME_STATE';\nconst ATTRIBUTE_NAME_STATE = 'ATTRIBUTE_NAME_STATE';\nconst AFTER_ATTRIBUTE_NAME_STATE = 'AFTER_ATTRIBUTE_NAME_STATE';\nconst BEFORE_ATTRIBUTE_VALUE_STATE = 'BEFORE_ATTRIBUTE_VALUE_STATE';\nconst ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE = 'ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE';\nconst ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE = 'ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE';\nconst ATTRIBUTE_VALUE_UNQUOTED_STATE = 'ATTRIBUTE_VALUE_UNQUOTED_STATE';\nconst AFTER_ATTRIBUTE_VALUE_QUOTED_STATE = 'AFTER_ATTRIBUTE_VALUE_QUOTED_STATE';\nconst SELF_CLOSING_START_TAG_STATE = 'SELF_CLOSING_START_TAG_STATE';\nconst BOGUS_COMMENT_STATE = 'BOGUS_COMMENT_STATE';\nconst MARKUP_DECLARATION_OPEN_STATE = 'MARKUP_DECLARATION_OPEN_STATE';\nconst COMMENT_START_STATE = 'COMMENT_START_STATE';\nconst COMMENT_START_DASH_STATE = 'COMMENT_START_DASH_STATE';\nconst COMMENT_STATE = 'COMMENT_STATE';\nconst COMMENT_LESS_THAN_SIGN_STATE = 'COMMENT_LESS_THAN_SIGN_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE';\nconst COMMENT_END_DASH_STATE = 'COMMENT_END_DASH_STATE';\nconst COMMENT_END_STATE = 'COMMENT_END_STATE';\nconst COMMENT_END_BANG_STATE = 'COMMENT_END_BANG_STATE';\nconst DOCTYPE_STATE = 'DOCTYPE_STATE';\nconst BEFORE_DOCTYPE_NAME_STATE = 'BEFORE_DOCTYPE_NAME_STATE';\nconst DOCTYPE_NAME_STATE = 'DOCTYPE_NAME_STATE';\nconst AFTER_DOCTYPE_NAME_STATE = 'AFTER_DOCTYPE_NAME_STATE';\nconst AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE = 'AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE';\nconst BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE = 'BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE';\nconst DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE = 'DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE';\nconst DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE = 'DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE';\nconst AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE = 'AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE';\nconst BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE = 'BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE';\nconst AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE = 'AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE';\nconst BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE = 'BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE';\nconst DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE = 'DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE';\nconst DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE = 'DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE';\nconst AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE = 'AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE';\nconst BOGUS_DOCTYPE_STATE = 'BOGUS_DOCTYPE_STATE';\nconst CDATA_SECTION_STATE = 'CDATA_SECTION_STATE';\nconst CDATA_SECTION_BRACKET_STATE = 'CDATA_SECTION_BRACKET_STATE';\nconst CDATA_SECTION_END_STATE = 'CDATA_SECTION_END_STATE';\nconst CHARACTER_REFERENCE_STATE = 'CHARACTER_REFERENCE_STATE';\nconst NAMED_CHARACTER_REFERENCE_STATE = 'NAMED_CHARACTER_REFERENCE_STATE';\nconst AMBIGUOUS_AMPERSAND_STATE = 'AMBIGUOS_AMPERSAND_STATE';\nconst NUMERIC_CHARACTER_REFERENCE_STATE = 'NUMERIC_CHARACTER_REFERENCE_STATE';\nconst HEXADEMICAL_CHARACTER_REFERENCE_START_STATE = 'HEXADEMICAL_CHARACTER_REFERENCE_START_STATE';\nconst DECIMAL_CHARACTER_REFERENCE_START_STATE = 'DECIMAL_CHARACTER_REFERENCE_START_STATE';\nconst HEXADEMICAL_CHARACTER_REFERENCE_STATE = 'HEXADEMICAL_CHARACTER_REFERENCE_STATE';\nconst DECIMAL_CHARACTER_REFERENCE_STATE = 'DECIMAL_CHARACTER_REFERENCE_STATE';\nconst NUMERIC_CHARACTER_REFERENCE_END_STATE = 'NUMERIC_CHARACTER_REFERENCE_END_STATE';\n\n//Utils\n\n//OPTIMIZATION: these utility functions should not be moved out of this module. V8 Crankshaft will not inline\n//this functions if they will be situated in another module due to context switch.\n//Always perform inlining check before modifying this functions ('node --trace-inlining').\nfunction isWhitespace(cp) {\n    return cp === $.SPACE || cp === $.LINE_FEED || cp === $.TABULATION || cp === $.FORM_FEED;\n}\n\nfunction isAsciiDigit(cp) {\n    return cp >= $.DIGIT_0 && cp <= $.DIGIT_9;\n}\n\nfunction isAsciiUpper(cp) {\n    return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_Z;\n}\n\nfunction isAsciiLower(cp) {\n    return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_Z;\n}\n\nfunction isAsciiLetter(cp) {\n    return isAsciiLower(cp) || isAsciiUpper(cp);\n}\n\nfunction isAsciiAlphaNumeric(cp) {\n    return isAsciiLetter(cp) || isAsciiDigit(cp);\n}\n\nfunction isAsciiUpperHexDigit(cp) {\n    return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_F;\n}\n\nfunction isAsciiLowerHexDigit(cp) {\n    return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_F;\n}\n\nfunction isAsciiHexDigit(cp) {\n    return isAsciiDigit(cp) || isAsciiUpperHexDigit(cp) || isAsciiLowerHexDigit(cp);\n}\n\nfunction toAsciiLowerCodePoint(cp) {\n    return cp + 0x0020;\n}\n\n//NOTE: String.fromCharCode() function can handle only characters from BMP subset.\n//So, we need to workaround this manually.\n//(see: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/fromCharCode#Getting_it_to_work_with_higher_values)\nfunction toChar(cp) {\n    if (cp <= 0xffff) {\n        return String.fromCharCode(cp);\n    }\n\n    cp -= 0x10000;\n    return String.fromCharCode(((cp >>> 10) & 0x3ff) | 0xd800) + String.fromCharCode(0xdc00 | (cp & 0x3ff));\n}\n\nfunction toAsciiLowerChar(cp) {\n    return String.fromCharCode(toAsciiLowerCodePoint(cp));\n}\n\nfunction findNamedEntityTreeBranch(nodeIx, cp) {\n    const branchCount = neTree[++nodeIx];\n    let lo = ++nodeIx;\n    let hi = lo + branchCount - 1;\n\n    while (lo <= hi) {\n        const mid = (lo + hi) >>> 1;\n        const midCp = neTree[mid];\n\n        if (midCp < cp) {\n            lo = mid + 1;\n        } else if (midCp > cp) {\n            hi = mid - 1;\n        } else {\n            return neTree[mid + branchCount];\n        }\n    }\n\n    return -1;\n}\n\n//Tokenizer\nclass Tokenizer {\n    constructor() {\n        this.preprocessor = new Preprocessor();\n\n        this.tokenQueue = [];\n\n        this.allowCDATA = false;\n\n        this.state = DATA_STATE;\n        this.returnState = '';\n\n        this.charRefCode = -1;\n        this.tempBuff = [];\n        this.lastStartTagName = '';\n\n        this.consumedAfterSnapshot = -1;\n        this.active = false;\n\n        this.currentCharacterToken = null;\n        this.currentToken = null;\n        this.currentAttr = null;\n    }\n\n    //Errors\n    _err() {\n        // NOTE: err reporting is noop by default. Enabled by mixin.\n    }\n\n    _errOnNextCodePoint(err) {\n        this._consume();\n        this._err(err);\n        this._unconsume();\n    }\n\n    //API\n    getNextToken() {\n        while (!this.tokenQueue.length && this.active) {\n            this.consumedAfterSnapshot = 0;\n\n            const cp = this._consume();\n\n            if (!this._ensureHibernation()) {\n                this[this.state](cp);\n            }\n        }\n\n        return this.tokenQueue.shift();\n    }\n\n    write(chunk, isLastChunk) {\n        this.active = true;\n        this.preprocessor.write(chunk, isLastChunk);\n    }\n\n    insertHtmlAtCurrentPos(chunk) {\n        this.active = true;\n        this.preprocessor.insertHtmlAtCurrentPos(chunk);\n    }\n\n    //Hibernation\n    _ensureHibernation() {\n        if (this.preprocessor.endOfChunkHit) {\n            for (; this.consumedAfterSnapshot > 0; this.consumedAfterSnapshot--) {\n                this.preprocessor.retreat();\n            }\n\n            this.active = false;\n            this.tokenQueue.push({ type: Tokenizer.HIBERNATION_TOKEN });\n\n            return true;\n        }\n\n        return false;\n    }\n\n    //Consumption\n    _consume() {\n        this.consumedAfterSnapshot++;\n        return this.preprocessor.advance();\n    }\n\n    _unconsume() {\n        this.consumedAfterSnapshot--;\n        this.preprocessor.retreat();\n    }\n\n    _reconsumeInState(state) {\n        this.state = state;\n        this._unconsume();\n    }\n\n    _consumeSequenceIfMatch(pattern, startCp, caseSensitive) {\n        let consumedCount = 0;\n        let isMatch = true;\n        const patternLength = pattern.length;\n        let patternPos = 0;\n        let cp = startCp;\n        let patternCp = void 0;\n\n        for (; patternPos < patternLength; patternPos++) {\n            if (patternPos > 0) {\n                cp = this._consume();\n                consumedCount++;\n            }\n\n            if (cp === $.EOF) {\n                isMatch = false;\n                break;\n            }\n\n            patternCp = pattern[patternPos];\n\n            if (cp !== patternCp && (caseSensitive || cp !== toAsciiLowerCodePoint(patternCp))) {\n                isMatch = false;\n                break;\n            }\n        }\n\n        if (!isMatch) {\n            while (consumedCount--) {\n                this._unconsume();\n            }\n        }\n\n        return isMatch;\n    }\n\n    //Temp buffer\n    _isTempBufferEqualToScriptString() {\n        if (this.tempBuff.length !== $$.SCRIPT_STRING.length) {\n            return false;\n        }\n\n        for (let i = 0; i < this.tempBuff.length; i++) {\n            if (this.tempBuff[i] !== $$.SCRIPT_STRING[i]) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    //Token creation\n    _createStartTagToken() {\n        this.currentToken = {\n            type: Tokenizer.START_TAG_TOKEN,\n            tagName: '',\n            selfClosing: false,\n            ackSelfClosing: false,\n            attrs: []\n        };\n    }\n\n    _createEndTagToken() {\n        this.currentToken = {\n            type: Tokenizer.END_TAG_TOKEN,\n            tagName: '',\n            selfClosing: false,\n            attrs: []\n        };\n    }\n\n    _createCommentToken() {\n        this.currentToken = {\n            type: Tokenizer.COMMENT_TOKEN,\n            data: ''\n        };\n    }\n\n    _createDoctypeToken(initialName) {\n        this.currentToken = {\n            type: Tokenizer.DOCTYPE_TOKEN,\n            name: initialName,\n            forceQuirks: false,\n            publicId: null,\n            systemId: null\n        };\n    }\n\n    _createCharacterToken(type, ch) {\n        this.currentCharacterToken = {\n            type: type,\n            chars: ch\n        };\n    }\n\n    _createEOFToken() {\n        this.currentToken = { type: Tokenizer.EOF_TOKEN };\n    }\n\n    //Tag attributes\n    _createAttr(attrNameFirstCh) {\n        this.currentAttr = {\n            name: attrNameFirstCh,\n            value: ''\n        };\n    }\n\n    _leaveAttrName(toState) {\n        if (Tokenizer.getTokenAttr(this.currentToken, this.currentAttr.name) === null) {\n            this.currentToken.attrs.push(this.currentAttr);\n        } else {\n            this._err(ERR.duplicateAttribute);\n        }\n\n        this.state = toState;\n    }\n\n    _leaveAttrValue(toState) {\n        this.state = toState;\n    }\n\n    //Token emission\n    _emitCurrentToken() {\n        this._emitCurrentCharacterToken();\n\n        const ct = this.currentToken;\n\n        this.currentToken = null;\n\n        //NOTE: store emited start tag's tagName to determine is the following end tag token is appropriate.\n        if (ct.type === Tokenizer.START_TAG_TOKEN) {\n            this.lastStartTagName = ct.tagName;\n        } else if (ct.type === Tokenizer.END_TAG_TOKEN) {\n            if (ct.attrs.length > 0) {\n                this._err(ERR.endTagWithAttributes);\n            }\n\n            if (ct.selfClosing) {\n                this._err(ERR.endTagWithTrailingSolidus);\n            }\n        }\n\n        this.tokenQueue.push(ct);\n    }\n\n    _emitCurrentCharacterToken() {\n        if (this.currentCharacterToken) {\n            this.tokenQueue.push(this.currentCharacterToken);\n            this.currentCharacterToken = null;\n        }\n    }\n\n    _emitEOFToken() {\n        this._createEOFToken();\n        this._emitCurrentToken();\n    }\n\n    //Characters emission\n\n    //OPTIMIZATION: specification uses only one type of character tokens (one token per character).\n    //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters.\n    //If we have a sequence of characters that belong to the same group, parser can process it\n    //as a single solid character token.\n    //So, there are 3 types of character tokens in parse5:\n    //1)NULL_CHARACTER_TOKEN - \\u0000-character sequences (e.g. '\\u0000\\u0000\\u0000')\n    //2)WHITESPACE_CHARACTER_TOKEN - any whitespace/new-line character sequences (e.g. '\\n  \\r\\t   \\f')\n    //3)CHARACTER_TOKEN - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^')\n    _appendCharToCurrentCharacterToken(type, ch) {\n        if (this.currentCharacterToken && this.currentCharacterToken.type !== type) {\n            this._emitCurrentCharacterToken();\n        }\n\n        if (this.currentCharacterToken) {\n            this.currentCharacterToken.chars += ch;\n        } else {\n            this._createCharacterToken(type, ch);\n        }\n    }\n\n    _emitCodePoint(cp) {\n        let type = Tokenizer.CHARACTER_TOKEN;\n\n        if (isWhitespace(cp)) {\n            type = Tokenizer.WHITESPACE_CHARACTER_TOKEN;\n        } else if (cp === $.NULL) {\n            type = Tokenizer.NULL_CHARACTER_TOKEN;\n        }\n\n        this._appendCharToCurrentCharacterToken(type, toChar(cp));\n    }\n\n    _emitSeveralCodePoints(codePoints) {\n        for (let i = 0; i < codePoints.length; i++) {\n            this._emitCodePoint(codePoints[i]);\n        }\n    }\n\n    //NOTE: used then we emit character explicitly. This is always a non-whitespace and a non-null character.\n    //So we can avoid additional checks here.\n    _emitChars(ch) {\n        this._appendCharToCurrentCharacterToken(Tokenizer.CHARACTER_TOKEN, ch);\n    }\n\n    // Character reference helpers\n    _matchNamedCharacterReference(startCp) {\n        let result = null;\n        let excess = 1;\n        let i = findNamedEntityTreeBranch(0, startCp);\n\n        this.tempBuff.push(startCp);\n\n        while (i > -1) {\n            const current = neTree[i];\n            const inNode = current < MAX_BRANCH_MARKER_VALUE;\n            const nodeWithData = inNode && current & HAS_DATA_FLAG;\n\n            if (nodeWithData) {\n                //NOTE: we use greedy search, so we continue lookup at this point\n                result = current & DATA_DUPLET_FLAG ? [neTree[++i], neTree[++i]] : [neTree[++i]];\n                excess = 0;\n            }\n\n            const cp = this._consume();\n\n            this.tempBuff.push(cp);\n            excess++;\n\n            if (cp === $.EOF) {\n                break;\n            }\n\n            if (inNode) {\n                i = current & HAS_BRANCHES_FLAG ? findNamedEntityTreeBranch(i, cp) : -1;\n            } else {\n                i = cp === current ? ++i : -1;\n            }\n        }\n\n        while (excess--) {\n            this.tempBuff.pop();\n            this._unconsume();\n        }\n\n        return result;\n    }\n\n    _isCharacterReferenceInAttribute() {\n        return (\n            this.returnState === ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE ||\n            this.returnState === ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE ||\n            this.returnState === ATTRIBUTE_VALUE_UNQUOTED_STATE\n        );\n    }\n\n    _isCharacterReferenceAttributeQuirk(withSemicolon) {\n        if (!withSemicolon && this._isCharacterReferenceInAttribute()) {\n            const nextCp = this._consume();\n\n            this._unconsume();\n\n            return nextCp === $.EQUALS_SIGN || isAsciiAlphaNumeric(nextCp);\n        }\n\n        return false;\n    }\n\n    _flushCodePointsConsumedAsCharacterReference() {\n        if (this._isCharacterReferenceInAttribute()) {\n            for (let i = 0; i < this.tempBuff.length; i++) {\n                this.currentAttr.value += toChar(this.tempBuff[i]);\n            }\n        } else {\n            this._emitSeveralCodePoints(this.tempBuff);\n        }\n\n        this.tempBuff = [];\n    }\n\n    // State machine\n\n    // Data state\n    //------------------------------------------------------------------\n    [DATA_STATE](cp) {\n        this.preprocessor.dropParsedChunk();\n\n        if (cp === $.LESS_THAN_SIGN) {\n            this.state = TAG_OPEN_STATE;\n        } else if (cp === $.AMPERSAND) {\n            this.returnState = DATA_STATE;\n            this.state = CHARACTER_REFERENCE_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this._emitCodePoint(cp);\n        } else if (cp === $.EOF) {\n            this._emitEOFToken();\n        } else {\n            this._emitCodePoint(cp);\n        }\n    }\n\n    //  RCDATA state\n    //------------------------------------------------------------------\n    [RCDATA_STATE](cp) {\n        this.preprocessor.dropParsedChunk();\n\n        if (cp === $.AMPERSAND) {\n            this.returnState = RCDATA_STATE;\n            this.state = CHARACTER_REFERENCE_STATE;\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.state = RCDATA_LESS_THAN_SIGN_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._emitEOFToken();\n        } else {\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // RAWTEXT state\n    //------------------------------------------------------------------\n    [RAWTEXT_STATE](cp) {\n        this.preprocessor.dropParsedChunk();\n\n        if (cp === $.LESS_THAN_SIGN) {\n            this.state = RAWTEXT_LESS_THAN_SIGN_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._emitEOFToken();\n        } else {\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // Script data state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_STATE](cp) {\n        this.preprocessor.dropParsedChunk();\n\n        if (cp === $.LESS_THAN_SIGN) {\n            this.state = SCRIPT_DATA_LESS_THAN_SIGN_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._emitEOFToken();\n        } else {\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // PLAINTEXT state\n    //------------------------------------------------------------------\n    [PLAINTEXT_STATE](cp) {\n        this.preprocessor.dropParsedChunk();\n\n        if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._emitEOFToken();\n        } else {\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // Tag open state\n    //------------------------------------------------------------------\n    [TAG_OPEN_STATE](cp) {\n        if (cp === $.EXCLAMATION_MARK) {\n            this.state = MARKUP_DECLARATION_OPEN_STATE;\n        } else if (cp === $.SOLIDUS) {\n            this.state = END_TAG_OPEN_STATE;\n        } else if (isAsciiLetter(cp)) {\n            this._createStartTagToken();\n            this._reconsumeInState(TAG_NAME_STATE);\n        } else if (cp === $.QUESTION_MARK) {\n            this._err(ERR.unexpectedQuestionMarkInsteadOfTagName);\n            this._createCommentToken();\n            this._reconsumeInState(BOGUS_COMMENT_STATE);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofBeforeTagName);\n            this._emitChars('<');\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.invalidFirstCharacterOfTagName);\n            this._emitChars('<');\n            this._reconsumeInState(DATA_STATE);\n        }\n    }\n\n    // End tag open state\n    //------------------------------------------------------------------\n    [END_TAG_OPEN_STATE](cp) {\n        if (isAsciiLetter(cp)) {\n            this._createEndTagToken();\n            this._reconsumeInState(TAG_NAME_STATE);\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.missingEndTagName);\n            this.state = DATA_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofBeforeTagName);\n            this._emitChars('</');\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.invalidFirstCharacterOfTagName);\n            this._createCommentToken();\n            this._reconsumeInState(BOGUS_COMMENT_STATE);\n        }\n    }\n\n    // Tag name state\n    //------------------------------------------------------------------\n    [TAG_NAME_STATE](cp) {\n        if (isWhitespace(cp)) {\n            this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n        } else if (cp === $.SOLIDUS) {\n            this.state = SELF_CLOSING_START_TAG_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (isAsciiUpper(cp)) {\n            this.currentToken.tagName += toAsciiLowerChar(cp);\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentToken.tagName += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInTag);\n            this._emitEOFToken();\n        } else {\n            this.currentToken.tagName += toChar(cp);\n        }\n    }\n\n    // RCDATA less-than sign state\n    //------------------------------------------------------------------\n    [RCDATA_LESS_THAN_SIGN_STATE](cp) {\n        if (cp === $.SOLIDUS) {\n            this.tempBuff = [];\n            this.state = RCDATA_END_TAG_OPEN_STATE;\n        } else {\n            this._emitChars('<');\n            this._reconsumeInState(RCDATA_STATE);\n        }\n    }\n\n    // RCDATA end tag open state\n    //------------------------------------------------------------------\n    [RCDATA_END_TAG_OPEN_STATE](cp) {\n        if (isAsciiLetter(cp)) {\n            this._createEndTagToken();\n            this._reconsumeInState(RCDATA_END_TAG_NAME_STATE);\n        } else {\n            this._emitChars('</');\n            this._reconsumeInState(RCDATA_STATE);\n        }\n    }\n\n    // RCDATA end tag name state\n    //------------------------------------------------------------------\n    [RCDATA_END_TAG_NAME_STATE](cp) {\n        if (isAsciiUpper(cp)) {\n            this.currentToken.tagName += toAsciiLowerChar(cp);\n            this.tempBuff.push(cp);\n        } else if (isAsciiLower(cp)) {\n            this.currentToken.tagName += toChar(cp);\n            this.tempBuff.push(cp);\n        } else {\n            if (this.lastStartTagName === this.currentToken.tagName) {\n                if (isWhitespace(cp)) {\n                    this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n                    return;\n                }\n\n                if (cp === $.SOLIDUS) {\n                    this.state = SELF_CLOSING_START_TAG_STATE;\n                    return;\n                }\n\n                if (cp === $.GREATER_THAN_SIGN) {\n                    this.state = DATA_STATE;\n                    this._emitCurrentToken();\n                    return;\n                }\n            }\n\n            this._emitChars('</');\n            this._emitSeveralCodePoints(this.tempBuff);\n            this._reconsumeInState(RCDATA_STATE);\n        }\n    }\n\n    // RAWTEXT less-than sign state\n    //------------------------------------------------------------------\n    [RAWTEXT_LESS_THAN_SIGN_STATE](cp) {\n        if (cp === $.SOLIDUS) {\n            this.tempBuff = [];\n            this.state = RAWTEXT_END_TAG_OPEN_STATE;\n        } else {\n            this._emitChars('<');\n            this._reconsumeInState(RAWTEXT_STATE);\n        }\n    }\n\n    // RAWTEXT end tag open state\n    //------------------------------------------------------------------\n    [RAWTEXT_END_TAG_OPEN_STATE](cp) {\n        if (isAsciiLetter(cp)) {\n            this._createEndTagToken();\n            this._reconsumeInState(RAWTEXT_END_TAG_NAME_STATE);\n        } else {\n            this._emitChars('</');\n            this._reconsumeInState(RAWTEXT_STATE);\n        }\n    }\n\n    // RAWTEXT end tag name state\n    //------------------------------------------------------------------\n    [RAWTEXT_END_TAG_NAME_STATE](cp) {\n        if (isAsciiUpper(cp)) {\n            this.currentToken.tagName += toAsciiLowerChar(cp);\n            this.tempBuff.push(cp);\n        } else if (isAsciiLower(cp)) {\n            this.currentToken.tagName += toChar(cp);\n            this.tempBuff.push(cp);\n        } else {\n            if (this.lastStartTagName === this.currentToken.tagName) {\n                if (isWhitespace(cp)) {\n                    this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n                    return;\n                }\n\n                if (cp === $.SOLIDUS) {\n                    this.state = SELF_CLOSING_START_TAG_STATE;\n                    return;\n                }\n\n                if (cp === $.GREATER_THAN_SIGN) {\n                    this._emitCurrentToken();\n                    this.state = DATA_STATE;\n                    return;\n                }\n            }\n\n            this._emitChars('</');\n            this._emitSeveralCodePoints(this.tempBuff);\n            this._reconsumeInState(RAWTEXT_STATE);\n        }\n    }\n\n    // Script data less-than sign state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_LESS_THAN_SIGN_STATE](cp) {\n        if (cp === $.SOLIDUS) {\n            this.tempBuff = [];\n            this.state = SCRIPT_DATA_END_TAG_OPEN_STATE;\n        } else if (cp === $.EXCLAMATION_MARK) {\n            this.state = SCRIPT_DATA_ESCAPE_START_STATE;\n            this._emitChars('<!');\n        } else {\n            this._emitChars('<');\n            this._reconsumeInState(SCRIPT_DATA_STATE);\n        }\n    }\n\n    // Script data end tag open state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_END_TAG_OPEN_STATE](cp) {\n        if (isAsciiLetter(cp)) {\n            this._createEndTagToken();\n            this._reconsumeInState(SCRIPT_DATA_END_TAG_NAME_STATE);\n        } else {\n            this._emitChars('</');\n            this._reconsumeInState(SCRIPT_DATA_STATE);\n        }\n    }\n\n    // Script data end tag name state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_END_TAG_NAME_STATE](cp) {\n        if (isAsciiUpper(cp)) {\n            this.currentToken.tagName += toAsciiLowerChar(cp);\n            this.tempBuff.push(cp);\n        } else if (isAsciiLower(cp)) {\n            this.currentToken.tagName += toChar(cp);\n            this.tempBuff.push(cp);\n        } else {\n            if (this.lastStartTagName === this.currentToken.tagName) {\n                if (isWhitespace(cp)) {\n                    this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n                    return;\n                } else if (cp === $.SOLIDUS) {\n                    this.state = SELF_CLOSING_START_TAG_STATE;\n                    return;\n                } else if (cp === $.GREATER_THAN_SIGN) {\n                    this._emitCurrentToken();\n                    this.state = DATA_STATE;\n                    return;\n                }\n            }\n\n            this._emitChars('</');\n            this._emitSeveralCodePoints(this.tempBuff);\n            this._reconsumeInState(SCRIPT_DATA_STATE);\n        }\n    }\n\n    // Script data escape start state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_ESCAPE_START_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = SCRIPT_DATA_ESCAPE_START_DASH_STATE;\n            this._emitChars('-');\n        } else {\n            this._reconsumeInState(SCRIPT_DATA_STATE);\n        }\n    }\n\n    // Script data escape start dash state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_ESCAPE_START_DASH_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = SCRIPT_DATA_ESCAPED_DASH_DASH_STATE;\n            this._emitChars('-');\n        } else {\n            this._reconsumeInState(SCRIPT_DATA_STATE);\n        }\n    }\n\n    // Script data escaped state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_ESCAPED_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = SCRIPT_DATA_ESCAPED_DASH_STATE;\n            this._emitChars('-');\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInScriptHtmlCommentLikeText);\n            this._emitEOFToken();\n        } else {\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // Script data escaped dash state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_ESCAPED_DASH_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = SCRIPT_DATA_ESCAPED_DASH_DASH_STATE;\n            this._emitChars('-');\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.state = SCRIPT_DATA_ESCAPED_STATE;\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInScriptHtmlCommentLikeText);\n            this._emitEOFToken();\n        } else {\n            this.state = SCRIPT_DATA_ESCAPED_STATE;\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // Script data escaped dash dash state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_ESCAPED_DASH_DASH_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this._emitChars('-');\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this.state = SCRIPT_DATA_STATE;\n            this._emitChars('>');\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.state = SCRIPT_DATA_ESCAPED_STATE;\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInScriptHtmlCommentLikeText);\n            this._emitEOFToken();\n        } else {\n            this.state = SCRIPT_DATA_ESCAPED_STATE;\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // Script data escaped less-than sign state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE](cp) {\n        if (cp === $.SOLIDUS) {\n            this.tempBuff = [];\n            this.state = SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE;\n        } else if (isAsciiLetter(cp)) {\n            this.tempBuff = [];\n            this._emitChars('<');\n            this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE);\n        } else {\n            this._emitChars('<');\n            this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n        }\n    }\n\n    // Script data escaped end tag open state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE](cp) {\n        if (isAsciiLetter(cp)) {\n            this._createEndTagToken();\n            this._reconsumeInState(SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE);\n        } else {\n            this._emitChars('</');\n            this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n        }\n    }\n\n    // Script data escaped end tag name state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE](cp) {\n        if (isAsciiUpper(cp)) {\n            this.currentToken.tagName += toAsciiLowerChar(cp);\n            this.tempBuff.push(cp);\n        } else if (isAsciiLower(cp)) {\n            this.currentToken.tagName += toChar(cp);\n            this.tempBuff.push(cp);\n        } else {\n            if (this.lastStartTagName === this.currentToken.tagName) {\n                if (isWhitespace(cp)) {\n                    this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n                    return;\n                }\n\n                if (cp === $.SOLIDUS) {\n                    this.state = SELF_CLOSING_START_TAG_STATE;\n                    return;\n                }\n\n                if (cp === $.GREATER_THAN_SIGN) {\n                    this._emitCurrentToken();\n                    this.state = DATA_STATE;\n                    return;\n                }\n            }\n\n            this._emitChars('</');\n            this._emitSeveralCodePoints(this.tempBuff);\n            this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n        }\n    }\n\n    // Script data double escape start state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE](cp) {\n        if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN) {\n            this.state = this._isTempBufferEqualToScriptString()\n                ? SCRIPT_DATA_DOUBLE_ESCAPED_STATE\n                : SCRIPT_DATA_ESCAPED_STATE;\n            this._emitCodePoint(cp);\n        } else if (isAsciiUpper(cp)) {\n            this.tempBuff.push(toAsciiLowerCodePoint(cp));\n            this._emitCodePoint(cp);\n        } else if (isAsciiLower(cp)) {\n            this.tempBuff.push(cp);\n            this._emitCodePoint(cp);\n        } else {\n            this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n        }\n    }\n\n    // Script data double escaped state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_DOUBLE_ESCAPED_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE;\n            this._emitChars('-');\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n            this._emitChars('<');\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInScriptHtmlCommentLikeText);\n            this._emitEOFToken();\n        } else {\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // Script data double escaped dash state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE;\n            this._emitChars('-');\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n            this._emitChars('<');\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInScriptHtmlCommentLikeText);\n            this._emitEOFToken();\n        } else {\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // Script data double escaped dash dash state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this._emitChars('-');\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n            this._emitChars('<');\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this.state = SCRIPT_DATA_STATE;\n            this._emitChars('>');\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n            this._emitChars(unicode.REPLACEMENT_CHARACTER);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInScriptHtmlCommentLikeText);\n            this._emitEOFToken();\n        } else {\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // Script data double escaped less-than sign state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE](cp) {\n        if (cp === $.SOLIDUS) {\n            this.tempBuff = [];\n            this.state = SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE;\n            this._emitChars('/');\n        } else {\n            this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPED_STATE);\n        }\n    }\n\n    // Script data double escape end state\n    //------------------------------------------------------------------\n    [SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE](cp) {\n        if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN) {\n            this.state = this._isTempBufferEqualToScriptString()\n                ? SCRIPT_DATA_ESCAPED_STATE\n                : SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n\n            this._emitCodePoint(cp);\n        } else if (isAsciiUpper(cp)) {\n            this.tempBuff.push(toAsciiLowerCodePoint(cp));\n            this._emitCodePoint(cp);\n        } else if (isAsciiLower(cp)) {\n            this.tempBuff.push(cp);\n            this._emitCodePoint(cp);\n        } else {\n            this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPED_STATE);\n        }\n    }\n\n    // Before attribute name state\n    //------------------------------------------------------------------\n    [BEFORE_ATTRIBUTE_NAME_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN || cp === $.EOF) {\n            this._reconsumeInState(AFTER_ATTRIBUTE_NAME_STATE);\n        } else if (cp === $.EQUALS_SIGN) {\n            this._err(ERR.unexpectedEqualsSignBeforeAttributeName);\n            this._createAttr('=');\n            this.state = ATTRIBUTE_NAME_STATE;\n        } else {\n            this._createAttr('');\n            this._reconsumeInState(ATTRIBUTE_NAME_STATE);\n        }\n    }\n\n    // Attribute name state\n    //------------------------------------------------------------------\n    [ATTRIBUTE_NAME_STATE](cp) {\n        if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN || cp === $.EOF) {\n            this._leaveAttrName(AFTER_ATTRIBUTE_NAME_STATE);\n            this._unconsume();\n        } else if (cp === $.EQUALS_SIGN) {\n            this._leaveAttrName(BEFORE_ATTRIBUTE_VALUE_STATE);\n        } else if (isAsciiUpper(cp)) {\n            this.currentAttr.name += toAsciiLowerChar(cp);\n        } else if (cp === $.QUOTATION_MARK || cp === $.APOSTROPHE || cp === $.LESS_THAN_SIGN) {\n            this._err(ERR.unexpectedCharacterInAttributeName);\n            this.currentAttr.name += toChar(cp);\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentAttr.name += unicode.REPLACEMENT_CHARACTER;\n        } else {\n            this.currentAttr.name += toChar(cp);\n        }\n    }\n\n    // After attribute name state\n    //------------------------------------------------------------------\n    [AFTER_ATTRIBUTE_NAME_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (cp === $.SOLIDUS) {\n            this.state = SELF_CLOSING_START_TAG_STATE;\n        } else if (cp === $.EQUALS_SIGN) {\n            this.state = BEFORE_ATTRIBUTE_VALUE_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInTag);\n            this._emitEOFToken();\n        } else {\n            this._createAttr('');\n            this._reconsumeInState(ATTRIBUTE_NAME_STATE);\n        }\n    }\n\n    // Before attribute value state\n    //------------------------------------------------------------------\n    [BEFORE_ATTRIBUTE_VALUE_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (cp === $.QUOTATION_MARK) {\n            this.state = ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE;\n        } else if (cp === $.APOSTROPHE) {\n            this.state = ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.missingAttributeValue);\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else {\n            this._reconsumeInState(ATTRIBUTE_VALUE_UNQUOTED_STATE);\n        }\n    }\n\n    // Attribute value (double-quoted) state\n    //------------------------------------------------------------------\n    [ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE](cp) {\n        if (cp === $.QUOTATION_MARK) {\n            this.state = AFTER_ATTRIBUTE_VALUE_QUOTED_STATE;\n        } else if (cp === $.AMPERSAND) {\n            this.returnState = ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE;\n            this.state = CHARACTER_REFERENCE_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInTag);\n            this._emitEOFToken();\n        } else {\n            this.currentAttr.value += toChar(cp);\n        }\n    }\n\n    // Attribute value (single-quoted) state\n    //------------------------------------------------------------------\n    [ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE](cp) {\n        if (cp === $.APOSTROPHE) {\n            this.state = AFTER_ATTRIBUTE_VALUE_QUOTED_STATE;\n        } else if (cp === $.AMPERSAND) {\n            this.returnState = ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE;\n            this.state = CHARACTER_REFERENCE_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInTag);\n            this._emitEOFToken();\n        } else {\n            this.currentAttr.value += toChar(cp);\n        }\n    }\n\n    // Attribute value (unquoted) state\n    //------------------------------------------------------------------\n    [ATTRIBUTE_VALUE_UNQUOTED_STATE](cp) {\n        if (isWhitespace(cp)) {\n            this._leaveAttrValue(BEFORE_ATTRIBUTE_NAME_STATE);\n        } else if (cp === $.AMPERSAND) {\n            this.returnState = ATTRIBUTE_VALUE_UNQUOTED_STATE;\n            this.state = CHARACTER_REFERENCE_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._leaveAttrValue(DATA_STATE);\n            this._emitCurrentToken();\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n        } else if (\n            cp === $.QUOTATION_MARK ||\n            cp === $.APOSTROPHE ||\n            cp === $.LESS_THAN_SIGN ||\n            cp === $.EQUALS_SIGN ||\n            cp === $.GRAVE_ACCENT\n        ) {\n            this._err(ERR.unexpectedCharacterInUnquotedAttributeValue);\n            this.currentAttr.value += toChar(cp);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInTag);\n            this._emitEOFToken();\n        } else {\n            this.currentAttr.value += toChar(cp);\n        }\n    }\n\n    // After attribute value (quoted) state\n    //------------------------------------------------------------------\n    [AFTER_ATTRIBUTE_VALUE_QUOTED_STATE](cp) {\n        if (isWhitespace(cp)) {\n            this._leaveAttrValue(BEFORE_ATTRIBUTE_NAME_STATE);\n        } else if (cp === $.SOLIDUS) {\n            this._leaveAttrValue(SELF_CLOSING_START_TAG_STATE);\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._leaveAttrValue(DATA_STATE);\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInTag);\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.missingWhitespaceBetweenAttributes);\n            this._reconsumeInState(BEFORE_ATTRIBUTE_NAME_STATE);\n        }\n    }\n\n    // Self-closing start tag state\n    //------------------------------------------------------------------\n    [SELF_CLOSING_START_TAG_STATE](cp) {\n        if (cp === $.GREATER_THAN_SIGN) {\n            this.currentToken.selfClosing = true;\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInTag);\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.unexpectedSolidusInTag);\n            this._reconsumeInState(BEFORE_ATTRIBUTE_NAME_STATE);\n        }\n    }\n\n    // Bogus comment state\n    //------------------------------------------------------------------\n    [BOGUS_COMMENT_STATE](cp) {\n        if (cp === $.GREATER_THAN_SIGN) {\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentToken.data += unicode.REPLACEMENT_CHARACTER;\n        } else {\n            this.currentToken.data += toChar(cp);\n        }\n    }\n\n    // Markup declaration open state\n    //------------------------------------------------------------------\n    [MARKUP_DECLARATION_OPEN_STATE](cp) {\n        if (this._consumeSequenceIfMatch($$.DASH_DASH_STRING, cp, true)) {\n            this._createCommentToken();\n            this.state = COMMENT_START_STATE;\n        } else if (this._consumeSequenceIfMatch($$.DOCTYPE_STRING, cp, false)) {\n            this.state = DOCTYPE_STATE;\n        } else if (this._consumeSequenceIfMatch($$.CDATA_START_STRING, cp, true)) {\n            if (this.allowCDATA) {\n                this.state = CDATA_SECTION_STATE;\n            } else {\n                this._err(ERR.cdataInHtmlContent);\n                this._createCommentToken();\n                this.currentToken.data = '[CDATA[';\n                this.state = BOGUS_COMMENT_STATE;\n            }\n        }\n\n        //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n        //results are no longer valid and we will need to start over.\n        else if (!this._ensureHibernation()) {\n            this._err(ERR.incorrectlyOpenedComment);\n            this._createCommentToken();\n            this._reconsumeInState(BOGUS_COMMENT_STATE);\n        }\n    }\n\n    // Comment start state\n    //------------------------------------------------------------------\n    [COMMENT_START_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = COMMENT_START_DASH_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.abruptClosingOfEmptyComment);\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else {\n            this._reconsumeInState(COMMENT_STATE);\n        }\n    }\n\n    // Comment start dash state\n    //------------------------------------------------------------------\n    [COMMENT_START_DASH_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = COMMENT_END_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.abruptClosingOfEmptyComment);\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInComment);\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.data += '-';\n            this._reconsumeInState(COMMENT_STATE);\n        }\n    }\n\n    // Comment state\n    //------------------------------------------------------------------\n    [COMMENT_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = COMMENT_END_DASH_STATE;\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.currentToken.data += '<';\n            this.state = COMMENT_LESS_THAN_SIGN_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentToken.data += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInComment);\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.data += toChar(cp);\n        }\n    }\n\n    // Comment less-than sign state\n    //------------------------------------------------------------------\n    [COMMENT_LESS_THAN_SIGN_STATE](cp) {\n        if (cp === $.EXCLAMATION_MARK) {\n            this.currentToken.data += '!';\n            this.state = COMMENT_LESS_THAN_SIGN_BANG_STATE;\n        } else if (cp === $.LESS_THAN_SIGN) {\n            this.currentToken.data += '!';\n        } else {\n            this._reconsumeInState(COMMENT_STATE);\n        }\n    }\n\n    // Comment less-than sign bang state\n    //------------------------------------------------------------------\n    [COMMENT_LESS_THAN_SIGN_BANG_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE;\n        } else {\n            this._reconsumeInState(COMMENT_STATE);\n        }\n    }\n\n    // Comment less-than sign bang dash state\n    //------------------------------------------------------------------\n    [COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE;\n        } else {\n            this._reconsumeInState(COMMENT_END_DASH_STATE);\n        }\n    }\n\n    // Comment less-than sign bang dash dash state\n    //------------------------------------------------------------------\n    [COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE](cp) {\n        if (cp !== $.GREATER_THAN_SIGN && cp !== $.EOF) {\n            this._err(ERR.nestedComment);\n        }\n\n        this._reconsumeInState(COMMENT_END_STATE);\n    }\n\n    // Comment end dash state\n    //------------------------------------------------------------------\n    [COMMENT_END_DASH_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.state = COMMENT_END_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInComment);\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.data += '-';\n            this._reconsumeInState(COMMENT_STATE);\n        }\n    }\n\n    // Comment end state\n    //------------------------------------------------------------------\n    [COMMENT_END_STATE](cp) {\n        if (cp === $.GREATER_THAN_SIGN) {\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EXCLAMATION_MARK) {\n            this.state = COMMENT_END_BANG_STATE;\n        } else if (cp === $.HYPHEN_MINUS) {\n            this.currentToken.data += '-';\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInComment);\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.data += '--';\n            this._reconsumeInState(COMMENT_STATE);\n        }\n    }\n\n    // Comment end bang state\n    //------------------------------------------------------------------\n    [COMMENT_END_BANG_STATE](cp) {\n        if (cp === $.HYPHEN_MINUS) {\n            this.currentToken.data += '--!';\n            this.state = COMMENT_END_DASH_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.incorrectlyClosedComment);\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInComment);\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.data += '--!';\n            this._reconsumeInState(COMMENT_STATE);\n        }\n    }\n\n    // DOCTYPE state\n    //------------------------------------------------------------------\n    [DOCTYPE_STATE](cp) {\n        if (isWhitespace(cp)) {\n            this.state = BEFORE_DOCTYPE_NAME_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._reconsumeInState(BEFORE_DOCTYPE_NAME_STATE);\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this._createDoctypeToken(null);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.missingWhitespaceBeforeDoctypeName);\n            this._reconsumeInState(BEFORE_DOCTYPE_NAME_STATE);\n        }\n    }\n\n    // Before DOCTYPE name state\n    //------------------------------------------------------------------\n    [BEFORE_DOCTYPE_NAME_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (isAsciiUpper(cp)) {\n            this._createDoctypeToken(toAsciiLowerChar(cp));\n            this.state = DOCTYPE_NAME_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this._createDoctypeToken(unicode.REPLACEMENT_CHARACTER);\n            this.state = DOCTYPE_NAME_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.missingDoctypeName);\n            this._createDoctypeToken(null);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this.state = DATA_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this._createDoctypeToken(null);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._createDoctypeToken(toChar(cp));\n            this.state = DOCTYPE_NAME_STATE;\n        }\n    }\n\n    // DOCTYPE name state\n    //------------------------------------------------------------------\n    [DOCTYPE_NAME_STATE](cp) {\n        if (isWhitespace(cp)) {\n            this.state = AFTER_DOCTYPE_NAME_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (isAsciiUpper(cp)) {\n            this.currentToken.name += toAsciiLowerChar(cp);\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentToken.name += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.name += toChar(cp);\n        }\n    }\n\n    // After DOCTYPE name state\n    //------------------------------------------------------------------\n    [AFTER_DOCTYPE_NAME_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (cp === $.GREATER_THAN_SIGN) {\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else if (this._consumeSequenceIfMatch($$.PUBLIC_STRING, cp, false)) {\n            this.state = AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE;\n        } else if (this._consumeSequenceIfMatch($$.SYSTEM_STRING, cp, false)) {\n            this.state = AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE;\n        }\n        //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n        //results are no longer valid and we will need to start over.\n        else if (!this._ensureHibernation()) {\n            this._err(ERR.invalidCharacterSequenceAfterDoctypeName);\n            this.currentToken.forceQuirks = true;\n            this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n        }\n    }\n\n    // After DOCTYPE public keyword state\n    //------------------------------------------------------------------\n    [AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE](cp) {\n        if (isWhitespace(cp)) {\n            this.state = BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n        } else if (cp === $.QUOTATION_MARK) {\n            this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n            this.currentToken.publicId = '';\n            this.state = DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE;\n        } else if (cp === $.APOSTROPHE) {\n            this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n            this.currentToken.publicId = '';\n            this.state = DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.missingDoctypePublicIdentifier);\n            this.currentToken.forceQuirks = true;\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n        }\n    }\n\n    // Before DOCTYPE public identifier state\n    //------------------------------------------------------------------\n    [BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (cp === $.QUOTATION_MARK) {\n            this.currentToken.publicId = '';\n            this.state = DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE;\n        } else if (cp === $.APOSTROPHE) {\n            this.currentToken.publicId = '';\n            this.state = DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.missingDoctypePublicIdentifier);\n            this.currentToken.forceQuirks = true;\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n        }\n    }\n\n    // DOCTYPE public identifier (double-quoted) state\n    //------------------------------------------------------------------\n    [DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE](cp) {\n        if (cp === $.QUOTATION_MARK) {\n            this.state = AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentToken.publicId += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.abruptDoctypePublicIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this.state = DATA_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.publicId += toChar(cp);\n        }\n    }\n\n    // DOCTYPE public identifier (single-quoted) state\n    //------------------------------------------------------------------\n    [DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE](cp) {\n        if (cp === $.APOSTROPHE) {\n            this.state = AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentToken.publicId += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.abruptDoctypePublicIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this.state = DATA_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.publicId += toChar(cp);\n        }\n    }\n\n    // After DOCTYPE public identifier state\n    //------------------------------------------------------------------\n    [AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE](cp) {\n        if (isWhitespace(cp)) {\n            this.state = BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.QUOTATION_MARK) {\n            this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n            this.currentToken.systemId = '';\n            this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n        } else if (cp === $.APOSTROPHE) {\n            this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n            this.currentToken.systemId = '';\n            this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n        }\n    }\n\n    // Between DOCTYPE public and system identifiers state\n    //------------------------------------------------------------------\n    [BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (cp === $.GREATER_THAN_SIGN) {\n            this._emitCurrentToken();\n            this.state = DATA_STATE;\n        } else if (cp === $.QUOTATION_MARK) {\n            this.currentToken.systemId = '';\n            this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n        } else if (cp === $.APOSTROPHE) {\n            this.currentToken.systemId = '';\n            this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n        }\n    }\n\n    // After DOCTYPE system keyword state\n    //------------------------------------------------------------------\n    [AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE](cp) {\n        if (isWhitespace(cp)) {\n            this.state = BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n        } else if (cp === $.QUOTATION_MARK) {\n            this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n            this.currentToken.systemId = '';\n            this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n        } else if (cp === $.APOSTROPHE) {\n            this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n            this.currentToken.systemId = '';\n            this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.missingDoctypeSystemIdentifier);\n            this.currentToken.forceQuirks = true;\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n        }\n    }\n\n    // Before DOCTYPE system identifier state\n    //------------------------------------------------------------------\n    [BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (cp === $.QUOTATION_MARK) {\n            this.currentToken.systemId = '';\n            this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n        } else if (cp === $.APOSTROPHE) {\n            this.currentToken.systemId = '';\n            this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.missingDoctypeSystemIdentifier);\n            this.currentToken.forceQuirks = true;\n            this.state = DATA_STATE;\n            this._emitCurrentToken();\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n        }\n    }\n\n    // DOCTYPE system identifier (double-quoted) state\n    //------------------------------------------------------------------\n    [DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE](cp) {\n        if (cp === $.QUOTATION_MARK) {\n            this.state = AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentToken.systemId += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.abruptDoctypeSystemIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this.state = DATA_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.systemId += toChar(cp);\n        }\n    }\n\n    // DOCTYPE system identifier (single-quoted) state\n    //------------------------------------------------------------------\n    [DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE](cp) {\n        if (cp === $.APOSTROPHE) {\n            this.state = AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n            this.currentToken.systemId += unicode.REPLACEMENT_CHARACTER;\n        } else if (cp === $.GREATER_THAN_SIGN) {\n            this._err(ERR.abruptDoctypeSystemIdentifier);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this.state = DATA_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this.currentToken.systemId += toChar(cp);\n        }\n    }\n\n    // After DOCTYPE system identifier state\n    //------------------------------------------------------------------\n    [AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE](cp) {\n        if (isWhitespace(cp)) {\n            return;\n        }\n\n        if (cp === $.GREATER_THAN_SIGN) {\n            this._emitCurrentToken();\n            this.state = DATA_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInDoctype);\n            this.currentToken.forceQuirks = true;\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        } else {\n            this._err(ERR.unexpectedCharacterAfterDoctypeSystemIdentifier);\n            this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n        }\n    }\n\n    // Bogus DOCTYPE state\n    //------------------------------------------------------------------\n    [BOGUS_DOCTYPE_STATE](cp) {\n        if (cp === $.GREATER_THAN_SIGN) {\n            this._emitCurrentToken();\n            this.state = DATA_STATE;\n        } else if (cp === $.NULL) {\n            this._err(ERR.unexpectedNullCharacter);\n        } else if (cp === $.EOF) {\n            this._emitCurrentToken();\n            this._emitEOFToken();\n        }\n    }\n\n    // CDATA section state\n    //------------------------------------------------------------------\n    [CDATA_SECTION_STATE](cp) {\n        if (cp === $.RIGHT_SQUARE_BRACKET) {\n            this.state = CDATA_SECTION_BRACKET_STATE;\n        } else if (cp === $.EOF) {\n            this._err(ERR.eofInCdata);\n            this._emitEOFToken();\n        } else {\n            this._emitCodePoint(cp);\n        }\n    }\n\n    // CDATA section bracket state\n    //------------------------------------------------------------------\n    [CDATA_SECTION_BRACKET_STATE](cp) {\n        if (cp === $.RIGHT_SQUARE_BRACKET) {\n            this.state = CDATA_SECTION_END_STATE;\n        } else {\n            this._emitChars(']');\n            this._reconsumeInState(CDATA_SECTION_STATE);\n        }\n    }\n\n    // CDATA section end state\n    //------------------------------------------------------------------\n    [CDATA_SECTION_END_STATE](cp) {\n        if (cp === $.GREATER_THAN_SIGN) {\n            this.state = DATA_STATE;\n        } else if (cp === $.RIGHT_SQUARE_BRACKET) {\n            this._emitChars(']');\n        } else {\n            this._emitChars(']]');\n            this._reconsumeInState(CDATA_SECTION_STATE);\n        }\n    }\n\n    // Character reference state\n    //------------------------------------------------------------------\n    [CHARACTER_REFERENCE_STATE](cp) {\n        this.tempBuff = [$.AMPERSAND];\n\n        if (cp === $.NUMBER_SIGN) {\n            this.tempBuff.push(cp);\n            this.state = NUMERIC_CHARACTER_REFERENCE_STATE;\n        } else if (isAsciiAlphaNumeric(cp)) {\n            this._reconsumeInState(NAMED_CHARACTER_REFERENCE_STATE);\n        } else {\n            this._flushCodePointsConsumedAsCharacterReference();\n            this._reconsumeInState(this.returnState);\n        }\n    }\n\n    // Named character reference state\n    //------------------------------------------------------------------\n    [NAMED_CHARACTER_REFERENCE_STATE](cp) {\n        const matchResult = this._matchNamedCharacterReference(cp);\n\n        //NOTE: matching can be abrupted by hibernation. In that case match\n        //results are no longer valid and we will need to start over.\n        if (this._ensureHibernation()) {\n            this.tempBuff = [$.AMPERSAND];\n        } else if (matchResult) {\n            const withSemicolon = this.tempBuff[this.tempBuff.length - 1] === $.SEMICOLON;\n\n            if (!this._isCharacterReferenceAttributeQuirk(withSemicolon)) {\n                if (!withSemicolon) {\n                    this._errOnNextCodePoint(ERR.missingSemicolonAfterCharacterReference);\n                }\n\n                this.tempBuff = matchResult;\n            }\n\n            this._flushCodePointsConsumedAsCharacterReference();\n            this.state = this.returnState;\n        } else {\n            this._flushCodePointsConsumedAsCharacterReference();\n            this.state = AMBIGUOUS_AMPERSAND_STATE;\n        }\n    }\n\n    // Ambiguos ampersand state\n    //------------------------------------------------------------------\n    [AMBIGUOUS_AMPERSAND_STATE](cp) {\n        if (isAsciiAlphaNumeric(cp)) {\n            if (this._isCharacterReferenceInAttribute()) {\n                this.currentAttr.value += toChar(cp);\n            } else {\n                this._emitCodePoint(cp);\n            }\n        } else {\n            if (cp === $.SEMICOLON) {\n                this._err(ERR.unknownNamedCharacterReference);\n            }\n\n            this._reconsumeInState(this.returnState);\n        }\n    }\n\n    // Numeric character reference state\n    //------------------------------------------------------------------\n    [NUMERIC_CHARACTER_REFERENCE_STATE](cp) {\n        this.charRefCode = 0;\n\n        if (cp === $.LATIN_SMALL_X || cp === $.LATIN_CAPITAL_X) {\n            this.tempBuff.push(cp);\n            this.state = HEXADEMICAL_CHARACTER_REFERENCE_START_STATE;\n        } else {\n            this._reconsumeInState(DECIMAL_CHARACTER_REFERENCE_START_STATE);\n        }\n    }\n\n    // Hexademical character reference start state\n    //------------------------------------------------------------------\n    [HEXADEMICAL_CHARACTER_REFERENCE_START_STATE](cp) {\n        if (isAsciiHexDigit(cp)) {\n            this._reconsumeInState(HEXADEMICAL_CHARACTER_REFERENCE_STATE);\n        } else {\n            this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n            this._flushCodePointsConsumedAsCharacterReference();\n            this._reconsumeInState(this.returnState);\n        }\n    }\n\n    // Decimal character reference start state\n    //------------------------------------------------------------------\n    [DECIMAL_CHARACTER_REFERENCE_START_STATE](cp) {\n        if (isAsciiDigit(cp)) {\n            this._reconsumeInState(DECIMAL_CHARACTER_REFERENCE_STATE);\n        } else {\n            this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n            this._flushCodePointsConsumedAsCharacterReference();\n            this._reconsumeInState(this.returnState);\n        }\n    }\n\n    // Hexademical character reference state\n    //------------------------------------------------------------------\n    [HEXADEMICAL_CHARACTER_REFERENCE_STATE](cp) {\n        if (isAsciiUpperHexDigit(cp)) {\n            this.charRefCode = this.charRefCode * 16 + cp - 0x37;\n        } else if (isAsciiLowerHexDigit(cp)) {\n            this.charRefCode = this.charRefCode * 16 + cp - 0x57;\n        } else if (isAsciiDigit(cp)) {\n            this.charRefCode = this.charRefCode * 16 + cp - 0x30;\n        } else if (cp === $.SEMICOLON) {\n            this.state = NUMERIC_CHARACTER_REFERENCE_END_STATE;\n        } else {\n            this._err(ERR.missingSemicolonAfterCharacterReference);\n            this._reconsumeInState(NUMERIC_CHARACTER_REFERENCE_END_STATE);\n        }\n    }\n\n    // Decimal character reference state\n    //------------------------------------------------------------------\n    [DECIMAL_CHARACTER_REFERENCE_STATE](cp) {\n        if (isAsciiDigit(cp)) {\n            this.charRefCode = this.charRefCode * 10 + cp - 0x30;\n        } else if (cp === $.SEMICOLON) {\n            this.state = NUMERIC_CHARACTER_REFERENCE_END_STATE;\n        } else {\n            this._err(ERR.missingSemicolonAfterCharacterReference);\n            this._reconsumeInState(NUMERIC_CHARACTER_REFERENCE_END_STATE);\n        }\n    }\n\n    // Numeric character reference end state\n    //------------------------------------------------------------------\n    [NUMERIC_CHARACTER_REFERENCE_END_STATE]() {\n        if (this.charRefCode === $.NULL) {\n            this._err(ERR.nullCharacterReference);\n            this.charRefCode = $.REPLACEMENT_CHARACTER;\n        } else if (this.charRefCode > 0x10ffff) {\n            this._err(ERR.characterReferenceOutsideUnicodeRange);\n            this.charRefCode = $.REPLACEMENT_CHARACTER;\n        } else if (unicode.isSurrogate(this.charRefCode)) {\n            this._err(ERR.surrogateCharacterReference);\n            this.charRefCode = $.REPLACEMENT_CHARACTER;\n        } else if (unicode.isUndefinedCodePoint(this.charRefCode)) {\n            this._err(ERR.noncharacterCharacterReference);\n        } else if (unicode.isControlCodePoint(this.charRefCode) || this.charRefCode === $.CARRIAGE_RETURN) {\n            this._err(ERR.controlCharacterReference);\n\n            const replacement = C1_CONTROLS_REFERENCE_REPLACEMENTS[this.charRefCode];\n\n            if (replacement) {\n                this.charRefCode = replacement;\n            }\n        }\n\n        this.tempBuff = [this.charRefCode];\n\n        this._flushCodePointsConsumedAsCharacterReference();\n        this._reconsumeInState(this.returnState);\n    }\n}\n\n//Token types\nTokenizer.CHARACTER_TOKEN = 'CHARACTER_TOKEN';\nTokenizer.NULL_CHARACTER_TOKEN = 'NULL_CHARACTER_TOKEN';\nTokenizer.WHITESPACE_CHARACTER_TOKEN = 'WHITESPACE_CHARACTER_TOKEN';\nTokenizer.START_TAG_TOKEN = 'START_TAG_TOKEN';\nTokenizer.END_TAG_TOKEN = 'END_TAG_TOKEN';\nTokenizer.COMMENT_TOKEN = 'COMMENT_TOKEN';\nTokenizer.DOCTYPE_TOKEN = 'DOCTYPE_TOKEN';\nTokenizer.EOF_TOKEN = 'EOF_TOKEN';\nTokenizer.HIBERNATION_TOKEN = 'HIBERNATION_TOKEN';\n\n//Tokenizer initial states for different modes\nTokenizer.MODE = {\n    DATA: DATA_STATE,\n    RCDATA: RCDATA_STATE,\n    RAWTEXT: RAWTEXT_STATE,\n    SCRIPT_DATA: SCRIPT_DATA_STATE,\n    PLAINTEXT: PLAINTEXT_STATE\n};\n\n//Static\nTokenizer.getTokenAttr = function(token, attrName) {\n    for (let i = token.attrs.length - 1; i >= 0; i--) {\n        if (token.attrs[i].name === attrName) {\n            return token.attrs[i].value;\n        }\n    }\n\n    return null;\n};\n\nmodule.exports = Tokenizer;\n","'use strict';\n\n//NOTE: this file contains auto-generated array mapped radix tree that is used for the named entity references consumption\n//(details: https://github.com/inikulin/parse5/tree/master/scripts/generate-named-entity-data/README.md)\nmodule.exports = new Uint16Array([4,52,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,106,303,412,810,1432,1701,1796,1987,2114,2360,2420,2484,3170,3251,4140,4393,4575,4610,5106,5512,5728,6117,6274,6315,6345,6427,6516,7002,7910,8733,9323,9870,10170,10631,10893,11318,11386,11467,12773,13092,14474,14922,15448,15542,16419,17666,18166,18611,19004,19095,19298,19397,4,16,69,77,97,98,99,102,103,108,109,110,111,112,114,115,116,117,140,150,158,169,176,194,199,210,216,222,226,242,256,266,283,294,108,105,103,5,198,1,59,148,1,198,80,5,38,1,59,156,1,38,99,117,116,101,5,193,1,59,167,1,193,114,101,118,101,59,1,258,4,2,105,121,182,191,114,99,5,194,1,59,189,1,194,59,1,1040,114,59,3,55349,56580,114,97,118,101,5,192,1,59,208,1,192,112,104,97,59,1,913,97,99,114,59,1,256,100,59,1,10835,4,2,103,112,232,237,111,110,59,1,260,102,59,3,55349,56632,112,108,121,70,117,110,99,116,105,111,110,59,1,8289,105,110,103,5,197,1,59,264,1,197,4,2,99,115,272,277,114,59,3,55349,56476,105,103,110,59,1,8788,105,108,100,101,5,195,1,59,292,1,195,109,108,5,196,1,59,301,1,196,4,8,97,99,101,102,111,114,115,117,321,350,354,383,388,394,400,405,4,2,99,114,327,336,107,115,108,97,115,104,59,1,8726,4,2,118,119,342,345,59,1,10983,101,100,59,1,8966,121,59,1,1041,4,3,99,114,116,362,369,379,97,117,115,101,59,1,8757,110,111,117,108,108,105,115,59,1,8492,97,59,1,914,114,59,3,55349,56581,112,102,59,3,55349,56633,101,118,101,59,1,728,99,114,59,1,8492,109,112,101,113,59,1,8782,4,14,72,79,97,99,100,101,102,104,105,108,111,114,115,117,442,447,456,504,542,547,569,573,577,616,678,784,790,796,99,121,59,1,1063,80,89,5,169,1,59,454,1,169,4,3,99,112,121,464,470,497,117,116,101,59,1,262,4,2,59,105,476,478,1,8914,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59,1,8517,108,101,121,115,59,1,8493,4,4,97,101,105,111,514,520,530,535,114,111,110,59,1,268,100,105,108,5,199,1,59,528,1,199,114,99,59,1,264,110,105,110,116,59,1,8752,111,116,59,1,266,4,2,100,110,553,560,105,108,108,97,59,1,184,116,101,114,68,111,116,59,1,183,114,59,1,8493,105,59,1,935,114,99,108,101,4,4,68,77,80,84,591,596,603,609,111,116,59,1,8857,105,110,117,115,59,1,8854,108,117,115,59,1,8853,105,109,101,115,59,1,8855,111,4,2,99,115,623,646,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8754,101,67,117,114,108,121,4,2,68,81,658,671,111,117,98,108,101,81,117,111,116,101,59,1,8221,117,111,116,101,59,1,8217,4,4,108,110,112,117,688,701,736,753,111,110,4,2,59,101,696,698,1,8759,59,1,10868,4,3,103,105,116,709,717,722,114,117,101,110,116,59,1,8801,110,116,59,1,8751,111,117,114,73,110,116,101,103,114,97,108,59,1,8750,4,2,102,114,742,745,59,1,8450,111,100,117,99,116,59,1,8720,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8755,111,115,115,59,1,10799,99,114,59,3,55349,56478,112,4,2,59,67,803,805,1,8915,97,112,59,1,8781,4,11,68,74,83,90,97,99,101,102,105,111,115,834,850,855,860,865,888,903,916,921,1011,1415,4,2,59,111,840,842,1,8517,116,114,97,104,100,59,1,10513,99,121,59,1,1026,99,121,59,1,1029,99,121,59,1,1039,4,3,103,114,115,873,879,883,103,101,114,59,1,8225,114,59,1,8609,104,118,59,1,10980,4,2,97,121,894,900,114,111,110,59,1,270,59,1,1044,108,4,2,59,116,910,912,1,8711,97,59,1,916,114,59,3,55349,56583,4,2,97,102,927,998,4,2,99,109,933,992,114,105,116,105,99,97,108,4,4,65,68,71,84,950,957,978,985,99,117,116,101,59,1,180,111,4,2,116,117,964,967,59,1,729,98,108,101,65,99,117,116,101,59,1,733,114,97,118,101,59,1,96,105,108,100,101,59,1,732,111,110,100,59,1,8900,102,101,114,101,110,116,105,97,108,68,59,1,8518,4,4,112,116,117,119,1021,1026,1048,1249,102,59,3,55349,56635,4,3,59,68,69,1034,1036,1041,1,168,111,116,59,1,8412,113,117,97,108,59,1,8784,98,108,101,4,6,67,68,76,82,85,86,1065,1082,1101,1189,1211,1236,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8751,111,4,2,116,119,1089,1092,59,1,168,110,65,114,114,111,119,59,1,8659,4,2,101,111,1107,1141,102,116,4,3,65,82,84,1117,1124,1136,114,114,111,119,59,1,8656,105,103,104,116,65,114,114,111,119,59,1,8660,101,101,59,1,10980,110,103,4,2,76,82,1149,1177,101,102,116,4,2,65,82,1158,1165,114,114,111,119,59,1,10232,105,103,104,116,65,114,114,111,119,59,1,10234,105,103,104,116,65,114,114,111,119,59,1,10233,105,103,104,116,4,2,65,84,1199,1206,114,114,111,119,59,1,8658,101,101,59,1,8872,112,4,2,65,68,1218,1225,114,114,111,119,59,1,8657,111,119,110,65,114,114,111,119,59,1,8661,101,114,116,105,99,97,108,66,97,114,59,1,8741,110,4,6,65,66,76,82,84,97,1264,1292,1299,1352,1391,1408,114,114,111,119,4,3,59,66,85,1276,1278,1283,1,8595,97,114,59,1,10515,112,65,114,114,111,119,59,1,8693,114,101,118,101,59,1,785,101,102,116,4,3,82,84,86,1310,1323,1334,105,103,104,116,86,101,99,116,111,114,59,1,10576,101,101,86,101,99,116,111,114,59,1,10590,101,99,116,111,114,4,2,59,66,1345,1347,1,8637,97,114,59,1,10582,105,103,104,116,4,2,84,86,1362,1373,101,101,86,101,99,116,111,114,59,1,10591,101,99,116,111,114,4,2,59,66,1384,1386,1,8641,97,114,59,1,10583,101,101,4,2,59,65,1399,1401,1,8868,114,114,111,119,59,1,8615,114,114,111,119,59,1,8659,4,2,99,116,1421,1426,114,59,3,55349,56479,114,111,107,59,1,272,4,16,78,84,97,99,100,102,103,108,109,111,112,113,115,116,117,120,1466,1470,1478,1489,1515,1520,1525,1536,1544,1593,1609,1617,1650,1664,1668,1677,71,59,1,330,72,5,208,1,59,1476,1,208,99,117,116,101,5,201,1,59,1487,1,201,4,3,97,105,121,1497,1503,1512,114,111,110,59,1,282,114,99,5,202,1,59,1510,1,202,59,1,1069,111,116,59,1,278,114,59,3,55349,56584,114,97,118,101,5,200,1,59,1534,1,200,101,109,101,110,116,59,1,8712,4,2,97,112,1550,1555,99,114,59,1,274,116,121,4,2,83,86,1563,1576,109,97,108,108,83,113,117,97,114,101,59,1,9723,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9643,4,2,103,112,1599,1604,111,110,59,1,280,102,59,3,55349,56636,115,105,108,111,110,59,1,917,117,4,2,97,105,1624,1640,108,4,2,59,84,1631,1633,1,10869,105,108,100,101,59,1,8770,108,105,98,114,105,117,109,59,1,8652,4,2,99,105,1656,1660,114,59,1,8496,109,59,1,10867,97,59,1,919,109,108,5,203,1,59,1675,1,203,4,2,105,112,1683,1689,115,116,115,59,1,8707,111,110,101,110,116,105,97,108,69,59,1,8519,4,5,99,102,105,111,115,1713,1717,1722,1762,1791,121,59,1,1060,114,59,3,55349,56585,108,108,101,100,4,2,83,86,1732,1745,109,97,108,108,83,113,117,97,114,101,59,1,9724,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9642,4,3,112,114,117,1770,1775,1781,102,59,3,55349,56637,65,108,108,59,1,8704,114,105,101,114,116,114,102,59,1,8497,99,114,59,1,8497,4,12,74,84,97,98,99,100,102,103,111,114,115,116,1822,1827,1834,1848,1855,1877,1882,1887,1890,1896,1978,1984,99,121,59,1,1027,5,62,1,59,1832,1,62,109,109,97,4,2,59,100,1843,1845,1,915,59,1,988,114,101,118,101,59,1,286,4,3,101,105,121,1863,1869,1874,100,105,108,59,1,290,114,99,59,1,284,59,1,1043,111,116,59,1,288,114,59,3,55349,56586,59,1,8921,112,102,59,3,55349,56638,101,97,116,101,114,4,6,69,70,71,76,83,84,1915,1933,1944,1953,1959,1971,113,117,97,108,4,2,59,76,1925,1927,1,8805,101,115,115,59,1,8923,117,108,108,69,113,117,97,108,59,1,8807,114,101,97,116,101,114,59,1,10914,101,115,115,59,1,8823,108,97,110,116,69,113,117,97,108,59,1,10878,105,108,100,101,59,1,8819,99,114,59,3,55349,56482,59,1,8811,4,8,65,97,99,102,105,111,115,117,2005,2012,2026,2032,2036,2049,2073,2089,82,68,99,121,59,1,1066,4,2,99,116,2018,2023,101,107,59,1,711,59,1,94,105,114,99,59,1,292,114,59,1,8460,108,98,101,114,116,83,112,97,99,101,59,1,8459,4,2,112,114,2055,2059,102,59,1,8461,105,122,111,110,116,97,108,76,105,110,101,59,1,9472,4,2,99,116,2079,2083,114,59,1,8459,114,111,107,59,1,294,109,112,4,2,68,69,2097,2107,111,119,110,72,117,109,112,59,1,8782,113,117,97,108,59,1,8783,4,14,69,74,79,97,99,100,102,103,109,110,111,115,116,117,2144,2149,2155,2160,2171,2189,2194,2198,2209,2245,2307,2329,2334,2341,99,121,59,1,1045,108,105,103,59,1,306,99,121,59,1,1025,99,117,116,101,5,205,1,59,2169,1,205,4,2,105,121,2177,2186,114,99,5,206,1,59,2184,1,206,59,1,1048,111,116,59,1,304,114,59,1,8465,114,97,118,101,5,204,1,59,2207,1,204,4,3,59,97,112,2217,2219,2238,1,8465,4,2,99,103,2225,2229,114,59,1,298,105,110,97,114,121,73,59,1,8520,108,105,101,115,59,1,8658,4,2,116,118,2251,2281,4,2,59,101,2257,2259,1,8748,4,2,103,114,2265,2271,114,97,108,59,1,8747,115,101,99,116,105,111,110,59,1,8898,105,115,105,98,108,101,4,2,67,84,2293,2300,111,109,109,97,59,1,8291,105,109,101,115,59,1,8290,4,3,103,112,116,2315,2320,2325,111,110,59,1,302,102,59,3,55349,56640,97,59,1,921,99,114,59,1,8464,105,108,100,101,59,1,296,4,2,107,109,2347,2352,99,121,59,1,1030,108,5,207,1,59,2358,1,207,4,5,99,102,111,115,117,2372,2386,2391,2397,2414,4,2,105,121,2378,2383,114,99,59,1,308,59,1,1049,114,59,3,55349,56589,112,102,59,3,55349,56641,4,2,99,101,2403,2408,114,59,3,55349,56485,114,99,121,59,1,1032,107,99,121,59,1,1028,4,7,72,74,97,99,102,111,115,2436,2441,2446,2452,2467,2472,2478,99,121,59,1,1061,99,121,59,1,1036,112,112,97,59,1,922,4,2,101,121,2458,2464,100,105,108,59,1,310,59,1,1050,114,59,3,55349,56590,112,102,59,3,55349,56642,99,114,59,3,55349,56486,4,11,74,84,97,99,101,102,108,109,111,115,116,2508,2513,2520,2562,2585,2981,2986,3004,3011,3146,3167,99,121,59,1,1033,5,60,1,59,2518,1,60,4,5,99,109,110,112,114,2532,2538,2544,2548,2558,117,116,101,59,1,313,98,100,97,59,1,923,103,59,1,10218,108,97,99,101,116,114,102,59,1,8466,114,59,1,8606,4,3,97,101,121,2570,2576,2582,114,111,110,59,1,317,100,105,108,59,1,315,59,1,1051,4,2,102,115,2591,2907,116,4,10,65,67,68,70,82,84,85,86,97,114,2614,2663,2672,2728,2735,2760,2820,2870,2888,2895,4,2,110,114,2620,2633,103,108,101,66,114,97,99,107,101,116,59,1,10216,114,111,119,4,3,59,66,82,2644,2646,2651,1,8592,97,114,59,1,8676,105,103,104,116,65,114,114,111,119,59,1,8646,101,105,108,105,110,103,59,1,8968,111,4,2,117,119,2679,2692,98,108,101,66,114,97,99,107,101,116,59,1,10214,110,4,2,84,86,2699,2710,101,101,86,101,99,116,111,114,59,1,10593,101,99,116,111,114,4,2,59,66,2721,2723,1,8643,97,114,59,1,10585,108,111,111,114,59,1,8970,105,103,104,116,4,2,65,86,2745,2752,114,114,111,119,59,1,8596,101,99,116,111,114,59,1,10574,4,2,101,114,2766,2792,101,4,3,59,65,86,2775,2777,2784,1,8867,114,114,111,119,59,1,8612,101,99,116,111,114,59,1,10586,105,97,110,103,108,101,4,3,59,66,69,2806,2808,2813,1,8882,97,114,59,1,10703,113,117,97,108,59,1,8884,112,4,3,68,84,86,2829,2841,2852,111,119,110,86,101,99,116,111,114,59,1,10577,101,101,86,101,99,116,111,114,59,1,10592,101,99,116,111,114,4,2,59,66,2863,2865,1,8639,97,114,59,1,10584,101,99,116,111,114,4,2,59,66,2881,2883,1,8636,97,114,59,1,10578,114,114,111,119,59,1,8656,105,103,104,116,97,114,114,111,119,59,1,8660,115,4,6,69,70,71,76,83,84,2922,2936,2947,2956,2962,2974,113,117,97,108,71,114,101,97,116,101,114,59,1,8922,117,108,108,69,113,117,97,108,59,1,8806,114,101,97,116,101,114,59,1,8822,101,115,115,59,1,10913,108,97,110,116,69,113,117,97,108,59,1,10877,105,108,100,101,59,1,8818,114,59,3,55349,56591,4,2,59,101,2992,2994,1,8920,102,116,97,114,114,111,119,59,1,8666,105,100,111,116,59,1,319,4,3,110,112,119,3019,3110,3115,103,4,4,76,82,108,114,3030,3058,3070,3098,101,102,116,4,2,65,82,3039,3046,114,114,111,119,59,1,10229,105,103,104,116,65,114,114,111,119,59,1,10231,105,103,104,116,65,114,114,111,119,59,1,10230,101,102,116,4,2,97,114,3079,3086,114,114,111,119,59,1,10232,105,103,104,116,97,114,114,111,119,59,1,10234,105,103,104,116,97,114,114,111,119,59,1,10233,102,59,3,55349,56643,101,114,4,2,76,82,3123,3134,101,102,116,65,114,114,111,119,59,1,8601,105,103,104,116,65,114,114,111,119,59,1,8600,4,3,99,104,116,3154,3158,3161,114,59,1,8466,59,1,8624,114,111,107,59,1,321,59,1,8810,4,8,97,99,101,102,105,111,115,117,3188,3192,3196,3222,3227,3237,3243,3248,112,59,1,10501,121,59,1,1052,4,2,100,108,3202,3213,105,117,109,83,112,97,99,101,59,1,8287,108,105,110,116,114,102,59,1,8499,114,59,3,55349,56592,110,117,115,80,108,117,115,59,1,8723,112,102,59,3,55349,56644,99,114,59,1,8499,59,1,924,4,9,74,97,99,101,102,111,115,116,117,3271,3276,3283,3306,3422,3427,4120,4126,4137,99,121,59,1,1034,99,117,116,101,59,1,323,4,3,97,101,121,3291,3297,3303,114,111,110,59,1,327,100,105,108,59,1,325,59,1,1053,4,3,103,115,119,3314,3380,3415,97,116,105,118,101,4,3,77,84,86,3327,3340,3365,101,100,105,117,109,83,112,97,99,101,59,1,8203,104,105,4,2,99,110,3348,3357,107,83,112,97,99,101,59,1,8203,83,112,97,99,101,59,1,8203,101,114,121,84,104,105,110,83,112,97,99,101,59,1,8203,116,101,100,4,2,71,76,3389,3405,114,101,97,116,101,114,71,114,101,97,116,101,114,59,1,8811,101,115,115,76,101,115,115,59,1,8810,76,105,110,101,59,1,10,114,59,3,55349,56593,4,4,66,110,112,116,3437,3444,3460,3464,114,101,97,107,59,1,8288,66,114,101,97,107,105,110,103,83,112,97,99,101,59,1,160,102,59,1,8469,4,13,59,67,68,69,71,72,76,78,80,82,83,84,86,3492,3494,3517,3536,3578,3657,3685,3784,3823,3860,3915,4066,4107,1,10988,4,2,111,117,3500,3510,110,103,114,117,101,110,116,59,1,8802,112,67,97,112,59,1,8813,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59,1,8742,4,3,108,113,120,3544,3552,3571,101,109,101,110,116,59,1,8713,117,97,108,4,2,59,84,3561,3563,1,8800,105,108,100,101,59,3,8770,824,105,115,116,115,59,1,8708,114,101,97,116,101,114,4,7,59,69,70,71,76,83,84,3600,3602,3609,3621,3631,3637,3650,1,8815,113,117,97,108,59,1,8817,117,108,108,69,113,117,97,108,59,3,8807,824,114,101,97,116,101,114,59,3,8811,824,101,115,115,59,1,8825,108,97,110,116,69,113,117,97,108,59,3,10878,824,105,108,100,101,59,1,8821,117,109,112,4,2,68,69,3666,3677,111,119,110,72,117,109,112,59,3,8782,824,113,117,97,108,59,3,8783,824,101,4,2,102,115,3692,3724,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3709,3711,3717,1,8938,97,114,59,3,10703,824,113,117,97,108,59,1,8940,115,4,6,59,69,71,76,83,84,3739,3741,3748,3757,3764,3777,1,8814,113,117,97,108,59,1,8816,114,101,97,116,101,114,59,1,8824,101,115,115,59,3,8810,824,108,97,110,116,69,113,117,97,108,59,3,10877,824,105,108,100,101,59,1,8820,101,115,116,101,100,4,2,71,76,3795,3812,114,101,97,116,101,114,71,114,101,97,116,101,114,59,3,10914,824,101,115,115,76,101,115,115,59,3,10913,824,114,101,99,101,100,101,115,4,3,59,69,83,3838,3840,3848,1,8832,113,117,97,108,59,3,10927,824,108,97,110,116,69,113,117,97,108,59,1,8928,4,2,101,105,3866,3881,118,101,114,115,101,69,108,101,109,101,110,116,59,1,8716,103,104,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3900,3902,3908,1,8939,97,114,59,3,10704,824,113,117,97,108,59,1,8941,4,2,113,117,3921,3973,117,97,114,101,83,117,4,2,98,112,3933,3952,115,101,116,4,2,59,69,3942,3945,3,8847,824,113,117,97,108,59,1,8930,101,114,115,101,116,4,2,59,69,3963,3966,3,8848,824,113,117,97,108,59,1,8931,4,3,98,99,112,3981,4000,4045,115,101,116,4,2,59,69,3990,3993,3,8834,8402,113,117,97,108,59,1,8840,99,101,101,100,115,4,4,59,69,83,84,4015,4017,4025,4037,1,8833,113,117,97,108,59,3,10928,824,108,97,110,116,69,113,117,97,108,59,1,8929,105,108,100,101,59,3,8831,824,101,114,115,101,116,4,2,59,69,4056,4059,3,8835,8402,113,117,97,108,59,1,8841,105,108,100,101,4,4,59,69,70,84,4080,4082,4089,4100,1,8769,113,117,97,108,59,1,8772,117,108,108,69,113,117,97,108,59,1,8775,105,108,100,101,59,1,8777,101,114,116,105,99,97,108,66,97,114,59,1,8740,99,114,59,3,55349,56489,105,108,100,101,5,209,1,59,4135,1,209,59,1,925,4,14,69,97,99,100,102,103,109,111,112,114,115,116,117,118,4170,4176,4187,4205,4212,4217,4228,4253,4259,4292,4295,4316,4337,4346,108,105,103,59,1,338,99,117,116,101,5,211,1,59,4185,1,211,4,2,105,121,4193,4202,114,99,5,212,1,59,4200,1,212,59,1,1054,98,108,97,99,59,1,336,114,59,3,55349,56594,114,97,118,101,5,210,1,59,4226,1,210,4,3,97,101,105,4236,4241,4246,99,114,59,1,332,103,97,59,1,937,99,114,111,110,59,1,927,112,102,59,3,55349,56646,101,110,67,117,114,108,121,4,2,68,81,4272,4285,111,117,98,108,101,81,117,111,116,101,59,1,8220,117,111,116,101,59,1,8216,59,1,10836,4,2,99,108,4301,4306,114,59,3,55349,56490,97,115,104,5,216,1,59,4314,1,216,105,4,2,108,109,4323,4332,100,101,5,213,1,59,4330,1,213,101,115,59,1,10807,109,108,5,214,1,59,4344,1,214,101,114,4,2,66,80,4354,4380,4,2,97,114,4360,4364,114,59,1,8254,97,99,4,2,101,107,4372,4375,59,1,9182,101,116,59,1,9140,97,114,101,110,116,104,101,115,105,115,59,1,9180,4,9,97,99,102,104,105,108,111,114,115,4413,4422,4426,4431,4435,4438,4448,4471,4561,114,116,105,97,108,68,59,1,8706,121,59,1,1055,114,59,3,55349,56595,105,59,1,934,59,1,928,117,115,77,105,110,117,115,59,1,177,4,2,105,112,4454,4467,110,99,97,114,101,112,108,97,110,101,59,1,8460,102,59,1,8473,4,4,59,101,105,111,4481,4483,4526,4531,1,10939,99,101,100,101,115,4,4,59,69,83,84,4498,4500,4507,4519,1,8826,113,117,97,108,59,1,10927,108,97,110,116,69,113,117,97,108,59,1,8828,105,108,100,101,59,1,8830,109,101,59,1,8243,4,2,100,112,4537,4543,117,99,116,59,1,8719,111,114,116,105,111,110,4,2,59,97,4555,4557,1,8759,108,59,1,8733,4,2,99,105,4567,4572,114,59,3,55349,56491,59,1,936,4,4,85,102,111,115,4585,4594,4599,4604,79,84,5,34,1,59,4592,1,34,114,59,3,55349,56596,112,102,59,1,8474,99,114,59,3,55349,56492,4,12,66,69,97,99,101,102,104,105,111,114,115,117,4636,4642,4650,4681,4704,4763,4767,4771,5047,5069,5081,5094,97,114,114,59,1,10512,71,5,174,1,59,4648,1,174,4,3,99,110,114,4658,4664,4668,117,116,101,59,1,340,103,59,1,10219,114,4,2,59,116,4675,4677,1,8608,108,59,1,10518,4,3,97,101,121,4689,4695,4701,114,111,110,59,1,344,100,105,108,59,1,342,59,1,1056,4,2,59,118,4710,4712,1,8476,101,114,115,101,4,2,69,85,4722,4748,4,2,108,113,4728,4736,101,109,101,110,116,59,1,8715,117,105,108,105,98,114,105,117,109,59,1,8651,112,69,113,117,105,108,105,98,114,105,117,109,59,1,10607,114,59,1,8476,111,59,1,929,103,104,116,4,8,65,67,68,70,84,85,86,97,4792,4840,4849,4905,4912,4972,5022,5040,4,2,110,114,4798,4811,103,108,101,66,114,97,99,107,101,116,59,1,10217,114,111,119,4,3,59,66,76,4822,4824,4829,1,8594,97,114,59,1,8677,101,102,116,65,114,114,111,119,59,1,8644,101,105,108,105,110,103,59,1,8969,111,4,2,117,119,4856,4869,98,108,101,66,114,97,99,107,101,116,59,1,10215,110,4,2,84,86,4876,4887,101,101,86,101,99,116,111,114,59,1,10589,101,99,116,111,114,4,2,59,66,4898,4900,1,8642,97,114,59,1,10581,108,111,111,114,59,1,8971,4,2,101,114,4918,4944,101,4,3,59,65,86,4927,4929,4936,1,8866,114,114,111,119,59,1,8614,101,99,116,111,114,59,1,10587,105,97,110,103,108,101,4,3,59,66,69,4958,4960,4965,1,8883,97,114,59,1,10704,113,117,97,108,59,1,8885,112,4,3,68,84,86,4981,4993,5004,111,119,110,86,101,99,116,111,114,59,1,10575,101,101,86,101,99,116,111,114,59,1,10588,101,99,116,111,114,4,2,59,66,5015,5017,1,8638,97,114,59,1,10580,101,99,116,111,114,4,2,59,66,5033,5035,1,8640,97,114,59,1,10579,114,114,111,119,59,1,8658,4,2,112,117,5053,5057,102,59,1,8477,110,100,73,109,112,108,105,101,115,59,1,10608,105,103,104,116,97,114,114,111,119,59,1,8667,4,2,99,104,5087,5091,114,59,1,8475,59,1,8625,108,101,68,101,108,97,121,101,100,59,1,10740,4,13,72,79,97,99,102,104,105,109,111,113,115,116,117,5134,5150,5157,5164,5198,5203,5259,5265,5277,5283,5374,5380,5385,4,2,67,99,5140,5146,72,99,121,59,1,1065,121,59,1,1064,70,84,99,121,59,1,1068,99,117,116,101,59,1,346,4,5,59,97,101,105,121,5176,5178,5184,5190,5195,1,10940,114,111,110,59,1,352,100,105,108,59,1,350,114,99,59,1,348,59,1,1057,114,59,3,55349,56598,111,114,116,4,4,68,76,82,85,5216,5227,5238,5250,111,119,110,65,114,114,111,119,59,1,8595,101,102,116,65,114,114,111,119,59,1,8592,105,103,104,116,65,114,114,111,119,59,1,8594,112,65,114,114,111,119,59,1,8593,103,109,97,59,1,931,97,108,108,67,105,114,99,108,101,59,1,8728,112,102,59,3,55349,56650,4,2,114,117,5289,5293,116,59,1,8730,97,114,101,4,4,59,73,83,85,5306,5308,5322,5367,1,9633,110,116,101,114,115,101,99,116,105,111,110,59,1,8851,117,4,2,98,112,5329,5347,115,101,116,4,2,59,69,5338,5340,1,8847,113,117,97,108,59,1,8849,101,114,115,101,116,4,2,59,69,5358,5360,1,8848,113,117,97,108,59,1,8850,110,105,111,110,59,1,8852,99,114,59,3,55349,56494,97,114,59,1,8902,4,4,98,99,109,112,5395,5420,5475,5478,4,2,59,115,5401,5403,1,8912,101,116,4,2,59,69,5411,5413,1,8912,113,117,97,108,59,1,8838,4,2,99,104,5426,5468,101,101,100,115,4,4,59,69,83,84,5440,5442,5449,5461,1,8827,113,117,97,108,59,1,10928,108,97,110,116,69,113,117,97,108,59,1,8829,105,108,100,101,59,1,8831,84,104,97,116,59,1,8715,59,1,8721,4,3,59,101,115,5486,5488,5507,1,8913,114,115,101,116,4,2,59,69,5498,5500,1,8835,113,117,97,108,59,1,8839,101,116,59,1,8913,4,11,72,82,83,97,99,102,104,105,111,114,115,5536,5546,5552,5567,5579,5602,5607,5655,5695,5701,5711,79,82,78,5,222,1,59,5544,1,222,65,68,69,59,1,8482,4,2,72,99,5558,5563,99,121,59,1,1035,121,59,1,1062,4,2,98,117,5573,5576,59,1,9,59,1,932,4,3,97,101,121,5587,5593,5599,114,111,110,59,1,356,100,105,108,59,1,354,59,1,1058,114,59,3,55349,56599,4,2,101,105,5613,5631,4,2,114,116,5619,5627,101,102,111,114,101,59,1,8756,97,59,1,920,4,2,99,110,5637,5647,107,83,112,97,99,101,59,3,8287,8202,83,112,97,99,101,59,1,8201,108,100,101,4,4,59,69,70,84,5668,5670,5677,5688,1,8764,113,117,97,108,59,1,8771,117,108,108,69,113,117,97,108,59,1,8773,105,108,100,101,59,1,8776,112,102,59,3,55349,56651,105,112,108,101,68,111,116,59,1,8411,4,2,99,116,5717,5722,114,59,3,55349,56495,114,111,107,59,1,358,4,14,97,98,99,100,102,103,109,110,111,112,114,115,116,117,5758,5789,5805,5823,5830,5835,5846,5852,5921,5937,6089,6095,6101,6108,4,2,99,114,5764,5774,117,116,101,5,218,1,59,5772,1,218,114,4,2,59,111,5781,5783,1,8607,99,105,114,59,1,10569,114,4,2,99,101,5796,5800,121,59,1,1038,118,101,59,1,364,4,2,105,121,5811,5820,114,99,5,219,1,59,5818,1,219,59,1,1059,98,108,97,99,59,1,368,114,59,3,55349,56600,114,97,118,101,5,217,1,59,5844,1,217,97,99,114,59,1,362,4,2,100,105,5858,5905,101,114,4,2,66,80,5866,5892,4,2,97,114,5872,5876,114,59,1,95,97,99,4,2,101,107,5884,5887,59,1,9183,101,116,59,1,9141,97,114,101,110,116,104,101,115,105,115,59,1,9181,111,110,4,2,59,80,5913,5915,1,8899,108,117,115,59,1,8846,4,2,103,112,5927,5932,111,110,59,1,370,102,59,3,55349,56652,4,8,65,68,69,84,97,100,112,115,5955,5985,5996,6009,6026,6033,6044,6075,114,114,111,119,4,3,59,66,68,5967,5969,5974,1,8593,97,114,59,1,10514,111,119,110,65,114,114,111,119,59,1,8645,111,119,110,65,114,114,111,119,59,1,8597,113,117,105,108,105,98,114,105,117,109,59,1,10606,101,101,4,2,59,65,6017,6019,1,8869,114,114,111,119,59,1,8613,114,114,111,119,59,1,8657,111,119,110,97,114,114,111,119,59,1,8661,101,114,4,2,76,82,6052,6063,101,102,116,65,114,114,111,119,59,1,8598,105,103,104,116,65,114,114,111,119,59,1,8599,105,4,2,59,108,6082,6084,1,978,111,110,59,1,933,105,110,103,59,1,366,99,114,59,3,55349,56496,105,108,100,101,59,1,360,109,108,5,220,1,59,6115,1,220,4,9,68,98,99,100,101,102,111,115,118,6137,6143,6148,6152,6166,6250,6255,6261,6267,97,115,104,59,1,8875,97,114,59,1,10987,121,59,1,1042,97,115,104,4,2,59,108,6161,6163,1,8873,59,1,10982,4,2,101,114,6172,6175,59,1,8897,4,3,98,116,121,6183,6188,6238,97,114,59,1,8214,4,2,59,105,6194,6196,1,8214,99,97,108,4,4,66,76,83,84,6209,6214,6220,6231,97,114,59,1,8739,105,110,101,59,1,124,101,112,97,114,97,116,111,114,59,1,10072,105,108,100,101,59,1,8768,84,104,105,110,83,112,97,99,101,59,1,8202,114,59,3,55349,56601,112,102,59,3,55349,56653,99,114,59,3,55349,56497,100,97,115,104,59,1,8874,4,5,99,101,102,111,115,6286,6292,6298,6303,6309,105,114,99,59,1,372,100,103,101,59,1,8896,114,59,3,55349,56602,112,102,59,3,55349,56654,99,114,59,3,55349,56498,4,4,102,105,111,115,6325,6330,6333,6339,114,59,3,55349,56603,59,1,926,112,102,59,3,55349,56655,99,114,59,3,55349,56499,4,9,65,73,85,97,99,102,111,115,117,6365,6370,6375,6380,6391,6405,6410,6416,6422,99,121,59,1,1071,99,121,59,1,1031,99,121,59,1,1070,99,117,116,101,5,221,1,59,6389,1,221,4,2,105,121,6397,6402,114,99,59,1,374,59,1,1067,114,59,3,55349,56604,112,102,59,3,55349,56656,99,114,59,3,55349,56500,109,108,59,1,376,4,8,72,97,99,100,101,102,111,115,6445,6450,6457,6472,6477,6501,6505,6510,99,121,59,1,1046,99,117,116,101,59,1,377,4,2,97,121,6463,6469,114,111,110,59,1,381,59,1,1047,111,116,59,1,379,4,2,114,116,6483,6497,111,87,105,100,116,104,83,112,97,99,101,59,1,8203,97,59,1,918,114,59,1,8488,112,102,59,1,8484,99,114,59,3,55349,56501,4,16,97,98,99,101,102,103,108,109,110,111,112,114,115,116,117,119,6550,6561,6568,6612,6622,6634,6645,6672,6699,6854,6870,6923,6933,6963,6974,6983,99,117,116,101,5,225,1,59,6559,1,225,114,101,118,101,59,1,259,4,6,59,69,100,105,117,121,6582,6584,6588,6591,6600,6609,1,8766,59,3,8766,819,59,1,8767,114,99,5,226,1,59,6598,1,226,116,101,5,180,1,59,6607,1,180,59,1,1072,108,105,103,5,230,1,59,6620,1,230,4,2,59,114,6628,6630,1,8289,59,3,55349,56606,114,97,118,101,5,224,1,59,6643,1,224,4,2,101,112,6651,6667,4,2,102,112,6657,6663,115,121,109,59,1,8501,104,59,1,8501,104,97,59,1,945,4,2,97,112,6678,6692,4,2,99,108,6684,6688,114,59,1,257,103,59,1,10815,5,38,1,59,6697,1,38,4,2,100,103,6705,6737,4,5,59,97,100,115,118,6717,6719,6724,6727,6734,1,8743,110,100,59,1,10837,59,1,10844,108,111,112,101,59,1,10840,59,1,10842,4,7,59,101,108,109,114,115,122,6753,6755,6758,6762,6814,6835,6848,1,8736,59,1,10660,101,59,1,8736,115,100,4,2,59,97,6770,6772,1,8737,4,8,97,98,99,100,101,102,103,104,6790,6793,6796,6799,6802,6805,6808,6811,59,1,10664,59,1,10665,59,1,10666,59,1,10667,59,1,10668,59,1,10669,59,1,10670,59,1,10671,116,4,2,59,118,6821,6823,1,8735,98,4,2,59,100,6830,6832,1,8894,59,1,10653,4,2,112,116,6841,6845,104,59,1,8738,59,1,197,97,114,114,59,1,9084,4,2,103,112,6860,6865,111,110,59,1,261,102,59,3,55349,56658,4,7,59,69,97,101,105,111,112,6886,6888,6891,6897,6900,6904,6908,1,8776,59,1,10864,99,105,114,59,1,10863,59,1,8778,100,59,1,8779,115,59,1,39,114,111,120,4,2,59,101,6917,6919,1,8776,113,59,1,8778,105,110,103,5,229,1,59,6931,1,229,4,3,99,116,121,6941,6946,6949,114,59,3,55349,56502,59,1,42,109,112,4,2,59,101,6957,6959,1,8776,113,59,1,8781,105,108,100,101,5,227,1,59,6972,1,227,109,108,5,228,1,59,6981,1,228,4,2,99,105,6989,6997,111,110,105,110,116,59,1,8755,110,116,59,1,10769,4,16,78,97,98,99,100,101,102,105,107,108,110,111,112,114,115,117,7036,7041,7119,7135,7149,7155,7219,7224,7347,7354,7463,7489,7786,7793,7814,7866,111,116,59,1,10989,4,2,99,114,7047,7094,107,4,4,99,101,112,115,7058,7064,7073,7080,111,110,103,59,1,8780,112,115,105,108,111,110,59,1,1014,114,105,109,101,59,1,8245,105,109,4,2,59,101,7088,7090,1,8765,113,59,1,8909,4,2,118,119,7100,7105,101,101,59,1,8893,101,100,4,2,59,103,7113,7115,1,8965,101,59,1,8965,114,107,4,2,59,116,7127,7129,1,9141,98,114,107,59,1,9142,4,2,111,121,7141,7146,110,103,59,1,8780,59,1,1073,113,117,111,59,1,8222,4,5,99,109,112,114,116,7167,7181,7188,7193,7199,97,117,115,4,2,59,101,7176,7178,1,8757,59,1,8757,112,116,121,118,59,1,10672,115,105,59,1,1014,110,111,117,59,1,8492,4,3,97,104,119,7207,7210,7213,59,1,946,59,1,8502,101,101,110,59,1,8812,114,59,3,55349,56607,103,4,7,99,111,115,116,117,118,119,7241,7262,7288,7305,7328,7335,7340,4,3,97,105,117,7249,7253,7258,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,4,3,100,112,116,7270,7275,7281,111,116,59,1,10752,108,117,115,59,1,10753,105,109,101,115,59,1,10754,4,2,113,116,7294,7300,99,117,112,59,1,10758,97,114,59,1,9733,114,105,97,110,103,108,101,4,2,100,117,7318,7324,111,119,110,59,1,9661,112,59,1,9651,112,108,117,115,59,1,10756,101,101,59,1,8897,101,100,103,101,59,1,8896,97,114,111,119,59,1,10509,4,3,97,107,111,7362,7436,7458,4,2,99,110,7368,7432,107,4,3,108,115,116,7377,7386,7394,111,122,101,110,103,101,59,1,10731,113,117,97,114,101,59,1,9642,114,105,97,110,103,108,101,4,4,59,100,108,114,7411,7413,7419,7425,1,9652,111,119,110,59,1,9662,101,102,116,59,1,9666,105,103,104,116,59,1,9656,107,59,1,9251,4,2,49,51,7442,7454,4,2,50,52,7448,7451,59,1,9618,59,1,9617,52,59,1,9619,99,107,59,1,9608,4,2,101,111,7469,7485,4,2,59,113,7475,7478,3,61,8421,117,105,118,59,3,8801,8421,116,59,1,8976,4,4,112,116,119,120,7499,7504,7517,7523,102,59,3,55349,56659,4,2,59,116,7510,7512,1,8869,111,109,59,1,8869,116,105,101,59,1,8904,4,12,68,72,85,86,98,100,104,109,112,116,117,118,7549,7571,7597,7619,7655,7660,7682,7708,7715,7721,7728,7750,4,4,76,82,108,114,7559,7562,7565,7568,59,1,9559,59,1,9556,59,1,9558,59,1,9555,4,5,59,68,85,100,117,7583,7585,7588,7591,7594,1,9552,59,1,9574,59,1,9577,59,1,9572,59,1,9575,4,4,76,82,108,114,7607,7610,7613,7616,59,1,9565,59,1,9562,59,1,9564,59,1,9561,4,7,59,72,76,82,104,108,114,7635,7637,7640,7643,7646,7649,7652,1,9553,59,1,9580,59,1,9571,59,1,9568,59,1,9579,59,1,9570,59,1,9567,111,120,59,1,10697,4,4,76,82,108,114,7670,7673,7676,7679,59,1,9557,59,1,9554,59,1,9488,59,1,9484,4,5,59,68,85,100,117,7694,7696,7699,7702,7705,1,9472,59,1,9573,59,1,9576,59,1,9516,59,1,9524,105,110,117,115,59,1,8863,108,117,115,59,1,8862,105,109,101,115,59,1,8864,4,4,76,82,108,114,7738,7741,7744,7747,59,1,9563,59,1,9560,59,1,9496,59,1,9492,4,7,59,72,76,82,104,108,114,7766,7768,7771,7774,7777,7780,7783,1,9474,59,1,9578,59,1,9569,59,1,9566,59,1,9532,59,1,9508,59,1,9500,114,105,109,101,59,1,8245,4,2,101,118,7799,7804,118,101,59,1,728,98,97,114,5,166,1,59,7812,1,166,4,4,99,101,105,111,7824,7829,7834,7846,114,59,3,55349,56503,109,105,59,1,8271,109,4,2,59,101,7841,7843,1,8765,59,1,8909,108,4,3,59,98,104,7855,7857,7860,1,92,59,1,10693,115,117,98,59,1,10184,4,2,108,109,7872,7885,108,4,2,59,101,7879,7881,1,8226,116,59,1,8226,112,4,3,59,69,101,7894,7896,7899,1,8782,59,1,10926,4,2,59,113,7905,7907,1,8783,59,1,8783,4,15,97,99,100,101,102,104,105,108,111,114,115,116,117,119,121,7942,8021,8075,8080,8121,8126,8157,8279,8295,8430,8446,8485,8491,8707,8726,4,3,99,112,114,7950,7956,8007,117,116,101,59,1,263,4,6,59,97,98,99,100,115,7970,7972,7977,7984,7998,8003,1,8745,110,100,59,1,10820,114,99,117,112,59,1,10825,4,2,97,117,7990,7994,112,59,1,10827,112,59,1,10823,111,116,59,1,10816,59,3,8745,65024,4,2,101,111,8013,8017,116,59,1,8257,110,59,1,711,4,4,97,101,105,117,8031,8046,8056,8061,4,2,112,114,8037,8041,115,59,1,10829,111,110,59,1,269,100,105,108,5,231,1,59,8054,1,231,114,99,59,1,265,112,115,4,2,59,115,8069,8071,1,10828,109,59,1,10832,111,116,59,1,267,4,3,100,109,110,8088,8097,8104,105,108,5,184,1,59,8095,1,184,112,116,121,118,59,1,10674,116,5,162,2,59,101,8112,8114,1,162,114,100,111,116,59,1,183,114,59,3,55349,56608,4,3,99,101,105,8134,8138,8154,121,59,1,1095,99,107,4,2,59,109,8146,8148,1,10003,97,114,107,59,1,10003,59,1,967,114,4,7,59,69,99,101,102,109,115,8174,8176,8179,8258,8261,8268,8273,1,9675,59,1,10691,4,3,59,101,108,8187,8189,8193,1,710,113,59,1,8791,101,4,2,97,100,8200,8223,114,114,111,119,4,2,108,114,8210,8216,101,102,116,59,1,8634,105,103,104,116,59,1,8635,4,5,82,83,97,99,100,8235,8238,8241,8246,8252,59,1,174,59,1,9416,115,116,59,1,8859,105,114,99,59,1,8858,97,115,104,59,1,8861,59,1,8791,110,105,110,116,59,1,10768,105,100,59,1,10991,99,105,114,59,1,10690,117,98,115,4,2,59,117,8288,8290,1,9827,105,116,59,1,9827,4,4,108,109,110,112,8305,8326,8376,8400,111,110,4,2,59,101,8313,8315,1,58,4,2,59,113,8321,8323,1,8788,59,1,8788,4,2,109,112,8332,8344,97,4,2,59,116,8339,8341,1,44,59,1,64,4,3,59,102,108,8352,8354,8358,1,8705,110,59,1,8728,101,4,2,109,120,8365,8371,101,110,116,59,1,8705,101,115,59,1,8450,4,2,103,105,8382,8395,4,2,59,100,8388,8390,1,8773,111,116,59,1,10861,110,116,59,1,8750,4,3,102,114,121,8408,8412,8417,59,3,55349,56660,111,100,59,1,8720,5,169,2,59,115,8424,8426,1,169,114,59,1,8471,4,2,97,111,8436,8441,114,114,59,1,8629,115,115,59,1,10007,4,2,99,117,8452,8457,114,59,3,55349,56504,4,2,98,112,8463,8474,4,2,59,101,8469,8471,1,10959,59,1,10961,4,2,59,101,8480,8482,1,10960,59,1,10962,100,111,116,59,1,8943,4,7,100,101,108,112,114,118,119,8507,8522,8536,8550,8600,8697,8702,97,114,114,4,2,108,114,8516,8519,59,1,10552,59,1,10549,4,2,112,115,8528,8532,114,59,1,8926,99,59,1,8927,97,114,114,4,2,59,112,8545,8547,1,8630,59,1,10557,4,6,59,98,99,100,111,115,8564,8566,8573,8587,8592,8596,1,8746,114,99,97,112,59,1,10824,4,2,97,117,8579,8583,112,59,1,10822,112,59,1,10826,111,116,59,1,8845,114,59,1,10821,59,3,8746,65024,4,4,97,108,114,118,8610,8623,8663,8672,114,114,4,2,59,109,8618,8620,1,8631,59,1,10556,121,4,3,101,118,119,8632,8651,8656,113,4,2,112,115,8639,8645,114,101,99,59,1,8926,117,99,99,59,1,8927,101,101,59,1,8910,101,100,103,101,59,1,8911,101,110,5,164,1,59,8670,1,164,101,97,114,114,111,119,4,2,108,114,8684,8690,101,102,116,59,1,8630,105,103,104,116,59,1,8631,101,101,59,1,8910,101,100,59,1,8911,4,2,99,105,8713,8721,111,110,105,110,116,59,1,8754,110,116,59,1,8753,108,99,116,121,59,1,9005,4,19,65,72,97,98,99,100,101,102,104,105,106,108,111,114,115,116,117,119,122,8773,8778,8783,8821,8839,8854,8887,8914,8930,8944,9036,9041,9058,9197,9227,9258,9281,9297,9305,114,114,59,1,8659,97,114,59,1,10597,4,4,103,108,114,115,8793,8799,8805,8809,103,101,114,59,1,8224,101,116,104,59,1,8504,114,59,1,8595,104,4,2,59,118,8816,8818,1,8208,59,1,8867,4,2,107,108,8827,8834,97,114,111,119,59,1,10511,97,99,59,1,733,4,2,97,121,8845,8851,114,111,110,59,1,271,59,1,1076,4,3,59,97,111,8862,8864,8880,1,8518,4,2,103,114,8870,8876,103,101,114,59,1,8225,114,59,1,8650,116,115,101,113,59,1,10871,4,3,103,108,109,8895,8902,8907,5,176,1,59,8900,1,176,116,97,59,1,948,112,116,121,118,59,1,10673,4,2,105,114,8920,8926,115,104,116,59,1,10623,59,3,55349,56609,97,114,4,2,108,114,8938,8941,59,1,8643,59,1,8642,4,5,97,101,103,115,118,8956,8986,8989,8996,9001,109,4,3,59,111,115,8965,8967,8983,1,8900,110,100,4,2,59,115,8975,8977,1,8900,117,105,116,59,1,9830,59,1,9830,59,1,168,97,109,109,97,59,1,989,105,110,59,1,8946,4,3,59,105,111,9009,9011,9031,1,247,100,101,5,247,2,59,111,9020,9022,1,247,110,116,105,109,101,115,59,1,8903,110,120,59,1,8903,99,121,59,1,1106,99,4,2,111,114,9048,9053,114,110,59,1,8990,111,112,59,1,8973,4,5,108,112,116,117,119,9070,9076,9081,9130,9144,108,97,114,59,1,36,102,59,3,55349,56661,4,5,59,101,109,112,115,9093,9095,9109,9116,9122,1,729,113,4,2,59,100,9102,9104,1,8784,111,116,59,1,8785,105,110,117,115,59,1,8760,108,117,115,59,1,8724,113,117,97,114,101,59,1,8865,98,108,101,98,97,114,119,101,100,103,101,59,1,8966,110,4,3,97,100,104,9153,9160,9172,114,114,111,119,59,1,8595,111,119,110,97,114,114,111,119,115,59,1,8650,97,114,112,111,111,110,4,2,108,114,9184,9190,101,102,116,59,1,8643,105,103,104,116,59,1,8642,4,2,98,99,9203,9211,107,97,114,111,119,59,1,10512,4,2,111,114,9217,9222,114,110,59,1,8991,111,112,59,1,8972,4,3,99,111,116,9235,9248,9252,4,2,114,121,9241,9245,59,3,55349,56505,59,1,1109,108,59,1,10742,114,111,107,59,1,273,4,2,100,114,9264,9269,111,116,59,1,8945,105,4,2,59,102,9276,9278,1,9663,59,1,9662,4,2,97,104,9287,9292,114,114,59,1,8693,97,114,59,1,10607,97,110,103,108,101,59,1,10662,4,2,99,105,9311,9315,121,59,1,1119,103,114,97,114,114,59,1,10239,4,18,68,97,99,100,101,102,103,108,109,110,111,112,113,114,115,116,117,120,9361,9376,9398,9439,9444,9447,9462,9495,9531,9585,9598,9614,9659,9755,9771,9792,9808,9826,4,2,68,111,9367,9372,111,116,59,1,10871,116,59,1,8785,4,2,99,115,9382,9392,117,116,101,5,233,1,59,9390,1,233,116,101,114,59,1,10862,4,4,97,105,111,121,9408,9414,9430,9436,114,111,110,59,1,283,114,4,2,59,99,9421,9423,1,8790,5,234,1,59,9428,1,234,108,111,110,59,1,8789,59,1,1101,111,116,59,1,279,59,1,8519,4,2,68,114,9453,9458,111,116,59,1,8786,59,3,55349,56610,4,3,59,114,115,9470,9472,9482,1,10906,97,118,101,5,232,1,59,9480,1,232,4,2,59,100,9488,9490,1,10902,111,116,59,1,10904,4,4,59,105,108,115,9505,9507,9515,9518,1,10905,110,116,101,114,115,59,1,9191,59,1,8467,4,2,59,100,9524,9526,1,10901,111,116,59,1,10903,4,3,97,112,115,9539,9544,9564,99,114,59,1,275,116,121,4,3,59,115,118,9554,9556,9561,1,8709,101,116,59,1,8709,59,1,8709,112,4,2,49,59,9571,9583,4,2,51,52,9577,9580,59,1,8196,59,1,8197,1,8195,4,2,103,115,9591,9594,59,1,331,112,59,1,8194,4,2,103,112,9604,9609,111,110,59,1,281,102,59,3,55349,56662,4,3,97,108,115,9622,9635,9640,114,4,2,59,115,9629,9631,1,8917,108,59,1,10723,117,115,59,1,10865,105,4,3,59,108,118,9649,9651,9656,1,949,111,110,59,1,949,59,1,1013,4,4,99,115,117,118,9669,9686,9716,9747,4,2,105,111,9675,9680,114,99,59,1,8790,108,111,110,59,1,8789,4,2,105,108,9692,9696,109,59,1,8770,97,110,116,4,2,103,108,9705,9710,116,114,59,1,10902,101,115,115,59,1,10901,4,3,97,101,105,9724,9729,9734,108,115,59,1,61,115,116,59,1,8799,118,4,2,59,68,9741,9743,1,8801,68,59,1,10872,112,97,114,115,108,59,1,10725,4,2,68,97,9761,9766,111,116,59,1,8787,114,114,59,1,10609,4,3,99,100,105,9779,9783,9788,114,59,1,8495,111,116,59,1,8784,109,59,1,8770,4,2,97,104,9798,9801,59,1,951,5,240,1,59,9806,1,240,4,2,109,114,9814,9822,108,5,235,1,59,9820,1,235,111,59,1,8364,4,3,99,105,112,9834,9838,9843,108,59,1,33,115,116,59,1,8707,4,2,101,111,9849,9859,99,116,97,116,105,111,110,59,1,8496,110,101,110,116,105,97,108,101,59,1,8519,4,12,97,99,101,102,105,106,108,110,111,112,114,115,9896,9910,9914,9921,9954,9960,9967,9989,9994,10027,10036,10164,108,108,105,110,103,100,111,116,115,101,113,59,1,8786,121,59,1,1092,109,97,108,101,59,1,9792,4,3,105,108,114,9929,9935,9950,108,105,103,59,1,64259,4,2,105,108,9941,9945,103,59,1,64256,105,103,59,1,64260,59,3,55349,56611,108,105,103,59,1,64257,108,105,103,59,3,102,106,4,3,97,108,116,9975,9979,9984,116,59,1,9837,105,103,59,1,64258,110,115,59,1,9649,111,102,59,1,402,4,2,112,114,10000,10005,102,59,3,55349,56663,4,2,97,107,10011,10016,108,108,59,1,8704,4,2,59,118,10022,10024,1,8916,59,1,10969,97,114,116,105,110,116,59,1,10765,4,2,97,111,10042,10159,4,2,99,115,10048,10155,4,6,49,50,51,52,53,55,10062,10102,10114,10135,10139,10151,4,6,50,51,52,53,54,56,10076,10083,10086,10093,10096,10099,5,189,1,59,10081,1,189,59,1,8531,5,188,1,59,10091,1,188,59,1,8533,59,1,8537,59,1,8539,4,2,51,53,10108,10111,59,1,8532,59,1,8534,4,3,52,53,56,10122,10129,10132,5,190,1,59,10127,1,190,59,1,8535,59,1,8540,53,59,1,8536,4,2,54,56,10145,10148,59,1,8538,59,1,8541,56,59,1,8542,108,59,1,8260,119,110,59,1,8994,99,114,59,3,55349,56507,4,17,69,97,98,99,100,101,102,103,105,106,108,110,111,114,115,116,118,10206,10217,10247,10254,10268,10273,10358,10363,10374,10380,10385,10406,10458,10464,10470,10497,10610,4,2,59,108,10212,10214,1,8807,59,1,10892,4,3,99,109,112,10225,10231,10244,117,116,101,59,1,501,109,97,4,2,59,100,10239,10241,1,947,59,1,989,59,1,10886,114,101,118,101,59,1,287,4,2,105,121,10260,10265,114,99,59,1,285,59,1,1075,111,116,59,1,289,4,4,59,108,113,115,10283,10285,10288,10308,1,8805,59,1,8923,4,3,59,113,115,10296,10298,10301,1,8805,59,1,8807,108,97,110,116,59,1,10878,4,4,59,99,100,108,10318,10320,10324,10345,1,10878,99,59,1,10921,111,116,4,2,59,111,10332,10334,1,10880,4,2,59,108,10340,10342,1,10882,59,1,10884,4,2,59,101,10351,10354,3,8923,65024,115,59,1,10900,114,59,3,55349,56612,4,2,59,103,10369,10371,1,8811,59,1,8921,109,101,108,59,1,8503,99,121,59,1,1107,4,4,59,69,97,106,10395,10397,10400,10403,1,8823,59,1,10898,59,1,10917,59,1,10916,4,4,69,97,101,115,10416,10419,10434,10453,59,1,8809,112,4,2,59,112,10426,10428,1,10890,114,111,120,59,1,10890,4,2,59,113,10440,10442,1,10888,4,2,59,113,10448,10450,1,10888,59,1,8809,105,109,59,1,8935,112,102,59,3,55349,56664,97,118,101,59,1,96,4,2,99,105,10476,10480,114,59,1,8458,109,4,3,59,101,108,10489,10491,10494,1,8819,59,1,10894,59,1,10896,5,62,6,59,99,100,108,113,114,10512,10514,10527,10532,10538,10545,1,62,4,2,99,105,10520,10523,59,1,10919,114,59,1,10874,111,116,59,1,8919,80,97,114,59,1,10645,117,101,115,116,59,1,10876,4,5,97,100,101,108,115,10557,10574,10579,10599,10605,4,2,112,114,10563,10570,112,114,111,120,59,1,10886,114,59,1,10616,111,116,59,1,8919,113,4,2,108,113,10586,10592,101,115,115,59,1,8923,108,101,115,115,59,1,10892,101,115,115,59,1,8823,105,109,59,1,8819,4,2,101,110,10616,10626,114,116,110,101,113,113,59,3,8809,65024,69,59,3,8809,65024,4,10,65,97,98,99,101,102,107,111,115,121,10653,10658,10713,10718,10724,10760,10765,10786,10850,10875,114,114,59,1,8660,4,4,105,108,109,114,10668,10674,10678,10684,114,115,112,59,1,8202,102,59,1,189,105,108,116,59,1,8459,4,2,100,114,10690,10695,99,121,59,1,1098,4,3,59,99,119,10703,10705,10710,1,8596,105,114,59,1,10568,59,1,8621,97,114,59,1,8463,105,114,99,59,1,293,4,3,97,108,114,10732,10748,10754,114,116,115,4,2,59,117,10741,10743,1,9829,105,116,59,1,9829,108,105,112,59,1,8230,99,111,110,59,1,8889,114,59,3,55349,56613,115,4,2,101,119,10772,10779,97,114,111,119,59,1,10533,97,114,111,119,59,1,10534,4,5,97,109,111,112,114,10798,10803,10809,10839,10844,114,114,59,1,8703,116,104,116,59,1,8763,107,4,2,108,114,10816,10827,101,102,116,97,114,114,111,119,59,1,8617,105,103,104,116,97,114,114,111,119,59,1,8618,102,59,3,55349,56665,98,97,114,59,1,8213,4,3,99,108,116,10858,10863,10869,114,59,3,55349,56509,97,115,104,59,1,8463,114,111,107,59,1,295,4,2,98,112,10881,10887,117,108,108,59,1,8259,104,101,110,59,1,8208,4,15,97,99,101,102,103,105,106,109,110,111,112,113,115,116,117,10925,10936,10958,10977,10990,11001,11039,11045,11101,11192,11220,11226,11237,11285,11299,99,117,116,101,5,237,1,59,10934,1,237,4,3,59,105,121,10944,10946,10955,1,8291,114,99,5,238,1,59,10953,1,238,59,1,1080,4,2,99,120,10964,10968,121,59,1,1077,99,108,5,161,1,59,10975,1,161,4,2,102,114,10983,10986,59,1,8660,59,3,55349,56614,114,97,118,101,5,236,1,59,10999,1,236,4,4,59,105,110,111,11011,11013,11028,11034,1,8520,4,2,105,110,11019,11024,110,116,59,1,10764,116,59,1,8749,102,105,110,59,1,10716,116,97,59,1,8489,108,105,103,59,1,307,4,3,97,111,112,11053,11092,11096,4,3,99,103,116,11061,11065,11088,114,59,1,299,4,3,101,108,112,11073,11076,11082,59,1,8465,105,110,101,59,1,8464,97,114,116,59,1,8465,104,59,1,305,102,59,1,8887,101,100,59,1,437,4,5,59,99,102,111,116,11113,11115,11121,11136,11142,1,8712,97,114,101,59,1,8453,105,110,4,2,59,116,11129,11131,1,8734,105,101,59,1,10717,100,111,116,59,1,305,4,5,59,99,101,108,112,11154,11156,11161,11179,11186,1,8747,97,108,59,1,8890,4,2,103,114,11167,11173,101,114,115,59,1,8484,99,97,108,59,1,8890,97,114,104,107,59,1,10775,114,111,100,59,1,10812,4,4,99,103,112,116,11202,11206,11211,11216,121,59,1,1105,111,110,59,1,303,102,59,3,55349,56666,97,59,1,953,114,111,100,59,1,10812,117,101,115,116,5,191,1,59,11235,1,191,4,2,99,105,11243,11248,114,59,3,55349,56510,110,4,5,59,69,100,115,118,11261,11263,11266,11271,11282,1,8712,59,1,8953,111,116,59,1,8949,4,2,59,118,11277,11279,1,8948,59,1,8947,59,1,8712,4,2,59,105,11291,11293,1,8290,108,100,101,59,1,297,4,2,107,109,11305,11310,99,121,59,1,1110,108,5,239,1,59,11316,1,239,4,6,99,102,109,111,115,117,11332,11346,11351,11357,11363,11380,4,2,105,121,11338,11343,114,99,59,1,309,59,1,1081,114,59,3,55349,56615,97,116,104,59,1,567,112,102,59,3,55349,56667,4,2,99,101,11369,11374,114,59,3,55349,56511,114,99,121,59,1,1112,107,99,121,59,1,1108,4,8,97,99,102,103,104,106,111,115,11404,11418,11433,11438,11445,11450,11455,11461,112,112,97,4,2,59,118,11413,11415,1,954,59,1,1008,4,2,101,121,11424,11430,100,105,108,59,1,311,59,1,1082,114,59,3,55349,56616,114,101,101,110,59,1,312,99,121,59,1,1093,99,121,59,1,1116,112,102,59,3,55349,56668,99,114,59,3,55349,56512,4,23,65,66,69,72,97,98,99,100,101,102,103,104,106,108,109,110,111,112,114,115,116,117,118,11515,11538,11544,11555,11560,11721,11780,11818,11868,12136,12160,12171,12203,12208,12246,12275,12327,12509,12523,12569,12641,12732,12752,4,3,97,114,116,11523,11528,11532,114,114,59,1,8666,114,59,1,8656,97,105,108,59,1,10523,97,114,114,59,1,10510,4,2,59,103,11550,11552,1,8806,59,1,10891,97,114,59,1,10594,4,9,99,101,103,109,110,112,113,114,116,11580,11586,11594,11600,11606,11624,11627,11636,11694,117,116,101,59,1,314,109,112,116,121,118,59,1,10676,114,97,110,59,1,8466,98,100,97,59,1,955,103,4,3,59,100,108,11615,11617,11620,1,10216,59,1,10641,101,59,1,10216,59,1,10885,117,111,5,171,1,59,11634,1,171,114,4,8,59,98,102,104,108,112,115,116,11655,11657,11669,11673,11677,11681,11685,11690,1,8592,4,2,59,102,11663,11665,1,8676,115,59,1,10527,115,59,1,10525,107,59,1,8617,112,59,1,8619,108,59,1,10553,105,109,59,1,10611,108,59,1,8610,4,3,59,97,101,11702,11704,11709,1,10923,105,108,59,1,10521,4,2,59,115,11715,11717,1,10925,59,3,10925,65024,4,3,97,98,114,11729,11734,11739,114,114,59,1,10508,114,107,59,1,10098,4,2,97,107,11745,11758,99,4,2,101,107,11752,11755,59,1,123,59,1,91,4,2,101,115,11764,11767,59,1,10635,108,4,2,100,117,11774,11777,59,1,10639,59,1,10637,4,4,97,101,117,121,11790,11796,11811,11815,114,111,110,59,1,318,4,2,100,105,11802,11807,105,108,59,1,316,108,59,1,8968,98,59,1,123,59,1,1083,4,4,99,113,114,115,11828,11832,11845,11864,97,59,1,10550,117,111,4,2,59,114,11840,11842,1,8220,59,1,8222,4,2,100,117,11851,11857,104,97,114,59,1,10599,115,104,97,114,59,1,10571,104,59,1,8626,4,5,59,102,103,113,115,11880,11882,12008,12011,12031,1,8804,116,4,5,97,104,108,114,116,11895,11913,11935,11947,11996,114,114,111,119,4,2,59,116,11905,11907,1,8592,97,105,108,59,1,8610,97,114,112,111,111,110,4,2,100,117,11925,11931,111,119,110,59,1,8637,112,59,1,8636,101,102,116,97,114,114,111,119,115,59,1,8647,105,103,104,116,4,3,97,104,115,11959,11974,11984,114,114,111,119,4,2,59,115,11969,11971,1,8596,59,1,8646,97,114,112,111,111,110,115,59,1,8651,113,117,105,103,97,114,114,111,119,59,1,8621,104,114,101,101,116,105,109,101,115,59,1,8907,59,1,8922,4,3,59,113,115,12019,12021,12024,1,8804,59,1,8806,108,97,110,116,59,1,10877,4,5,59,99,100,103,115,12043,12045,12049,12070,12083,1,10877,99,59,1,10920,111,116,4,2,59,111,12057,12059,1,10879,4,2,59,114,12065,12067,1,10881,59,1,10883,4,2,59,101,12076,12079,3,8922,65024,115,59,1,10899,4,5,97,100,101,103,115,12095,12103,12108,12126,12131,112,112,114,111,120,59,1,10885,111,116,59,1,8918,113,4,2,103,113,12115,12120,116,114,59,1,8922,103,116,114,59,1,10891,116,114,59,1,8822,105,109,59,1,8818,4,3,105,108,114,12144,12150,12156,115,104,116,59,1,10620,111,111,114,59,1,8970,59,3,55349,56617,4,2,59,69,12166,12168,1,8822,59,1,10897,4,2,97,98,12177,12198,114,4,2,100,117,12184,12187,59,1,8637,4,2,59,108,12193,12195,1,8636,59,1,10602,108,107,59,1,9604,99,121,59,1,1113,4,5,59,97,99,104,116,12220,12222,12227,12235,12241,1,8810,114,114,59,1,8647,111,114,110,101,114,59,1,8990,97,114,100,59,1,10603,114,105,59,1,9722,4,2,105,111,12252,12258,100,111,116,59,1,320,117,115,116,4,2,59,97,12267,12269,1,9136,99,104,101,59,1,9136,4,4,69,97,101,115,12285,12288,12303,12322,59,1,8808,112,4,2,59,112,12295,12297,1,10889,114,111,120,59,1,10889,4,2,59,113,12309,12311,1,10887,4,2,59,113,12317,12319,1,10887,59,1,8808,105,109,59,1,8934,4,8,97,98,110,111,112,116,119,122,12345,12359,12364,12421,12446,12467,12474,12490,4,2,110,114,12351,12355,103,59,1,10220,114,59,1,8701,114,107,59,1,10214,103,4,3,108,109,114,12373,12401,12409,101,102,116,4,2,97,114,12382,12389,114,114,111,119,59,1,10229,105,103,104,116,97,114,114,111,119,59,1,10231,97,112,115,116,111,59,1,10236,105,103,104,116,97,114,114,111,119,59,1,10230,112,97,114,114,111,119,4,2,108,114,12433,12439,101,102,116,59,1,8619,105,103,104,116,59,1,8620,4,3,97,102,108,12454,12458,12462,114,59,1,10629,59,3,55349,56669,117,115,59,1,10797,105,109,101,115,59,1,10804,4,2,97,98,12480,12485,115,116,59,1,8727,97,114,59,1,95,4,3,59,101,102,12498,12500,12506,1,9674,110,103,101,59,1,9674,59,1,10731,97,114,4,2,59,108,12517,12519,1,40,116,59,1,10643,4,5,97,99,104,109,116,12535,12540,12548,12561,12564,114,114,59,1,8646,111,114,110,101,114,59,1,8991,97,114,4,2,59,100,12556,12558,1,8651,59,1,10605,59,1,8206,114,105,59,1,8895,4,6,97,99,104,105,113,116,12583,12589,12594,12597,12614,12635,113,117,111,59,1,8249,114,59,3,55349,56513,59,1,8624,109,4,3,59,101,103,12606,12608,12611,1,8818,59,1,10893,59,1,10895,4,2,98,117,12620,12623,59,1,91,111,4,2,59,114,12630,12632,1,8216,59,1,8218,114,111,107,59,1,322,5,60,8,59,99,100,104,105,108,113,114,12660,12662,12675,12680,12686,12692,12698,12705,1,60,4,2,99,105,12668,12671,59,1,10918,114,59,1,10873,111,116,59,1,8918,114,101,101,59,1,8907,109,101,115,59,1,8905,97,114,114,59,1,10614,117,101,115,116,59,1,10875,4,2,80,105,12711,12716,97,114,59,1,10646,4,3,59,101,102,12724,12726,12729,1,9667,59,1,8884,59,1,9666,114,4,2,100,117,12739,12746,115,104,97,114,59,1,10570,104,97,114,59,1,10598,4,2,101,110,12758,12768,114,116,110,101,113,113,59,3,8808,65024,69,59,3,8808,65024,4,14,68,97,99,100,101,102,104,105,108,110,111,112,115,117,12803,12809,12893,12908,12914,12928,12933,12937,13011,13025,13032,13049,13052,13069,68,111,116,59,1,8762,4,4,99,108,112,114,12819,12827,12849,12887,114,5,175,1,59,12825,1,175,4,2,101,116,12833,12836,59,1,9794,4,2,59,101,12842,12844,1,10016,115,101,59,1,10016,4,2,59,115,12855,12857,1,8614,116,111,4,4,59,100,108,117,12869,12871,12877,12883,1,8614,111,119,110,59,1,8615,101,102,116,59,1,8612,112,59,1,8613,107,101,114,59,1,9646,4,2,111,121,12899,12905,109,109,97,59,1,10793,59,1,1084,97,115,104,59,1,8212,97,115,117,114,101,100,97,110,103,108,101,59,1,8737,114,59,3,55349,56618,111,59,1,8487,4,3,99,100,110,12945,12954,12985,114,111,5,181,1,59,12952,1,181,4,4,59,97,99,100,12964,12966,12971,12976,1,8739,115,116,59,1,42,105,114,59,1,10992,111,116,5,183,1,59,12983,1,183,117,115,4,3,59,98,100,12995,12997,13000,1,8722,59,1,8863,4,2,59,117,13006,13008,1,8760,59,1,10794,4,2,99,100,13017,13021,112,59,1,10971,114,59,1,8230,112,108,117,115,59,1,8723,4,2,100,112,13038,13044,101,108,115,59,1,8871,102,59,3,55349,56670,59,1,8723,4,2,99,116,13058,13063,114,59,3,55349,56514,112,111,115,59,1,8766,4,3,59,108,109,13077,13079,13087,1,956,116,105,109,97,112,59,1,8888,97,112,59,1,8888,4,24,71,76,82,86,97,98,99,100,101,102,103,104,105,106,108,109,111,112,114,115,116,117,118,119,13142,13165,13217,13229,13247,13330,13359,13414,13420,13508,13513,13579,13602,13626,13631,13762,13767,13855,13936,13995,14214,14285,14312,14432,4,2,103,116,13148,13152,59,3,8921,824,4,2,59,118,13158,13161,3,8811,8402,59,3,8811,824,4,3,101,108,116,13173,13200,13204,102,116,4,2,97,114,13181,13188,114,114,111,119,59,1,8653,105,103,104,116,97,114,114,111,119,59,1,8654,59,3,8920,824,4,2,59,118,13210,13213,3,8810,8402,59,3,8810,824,105,103,104,116,97,114,114,111,119,59,1,8655,4,2,68,100,13235,13241,97,115,104,59,1,8879,97,115,104,59,1,8878,4,5,98,99,110,112,116,13259,13264,13270,13275,13308,108,97,59,1,8711,117,116,101,59,1,324,103,59,3,8736,8402,4,5,59,69,105,111,112,13287,13289,13293,13298,13302,1,8777,59,3,10864,824,100,59,3,8779,824,115,59,1,329,114,111,120,59,1,8777,117,114,4,2,59,97,13316,13318,1,9838,108,4,2,59,115,13325,13327,1,9838,59,1,8469,4,2,115,117,13336,13344,112,5,160,1,59,13342,1,160,109,112,4,2,59,101,13352,13355,3,8782,824,59,3,8783,824,4,5,97,101,111,117,121,13371,13385,13391,13407,13411,4,2,112,114,13377,13380,59,1,10819,111,110,59,1,328,100,105,108,59,1,326,110,103,4,2,59,100,13399,13401,1,8775,111,116,59,3,10861,824,112,59,1,10818,59,1,1085,97,115,104,59,1,8211,4,7,59,65,97,100,113,115,120,13436,13438,13443,13466,13472,13478,13494,1,8800,114,114,59,1,8663,114,4,2,104,114,13450,13454,107,59,1,10532,4,2,59,111,13460,13462,1,8599,119,59,1,8599,111,116,59,3,8784,824,117,105,118,59,1,8802,4,2,101,105,13484,13489,97,114,59,1,10536,109,59,3,8770,824,105,115,116,4,2,59,115,13503,13505,1,8708,59,1,8708,114,59,3,55349,56619,4,4,69,101,115,116,13523,13527,13563,13568,59,3,8807,824,4,3,59,113,115,13535,13537,13559,1,8817,4,3,59,113,115,13545,13547,13551,1,8817,59,3,8807,824,108,97,110,116,59,3,10878,824,59,3,10878,824,105,109,59,1,8821,4,2,59,114,13574,13576,1,8815,59,1,8815,4,3,65,97,112,13587,13592,13597,114,114,59,1,8654,114,114,59,1,8622,97,114,59,1,10994,4,3,59,115,118,13610,13612,13623,1,8715,4,2,59,100,13618,13620,1,8956,59,1,8954,59,1,8715,99,121,59,1,1114,4,7,65,69,97,100,101,115,116,13647,13652,13656,13661,13665,13737,13742,114,114,59,1,8653,59,3,8806,824,114,114,59,1,8602,114,59,1,8229,4,4,59,102,113,115,13675,13677,13703,13725,1,8816,116,4,2,97,114,13684,13691,114,114,111,119,59,1,8602,105,103,104,116,97,114,114,111,119,59,1,8622,4,3,59,113,115,13711,13713,13717,1,8816,59,3,8806,824,108,97,110,116,59,3,10877,824,4,2,59,115,13731,13734,3,10877,824,59,1,8814,105,109,59,1,8820,4,2,59,114,13748,13750,1,8814,105,4,2,59,101,13757,13759,1,8938,59,1,8940,105,100,59,1,8740,4,2,112,116,13773,13778,102,59,3,55349,56671,5,172,3,59,105,110,13787,13789,13829,1,172,110,4,4,59,69,100,118,13800,13802,13806,13812,1,8713,59,3,8953,824,111,116,59,3,8949,824,4,3,97,98,99,13820,13823,13826,59,1,8713,59,1,8951,59,1,8950,105,4,2,59,118,13836,13838,1,8716,4,3,97,98,99,13846,13849,13852,59,1,8716,59,1,8958,59,1,8957,4,3,97,111,114,13863,13892,13899,114,4,4,59,97,115,116,13874,13876,13883,13888,1,8742,108,108,101,108,59,1,8742,108,59,3,11005,8421,59,3,8706,824,108,105,110,116,59,1,10772,4,3,59,99,101,13907,13909,13914,1,8832,117,101,59,1,8928,4,2,59,99,13920,13923,3,10927,824,4,2,59,101,13929,13931,1,8832,113,59,3,10927,824,4,4,65,97,105,116,13946,13951,13971,13982,114,114,59,1,8655,114,114,4,3,59,99,119,13961,13963,13967,1,8603,59,3,10547,824,59,3,8605,824,103,104,116,97,114,114,111,119,59,1,8603,114,105,4,2,59,101,13990,13992,1,8939,59,1,8941,4,7,99,104,105,109,112,113,117,14011,14036,14060,14080,14085,14090,14106,4,4,59,99,101,114,14021,14023,14028,14032,1,8833,117,101,59,1,8929,59,3,10928,824,59,3,55349,56515,111,114,116,4,2,109,112,14045,14050,105,100,59,1,8740,97,114,97,108,108,101,108,59,1,8742,109,4,2,59,101,14067,14069,1,8769,4,2,59,113,14075,14077,1,8772,59,1,8772,105,100,59,1,8740,97,114,59,1,8742,115,117,4,2,98,112,14098,14102,101,59,1,8930,101,59,1,8931,4,3,98,99,112,14114,14157,14171,4,4,59,69,101,115,14124,14126,14130,14133,1,8836,59,3,10949,824,59,1,8840,101,116,4,2,59,101,14141,14144,3,8834,8402,113,4,2,59,113,14151,14153,1,8840,59,3,10949,824,99,4,2,59,101,14164,14166,1,8833,113,59,3,10928,824,4,4,59,69,101,115,14181,14183,14187,14190,1,8837,59,3,10950,824,59,1,8841,101,116,4,2,59,101,14198,14201,3,8835,8402,113,4,2,59,113,14208,14210,1,8841,59,3,10950,824,4,4,103,105,108,114,14224,14228,14238,14242,108,59,1,8825,108,100,101,5,241,1,59,14236,1,241,103,59,1,8824,105,97,110,103,108,101,4,2,108,114,14254,14269,101,102,116,4,2,59,101,14263,14265,1,8938,113,59,1,8940,105,103,104,116,4,2,59,101,14279,14281,1,8939,113,59,1,8941,4,2,59,109,14291,14293,1,957,4,3,59,101,115,14301,14303,14308,1,35,114,111,59,1,8470,112,59,1,8199,4,9,68,72,97,100,103,105,108,114,115,14332,14338,14344,14349,14355,14369,14376,14408,14426,97,115,104,59,1,8877,97,114,114,59,1,10500,112,59,3,8781,8402,97,115,104,59,1,8876,4,2,101,116,14361,14365,59,3,8805,8402,59,3,62,8402,110,102,105,110,59,1,10718,4,3,65,101,116,14384,14389,14393,114,114,59,1,10498,59,3,8804,8402,4,2,59,114,14399,14402,3,60,8402,105,101,59,3,8884,8402,4,2,65,116,14414,14419,114,114,59,1,10499,114,105,101,59,3,8885,8402,105,109,59,3,8764,8402,4,3,65,97,110,14440,14445,14468,114,114,59,1,8662,114,4,2,104,114,14452,14456,107,59,1,10531,4,2,59,111,14462,14464,1,8598,119,59,1,8598,101,97,114,59,1,10535,4,18,83,97,99,100,101,102,103,104,105,108,109,111,112,114,115,116,117,118,14512,14515,14535,14560,14597,14603,14618,14643,14657,14662,14701,14741,14747,14769,14851,14877,14907,14916,59,1,9416,4,2,99,115,14521,14531,117,116,101,5,243,1,59,14529,1,243,116,59,1,8859,4,2,105,121,14541,14557,114,4,2,59,99,14548,14550,1,8858,5,244,1,59,14555,1,244,59,1,1086,4,5,97,98,105,111,115,14572,14577,14583,14587,14591,115,104,59,1,8861,108,97,99,59,1,337,118,59,1,10808,116,59,1,8857,111,108,100,59,1,10684,108,105,103,59,1,339,4,2,99,114,14609,14614,105,114,59,1,10687,59,3,55349,56620,4,3,111,114,116,14626,14630,14640,110,59,1,731,97,118,101,5,242,1,59,14638,1,242,59,1,10689,4,2,98,109,14649,14654,97,114,59,1,10677,59,1,937,110,116,59,1,8750,4,4,97,99,105,116,14672,14677,14693,14698,114,114,59,1,8634,4,2,105,114,14683,14687,114,59,1,10686,111,115,115,59,1,10683,110,101,59,1,8254,59,1,10688,4,3,97,101,105,14709,14714,14719,99,114,59,1,333,103,97,59,1,969,4,3,99,100,110,14727,14733,14736,114,111,110,59,1,959,59,1,10678,117,115,59,1,8854,112,102,59,3,55349,56672,4,3,97,101,108,14755,14759,14764,114,59,1,10679,114,112,59,1,10681,117,115,59,1,8853,4,7,59,97,100,105,111,115,118,14785,14787,14792,14831,14837,14841,14848,1,8744,114,114,59,1,8635,4,4,59,101,102,109,14802,14804,14817,14824,1,10845,114,4,2,59,111,14811,14813,1,8500,102,59,1,8500,5,170,1,59,14822,1,170,5,186,1,59,14829,1,186,103,111,102,59,1,8886,114,59,1,10838,108,111,112,101,59,1,10839,59,1,10843,4,3,99,108,111,14859,14863,14873,114,59,1,8500,97,115,104,5,248,1,59,14871,1,248,108,59,1,8856,105,4,2,108,109,14884,14893,100,101,5,245,1,59,14891,1,245,101,115,4,2,59,97,14901,14903,1,8855,115,59,1,10806,109,108,5,246,1,59,14914,1,246,98,97,114,59,1,9021,4,12,97,99,101,102,104,105,108,109,111,114,115,117,14948,14992,14996,15033,15038,15068,15090,15189,15192,15222,15427,15441,114,4,4,59,97,115,116,14959,14961,14976,14989,1,8741,5,182,2,59,108,14968,14970,1,182,108,101,108,59,1,8741,4,2,105,108,14982,14986,109,59,1,10995,59,1,11005,59,1,8706,121,59,1,1087,114,4,5,99,105,109,112,116,15009,15014,15019,15024,15027,110,116,59,1,37,111,100,59,1,46,105,108,59,1,8240,59,1,8869,101,110,107,59,1,8241,114,59,3,55349,56621,4,3,105,109,111,15046,15057,15063,4,2,59,118,15052,15054,1,966,59,1,981,109,97,116,59,1,8499,110,101,59,1,9742,4,3,59,116,118,15076,15078,15087,1,960,99,104,102,111,114,107,59,1,8916,59,1,982,4,2,97,117,15096,15119,110,4,2,99,107,15103,15115,107,4,2,59,104,15110,15112,1,8463,59,1,8462,118,59,1,8463,115,4,9,59,97,98,99,100,101,109,115,116,15140,15142,15148,15151,15156,15168,15171,15179,15184,1,43,99,105,114,59,1,10787,59,1,8862,105,114,59,1,10786,4,2,111,117,15162,15165,59,1,8724,59,1,10789,59,1,10866,110,5,177,1,59,15177,1,177,105,109,59,1,10790,119,111,59,1,10791,59,1,177,4,3,105,112,117,15200,15208,15213,110,116,105,110,116,59,1,10773,102,59,3,55349,56673,110,100,5,163,1,59,15220,1,163,4,10,59,69,97,99,101,105,110,111,115,117,15244,15246,15249,15253,15258,15334,15347,15367,15416,15421,1,8826,59,1,10931,112,59,1,10935,117,101,59,1,8828,4,2,59,99,15264,15266,1,10927,4,6,59,97,99,101,110,115,15280,15282,15290,15299,15303,15329,1,8826,112,112,114,111,120,59,1,10935,117,114,108,121,101,113,59,1,8828,113,59,1,10927,4,3,97,101,115,15311,15319,15324,112,112,114,111,120,59,1,10937,113,113,59,1,10933,105,109,59,1,8936,105,109,59,1,8830,109,101,4,2,59,115,15342,15344,1,8242,59,1,8473,4,3,69,97,115,15355,15358,15362,59,1,10933,112,59,1,10937,105,109,59,1,8936,4,3,100,102,112,15375,15378,15404,59,1,8719,4,3,97,108,115,15386,15392,15398,108,97,114,59,1,9006,105,110,101,59,1,8978,117,114,102,59,1,8979,4,2,59,116,15410,15412,1,8733,111,59,1,8733,105,109,59,1,8830,114,101,108,59,1,8880,4,2,99,105,15433,15438,114,59,3,55349,56517,59,1,968,110,99,115,112,59,1,8200,4,6,102,105,111,112,115,117,15462,15467,15472,15478,15485,15491,114,59,3,55349,56622,110,116,59,1,10764,112,102,59,3,55349,56674,114,105,109,101,59,1,8279,99,114,59,3,55349,56518,4,3,97,101,111,15499,15520,15534,116,4,2,101,105,15506,15515,114,110,105,111,110,115,59,1,8461,110,116,59,1,10774,115,116,4,2,59,101,15528,15530,1,63,113,59,1,8799,116,5,34,1,59,15540,1,34,4,21,65,66,72,97,98,99,100,101,102,104,105,108,109,110,111,112,114,115,116,117,120,15586,15609,15615,15620,15796,15855,15893,15931,15977,16001,16039,16183,16204,16222,16228,16285,16312,16318,16363,16408,16416,4,3,97,114,116,15594,15599,15603,114,114,59,1,8667,114,59,1,8658,97,105,108,59,1,10524,97,114,114,59,1,10511,97,114,59,1,10596,4,7,99,100,101,110,113,114,116,15636,15651,15656,15664,15687,15696,15770,4,2,101,117,15642,15646,59,3,8765,817,116,101,59,1,341,105,99,59,1,8730,109,112,116,121,118,59,1,10675,103,4,4,59,100,101,108,15675,15677,15680,15683,1,10217,59,1,10642,59,1,10661,101,59,1,10217,117,111,5,187,1,59,15694,1,187,114,4,11,59,97,98,99,102,104,108,112,115,116,119,15721,15723,15727,15739,15742,15746,15750,15754,15758,15763,15767,1,8594,112,59,1,10613,4,2,59,102,15733,15735,1,8677,115,59,1,10528,59,1,10547,115,59,1,10526,107,59,1,8618,112,59,1,8620,108,59,1,10565,105,109,59,1,10612,108,59,1,8611,59,1,8605,4,2,97,105,15776,15781,105,108,59,1,10522,111,4,2,59,110,15788,15790,1,8758,97,108,115,59,1,8474,4,3,97,98,114,15804,15809,15814,114,114,59,1,10509,114,107,59,1,10099,4,2,97,107,15820,15833,99,4,2,101,107,15827,15830,59,1,125,59,1,93,4,2,101,115,15839,15842,59,1,10636,108,4,2,100,117,15849,15852,59,1,10638,59,1,10640,4,4,97,101,117,121,15865,15871,15886,15890,114,111,110,59,1,345,4,2,100,105,15877,15882,105,108,59,1,343,108,59,1,8969,98,59,1,125,59,1,1088,4,4,99,108,113,115,15903,15907,15914,15927,97,59,1,10551,100,104,97,114,59,1,10601,117,111,4,2,59,114,15922,15924,1,8221,59,1,8221,104,59,1,8627,4,3,97,99,103,15939,15966,15970,108,4,4,59,105,112,115,15950,15952,15957,15963,1,8476,110,101,59,1,8475,97,114,116,59,1,8476,59,1,8477,116,59,1,9645,5,174,1,59,15975,1,174,4,3,105,108,114,15985,15991,15997,115,104,116,59,1,10621,111,111,114,59,1,8971,59,3,55349,56623,4,2,97,111,16007,16028,114,4,2,100,117,16014,16017,59,1,8641,4,2,59,108,16023,16025,1,8640,59,1,10604,4,2,59,118,16034,16036,1,961,59,1,1009,4,3,103,110,115,16047,16167,16171,104,116,4,6,97,104,108,114,115,116,16063,16081,16103,16130,16143,16155,114,114,111,119,4,2,59,116,16073,16075,1,8594,97,105,108,59,1,8611,97,114,112,111,111,110,4,2,100,117,16093,16099,111,119,110,59,1,8641,112,59,1,8640,101,102,116,4,2,97,104,16112,16120,114,114,111,119,115,59,1,8644,97,114,112,111,111,110,115,59,1,8652,105,103,104,116,97,114,114,111,119,115,59,1,8649,113,117,105,103,97,114,114,111,119,59,1,8605,104,114,101,101,116,105,109,101,115,59,1,8908,103,59,1,730,105,110,103,100,111,116,115,101,113,59,1,8787,4,3,97,104,109,16191,16196,16201,114,114,59,1,8644,97,114,59,1,8652,59,1,8207,111,117,115,116,4,2,59,97,16214,16216,1,9137,99,104,101,59,1,9137,109,105,100,59,1,10990,4,4,97,98,112,116,16238,16252,16257,16278,4,2,110,114,16244,16248,103,59,1,10221,114,59,1,8702,114,107,59,1,10215,4,3,97,102,108,16265,16269,16273,114,59,1,10630,59,3,55349,56675,117,115,59,1,10798,105,109,101,115,59,1,10805,4,2,97,112,16291,16304,114,4,2,59,103,16298,16300,1,41,116,59,1,10644,111,108,105,110,116,59,1,10770,97,114,114,59,1,8649,4,4,97,99,104,113,16328,16334,16339,16342,113,117,111,59,1,8250,114,59,3,55349,56519,59,1,8625,4,2,98,117,16348,16351,59,1,93,111,4,2,59,114,16358,16360,1,8217,59,1,8217,4,3,104,105,114,16371,16377,16383,114,101,101,59,1,8908,109,101,115,59,1,8906,105,4,4,59,101,102,108,16394,16396,16399,16402,1,9657,59,1,8885,59,1,9656,116,114,105,59,1,10702,108,117,104,97,114,59,1,10600,59,1,8478,4,19,97,98,99,100,101,102,104,105,108,109,111,112,113,114,115,116,117,119,122,16459,16466,16472,16572,16590,16672,16687,16746,16844,16850,16924,16963,16988,17115,17121,17154,17206,17614,17656,99,117,116,101,59,1,347,113,117,111,59,1,8218,4,10,59,69,97,99,101,105,110,112,115,121,16494,16496,16499,16513,16518,16531,16536,16556,16564,16569,1,8827,59,1,10932,4,2,112,114,16505,16508,59,1,10936,111,110,59,1,353,117,101,59,1,8829,4,2,59,100,16524,16526,1,10928,105,108,59,1,351,114,99,59,1,349,4,3,69,97,115,16544,16547,16551,59,1,10934,112,59,1,10938,105,109,59,1,8937,111,108,105,110,116,59,1,10771,105,109,59,1,8831,59,1,1089,111,116,4,3,59,98,101,16582,16584,16587,1,8901,59,1,8865,59,1,10854,4,7,65,97,99,109,115,116,120,16606,16611,16634,16642,16646,16652,16668,114,114,59,1,8664,114,4,2,104,114,16618,16622,107,59,1,10533,4,2,59,111,16628,16630,1,8600,119,59,1,8600,116,5,167,1,59,16640,1,167,105,59,1,59,119,97,114,59,1,10537,109,4,2,105,110,16659,16665,110,117,115,59,1,8726,59,1,8726,116,59,1,10038,114,4,2,59,111,16679,16682,3,55349,56624,119,110,59,1,8994,4,4,97,99,111,121,16697,16702,16716,16739,114,112,59,1,9839,4,2,104,121,16708,16713,99,121,59,1,1097,59,1,1096,114,116,4,2,109,112,16724,16729,105,100,59,1,8739,97,114,97,108,108,101,108,59,1,8741,5,173,1,59,16744,1,173,4,2,103,109,16752,16770,109,97,4,3,59,102,118,16762,16764,16767,1,963,59,1,962,59,1,962,4,8,59,100,101,103,108,110,112,114,16788,16790,16795,16806,16817,16828,16832,16838,1,8764,111,116,59,1,10858,4,2,59,113,16801,16803,1,8771,59,1,8771,4,2,59,69,16812,16814,1,10910,59,1,10912,4,2,59,69,16823,16825,1,10909,59,1,10911,101,59,1,8774,108,117,115,59,1,10788,97,114,114,59,1,10610,97,114,114,59,1,8592,4,4,97,101,105,116,16860,16883,16891,16904,4,2,108,115,16866,16878,108,115,101,116,109,105,110,117,115,59,1,8726,104,112,59,1,10803,112,97,114,115,108,59,1,10724,4,2,100,108,16897,16900,59,1,8739,101,59,1,8995,4,2,59,101,16910,16912,1,10922,4,2,59,115,16918,16920,1,10924,59,3,10924,65024,4,3,102,108,112,16932,16938,16958,116,99,121,59,1,1100,4,2,59,98,16944,16946,1,47,4,2,59,97,16952,16954,1,10692,114,59,1,9023,102,59,3,55349,56676,97,4,2,100,114,16970,16985,101,115,4,2,59,117,16978,16980,1,9824,105,116,59,1,9824,59,1,8741,4,3,99,115,117,16996,17028,17089,4,2,97,117,17002,17015,112,4,2,59,115,17009,17011,1,8851,59,3,8851,65024,112,4,2,59,115,17022,17024,1,8852,59,3,8852,65024,117,4,2,98,112,17035,17062,4,3,59,101,115,17043,17045,17048,1,8847,59,1,8849,101,116,4,2,59,101,17056,17058,1,8847,113,59,1,8849,4,3,59,101,115,17070,17072,17075,1,8848,59,1,8850,101,116,4,2,59,101,17083,17085,1,8848,113,59,1,8850,4,3,59,97,102,17097,17099,17112,1,9633,114,4,2,101,102,17106,17109,59,1,9633,59,1,9642,59,1,9642,97,114,114,59,1,8594,4,4,99,101,109,116,17131,17136,17142,17148,114,59,3,55349,56520,116,109,110,59,1,8726,105,108,101,59,1,8995,97,114,102,59,1,8902,4,2,97,114,17160,17172,114,4,2,59,102,17167,17169,1,9734,59,1,9733,4,2,97,110,17178,17202,105,103,104,116,4,2,101,112,17188,17197,112,115,105,108,111,110,59,1,1013,104,105,59,1,981,115,59,1,175,4,5,98,99,109,110,112,17218,17351,17420,17423,17427,4,9,59,69,100,101,109,110,112,114,115,17238,17240,17243,17248,17261,17267,17279,17285,17291,1,8834,59,1,10949,111,116,59,1,10941,4,2,59,100,17254,17256,1,8838,111,116,59,1,10947,117,108,116,59,1,10945,4,2,69,101,17273,17276,59,1,10955,59,1,8842,108,117,115,59,1,10943,97,114,114,59,1,10617,4,3,101,105,117,17299,17335,17339,116,4,3,59,101,110,17308,17310,17322,1,8834,113,4,2,59,113,17317,17319,1,8838,59,1,10949,101,113,4,2,59,113,17330,17332,1,8842,59,1,10955,109,59,1,10951,4,2,98,112,17345,17348,59,1,10965,59,1,10963,99,4,6,59,97,99,101,110,115,17366,17368,17376,17385,17389,17415,1,8827,112,112,114,111,120,59,1,10936,117,114,108,121,101,113,59,1,8829,113,59,1,10928,4,3,97,101,115,17397,17405,17410,112,112,114,111,120,59,1,10938,113,113,59,1,10934,105,109,59,1,8937,105,109,59,1,8831,59,1,8721,103,59,1,9834,4,13,49,50,51,59,69,100,101,104,108,109,110,112,115,17455,17462,17469,17476,17478,17481,17496,17509,17524,17530,17536,17548,17554,5,185,1,59,17460,1,185,5,178,1,59,17467,1,178,5,179,1,59,17474,1,179,1,8835,59,1,10950,4,2,111,115,17487,17491,116,59,1,10942,117,98,59,1,10968,4,2,59,100,17502,17504,1,8839,111,116,59,1,10948,115,4,2,111,117,17516,17520,108,59,1,10185,98,59,1,10967,97,114,114,59,1,10619,117,108,116,59,1,10946,4,2,69,101,17542,17545,59,1,10956,59,1,8843,108,117,115,59,1,10944,4,3,101,105,117,17562,17598,17602,116,4,3,59,101,110,17571,17573,17585,1,8835,113,4,2,59,113,17580,17582,1,8839,59,1,10950,101,113,4,2,59,113,17593,17595,1,8843,59,1,10956,109,59,1,10952,4,2,98,112,17608,17611,59,1,10964,59,1,10966,4,3,65,97,110,17622,17627,17650,114,114,59,1,8665,114,4,2,104,114,17634,17638,107,59,1,10534,4,2,59,111,17644,17646,1,8601,119,59,1,8601,119,97,114,59,1,10538,108,105,103,5,223,1,59,17664,1,223,4,13,97,98,99,100,101,102,104,105,111,112,114,115,119,17694,17709,17714,17737,17742,17749,17754,17860,17905,17957,17964,18090,18122,4,2,114,117,17700,17706,103,101,116,59,1,8982,59,1,964,114,107,59,1,9140,4,3,97,101,121,17722,17728,17734,114,111,110,59,1,357,100,105,108,59,1,355,59,1,1090,111,116,59,1,8411,108,114,101,99,59,1,8981,114,59,3,55349,56625,4,4,101,105,107,111,17764,17805,17836,17851,4,2,114,116,17770,17786,101,4,2,52,102,17777,17780,59,1,8756,111,114,101,59,1,8756,97,4,3,59,115,118,17795,17797,17802,1,952,121,109,59,1,977,59,1,977,4,2,99,110,17811,17831,107,4,2,97,115,17818,17826,112,112,114,111,120,59,1,8776,105,109,59,1,8764,115,112,59,1,8201,4,2,97,115,17842,17846,112,59,1,8776,105,109,59,1,8764,114,110,5,254,1,59,17858,1,254,4,3,108,109,110,17868,17873,17901,100,101,59,1,732,101,115,5,215,3,59,98,100,17884,17886,17898,1,215,4,2,59,97,17892,17894,1,8864,114,59,1,10801,59,1,10800,116,59,1,8749,4,3,101,112,115,17913,17917,17953,97,59,1,10536,4,4,59,98,99,102,17927,17929,17934,17939,1,8868,111,116,59,1,9014,105,114,59,1,10993,4,2,59,111,17945,17948,3,55349,56677,114,107,59,1,10970,97,59,1,10537,114,105,109,101,59,1,8244,4,3,97,105,112,17972,17977,18082,100,101,59,1,8482,4,7,97,100,101,109,112,115,116,17993,18051,18056,18059,18066,18072,18076,110,103,108,101,4,5,59,100,108,113,114,18009,18011,18017,18032,18035,1,9653,111,119,110,59,1,9663,101,102,116,4,2,59,101,18026,18028,1,9667,113,59,1,8884,59,1,8796,105,103,104,116,4,2,59,101,18045,18047,1,9657,113,59,1,8885,111,116,59,1,9708,59,1,8796,105,110,117,115,59,1,10810,108,117,115,59,1,10809,98,59,1,10701,105,109,101,59,1,10811,101,122,105,117,109,59,1,9186,4,3,99,104,116,18098,18111,18116,4,2,114,121,18104,18108,59,3,55349,56521,59,1,1094,99,121,59,1,1115,114,111,107,59,1,359,4,2,105,111,18128,18133,120,116,59,1,8812,104,101,97,100,4,2,108,114,18143,18154,101,102,116,97,114,114,111,119,59,1,8606,105,103,104,116,97,114,114,111,119,59,1,8608,4,18,65,72,97,98,99,100,102,103,104,108,109,111,112,114,115,116,117,119,18204,18209,18214,18234,18250,18268,18292,18308,18319,18343,18379,18397,18413,18504,18547,18553,18584,18603,114,114,59,1,8657,97,114,59,1,10595,4,2,99,114,18220,18230,117,116,101,5,250,1,59,18228,1,250,114,59,1,8593,114,4,2,99,101,18241,18245,121,59,1,1118,118,101,59,1,365,4,2,105,121,18256,18265,114,99,5,251,1,59,18263,1,251,59,1,1091,4,3,97,98,104,18276,18281,18287,114,114,59,1,8645,108,97,99,59,1,369,97,114,59,1,10606,4,2,105,114,18298,18304,115,104,116,59,1,10622,59,3,55349,56626,114,97,118,101,5,249,1,59,18317,1,249,4,2,97,98,18325,18338,114,4,2,108,114,18332,18335,59,1,8639,59,1,8638,108,107,59,1,9600,4,2,99,116,18349,18374,4,2,111,114,18355,18369,114,110,4,2,59,101,18363,18365,1,8988,114,59,1,8988,111,112,59,1,8975,114,105,59,1,9720,4,2,97,108,18385,18390,99,114,59,1,363,5,168,1,59,18395,1,168,4,2,103,112,18403,18408,111,110,59,1,371,102,59,3,55349,56678,4,6,97,100,104,108,115,117,18427,18434,18445,18470,18475,18494,114,114,111,119,59,1,8593,111,119,110,97,114,114,111,119,59,1,8597,97,114,112,111,111,110,4,2,108,114,18457,18463,101,102,116,59,1,8639,105,103,104,116,59,1,8638,117,115,59,1,8846,105,4,3,59,104,108,18484,18486,18489,1,965,59,1,978,111,110,59,1,965,112,97,114,114,111,119,115,59,1,8648,4,3,99,105,116,18512,18537,18542,4,2,111,114,18518,18532,114,110,4,2,59,101,18526,18528,1,8989,114,59,1,8989,111,112,59,1,8974,110,103,59,1,367,114,105,59,1,9721,99,114,59,3,55349,56522,4,3,100,105,114,18561,18566,18572,111,116,59,1,8944,108,100,101,59,1,361,105,4,2,59,102,18579,18581,1,9653,59,1,9652,4,2,97,109,18590,18595,114,114,59,1,8648,108,5,252,1,59,18601,1,252,97,110,103,108,101,59,1,10663,4,15,65,66,68,97,99,100,101,102,108,110,111,112,114,115,122,18643,18648,18661,18667,18847,18851,18857,18904,18909,18915,18931,18937,18943,18949,18996,114,114,59,1,8661,97,114,4,2,59,118,18656,18658,1,10984,59,1,10985,97,115,104,59,1,8872,4,2,110,114,18673,18679,103,114,116,59,1,10652,4,7,101,107,110,112,114,115,116,18695,18704,18711,18720,18742,18754,18810,112,115,105,108,111,110,59,1,1013,97,112,112,97,59,1,1008,111,116,104,105,110,103,59,1,8709,4,3,104,105,114,18728,18732,18735,105,59,1,981,59,1,982,111,112,116,111,59,1,8733,4,2,59,104,18748,18750,1,8597,111,59,1,1009,4,2,105,117,18760,18766,103,109,97,59,1,962,4,2,98,112,18772,18791,115,101,116,110,101,113,4,2,59,113,18784,18787,3,8842,65024,59,3,10955,65024,115,101,116,110,101,113,4,2,59,113,18803,18806,3,8843,65024,59,3,10956,65024,4,2,104,114,18816,18822,101,116,97,59,1,977,105,97,110,103,108,101,4,2,108,114,18834,18840,101,102,116,59,1,8882,105,103,104,116,59,1,8883,121,59,1,1074,97,115,104,59,1,8866,4,3,101,108,114,18865,18884,18890,4,3,59,98,101,18873,18875,18880,1,8744,97,114,59,1,8891,113,59,1,8794,108,105,112,59,1,8942,4,2,98,116,18896,18901,97,114,59,1,124,59,1,124,114,59,3,55349,56627,116,114,105,59,1,8882,115,117,4,2,98,112,18923,18927,59,3,8834,8402,59,3,8835,8402,112,102,59,3,55349,56679,114,111,112,59,1,8733,116,114,105,59,1,8883,4,2,99,117,18955,18960,114,59,3,55349,56523,4,2,98,112,18966,18981,110,4,2,69,101,18973,18977,59,3,10955,65024,59,3,8842,65024,110,4,2,69,101,18988,18992,59,3,10956,65024,59,3,8843,65024,105,103,122,97,103,59,1,10650,4,7,99,101,102,111,112,114,115,19020,19026,19061,19066,19072,19075,19089,105,114,99,59,1,373,4,2,100,105,19032,19055,4,2,98,103,19038,19043,97,114,59,1,10847,101,4,2,59,113,19050,19052,1,8743,59,1,8793,101,114,112,59,1,8472,114,59,3,55349,56628,112,102,59,3,55349,56680,59,1,8472,4,2,59,101,19081,19083,1,8768,97,116,104,59,1,8768,99,114,59,3,55349,56524,4,14,99,100,102,104,105,108,109,110,111,114,115,117,118,119,19125,19146,19152,19157,19173,19176,19192,19197,19202,19236,19252,19269,19286,19291,4,3,97,105,117,19133,19137,19142,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,116,114,105,59,1,9661,114,59,3,55349,56629,4,2,65,97,19163,19168,114,114,59,1,10234,114,114,59,1,10231,59,1,958,4,2,65,97,19182,19187,114,114,59,1,10232,114,114,59,1,10229,97,112,59,1,10236,105,115,59,1,8955,4,3,100,112,116,19210,19215,19230,111,116,59,1,10752,4,2,102,108,19221,19225,59,3,55349,56681,117,115,59,1,10753,105,109,101,59,1,10754,4,2,65,97,19242,19247,114,114,59,1,10233,114,114,59,1,10230,4,2,99,113,19258,19263,114,59,3,55349,56525,99,117,112,59,1,10758,4,2,112,116,19275,19281,108,117,115,59,1,10756,114,105,59,1,9651,101,101,59,1,8897,101,100,103,101,59,1,8896,4,8,97,99,101,102,105,111,115,117,19316,19335,19349,19357,19362,19367,19373,19379,99,4,2,117,121,19323,19332,116,101,5,253,1,59,19330,1,253,59,1,1103,4,2,105,121,19341,19346,114,99,59,1,375,59,1,1099,110,5,165,1,59,19355,1,165,114,59,3,55349,56630,99,121,59,1,1111,112,102,59,3,55349,56682,99,114,59,3,55349,56526,4,2,99,109,19385,19389,121,59,1,1102,108,5,255,1,59,19395,1,255,4,10,97,99,100,101,102,104,105,111,115,119,19419,19426,19441,19446,19462,19467,19472,19480,19486,19492,99,117,116,101,59,1,378,4,2,97,121,19432,19438,114,111,110,59,1,382,59,1,1079,111,116,59,1,380,4,2,101,116,19452,19458,116,114,102,59,1,8488,97,59,1,950,114,59,3,55349,56631,99,121,59,1,1078,103,114,97,114,114,59,1,8669,112,102,59,3,55349,56683,99,114,59,3,55349,56527,4,2,106,110,19498,19501,59,1,8205,106,59,1,8204]);","'use strict';\n\nconst unicode = require('../common/unicode');\nconst ERR = require('../common/error-codes');\n\n//Aliases\nconst $ = unicode.CODE_POINTS;\n\n//Const\nconst DEFAULT_BUFFER_WATERLINE = 1 << 16;\n\n//Preprocessor\n//NOTE: HTML input preprocessing\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#preprocessing-the-input-stream)\nclass Preprocessor {\n    constructor() {\n        this.html = null;\n\n        this.pos = -1;\n        this.lastGapPos = -1;\n        this.lastCharPos = -1;\n\n        this.gapStack = [];\n\n        this.skipNextNewLine = false;\n\n        this.lastChunkWritten = false;\n        this.endOfChunkHit = false;\n        this.bufferWaterline = DEFAULT_BUFFER_WATERLINE;\n    }\n\n    _err() {\n        // NOTE: err reporting is noop by default. Enabled by mixin.\n    }\n\n    _addGap() {\n        this.gapStack.push(this.lastGapPos);\n        this.lastGapPos = this.pos;\n    }\n\n    _processSurrogate(cp) {\n        //NOTE: try to peek a surrogate pair\n        if (this.pos !== this.lastCharPos) {\n            const nextCp = this.html.charCodeAt(this.pos + 1);\n\n            if (unicode.isSurrogatePair(nextCp)) {\n                //NOTE: we have a surrogate pair. Peek pair character and recalculate code point.\n                this.pos++;\n\n                //NOTE: add gap that should be avoided during retreat\n                this._addGap();\n\n                return unicode.getSurrogatePairCodePoint(cp, nextCp);\n            }\n        }\n\n        //NOTE: we are at the end of a chunk, therefore we can't infer surrogate pair yet.\n        else if (!this.lastChunkWritten) {\n            this.endOfChunkHit = true;\n            return $.EOF;\n        }\n\n        //NOTE: isolated surrogate\n        this._err(ERR.surrogateInInputStream);\n\n        return cp;\n    }\n\n    dropParsedChunk() {\n        if (this.pos > this.bufferWaterline) {\n            this.lastCharPos -= this.pos;\n            this.html = this.html.substring(this.pos);\n            this.pos = 0;\n            this.lastGapPos = -1;\n            this.gapStack = [];\n        }\n    }\n\n    write(chunk, isLastChunk) {\n        if (this.html) {\n            this.html += chunk;\n        } else {\n            this.html = chunk;\n        }\n\n        this.lastCharPos = this.html.length - 1;\n        this.endOfChunkHit = false;\n        this.lastChunkWritten = isLastChunk;\n    }\n\n    insertHtmlAtCurrentPos(chunk) {\n        this.html = this.html.substring(0, this.pos + 1) + chunk + this.html.substring(this.pos + 1, this.html.length);\n\n        this.lastCharPos = this.html.length - 1;\n        this.endOfChunkHit = false;\n    }\n\n    advance() {\n        this.pos++;\n\n        if (this.pos > this.lastCharPos) {\n            this.endOfChunkHit = !this.lastChunkWritten;\n            return $.EOF;\n        }\n\n        let cp = this.html.charCodeAt(this.pos);\n\n        //NOTE: any U+000A LINE FEED (LF) characters that immediately follow a U+000D CARRIAGE RETURN (CR) character\n        //must be ignored.\n        if (this.skipNextNewLine && cp === $.LINE_FEED) {\n            this.skipNextNewLine = false;\n            this._addGap();\n            return this.advance();\n        }\n\n        //NOTE: all U+000D CARRIAGE RETURN (CR) characters must be converted to U+000A LINE FEED (LF) characters\n        if (cp === $.CARRIAGE_RETURN) {\n            this.skipNextNewLine = true;\n            return $.LINE_FEED;\n        }\n\n        this.skipNextNewLine = false;\n\n        if (unicode.isSurrogate(cp)) {\n            cp = this._processSurrogate(cp);\n        }\n\n        //OPTIMIZATION: first check if code point is in the common allowed\n        //range (ASCII alphanumeric, whitespaces, big chunk of BMP)\n        //before going into detailed performance cost validation.\n        const isCommonValidRange =\n            (cp > 0x1f && cp < 0x7f) || cp === $.LINE_FEED || cp === $.CARRIAGE_RETURN || (cp > 0x9f && cp < 0xfdd0);\n\n        if (!isCommonValidRange) {\n            this._checkForProblematicCharacters(cp);\n        }\n\n        return cp;\n    }\n\n    _checkForProblematicCharacters(cp) {\n        if (unicode.isControlCodePoint(cp)) {\n            this._err(ERR.controlCharacterInInputStream);\n        } else if (unicode.isUndefinedCodePoint(cp)) {\n            this._err(ERR.noncharacterInInputStream);\n        }\n    }\n\n    retreat() {\n        if (this.pos === this.lastGapPos) {\n            this.lastGapPos = this.gapStack.pop();\n            this.pos--;\n        }\n\n        this.pos--;\n    }\n}\n\nmodule.exports = Preprocessor;\n","'use strict';\n\nconst { DOCUMENT_MODE } = require('../common/html');\n\n//Node construction\nexports.createDocument = function() {\n    return {\n        nodeName: '#document',\n        mode: DOCUMENT_MODE.NO_QUIRKS,\n        childNodes: []\n    };\n};\n\nexports.createDocumentFragment = function() {\n    return {\n        nodeName: '#document-fragment',\n        childNodes: []\n    };\n};\n\nexports.createElement = function(tagName, namespaceURI, attrs) {\n    return {\n        nodeName: tagName,\n        tagName: tagName,\n        attrs: attrs,\n        namespaceURI: namespaceURI,\n        childNodes: [],\n        parentNode: null\n    };\n};\n\nexports.createCommentNode = function(data) {\n    return {\n        nodeName: '#comment',\n        data: data,\n        parentNode: null\n    };\n};\n\nconst createTextNode = function(value) {\n    return {\n        nodeName: '#text',\n        value: value,\n        parentNode: null\n    };\n};\n\n//Tree mutation\nconst appendChild = (exports.appendChild = function(parentNode, newNode) {\n    parentNode.childNodes.push(newNode);\n    newNode.parentNode = parentNode;\n});\n\nconst insertBefore = (exports.insertBefore = function(parentNode, newNode, referenceNode) {\n    const insertionIdx = parentNode.childNodes.indexOf(referenceNode);\n\n    parentNode.childNodes.splice(insertionIdx, 0, newNode);\n    newNode.parentNode = parentNode;\n});\n\nexports.setTemplateContent = function(templateElement, contentElement) {\n    templateElement.content = contentElement;\n};\n\nexports.getTemplateContent = function(templateElement) {\n    return templateElement.content;\n};\n\nexports.setDocumentType = function(document, name, publicId, systemId) {\n    let doctypeNode = null;\n\n    for (let i = 0; i < document.childNodes.length; i++) {\n        if (document.childNodes[i].nodeName === '#documentType') {\n            doctypeNode = document.childNodes[i];\n            break;\n        }\n    }\n\n    if (doctypeNode) {\n        doctypeNode.name = name;\n        doctypeNode.publicId = publicId;\n        doctypeNode.systemId = systemId;\n    } else {\n        appendChild(document, {\n            nodeName: '#documentType',\n            name: name,\n            publicId: publicId,\n            systemId: systemId\n        });\n    }\n};\n\nexports.setDocumentMode = function(document, mode) {\n    document.mode = mode;\n};\n\nexports.getDocumentMode = function(document) {\n    return document.mode;\n};\n\nexports.detachNode = function(node) {\n    if (node.parentNode) {\n        const idx = node.parentNode.childNodes.indexOf(node);\n\n        node.parentNode.childNodes.splice(idx, 1);\n        node.parentNode = null;\n    }\n};\n\nexports.insertText = function(parentNode, text) {\n    if (parentNode.childNodes.length) {\n        const prevNode = parentNode.childNodes[parentNode.childNodes.length - 1];\n\n        if (prevNode.nodeName === '#text') {\n            prevNode.value += text;\n            return;\n        }\n    }\n\n    appendChild(parentNode, createTextNode(text));\n};\n\nexports.insertTextBefore = function(parentNode, text, referenceNode) {\n    const prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1];\n\n    if (prevNode && prevNode.nodeName === '#text') {\n        prevNode.value += text;\n    } else {\n        insertBefore(parentNode, createTextNode(text), referenceNode);\n    }\n};\n\nexports.adoptAttributes = function(recipient, attrs) {\n    const recipientAttrsMap = [];\n\n    for (let i = 0; i < recipient.attrs.length; i++) {\n        recipientAttrsMap.push(recipient.attrs[i].name);\n    }\n\n    for (let j = 0; j < attrs.length; j++) {\n        if (recipientAttrsMap.indexOf(attrs[j].name) === -1) {\n            recipient.attrs.push(attrs[j]);\n        }\n    }\n};\n\n//Tree traversing\nexports.getFirstChild = function(node) {\n    return node.childNodes[0];\n};\n\nexports.getChildNodes = function(node) {\n    return node.childNodes;\n};\n\nexports.getParentNode = function(node) {\n    return node.parentNode;\n};\n\nexports.getAttrList = function(element) {\n    return element.attrs;\n};\n\n//Node data\nexports.getTagName = function(element) {\n    return element.tagName;\n};\n\nexports.getNamespaceURI = function(element) {\n    return element.namespaceURI;\n};\n\nexports.getTextNodeContent = function(textNode) {\n    return textNode.value;\n};\n\nexports.getCommentNodeContent = function(commentNode) {\n    return commentNode.data;\n};\n\nexports.getDocumentTypeNodeName = function(doctypeNode) {\n    return doctypeNode.name;\n};\n\nexports.getDocumentTypeNodePublicId = function(doctypeNode) {\n    return doctypeNode.publicId;\n};\n\nexports.getDocumentTypeNodeSystemId = function(doctypeNode) {\n    return doctypeNode.systemId;\n};\n\n//Node types\nexports.isTextNode = function(node) {\n    return node.nodeName === '#text';\n};\n\nexports.isCommentNode = function(node) {\n    return node.nodeName === '#comment';\n};\n\nexports.isDocumentTypeNode = function(node) {\n    return node.nodeName === '#documentType';\n};\n\nexports.isElementNode = function(node) {\n    return !!node.tagName;\n};\n\n// Source code location\nexports.setNodeSourceCodeLocation = function(node, location) {\n    node.sourceCodeLocation = location;\n};\n\nexports.getNodeSourceCodeLocation = function(node) {\n    return node.sourceCodeLocation;\n};\n\nexports.updateNodeSourceCodeLocation = function(node, endLocation) {\n    node.sourceCodeLocation = Object.assign(node.sourceCodeLocation, endLocation);\n};\n","'use strict';\n\nmodule.exports = function mergeOptions(defaults, options) {\n    options = options || Object.create(null);\n\n    return [defaults, options].reduce((merged, optObj) => {\n        Object.keys(optObj).forEach(key => {\n            merged[key] = optObj[key];\n        });\n\n        return merged;\n    }, Object.create(null));\n};\n","'use strict';\n\nclass Mixin {\n    constructor(host) {\n        const originalMethods = {};\n        const overriddenMethods = this._getOverriddenMethods(this, originalMethods);\n\n        for (const key of Object.keys(overriddenMethods)) {\n            if (typeof overriddenMethods[key] === 'function') {\n                originalMethods[key] = host[key];\n                host[key] = overriddenMethods[key];\n            }\n        }\n    }\n\n    _getOverriddenMethods() {\n        throw new Error('Not implemented');\n    }\n}\n\nMixin.install = function(host, Ctor, opts) {\n    if (!host.__mixins) {\n        host.__mixins = [];\n    }\n\n    for (let i = 0; i < host.__mixins.length; i++) {\n        if (host.__mixins[i].constructor === Ctor) {\n            return host.__mixins[i];\n        }\n    }\n\n    const mixin = new Ctor(host, opts);\n\n    host.__mixins.push(mixin);\n\n    return mixin;\n};\n\nmodule.exports = Mixin;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bigint: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;function Lg(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Mg=Uf(null),Ng=null,Og=null,Pg=null;function Qg(){Pg=Og=Ng=null}function Rg(a){var b=Mg.current;E(Mg);a._currentValue=b}\nfunction Sg(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}function Tg(a,b){Ng=a;Pg=Og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(Ug=!0),a.firstContext=null)}\nfunction Vg(a){var b=a._currentValue;if(Pg!==a)if(a={context:a,memoizedValue:b,next:null},null===Og){if(null===Ng)throw Error(p(308));Og=a;Ng.dependencies={lanes:0,firstContext:a}}else Og=Og.next=a;return b}var Wg=null;function Xg(a){null===Wg?Wg=[a]:Wg.push(a)}function Yg(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,Xg(b)):(c.next=e.next,e.next=c);b.interleaved=c;return Zg(a,d)}\nfunction Zg(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var $g=!1;function ah(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function ch(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction dh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return Zg(a,c)}e=d.interleaved;null===e?(b.next=b,Xg(d)):(b.next=e.next,e.next=b);d.interleaved=b;return Zg(a,c)}function eh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction fh(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction gh(a,b,c,d){var e=a.updateQueue;$g=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:$g=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);hh|=g;a.lanes=g;a.memoizedState=q}}\nfunction ih(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var jh=(new aa.Component).refs;function kh(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar nh={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=L(),d=\nlh(a),e=ch(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=dh(a,e,d);null!==b&&(mh(b,a,d,c),eh(b,a,d))}};function oh(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction ph(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=Vg(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=nh;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction qh(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&nh.enqueueReplaceState(b,b.state,null)}\nfunction rh(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jh;ah(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=Vg(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(kh(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&nh.enqueueReplaceState(e,e.state,null),gh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}\nfunction sh(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===jh&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction th(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function uh(a){var b=a._init;return b(a._payload)}\nfunction vh(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=wh(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=xh(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&uh(f)===b.type))return d=e(b,c.props),d.ref=sh(a,b,c),d.return=a,d;d=yh(c.type,c.key,c.props,null,a.mode,d);d.ref=sh(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=zh(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Ah(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=xh(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=yh(b.type,b.key,b.props,null,a.mode,c),\nc.ref=sh(a,null,b),c.return=a,c;case wa:return b=zh(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Ah(b,a.mode,c,null),b.return=a,b;th(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);th(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);th(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;a<Nh.length;a++)Nh[a]._workInProgressVersionPrimary=null;Nh.length=0}var Ph=ua.ReactCurrentDispatcher,Qh=ua.ReactCurrentBatchConfig,Rh=0,N=null,O=null,P=null,Sh=!1,Th=!1,Uh=0,Vh=0;function Q(){throw Error(p(321));}function Wh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Xh(a,b,c,d,e,f){Rh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Ph.current=null===a||null===a.memoizedState?Yh:Zh;a=c(d,e);if(Th){f=0;do{Th=!1;Uh=0;if(25<=f)throw Error(p(301));f+=1;P=O=null;b.updateQueue=null;Ph.current=$h;a=c(d,e)}while(Th)}Ph.current=ai;b=null!==O&&null!==O.next;Rh=0;P=O=N=null;Sh=!1;if(b)throw Error(p(300));return a}function bi(){var a=0!==Uh;Uh=0;return a}\nfunction ci(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function di(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(p(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction ei(a,b){return\"function\"===typeof b?b(a):b}\nfunction fi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Rh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;N.lanes|=m;hh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(Ug=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,N.lanes|=f,hh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction gi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(Ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function hi(){}\nfunction ii(a,b){var c=N,d=di(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,Ug=!0);d=d.queue;ji(ki.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==P&&P.memoizedState.tag&1){c.flags|=2048;li(9,mi.bind(null,c,d,e,b),void 0,null);if(null===R)throw Error(p(349));0!==(Rh&30)||ni(c,b,e)}return e}function ni(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction mi(a,b,c,d){b.value=c;b.getSnapshot=d;oi(b)&&pi(a)}function ki(a,b,c){return c(function(){oi(b)&&pi(a)})}function oi(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function pi(a){var b=Zg(a,1);null!==b&&mh(b,a,1,-1)}\nfunction qi(a){var b=ci();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ei,lastRenderedState:a};b.queue=a;a=a.dispatch=ri.bind(null,N,a);return[b.memoizedState,a]}\nfunction li(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function si(){return di().memoizedState}function ti(a,b,c,d){var e=ci();N.flags|=a;e.memoizedState=li(1|b,c,void 0,void 0===d?null:d)}\nfunction ui(a,b,c,d){var e=di();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Wh(d,g.deps)){e.memoizedState=li(b,c,f,d);return}}N.flags|=a;e.memoizedState=li(1|b,c,f,d)}function vi(a,b){return ti(8390656,8,a,b)}function ji(a,b){return ui(2048,8,a,b)}function wi(a,b){return ui(4,2,a,b)}function xi(a,b){return ui(4,4,a,b)}\nfunction yi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function zi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ui(4,4,yi.bind(null,b,a),c)}function Ai(){}function Bi(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Ci(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Di(a,b,c){if(0===(Rh&21))return a.baseState&&(a.baseState=!1,Ug=!0),a.memoizedState=c;He(c,b)||(c=yc(),N.lanes|=c,hh|=c,a.baseState=!0);return b}function Ei(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Vh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Zh={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)},\nuseDebugValue:Ai,useDeferredValue:function(a){var b=di();return Di(b,O.memoizedState,a)},useTransition:function(){var a=fi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},$h={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var b=di();return null===\nO?b.memoizedState=a:Di(b,O.memoizedState,a)},useTransition:function(){var a=gi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}function Li(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}\nfunction Mi(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Ni=\"function\"===typeof WeakMap?WeakMap:Map;function Oi(a,b,c){c=ch(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Pi||(Pi=!0,Qi=d);Mi(a,b)};return c}\nfunction Ri(a,b,c){c=ch(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Mi(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Mi(a,b);\"function\"!==typeof d&&(null===Si?Si=new Set([this]):Si.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Ti(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Ni;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ui.bind(null,a,b,c),b.then(a,a))}function Vi(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Wi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=ch(-1,1),b.tag=2,dh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Xi=ua.ReactCurrentOwner,Ug=!1;function Yi(a,b,c,d){b.child=null===a?Ch(b,null,c,d):Bh(b,a.child,c,d)}\nfunction Zi(a,b,c,d,e){c=c.render;var f=b.ref;Tg(b,e);d=Xh(a,b,c,d,f,e);c=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&c&&vg(b);b.flags|=1;Yi(a,b,d,e);return b.child}\nfunction aj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!bj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,cj(a,b,f,d,e);a=yh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return $i(a,b,e)}b.flags|=1;a=wh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction cj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(Ug=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(Ug=!0);else return b.lanes=a.lanes,$i(a,b,e)}return dj(a,b,c,d,e)}\nfunction ej(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(fj,gj),gj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(fj,gj),gj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(fj,gj);gj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(fj,gj),gj|=d;Yi(a,b,e,c);return b.child}function hj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function dj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);Tg(b,e);c=Xh(a,b,c,d,f,e);d=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&d&&vg(b);b.flags|=1;Yi(a,b,c,e);return b.child}\nfunction ij(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;Tg(b,e);if(null===b.stateNode)jj(a,b),ph(b,c,d),rh(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=Vg(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&qh(b,g,d,l);$g=!1;var r=b.memoizedState;g.state=r;gh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||$g?(\"function\"===typeof m&&(kh(b,c,m,d),k=b.memoizedState),(h=$g||oh(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Lg(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=Vg(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&qh(b,g,d,k);$g=!1;r=b.memoizedState;g.state=r;gh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||$g?(\"function\"===typeof y&&(kh(b,c,y,d),n=b.memoizedState),(l=$g||oh(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return kj(a,b,c,d,f,e)}\nfunction kj(a,b,c,d,e,f){hj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),$i(a,b,f);d=b.stateNode;Xi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Bh(b,a.child,null,f),b.child=Bh(b,null,h,f)):Yi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function lj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);Ih(a,b.containerInfo)}\nfunction mj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Yi(a,b,c,d);return b.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction pj(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(M,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=qj(g,d,0,null),a=Ah(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=oj(c),b.memoizedState=nj,a):rj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return sj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=wh(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=wh(h,f):(f=Ah(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?oj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=nj;return d}f=a.child;a=f.sibling;d=wh(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction rj(a,b){b=qj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function tj(a,b,c,d){null!==d&&Jg(d);Bh(b,a.child,null,c);a=rj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction sj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Li(Error(p(422))),tj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=qj({mode:\"visible\",children:d.children},e,0,null);f=Ah(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Bh(b,a.child,null,g);b.child.memoizedState=oj(g);b.memoizedState=nj;return f}if(0===(b.mode&1))return tj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Li(f,d,void 0);return tj(a,b,g,d)}h=0!==(g&a.childLanes);if(Ug||h){d=R;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,Zg(a,e),mh(d,a,e,-1))}uj();d=Li(Error(p(421)));return tj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=vj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=rj(b,d.children);b.flags|=4096;return b}function wj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);Sg(a.return,b,c)}\nfunction xj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction yj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Yi(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&wj(a,c,b);else if(19===a.tag)wj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(M,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Mh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);xj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Mh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}xj(b,!0,c,null,f);break;case \"together\":xj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction jj(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function $i(a,b,c){null!==a&&(b.dependencies=a.dependencies);hh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=wh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=wh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction zj(a,b,c){switch(b.tag){case 3:lj(b);Ig();break;case 5:Kh(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:Ih(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Mg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(M,M.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return pj(a,b,c);G(M,M.current&1);a=$i(a,b,c);return null!==a?a.sibling:null}G(M,M.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return yj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(M,M.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,ej(a,b,c)}return $i(a,b,c)}var Aj,Bj,Cj,Dj;\nAj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Bj=function(){};\nCj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;Hh(Eh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Dj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Ej(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Fj(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;Jh();E(Wf);E(H);Oh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Gj(zg),zg=null));Bj(a,b);S(b);return null;case 5:Lh(b);var e=Hh(Gh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Cj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Dj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=Hh(Gh.current);Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(M);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Gj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(M.current&1)?0===T&&(T=3):uj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return Jh(),\nBj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return Rg(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(M);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Ej(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Mh(a);if(null!==g){b.flags|=128;Ej(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(M,M.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Hj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Yj=!1;break a;case 3:X=h.stateNode.containerInfo;Yj=!0;break a;case 4:X=h.stateNode.containerInfo;Yj=!0;break a}h=h.return}if(null===X)throw Error(p(160));ak(f,g,e);X=null;Yj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)ek(b,a),b=b.sibling}\nfunction ek(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:dk(b,a);fk(a);if(d&4){try{Qj(3,a,a.return),Rj(3,a)}catch(t){W(a,a.return,t)}try{Qj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);break;case 5:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:dk(b,a);fk(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:dk(b,a);fk(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:dk(b,a);fk(a);break;case 13:dk(b,a);fk(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(gk=B()));d&4&&bk(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,dk(b,a),U=l):dk(b,a);fk(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Qj(4,r,r.return);break;case 1:Mj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Mj(r,r.return);break;case 22:if(null!==r.memoizedState){hk(q);continue}}null!==y?(y.return=r,V=y):hk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:dk(b,a);fk(a);d&4&&bk(a);break;case 21:break;default:dk(b,\na),fk(a)}}function fk(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Uj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Vj(a);Xj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Vj(a);Wj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function ik(a,b,c){V=a;jk(a,b,c)}\nfunction jk(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Kj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Kj;var l=U;Kj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?kk(e):null!==k?(k.return=g,V=k):kk(e);for(;null!==f;)V=f,jk(f,b,c),f=f.sibling;V=e;Kj=h;U=l}lk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):lk(a,b,c)}}\nfunction lk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Rj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Lg(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&ih(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}ih(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Sj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function hk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction kk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Rj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Sj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Sj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar mk=Math.ceil,nk=ua.ReactCurrentDispatcher,ok=ua.ReactCurrentOwner,pk=ua.ReactCurrentBatchConfig,K=0,R=null,Y=null,Z=0,gj=0,fj=Uf(0),T=0,qk=null,hh=0,rk=0,sk=0,tk=null,uk=null,gk=0,Hj=Infinity,vk=null,Pi=!1,Qi=null,Si=null,wk=!1,xk=null,yk=0,zk=0,Ak=null,Bk=-1,Ck=0;function L(){return 0!==(K&6)?B():-1!==Bk?Bk:Bk=B()}\nfunction lh(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Ck&&(Ck=yc()),Ck;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function mh(a,b,c,d){if(50<zk)throw zk=0,Ak=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==R)a===R&&(0===(K&2)&&(rk|=c),4===T&&Dk(a,Z)),Ek(a,d),1===c&&0===K&&0===(b.mode&1)&&(Hj=B()+500,fg&&jg())}\nfunction Ek(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===R?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Fk.bind(null,a)):hg(Fk.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Gk(c,Hk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Hk(a,b){Bk=-1;Ck=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Ik()&&a.callbackNode!==c)return null;var d=uc(a,a===R?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Jk(a,d);else{b=d;var e=K;K|=2;var f=Kk();if(R!==a||Z!==b)vk=null,Hj=B()+500,Lk(a,b);do try{Mk();break}catch(h){Nk(a,h)}while(1);Qg();nk.current=f;K=e;null!==Y?b=0:(R=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Ok(a,e)));if(1===b)throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;if(6===b)Dk(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Pk(e)&&(b=Jk(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Ok(a,f))),1===b))throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Qk(a,uk,vk);break;case 3:Dk(a,d);if((d&130023424)===d&&(b=gk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){L();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),b);break}Qk(a,uk,vk);break;case 4:Dk(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),d);break}Qk(a,uk,vk);break;case 5:Qk(a,uk,vk);break;default:throw Error(p(329));}}}Ek(a,B());return a.callbackNode===c?Hk.bind(null,a):null}\nfunction Ok(a,b){var c=tk;a.current.memoizedState.isDehydrated&&(Lk(a,b).flags|=256);a=Jk(a,b);2!==a&&(b=uk,uk=c,null!==b&&Gj(b));return a}function Gj(a){null===uk?uk=a:uk.push.apply(uk,a)}\nfunction Pk(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Dk(a,b){b&=~sk;b&=~rk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Fk(a){if(0!==(K&6))throw Error(p(327));Ik();var b=uc(a,0);if(0===(b&1))return Ek(a,B()),null;var c=Jk(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Ok(a,d))}if(1===c)throw c=qk,Lk(a,0),Dk(a,b),Ek(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Qk(a,uk,vk);Ek(a,B());return null}\nfunction Rk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Hj=B()+500,fg&&jg())}}function Sk(a){null!==xk&&0===xk.tag&&0===(K&6)&&Ik();var b=K;K|=1;var c=pk.transition,d=C;try{if(pk.transition=null,C=1,a)return a()}finally{C=d,pk.transition=c,K=b,0===(K&6)&&jg()}}function Ij(){gj=fj.current;E(fj)}\nfunction Lk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:Jh();E(Wf);E(H);Oh();break;case 5:Lh(d);break;case 4:Jh();break;case 13:E(M);break;case 19:E(M);break;case 10:Rg(d.type._context);break;case 22:case 23:Ij()}c=c.return}R=a;Y=a=wh(a.current,null);Z=gj=b;T=0;qk=null;sk=rk=hh=0;uk=tk=null;if(null!==Wg){for(b=\n0;b<Wg.length;b++)if(c=Wg[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}Wg=null}return a}\nfunction Nk(a,b){do{var c=Y;try{Qg();Ph.current=ai;if(Sh){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Sh=!1}Rh=0;P=O=N=null;Th=!1;Uh=0;ok.current=null;if(null===c||null===c.return){T=1;qk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Vi(g);if(null!==y){y.flags&=-257;Wi(y,g,h,f,b);y.mode&1&&Ti(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Ti(f,l,b);uj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Vi(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Wi(J,g,h,f,b);Jg(Ki(k,h));break a}}f=k=Ki(k,h);4!==T&&(T=2);null===tk?tk=[f]:tk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Oi(f,k,b);fh(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Si||!Si.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Ri(f,h,b);fh(f,F);break a}}f=f.return}while(null!==f)}Tk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Kk(){var a=nk.current;nk.current=ai;return null===a?ai:a}\nfunction uj(){if(0===T||3===T||2===T)T=4;null===R||0===(hh&268435455)&&0===(rk&268435455)||Dk(R,Z)}function Jk(a,b){var c=K;K|=2;var d=Kk();if(R!==a||Z!==b)vk=null,Lk(a,b);do try{Uk();break}catch(e){Nk(a,e)}while(1);Qg();K=c;nk.current=d;if(null!==Y)throw Error(p(261));R=null;Z=0;return T}function Uk(){for(;null!==Y;)Vk(Y)}function Mk(){for(;null!==Y&&!cc();)Vk(Y)}function Vk(a){var b=Wk(a.alternate,a,gj);a.memoizedProps=a.pendingProps;null===b?Tk(a):Y=b;ok.current=null}\nfunction Tk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Fj(c,b,gj),null!==c){Y=c;return}}else{c=Jj(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Qk(a,b,c){var d=C,e=pk.transition;try{pk.transition=null,C=1,Xk(a,b,c,d)}finally{pk.transition=e,C=d}return null}\nfunction Xk(a,b,c,d){do Ik();while(null!==xk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===R&&(Y=R=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||wk||(wk=!0,Gk(hc,function(){Ik();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=pk.transition;pk.transition=null;\nvar g=C;C=1;var h=K;K|=4;ok.current=null;Pj(a,c);ek(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;ik(c,a,e);dc();K=h;C=g;pk.transition=f}else a.current=c;wk&&(wk=!1,xk=a,yk=e);f=a.pendingLanes;0===f&&(Si=null);mc(c.stateNode,d);Ek(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Pi)throw Pi=!1,a=Qi,Qi=null,a;0!==(yk&1)&&0!==a.tag&&Ik();f=a.pendingLanes;0!==(f&1)?a===Ak?zk++:(zk=0,Ak=a):zk=0;jg();return null}\nfunction Ik(){if(null!==xk){var a=Dc(yk),b=pk.transition,c=C;try{pk.transition=null;C=16>a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Qj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Tj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Qj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Rj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,pk.transition=b}}return!1}function Yk(a,b,c){b=Ki(c,b);b=Oi(a,b,1);a=dh(a,b,1);b=L();null!==a&&(Ac(a,1,b),Ek(a,b))}\nfunction W(a,b,c){if(3===a.tag)Yk(a,a,c);else for(;null!==b;){if(3===b.tag){Yk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Si||!Si.has(d))){a=Ki(c,a);a=Ri(b,a,1);b=dh(b,a,1);a=L();null!==b&&(Ac(b,1,a),Ek(b,a));break}}b=b.return}}\nfunction Ui(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=L();a.pingedLanes|=a.suspendedLanes&c;R===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction el(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction fl(a,b,c,d,e,f,g,h,k){a=cl(c,d,!0,a,e,f,g,h,k);a.context=el(null);c=a.current;d=L();e=lh(c);f=ch(d,e);f.callback=void 0!==b&&null!==b?b:null;dh(c,f,e);a.current.lanes=e;Ac(a,e,d);Ek(a,d);return a}function gl(a,b,c,d){var e=b.current,f=L(),g=lh(e);c=el(c);null===b.context?b.context=c:b.pendingContext=c;b=ch(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=dh(e,b,g);null!==a&&(mh(a,e,g,f),eh(a,e,g));return g}\nfunction hl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function il(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function jl(a,b){il(a,b);(a=a.alternate)&&il(a,b)}function kl(){return null}var ll=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ml(a){this._internalRoot=a}\nnl.prototype.render=ml.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));gl(a,b,null,null)};nl.prototype.unmount=ml.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Sk(function(){gl(null,a,null,null)});b[uf]=null}};function nl(a){this._internalRoot=a}\nnl.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function pl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function ql(){}\nfunction rl(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=hl(g);f.call(a)}}var g=fl(b,d,a,0,null,!1,!1,\"\",ql);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Sk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=hl(k);h.call(a)}}var k=cl(a,0,!1,null,null,!1,!1,\"\",ql);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Sk(function(){gl(b,k,c,d)});return k}\nfunction sl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=hl(g);h.call(a)}}gl(b,g,a,e)}else g=rl(c,b,a,e,d);return hl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Ek(b,B()),0===(K&6)&&(Hj=B()+500,jg()))}break;case 13:Sk(function(){var b=Zg(a,1);if(null!==b){var c=L();mh(b,a,1,c)}}),jl(a,1)}};\nFc=function(a){if(13===a.tag){var b=Zg(a,134217728);if(null!==b){var c=L();mh(b,a,134217728,c)}jl(a,134217728)}};Gc=function(a){if(13===a.tag){var b=lh(a),c=Zg(a,b);if(null!==c){var d=L();mh(c,a,b,d)}jl(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Rk;Hb=Sk;\nvar tl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Rk]},ul={findFiberByHostInstance:Wc,bundleType:0,version:\"18.2.0\",rendererPackageName:\"react-dom\"};\nvar vl={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance||\nkl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.2.0-next-9e3b772b8-20220608\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var wl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!wl.isDisabled&&wl.supportsFiber)try{kc=wl.inject(vl),lc=wl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(b))throw Error(p(200));return dl(a,b,null,c)};exports.createRoot=function(a,b){if(!ol(a))throw Error(p(299));var c=!1,d=\"\",e=ll;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=cl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ml(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Sk(a)};exports.hydrate=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!ol(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=ll;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=fl(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new nl(b)};exports.render=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!pl(a))throw Error(p(40));return a._reactRootContainer?(Sk(function(){sl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Rk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!pl(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return sl(a,b,c,!1,d)};exports.version=\"18.2.0-next-9e3b772b8-20220608\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n  exports.createRoot = m.createRoot;\n  exports.hydrateRoot = m.hydrateRoot;\n} else {\n  var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n  exports.createRoot = function(c, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.createRoot(c, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n  exports.hydrateRoot = function(c, h, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.hydrateRoot(c, h, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n}\n","'use strict';\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n  ) {\n    return;\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  try {\n    // Verify that the code above has been dead code eliminated (DCE'd).\n    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n  } catch (err) {\n    // DevTools shouldn't crash React, no matter what.\n    // We should still report in case we break this code.\n    console.error(err);\n  }\n}\n\nif (process.env.NODE_ENV === 'production') {\n  // DCE check should happen before ReactDOM bundle executes so that\n  // DevTools can report bad minification during injection.\n  checkDCE();\n  module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n  module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * @license React\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';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'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}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param  {String}      style      - The inline style.\n * @param  {Function}    [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n  var output = null;\n  if (!style || typeof style !== 'string') {\n    return output;\n  }\n\n  var declaration;\n  var declarations = parse(style);\n  var hasIterator = typeof iterator === 'function';\n  var property;\n  var value;\n\n  for (var i = 0, len = declarations.length; i < len; i++) {\n    declaration = declarations[i];\n    property = declaration.property;\n    value = declaration.value;\n\n    if (hasIterator) {\n      iterator(property, value, declaration);\n    } else if (value) {\n      output || (output = {});\n      output[property] = value;\n    }\n  }\n\n  return output;\n}\n\nmodule.exports = StyleToObject;\nmodule.exports.default = StyleToObject; // ESM support\n","/**\n * @license React\n * react-jsx-runtime.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';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.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';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n  module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict'\n\n/* global window, self */\n\n// istanbul ignore next - Don't allow Prism to run on page load in browser or\n// to start messaging from workers.\nvar ctx =\n  typeof globalThis === 'object'\n    ? globalThis\n    : typeof self === 'object'\n    ? self\n    : typeof window === 'object'\n    ? window\n    : typeof global === 'object'\n    ? global\n    : {}\n\nvar restore = capture()\n\nctx.Prism = {manual: true, disableWorkerMessageHandler: true}\n\n// Load all stuff in `prism.js` itself, except for `prism-file-highlight.js`.\n// The wrapped non-leaky grammars are loaded instead of Prism’s originals.\nvar h = require('hastscript')\nvar decode = require('parse-entities')\nvar Prism = require('prismjs/components/prism-core')\nvar markup = require('./lang/markup')\nvar css = require('./lang/css')\nvar clike = require('./lang/clike')\nvar js = require('./lang/javascript')\n\nrestore()\n\nvar own = {}.hasOwnProperty\n\n// Inherit.\nfunction Refractor() {}\n\nRefractor.prototype = Prism\n\n// Construct.\nvar refract = new Refractor()\n\n// Expose.\nmodule.exports = refract\n\n// Create.\nrefract.highlight = highlight\nrefract.register = register\nrefract.alias = alias\nrefract.registered = registered\nrefract.listLanguages = listLanguages\n\n// Register bundled grammars.\nregister(markup)\nregister(css)\nregister(clike)\nregister(js)\n\nrefract.util.encode = encode\nrefract.Token.stringify = stringify\n\nfunction register(grammar) {\n  if (typeof grammar !== 'function' || !grammar.displayName) {\n    throw new Error('Expected `function` for `grammar`, got `' + grammar + '`')\n  }\n\n  // Do not duplicate registrations.\n  if (refract.languages[grammar.displayName] === undefined) {\n    grammar(refract)\n  }\n}\n\nfunction alias(name, alias) {\n  var languages = refract.languages\n  var map = name\n  var key\n  var list\n  var length\n  var index\n\n  if (alias) {\n    map = {}\n    map[name] = alias\n  }\n\n  for (key in map) {\n    list = map[key]\n    list = typeof list === 'string' ? [list] : list\n    length = list.length\n    index = -1\n\n    while (++index < length) {\n      languages[list[index]] = languages[key]\n    }\n  }\n}\n\nfunction highlight(value, name) {\n  var sup = Prism.highlight\n  var grammar\n\n  if (typeof value !== 'string') {\n    throw new Error('Expected `string` for `value`, got `' + value + '`')\n  }\n\n  // `name` is a grammar object.\n  if (refract.util.type(name) === 'Object') {\n    grammar = name\n    name = null\n  } else {\n    if (typeof name !== 'string') {\n      throw new Error('Expected `string` for `name`, got `' + name + '`')\n    }\n\n    if (own.call(refract.languages, name)) {\n      grammar = refract.languages[name]\n    } else {\n      throw new Error('Unknown language: `' + name + '` is not registered')\n    }\n  }\n\n  return sup.call(this, value, grammar, name)\n}\n\nfunction registered(language) {\n  if (typeof language !== 'string') {\n    throw new Error('Expected `string` for `language`, got `' + language + '`')\n  }\n\n  return own.call(refract.languages, language)\n}\n\nfunction listLanguages() {\n  var languages = refract.languages\n  var list = []\n  var language\n\n  for (language in languages) {\n    if (\n      own.call(languages, language) &&\n      typeof languages[language] === 'object'\n    ) {\n      list.push(language)\n    }\n  }\n\n  return list\n}\n\nfunction stringify(value, language, parent) {\n  var env\n\n  if (typeof value === 'string') {\n    return {type: 'text', value: value}\n  }\n\n  if (refract.util.type(value) === 'Array') {\n    return stringifyAll(value, language)\n  }\n\n  env = {\n    type: value.type,\n    content: refract.Token.stringify(value.content, language, parent),\n    tag: 'span',\n    classes: ['token', value.type],\n    attributes: {},\n    language: language,\n    parent: parent\n  }\n\n  if (value.alias) {\n    env.classes = env.classes.concat(value.alias)\n  }\n\n  refract.hooks.run('wrap', env)\n\n  return h(\n    env.tag + '.' + env.classes.join('.'),\n    attributes(env.attributes),\n    env.content\n  )\n}\n\nfunction stringifyAll(values, language) {\n  var result = []\n  var length = values.length\n  var index = -1\n  var value\n\n  while (++index < length) {\n    value = values[index]\n\n    if (value !== '' && value !== null && value !== undefined) {\n      result.push(value)\n    }\n  }\n\n  index = -1\n  length = result.length\n\n  while (++index < length) {\n    value = result[index]\n    result[index] = refract.Token.stringify(value, language, result)\n  }\n\n  return result\n}\n\nfunction encode(tokens) {\n  return tokens\n}\n\nfunction attributes(attrs) {\n  var key\n\n  for (key in attrs) {\n    attrs[key] = decode(attrs[key])\n  }\n\n  return attrs\n}\n\nfunction capture() {\n  var defined = 'Prism' in ctx\n  /* istanbul ignore next */\n  var current = defined ? ctx.Prism : undefined\n\n  return restore\n\n  function restore() {\n    /* istanbul ignore else - Clean leaks after Prism. */\n    if (defined) {\n      ctx.Prism = current\n    } else {\n      delete ctx.Prism\n    }\n\n    defined = undefined\n    current = undefined\n  }\n}\n","'use strict'\n\nvar refractor = require('./core.js')\n\nmodule.exports = refractor\n\nrefractor.register(require('./lang/abap.js'))\nrefractor.register(require('./lang/abnf.js'))\nrefractor.register(require('./lang/actionscript.js'))\nrefractor.register(require('./lang/ada.js'))\nrefractor.register(require('./lang/agda.js'))\nrefractor.register(require('./lang/al.js'))\nrefractor.register(require('./lang/antlr4.js'))\nrefractor.register(require('./lang/apacheconf.js'))\nrefractor.register(require('./lang/apex.js'))\nrefractor.register(require('./lang/apl.js'))\nrefractor.register(require('./lang/applescript.js'))\nrefractor.register(require('./lang/aql.js'))\nrefractor.register(require('./lang/arduino.js'))\nrefractor.register(require('./lang/arff.js'))\nrefractor.register(require('./lang/asciidoc.js'))\nrefractor.register(require('./lang/asm6502.js'))\nrefractor.register(require('./lang/asmatmel.js'))\nrefractor.register(require('./lang/aspnet.js'))\nrefractor.register(require('./lang/autohotkey.js'))\nrefractor.register(require('./lang/autoit.js'))\nrefractor.register(require('./lang/avisynth.js'))\nrefractor.register(require('./lang/avro-idl.js'))\nrefractor.register(require('./lang/bash.js'))\nrefractor.register(require('./lang/basic.js'))\nrefractor.register(require('./lang/batch.js'))\nrefractor.register(require('./lang/bbcode.js'))\nrefractor.register(require('./lang/bicep.js'))\nrefractor.register(require('./lang/birb.js'))\nrefractor.register(require('./lang/bison.js'))\nrefractor.register(require('./lang/bnf.js'))\nrefractor.register(require('./lang/brainfuck.js'))\nrefractor.register(require('./lang/brightscript.js'))\nrefractor.register(require('./lang/bro.js'))\nrefractor.register(require('./lang/bsl.js'))\nrefractor.register(require('./lang/c.js'))\nrefractor.register(require('./lang/cfscript.js'))\nrefractor.register(require('./lang/chaiscript.js'))\nrefractor.register(require('./lang/cil.js'))\nrefractor.register(require('./lang/clojure.js'))\nrefractor.register(require('./lang/cmake.js'))\nrefractor.register(require('./lang/cobol.js'))\nrefractor.register(require('./lang/coffeescript.js'))\nrefractor.register(require('./lang/concurnas.js'))\nrefractor.register(require('./lang/coq.js'))\nrefractor.register(require('./lang/cpp.js'))\nrefractor.register(require('./lang/crystal.js'))\nrefractor.register(require('./lang/csharp.js'))\nrefractor.register(require('./lang/cshtml.js'))\nrefractor.register(require('./lang/csp.js'))\nrefractor.register(require('./lang/css-extras.js'))\nrefractor.register(require('./lang/csv.js'))\nrefractor.register(require('./lang/cypher.js'))\nrefractor.register(require('./lang/d.js'))\nrefractor.register(require('./lang/dart.js'))\nrefractor.register(require('./lang/dataweave.js'))\nrefractor.register(require('./lang/dax.js'))\nrefractor.register(require('./lang/dhall.js'))\nrefractor.register(require('./lang/diff.js'))\nrefractor.register(require('./lang/django.js'))\nrefractor.register(require('./lang/dns-zone-file.js'))\nrefractor.register(require('./lang/docker.js'))\nrefractor.register(require('./lang/dot.js'))\nrefractor.register(require('./lang/ebnf.js'))\nrefractor.register(require('./lang/editorconfig.js'))\nrefractor.register(require('./lang/eiffel.js'))\nrefractor.register(require('./lang/ejs.js'))\nrefractor.register(require('./lang/elixir.js'))\nrefractor.register(require('./lang/elm.js'))\nrefractor.register(require('./lang/erb.js'))\nrefractor.register(require('./lang/erlang.js'))\nrefractor.register(require('./lang/etlua.js'))\nrefractor.register(require('./lang/excel-formula.js'))\nrefractor.register(require('./lang/factor.js'))\nrefractor.register(require('./lang/false.js'))\nrefractor.register(require('./lang/firestore-security-rules.js'))\nrefractor.register(require('./lang/flow.js'))\nrefractor.register(require('./lang/fortran.js'))\nrefractor.register(require('./lang/fsharp.js'))\nrefractor.register(require('./lang/ftl.js'))\nrefractor.register(require('./lang/gap.js'))\nrefractor.register(require('./lang/gcode.js'))\nrefractor.register(require('./lang/gdscript.js'))\nrefractor.register(require('./lang/gedcom.js'))\nrefractor.register(require('./lang/gherkin.js'))\nrefractor.register(require('./lang/git.js'))\nrefractor.register(require('./lang/glsl.js'))\nrefractor.register(require('./lang/gml.js'))\nrefractor.register(require('./lang/gn.js'))\nrefractor.register(require('./lang/go-module.js'))\nrefractor.register(require('./lang/go.js'))\nrefractor.register(require('./lang/graphql.js'))\nrefractor.register(require('./lang/groovy.js'))\nrefractor.register(require('./lang/haml.js'))\nrefractor.register(require('./lang/handlebars.js'))\nrefractor.register(require('./lang/haskell.js'))\nrefractor.register(require('./lang/haxe.js'))\nrefractor.register(require('./lang/hcl.js'))\nrefractor.register(require('./lang/hlsl.js'))\nrefractor.register(require('./lang/hoon.js'))\nrefractor.register(require('./lang/hpkp.js'))\nrefractor.register(require('./lang/hsts.js'))\nrefractor.register(require('./lang/http.js'))\nrefractor.register(require('./lang/ichigojam.js'))\nrefractor.register(require('./lang/icon.js'))\nrefractor.register(require('./lang/icu-message-format.js'))\nrefractor.register(require('./lang/idris.js'))\nrefractor.register(require('./lang/iecst.js'))\nrefractor.register(require('./lang/ignore.js'))\nrefractor.register(require('./lang/inform7.js'))\nrefractor.register(require('./lang/ini.js'))\nrefractor.register(require('./lang/io.js'))\nrefractor.register(require('./lang/j.js'))\nrefractor.register(require('./lang/java.js'))\nrefractor.register(require('./lang/javadoc.js'))\nrefractor.register(require('./lang/javadoclike.js'))\nrefractor.register(require('./lang/javastacktrace.js'))\nrefractor.register(require('./lang/jexl.js'))\nrefractor.register(require('./lang/jolie.js'))\nrefractor.register(require('./lang/jq.js'))\nrefractor.register(require('./lang/js-extras.js'))\nrefractor.register(require('./lang/js-templates.js'))\nrefractor.register(require('./lang/jsdoc.js'))\nrefractor.register(require('./lang/json.js'))\nrefractor.register(require('./lang/json5.js'))\nrefractor.register(require('./lang/jsonp.js'))\nrefractor.register(require('./lang/jsstacktrace.js'))\nrefractor.register(require('./lang/jsx.js'))\nrefractor.register(require('./lang/julia.js'))\nrefractor.register(require('./lang/keepalived.js'))\nrefractor.register(require('./lang/keyman.js'))\nrefractor.register(require('./lang/kotlin.js'))\nrefractor.register(require('./lang/kumir.js'))\nrefractor.register(require('./lang/kusto.js'))\nrefractor.register(require('./lang/latex.js'))\nrefractor.register(require('./lang/latte.js'))\nrefractor.register(require('./lang/less.js'))\nrefractor.register(require('./lang/lilypond.js'))\nrefractor.register(require('./lang/liquid.js'))\nrefractor.register(require('./lang/lisp.js'))\nrefractor.register(require('./lang/livescript.js'))\nrefractor.register(require('./lang/llvm.js'))\nrefractor.register(require('./lang/log.js'))\nrefractor.register(require('./lang/lolcode.js'))\nrefractor.register(require('./lang/lua.js'))\nrefractor.register(require('./lang/magma.js'))\nrefractor.register(require('./lang/makefile.js'))\nrefractor.register(require('./lang/markdown.js'))\nrefractor.register(require('./lang/markup-templating.js'))\nrefractor.register(require('./lang/matlab.js'))\nrefractor.register(require('./lang/maxscript.js'))\nrefractor.register(require('./lang/mel.js'))\nrefractor.register(require('./lang/mermaid.js'))\nrefractor.register(require('./lang/mizar.js'))\nrefractor.register(require('./lang/mongodb.js'))\nrefractor.register(require('./lang/monkey.js'))\nrefractor.register(require('./lang/moonscript.js'))\nrefractor.register(require('./lang/n1ql.js'))\nrefractor.register(require('./lang/n4js.js'))\nrefractor.register(require('./lang/nand2tetris-hdl.js'))\nrefractor.register(require('./lang/naniscript.js'))\nrefractor.register(require('./lang/nasm.js'))\nrefractor.register(require('./lang/neon.js'))\nrefractor.register(require('./lang/nevod.js'))\nrefractor.register(require('./lang/nginx.js'))\nrefractor.register(require('./lang/nim.js'))\nrefractor.register(require('./lang/nix.js'))\nrefractor.register(require('./lang/nsis.js'))\nrefractor.register(require('./lang/objectivec.js'))\nrefractor.register(require('./lang/ocaml.js'))\nrefractor.register(require('./lang/opencl.js'))\nrefractor.register(require('./lang/openqasm.js'))\nrefractor.register(require('./lang/oz.js'))\nrefractor.register(require('./lang/parigp.js'))\nrefractor.register(require('./lang/parser.js'))\nrefractor.register(require('./lang/pascal.js'))\nrefractor.register(require('./lang/pascaligo.js'))\nrefractor.register(require('./lang/pcaxis.js'))\nrefractor.register(require('./lang/peoplecode.js'))\nrefractor.register(require('./lang/perl.js'))\nrefractor.register(require('./lang/php-extras.js'))\nrefractor.register(require('./lang/php.js'))\nrefractor.register(require('./lang/phpdoc.js'))\nrefractor.register(require('./lang/plsql.js'))\nrefractor.register(require('./lang/powerquery.js'))\nrefractor.register(require('./lang/powershell.js'))\nrefractor.register(require('./lang/processing.js'))\nrefractor.register(require('./lang/prolog.js'))\nrefractor.register(require('./lang/promql.js'))\nrefractor.register(require('./lang/properties.js'))\nrefractor.register(require('./lang/protobuf.js'))\nrefractor.register(require('./lang/psl.js'))\nrefractor.register(require('./lang/pug.js'))\nrefractor.register(require('./lang/puppet.js'))\nrefractor.register(require('./lang/pure.js'))\nrefractor.register(require('./lang/purebasic.js'))\nrefractor.register(require('./lang/purescript.js'))\nrefractor.register(require('./lang/python.js'))\nrefractor.register(require('./lang/q.js'))\nrefractor.register(require('./lang/qml.js'))\nrefractor.register(require('./lang/qore.js'))\nrefractor.register(require('./lang/qsharp.js'))\nrefractor.register(require('./lang/r.js'))\nrefractor.register(require('./lang/racket.js'))\nrefractor.register(require('./lang/reason.js'))\nrefractor.register(require('./lang/regex.js'))\nrefractor.register(require('./lang/rego.js'))\nrefractor.register(require('./lang/renpy.js'))\nrefractor.register(require('./lang/rest.js'))\nrefractor.register(require('./lang/rip.js'))\nrefractor.register(require('./lang/roboconf.js'))\nrefractor.register(require('./lang/robotframework.js'))\nrefractor.register(require('./lang/ruby.js'))\nrefractor.register(require('./lang/rust.js'))\nrefractor.register(require('./lang/sas.js'))\nrefractor.register(require('./lang/sass.js'))\nrefractor.register(require('./lang/scala.js'))\nrefractor.register(require('./lang/scheme.js'))\nrefractor.register(require('./lang/scss.js'))\nrefractor.register(require('./lang/shell-session.js'))\nrefractor.register(require('./lang/smali.js'))\nrefractor.register(require('./lang/smalltalk.js'))\nrefractor.register(require('./lang/smarty.js'))\nrefractor.register(require('./lang/sml.js'))\nrefractor.register(require('./lang/solidity.js'))\nrefractor.register(require('./lang/solution-file.js'))\nrefractor.register(require('./lang/soy.js'))\nrefractor.register(require('./lang/sparql.js'))\nrefractor.register(require('./lang/splunk-spl.js'))\nrefractor.register(require('./lang/sqf.js'))\nrefractor.register(require('./lang/sql.js'))\nrefractor.register(require('./lang/squirrel.js'))\nrefractor.register(require('./lang/stan.js'))\nrefractor.register(require('./lang/stylus.js'))\nrefractor.register(require('./lang/swift.js'))\nrefractor.register(require('./lang/systemd.js'))\nrefractor.register(require('./lang/t4-cs.js'))\nrefractor.register(require('./lang/t4-templating.js'))\nrefractor.register(require('./lang/t4-vb.js'))\nrefractor.register(require('./lang/tap.js'))\nrefractor.register(require('./lang/tcl.js'))\nrefractor.register(require('./lang/textile.js'))\nrefractor.register(require('./lang/toml.js'))\nrefractor.register(require('./lang/tremor.js'))\nrefractor.register(require('./lang/tsx.js'))\nrefractor.register(require('./lang/tt2.js'))\nrefractor.register(require('./lang/turtle.js'))\nrefractor.register(require('./lang/twig.js'))\nrefractor.register(require('./lang/typescript.js'))\nrefractor.register(require('./lang/typoscript.js'))\nrefractor.register(require('./lang/unrealscript.js'))\nrefractor.register(require('./lang/uorazor.js'))\nrefractor.register(require('./lang/uri.js'))\nrefractor.register(require('./lang/v.js'))\nrefractor.register(require('./lang/vala.js'))\nrefractor.register(require('./lang/vbnet.js'))\nrefractor.register(require('./lang/velocity.js'))\nrefractor.register(require('./lang/verilog.js'))\nrefractor.register(require('./lang/vhdl.js'))\nrefractor.register(require('./lang/vim.js'))\nrefractor.register(require('./lang/visual-basic.js'))\nrefractor.register(require('./lang/warpscript.js'))\nrefractor.register(require('./lang/wasm.js'))\nrefractor.register(require('./lang/web-idl.js'))\nrefractor.register(require('./lang/wiki.js'))\nrefractor.register(require('./lang/wolfram.js'))\nrefractor.register(require('./lang/wren.js'))\nrefractor.register(require('./lang/xeora.js'))\nrefractor.register(require('./lang/xml-doc.js'))\nrefractor.register(require('./lang/xojo.js'))\nrefractor.register(require('./lang/xquery.js'))\nrefractor.register(require('./lang/yaml.js'))\nrefractor.register(require('./lang/yang.js'))\nrefractor.register(require('./lang/zig.js'))\n","'use strict'\n\nmodule.exports = abap\nabap.displayName = 'abap'\nabap.aliases = []\nfunction abap(Prism) {\n  Prism.languages.abap = {\n    comment: /^\\*.*/m,\n    string: /(`|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n    'string-template': {\n      pattern: /([|}])(?:\\\\.|[^\\\\|{\\r\\n])*(?=[|{])/,\n      lookbehind: true,\n      alias: 'string'\n    },\n    /* End Of Line comments should not interfere with strings when the\nquote character occurs within them. We assume a string being highlighted\ninside an EOL comment is more acceptable than the opposite.\n*/\n    'eol-comment': {\n      pattern: /(^|\\s)\".*/m,\n      lookbehind: true,\n      alias: 'comment'\n    },\n    keyword: {\n      pattern:\n        /(\\s|\\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\\/MM\\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\\/DD\\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\\/MM\\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\\/DD\\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\\b/i,\n      lookbehind: true\n    },\n    /* Numbers can be only integers. Decimal or Hex appear only as strings */\n    number: /\\b\\d+\\b/,\n    /* Operators must always be surrounded by whitespace, they cannot be put\nadjacent to operands.\n*/\n    operator: {\n      pattern: /(\\s)(?:\\*\\*?|<[=>]?|>=?|\\?=|[-+\\/=])(?=\\s)/,\n      lookbehind: true\n    },\n    'string-operator': {\n      pattern: /(\\s)&&?(?=\\s)/,\n      lookbehind: true,\n      /* The official editor highlights */\n      alias: 'keyword'\n    },\n    'token-operator': [\n      {\n        /* Special operators used to access structure components, class methods/attributes, etc. */\n        pattern: /(\\w)(?:->?|=>|[~|{}])(?=\\w)/,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      {\n        /* Special tokens used do delimit string templates */\n        pattern: /[|{}]/,\n        alias: 'punctuation'\n      }\n    ],\n    punctuation: /[,.:()]/\n  }\n}\n","'use strict'\n\nmodule.exports = abnf\nabnf.displayName = 'abnf'\nabnf.aliases = []\nfunction abnf(Prism) {\n  ;(function (Prism) {\n    var coreRules =\n      '(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)'\n    Prism.languages.abnf = {\n      comment: /;.*/,\n      string: {\n        pattern: /(?:%[is])?\"[^\"\\n\\r]*\"/,\n        greedy: true,\n        inside: {\n          punctuation: /^%[is]/\n        }\n      },\n      range: {\n        pattern: /%(?:b[01]+-[01]+|d\\d+-\\d+|x[A-F\\d]+-[A-F\\d]+)/i,\n        alias: 'number'\n      },\n      terminal: {\n        pattern:\n          /%(?:b[01]+(?:\\.[01]+)*|d\\d+(?:\\.\\d+)*|x[A-F\\d]+(?:\\.[A-F\\d]+)*)/i,\n        alias: 'number'\n      },\n      repetition: {\n        pattern: /(^|[^\\w-])(?:\\d*\\*\\d*|\\d+)/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      definition: {\n        pattern: /(^[ \\t]*)(?:[a-z][\\w-]*|<[^<>\\r\\n]*>)(?=\\s*=)/m,\n        lookbehind: true,\n        alias: 'keyword',\n        inside: {\n          punctuation: /<|>/\n        }\n      },\n      'core-rule': {\n        pattern: RegExp(\n          '(?:(^|[^<\\\\w-])' + coreRules + '|<' + coreRules + '>)(?![\\\\w-])',\n          'i'\n        ),\n        lookbehind: true,\n        alias: ['rule', 'constant'],\n        inside: {\n          punctuation: /<|>/\n        }\n      },\n      rule: {\n        pattern: /(^|[^<\\w-])[a-z][\\w-]*|<[^<>\\r\\n]*>/i,\n        lookbehind: true,\n        inside: {\n          punctuation: /<|>/\n        }\n      },\n      operator: /=\\/?|\\//,\n      punctuation: /[()\\[\\]]/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = actionscript\nactionscript.displayName = 'actionscript'\nactionscript.aliases = []\nfunction actionscript(Prism) {\n  Prism.languages.actionscript = Prism.languages.extend('javascript', {\n    keyword:\n      /\\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\\b/,\n    operator: /\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/\n  })\n  Prism.languages.actionscript['class-name'].alias = 'function' // doesn't work with AS because AS is too complex\n  delete Prism.languages.actionscript['parameter']\n  delete Prism.languages.actionscript['literal-property']\n  if (Prism.languages.markup) {\n    Prism.languages.insertBefore('actionscript', 'string', {\n      xml: {\n        pattern:\n          /(^|[^.])<\\/?\\w+(?:\\s+[^\\s>\\/=]+=(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2)*\\s*\\/?>/,\n        lookbehind: true,\n        inside: Prism.languages.markup\n      }\n    })\n  }\n}\n","'use strict'\n\nmodule.exports = ada\nada.displayName = 'ada'\nada.aliases = []\nfunction ada(Prism) {\n  Prism.languages.ada = {\n    comment: /--.*/,\n    string: /\"(?:\"\"|[^\"\\r\\f\\n])*\"/,\n    number: [\n      {\n        pattern:\n          /\\b\\d(?:_?\\d)*#[\\dA-F](?:_?[\\dA-F])*(?:\\.[\\dA-F](?:_?[\\dA-F])*)?#(?:E[+-]?\\d(?:_?\\d)*)?/i\n      },\n      {\n        pattern: /\\b\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:E[+-]?\\d(?:_?\\d)*)?\\b/i\n      }\n    ],\n    'attr-name': /\\b'\\w+/,\n    keyword:\n      /\\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|new|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|return|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\\b/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    operator: /<[=>]?|>=?|=>?|:=|\\/=?|\\*\\*?|[&+-]/,\n    punctuation: /\\.\\.?|[,;():]/,\n    char: /'.'/,\n    variable: /\\b[a-z](?:\\w)*\\b/i\n  }\n}\n","'use strict'\n\nmodule.exports = agda\nagda.displayName = 'agda'\nagda.aliases = []\nfunction agda(Prism) {\n  ;(function (Prism) {\n    Prism.languages.agda = {\n      comment: /\\{-[\\s\\S]*?(?:-\\}|$)|--.*/,\n      string: {\n        pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n        greedy: true\n      },\n      punctuation: /[(){}⦃⦄.;@]/,\n      'class-name': {\n        pattern: /((?:data|record) +)\\S+/,\n        lookbehind: true\n      },\n      function: {\n        pattern: /(^[ \\t]*)(?!\\s)[^:\\r\\n]+(?=:)/m,\n        lookbehind: true\n      },\n      operator: {\n        pattern: /(^\\s*|\\s)(?:[=|:∀→λ\\\\?_]|->)(?=\\s)/,\n        lookbehind: true\n      },\n      keyword:\n        /\\b(?:Set|abstract|constructor|data|eta-equality|field|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\\b/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = al\nal.displayName = 'al'\nal.aliases = []\nfunction al(Prism) {\n  // based on https://github.com/microsoft/AL/blob/master/grammar/alsyntax.tmlanguage\n  Prism.languages.al = {\n    comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n    string: {\n      pattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n      greedy: true\n    },\n    function: {\n      pattern:\n        /(\\b(?:event|procedure|trigger)\\s+|(?:^|[^.])\\.\\s*)[a-z_]\\w*(?=\\s*\\()/i,\n      lookbehind: true\n    },\n    keyword: [\n      // keywords\n      /\\b(?:array|asserterror|begin|break|case|do|downto|else|end|event|exit|for|foreach|function|if|implements|in|indataset|interface|internal|local|of|procedure|program|protected|repeat|runonclient|securityfiltering|suppressdispose|temporary|then|to|trigger|until|var|while|with|withevents)\\b/i, // objects and metadata that are used like keywords\n      /\\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\\b/i\n    ],\n    number:\n      /\\b(?:0x[\\da-f]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)(?:F|LL?|U(?:LL?)?)?\\b/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    variable: /\\b(?:Curr(?:FieldNo|Page|Report)|x?Rec|RequestOptionsPage)\\b/,\n    'class-name':\n      /\\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\\b/i,\n    operator: /\\.\\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\\b(?:and|div|mod|not|or|xor)\\b/i,\n    punctuation: /[()\\[\\]{}:.;,]/\n  }\n}\n","'use strict'\n\nmodule.exports = antlr4\nantlr4.displayName = 'antlr4'\nantlr4.aliases = ['g4']\nfunction antlr4(Prism) {\n  Prism.languages.antlr4 = {\n    comment: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n    string: {\n      pattern: /'(?:\\\\.|[^\\\\'\\r\\n])*'/,\n      greedy: true\n    },\n    'character-class': {\n      pattern: /\\[(?:\\\\.|[^\\\\\\]\\r\\n])*\\]/,\n      greedy: true,\n      alias: 'regex',\n      inside: {\n        range: {\n          pattern: /([^[]|(?:^|[^\\\\])(?:\\\\\\\\)*\\\\\\[)-(?!\\])/,\n          lookbehind: true,\n          alias: 'punctuation'\n        },\n        escape:\n          /\\\\(?:u(?:[a-fA-F\\d]{4}|\\{[a-fA-F\\d]+\\})|[pP]\\{[=\\w-]+\\}|[^\\r\\nupP])/,\n        punctuation: /[\\[\\]]/\n      }\n    },\n    action: {\n      pattern: /\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\}/,\n      greedy: true,\n      inside: {\n        content: {\n          // this might be C, C++, Python, Java, C#, or any other language ANTLR4 compiles to\n          pattern: /(\\{)[\\s\\S]+(?=\\})/,\n          lookbehind: true\n        },\n        punctuation: /[{}]/\n      }\n    },\n    command: {\n      pattern:\n        /(->\\s*(?!\\s))(?:\\s*(?:,\\s*)?\\b[a-z]\\w*(?:\\s*\\([^()\\r\\n]*\\))?)+(?=\\s*;)/i,\n      lookbehind: true,\n      inside: {\n        function: /\\b\\w+(?=\\s*(?:[,(]|$))/,\n        punctuation: /[,()]/\n      }\n    },\n    annotation: {\n      pattern: /@\\w+(?:::\\w+)*/,\n      alias: 'keyword'\n    },\n    label: {\n      pattern: /#[ \\t]*\\w+/,\n      alias: 'punctuation'\n    },\n    keyword:\n      /\\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\\b/,\n    definition: [\n      {\n        pattern: /\\b[a-z]\\w*(?=\\s*:)/,\n        alias: ['rule', 'class-name']\n      },\n      {\n        pattern: /\\b[A-Z]\\w*(?=\\s*:)/,\n        alias: ['token', 'constant']\n      }\n    ],\n    constant: /\\b[A-Z][A-Z_]*\\b/,\n    operator: /\\.\\.|->|[|~]|[*+?]\\??/,\n    punctuation: /[;:()=]/\n  }\n  Prism.languages.g4 = Prism.languages.antlr4\n}\n","'use strict'\n\nmodule.exports = apacheconf\napacheconf.displayName = 'apacheconf'\napacheconf.aliases = []\nfunction apacheconf(Prism) {\n  Prism.languages.apacheconf = {\n    comment: /#.*/,\n    'directive-inline': {\n      pattern:\n        /(^[\\t ]*)\\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|Type|UserFile|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|Limit(?:InternalRecursion|Request(?:Body|Fields|FieldSize|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|SRPUnknownUserSeed|SRPVerifierFile|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UserName|UseStapling|VerifyClient|VerifyDepth)|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\\b/im,\n      lookbehind: true,\n      alias: 'property'\n    },\n    'directive-block': {\n      pattern:\n        /<\\/?\\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\\b.*>/i,\n      inside: {\n        'directive-block': {\n          pattern: /^<\\/?\\w+/,\n          inside: {\n            punctuation: /^<\\/?/\n          },\n          alias: 'tag'\n        },\n        'directive-block-parameter': {\n          pattern: /.*[^>]/,\n          inside: {\n            punctuation: /:/,\n            string: {\n              pattern: /(\"|').*\\1/,\n              inside: {\n                variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n              }\n            }\n          },\n          alias: 'attr-value'\n        },\n        punctuation: />/\n      },\n      alias: 'tag'\n    },\n    'directive-flags': {\n      pattern: /\\[(?:[\\w=],?)+\\]/,\n      alias: 'keyword'\n    },\n    string: {\n      pattern: /(\"|').*\\1/,\n      inside: {\n        variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n      }\n    },\n    variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/,\n    regex: /\\^?.*\\$|\\^.*\\$?/\n  }\n}\n","'use strict'\nvar refractorSql = require('./sql.js')\nmodule.exports = apex\napex.displayName = 'apex'\napex.aliases = []\nfunction apex(Prism) {\n  Prism.register(refractorSql)\n  ;(function (Prism) {\n    var keywords =\n      /\\b(?:(?:after|before)(?=\\s+[a-z])|abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|get(?=\\s*[{};])|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|(?:inherited|with|without)\\s+sharing)\\b/i\n    var className =\n      /\\b(?:(?=[a-z_]\\w*\\s*[<\\[])|(?!<keyword>))[A-Z_]\\w*(?:\\s*\\.\\s*[A-Z_]\\w*)*\\b(?:\\s*(?:\\[\\s*\\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source.replace(\n        /<keyword>/g,\n        function () {\n          return keywords.source\n        }\n      )\n    /** @param {string} pattern */\n    function insertClassName(pattern) {\n      return RegExp(\n        pattern.replace(/<CLASS-NAME>/g, function () {\n          return className\n        }),\n        'i'\n      )\n    }\n    var classNameInside = {\n      keyword: keywords,\n      punctuation: /[()\\[\\]{};,:.<>]/\n    }\n    Prism.languages.apex = {\n      comment: Prism.languages.clike.comment,\n      string: Prism.languages.clike.string,\n      sql: {\n        pattern: /((?:[=,({:]|\\breturn)\\s*)\\[[^\\[\\]]*\\]/i,\n        lookbehind: true,\n        greedy: true,\n        alias: 'language-sql',\n        inside: Prism.languages.sql\n      },\n      annotation: {\n        pattern: /@\\w+\\b/,\n        alias: 'punctuation'\n      },\n      'class-name': [\n        {\n          pattern: insertClassName(\n            /(\\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\\s+\\w+\\s+on)\\s+)<CLASS-NAME>/\n              .source\n          ),\n          lookbehind: true,\n          inside: classNameInside\n        },\n        {\n          // cast\n          pattern: insertClassName(\n            /(\\(\\s*)<CLASS-NAME>(?=\\s*\\)\\s*[\\w(])/.source\n          ),\n          lookbehind: true,\n          inside: classNameInside\n        },\n        {\n          // variable/parameter declaration and return types\n          pattern: insertClassName(/<CLASS-NAME>(?=\\s*\\w+\\s*[;=,(){:])/.source),\n          inside: classNameInside\n        }\n      ],\n      trigger: {\n        pattern: /(\\btrigger\\s+)\\w+\\b/i,\n        lookbehind: true,\n        alias: 'class-name'\n      },\n      keyword: keywords,\n      function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n      boolean: /\\b(?:false|true)\\b/i,\n      number: /(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d+|L)?)\\b/i,\n      operator:\n        /[!=](?:==?)?|\\?\\.?|&&|\\|\\||--|\\+\\+|[-+*/^&|]=?|:|<<?=?|>{1,3}=?/,\n      punctuation: /[()\\[\\]{};,.]/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = apl\napl.displayName = 'apl'\napl.aliases = []\nfunction apl(Prism) {\n  Prism.languages.apl = {\n    comment: /(?:⍝|#[! ]).*$/m,\n    string: {\n      pattern: /'(?:[^'\\r\\n]|'')*'/,\n      greedy: true\n    },\n    number:\n      /¯?(?:\\d*\\.?\\b\\d+(?:e[+¯]?\\d+)?|¯|∞)(?:j¯?(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+¯]?\\d+)?|¯|∞))?/i,\n    statement: /:[A-Z][a-z][A-Za-z]*\\b/,\n    'system-function': {\n      pattern: /⎕[A-Z]+/i,\n      alias: 'function'\n    },\n    constant: /[⍬⌾#⎕⍞]/,\n    function: /[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/,\n    'monadic-operator': {\n      pattern: /[\\\\\\/⌿⍀¨⍨⌶&∥]/,\n      alias: 'operator'\n    },\n    'dyadic-operator': {\n      pattern: /[.⍣⍠⍤∘⌸@⌺⍥]/,\n      alias: 'operator'\n    },\n    assignment: {\n      pattern: /←/,\n      alias: 'keyword'\n    },\n    punctuation: /[\\[;\\]()◇⋄]/,\n    dfn: {\n      pattern: /[{}⍺⍵⍶⍹∇⍫:]/,\n      alias: 'builtin'\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = applescript\napplescript.displayName = 'applescript'\napplescript.aliases = []\nfunction applescript(Prism) {\n  Prism.languages.applescript = {\n    comment: [\n      // Allow one level of nesting\n      /\\(\\*(?:\\(\\*(?:[^*]|\\*(?!\\)))*\\*\\)|(?!\\(\\*)[\\s\\S])*?\\*\\)/,\n      /--.+/,\n      /#.+/\n    ],\n    string: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?\\b/i,\n    operator: [\n      /[&=≠≤≥*+\\-\\/÷^]|[<>]=?/,\n      /\\b(?:(?:begin|end|start)s? with|(?:contains?|(?:does not|doesn't) contain)|(?:is|isn't|is not) (?:contained by|in)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:comes|(?:does not|doesn't) come) (?:after|before)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equal to|equals|is not|isn't)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|as|div|mod|not|or))\\b/\n    ],\n    keyword:\n      /\\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\b/,\n    'class-name':\n      /\\b(?:POSIX file|RGB color|alias|application|boolean|centimeters|centimetres|class|constant|cubic centimeters|cubic centimetres|cubic feet|cubic inches|cubic meters|cubic metres|cubic yards|date|degrees Celsius|degrees Fahrenheit|degrees Kelvin|feet|file|gallons|grams|inches|integer|kilograms|kilometers|kilometres|list|liters|litres|meters|metres|miles|number|ounces|pounds|quarts|real|record|reference|script|square feet|square kilometers|square kilometres|square meters|square metres|square miles|square yards|text|yards)\\b/,\n    punctuation: /[{}():,¬«»《》]/\n  }\n}\n","'use strict'\n\nmodule.exports = aql\naql.displayName = 'aql'\naql.aliases = []\nfunction aql(Prism) {\n  Prism.languages.aql = {\n    comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n    property: {\n      pattern:\n        /([{,]\\s*)(?:(?!\\d)\\w+|([\"'´`])(?:(?!\\2)[^\\\\\\r\\n]|\\\\.)*\\2)(?=\\s*:)/,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\.)*\\1/,\n      greedy: true\n    },\n    identifier: {\n      pattern: /([´`])(?:(?!\\1)[^\\\\\\r\\n]|\\\\.)*\\1/,\n      greedy: true\n    },\n    variable: /@@?\\w+/,\n    keyword: [\n      {\n        pattern: /(\\bWITH\\s+)COUNT(?=\\s+INTO\\b)/i,\n        lookbehind: true\n      },\n      /\\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_PATHS|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WINDOW|WITH)\\b/i, // pseudo keywords get a lookbehind to avoid false positives\n      {\n        pattern: /(^|[^\\w.[])(?:KEEP|PRUNE|SEARCH|TO)\\b/i,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|[^\\w.[])(?:CURRENT|NEW|OLD)\\b/,\n        lookbehind: true\n      },\n      {\n        pattern: /\\bOPTIONS(?=\\s*\\{)/i\n      }\n    ],\n    function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n    boolean: /\\b(?:false|true)\\b/i,\n    range: {\n      pattern: /\\.\\./,\n      alias: 'operator'\n    },\n    number: [\n      /\\b0b[01]+/i,\n      /\\b0x[0-9a-f]+/i,\n      /(?:\\B\\.\\d+|\\b(?:0|[1-9]\\d*)(?:\\.\\d+)?)(?:e[+-]?\\d+)?/i\n    ],\n    operator: /\\*{2,}|[=!]~|[!=<>]=?|&&|\\|\\||[-+*/%]/,\n    punctuation: /::|[?.:,;()[\\]{}]/\n  }\n}\n","'use strict'\nvar refractorCpp = require('./cpp.js')\nmodule.exports = arduino\narduino.displayName = 'arduino'\narduino.aliases = ['ino']\nfunction arduino(Prism) {\n  Prism.register(refractorCpp)\n  Prism.languages.arduino = Prism.languages.extend('cpp', {\n    keyword:\n      /\\b(?:String|array|bool|boolean|break|byte|case|catch|continue|default|do|double|else|finally|for|function|goto|if|in|instanceof|int|integer|long|loop|new|null|return|setup|string|switch|throw|try|void|while|word)\\b/,\n    constant:\n      /\\b(?:ANALOG_MESSAGE|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FIRMATA_STRING|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL2V56|LED_BUILTIN|LOW|OUTPUT|REPORT_ANALOG|REPORT_DIGITAL|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET)\\b/,\n    builtin:\n      /\\b(?:Audio|BSSID|Bridge|Client|Console|EEPROM|Esplora|EsploraTFT|Ethernet|EthernetClient|EthernetServer|EthernetUDP|File|FileIO|FileSystem|Firmata|GPRS|GSM|GSMBand|GSMClient|GSMModem|GSMPIN|GSMScanner|GSMServer|GSMVoiceCall|GSM_SMS|HttpClient|IPAddress|IRread|Keyboard|KeyboardController|LiquidCrystal|LiquidCrystal_I2C|Mailbox|Mouse|MouseController|PImage|Process|RSSI|RobotControl|RobotMotor|SD|SPI|SSID|Scheduler|Serial|Server|Servo|SoftwareSerial|Stepper|Stream|TFT|Task|USBHost|WiFi|WiFiClient|WiFiServer|WiFiUDP|Wire|YunClient|YunServer|abs|addParameter|analogRead|analogReadResolution|analogReference|analogWrite|analogWriteResolution|answerCall|attach|attachGPRS|attachInterrupt|attached|autoscroll|available|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|bitClear|bitRead|bitSet|bitWrite|blink|blinkVersion|buffer|changePIN|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compassRead|config|connect|connected|constrain|cos|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|delay|delayMicroseconds|detach|detachInterrupt|digitalRead|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endTransmission|endWrite|exists|exitValue|fill|find|findUntil|flush|gatewayIP|get|getAsynchronously|getBand|getButton|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|home|image|interrupts|isActionDone|isDirectory|isListening|isPIN|isPressed|isValid|keyPressed|keyReleased|keyboardRead|knobRead|leftToRight|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|lowByte|macAddress|maintain|map|max|messageAvailable|micros|millis|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|noListenOnLocalhost|noStroke|noTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|pinMode|playFile|playMelody|point|pointTo|position|pow|prepare|press|print|printFirmwareVersion|printVersion|println|process|processInput|pulseIn|put|random|randomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|run|runAsynchronously|runShellCommand|runShellCommandAsynchronously|running|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|serialEvent|setBand|setBitOrder|setClockDivider|setCursor|setDNS|setDataMode|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|shiftIn|shiftOut|shutdown|sin|size|sqrt|startLoop|step|stop|stroke|subnetMask|switchPIN|tan|tempoWrite|text|tone|transfer|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRGB|writeRed|yield)\\b/\n  })\n  Prism.languages.ino = Prism.languages.arduino\n}\n","'use strict'\n\nmodule.exports = arff\narff.displayName = 'arff'\narff.aliases = []\nfunction arff(Prism) {\n  Prism.languages.arff = {\n    comment: /%.*/,\n    string: {\n      pattern: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    keyword: /@(?:attribute|data|end|relation)\\b/i,\n    number: /\\b\\d+(?:\\.\\d+)?\\b/,\n    punctuation: /[{},]/\n  }\n}\n","'use strict'\n\nmodule.exports = asciidoc\nasciidoc.displayName = 'asciidoc'\nasciidoc.aliases = ['adoc']\nfunction asciidoc(Prism) {\n  ;(function (Prism) {\n    var attributes = {\n      pattern:\n        /(^[ \\t]*)\\[(?!\\[)(?:([\"'$`])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\[(?:[^\\[\\]\\\\]|\\\\.)*\\]|[^\\[\\]\\\\\"'$`]|\\\\.)*\\]/m,\n      lookbehind: true,\n      inside: {\n        quoted: {\n          pattern: /([$`])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n          inside: {\n            punctuation: /^[$`]|[$`]$/\n          }\n        },\n        interpreted: {\n          pattern: /'(?:[^'\\\\]|\\\\.)*'/,\n          inside: {\n            punctuation: /^'|'$/ // See rest below\n          }\n        },\n        string: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n        variable: /\\w+(?==)/,\n        punctuation: /^\\[|\\]$|,/,\n        operator: /=/,\n        // The negative look-ahead prevents blank matches\n        'attr-value': /(?!^\\s+$).+/\n      }\n    }\n    var asciidoc = (Prism.languages.asciidoc = {\n      'comment-block': {\n        pattern: /^(\\/{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1/m,\n        alias: 'comment'\n      },\n      table: {\n        pattern: /^\\|={3,}(?:(?:\\r?\\n|\\r(?!\\n)).*)*?(?:\\r?\\n|\\r)\\|={3,}$/m,\n        inside: {\n          specifiers: {\n            pattern:\n              /(?:(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)[+*](?:[<^>](?:\\.[<^>])?|\\.[<^>])?|[<^>](?:\\.[<^>])?|\\.[<^>])[a-z]*|[a-z]+)(?=\\|)/,\n            alias: 'attr-value'\n          },\n          punctuation: {\n            pattern: /(^|[^\\\\])[|!]=*/,\n            lookbehind: true\n          } // See rest below\n        }\n      },\n      'passthrough-block': {\n        pattern: /^(\\+{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n        inside: {\n          punctuation: /^\\++|\\++$/ // See rest below\n        }\n      },\n      // Literal blocks and listing blocks\n      'literal-block': {\n        pattern: /^(-{4,}|\\.{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n        inside: {\n          punctuation: /^(?:-+|\\.+)|(?:-+|\\.+)$/ // See rest below\n        }\n      },\n      // Sidebar blocks, quote blocks, example blocks and open blocks\n      'other-block': {\n        pattern:\n          /^(--|\\*{4,}|_{4,}|={4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n        inside: {\n          punctuation: /^(?:-+|\\*+|_+|=+)|(?:-+|\\*+|_+|=+)$/ // See rest below\n        }\n      },\n      // list-punctuation and list-label must appear before indented-block\n      'list-punctuation': {\n        pattern:\n          /(^[ \\t]*)(?:-|\\*{1,5}|\\.{1,5}|(?:[a-z]|\\d+)\\.|[xvi]+\\))(?= )/im,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      'list-label': {\n        pattern: /(^[ \\t]*)[a-z\\d].+(?::{2,4}|;;)(?=\\s)/im,\n        lookbehind: true,\n        alias: 'symbol'\n      },\n      'indented-block': {\n        pattern: /((\\r?\\n|\\r)\\2)([ \\t]+)\\S.*(?:(?:\\r?\\n|\\r)\\3.+)*(?=\\2{2}|$)/,\n        lookbehind: true\n      },\n      comment: /^\\/\\/.*/m,\n      title: {\n        pattern:\n          /^.+(?:\\r?\\n|\\r)(?:={3,}|-{3,}|~{3,}|\\^{3,}|\\+{3,})$|^={1,5} .+|^\\.(?![\\s.]).*/m,\n        alias: 'important',\n        inside: {\n          punctuation: /^(?:\\.|=+)|(?:=+|-+|~+|\\^+|\\++)$/ // See rest below\n        }\n      },\n      'attribute-entry': {\n        pattern: /^:[^:\\r\\n]+:(?: .*?(?: \\+(?:\\r?\\n|\\r).*?)*)?$/m,\n        alias: 'tag'\n      },\n      attributes: attributes,\n      hr: {\n        pattern: /^'{3,}$/m,\n        alias: 'punctuation'\n      },\n      'page-break': {\n        pattern: /^<{3,}$/m,\n        alias: 'punctuation'\n      },\n      admonition: {\n        pattern: /^(?:CAUTION|IMPORTANT|NOTE|TIP|WARNING):/m,\n        alias: 'keyword'\n      },\n      callout: [\n        {\n          pattern: /(^[ \\t]*)<?\\d*>/m,\n          lookbehind: true,\n          alias: 'symbol'\n        },\n        {\n          pattern: /<\\d+>/,\n          alias: 'symbol'\n        }\n      ],\n      macro: {\n        pattern:\n          /\\b[a-z\\d][a-z\\d-]*::?(?:[^\\s\\[\\]]*\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n        inside: {\n          function: /^[a-z\\d-]+(?=:)/,\n          punctuation: /^::?/,\n          attributes: {\n            pattern: /(?:\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n            inside: attributes.inside\n          }\n        }\n      },\n      inline: {\n        /*\nThe initial look-behind prevents the highlighting of escaped quoted text.\nQuoted text can be multi-line but cannot span an empty line.\nAll quoted text can have attributes before [foobar, 'foobar', baz=\"bar\"].\nFirst, we handle the constrained quotes.\nThose must be bounded by non-word chars and cannot have spaces between the delimiter and the first char.\nThey are, in order: _emphasis_, ``double quotes'', `single quotes', `monospace`, 'emphasis', *strong*, +monospace+ and #unquoted#\nThen we handle the unconstrained quotes.\nThose do not have the restrictions of the constrained quotes.\nThey are, in order: __emphasis__, **strong**, ++monospace++, +++passthrough+++, ##unquoted##, $$passthrough$$, ~subscript~, ^superscript^, {attribute-reference}, [[anchor]], [[[bibliography anchor]]], <<xref>>, (((indexes))) and ((indexes))\n*/\n        pattern:\n          /(^|[^\\\\])(?:(?:\\B\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\\\.)*\\])?(?:\\b_(?!\\s)(?: _|[^_\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: _|[^_\\\\\\r\\n]|\\\\.)+)*_\\b|\\B``(?!\\s).+?(?:(?:\\r?\\n|\\r).+?)*''\\B|\\B`(?!\\s)(?:[^`'\\s]|\\s+\\S)+['`]\\B|\\B(['*+#])(?!\\s)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+)*\\3\\B)|(?:\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\4)[^\\\\]|\\\\.)*\\4|\\\\.)*\\])?(?:(__|\\*\\*|\\+\\+\\+?|##|\\$\\$|[~^]).+?(?:(?:\\r?\\n|\\r).+?)*\\5|\\{[^}\\r\\n]+\\}|\\[\\[\\[?.+?(?:(?:\\r?\\n|\\r).+?)*\\]?\\]\\]|<<.+?(?:(?:\\r?\\n|\\r).+?)*>>|\\(\\(\\(?.+?(?:(?:\\r?\\n|\\r).+?)*\\)?\\)\\)))/m,\n        lookbehind: true,\n        inside: {\n          attributes: attributes,\n          url: {\n            pattern: /^(?:\\[\\[\\[?.+?\\]?\\]\\]|<<.+?>>)$/,\n            inside: {\n              punctuation: /^(?:\\[\\[\\[?|<<)|(?:\\]\\]\\]?|>>)$/\n            }\n          },\n          'attribute-ref': {\n            pattern: /^\\{.+\\}$/,\n            inside: {\n              variable: {\n                pattern: /(^\\{)[a-z\\d,+_-]+/,\n                lookbehind: true\n              },\n              operator: /^[=?!#%@$]|!(?=[:}])/,\n              punctuation: /^\\{|\\}$|::?/\n            }\n          },\n          italic: {\n            pattern: /^(['_])[\\s\\S]+\\1$/,\n            inside: {\n              punctuation: /^(?:''?|__?)|(?:''?|__?)$/\n            }\n          },\n          bold: {\n            pattern: /^\\*[\\s\\S]+\\*$/,\n            inside: {\n              punctuation: /^\\*\\*?|\\*\\*?$/\n            }\n          },\n          punctuation:\n            /^(?:``?|\\+{1,3}|##?|\\$\\$|[~^]|\\(\\(\\(?)|(?:''?|\\+{1,3}|##?|\\$\\$|[~^`]|\\)?\\)\\))$/\n        }\n      },\n      replacement: {\n        pattern: /\\((?:C|R|TM)\\)/,\n        alias: 'builtin'\n      },\n      entity: /&#?[\\da-z]{1,8};/i,\n      'line-continuation': {\n        pattern: /(^| )\\+$/m,\n        lookbehind: true,\n        alias: 'punctuation'\n      }\n    }) // Allow some nesting. There is no recursion though, so cloning should not be needed.\n    function copyFromAsciiDoc(keys) {\n      keys = keys.split(' ')\n      var o = {}\n      for (var i = 0, l = keys.length; i < l; i++) {\n        o[keys[i]] = asciidoc[keys[i]]\n      }\n      return o\n    }\n    attributes.inside['interpreted'].inside.rest = copyFromAsciiDoc(\n      'macro inline replacement entity'\n    )\n    asciidoc['passthrough-block'].inside.rest = copyFromAsciiDoc('macro')\n    asciidoc['literal-block'].inside.rest = copyFromAsciiDoc('callout')\n    asciidoc['table'].inside.rest = copyFromAsciiDoc(\n      'comment-block passthrough-block literal-block other-block list-punctuation indented-block comment title attribute-entry attributes hr page-break admonition list-label callout macro inline replacement entity line-continuation'\n    )\n    asciidoc['other-block'].inside.rest = copyFromAsciiDoc(\n      'table list-punctuation indented-block comment attribute-entry attributes hr page-break admonition list-label macro inline replacement entity line-continuation'\n    )\n    asciidoc['title'].inside.rest = copyFromAsciiDoc(\n      'macro inline replacement entity'\n    ) // Plugin to make entity title show the real entity, idea by Roman Komarov\n    Prism.hooks.add('wrap', function (env) {\n      if (env.type === 'entity') {\n        env.attributes['title'] = env.content.value.replace(/&amp;/, '&')\n      }\n    })\n    Prism.languages.adoc = Prism.languages.asciidoc\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = asm6502\nasm6502.displayName = 'asm6502'\nasm6502.aliases = []\nfunction asm6502(Prism) {\n  Prism.languages.asm6502 = {\n    comment: /;.*/,\n    directive: {\n      pattern: /\\.\\w+(?= )/,\n      alias: 'property'\n    },\n    string: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n    'op-code': {\n      pattern:\n        /\\b(?:ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA|adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya)\\b/,\n      alias: 'keyword'\n    },\n    'hex-number': {\n      pattern: /#?\\$[\\da-f]{1,4}\\b/i,\n      alias: 'number'\n    },\n    'binary-number': {\n      pattern: /#?%[01]+\\b/,\n      alias: 'number'\n    },\n    'decimal-number': {\n      pattern: /#?\\b\\d+\\b/,\n      alias: 'number'\n    },\n    register: {\n      pattern: /\\b[xya]\\b/i,\n      alias: 'variable'\n    },\n    punctuation: /[(),:]/\n  }\n}\n","'use strict'\n\nmodule.exports = asmatmel\nasmatmel.displayName = 'asmatmel'\nasmatmel.aliases = []\nfunction asmatmel(Prism) {\n  Prism.languages.asmatmel = {\n    comment: {\n      pattern: /;.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    constant: /\\b(?:PORT[A-Z]|DDR[A-Z]|(?:DD|P)[A-Z](?:\\d|[0-2]\\d|3[01]))\\b/,\n    directive: {\n      pattern: /\\.\\w+(?= )/,\n      alias: 'property'\n    },\n    'r-register': {\n      pattern: /\\br(?:\\d|[12]\\d|3[01])\\b/,\n      alias: 'variable'\n    },\n    'op-code': {\n      pattern:\n        /\\b(?:ADC|ADD|ADIW|AND|ANDI|ASR|BCLR|BLD|BRBC|BRBS|BRCC|BRCS|BREAK|BREQ|BRGE|BRHC|BRHS|BRID|BRIE|BRLO|BRLT|BRMI|BRNE|BRPL|BRSH|BRTC|BRTS|BRVC|BRVS|BSET|BST|CALL|CBI|CBR|CLC|CLH|CLI|CLN|CLR|CLS|CLT|CLV|CLZ|COM|CP|CPC|CPI|CPSE|DEC|DES|EICALL|EIJMP|ELPM|EOR|FMUL|FMULS|FMULSU|ICALL|IJMP|IN|INC|JMP|LAC|LAS|LAT|LD|LD[A-Za-z0-9]|LPM|LSL|LSR|MOV|MOVW|MUL|MULS|MULSU|NEG|NOP|OR|ORI|OUT|POP|PUSH|RCALL|RET|RETI|RJMP|ROL|ROR|SBC|SBCI|SBI|SBIC|SBIS|SBIW|SBR|SBRC|SBRS|SEC|SEH|SEI|SEN|SER|SES|SET|SEV|SEZ|SLEEP|SPM|ST|ST[A-Z0-9]|SUB|SUBI|SWAP|TST|WDR|XCH|adc|add|adiw|and|andi|asr|bclr|bld|brbc|brbs|brcc|brcs|break|breq|brge|brhc|brhs|brid|brie|brlo|brlt|brmi|brne|brpl|brsh|brtc|brts|brvc|brvs|bset|bst|call|cbi|cbr|clc|clh|cli|cln|clr|cls|clt|clv|clz|com|cp|cpc|cpi|cpse|dec|des|eicall|eijmp|elpm|eor|fmul|fmuls|fmulsu|icall|ijmp|in|inc|jmp|lac|las|lat|ld|ld[a-z0-9]|lpm|lsl|lsr|mov|movw|mul|muls|mulsu|neg|nop|or|ori|out|pop|push|rcall|ret|reti|rjmp|rol|ror|sbc|sbci|sbi|sbic|sbis|sbiw|sbr|sbrc|sbrs|sec|seh|sei|sen|ser|ses|set|sev|sez|sleep|spm|st|st[a-zA-Z0-9]|sub|subi|swap|tst|wdr|xch)\\b/,\n      alias: 'keyword'\n    },\n    'hex-number': {\n      pattern: /#?\\$[\\da-f]{2,4}\\b/i,\n      alias: 'number'\n    },\n    'binary-number': {\n      pattern: /#?%[01]+\\b/,\n      alias: 'number'\n    },\n    'decimal-number': {\n      pattern: /#?\\b\\d+\\b/,\n      alias: 'number'\n    },\n    register: {\n      pattern: /\\b[acznvshtixy]\\b/i,\n      alias: 'variable'\n    },\n    operator: />>=?|<<=?|&&?|\\|\\|?|[-+*/%&|^!=<>?]=?/,\n    punctuation: /[(),:]/\n  }\n}\n","'use strict'\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = aspnet\naspnet.displayName = 'aspnet'\naspnet.aliases = []\nfunction aspnet(Prism) {\n  Prism.register(refractorCsharp)\n  Prism.languages.aspnet = Prism.languages.extend('markup', {\n    'page-directive': {\n      pattern: /<%\\s*@.*%>/,\n      alias: 'tag',\n      inside: {\n        'page-directive': {\n          pattern:\n            /<%\\s*@\\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,\n          alias: 'tag'\n        },\n        rest: Prism.languages.markup.tag.inside\n      }\n    },\n    directive: {\n      pattern: /<%.*%>/,\n      alias: 'tag',\n      inside: {\n        directive: {\n          pattern: /<%\\s*?[$=%#:]{0,2}|%>/,\n          alias: 'tag'\n        },\n        rest: Prism.languages.csharp\n      }\n    }\n  }) // Regexp copied from prism-markup, with a negative look-ahead added\n  Prism.languages.aspnet.tag.pattern =\n    /<(?!%)\\/?[^\\s>\\/]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/ // match directives of attribute value foo=\"<% Bar %>\"\n  Prism.languages.insertBefore(\n    'inside',\n    'punctuation',\n    {\n      directive: Prism.languages.aspnet['directive']\n    },\n    Prism.languages.aspnet.tag.inside['attr-value']\n  )\n  Prism.languages.insertBefore('aspnet', 'comment', {\n    'asp-comment': {\n      pattern: /<%--[\\s\\S]*?--%>/,\n      alias: ['asp', 'comment']\n    }\n  }) // script runat=\"server\" contains csharp, not javascript\n  Prism.languages.insertBefore(\n    'aspnet',\n    Prism.languages.javascript ? 'script' : 'tag',\n    {\n      'asp-script': {\n        pattern:\n          /(<script(?=.*runat=['\"]?server\\b)[^>]*>)[\\s\\S]*?(?=<\\/script>)/i,\n        lookbehind: true,\n        alias: ['asp', 'script'],\n        inside: Prism.languages.csharp || {}\n      }\n    }\n  )\n}\n","'use strict'\n\nmodule.exports = autohotkey\nautohotkey.displayName = 'autohotkey'\nautohotkey.aliases = []\nfunction autohotkey(Prism) {\n  // NOTES - follows first-first highlight method, block is locked after highlight, different from SyntaxHl\n  Prism.languages.autohotkey = {\n    comment: [\n      {\n        pattern: /(^|\\s);.*/,\n        lookbehind: true\n      },\n      {\n        pattern:\n          /(^[\\t ]*)\\/\\*(?:[\\r\\n](?![ \\t]*\\*\\/)|[^\\r\\n])*(?:[\\r\\n][ \\t]*\\*\\/)?/m,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    tag: {\n      // labels\n      pattern: /^([ \\t]*)[^\\s,`\":]+(?=:[ \\t]*$)/m,\n      lookbehind: true\n    },\n    string: /\"(?:[^\"\\n\\r]|\"\")*\"/,\n    variable: /%\\w+%/,\n    number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n    operator:\n      /\\?|\\/\\/?=?|:=|\\|[=|]?|&[=&]?|\\+[=+]?|-[=-]?|\\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\\b(?:AND|NOT|OR)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    selector:\n      /\\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\\b/i,\n    constant:\n      /\\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guicontrol|a_guicontrolevent|a_guievent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel|programfiles)\\b/i,\n    builtin:\n      /\\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|isfunc|islabel|IsObject|ln|log|ltrim|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|numget|numput|onmessage|regexmatch|regexreplace|registercallback|round|rtrim|sb_seticon|sb_setparts|sb_settext|sin|sqrt|strlen|strreplace|strsplit|substr|tan|tv_add|tv_delete|tv_get|tv_getchild|tv_getcount|tv_getnext|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__Call|__Get|__New|__Set)\\b/i,\n    symbol:\n      /\\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\\b/i,\n    important:\n      /#\\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|DerefChar|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|If|IfTimeout|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InputLevel|InstallKeybdHook|InstallMouseHook|KeyHistory|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|MenuMaskKey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|Warn|WinActivateForce)\\b/i,\n    keyword:\n      /\\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Catch|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|Finally|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|Region|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Throw|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|Try|TryAgain|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\\b/i,\n    function: /[^(); \\t,\\n+*\\-=?>:\\\\\\/<&%\\[\\]]+(?=\\()/,\n    punctuation: /[{}[\\]():,]/\n  }\n}\n","'use strict'\n\nmodule.exports = autoit\nautoit.displayName = 'autoit'\nautoit.aliases = []\nfunction autoit(Prism) {\n  Prism.languages.autoit = {\n    comment: [\n      /;.*/,\n      {\n        // The multi-line comments delimiters can actually be commented out with \";\"\n        pattern:\n          /(^[\\t ]*)#(?:comments-start|cs)[\\s\\S]*?^[ \\t]*#(?:ce|comments-end)/m,\n        lookbehind: true\n      }\n    ],\n    url: {\n      pattern: /(^[\\t ]*#include\\s+)(?:<[^\\r\\n>]+>|\"[^\\r\\n\"]+\")/m,\n      lookbehind: true\n    },\n    string: {\n      pattern: /([\"'])(?:\\1\\1|(?!\\1)[^\\r\\n])*\\1/,\n      greedy: true,\n      inside: {\n        variable: /([%$@])\\w+\\1/\n      }\n    },\n    directive: {\n      pattern: /(^[\\t ]*)#[\\w-]+/m,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    function: /\\b\\w+(?=\\()/,\n    // Variables and macros\n    variable: /[$@]\\w+/,\n    keyword:\n      /\\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\\b/i,\n    number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\n    boolean: /\\b(?:False|True)\\b/i,\n    operator: /<[=>]?|[-+*\\/=&>]=?|[?^]|\\b(?:And|Not|Or)\\b/i,\n    punctuation: /[\\[\\]().,:]/\n  }\n}\n","'use strict'\n\nmodule.exports = avisynth\navisynth.displayName = 'avisynth'\navisynth.aliases = ['avs']\nfunction avisynth(Prism) {\n  // http://avisynth.nl/index.php/The_full_AviSynth_grammar\n  ;(function (Prism) {\n    function replace(pattern, replacements) {\n      return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n        return replacements[+index]\n      })\n    }\n    function re(pattern, replacements, flags) {\n      return RegExp(replace(pattern, replacements), flags || '')\n    }\n    var types = /bool|clip|float|int|string|val/.source\n    var internals = [\n      // bools\n      /is(?:bool|clip|float|int|string)|defined|(?:(?:internal)?function|var)?exists?/\n        .source, // control\n      /apply|assert|default|eval|import|nop|select|undefined/.source, // global\n      /opt_(?:allowfloataudio|avipadscanlines|dwchannelmask|enable_(?:b64a|planartopackedrgb|v210|y3_10_10|y3_10_16)|usewaveextensible|vdubplanarhack)|set(?:cachemode|maxcpu|memorymax|planarlegacyalignment|workingdir)/\n        .source, // conv\n      /hex(?:value)?|value/.source, // numeric\n      /abs|ceil|continued(?:denominator|numerator)?|exp|floor|fmod|frac|log(?:10)?|max|min|muldiv|pi|pow|rand|round|sign|spline|sqrt/\n        .source, // trig\n      /a?sinh?|a?cosh?|a?tan[2h]?/.source, // bit\n      /(?:bit(?:and|not|x?or|[lr]?shift[aslu]?|sh[lr]|sa[lr]|[lr]rotatel?|ro[rl]|te?st|set(?:count)?|cl(?:ea)?r|ch(?:an)?ge?))/\n        .source, // runtime\n      /average(?:[bgr]|chroma[uv]|luma)|(?:[rgb]|chroma[uv]|luma|rgb|[yuv](?=difference(?:fromprevious|tonext)))difference(?:fromprevious|tonext)?|[yuvrgb]plane(?:median|min|max|minmaxdifference)/\n        .source, // script\n      /getprocessinfo|logmsg|script(?:dir(?:utf8)?|file(?:utf8)?|name(?:utf8)?)|setlogparams/\n        .source, // string\n      /chr|(?:fill|find|left|mid|replace|rev|right)str|format|[lu]case|ord|str(?:cmpi?|fromutf8|len|toutf8)|time|trim(?:all|left|right)/\n        .source, // version\n      /isversionorgreater|version(?:number|string)/.source, // helper\n      /buildpixeltype|colorspacenametopixeltype/.source, // avsplus\n      /addautoloaddir|on(?:cpu|cuda)|prefetch|setfiltermtmode/.source\n    ].join('|')\n    var properties = [\n      // content\n      /has(?:audio|video)/.source, // resolution\n      /height|width/.source, // framerate\n      /frame(?:count|rate)|framerate(?:denominator|numerator)/.source, // interlacing\n      /getparity|is(?:field|frame)based/.source, // color format\n      /bitspercomponent|componentsize|hasalpha|is(?:planar(?:rgba?)?|interleaved|rgb(?:24|32|48|64)?|y(?:8|u(?:va?|y2))?|yv(?:12|16|24|411)|420|422|444|packedrgb)|numcomponents|pixeltype/\n        .source, // audio\n      /audio(?:bits|channels|duration|length(?:[fs]|hi|lo)?|rate)|isaudio(?:float|int)/\n        .source\n    ].join('|')\n    var filters = [\n      // source\n      /avi(?:file)?source|directshowsource|image(?:reader|source|sourceanim)|opendmlsource|segmented(?:avisource|directshowsource)|wavsource/\n        .source, // color\n      /coloryuv|convertbacktoyuy2|convertto(?:RGB(?:24|32|48|64)|(?:planar)?RGBA?|Y8?|YV(?:12|16|24|411)|YUVA?(?:411|420|422|444)|YUY2)|fixluminance|gr[ae]yscale|invert|levels|limiter|mergea?rgb|merge(?:chroma|luma)|rgbadjust|show(?:alpha|blue|green|red)|swapuv|tweak|[uv]toy8?|ytouv/\n        .source, // overlay\n      /(?:colorkey|reset)mask|layer|mask(?:hs)?|merge|overlay|subtract/.source, // geometry\n      /addborders|(?:bicubic|bilinear|blackman|gauss|lanczos4|lanczos|point|sinc|spline(?:16|36|64))resize|crop(?:bottom)?|flip(?:horizontal|vertical)|(?:horizontal|vertical)?reduceby2|letterbox|skewrows|turn(?:180|left|right)/\n        .source, // pixel\n      /blur|fixbrokenchromaupsampling|generalconvolution|(?:spatial|temporal)soften|sharpen/\n        .source, // timeline\n      /trim|(?:un)?alignedsplice|(?:assume|assumescaled|change|convert)FPS|(?:delete|duplicate)frame|dissolve|fade(?:in|io|out)[02]?|freezeframe|interleave|loop|reverse|select(?:even|odd|(?:range)?every)/\n        .source, // interlace\n      /assume[bt]ff|assume(?:field|frame)based|bob|complementparity|doubleweave|peculiarblend|pulldown|separate(?:columns|fields|rows)|swapfields|weave(?:columns|rows)?/\n        .source, // audio\n      /amplify(?:db)?|assumesamplerate|audiodub(?:ex)?|audiotrim|convertaudioto(?:(?:8|16|24|32)bit|float)|converttomono|delayaudio|ensurevbrmp3sync|get(?:left|right)?channel|kill(?:audio|video)|mergechannels|mixaudio|monotostereo|normalize|resampleaudio|ssrc|supereq|timestretch/\n        .source, // conditional\n      /animate|applyrange|conditional(?:filter|reader|select)|frameevaluate|scriptclip|tcp(?:server|source)|writefile(?:end|if|start)?/\n        .source, // export\n      /imagewriter/.source, // debug\n      /blackness|blankclip|colorbars(?:hd)?|compare|dumpfiltergraph|echo|histogram|info|messageclip|preroll|setgraphanalysis|show(?:framenumber|smpte|time)|showfiveversions|stack(?:horizontal|vertical)|subtitle|tone|version/\n        .source\n    ].join('|')\n    var allinternals = [internals, properties, filters].join('|')\n    Prism.languages.avisynth = {\n      comment: [\n        {\n          // Matches [* *] nestable block comments, but only supports 1 level of nested comments\n          // /\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\])|<self>)*\\*\\]/\n          pattern:\n            /(^|[^\\\\])\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\])|\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\]))*\\*\\])*\\*\\]/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          // Matches /* */ block comments\n          pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          // Matches # comments\n          pattern: /(^|[^\\\\$])#.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      // Handle before strings because optional arguments are surrounded by double quotes\n      argument: {\n        pattern: re(/\\b(?:<<0>>)\\s+(\"?)\\w+\\1/.source, [types], 'i'),\n        inside: {\n          keyword: /^\\w+/\n        }\n      },\n      // Optional argument assignment\n      'argument-label': {\n        pattern: /([,(][\\s\\\\]*)\\w+\\s*=(?!=)/,\n        lookbehind: true,\n        inside: {\n          'argument-name': {\n            pattern: /^\\w+/,\n            alias: 'punctuation'\n          },\n          punctuation: /=$/\n        }\n      },\n      string: [\n        {\n          // triple double-quoted\n          pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n          greedy: true\n        },\n        {\n          // single double-quoted\n          pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n          greedy: true,\n          inside: {\n            constant: {\n              // These *are* case-sensitive!\n              pattern:\n                /\\b(?:DEFAULT_MT_MODE|(?:MAINSCRIPT|PROGRAM|SCRIPT)DIR|(?:MACHINE|USER)_(?:CLASSIC|PLUS)_PLUGINS)\\b/\n            }\n          }\n        }\n      ],\n      // The special \"last\" variable that takes the value of the last implicitly returned clip\n      variable: /\\b(?:last)\\b/i,\n      boolean: /\\b(?:false|no|true|yes)\\b/i,\n      keyword:\n        /\\b(?:catch|else|for|function|global|if|return|try|while|__END__)\\b/i,\n      constant: /\\bMT_(?:MULTI_INSTANCE|NICE_FILTER|SERIALIZED|SPECIAL_MT)\\b/,\n      // AviSynth's internal functions, filters, and properties\n      'builtin-function': {\n        pattern: re(/\\b(?:<<0>>)\\b/.source, [allinternals], 'i'),\n        alias: 'function'\n      },\n      'type-cast': {\n        pattern: re(/\\b(?:<<0>>)(?=\\s*\\()/.source, [types], 'i'),\n        alias: 'keyword'\n      },\n      // External/user-defined filters\n      function: {\n        pattern: /\\b[a-z_]\\w*(?=\\s*\\()|(\\.)[a-z_]\\w*\\b/i,\n        lookbehind: true\n      },\n      // Matches a \\ as the first or last character on a line\n      'line-continuation': {\n        pattern: /(^[ \\t]*)\\\\|\\\\(?=[ \\t]*$)/m,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      number:\n        /\\B\\$(?:[\\da-f]{6}|[\\da-f]{8})\\b|(?:(?:\\b|\\B-)\\d+(?:\\.\\d*)?\\b|\\B\\.\\d+\\b)/i,\n      operator: /\\+\\+?|[!=<>]=?|&&|\\|\\||[?:*/%-]/,\n      punctuation: /[{}\\[\\]();,.]/\n    }\n    Prism.languages.avs = Prism.languages.avisynth\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = avroIdl\navroIdl.displayName = 'avroIdl'\navroIdl.aliases = []\nfunction avroIdl(Prism) {\n  // GitHub: https://github.com/apache/avro\n  // Docs: https://avro.apache.org/docs/current/idl.html\n  Prism.languages['avro-idl'] = {\n    comment: {\n      pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n      greedy: true\n    },\n    string: {\n      pattern: /(^|[^\\\\])\"(?:[^\\r\\n\"\\\\]|\\\\.)*\"/,\n      lookbehind: true,\n      greedy: true\n    },\n    annotation: {\n      pattern: /@(?:[$\\w.-]|`[^\\r\\n`]+`)+/,\n      greedy: true,\n      alias: 'function'\n    },\n    'function-identifier': {\n      pattern: /`[^\\r\\n`]+`(?=\\s*\\()/,\n      greedy: true,\n      alias: 'function'\n    },\n    identifier: {\n      pattern: /`[^\\r\\n`]+`/,\n      greedy: true\n    },\n    'class-name': {\n      pattern: /(\\b(?:enum|error|protocol|record|throws)\\b\\s+)[$\\w]+/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:array|boolean|bytes|date|decimal|double|enum|error|false|fixed|float|idl|import|int|local_timestamp_ms|long|map|null|oneway|protocol|record|schema|string|throws|time_ms|timestamp_ms|true|union|uuid|void)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    number: [\n      {\n        pattern:\n          /(^|[^\\w.])-?(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|0x(?:[a-f0-9]+(?:\\.[a-f0-9]*)?|\\.[a-f0-9]+)(?:p[+-]?\\d+)?)[dfl]?(?![\\w.])/i,\n        lookbehind: true\n      },\n      /-?\\b(?:Infinity|NaN)\\b/\n    ],\n    operator: /=/,\n    punctuation: /[()\\[\\]{}<>.:,;-]/\n  }\n  Prism.languages.avdl = Prism.languages['avro-idl']\n}\n","'use strict'\n\nmodule.exports = bash\nbash.displayName = 'bash'\nbash.aliases = ['shell']\nfunction bash(Prism) {\n  ;(function (Prism) {\n    // $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n    // + LC_ALL, RANDOM, REPLY, SECONDS.\n    // + make sure PS1..4 are here as they are not always set,\n    // - some useless things.\n    var envVars =\n      '\\\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\\\b'\n    var commandAfterHeredoc = {\n      pattern: /(^([\"']?)\\w+\\2)[ \\t]+\\S.*/,\n      lookbehind: true,\n      alias: 'punctuation',\n      // this looks reasonably well in all themes\n      inside: null // see below\n    }\n    var insideString = {\n      bash: commandAfterHeredoc,\n      environment: {\n        pattern: RegExp('\\\\$' + envVars),\n        alias: 'constant'\n      },\n      variable: [\n        // [0]: Arithmetic Environment\n        {\n          pattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n          greedy: true,\n          inside: {\n            // If there is a $ sign at the beginning highlight $(( and )) as variable\n            variable: [\n              {\n                pattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n                lookbehind: true\n              },\n              /^\\$\\(\\(/\n            ],\n            number:\n              /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n            // Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n            operator:\n              /--|\\+\\+|\\*\\*=?|<<=?|>>=?|&&|\\|\\||[=!+\\-*/%<>^&|]=?|[?~:]/,\n            // If there is no $ sign at the beginning highlight (( and )) as punctuation\n            punctuation: /\\(\\(?|\\)\\)?|,|;/\n          }\n        }, // [1]: Command Substitution\n        {\n          pattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n          greedy: true,\n          inside: {\n            variable: /^\\$\\(|^`|\\)$|`$/\n          }\n        }, // [2]: Brace expansion\n        {\n          pattern: /\\$\\{[^}]+\\}/,\n          greedy: true,\n          inside: {\n            operator: /:[-=?+]?|[!\\/]|##?|%%?|\\^\\^?|,,?/,\n            punctuation: /[\\[\\]]/,\n            environment: {\n              pattern: RegExp('(\\\\{)' + envVars),\n              lookbehind: true,\n              alias: 'constant'\n            }\n          }\n        },\n        /\\$(?:\\w+|[#?*!@$])/\n      ],\n      // Escape sequences from echo and printf's manuals, and escaped quotes.\n      entity:\n        /\\\\(?:[abceEfnrtv\\\\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/\n    }\n    Prism.languages.bash = {\n      shebang: {\n        pattern: /^#!\\s*\\/.*/,\n        alias: 'important'\n      },\n      comment: {\n        pattern: /(^|[^\"{\\\\$])#.*/,\n        lookbehind: true\n      },\n      'function-name': [\n        // a) function foo {\n        // b) foo() {\n        // c) function foo() {\n        // but not “foo {”\n        {\n          // a) and c)\n          pattern: /(\\bfunction\\s+)[\\w-]+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n          lookbehind: true,\n          alias: 'function'\n        },\n        {\n          // b)\n          pattern: /\\b[\\w-]+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n          alias: 'function'\n        }\n      ],\n      // Highlight variable names as variables in for and select beginnings.\n      'for-or-select': {\n        pattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n        alias: 'variable',\n        lookbehind: true\n      },\n      // Highlight variable names as variables in the left-hand part\n      // of assignments (“=” and “+=”).\n      'assign-left': {\n        pattern: /(^|[\\s;|&]|[<>]\\()\\w+(?=\\+?=)/,\n        inside: {\n          environment: {\n            pattern: RegExp('(^|[\\\\s;|&]|[<>]\\\\()' + envVars),\n            lookbehind: true,\n            alias: 'constant'\n          }\n        },\n        alias: 'variable',\n        lookbehind: true\n      },\n      string: [\n        // Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n        {\n          pattern: /((?:^|[^<])<<-?\\s*)(\\w+)\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\2/,\n          lookbehind: true,\n          greedy: true,\n          inside: insideString\n        }, // Here-document with quotes around the tag\n        // → No expansion (so no “inside”).\n        {\n          pattern: /((?:^|[^<])<<-?\\s*)([\"'])(\\w+)\\2\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\3/,\n          lookbehind: true,\n          greedy: true,\n          inside: {\n            bash: commandAfterHeredoc\n          }\n        }, // “Normal” string\n        {\n          // https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html\n          pattern:\n            /(^|[^\\\\](?:\\\\\\\\)*)\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/,\n          lookbehind: true,\n          greedy: true,\n          inside: insideString\n        },\n        {\n          // https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html\n          pattern: /(^|[^$\\\\])'[^']*'/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          // https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html\n          pattern: /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n          greedy: true,\n          inside: {\n            entity: insideString.entity\n          }\n        }\n      ],\n      environment: {\n        pattern: RegExp('\\\\$?' + envVars),\n        alias: 'constant'\n      },\n      variable: insideString.variable,\n      function: {\n        pattern:\n          /(^|[\\s;|&]|[<>]\\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\\s;|&])/,\n        lookbehind: true\n      },\n      keyword: {\n        pattern:\n          /(^|[\\s;|&]|[<>]\\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\\s;|&])/,\n        lookbehind: true\n      },\n      // https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n      builtin: {\n        pattern:\n          /(^|[\\s;|&]|[<>]\\()(?:\\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\\s;|&])/,\n        lookbehind: true,\n        // Alias added to make those easier to distinguish from strings.\n        alias: 'class-name'\n      },\n      boolean: {\n        pattern: /(^|[\\s;|&]|[<>]\\()(?:false|true)(?=$|[)\\s;|&])/,\n        lookbehind: true\n      },\n      'file-descriptor': {\n        pattern: /\\B&\\d\\b/,\n        alias: 'important'\n      },\n      operator: {\n        // Lots of redirections here, but not just that.\n        pattern:\n          /\\d?<>|>\\||\\+=|=[=~]?|!=?|<<[<-]?|[&\\d]?>>|\\d[<>]&?|[<>][&=]?|&[>&]?|\\|[&|]?/,\n        inside: {\n          'file-descriptor': {\n            pattern: /^\\d/,\n            alias: 'important'\n          }\n        }\n      },\n      punctuation: /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];\\\\]/,\n      number: {\n        pattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n        lookbehind: true\n      }\n    }\n    commandAfterHeredoc.inside = Prism.languages.bash\n    /* Patterns in command substitution. */\n    var toBeCopied = [\n      'comment',\n      'function-name',\n      'for-or-select',\n      'assign-left',\n      'string',\n      'environment',\n      'function',\n      'keyword',\n      'builtin',\n      'boolean',\n      'file-descriptor',\n      'operator',\n      'punctuation',\n      'number'\n    ]\n    var inside = insideString.variable[1].inside\n    for (var i = 0; i < toBeCopied.length; i++) {\n      inside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]]\n    }\n    Prism.languages.shell = Prism.languages.bash\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = basic\nbasic.displayName = 'basic'\nbasic.aliases = []\nfunction basic(Prism) {\n  Prism.languages.basic = {\n    comment: {\n      pattern: /(?:!|REM\\b).+/i,\n      inside: {\n        keyword: /^REM/i\n      }\n    },\n    string: {\n      pattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^\\w +\\-.])*\"/,\n      greedy: true\n    },\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n    keyword:\n      /\\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SELECT CASE|SHARED|SHELL|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\\$|\\b)/i,\n    function:\n      /\\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\\$|\\b)/i,\n    operator: /<[=>]?|>=?|[+\\-*\\/^=&]|\\b(?:AND|EQV|IMP|NOT|OR|XOR)\\b/i,\n    punctuation: /[,;:()]/\n  }\n}\n","'use strict'\n\nmodule.exports = batch\nbatch.displayName = 'batch'\nbatch.aliases = []\nfunction batch(Prism) {\n  ;(function (Prism) {\n    var variable = /%%?[~:\\w]+%?|!\\S+!/\n    var parameter = {\n      pattern: /\\/[a-z?]+(?=[ :]|$):?|-[a-z]\\b|--[a-z-]+\\b/im,\n      alias: 'attr-name',\n      inside: {\n        punctuation: /:/\n      }\n    }\n    var string = /\"(?:[\\\\\"]\"|[^\"])*\"(?!\")/\n    var number = /(?:\\b|-)\\d+\\b/\n    Prism.languages.batch = {\n      comment: [\n        /^::.*/m,\n        {\n          pattern: /((?:^|[&(])[ \\t]*)rem\\b(?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n          lookbehind: true\n        }\n      ],\n      label: {\n        pattern: /^:.*/m,\n        alias: 'property'\n      },\n      command: [\n        {\n          // FOR command\n          pattern:\n            /((?:^|[&(])[ \\t]*)for(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* \\S+ in \\([^)]+\\) do/im,\n          lookbehind: true,\n          inside: {\n            keyword: /\\b(?:do|in)\\b|^for\\b/i,\n            string: string,\n            parameter: parameter,\n            variable: variable,\n            number: number,\n            punctuation: /[()',]/\n          }\n        },\n        {\n          // IF command\n          pattern:\n            /((?:^|[&(])[ \\t]*)if(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:not )?(?:cmdextversion \\d+|defined \\w+|errorlevel \\d+|exist \\S+|(?:\"[^\"]*\"|(?!\")(?:(?!==)\\S)+)?(?:==| (?:equ|geq|gtr|leq|lss|neq) )(?:\"[^\"]*\"|[^\\s\"]\\S*))/im,\n          lookbehind: true,\n          inside: {\n            keyword:\n              /\\b(?:cmdextversion|defined|errorlevel|exist|not)\\b|^if\\b/i,\n            string: string,\n            parameter: parameter,\n            variable: variable,\n            number: number,\n            operator: /\\^|==|\\b(?:equ|geq|gtr|leq|lss|neq)\\b/i\n          }\n        },\n        {\n          // ELSE command\n          pattern: /((?:^|[&()])[ \\t]*)else\\b/im,\n          lookbehind: true,\n          inside: {\n            keyword: /^else\\b/i\n          }\n        },\n        {\n          // SET command\n          pattern:\n            /((?:^|[&(])[ \\t]*)set(?: \\/[a-z](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n          lookbehind: true,\n          inside: {\n            keyword: /^set\\b/i,\n            string: string,\n            parameter: parameter,\n            variable: [variable, /\\w+(?=(?:[*\\/%+\\-&^|]|<<|>>)?=)/],\n            number: number,\n            operator: /[*\\/%+\\-&^|]=?|<<=?|>>=?|[!~_=]/,\n            punctuation: /[()',]/\n          }\n        },\n        {\n          // Other commands\n          pattern:\n            /((?:^|[&(])[ \\t]*@?)\\w+\\b(?:\"(?:[\\\\\"]\"|[^\"])*\"(?!\")|[^\"^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/m,\n          lookbehind: true,\n          inside: {\n            keyword: /^\\w+\\b/,\n            string: string,\n            parameter: parameter,\n            label: {\n              pattern: /(^\\s*):\\S+/m,\n              lookbehind: true,\n              alias: 'property'\n            },\n            variable: variable,\n            number: number,\n            operator: /\\^/\n          }\n        }\n      ],\n      operator: /[&@]/,\n      punctuation: /[()']/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = bbcode\nbbcode.displayName = 'bbcode'\nbbcode.aliases = ['shortcode']\nfunction bbcode(Prism) {\n  Prism.languages.bbcode = {\n    tag: {\n      pattern:\n        /\\[\\/?[^\\s=\\]]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))?(?:\\s+[^\\s=\\]]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))*\\s*\\]/,\n      inside: {\n        tag: {\n          pattern: /^\\[\\/?[^\\s=\\]]+/,\n          inside: {\n            punctuation: /^\\[\\/?/\n          }\n        },\n        'attr-value': {\n          pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+)/,\n          inside: {\n            punctuation: [\n              /^=/,\n              {\n                pattern: /^(\\s*)[\"']|[\"']$/,\n                lookbehind: true\n              }\n            ]\n          }\n        },\n        punctuation: /\\]/,\n        'attr-name': /[^\\s=\\]]+/\n      }\n    }\n  }\n  Prism.languages.shortcode = Prism.languages.bbcode\n}\n","'use strict'\n\nmodule.exports = bicep\nbicep.displayName = 'bicep'\nbicep.aliases = []\nfunction bicep(Prism) {\n  // based loosely upon: https://github.com/Azure/bicep/blob/main/src/textmate/bicep.tmlanguage\n  Prism.languages.bicep = {\n    comment: [\n      {\n        // multiline comments eg /* ASDF */\n        pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n        lookbehind: true,\n        greedy: true\n      },\n      {\n        // singleline comments eg // ASDF\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    property: [\n      {\n        pattern: /([\\r\\n][ \\t]*)[a-z_]\\w*(?=[ \\t]*:)/i,\n        lookbehind: true\n      },\n      {\n        pattern: /([\\r\\n][ \\t]*)'(?:\\\\.|\\$(?!\\{)|[^'\\\\\\r\\n$])*'(?=[ \\t]*:)/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: [\n      {\n        pattern: /'''[^'][\\s\\S]*?'''/,\n        greedy: true\n      },\n      {\n        pattern: /(^|[^\\\\'])'(?:\\\\.|\\$(?!\\{)|[^'\\\\\\r\\n$])*'/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    'interpolated-string': {\n      pattern: /(^|[^\\\\'])'(?:\\\\.|\\$(?:(?!\\{)|\\{[^{}\\r\\n]*\\})|[^'\\\\\\r\\n$])*'/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /\\$\\{[^{}\\r\\n]*\\}/,\n          inside: {\n            expression: {\n              pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n              lookbehind: true\n            },\n            punctuation: /^\\$\\{|\\}$/\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    },\n    datatype: {\n      pattern: /(\\b(?:output|param)\\b[ \\t]+\\w+[ \\t]+)\\w+\\b/,\n      lookbehind: true,\n      alias: 'class-name'\n    },\n    boolean: /\\b(?:false|true)\\b/,\n    // https://github.com/Azure/bicep/blob/114a3251b4e6e30082a58729f19a8cc4e374ffa6/src/textmate/bicep.tmlanguage#L184\n    keyword:\n      /\\b(?:existing|for|if|in|module|null|output|param|resource|targetScope|var)\\b/,\n    decorator: /@\\w+\\b/,\n    function: /\\b[a-z_]\\w*(?=[ \\t]*\\()/i,\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n    operator:\n      /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/,\n    punctuation: /[{}[\\];(),.:]/\n  }\n  Prism.languages.bicep['interpolated-string'].inside['interpolation'].inside[\n    'expression'\n  ].inside = Prism.languages.bicep\n}\n","'use strict'\n\nmodule.exports = birb\nbirb.displayName = 'birb'\nbirb.aliases = []\nfunction birb(Prism) {\n  Prism.languages.birb = Prism.languages.extend('clike', {\n    string: {\n      pattern: /r?(\"|')(?:\\\\.|(?!\\1)[^\\\\])*\\1/,\n      greedy: true\n    },\n    'class-name': [\n      /\\b[A-Z](?:[\\d_]*[a-zA-Z]\\w*)?\\b/, // matches variable and function return types (parameters as well).\n      /\\b(?:[A-Z]\\w*|(?!(?:var|void)\\b)[a-z]\\w*)(?=\\s+\\w+\\s*[;,=()])/\n    ],\n    keyword:\n      /\\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|new|next|noSeeb|return|static|switch|throw|var|void|while)\\b/,\n    operator: /\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?|:/,\n    variable: /\\b[a-z_]\\w*\\b/\n  })\n  Prism.languages.insertBefore('birb', 'function', {\n    metadata: {\n      pattern: /<\\w+>/,\n      greedy: true,\n      alias: 'symbol'\n    }\n  })\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = bison\nbison.displayName = 'bison'\nbison.aliases = []\nfunction bison(Prism) {\n  Prism.register(refractorC)\n  Prism.languages.bison = Prism.languages.extend('c', {})\n  Prism.languages.insertBefore('bison', 'comment', {\n    bison: {\n      // This should match all the beginning of the file\n      // including the prologue(s), the bison declarations and\n      // the grammar rules.\n      pattern: /^(?:[^%]|%(?!%))*%%[\\s\\S]*?%%/,\n      inside: {\n        c: {\n          // Allow for one level of nested braces\n          pattern: /%\\{[\\s\\S]*?%\\}|\\{(?:\\{[^}]*\\}|[^{}])*\\}/,\n          inside: {\n            delimiter: {\n              pattern: /^%?\\{|%?\\}$/,\n              alias: 'punctuation'\n            },\n            'bison-variable': {\n              pattern: /[$@](?:<[^\\s>]+>)?[\\w$]+/,\n              alias: 'variable',\n              inside: {\n                punctuation: /<|>/\n              }\n            },\n            rest: Prism.languages.c\n          }\n        },\n        comment: Prism.languages.c.comment,\n        string: Prism.languages.c.string,\n        property: /\\S+(?=:)/,\n        keyword: /%\\w+/,\n        number: {\n          pattern: /(^|[^@])\\b(?:0x[\\da-f]+|\\d+)/i,\n          lookbehind: true\n        },\n        punctuation: /%[%?]|[|:;\\[\\]<>]/\n      }\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = bnf\nbnf.displayName = 'bnf'\nbnf.aliases = ['rbnf']\nfunction bnf(Prism) {\n  Prism.languages.bnf = {\n    string: {\n      pattern: /\"[^\\r\\n\"]*\"|'[^\\r\\n']*'/\n    },\n    definition: {\n      pattern: /<[^<>\\r\\n\\t]+>(?=\\s*::=)/,\n      alias: ['rule', 'keyword'],\n      inside: {\n        punctuation: /^<|>$/\n      }\n    },\n    rule: {\n      pattern: /<[^<>\\r\\n\\t]+>/,\n      inside: {\n        punctuation: /^<|>$/\n      }\n    },\n    operator: /::=|[|()[\\]{}*+?]|\\.{3}/\n  }\n  Prism.languages.rbnf = Prism.languages.bnf\n}\n","'use strict'\n\nmodule.exports = brainfuck\nbrainfuck.displayName = 'brainfuck'\nbrainfuck.aliases = []\nfunction brainfuck(Prism) {\n  Prism.languages.brainfuck = {\n    pointer: {\n      pattern: /<|>/,\n      alias: 'keyword'\n    },\n    increment: {\n      pattern: /\\+/,\n      alias: 'inserted'\n    },\n    decrement: {\n      pattern: /-/,\n      alias: 'deleted'\n    },\n    branching: {\n      pattern: /\\[|\\]/,\n      alias: 'important'\n    },\n    operator: /[.,]/,\n    comment: /\\S+/\n  }\n}\n","'use strict'\n\nmodule.exports = brightscript\nbrightscript.displayName = 'brightscript'\nbrightscript.aliases = []\nfunction brightscript(Prism) {\n  Prism.languages.brightscript = {\n    comment: /(?:\\brem|').*/i,\n    'directive-statement': {\n      pattern: /(^[\\t ]*)#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if).*/im,\n      lookbehind: true,\n      alias: 'property',\n      inside: {\n        'error-message': {\n          pattern: /(^#error).+/,\n          lookbehind: true\n        },\n        directive: {\n          pattern: /^#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if)/,\n          alias: 'keyword'\n        },\n        expression: {\n          pattern: /[\\s\\S]+/,\n          inside: null // see below\n        }\n      }\n    },\n    property: {\n      pattern:\n        /([\\r\\n{,][\\t ]*)(?:(?!\\d)\\w+|\"(?:[^\"\\r\\n]|\"\")*\"(?!\"))(?=[ \\t]*:)/,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n      greedy: true\n    },\n    'class-name': {\n      pattern: /(\\bAs[\\t ]+)\\w+/i,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\\b/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    function: /\\b(?!\\d)\\w+(?=[\\t ]*\\()/,\n    number: /(?:\\b\\d+(?:\\.\\d+)?(?:[ed][+-]\\d+)?|&h[a-f\\d]+)\\b[%&!#]?/i,\n    operator:\n      /--|\\+\\+|>>=?|<<=?|<>|[-+*/\\\\<>]=?|[:^=?]|\\b(?:and|mod|not|or)\\b/i,\n    punctuation: /[.,;()[\\]{}]/,\n    constant: /\\b(?:LINE_NUM)\\b/i\n  }\n  Prism.languages.brightscript['directive-statement'].inside.expression.inside =\n    Prism.languages.brightscript\n}\n","'use strict'\n\nmodule.exports = bro\nbro.displayName = 'bro'\nbro.aliases = []\nfunction bro(Prism) {\n  Prism.languages.bro = {\n    comment: {\n      pattern: /(^|[^\\\\$])#.*/,\n      lookbehind: true,\n      inside: {\n        italic: /\\b(?:FIXME|TODO|XXX)\\b/\n      }\n    },\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    boolean: /\\b[TF]\\b/,\n    function: {\n      pattern: /(\\b(?:event|function|hook)[ \\t]+)\\w+(?:::\\w+)?/,\n      lookbehind: true\n    },\n    builtin:\n      /(?:@(?:load(?:-(?:plugin|sigs))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:add_func|create_expire|default|delete_func|encrypt|error_handler|expire_func|group|log|mergeable|optional|persistent|priority|raw_output|read_expire|redef|rotate_interval|rotate_size|synchronized|type_column|write_expire))/,\n    constant: {\n      pattern: /(\\bconst[ \\t]+)\\w+/i,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:add|addr|alarm|any|bool|break|const|continue|count|delete|double|else|enum|event|export|file|for|function|global|hook|if|in|int|interval|local|module|next|of|opaque|pattern|port|print|record|return|schedule|set|string|subnet|table|time|timeout|using|vector|when)\\b/,\n    operator: /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,\n    number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n    punctuation: /[{}[\\];(),.:]/\n  }\n}\n","'use strict'\n\nmodule.exports = bsl\nbsl.displayName = 'bsl'\nbsl.aliases = []\nfunction bsl(Prism) {\n  /* eslint-disable no-misleading-character-class */\n  // 1C:Enterprise\n  // https://github.com/Diversus23/\n  //\n  Prism.languages.bsl = {\n    comment: /\\/\\/.*/,\n    string: [\n      // Строки\n      // Strings\n      {\n        pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n        greedy: true\n      }, // Дата и время\n      // Date & time\n      {\n        pattern: /'(?:[^'\\r\\n\\\\]|\\\\.)*'/\n      }\n    ],\n    keyword: [\n      {\n        // RU\n        pattern:\n          /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:пока|для|новый|прервать|попытка|исключение|вызватьисключение|иначе|конецпопытки|неопределено|функция|перем|возврат|конецфункции|если|иначеесли|процедура|конецпроцедуры|тогда|знач|экспорт|конецесли|из|каждого|истина|ложь|по|цикл|конеццикла|выполнить)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n        lookbehind: true\n      },\n      {\n        // EN\n        pattern:\n          /\\b(?:break|do|each|else|elseif|enddo|endfunction|endif|endprocedure|endtry|except|execute|export|false|for|function|if|in|new|null|procedure|raise|return|then|to|true|try|undefined|val|var|while)\\b/i\n      }\n    ],\n    number: {\n      pattern:\n        /(^(?=\\d)|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:E[+-]?\\d+)?/i,\n      lookbehind: true\n    },\n    operator: [\n      /[<>+\\-*/]=?|[%=]/, // RU\n      {\n        pattern:\n          /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:и|или|не)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n        lookbehind: true\n      }, // EN\n      {\n        pattern: /\\b(?:and|not|or)\\b/i\n      }\n    ],\n    punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.]/,\n    directive: [\n      // Теги препроцессора вида &Клиент, &Сервер, ...\n      // Preprocessor tags of the type &Client, &Server, ...\n      {\n        pattern: /^([ \\t]*)&.*/m,\n        lookbehind: true,\n        greedy: true,\n        alias: 'important'\n      }, // Инструкции препроцессора вида:\n      // #Если Сервер Тогда\n      // ...\n      // #КонецЕсли\n      // Preprocessor instructions of the form:\n      // #If Server Then\n      // ...\n      // #EndIf\n      {\n        pattern: /^([ \\t]*)#.*/gm,\n        lookbehind: true,\n        greedy: true,\n        alias: 'important'\n      }\n    ]\n  }\n  Prism.languages.oscript = Prism.languages['bsl']\n}\n","'use strict'\n\nmodule.exports = c\nc.displayName = 'c'\nc.aliases = []\nfunction c(Prism) {\n  Prism.languages.c = Prism.languages.extend('clike', {\n    comment: {\n      pattern:\n        /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n      greedy: true\n    },\n    string: {\n      // https://en.cppreference.com/w/c/language/string_literal\n      pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n      greedy: true\n    },\n    'class-name': {\n      pattern:\n        /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    number:\n      /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i,\n    operator: />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/\n  })\n  Prism.languages.insertBefore('c', 'string', {\n    char: {\n      // https://en.cppreference.com/w/c/language/character_constant\n      pattern: /'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n]){0,32}'/,\n      greedy: true\n    }\n  })\n  Prism.languages.insertBefore('c', 'string', {\n    macro: {\n      // allow for multiline macro definitions\n      // spaces after the # character compile fine with gcc\n      pattern:\n        /(^[\\t ]*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property',\n      inside: {\n        string: [\n          {\n            // highlight the path of the include statement as a string\n            pattern: /^(#\\s*include\\s*)<[^>]+>/,\n            lookbehind: true\n          },\n          Prism.languages.c['string']\n        ],\n        char: Prism.languages.c['char'],\n        comment: Prism.languages.c['comment'],\n        'macro-name': [\n          {\n            pattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i,\n            lookbehind: true\n          },\n          {\n            pattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i,\n            lookbehind: true,\n            alias: 'function'\n          }\n        ],\n        // highlight macro directives as keywords\n        directive: {\n          pattern: /^(#\\s*)[a-z]+/,\n          lookbehind: true,\n          alias: 'keyword'\n        },\n        'directive-hash': /^#/,\n        punctuation: /##|\\\\(?=[\\r\\n])/,\n        expression: {\n          pattern: /\\S[\\s\\S]*/,\n          inside: Prism.languages.c\n        }\n      }\n    }\n  })\n  Prism.languages.insertBefore('c', 'function', {\n    // highlight predefined macros as constants\n    constant:\n      /\\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\\b/\n  })\n  delete Prism.languages.c['boolean']\n}\n","'use strict'\n\nmodule.exports = cfscript\ncfscript.displayName = 'cfscript'\ncfscript.aliases = []\nfunction cfscript(Prism) {\n  // https://cfdocs.org/script\n  Prism.languages.cfscript = Prism.languages.extend('clike', {\n    comment: [\n      {\n        pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n        lookbehind: true,\n        inside: {\n          annotation: {\n            pattern: /(?:^|[^.])@[\\w\\.]+/,\n            alias: 'punctuation'\n          }\n        }\n      },\n      {\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    keyword:\n      /\\b(?:abstract|break|catch|component|continue|default|do|else|extends|final|finally|for|function|if|in|include|package|private|property|public|remote|required|rethrow|return|static|switch|throw|try|var|while|xml)\\b(?!\\s*=)/,\n    operator: [\n      /\\+\\+|--|&&|\\|\\||::|=>|[!=]==|<=?|>=?|[-+*/%&|^!=<>]=?|\\?(?:\\.|:)?|[?:]/,\n      /\\b(?:and|contains|eq|equal|eqv|gt|gte|imp|is|lt|lte|mod|not|or|xor)\\b/\n    ],\n    scope: {\n      pattern:\n        /\\b(?:application|arguments|cgi|client|cookie|local|session|super|this|variables)\\b/,\n      alias: 'global'\n    },\n    type: {\n      pattern:\n        /\\b(?:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|void|xml)\\b/,\n      alias: 'builtin'\n    }\n  })\n  Prism.languages.insertBefore('cfscript', 'keyword', {\n    // This must be declared before keyword because we use \"function\" inside the lookahead\n    'function-variable': {\n      pattern:\n        /[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n      alias: 'function'\n    }\n  })\n  delete Prism.languages.cfscript['class-name']\n  Prism.languages.cfc = Prism.languages['cfscript']\n}\n","'use strict'\nvar refractorCpp = require('./cpp.js')\nmodule.exports = chaiscript\nchaiscript.displayName = 'chaiscript'\nchaiscript.aliases = []\nfunction chaiscript(Prism) {\n  Prism.register(refractorCpp)\n  Prism.languages.chaiscript = Prism.languages.extend('clike', {\n    string: {\n      pattern: /(^|[^\\\\])'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n      lookbehind: true,\n      greedy: true\n    },\n    'class-name': [\n      {\n        // e.g. class Rectangle { ... }\n        pattern: /(\\bclass\\s+)\\w+/,\n        lookbehind: true\n      },\n      {\n        // e.g. attr Rectangle::height, def Rectangle::area() { ... }\n        pattern: /(\\b(?:attr|def)\\s+)\\w+(?=\\s*::)/,\n        lookbehind: true\n      }\n    ],\n    keyword:\n      /\\b(?:attr|auto|break|case|catch|class|continue|def|default|else|finally|for|fun|global|if|return|switch|this|try|var|while)\\b/,\n    number: [Prism.languages.cpp.number, /\\b(?:Infinity|NaN)\\b/],\n    operator:\n      />>=?|<<=?|\\|\\||&&|:[:=]?|--|\\+\\+|[=!<>+\\-*/%|&^]=?|[?~]|`[^`\\r\\n]{1,4}`/\n  })\n  Prism.languages.insertBefore('chaiscript', 'operator', {\n    'parameter-type': {\n      // e.g. def foo(int x, Vector y) {...}\n      pattern: /([,(]\\s*)\\w+(?=\\s+\\w)/,\n      lookbehind: true,\n      alias: 'class-name'\n    }\n  })\n  Prism.languages.insertBefore('chaiscript', 'string', {\n    'string-interpolation': {\n      pattern:\n        /(^|[^\\\\])\"(?:[^\"$\\\\]|\\\\[\\s\\S]|\\$(?!\\{)|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\"/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern:\n            /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\}/,\n          lookbehind: true,\n          inside: {\n            'interpolation-expression': {\n              pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n              lookbehind: true,\n              inside: Prism.languages.chaiscript\n            },\n            'interpolation-punctuation': {\n              pattern: /^\\$\\{|\\}$/,\n              alias: 'punctuation'\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = cil\ncil.displayName = 'cil'\ncil.aliases = []\nfunction cil(Prism) {\n  Prism.languages.cil = {\n    comment: /\\/\\/.*/,\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    directive: {\n      pattern: /(^|\\W)\\.[a-z]+(?=\\s)/,\n      lookbehind: true,\n      alias: 'class-name'\n    },\n    // Actually an assembly reference\n    variable: /\\[[\\w\\.]+\\]/,\n    keyword:\n      /\\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|u?int(?:8|16|32|64)?|iant|idispatch|implements|import|initonly|instance|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\\b/,\n    function:\n      /\\b(?:(?:constrained|no|readonly|tail|unaligned|volatile)\\.)?(?:conv\\.(?:[iu][1248]?|ovf\\.[iu][1248]?(?:\\.un)?|r\\.un|r4|r8)|ldc\\.(?:i4(?:\\.\\d+|\\.[mM]1|\\.s)?|i8|r4|r8)|ldelem(?:\\.[iu][1248]?|\\.r[48]|\\.ref|a)?|ldind\\.(?:[iu][1248]?|r[48]|ref)|stelem\\.?(?:i[1248]?|r[48]|ref)?|stind\\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\\.[0-3s]|a(?:\\.s)?)?|ldloc(?:\\.\\d+|\\.s)?|sub(?:\\.ovf(?:\\.un)?)?|mul(?:\\.ovf(?:\\.un)?)?|add(?:\\.ovf(?:\\.un)?)?|stloc(?:\\.[0-3s])?|refany(?:type|val)|blt(?:\\.un)?(?:\\.s)?|ble(?:\\.un)?(?:\\.s)?|bgt(?:\\.un)?(?:\\.s)?|bge(?:\\.un)?(?:\\.s)?|unbox(?:\\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\\.s)?|bne\\.un(?:\\.s)?|ldloca(?:\\.s)?|brzero(?:\\.s)?|brtrue(?:\\.s)?|brnull(?:\\.s)?|brinst(?:\\.s)?|starg(?:\\.s)?|leave(?:\\.s)?|shr(?:\\.un)?|rem(?:\\.un)?|div(?:\\.un)?|clt(?:\\.un)?|alignment|castclass|ldvirtftn|beq(?:\\.s)?|ckfinite|ldsflda|ldtoken|localloc|mkrefany|rethrow|cgt\\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    number: /\\b-?(?:0x[0-9a-f]+|\\d+)(?:\\.[0-9a-f]+)?\\b/i,\n    punctuation: /[{}[\\];(),:=]|IL_[0-9A-Za-z]+/\n  }\n}\n","'use strict'\n\nmodule.exports = clike\nclike.displayName = 'clike'\nclike.aliases = []\nfunction clike(Prism) {\n  Prism.languages.clike = {\n    comment: [\n      {\n        pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n        lookbehind: true,\n        greedy: true\n      },\n      {\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    'class-name': {\n      pattern:\n        /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n      lookbehind: true,\n      inside: {\n        punctuation: /[.\\\\]/\n      }\n    },\n    keyword:\n      /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    function: /\\b\\w+(?=\\()/,\n    number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n    operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n    punctuation: /[{}[\\];(),.:]/\n  }\n}\n","'use strict'\n\nmodule.exports = clojure\nclojure.displayName = 'clojure'\nclojure.aliases = []\nfunction clojure(Prism) {\n  // Copied from https://github.com/jeluard/prism-clojure\n  Prism.languages.clojure = {\n    comment: {\n      pattern: /;.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n      greedy: true\n    },\n    char: /\\\\\\w+/,\n    symbol: {\n      pattern: /(^|[\\s()\\[\\]{},])::?[\\w*+!?'<>=/.-]+/,\n      lookbehind: true\n    },\n    keyword: {\n      pattern:\n        /(\\()(?:-|->|->>|\\.|\\.\\.|\\*|\\/|\\+|<|<=|=|==|>|>=|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|cond|conj|cons|constantly|construct-proxy|contains\\?|count|create-ns|create-struct|cycle|dec|declare|def|def-|definline|definterface|defmacro|defmethod|defmulti|defn|defn-|defonce|defproject|defprotocol|defrecord|defstruct|deftype|deref|difference|disj|dissoc|distinct|do|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\\?|ensure|eval|every\\?|false\\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|fn|fnseq|for|frest|gensym|get|get-proxy-class|hash-map|hash-set|identical\\?|identity|if|if-let|if-not|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\\?|last|lazy-cat|lazy-cons|left|lefts|let|line-seq|list|list\\*|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|monitor-enter|name|namespace|neg\\?|new|newline|next|nil\\?|node|not|not-any\\?|not-every\\?|not=|ns|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|quote|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|recur|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\\?|set|set!|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\\?|split-at|split-with|str|string\\?|struct|struct-map|subs|subvec|symbol|symbol\\?|sync|take|take-nth|take-while|test|throw|time|to-array|to-array-2d|tree-seq|true\\?|try|union|up|update-proxy|val|vals|var|var-get|var-set|var\\?|vector|vector-zip|vector\\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\\?|zipmap|zipper)(?=[\\s)]|$)/,\n      lookbehind: true\n    },\n    boolean: /\\b(?:false|nil|true)\\b/,\n    number: {\n      pattern:\n        /(^|[^\\w$@])(?:\\d+(?:[/.]\\d+)?(?:e[+-]?\\d+)?|0x[a-f0-9]+|[1-9]\\d?r[a-z0-9]+)[lmn]?(?![\\w$@])/i,\n      lookbehind: true\n    },\n    function: {\n      pattern: /((?:^|[^'])\\()[\\w*+!?'<>=/.-]+(?=[\\s)]|$)/,\n      lookbehind: true\n    },\n    operator: /[#@^`~]/,\n    punctuation: /[{}\\[\\](),]/\n  }\n}\n","'use strict'\n\nmodule.exports = cmake\ncmake.displayName = 'cmake'\ncmake.aliases = []\nfunction cmake(Prism) {\n  Prism.languages.cmake = {\n    comment: /#.*/,\n    string: {\n      pattern: /\"(?:[^\\\\\"]|\\\\.)*\"/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /\\$\\{(?:[^{}$]|\\$\\{[^{}$]*\\})*\\}/,\n          inside: {\n            punctuation: /\\$\\{|\\}/,\n            variable: /\\w+/\n          }\n        }\n      }\n    },\n    variable:\n      /\\b(?:CMAKE_\\w+|\\w+_(?:(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT|VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?)|(?:ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_(?:BINARY_DIR|DESCRIPTION|HOMEPAGE_URL|NAME|SOURCE_DIR|VERSION|VERSION_(?:MAJOR|MINOR|PATCH|TWEAK))|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE|XCODE_VERSION))\\b/,\n    property:\n      /\\b(?:cxx_\\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\\w+|\\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|GLOBAL_KEYWORD|GLOBAL_PROJECT_TYPES|GLOBAL_ROOTNAMESPACE|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\\b/,\n    keyword:\n      /\\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\\s*\\()\\b/,\n    boolean: /\\b(?:FALSE|OFF|ON|TRUE)\\b/,\n    namespace:\n      /\\b(?:INTERFACE|PRIVATE|PROPERTIES|PUBLIC|SHARED|STATIC|TARGET_OBJECTS)\\b/,\n    operator:\n      /\\b(?:AND|DEFINED|EQUAL|GREATER|LESS|MATCHES|NOT|OR|STREQUAL|STRGREATER|STRLESS|VERSION_EQUAL|VERSION_GREATER|VERSION_LESS)\\b/,\n    inserted: {\n      pattern: /\\b\\w+::\\w+\\b/,\n      alias: 'class-name'\n    },\n    number: /\\b\\d+(?:\\.\\d+)*\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()\\b/i,\n    punctuation: /[()>}]|\\$[<{]/\n  }\n}\n","'use strict'\n\nmodule.exports = cobol\ncobol.displayName = 'cobol'\ncobol.aliases = []\nfunction cobol(Prism) {\n  Prism.languages.cobol = {\n    comment: {\n      pattern: /\\*>.*|(^[ \\t]*)\\*.*/m,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /[xzgn]?(?:\"(?:[^\\r\\n\"]|\"\")*\"(?!\")|'(?:[^\\r\\n']|'')*'(?!'))/i,\n      greedy: true\n    },\n    level: {\n      pattern: /(^[ \\t]*)\\d+\\b/m,\n      lookbehind: true,\n      greedy: true,\n      alias: 'number'\n    },\n    'class-name': {\n      // https://github.com/antlr/grammars-v4/blob/42edd5b687d183b5fa679e858a82297bd27141e7/cobol85/Cobol85.g4#L1015\n      pattern:\n        /(\\bpic(?:ture)?\\s+)(?:(?:[-\\w$/,:*+<>]|\\.(?!\\s|$))(?:\\(\\d+\\))?)+/i,\n      lookbehind: true,\n      inside: {\n        number: {\n          pattern: /(\\()\\d+/,\n          lookbehind: true\n        },\n        punctuation: /[()]/\n      }\n    },\n    keyword: {\n      pattern:\n        /(^|[^\\w-])(?:ABORT|ACCEPT|ACCESS|ADD|ADDRESS|ADVANCING|AFTER|ALIGNED|ALL|ALPHABET|ALPHABETIC|ALPHABETIC-LOWER|ALPHABETIC-UPPER|ALPHANUMERIC|ALPHANUMERIC-EDITED|ALSO|ALTER|ALTERNATE|ANY|ARE|AREA|AREAS|AS|ASCENDING|ASCII|ASSIGN|ASSOCIATED-DATA|ASSOCIATED-DATA-LENGTH|AT|ATTRIBUTE|AUTHOR|AUTO|AUTO-SKIP|BACKGROUND-COLOR|BACKGROUND-COLOUR|BASIS|BEEP|BEFORE|BEGINNING|BELL|BINARY|BIT|BLANK|BLINK|BLOCK|BOTTOM|BOUNDS|BY|BYFUNCTION|BYTITLE|CALL|CANCEL|CAPABLE|CCSVERSION|CD|CF|CH|CHAINING|CHANGED|CHANNEL|CHARACTER|CHARACTERS|CLASS|CLASS-ID|CLOCK-UNITS|CLOSE|CLOSE-DISPOSITION|COBOL|CODE|CODE-SET|COL|COLLATING|COLUMN|COM-REG|COMMA|COMMITMENT|COMMON|COMMUNICATION|COMP|COMP-1|COMP-2|COMP-3|COMP-4|COMP-5|COMPUTATIONAL|COMPUTATIONAL-1|COMPUTATIONAL-2|COMPUTATIONAL-3|COMPUTATIONAL-4|COMPUTATIONAL-5|COMPUTE|CONFIGURATION|CONTAINS|CONTENT|CONTINUE|CONTROL|CONTROL-POINT|CONTROLS|CONVENTION|CONVERTING|COPY|CORR|CORRESPONDING|COUNT|CRUNCH|CURRENCY|CURSOR|DATA|DATA-BASE|DATE|DATE-COMPILED|DATE-WRITTEN|DAY|DAY-OF-WEEK|DBCS|DE|DEBUG-CONTENTS|DEBUG-ITEM|DEBUG-LINE|DEBUG-NAME|DEBUG-SUB-1|DEBUG-SUB-2|DEBUG-SUB-3|DEBUGGING|DECIMAL-POINT|DECLARATIVES|DEFAULT|DEFAULT-DISPLAY|DEFINITION|DELETE|DELIMITED|DELIMITER|DEPENDING|DESCENDING|DESTINATION|DETAIL|DFHRESP|DFHVALUE|DISABLE|DISK|DISPLAY|DISPLAY-1|DIVIDE|DIVISION|DONTCARE|DOUBLE|DOWN|DUPLICATES|DYNAMIC|EBCDIC|EGCS|EGI|ELSE|EMI|EMPTY-CHECK|ENABLE|END|END-ACCEPT|END-ADD|END-CALL|END-COMPUTE|END-DELETE|END-DIVIDE|END-EVALUATE|END-IF|END-MULTIPLY|END-OF-PAGE|END-PERFORM|END-READ|END-RECEIVE|END-RETURN|END-REWRITE|END-SEARCH|END-START|END-STRING|END-SUBTRACT|END-UNSTRING|END-WRITE|ENDING|ENTER|ENTRY|ENTRY-PROCEDURE|ENVIRONMENT|EOL|EOP|EOS|ERASE|ERROR|ESCAPE|ESI|EVALUATE|EVENT|EVERY|EXCEPTION|EXCLUSIVE|EXHIBIT|EXIT|EXPORT|EXTEND|EXTENDED|EXTERNAL|FD|FILE|FILE-CONTROL|FILLER|FINAL|FIRST|FOOTING|FOR|FOREGROUND-COLOR|FOREGROUND-COLOUR|FROM|FULL|FUNCTION|FUNCTION-POINTER|FUNCTIONNAME|GENERATE|GIVING|GLOBAL|GO|GOBACK|GRID|GROUP|HEADING|HIGH-VALUE|HIGH-VALUES|HIGHLIGHT|I-O|I-O-CONTROL|ID|IDENTIFICATION|IF|IMPLICIT|IMPORT|IN|INDEX|INDEXED|INDICATE|INITIAL|INITIALIZE|INITIATE|INPUT|INPUT-OUTPUT|INSPECT|INSTALLATION|INTEGER|INTO|INVALID|INVOKE|IS|JUST|JUSTIFIED|KANJI|KEPT|KEY|KEYBOARD|LABEL|LANGUAGE|LAST|LB|LD|LEADING|LEFT|LEFTLINE|LENGTH|LENGTH-CHECK|LIBACCESS|LIBPARAMETER|LIBRARY|LIMIT|LIMITS|LINAGE|LINAGE-COUNTER|LINE|LINE-COUNTER|LINES|LINKAGE|LIST|LOCAL|LOCAL-STORAGE|LOCK|LONG-DATE|LONG-TIME|LOW-VALUE|LOW-VALUES|LOWER|LOWLIGHT|MEMORY|MERGE|MESSAGE|MMDDYYYY|MODE|MODULES|MORE-LABELS|MOVE|MULTIPLE|MULTIPLY|NAMED|NATIONAL|NATIONAL-EDITED|NATIVE|NEGATIVE|NETWORK|NEXT|NO|NO-ECHO|NULL|NULLS|NUMBER|NUMERIC|NUMERIC-DATE|NUMERIC-EDITED|NUMERIC-TIME|OBJECT-COMPUTER|OCCURS|ODT|OF|OFF|OMITTED|ON|OPEN|OPTIONAL|ORDER|ORDERLY|ORGANIZATION|OTHER|OUTPUT|OVERFLOW|OVERLINE|OWN|PACKED-DECIMAL|PADDING|PAGE|PAGE-COUNTER|PASSWORD|PERFORM|PF|PH|PIC|PICTURE|PLUS|POINTER|PORT|POSITION|POSITIVE|PRINTER|PRINTING|PRIVATE|PROCEDURE|PROCEDURE-POINTER|PROCEDURES|PROCEED|PROCESS|PROGRAM|PROGRAM-ID|PROGRAM-LIBRARY|PROMPT|PURGE|QUEUE|QUOTE|QUOTES|RANDOM|RD|READ|READER|REAL|RECEIVE|RECEIVED|RECORD|RECORDING|RECORDS|RECURSIVE|REDEFINES|REEL|REF|REFERENCE|REFERENCES|RELATIVE|RELEASE|REMAINDER|REMARKS|REMOTE|REMOVAL|REMOVE|RENAMES|REPLACE|REPLACING|REPORT|REPORTING|REPORTS|REQUIRED|RERUN|RESERVE|RESET|RETURN|RETURN-CODE|RETURNING|REVERSE-VIDEO|REVERSED|REWIND|REWRITE|RF|RH|RIGHT|ROUNDED|RUN|SAME|SAVE|SCREEN|SD|SEARCH|SECTION|SECURE|SECURITY|SEGMENT|SEGMENT-LIMIT|SELECT|SEND|SENTENCE|SEPARATE|SEQUENCE|SEQUENTIAL|SET|SHARED|SHAREDBYALL|SHAREDBYRUNUNIT|SHARING|SHIFT-IN|SHIFT-OUT|SHORT-DATE|SIGN|SIZE|SORT|SORT-CONTROL|SORT-CORE-SIZE|SORT-FILE-SIZE|SORT-MERGE|SORT-MESSAGE|SORT-MODE-SIZE|SORT-RETURN|SOURCE|SOURCE-COMPUTER|SPACE|SPACES|SPECIAL-NAMES|STANDARD|STANDARD-1|STANDARD-2|START|STATUS|STOP|STRING|SUB-QUEUE-1|SUB-QUEUE-2|SUB-QUEUE-3|SUBTRACT|SUM|SUPPRESS|SYMBOL|SYMBOLIC|SYNC|SYNCHRONIZED|TABLE|TALLY|TALLYING|TAPE|TASK|TERMINAL|TERMINATE|TEST|TEXT|THEN|THREAD|THREAD-LOCAL|THROUGH|THRU|TIME|TIMER|TIMES|TITLE|TO|TODAYS-DATE|TODAYS-NAME|TOP|TRAILING|TRUNCATED|TYPE|TYPEDEF|UNDERLINE|UNIT|UNSTRING|UNTIL|UP|UPON|USAGE|USE|USING|VALUE|VALUES|VARYING|VIRTUAL|WAIT|WHEN|WHEN-COMPILED|WITH|WORDS|WORKING-STORAGE|WRITE|YEAR|YYYYDDD|YYYYMMDD|ZERO-FILL|ZEROES|ZEROS)(?![\\w-])/i,\n      lookbehind: true\n    },\n    boolean: {\n      pattern: /(^|[^\\w-])(?:false|true)(?![\\w-])/i,\n      lookbehind: true\n    },\n    number: {\n      pattern:\n        /(^|[^\\w-])(?:[+-]?(?:(?:\\d+(?:[.,]\\d+)?|[.,]\\d+)(?:e[+-]?\\d+)?|zero))(?![\\w-])/i,\n      lookbehind: true\n    },\n    operator: [\n      /<>|[<>]=?|[=+*/&]/,\n      {\n        pattern: /(^|[^\\w-])(?:-|and|equal|greater|less|not|or|than)(?![\\w-])/i,\n        lookbehind: true\n      }\n    ],\n    punctuation: /[.:,()]/\n  }\n}\n","'use strict'\n\nmodule.exports = coffeescript\ncoffeescript.displayName = 'coffeescript'\ncoffeescript.aliases = ['coffee']\nfunction coffeescript(Prism) {\n  ;(function (Prism) {\n    // Ignore comments starting with { to privilege string interpolation highlighting\n    var comment = /#(?!\\{).+/\n    var interpolation = {\n      pattern: /#\\{[^}]+\\}/,\n      alias: 'variable'\n    }\n    Prism.languages.coffeescript = Prism.languages.extend('javascript', {\n      comment: comment,\n      string: [\n        // Strings are multiline\n        {\n          pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n          greedy: true\n        },\n        {\n          // Strings are multiline\n          pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n          greedy: true,\n          inside: {\n            interpolation: interpolation\n          }\n        }\n      ],\n      keyword:\n        /\\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\\b/,\n      'class-member': {\n        pattern: /@(?!\\d)\\w+/,\n        alias: 'variable'\n      }\n    })\n    Prism.languages.insertBefore('coffeescript', 'comment', {\n      'multiline-comment': {\n        pattern: /###[\\s\\S]+?###/,\n        alias: 'comment'\n      },\n      // Block regexp can contain comments and interpolation\n      'block-regex': {\n        pattern: /\\/{3}[\\s\\S]*?\\/{3}/,\n        alias: 'regex',\n        inside: {\n          comment: comment,\n          interpolation: interpolation\n        }\n      }\n    })\n    Prism.languages.insertBefore('coffeescript', 'string', {\n      'inline-javascript': {\n        pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n        inside: {\n          delimiter: {\n            pattern: /^`|`$/,\n            alias: 'punctuation'\n          },\n          script: {\n            pattern: /[\\s\\S]+/,\n            alias: 'language-javascript',\n            inside: Prism.languages.javascript\n          }\n        }\n      },\n      // Block strings\n      'multiline-string': [\n        {\n          pattern: /'''[\\s\\S]*?'''/,\n          greedy: true,\n          alias: 'string'\n        },\n        {\n          pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n          greedy: true,\n          alias: 'string',\n          inside: {\n            interpolation: interpolation\n          }\n        }\n      ]\n    })\n    Prism.languages.insertBefore('coffeescript', 'keyword', {\n      // Object property\n      property: /(?!\\d)\\w+(?=\\s*:(?!:))/\n    })\n    delete Prism.languages.coffeescript['template-string']\n    Prism.languages.coffee = Prism.languages.coffeescript\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = concurnas\nconcurnas.displayName = 'concurnas'\nconcurnas.aliases = ['conc']\nfunction concurnas(Prism) {\n  Prism.languages.concurnas = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\/\\/.*)/,\n      lookbehind: true,\n      greedy: true\n    },\n    langext: {\n      pattern: /\\b\\w+\\s*\\|\\|[\\s\\S]+?\\|\\|/,\n      greedy: true,\n      inside: {\n        'class-name': /^\\w+/,\n        string: {\n          pattern: /(^\\s*\\|\\|)[\\s\\S]+(?=\\|\\|$)/,\n          lookbehind: true\n        },\n        punctuation: /\\|\\|/\n      }\n    },\n    function: {\n      pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    number:\n      /\\b0b[01][01_]*L?\\b|\\b0x(?:[\\da-f_]*\\.)?[\\da-f_p+-]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfls]?/i,\n    punctuation: /[{}[\\];(),.:]/,\n    operator:\n      /<==|>==|=>|->|<-|<>|&==|&<>|\\?:?|\\.\\?|\\+\\+|--|[-+*/=<>]=?|[!^~]|\\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\\b=?/,\n    annotation: {\n      pattern: /@(?:\\w+:)?(?:\\w+|\\[[^\\]]+\\])?/,\n      alias: 'builtin'\n    }\n  }\n  Prism.languages.insertBefore('concurnas', 'langext', {\n    'regex-literal': {\n      pattern: /\\br(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern:\n            /((?:^|[^\\\\])(?:\\\\{2})*)\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n          lookbehind: true,\n          inside: Prism.languages.concurnas\n        },\n        regex: /[\\s\\S]+/\n      }\n    },\n    'string-literal': {\n      pattern: /(?:\\B|\\bs)(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern:\n            /((?:^|[^\\\\])(?:\\\\{2})*)\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n          lookbehind: true,\n          inside: Prism.languages.concurnas\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n  })\n  Prism.languages.conc = Prism.languages.concurnas\n}\n","'use strict'\n\nmodule.exports = coq\ncoq.displayName = 'coq'\ncoq.aliases = []\nfunction coq(Prism) {\n  ;(function (Prism) {\n    // https://github.com/coq/coq\n    var commentSource = /\\(\\*(?:[^(*]|\\((?!\\*)|\\*(?!\\))|<self>)*\\*\\)/.source\n    for (var i = 0; i < 2; i++) {\n      commentSource = commentSource.replace(/<self>/g, function () {\n        return commentSource\n      })\n    }\n    commentSource = commentSource.replace(/<self>/g, '[]')\n    Prism.languages.coq = {\n      comment: RegExp(commentSource),\n      string: {\n        pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n        greedy: true\n      },\n      attribute: [\n        {\n          pattern: RegExp(\n            /#\\[(?:[^\\[\\](\"]|\"(?:[^\"]|\"\")*\"(?!\")|\\((?!\\*)|<comment>)*\\]/.source.replace(\n              /<comment>/g,\n              function () {\n                return commentSource\n              }\n            )\n          ),\n          greedy: true,\n          alias: 'attr-name',\n          inside: {\n            comment: RegExp(commentSource),\n            string: {\n              pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n              greedy: true\n            },\n            operator: /=/,\n            punctuation: /^#\\[|\\]$|[,()]/\n          }\n        },\n        {\n          pattern:\n            /\\b(?:Cumulative|Global|Local|Monomorphic|NonCumulative|Polymorphic|Private|Program)\\b/,\n          alias: 'attr-name'\n        }\n      ],\n      keyword:\n        /\\b(?:Abort|About|Add|Admit|Admitted|All|Arguments|As|Assumptions|Axiom|Axioms|Back|BackTo|Backtrace|BinOp|BinOpSpec|BinRel|Bind|Blacklist|Canonical|Case|Cd|Check|Class|Classes|Close|CoFixpoint|CoInductive|Coercion|Coercions|Collection|Combined|Compute|Conjecture|Conjectures|Constant|Constants|Constraint|Constructors|Context|Corollary|Create|CstOp|Custom|Cut|Debug|Declare|Defined|Definition|Delimit|Dependencies|Dependent|Derive|Diffs|Drop|Elimination|End|Entry|Equality|Eval|Example|Existential|Existentials|Existing|Export|Extern|Extraction|Fact|Fail|Field|File|Firstorder|Fixpoint|Flags|Focus|From|Funclass|Function|Functional|GC|Generalizable|Goal|Grab|Grammar|Graph|Guarded|Haskell|Heap|Hide|Hint|HintDb|Hints|Hypotheses|Hypothesis|IF|Identity|Immediate|Implicit|Implicits|Import|Include|Induction|Inductive|Infix|Info|Initial|InjTyp|Inline|Inspect|Instance|Instances|Intro|Intros|Inversion|Inversion_clear|JSON|Language|Left|Lemma|Let|Lia|Libraries|Library|Load|LoadPath|Locate|Ltac|Ltac2|ML|Match|Method|Minimality|Module|Modules|Morphism|Next|NoInline|Notation|Number|OCaml|Obligation|Obligations|Opaque|Open|Optimize|Parameter|Parameters|Parametric|Path|Paths|Prenex|Preterm|Primitive|Print|Profile|Projections|Proof|Prop|PropBinOp|PropOp|PropUOp|Property|Proposition|Pwd|Qed|Quit|Rec|Record|Recursive|Redirect|Reduction|Register|Relation|Remark|Remove|Require|Reserved|Reset|Resolve|Restart|Rewrite|Right|Ring|Rings|SProp|Saturate|Save|Scheme|Scope|Scopes|Search|SearchHead|SearchPattern|SearchRewrite|Section|Separate|Set|Setoid|Show|Signatures|Solve|Solver|Sort|Sortclass|Sorted|Spec|Step|Strategies|Strategy|String|Structure|SubClass|Subgraph|SuchThat|Tactic|Term|TestCompile|Theorem|Time|Timeout|To|Transparent|Type|Typeclasses|Types|Typing|UnOp|UnOpSpec|Undelimit|Undo|Unfocus|Unfocused|Unfold|Universe|Universes|Unshelve|Variable|Variables|Variant|Verbose|View|Visibility|Zify|_|apply|as|at|by|cofix|else|end|exists|exists2|fix|for|forall|fun|if|in|let|match|measure|move|removed|return|struct|then|using|wf|where|with)\\b/,\n      number:\n        /\\b(?:0x[a-f0-9][a-f0-9_]*(?:\\.[a-f0-9_]+)?(?:p[+-]?\\d[\\d_]*)?|\\d[\\d_]*(?:\\.[\\d_]+)?(?:e[+-]?\\d[\\d_]*)?)\\b/i,\n      punct: {\n        pattern: /@\\{|\\{\\||\\[=|:>/,\n        alias: 'punctuation'\n      },\n      operator:\n        /\\/\\\\|\\\\\\/|\\.{2,3}|:{1,2}=|\\*\\*|[-=]>|<(?:->?|[+:=>]|<:)|>(?:=|->)|\\|[-|]?|[-!%&*+/<=>?@^~']/,\n      punctuation: /\\.\\(|`\\(|@\\{|`\\{|\\{\\||\\[=|:>|[:.,;(){}\\[\\]]/\n    }\n  })(Prism)\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = cpp\ncpp.displayName = 'cpp'\ncpp.aliases = []\nfunction cpp(Prism) {\n  Prism.register(refractorC)\n  ;(function (Prism) {\n    var keyword =\n      /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/\n    var modName = /\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b/.source.replace(\n      /<keyword>/g,\n      function () {\n        return keyword.source\n      }\n    )\n    Prism.languages.cpp = Prism.languages.extend('c', {\n      'class-name': [\n        {\n          pattern: RegExp(\n            /(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+/.source.replace(\n              /<keyword>/g,\n              function () {\n                return keyword.source\n              }\n            )\n          ),\n          lookbehind: true\n        }, // This is intended to capture the class name of method implementations like:\n        //   void foo::bar() const {}\n        // However! The `foo` in the above example could also be a namespace, so we only capture the class name if\n        // it starts with an uppercase letter. This approximation should give decent results.\n        /\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/, // This will capture the class name before destructors like:\n        //   Foo::~Foo() {}\n        /\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i, // This also intends to capture the class name of method implementations but here the class has template\n        // parameters, so it can't be a namespace (until C++ adds generic namespaces).\n        /\\b\\w+(?=\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\\s*::\\s*\\w+\\s*\\()/\n      ],\n      keyword: keyword,\n      number: {\n        pattern:\n          /(?:\\b0b[01']+|\\b0x(?:[\\da-f']+(?:\\.[\\da-f']*)?|\\.[\\da-f']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/i,\n        greedy: true\n      },\n      operator:\n        />>=?|<<=?|->|--|\\+\\+|&&|\\|\\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/,\n      boolean: /\\b(?:false|true)\\b/\n    })\n    Prism.languages.insertBefore('cpp', 'string', {\n      module: {\n        // https://en.cppreference.com/w/cpp/language/modules\n        pattern: RegExp(\n          /(\\b(?:import|module)\\s+)/.source +\n            '(?:' + // header-name\n            /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|<[^<>\\r\\n]*>/.source +\n            '|' + // module name or partition or both\n            /<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>/.source.replace(\n              /<mod-name>/g,\n              function () {\n                return modName\n              }\n            ) +\n            ')'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          string: /^[<\"][\\s\\S]+/,\n          operator: /:/,\n          punctuation: /\\./\n        }\n      },\n      'raw-string': {\n        pattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/,\n        alias: 'string',\n        greedy: true\n      }\n    })\n    Prism.languages.insertBefore('cpp', 'keyword', {\n      'generic-function': {\n        pattern: /\\b(?!operator\\b)[a-z_]\\w*\\s*<(?:[^<>]|<[^<>]*>)*>(?=\\s*\\()/i,\n        inside: {\n          function: /^\\w+/,\n          generic: {\n            pattern: /<[\\s\\S]+/,\n            alias: 'class-name',\n            inside: Prism.languages.cpp\n          }\n        }\n      }\n    })\n    Prism.languages.insertBefore('cpp', 'operator', {\n      'double-colon': {\n        pattern: /::/,\n        alias: 'punctuation'\n      }\n    })\n    Prism.languages.insertBefore('cpp', 'class-name', {\n      // the base clause is an optional list of parent classes\n      // https://en.cppreference.com/w/cpp/language/class\n      'base-clause': {\n        pattern:\n          /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/,\n        lookbehind: true,\n        greedy: true,\n        inside: Prism.languages.extend('cpp', {})\n      }\n    })\n    Prism.languages.insertBefore(\n      'inside',\n      'double-colon',\n      {\n        // All untokenized words that are not namespaces should be class names\n        'class-name': /\\b[a-z_]\\w*\\b(?!\\s*::)/i\n      },\n      Prism.languages.cpp['base-clause']\n    )\n  })(Prism)\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nmodule.exports = crystal\ncrystal.displayName = 'crystal'\ncrystal.aliases = []\nfunction crystal(Prism) {\n  Prism.register(refractorRuby)\n  ;(function (Prism) {\n    Prism.languages.crystal = Prism.languages.extend('ruby', {\n      keyword: [\n        /\\b(?:__DIR__|__END_LINE__|__FILE__|__LINE__|abstract|alias|annotation|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|ifdef|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|ptr|require|rescue|return|select|self|sizeof|struct|super|then|type|typeof|undef|uninitialized|union|unless|until|when|while|with|yield)\\b/,\n        {\n          pattern: /(\\.\\s*)(?:is_a|responds_to)\\?/,\n          lookbehind: true\n        }\n      ],\n      number:\n        /\\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\\da-fA-F_]*[\\da-fA-F]|(?:\\d(?:[\\d_]*\\d)?)(?:\\.[\\d_]*\\d)?(?:[eE][+-]?[\\d_]*\\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\\b/,\n      operator: [/->/, Prism.languages.ruby.operator],\n      punctuation: /[(){}[\\].,;\\\\]/\n    })\n    Prism.languages.insertBefore('crystal', 'string-literal', {\n      attribute: {\n        pattern: /@\\[.*?\\]/,\n        inside: {\n          delimiter: {\n            pattern: /^@\\[|\\]$/,\n            alias: 'punctuation'\n          },\n          attribute: {\n            pattern: /^(\\s*)\\w+/,\n            lookbehind: true,\n            alias: 'class-name'\n          },\n          args: {\n            pattern: /\\S(?:[\\s\\S]*\\S)?/,\n            inside: Prism.languages.crystal\n          }\n        }\n      },\n      expansion: {\n        pattern: /\\{(?:\\{.*?\\}|%.*?%)\\}/,\n        inside: {\n          content: {\n            pattern: /^(\\{.)[\\s\\S]+(?=.\\}$)/,\n            lookbehind: true,\n            inside: Prism.languages.crystal\n          },\n          delimiter: {\n            pattern: /^\\{[\\{%]|[\\}%]\\}$/,\n            alias: 'operator'\n          }\n        }\n      },\n      char: {\n        pattern:\n          /'(?:[^\\\\\\r\\n]{1,2}|\\\\(?:.|u(?:[A-Fa-f0-9]{1,4}|\\{[A-Fa-f0-9]{1,6}\\})))'/,\n        greedy: true\n      }\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = csharp\ncsharp.displayName = 'csharp'\ncsharp.aliases = ['dotnet', 'cs']\nfunction csharp(Prism) {\n  ;(function (Prism) {\n    /**\n     * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (zero based).\n     *\n     * Note: This is a simple text based replacement. Be careful when using backreferences!\n     *\n     * @param {string} pattern the given pattern.\n     * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n     * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n     * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n     */\n    function replace(pattern, replacements) {\n      return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n        return '(?:' + replacements[+index] + ')'\n      })\n    }\n    /**\n     * @param {string} pattern\n     * @param {string[]} replacements\n     * @param {string} [flags]\n     * @returns {RegExp}\n     */\n    function re(pattern, replacements, flags) {\n      return RegExp(replace(pattern, replacements), flags || '')\n    }\n    /**\n     * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n     *\n     * @param {string} pattern\n     * @param {number} depthLog2\n     * @returns {string}\n     */\n    function nested(pattern, depthLog2) {\n      for (var i = 0; i < depthLog2; i++) {\n        pattern = pattern.replace(/<<self>>/g, function () {\n          return '(?:' + pattern + ')'\n        })\n      }\n      return pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]')\n    } // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\n    var keywordKinds = {\n      // keywords which represent a return or variable type\n      type: 'bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void',\n      // keywords which are used to declare a type\n      typeDeclaration: 'class enum interface record struct',\n      // contextual keywords\n      // (\"var\" and \"dynamic\" are missing because they are used like types)\n      contextual:\n        'add alias and ascending async await by descending from(?=\\\\s*(?:\\\\w|$)) get global group into init(?=\\\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\\\s*{)',\n      // all other keywords\n      other:\n        'abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield'\n    } // keywords\n    function keywordsToPattern(words) {\n      return '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b'\n    }\n    var typeDeclarationKeywords = keywordsToPattern(\n      keywordKinds.typeDeclaration\n    )\n    var keywords = RegExp(\n      keywordsToPattern(\n        keywordKinds.type +\n          ' ' +\n          keywordKinds.typeDeclaration +\n          ' ' +\n          keywordKinds.contextual +\n          ' ' +\n          keywordKinds.other\n      )\n    )\n    var nonTypeKeywords = keywordsToPattern(\n      keywordKinds.typeDeclaration +\n        ' ' +\n        keywordKinds.contextual +\n        ' ' +\n        keywordKinds.other\n    )\n    var nonContextualKeywords = keywordsToPattern(\n      keywordKinds.type +\n        ' ' +\n        keywordKinds.typeDeclaration +\n        ' ' +\n        keywordKinds.other\n    ) // types\n    var generic = nested(/<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>/.source, 2) // the idea behind the other forbidden characters is to prevent false positives. Same for tupleElement.\n    var nestedRound = nested(/\\((?:[^()]|<<self>>)*\\)/.source, 2)\n    var name = /@?\\b[A-Za-z_]\\w*\\b/.source\n    var genericName = replace(/<<0>>(?:\\s*<<1>>)?/.source, [name, generic])\n    var identifier = replace(/(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*/.source, [\n      nonTypeKeywords,\n      genericName\n    ])\n    var array = /\\[\\s*(?:,\\s*)*\\]/.source\n    var typeExpressionWithoutTuple = replace(\n      /<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?/.source,\n      [identifier, array]\n    )\n    var tupleElement = replace(\n      /[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,\n      [generic, nestedRound, array]\n    )\n    var tuple = replace(/\\(<<0>>+(?:,<<0>>+)+\\)/.source, [tupleElement])\n    var typeExpression = replace(\n      /(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?/.source,\n      [tuple, identifier, array]\n    )\n    var typeInside = {\n      keyword: keywords,\n      punctuation: /[<>()?,.:[\\]]/\n    } // strings & characters\n    // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#character-literals\n    // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#string-literals\n    var character = /'(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'/.source // simplified pattern\n    var regularString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/.source\n    var verbatimString = /@\"(?:\"\"|\\\\[\\s\\S]|[^\\\\\"])*\"(?!\")/.source\n    Prism.languages.csharp = Prism.languages.extend('clike', {\n      string: [\n        {\n          pattern: re(/(^|[^$\\\\])<<0>>/.source, [verbatimString]),\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          pattern: re(/(^|[^@$\\\\])<<0>>/.source, [regularString]),\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      'class-name': [\n        {\n          // Using static\n          // using static System.Math;\n          pattern: re(/(\\busing\\s+static\\s+)<<0>>(?=\\s*;)/.source, [\n            identifier\n          ]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // Using alias (type)\n          // using Project = PC.MyCompany.Project;\n          pattern: re(/(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)/.source, [\n            name,\n            typeExpression\n          ]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // Using alias (alias)\n          // using Project = PC.MyCompany.Project;\n          pattern: re(/(\\busing\\s+)<<0>>(?=\\s*=)/.source, [name]),\n          lookbehind: true\n        },\n        {\n          // Type declarations\n          // class Foo<A, B>\n          // interface Foo<out A, B>\n          pattern: re(/(\\b<<0>>\\s+)<<1>>/.source, [\n            typeDeclarationKeywords,\n            genericName\n          ]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // Single catch exception declaration\n          // catch(Foo)\n          // (things like catch(Foo e) is covered by variable declaration)\n          pattern: re(/(\\bcatch\\s*\\(\\s*)<<0>>/.source, [identifier]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // Name of the type parameter of generic constraints\n          // where Foo : class\n          pattern: re(/(\\bwhere\\s+)<<0>>/.source, [name]),\n          lookbehind: true\n        },\n        {\n          // Casts and checks via as and is.\n          // as Foo<A>, is Bar<B>\n          // (things like if(a is Foo b) is covered by variable declaration)\n          pattern: re(/(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>/.source, [\n            typeExpressionWithoutTuple\n          ]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // Variable, field and parameter declaration\n          // (Foo bar, Bar baz, Foo[,,] bay, Foo<Bar, FooBar<Bar>> bax)\n          pattern: re(\n            /\\b<<0>>(?=\\s+(?!<<1>>|with\\s*\\{)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))/\n              .source,\n            [typeExpression, nonContextualKeywords, name]\n          ),\n          inside: typeInside\n        }\n      ],\n      keyword: keywords,\n      // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#literals\n      number:\n        /(?:\\b0(?:x[\\da-f_]*[\\da-f]|b[01_]*[01])|(?:\\B\\.\\d+(?:_+\\d+)*|\\b\\d+(?:_+\\d+)*(?:\\.\\d+(?:_+\\d+)*)?)(?:e[-+]?\\d+(?:_+\\d+)*)?)(?:[dflmu]|lu|ul)?\\b/i,\n      operator: />>=?|<<=?|[-=]>|([-+&|])\\1|~|\\?\\?=?|[-+*/%&|^!=<>]=?/,\n      punctuation: /\\?\\.?|::|[{}[\\];(),.:]/\n    })\n    Prism.languages.insertBefore('csharp', 'number', {\n      range: {\n        pattern: /\\.\\./,\n        alias: 'operator'\n      }\n    })\n    Prism.languages.insertBefore('csharp', 'punctuation', {\n      'named-parameter': {\n        pattern: re(/([(,]\\s*)<<0>>(?=\\s*:)/.source, [name]),\n        lookbehind: true,\n        alias: 'punctuation'\n      }\n    })\n    Prism.languages.insertBefore('csharp', 'class-name', {\n      namespace: {\n        // namespace Foo.Bar {}\n        // using Foo.Bar;\n        pattern: re(\n          /(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])/.source,\n          [name]\n        ),\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      'type-expression': {\n        // default(Foo), typeof(Foo<Bar>), sizeof(int)\n        pattern: re(\n          /(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))/\n            .source,\n          [nestedRound]\n        ),\n        lookbehind: true,\n        alias: 'class-name',\n        inside: typeInside\n      },\n      'return-type': {\n        // Foo<Bar> ForBar(); Foo IFoo.Bar() => 0\n        // int this[int index] => 0; T IReadOnlyList<T>.this[int index] => this[index];\n        // int Foo => 0; int Foo { get; set } = 0;\n        pattern: re(\n          /<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))/.source,\n          [typeExpression, identifier]\n        ),\n        inside: typeInside,\n        alias: 'class-name'\n      },\n      'constructor-invocation': {\n        // new List<Foo<Bar[]>> { }\n        pattern: re(/(\\bnew\\s+)<<0>>(?=\\s*[[({])/.source, [typeExpression]),\n        lookbehind: true,\n        inside: typeInside,\n        alias: 'class-name'\n      },\n      /*'explicit-implementation': {\n// int IFoo<Foo>.Bar => 0; void IFoo<Foo<Foo>>.Foo<T>();\npattern: replace(/\\b<<0>>(?=\\.<<1>>)/, className, methodOrPropertyDeclaration),\ninside: classNameInside,\nalias: 'class-name'\n},*/\n      'generic-method': {\n        // foo<Bar>()\n        pattern: re(/<<0>>\\s*<<1>>(?=\\s*\\()/.source, [name, generic]),\n        inside: {\n          function: re(/^<<0>>/.source, [name]),\n          generic: {\n            pattern: RegExp(generic),\n            alias: 'class-name',\n            inside: typeInside\n          }\n        }\n      },\n      'type-list': {\n        // The list of types inherited or of generic constraints\n        // class Foo<F> : Bar, IList<FooBar>\n        // where F : Bar, IList<int>\n        pattern: re(\n          /\\b((?:<<0>>\\s+<<1>>|record\\s+<<1>>\\s*<<5>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>|<<1>>\\s*<<5>>|<<6>>)(?:\\s*,\\s*(?:<<3>>|<<4>>|<<6>>))*(?=\\s*(?:where|[{;]|=>|$))/\n            .source,\n          [\n            typeDeclarationKeywords,\n            genericName,\n            name,\n            typeExpression,\n            keywords.source,\n            nestedRound,\n            /\\bnew\\s*\\(\\s*\\)/.source\n          ]\n        ),\n        lookbehind: true,\n        inside: {\n          'record-arguments': {\n            pattern: re(/(^(?!new\\s*\\()<<0>>\\s*)<<1>>/.source, [\n              genericName,\n              nestedRound\n            ]),\n            lookbehind: true,\n            greedy: true,\n            inside: Prism.languages.csharp\n          },\n          keyword: keywords,\n          'class-name': {\n            pattern: RegExp(typeExpression),\n            greedy: true,\n            inside: typeInside\n          },\n          punctuation: /[,()]/\n        }\n      },\n      preprocessor: {\n        pattern: /(^[\\t ]*)#.*/m,\n        lookbehind: true,\n        alias: 'property',\n        inside: {\n          // highlight preprocessor directives as keywords\n          directive: {\n            pattern:\n              /(#)\\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\\b/,\n            lookbehind: true,\n            alias: 'keyword'\n          }\n        }\n      }\n    }) // attributes\n    var regularStringOrCharacter = regularString + '|' + character\n    var regularStringCharacterOrComment = replace(\n      /\\/(?![*/])|\\/\\/[^\\r\\n]*[\\r\\n]|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>/.source,\n      [regularStringOrCharacter]\n    )\n    var roundExpression = nested(\n      replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [\n        regularStringCharacterOrComment\n      ]),\n      2\n    ) // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets\n    var attrTarget =\n      /\\b(?:assembly|event|field|method|module|param|property|return|type)\\b/\n        .source\n    var attr = replace(/<<0>>(?:\\s*\\(<<1>>*\\))?/.source, [\n      identifier,\n      roundExpression\n    ])\n    Prism.languages.insertBefore('csharp', 'class-name', {\n      attribute: {\n        // Attributes\n        // [Foo], [Foo(1), Bar(2, Prop = \"foo\")], [return: Foo(1), Bar(2)], [assembly: Foo(Bar)]\n        pattern: re(\n          /((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])/\n            .source,\n          [attrTarget, attr]\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          target: {\n            pattern: re(/^<<0>>(?=\\s*:)/.source, [attrTarget]),\n            alias: 'keyword'\n          },\n          'attribute-arguments': {\n            pattern: re(/\\(<<0>>*\\)/.source, [roundExpression]),\n            inside: Prism.languages.csharp\n          },\n          'class-name': {\n            pattern: RegExp(identifier),\n            inside: {\n              punctuation: /\\./\n            }\n          },\n          punctuation: /[:,]/\n        }\n      }\n    }) // string interpolation\n    var formatString = /:[^}\\r\\n]+/.source // multi line\n    var mInterpolationRound = nested(\n      replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [\n        regularStringCharacterOrComment\n      ]),\n      2\n    )\n    var mInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n      mInterpolationRound,\n      formatString\n    ]) // single line\n    var sInterpolationRound = nested(\n      replace(\n        /[^\"'/()]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>|\\(<<self>>*\\)/\n          .source,\n        [regularStringOrCharacter]\n      ),\n      2\n    )\n    var sInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n      sInterpolationRound,\n      formatString\n    ])\n    function createInterpolationInside(interpolation, interpolationRound) {\n      return {\n        interpolation: {\n          pattern: re(/((?:^|[^{])(?:\\{\\{)*)<<0>>/.source, [interpolation]),\n          lookbehind: true,\n          inside: {\n            'format-string': {\n              pattern: re(/(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)/.source, [\n                interpolationRound,\n                formatString\n              ]),\n              lookbehind: true,\n              inside: {\n                punctuation: /^:/\n              }\n            },\n            punctuation: /^\\{|\\}$/,\n            expression: {\n              pattern: /[\\s\\S]+/,\n              alias: 'language-csharp',\n              inside: Prism.languages.csharp\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n    Prism.languages.insertBefore('csharp', 'string', {\n      'interpolation-string': [\n        {\n          pattern: re(\n            /(^|[^\\\\])(?:\\$@|@\\$)\"(?:\"\"|\\\\[\\s\\S]|\\{\\{|<<0>>|[^\\\\{\"])*\"/.source,\n            [mInterpolation]\n          ),\n          lookbehind: true,\n          greedy: true,\n          inside: createInterpolationInside(mInterpolation, mInterpolationRound)\n        },\n        {\n          pattern: re(/(^|[^@\\\\])\\$\"(?:\\\\.|\\{\\{|<<0>>|[^\\\\\"{])*\"/.source, [\n            sInterpolation\n          ]),\n          lookbehind: true,\n          greedy: true,\n          inside: createInterpolationInside(sInterpolation, sInterpolationRound)\n        }\n      ],\n      char: {\n        pattern: RegExp(character),\n        greedy: true\n      }\n    })\n    Prism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp\n  })(Prism)\n}\n","'use strict'\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = cshtml\ncshtml.displayName = 'cshtml'\ncshtml.aliases = ['razor']\nfunction cshtml(Prism) {\n  Prism.register(refractorCsharp)\n  // Docs:\n  // https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-5.0&tabs=visual-studio\n  // https://docs.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-5.0\n  ;(function (Prism) {\n    var commentLike = /\\/(?![/*])|\\/\\/.*[\\r\\n]|\\/\\*[^*]*(?:\\*(?!\\/)[^*]*)*\\*\\//\n      .source\n    var stringLike =\n      /@(?!\")|\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|@\"(?:[^\\\\\"]|\"\"|\\\\[\\s\\S])*\"(?!\")/.source +\n      '|' +\n      /'(?:(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'|(?=[^\\\\](?!')))/.source\n    /**\n     * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n     *\n     * @param {string} pattern\n     * @param {number} depthLog2\n     * @returns {string}\n     */\n    function nested(pattern, depthLog2) {\n      for (var i = 0; i < depthLog2; i++) {\n        pattern = pattern.replace(/<self>/g, function () {\n          return '(?:' + pattern + ')'\n        })\n      }\n      return pattern\n        .replace(/<self>/g, '[^\\\\s\\\\S]')\n        .replace(/<str>/g, '(?:' + stringLike + ')')\n        .replace(/<comment>/g, '(?:' + commentLike + ')')\n    }\n    var round = nested(/\\((?:[^()'\"@/]|<str>|<comment>|<self>)*\\)/.source, 2)\n    var square = nested(/\\[(?:[^\\[\\]'\"@/]|<str>|<comment>|<self>)*\\]/.source, 2)\n    var curly = nested(/\\{(?:[^{}'\"@/]|<str>|<comment>|<self>)*\\}/.source, 2)\n    var angle = nested(/<(?:[^<>'\"@/]|<str>|<comment>|<self>)*>/.source, 2) // Note about the above bracket patterns:\n    // They all ignore HTML expressions that might be in the C# code. This is a problem because HTML (like strings and\n    // comments) is parsed differently. This is a huge problem because HTML might contain brackets and quotes which\n    // messes up the bracket and string counting implemented by the above patterns.\n    //\n    // This problem is not fixable because 1) HTML expression are highly context sensitive and very difficult to detect\n    // and 2) they require one capturing group at every nested level. See the `tagRegion` pattern to admire the\n    // complexity of an HTML expression.\n    //\n    // To somewhat alleviate the problem a bit, the patterns for characters (e.g. 'a') is very permissive, it also\n    // allows invalid characters to support HTML expressions like this: <p>That's it!</p>.\n    var tagAttrs =\n      /(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?/\n        .source\n    var tagContent = /(?!\\d)[^\\s>\\/=$<%]+/.source + tagAttrs + /\\s*\\/?>/.source\n    var tagRegion =\n      /\\B@?/.source +\n      '(?:' +\n      /<([a-zA-Z][\\w:]*)/.source +\n      tagAttrs +\n      /\\s*>/.source +\n      '(?:' +\n      (/[^<]/.source +\n        '|' + // all tags that are not the start tag\n        // eslint-disable-next-line regexp/strict\n        /<\\/?(?!\\1\\b)/.source +\n        tagContent +\n        '|' + // nested start tag\n        nested(\n          // eslint-disable-next-line regexp/strict\n          /<\\1/.source +\n            tagAttrs +\n            /\\s*>/.source +\n            '(?:' +\n            (/[^<]/.source +\n              '|' + // all tags that are not the start tag\n              // eslint-disable-next-line regexp/strict\n              /<\\/?(?!\\1\\b)/.source +\n              tagContent +\n              '|' +\n              '<self>') +\n            ')*' + // eslint-disable-next-line regexp/strict\n            /<\\/\\1\\s*>/.source,\n          2\n        )) +\n      ')*' + // eslint-disable-next-line regexp/strict\n      /<\\/\\1\\s*>/.source +\n      '|' +\n      /</.source +\n      tagContent +\n      ')' // Now for the actual language definition(s):\n    //\n    // Razor as a language has 2 parts:\n    //  1) CSHTML: A markup-like language that has been extended with inline C# code expressions and blocks.\n    //  2) C#+HTML: A variant of C# that can contain CSHTML tags as expressions.\n    //\n    // In the below code, both CSHTML and C#+HTML will be create as separate language definitions that reference each\n    // other. However, only CSHTML will be exported via `Prism.languages`.\n    Prism.languages.cshtml = Prism.languages.extend('markup', {})\n    var csharpWithHtml = Prism.languages.insertBefore(\n      'csharp',\n      'string',\n      {\n        html: {\n          pattern: RegExp(tagRegion),\n          greedy: true,\n          inside: Prism.languages.cshtml\n        }\n      },\n      {\n        csharp: Prism.languages.extend('csharp', {})\n      }\n    )\n    var cs = {\n      pattern: /\\S[\\s\\S]*/,\n      alias: 'language-csharp',\n      inside: csharpWithHtml\n    }\n    Prism.languages.insertBefore('cshtml', 'prolog', {\n      'razor-comment': {\n        pattern: /@\\*[\\s\\S]*?\\*@/,\n        greedy: true,\n        alias: 'comment'\n      },\n      block: {\n        pattern: RegExp(\n          /(^|[^@])@/.source +\n            '(?:' +\n            [\n              // @{ ... }\n              curly, // @code{ ... }\n              /(?:code|functions)\\s*/.source + curly, // @for (...) { ... }\n              /(?:for|foreach|lock|switch|using|while)\\s*/.source +\n                round +\n                /\\s*/.source +\n                curly, // @do { ... } while (...);\n              /do\\s*/.source +\n                curly +\n                /\\s*while\\s*/.source +\n                round +\n                /(?:\\s*;)?/.source, // @try { ... } catch (...) { ... } finally { ... }\n              /try\\s*/.source +\n                curly +\n                /\\s*catch\\s*/.source +\n                round +\n                /\\s*/.source +\n                curly +\n                /\\s*finally\\s*/.source +\n                curly, // @if (...) {...} else if (...) {...} else {...}\n              /if\\s*/.source +\n                round +\n                /\\s*/.source +\n                curly +\n                '(?:' +\n                /\\s*else/.source +\n                '(?:' +\n                /\\s+if\\s*/.source +\n                round +\n                ')?' +\n                /\\s*/.source +\n                curly +\n                ')*'\n            ].join('|') +\n            ')'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          keyword: /^@\\w*/,\n          csharp: cs\n        }\n      },\n      directive: {\n        pattern:\n          /^([ \\t]*)@(?:addTagHelper|attribute|implements|inherits|inject|layout|model|namespace|page|preservewhitespace|removeTagHelper|section|tagHelperPrefix|using)(?=\\s).*/m,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          keyword: /^@\\w+/,\n          csharp: cs\n        }\n      },\n      value: {\n        pattern: RegExp(\n          /(^|[^@])@/.source +\n            /(?:await\\b\\s*)?/.source +\n            '(?:' +\n            /\\w+\\b/.source +\n            '|' +\n            round +\n            ')' +\n            '(?:' +\n            /[?!]?\\.\\w+\\b/.source +\n            '|' +\n            round +\n            '|' +\n            square +\n            '|' +\n            angle +\n            round +\n            ')*'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'variable',\n        inside: {\n          keyword: /^@/,\n          csharp: cs\n        }\n      },\n      'delegate-operator': {\n        pattern: /(^|[^@])@(?=<)/,\n        lookbehind: true,\n        alias: 'operator'\n      }\n    })\n    Prism.languages.razor = Prism.languages.cshtml\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = csp\ncsp.displayName = 'csp'\ncsp.aliases = []\nfunction csp(Prism) {\n  /**\n   * Original by Scott Helme.\n   *\n   * Reference: https://scotthelme.co.uk/csp-cheat-sheet/\n   *\n   * Supports the following:\n   *  - https://www.w3.org/TR/CSP1/\n   *  - https://www.w3.org/TR/CSP2/\n   *  - https://www.w3.org/TR/CSP3/\n   */\n  ;(function (Prism) {\n    /**\n     * @param {string} source\n     * @returns {RegExp}\n     */\n    function value(source) {\n      return RegExp(\n        /([ \\t])/.source + '(?:' + source + ')' + /(?=[\\s;]|$)/.source,\n        'i'\n      )\n    }\n    Prism.languages.csp = {\n      directive: {\n        pattern:\n          /(^|[\\s;])(?:base-uri|block-all-mixed-content|(?:child|connect|default|font|frame|img|manifest|media|object|prefetch|script|style|worker)-src|disown-opener|form-action|frame-(?:ancestors|options)|input-protection(?:-(?:clip|selectors))?|navigate-to|plugin-types|policy-uri|referrer|reflected-xss|report-(?:to|uri)|require-sri-for|sandbox|(?:script|style)-src-(?:attr|elem)|upgrade-insecure-requests)(?=[\\s;]|$)/i,\n        lookbehind: true,\n        alias: 'property'\n      },\n      scheme: {\n        pattern: value(/[a-z][a-z0-9.+-]*:/.source),\n        lookbehind: true\n      },\n      none: {\n        pattern: value(/'none'/.source),\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      nonce: {\n        pattern: value(/'nonce-[-+/\\w=]+'/.source),\n        lookbehind: true,\n        alias: 'number'\n      },\n      hash: {\n        pattern: value(/'sha(?:256|384|512)-[-+/\\w=]+'/.source),\n        lookbehind: true,\n        alias: 'number'\n      },\n      host: {\n        pattern: value(\n          /[a-z][a-z0-9.+-]*:\\/\\/[^\\s;,']*/.source +\n            '|' +\n            /\\*[^\\s;,']*/.source +\n            '|' +\n            /[a-z0-9-]+(?:\\.[a-z0-9-]+)+(?::[\\d*]+)?(?:\\/[^\\s;,']*)?/.source\n        ),\n        lookbehind: true,\n        alias: 'url',\n        inside: {\n          important: /\\*/\n        }\n      },\n      keyword: [\n        {\n          pattern: value(/'unsafe-[a-z-]+'/.source),\n          lookbehind: true,\n          alias: 'unsafe'\n        },\n        {\n          pattern: value(/'[a-z-]+'/.source),\n          lookbehind: true,\n          alias: 'safe'\n        }\n      ],\n      punctuation: /;/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = cssExtras\ncssExtras.displayName = 'cssExtras'\ncssExtras.aliases = []\nfunction cssExtras(Prism) {\n  ;(function (Prism) {\n    var string = /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/\n    var selectorInside\n    Prism.languages.css.selector = {\n      pattern: Prism.languages.css.selector.pattern,\n      lookbehind: true,\n      inside: (selectorInside = {\n        'pseudo-element':\n          /:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/,\n        'pseudo-class': /:[-\\w]+/,\n        class: /\\.[-\\w]+/,\n        id: /#[-\\w]+/,\n        attribute: {\n          pattern: RegExp('\\\\[(?:[^[\\\\]\"\\']|' + string.source + ')*\\\\]'),\n          greedy: true,\n          inside: {\n            punctuation: /^\\[|\\]$/,\n            'case-sensitivity': {\n              pattern: /(\\s)[si]$/i,\n              lookbehind: true,\n              alias: 'keyword'\n            },\n            namespace: {\n              pattern: /^(\\s*)(?:(?!\\s)[-*\\w\\xA0-\\uFFFF])*\\|(?!=)/,\n              lookbehind: true,\n              inside: {\n                punctuation: /\\|$/\n              }\n            },\n            'attr-name': {\n              pattern: /^(\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+/,\n              lookbehind: true\n            },\n            'attr-value': [\n              string,\n              {\n                pattern: /(=\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+(?=\\s*$)/,\n                lookbehind: true\n              }\n            ],\n            operator: /[|~*^$]?=/\n          }\n        },\n        'n-th': [\n          {\n            pattern: /(\\(\\s*)[+-]?\\d*[\\dn](?:\\s*[+-]\\s*\\d+)?(?=\\s*\\))/,\n            lookbehind: true,\n            inside: {\n              number: /[\\dn]+/,\n              operator: /[+-]/\n            }\n          },\n          {\n            pattern: /(\\(\\s*)(?:even|odd)(?=\\s*\\))/i,\n            lookbehind: true\n          }\n        ],\n        combinator: />|\\+|~|\\|\\|/,\n        // the `tag` token has been existed and removed.\n        // because we can't find a perfect tokenize to match it.\n        // if you want to add it, please read https://github.com/PrismJS/prism/pull/2373 first.\n        punctuation: /[(),]/\n      })\n    }\n    Prism.languages.css['atrule'].inside['selector-function-argument'].inside =\n      selectorInside\n    Prism.languages.insertBefore('css', 'property', {\n      variable: {\n        pattern:\n          /(^|[^-\\w\\xA0-\\uFFFF])--(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*/i,\n        lookbehind: true\n      }\n    })\n    var unit = {\n      pattern: /(\\b\\d+)(?:%|[a-z]+(?![\\w-]))/,\n      lookbehind: true\n    } // 123 -123 .123 -.123 12.3 -12.3\n    var number = {\n      pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n      lookbehind: true\n    }\n    Prism.languages.insertBefore('css', 'function', {\n      operator: {\n        pattern: /(\\s)[+\\-*\\/](?=\\s)/,\n        lookbehind: true\n      },\n      // CAREFUL!\n      // Previewers and Inline color use hexcode and color.\n      hexcode: {\n        pattern: /\\B#[\\da-f]{3,8}\\b/i,\n        alias: 'color'\n      },\n      color: [\n        {\n          pattern:\n            /(^|[^\\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\\w-])/i,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i,\n          inside: {\n            unit: unit,\n            number: number,\n            function: /[\\w-]+(?=\\()/,\n            punctuation: /[(),]/\n          }\n        }\n      ],\n      // it's important that there is no boundary assertion after the hex digits\n      entity: /\\\\[\\da-f]{1,8}/i,\n      unit: unit,\n      number: number\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = css\ncss.displayName = 'css'\ncss.aliases = []\nfunction css(Prism) {\n  ;(function (Prism) {\n    var string =\n      /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/\n    Prism.languages.css = {\n      comment: /\\/\\*[\\s\\S]*?\\*\\//,\n      atrule: {\n        pattern: /@[\\w-](?:[^;{\\s]|\\s+(?![\\s{]))*(?:;|(?=\\s*\\{))/,\n        inside: {\n          rule: /^@[\\w-]+/,\n          'selector-function-argument': {\n            pattern:\n              /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n            lookbehind: true,\n            alias: 'selector'\n          },\n          keyword: {\n            pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n            lookbehind: true\n          } // See rest below\n        }\n      },\n      url: {\n        // https://drafts.csswg.org/css-values-3/#urls\n        pattern: RegExp(\n          '\\\\burl\\\\((?:' +\n            string.source +\n            '|' +\n            /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source +\n            ')\\\\)',\n          'i'\n        ),\n        greedy: true,\n        inside: {\n          function: /^url/i,\n          punctuation: /^\\(|\\)$/,\n          string: {\n            pattern: RegExp('^' + string.source + '$'),\n            alias: 'url'\n          }\n        }\n      },\n      selector: {\n        pattern: RegExp(\n          '(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' +\n            string.source +\n            ')*(?=\\\\s*\\\\{)'\n        ),\n        lookbehind: true\n      },\n      string: {\n        pattern: string,\n        greedy: true\n      },\n      property: {\n        pattern:\n          /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n        lookbehind: true\n      },\n      important: /!important\\b/i,\n      function: {\n        pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n        lookbehind: true\n      },\n      punctuation: /[(){};:,]/\n    }\n    Prism.languages.css['atrule'].inside.rest = Prism.languages.css\n    var markup = Prism.languages.markup\n    if (markup) {\n      markup.tag.addInlined('style', 'css')\n      markup.tag.addAttribute('style', 'css')\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = csv\ncsv.displayName = 'csv'\ncsv.aliases = []\nfunction csv(Prism) {\n  // https://tools.ietf.org/html/rfc4180\n  Prism.languages.csv = {\n    value: /[^\\r\\n,\"]+|\"(?:[^\"]|\"\")*\"(?!\")/,\n    punctuation: /,/\n  }\n}\n","'use strict'\n\nmodule.exports = cypher\ncypher.displayName = 'cypher'\ncypher.aliases = []\nfunction cypher(Prism) {\n  Prism.languages.cypher = {\n    // https://neo4j.com/docs/cypher-manual/current/syntax/comments/\n    comment: /\\/\\/.*/,\n    string: {\n      pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n      greedy: true\n    },\n    'class-name': {\n      pattern: /(:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)(?=\\s*[{):])/,\n      lookbehind: true,\n      greedy: true\n    },\n    relationship: {\n      pattern:\n        /(-\\[\\s*(?:\\w+\\s*|`(?:[^`\\\\\\r\\n])*`\\s*)?:\\s*|\\|\\s*:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)/,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property'\n    },\n    identifier: {\n      pattern: /`(?:[^`\\\\\\r\\n])*`/,\n      greedy: true\n    },\n    variable: /\\$\\w+/,\n    // https://neo4j.com/docs/cypher-manual/current/syntax/reserved/\n    keyword:\n      /\\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\\b/i,\n    function: /\\b\\w+\\b(?=\\s*\\()/,\n    boolean: /\\b(?:false|null|true)\\b/i,\n    number: /\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)\\b/,\n    // https://neo4j.com/docs/cypher-manual/current/syntax/operators/\n    operator: /:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\\.\\.\\.?/,\n    punctuation: /[()[\\]{},;.]/\n  }\n}\n","'use strict'\n\nmodule.exports = d\nd.displayName = 'd'\nd.aliases = []\nfunction d(Prism) {\n  Prism.languages.d = Prism.languages.extend('clike', {\n    comment: [\n      {\n        // Shebang\n        pattern: /^\\s*#!.+/,\n        greedy: true\n      },\n      {\n        pattern: RegExp(\n          /(^|[^\\\\])/.source +\n            '(?:' +\n            [\n              // /+ comment +/\n              // Allow one level of nesting\n              /\\/\\+(?:\\/\\+(?:[^+]|\\+(?!\\/))*\\+\\/|(?!\\/\\+)[\\s\\S])*?\\+\\//.source, // // comment\n              /\\/\\/.*/.source, // /* comment */\n              /\\/\\*[\\s\\S]*?\\*\\//.source\n            ].join('|') +\n            ')'\n        ),\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: [\n      {\n        pattern: RegExp(\n          [\n            // r\"\", x\"\"\n            /\\b[rx]\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"[cwd]?/.source, // q\"[]\", q\"()\", q\"<>\", q\"{}\"\n            /\\bq\"(?:\\[[\\s\\S]*?\\]|\\([\\s\\S]*?\\)|<[\\s\\S]*?>|\\{[\\s\\S]*?\\})\"/.source, // q\"IDENT\n            // ...\n            // IDENT\"\n            /\\bq\"((?!\\d)\\w+)$[\\s\\S]*?^\\1\"/.source, // q\"//\", q\"||\", etc.\n            // eslint-disable-next-line regexp/strict\n            /\\bq\"(.)[\\s\\S]*?\\2\"/.source, // eslint-disable-next-line regexp/strict\n            /([\"`])(?:\\\\[\\s\\S]|(?!\\3)[^\\\\])*\\3[cwd]?/.source\n          ].join('|'),\n          'm'\n        ),\n        greedy: true\n      },\n      {\n        pattern: /\\bq\\{(?:\\{[^{}]*\\}|[^{}])*\\}/,\n        greedy: true,\n        alias: 'token-string'\n      }\n    ],\n    // In order: $, keywords and special tokens, globally defined symbols\n    keyword:\n      /\\$|\\b(?:__(?:(?:DATE|EOF|FILE|FUNCTION|LINE|MODULE|PRETTY_FUNCTION|TIMESTAMP|TIME|VENDOR|VERSION)__|gshared|parameters|traits|vector)|abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|dstring|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|ptrdiff_t|public|pure|real|ref|return|scope|shared|short|size_t|static|string|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|wstring)\\b/,\n    number: [\n      // The lookbehind and the negative look-ahead try to prevent bad highlighting of the .. operator\n      // Hexadecimal numbers must be handled separately to avoid problems with exponent \"e\"\n      /\\b0x\\.?[a-f\\d_]+(?:(?!\\.\\.)\\.[a-f\\d_]*)?(?:p[+-]?[a-f\\d_]+)?[ulfi]{0,4}/i,\n      {\n        pattern:\n          /((?:\\.\\.)?)(?:\\b0b\\.?|\\b|\\.)\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?[ulfi]{0,4}/i,\n        lookbehind: true\n      }\n    ],\n    operator:\n      /\\|[|=]?|&[&=]?|\\+[+=]?|-[-=]?|\\.?\\.\\.|=[>=]?|!(?:i[ns]\\b|<>?=?|>=?|=)?|\\bi[ns]\\b|(?:<[<>]?|>>?>?|\\^\\^|[*\\/%^~])=?/\n  })\n  Prism.languages.insertBefore('d', 'string', {\n    // Characters\n    // 'a', '\\\\', '\\n', '\\xFF', '\\377', '\\uFFFF', '\\U0010FFFF', '\\quot'\n    char: /'(?:\\\\(?:\\W|\\w+)|[^\\\\])'/\n  })\n  Prism.languages.insertBefore('d', 'keyword', {\n    property: /\\B@\\w*/\n  })\n  Prism.languages.insertBefore('d', 'function', {\n    register: {\n      // Iasm registers\n      pattern:\n        /\\b(?:[ABCD][LHX]|E?(?:BP|DI|SI|SP)|[BS]PL|[ECSDGF]S|CR[0234]|[DS]IL|DR[012367]|E[ABCD]X|X?MM[0-7]|R(?:1[0-5]|[89])[BWD]?|R[ABCD]X|R[BS]P|R[DS]I|TR[3-7]|XMM(?:1[0-5]|[89])|YMM(?:1[0-5]|\\d))\\b|\\bST(?:\\([0-7]\\)|\\b)/,\n      alias: 'variable'\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = dart\ndart.displayName = 'dart'\ndart.aliases = []\nfunction dart(Prism) {\n  ;(function (Prism) {\n    var keywords = [\n      /\\b(?:async|sync|yield)\\*/,\n      /\\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extends|extension|external|factory|final|finally|for|get|hide|if|implements|import|in|interface|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\\b/\n    ] // Handles named imports, such as http.Client\n    var packagePrefix = /(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/\n      .source // based on the dart naming conventions\n    var className = {\n      pattern: RegExp(packagePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n      lookbehind: true,\n      inside: {\n        namespace: {\n          pattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n          inside: {\n            punctuation: /\\./\n          }\n        }\n      }\n    }\n    Prism.languages.dart = Prism.languages.extend('clike', {\n      'class-name': [\n        className,\n        {\n          // variables and parameters\n          // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n          pattern: RegExp(\n            packagePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()])/.source\n          ),\n          lookbehind: true,\n          inside: className.inside\n        }\n      ],\n      keyword: keywords,\n      operator:\n        /\\bis!|\\b(?:as|is)\\b|\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?/\n    })\n    Prism.languages.insertBefore('dart', 'string', {\n      'string-literal': {\n        pattern:\n          /r?(?:(\"\"\"|''')[\\s\\S]*?\\1|([\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2(?!\\2))/,\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern:\n              /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\w+|\\{(?:[^{}]|\\{[^{}]*\\})*\\})/,\n            lookbehind: true,\n            inside: {\n              punctuation: /^\\$\\{?|\\}$/,\n              expression: {\n                pattern: /[\\s\\S]+/,\n                inside: Prism.languages.dart\n              }\n            }\n          },\n          string: /[\\s\\S]+/\n        }\n      },\n      string: undefined\n    })\n    Prism.languages.insertBefore('dart', 'class-name', {\n      metadata: {\n        pattern: /@\\w+/,\n        alias: 'function'\n      }\n    })\n    Prism.languages.insertBefore('dart', 'class-name', {\n      generics: {\n        pattern:\n          /<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<[\\w\\s,.&?]*>)*>)*>)*>/,\n        inside: {\n          'class-name': className,\n          keyword: keywords,\n          punctuation: /[<>(),.:]/,\n          operator: /[?&|]/\n        }\n      }\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = dataweave\ndataweave.displayName = 'dataweave'\ndataweave.aliases = []\nfunction dataweave(Prism) {\n  ;(function (Prism) {\n    Prism.languages.dataweave = {\n      url: /\\b[A-Za-z]+:\\/\\/[\\w/:.?=&-]+|\\burn:[\\w:.?=&-]+/,\n      property: {\n        pattern: /(?:\\b\\w+#)?(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|\\b\\w+)(?=\\s*[:@])/,\n        greedy: true\n      },\n      string: {\n        pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n        greedy: true\n      },\n      'mime-type':\n        /\\b(?:application|audio|image|multipart|text|video)\\/[\\w+-]+/,\n      date: {\n        pattern: /\\|[\\w:+-]+\\|/,\n        greedy: true\n      },\n      comment: [\n        {\n          pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          pattern: /(^|[^\\\\:])\\/\\/.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      regex: {\n        pattern: /\\/(?:[^\\\\\\/\\r\\n]|\\\\[^\\r\\n])+\\//,\n        greedy: true\n      },\n      keyword:\n        /\\b(?:and|as|at|case|do|else|fun|if|input|is|match|not|ns|null|or|output|type|unless|update|using|var)\\b/,\n      function: /\\b[A-Z_]\\w*(?=\\s*\\()/i,\n      number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n      punctuation: /[{}[\\];(),.:@]/,\n      operator: /<<|>>|->|[<>~=]=?|!=|--?-?|\\+\\+?|!|\\?/,\n      boolean: /\\b(?:false|true)\\b/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = dax\ndax.displayName = 'dax'\ndax.aliases = []\nfunction dax(Prism) {\n  Prism.languages.dax = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/).*)/,\n      lookbehind: true\n    },\n    'data-field': {\n      pattern:\n        /'(?:[^']|'')*'(?!')(?:\\[[ \\w\\xA0-\\uFFFF]+\\])?|\\w+\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n      alias: 'symbol'\n    },\n    measure: {\n      pattern: /\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n      alias: 'constant'\n    },\n    string: {\n      pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n      greedy: true\n    },\n    function:\n      /\\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\\.DIST|BETA\\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\\.DIST|CHISQ\\.DIST\\.RT|CHISQ\\.INV|CHISQ\\.INV\\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\\.NORM|CONFIDENCE\\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\\.DIST|NORM\\.INV|NORM\\.S\\.DIST|NORM\\.S\\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\\.EXC|PERCENTILE\\.INC|PERCENTILEX\\.EXC|PERCENTILEX\\.INC|PERMUT|PI|POISSON\\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\\.P|STDEV\\.S|STDEVX\\.P|STDEVX\\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\\.DIST|T\\.DIST\\.2T|T\\.DIST\\.RT|T\\.INV|T\\.INV\\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\\.P|VAR\\.S|VARX\\.P|VARX\\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\\s*\\()/i,\n    keyword:\n      /\\b(?:DEFINE|EVALUATE|MEASURE|ORDER\\s+BY|RETURN|VAR|START\\s+AT|ASC|DESC)\\b/i,\n    boolean: {\n      pattern: /\\b(?:FALSE|NULL|TRUE)\\b/i,\n      alias: 'constant'\n    },\n    number: /\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/,\n    operator: /:=|[-+*\\/=^]|&&?|\\|\\||<(?:=>?|<|>)?|>[>=]?|\\b(?:IN|NOT)\\b/i,\n    punctuation: /[;\\[\\](){}`,.]/\n  }\n}\n","'use strict'\n\nmodule.exports = dhall\ndhall.displayName = 'dhall'\ndhall.aliases = []\nfunction dhall(Prism) {\n  // ABNF grammar:\n  // https://github.com/dhall-lang/dhall-lang/blob/master/standard/dhall.abnf\n  Prism.languages.dhall = {\n    // Multi-line comments can be nested. E.g. {- foo {- bar -} -}\n    // The multi-line pattern is essentially this:\n    //   \\{-(?:[^-{]|-(?!\\})|\\{(?!-)|<SELF>)*-\\}\n    comment:\n      /--.*|\\{-(?:[^-{]|-(?!\\})|\\{(?!-)|\\{-(?:[^-{]|-(?!\\})|\\{(?!-))*-\\})*-\\}/,\n    string: {\n      pattern: /\"(?:[^\"\\\\]|\\\\.)*\"|''(?:[^']|'(?!')|'''|''\\$\\{)*''(?!'|\\$)/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /\\$\\{[^{}]*\\}/,\n          inside: {\n            expression: {\n              pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n              lookbehind: true,\n              alias: 'language-dhall',\n              inside: null // see blow\n            },\n            punctuation: /\\$\\{|\\}/\n          }\n        }\n      }\n    },\n    label: {\n      pattern: /`[^`]*`/,\n      greedy: true\n    },\n    url: {\n      // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L596\n      pattern:\n        /\\bhttps?:\\/\\/[\\w.:%!$&'*+;=@~-]+(?:\\/[\\w.:%!$&'*+;=@~-]*)*(?:\\?[/?\\w.:%!$&'*+;=@~-]*)?/,\n      greedy: true\n    },\n    env: {\n      // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L661\n      pattern: /\\benv:(?:(?!\\d)\\w+|\"(?:[^\"\\\\=]|\\\\.)*\")/,\n      greedy: true,\n      inside: {\n        function: /^env/,\n        operator: /^:/,\n        variable: /[\\s\\S]+/\n      }\n    },\n    hash: {\n      // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L725\n      pattern: /\\bsha256:[\\da-fA-F]{64}\\b/,\n      inside: {\n        function: /sha256/,\n        operator: /:/,\n        number: /[\\da-fA-F]{64}/\n      }\n    },\n    // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L359\n    keyword:\n      /\\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\\b|\\u2200/,\n    builtin: /\\b(?:None|Some)\\b/,\n    boolean: /\\b(?:False|True)\\b/,\n    number:\n      /\\bNaN\\b|-?\\bInfinity\\b|[+-]?\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/,\n    operator:\n      /\\/\\\\|\\/\\/\\\\\\\\|&&|\\|\\||===|[!=]=|\\/\\/|->|\\+\\+|::|[+*#@=:?<>|\\\\\\u2227\\u2a53\\u2261\\u2afd\\u03bb\\u2192]/,\n    punctuation: /\\.\\.|[{}\\[\\](),./]/,\n    // we'll just assume that every capital word left is a type name\n    'class-name': /\\b[A-Z]\\w*\\b/\n  }\n  Prism.languages.dhall.string.inside.interpolation.inside.expression.inside =\n    Prism.languages.dhall\n}\n","'use strict'\n\nmodule.exports = diff\ndiff.displayName = 'diff'\ndiff.aliases = []\nfunction diff(Prism) {\n  ;(function (Prism) {\n    Prism.languages.diff = {\n      coord: [\n        // Match all kinds of coord lines (prefixed by \"+++\", \"---\" or \"***\").\n        /^(?:\\*{3}|-{3}|\\+{3}).*$/m, // Match \"@@ ... @@\" coord lines in unified diff.\n        /^@@.*@@$/m, // Match coord lines in normal diff (starts with a number).\n        /^\\d.*$/m\n      ] // deleted, inserted, unchanged, diff\n    }\n    /**\n     * A map from the name of a block to its line prefix.\n     *\n     * @type {Object<string, string>}\n     */\n    var PREFIXES = {\n      'deleted-sign': '-',\n      'deleted-arrow': '<',\n      'inserted-sign': '+',\n      'inserted-arrow': '>',\n      unchanged: ' ',\n      diff: '!'\n    } // add a token for each prefix\n    Object.keys(PREFIXES).forEach(function (name) {\n      var prefix = PREFIXES[name]\n      var alias = []\n      if (!/^\\w+$/.test(name)) {\n        // \"deleted-sign\" -> \"deleted\"\n        alias.push(/\\w+/.exec(name)[0])\n      }\n      if (name === 'diff') {\n        alias.push('bold')\n      }\n      Prism.languages.diff[name] = {\n        pattern: RegExp(\n          '^(?:[' + prefix + '].*(?:\\r\\n?|\\n|(?![\\\\s\\\\S])))+',\n          'm'\n        ),\n        alias: alias,\n        inside: {\n          line: {\n            pattern: /(.)(?=[\\s\\S]).*(?:\\r\\n?|\\n)?/,\n            lookbehind: true\n          },\n          prefix: {\n            pattern: /[\\s\\S]/,\n            alias: /\\w+/.exec(name)[0]\n          }\n        }\n      }\n    }) // make prefixes available to Diff plugin\n    Object.defineProperty(Prism.languages.diff, 'PREFIXES', {\n      value: PREFIXES\n    })\n  })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = django\ndjango.displayName = 'django'\ndjango.aliases = ['jinja2']\nfunction django(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  // Django/Jinja2 syntax definition for Prism.js <http://prismjs.com> syntax highlighter.\n  // Mostly it works OK but can paint code incorrectly on complex html/template tag combinations.\n  ;(function (Prism) {\n    Prism.languages.django = {\n      comment: /^\\{#[\\s\\S]*?#\\}$/,\n      tag: {\n        pattern: /(^\\{%[+-]?\\s*)\\w+/,\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      delimiter: {\n        pattern: /^\\{[{%][+-]?|[+-]?[}%]\\}$/,\n        alias: 'punctuation'\n      },\n      string: {\n        pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n        greedy: true\n      },\n      filter: {\n        pattern: /(\\|)\\w+/,\n        lookbehind: true,\n        alias: 'function'\n      },\n      test: {\n        pattern: /(\\bis\\s+(?:not\\s+)?)(?!not\\b)\\w+/,\n        lookbehind: true,\n        alias: 'function'\n      },\n      function: /\\b[a-z_]\\w+(?=\\s*\\()/i,\n      keyword:\n        /\\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\\b/,\n      operator: /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n      number: /\\b\\d+(?:\\.\\d+)?\\b/,\n      boolean: /[Ff]alse|[Nn]one|[Tt]rue/,\n      variable: /\\b\\w+\\b/,\n      punctuation: /[{}[\\](),.:;]/\n    }\n    var pattern = /\\{\\{[\\s\\S]*?\\}\\}|\\{%[\\s\\S]*?%\\}|\\{#[\\s\\S]*?#\\}/g\n    var markupTemplating = Prism.languages['markup-templating']\n    Prism.hooks.add('before-tokenize', function (env) {\n      markupTemplating.buildPlaceholders(env, 'django', pattern)\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      markupTemplating.tokenizePlaceholders(env, 'django')\n    }) // Add an Jinja2 alias\n    Prism.languages.jinja2 = Prism.languages.django\n    Prism.hooks.add('before-tokenize', function (env) {\n      markupTemplating.buildPlaceholders(env, 'jinja2', pattern)\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      markupTemplating.tokenizePlaceholders(env, 'jinja2')\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = dnsZoneFile\ndnsZoneFile.displayName = 'dnsZoneFile'\ndnsZoneFile.aliases = []\nfunction dnsZoneFile(Prism) {\n  Prism.languages['dns-zone-file'] = {\n    comment: /;.*/,\n    string: {\n      pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n      greedy: true\n    },\n    variable: [\n      {\n        pattern: /(^\\$ORIGIN[ \\t]+)\\S+/m,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|\\s)@(?=\\s|$)/,\n        lookbehind: true\n      }\n    ],\n    keyword: /^\\$(?:INCLUDE|ORIGIN|TTL)(?=\\s|$)/m,\n    class: {\n      // https://tools.ietf.org/html/rfc1035#page-13\n      pattern: /(^|\\s)(?:CH|CS|HS|IN)(?=\\s|$)/,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    type: {\n      // https://en.wikipedia.org/wiki/List_of_DNS_record_types\n      pattern:\n        /(^|\\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\\s|$)/,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    punctuation: /[()]/\n  }\n  Prism.languages['dns-zone'] = Prism.languages['dns-zone-file']\n}\n","'use strict'\n\nmodule.exports = docker\ndocker.displayName = 'docker'\ndocker.aliases = ['dockerfile']\nfunction docker(Prism) {\n  ;(function (Prism) {\n    // Many of the following regexes will contain negated lookaheads like `[ \\t]+(?![ \\t])`. This is a trick to ensure\n    // that quantifiers behave *atomically*. Atomic quantifiers are necessary to prevent exponential backtracking.\n    var spaceAfterBackSlash =\n      /\\\\[\\r\\n](?:\\s|\\\\[\\r\\n]|#.*(?!.))*(?![\\s#]|\\\\[\\r\\n])/.source // At least one space, comment, or line break\n    var space = /(?:[ \\t]+(?![ \\t])(?:<SP_BS>)?|<SP_BS>)/.source.replace(\n      /<SP_BS>/g,\n      function () {\n        return spaceAfterBackSlash\n      }\n    )\n    var string =\n      /\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"|'(?:[^'\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*'/\n        .source\n    var option = /--[\\w-]+=(?:<STR>|(?![\"'])(?:[^\\s\\\\]|\\\\.)+)/.source.replace(\n      /<STR>/g,\n      function () {\n        return string\n      }\n    )\n    var stringRule = {\n      pattern: RegExp(string),\n      greedy: true\n    }\n    var commentRule = {\n      pattern: /(^[ \\t]*)#.*/m,\n      lookbehind: true,\n      greedy: true\n    }\n    /**\n     * @param {string} source\n     * @param {string} flags\n     * @returns {RegExp}\n     */\n    function re(source, flags) {\n      source = source\n        .replace(/<OPT>/g, function () {\n          return option\n        })\n        .replace(/<SP>/g, function () {\n          return space\n        })\n      return RegExp(source, flags)\n    }\n    Prism.languages.docker = {\n      instruction: {\n        pattern:\n          /(^[ \\t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\\s)(?:\\\\.|[^\\r\\n\\\\])*(?:\\\\$(?:\\s|#.*$)*(?![\\s#])(?:\\\\.|[^\\r\\n\\\\])*)*/im,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          options: {\n            pattern: re(\n              /(^(?:ONBUILD<SP>)?\\w+<SP>)<OPT>(?:<SP><OPT>)*/.source,\n              'i'\n            ),\n            lookbehind: true,\n            greedy: true,\n            inside: {\n              property: {\n                pattern: /(^|\\s)--[\\w-]+/,\n                lookbehind: true\n              },\n              string: [\n                stringRule,\n                {\n                  pattern: /(=)(?![\"'])(?:[^\\s\\\\]|\\\\.)+/,\n                  lookbehind: true\n                }\n              ],\n              operator: /\\\\$/m,\n              punctuation: /=/\n            }\n          },\n          keyword: [\n            {\n              // https://docs.docker.com/engine/reference/builder/#healthcheck\n              pattern: re(\n                /(^(?:ONBUILD<SP>)?HEALTHCHECK<SP>(?:<OPT><SP>)*)(?:CMD|NONE)\\b/\n                  .source,\n                'i'\n              ),\n              lookbehind: true,\n              greedy: true\n            },\n            {\n              // https://docs.docker.com/engine/reference/builder/#from\n              pattern: re(\n                /(^(?:ONBUILD<SP>)?FROM<SP>(?:<OPT><SP>)*(?!--)[^ \\t\\\\]+<SP>)AS/\n                  .source,\n                'i'\n              ),\n              lookbehind: true,\n              greedy: true\n            },\n            {\n              // https://docs.docker.com/engine/reference/builder/#onbuild\n              pattern: re(/(^ONBUILD<SP>)\\w+/.source, 'i'),\n              lookbehind: true,\n              greedy: true\n            },\n            {\n              pattern: /^\\w+/,\n              greedy: true\n            }\n          ],\n          comment: commentRule,\n          string: stringRule,\n          variable: /\\$(?:\\w+|\\{[^{}\"'\\\\]*\\})/,\n          operator: /\\\\$/m\n        }\n      },\n      comment: commentRule\n    }\n    Prism.languages.dockerfile = Prism.languages.docker\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = dot\ndot.displayName = 'dot'\ndot.aliases = ['gv']\nfunction dot(Prism) {\n  // https://www.graphviz.org/doc/info/lang.html\n  ;(function (Prism) {\n    var ID =\n      '(?:' +\n      [\n        // an identifier\n        /[a-zA-Z_\\x80-\\uFFFF][\\w\\x80-\\uFFFF]*/.source, // a number\n        /-?(?:\\.\\d+|\\d+(?:\\.\\d*)?)/.source, // a double-quoted string\n        /\"[^\"\\\\]*(?:\\\\[\\s\\S][^\"\\\\]*)*\"/.source, // HTML-like string\n        /<(?:[^<>]|(?!<!--)<(?:[^<>\"']|\"[^\"]*\"|'[^']*')+>|<!--(?:[^-]|-(?!->))*-->)*>/\n          .source\n      ].join('|') +\n      ')'\n    var IDInside = {\n      markup: {\n        pattern: /(^<)[\\s\\S]+(?=>$)/,\n        lookbehind: true,\n        alias: ['language-markup', 'language-html', 'language-xml'],\n        inside: Prism.languages.markup\n      }\n    }\n    /**\n     * @param {string} source\n     * @param {string} flags\n     * @returns {RegExp}\n     */\n    function withID(source, flags) {\n      return RegExp(\n        source.replace(/<ID>/g, function () {\n          return ID\n        }),\n        flags\n      )\n    }\n    Prism.languages.dot = {\n      comment: {\n        pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\/|^#.*/m,\n        greedy: true\n      },\n      'graph-name': {\n        pattern: withID(\n          /(\\b(?:digraph|graph|subgraph)[ \\t\\r\\n]+)<ID>/.source,\n          'i'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'class-name',\n        inside: IDInside\n      },\n      'attr-value': {\n        pattern: withID(/(=[ \\t\\r\\n]*)<ID>/.source),\n        lookbehind: true,\n        greedy: true,\n        inside: IDInside\n      },\n      'attr-name': {\n        pattern: withID(/([\\[;, \\t\\r\\n])<ID>(?=[ \\t\\r\\n]*=)/.source),\n        lookbehind: true,\n        greedy: true,\n        inside: IDInside\n      },\n      keyword: /\\b(?:digraph|edge|graph|node|strict|subgraph)\\b/i,\n      'compass-point': {\n        pattern: /(:[ \\t\\r\\n]*)(?:[ewc_]|[ns][ew]?)(?![\\w\\x80-\\uFFFF])/,\n        lookbehind: true,\n        alias: 'builtin'\n      },\n      node: {\n        pattern: withID(/(^|[^-.\\w\\x80-\\uFFFF\\\\])<ID>/.source),\n        lookbehind: true,\n        greedy: true,\n        inside: IDInside\n      },\n      operator: /[=:]|-[->]/,\n      punctuation: /[\\[\\]{};,]/\n    }\n    Prism.languages.gv = Prism.languages.dot\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = ebnf\nebnf.displayName = 'ebnf'\nebnf.aliases = []\nfunction ebnf(Prism) {\n  Prism.languages.ebnf = {\n    comment: /\\(\\*[\\s\\S]*?\\*\\)/,\n    string: {\n      pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n      greedy: true\n    },\n    special: {\n      pattern: /\\?[^?\\r\\n]*\\?/,\n      greedy: true,\n      alias: 'class-name'\n    },\n    definition: {\n      pattern: /^([\\t ]*)[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*(?=\\s*=)/im,\n      lookbehind: true,\n      alias: ['rule', 'keyword']\n    },\n    rule: /\\b[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*\\b/i,\n    punctuation: /\\([:/]|[:/]\\)|[.,;()[\\]{}]/,\n    operator: /[-=|*/!]/\n  }\n}\n","'use strict'\n\nmodule.exports = editorconfig\neditorconfig.displayName = 'editorconfig'\neditorconfig.aliases = []\nfunction editorconfig(Prism) {\n  Prism.languages.editorconfig = {\n    // https://editorconfig-specification.readthedocs.io\n    comment: /[;#].*/,\n    section: {\n      pattern: /(^[ \\t]*)\\[.+\\]/m,\n      lookbehind: true,\n      alias: 'selector',\n      inside: {\n        regex: /\\\\\\\\[\\[\\]{},!?.*]/,\n        // Escape special characters with '\\\\'\n        operator: /[!?]|\\.\\.|\\*{1,2}/,\n        punctuation: /[\\[\\]{},]/\n      }\n    },\n    key: {\n      pattern: /(^[ \\t]*)[^\\s=]+(?=[ \\t]*=)/m,\n      lookbehind: true,\n      alias: 'attr-name'\n    },\n    value: {\n      pattern: /=.*/,\n      alias: 'attr-value',\n      inside: {\n        punctuation: /^=/\n      }\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = eiffel\neiffel.displayName = 'eiffel'\neiffel.aliases = []\nfunction eiffel(Prism) {\n  Prism.languages.eiffel = {\n    comment: /--.*/,\n    string: [\n      // Aligned-verbatim-strings\n      {\n        pattern: /\"([^[]*)\\[[\\s\\S]*?\\]\\1\"/,\n        greedy: true\n      }, // Non-aligned-verbatim-strings\n      {\n        pattern: /\"([^{]*)\\{[\\s\\S]*?\\}\\1\"/,\n        greedy: true\n      }, // Single-line string\n      {\n        pattern: /\"(?:%(?:(?!\\n)\\s)*\\n\\s*%|%\\S|[^%\"\\r\\n])*\"/,\n        greedy: true\n      }\n    ],\n    // normal char | special char | char code\n    char: /'(?:%.|[^%'\\r\\n])+'/,\n    keyword:\n      /\\b(?:across|agent|alias|all|and|as|assign|attached|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\\b/i,\n    boolean: /\\b(?:False|True)\\b/i,\n    // Convention: class-names are always all upper-case characters\n    'class-name': /\\b[A-Z][\\dA-Z_]*\\b/,\n    number: [\n      // hexa | octal | bin\n      /\\b0[xcb][\\da-f](?:_*[\\da-f])*\\b/i, // Decimal\n      /(?:\\b\\d(?:_*\\d)*)?\\.(?:(?:\\d(?:_*\\d)*)?e[+-]?)?\\d(?:_*\\d)*\\b|\\b\\d(?:_*\\d)*\\b\\.?/i\n    ],\n    punctuation: /:=|<<|>>|\\(\\||\\|\\)|->|\\.(?=\\w)|[{}[\\];(),:?]/,\n    operator: /\\\\\\\\|\\|\\.\\.\\||\\.\\.|\\/[~\\/=]?|[><]=?|[-+*^=~]/\n  }\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = ejs\nejs.displayName = 'ejs'\nejs.aliases = ['eta']\nfunction ejs(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    Prism.languages.ejs = {\n      delimiter: {\n        pattern: /^<%[-_=]?|[-_]?%>$/,\n        alias: 'punctuation'\n      },\n      comment: /^#[\\s\\S]*/,\n      'language-javascript': {\n        pattern: /[\\s\\S]+/,\n        inside: Prism.languages.javascript\n      }\n    }\n    Prism.hooks.add('before-tokenize', function (env) {\n      var ejsPattern = /<%(?!%)[\\s\\S]+?%>/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'ejs',\n        ejsPattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ejs')\n    })\n    Prism.languages.eta = Prism.languages.ejs\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = elixir\nelixir.displayName = 'elixir'\nelixir.aliases = []\nfunction elixir(Prism) {\n  Prism.languages.elixir = {\n    doc: {\n      pattern:\n        /@(?:doc|moduledoc)\\s+(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2)/,\n      inside: {\n        attribute: /^@\\w+/,\n        string: /['\"][\\s\\S]+/\n      }\n    },\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    // ~r\"\"\"foo\"\"\" (multi-line), ~r'''foo''' (multi-line), ~r/foo/, ~r|foo|, ~r\"foo\", ~r'foo', ~r(foo), ~r[foo], ~r{foo}, ~r<foo>\n    regex: {\n      pattern:\n        /~[rR](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|[^\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[uismxfr]*/,\n      greedy: true\n    },\n    string: [\n      {\n        // ~s\"\"\"foo\"\"\" (multi-line), ~s'''foo''' (multi-line), ~s/foo/, ~s|foo|, ~s\"foo\", ~s'foo', ~s(foo), ~s[foo], ~s{foo} (with interpolation care), ~s<foo>\n        pattern:\n          /~[cCsSwW](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|#\\{[^}]+\\}|#(?!\\{)|[^#\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[csa]?/,\n        greedy: true,\n        inside: {\n          // See interpolation below\n        }\n      },\n      {\n        pattern: /(\"\"\"|''')[\\s\\S]*?\\1/,\n        greedy: true,\n        inside: {\n          // See interpolation below\n        }\n      },\n      {\n        // Multi-line strings are allowed\n        pattern: /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n        greedy: true,\n        inside: {\n          // See interpolation below\n        }\n      }\n    ],\n    atom: {\n      // Look-behind prevents bad highlighting of the :: operator\n      pattern: /(^|[^:]):\\w+/,\n      lookbehind: true,\n      alias: 'symbol'\n    },\n    module: {\n      pattern: /\\b[A-Z]\\w*\\b/,\n      alias: 'class-name'\n    },\n    // Look-ahead prevents bad highlighting of the :: operator\n    'attr-name': /\\b\\w+\\??:(?!:)/,\n    argument: {\n      // Look-behind prevents bad highlighting of the && operator\n      pattern: /(^|[^&])&\\d+/,\n      lookbehind: true,\n      alias: 'variable'\n    },\n    attribute: {\n      pattern: /@\\w+/,\n      alias: 'variable'\n    },\n    function: /\\b[_a-zA-Z]\\w*[?!]?(?:(?=\\s*(?:\\.\\s*)?\\()|(?=\\/\\d))/,\n    number: /\\b(?:0[box][a-f\\d_]+|\\d[\\d_]*)(?:\\.[\\d_]+)?(?:e[+-]?[\\d_]+)?\\b/i,\n    keyword:\n      /\\b(?:after|alias|and|case|catch|cond|def(?:callback|delegate|exception|impl|macro|module|n|np|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|quote|raise|require|rescue|try|unless|unquote|use|when)\\b/,\n    boolean: /\\b(?:false|nil|true)\\b/,\n    operator: [\n      /\\bin\\b|&&?|\\|[|>]?|\\\\\\\\|::|\\.\\.\\.?|\\+\\+?|-[->]?|<[-=>]|>=|!==?|\\B!|=(?:==?|[>~])?|[*\\/^]/,\n      {\n        // We don't want to match <<\n        pattern: /([^<])<(?!<)/,\n        lookbehind: true\n      },\n      {\n        // We don't want to match >>\n        pattern: /([^>])>(?!>)/,\n        lookbehind: true\n      }\n    ],\n    punctuation: /<<|>>|[.,%\\[\\]{}()]/\n  }\n  Prism.languages.elixir.string.forEach(function (o) {\n    o.inside = {\n      interpolation: {\n        pattern: /#\\{[^}]+\\}/,\n        inside: {\n          delimiter: {\n            pattern: /^#\\{|\\}$/,\n            alias: 'punctuation'\n          },\n          rest: Prism.languages.elixir\n        }\n      }\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = elm\nelm.displayName = 'elm'\nelm.aliases = []\nfunction elm(Prism) {\n  Prism.languages.elm = {\n    comment: /--.*|\\{-[\\s\\S]*?-\\}/,\n    char: {\n      pattern:\n        /'(?:[^\\\\'\\r\\n]|\\\\(?:[abfnrtv\\\\']|\\d+|x[0-9a-fA-F]+|u\\{[0-9a-fA-F]+\\}))'/,\n      greedy: true\n    },\n    string: [\n      {\n        // Multiline strings are wrapped in triple \". Quotes may appear unescaped.\n        pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n        greedy: true\n      },\n      {\n        pattern: /\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"/,\n        greedy: true\n      }\n    ],\n    'import-statement': {\n      // The imported or hidden names are not included in this import\n      // statement. This is because we want to highlight those exactly like\n      // we do for the names in the program.\n      pattern:\n        /(^[\\t ]*)import\\s+[A-Z]\\w*(?:\\.[A-Z]\\w*)*(?:\\s+as\\s+(?:[A-Z]\\w*)(?:\\.[A-Z]\\w*)*)?(?:\\s+exposing\\s+)?/m,\n      lookbehind: true,\n      inside: {\n        keyword: /\\b(?:as|exposing|import)\\b/\n      }\n    },\n    keyword:\n      /\\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\\b/,\n    // These are builtin variables only. Constructors are highlighted later as a constant.\n    builtin:\n      /\\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\\b/,\n    // decimal integers and floating point numbers | hexadecimal integers\n    number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0x[0-9a-f]+)\\b/i,\n    // Most of this is needed because of the meaning of a single '.'.\n    // If it stands alone freely, it is the function composition.\n    // It may also be a separator between a module name and an identifier => no\n    // operator. If it comes together with other special characters it is an\n    // operator too.\n    // Valid operator characters in 0.18: +-/*=.$<>:&|^?%#@~!\n    // Ref: https://groups.google.com/forum/#!msg/elm-dev/0AHSnDdkSkQ/E0SVU70JEQAJ\n    operator: /\\s\\.\\s|[+\\-/*=.$<>:&|^?%#@~!]{2,}|[+\\-/*=$<>:&|^?%#@~!]/,\n    // In Elm, nearly everything is a variable, do not highlight these.\n    hvariable: /\\b(?:[A-Z]\\w*\\.)*[a-z]\\w*\\b/,\n    constant: /\\b(?:[A-Z]\\w*\\.)*[A-Z]\\w*\\b/,\n    punctuation: /[{}[\\]|(),.:]/\n  }\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = erb\nerb.displayName = 'erb'\nerb.aliases = []\nfunction erb(Prism) {\n  Prism.register(refractorRuby)\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    Prism.languages.erb = {\n      delimiter: {\n        pattern: /^(\\s*)<%=?|%>(?=\\s*$)/,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      ruby: {\n        pattern: /\\s*\\S[\\s\\S]*/,\n        alias: 'language-ruby',\n        inside: Prism.languages.ruby\n      }\n    }\n    Prism.hooks.add('before-tokenize', function (env) {\n      var erbPattern =\n        /<%=?(?:[^\\r\\n]|[\\r\\n](?!=begin)|[\\r\\n]=begin\\s(?:[^\\r\\n]|[\\r\\n](?!=end))*[\\r\\n]=end)+?%>/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'erb',\n        erbPattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'erb')\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = erlang\nerlang.displayName = 'erlang'\nerlang.aliases = []\nfunction erlang(Prism) {\n  Prism.languages.erlang = {\n    comment: /%.+/,\n    string: {\n      pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n      greedy: true\n    },\n    'quoted-function': {\n      pattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'(?=\\()/,\n      alias: 'function'\n    },\n    'quoted-atom': {\n      pattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'/,\n      alias: 'atom'\n    },\n    boolean: /\\b(?:false|true)\\b/,\n    keyword: /\\b(?:after|case|catch|end|fun|if|of|receive|try|when)\\b/,\n    number: [\n      /\\$\\\\?./,\n      /\\b\\d+#[a-z0-9]+/i,\n      /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i\n    ],\n    function: /\\b[a-z][\\w@]*(?=\\()/,\n    variable: {\n      // Look-behind is used to prevent wrong highlighting of atoms containing \"@\"\n      pattern: /(^|[^@])(?:\\b|\\?)[A-Z_][\\w@]*/,\n      lookbehind: true\n    },\n    operator: [\n      /[=\\/<>:]=|=[:\\/]=|\\+\\+?|--?|[=*\\/!]|\\b(?:and|andalso|band|bnot|bor|bsl|bsr|bxor|div|not|or|orelse|rem|xor)\\b/,\n      {\n        // We don't want to match <<\n        pattern: /(^|[^<])<(?!<)/,\n        lookbehind: true\n      },\n      {\n        // We don't want to match >>\n        pattern: /(^|[^>])>(?!>)/,\n        lookbehind: true\n      }\n    ],\n    atom: /\\b[a-z][\\w@]*/,\n    punctuation: /[()[\\]{}:;,.#|]|<<|>>/\n  }\n}\n","'use strict'\nvar refractorLua = require('./lua.js')\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = etlua\netlua.displayName = 'etlua'\netlua.aliases = []\nfunction etlua(Prism) {\n  Prism.register(refractorLua)\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    Prism.languages.etlua = {\n      delimiter: {\n        pattern: /^<%[-=]?|-?%>$/,\n        alias: 'punctuation'\n      },\n      'language-lua': {\n        pattern: /[\\s\\S]+/,\n        inside: Prism.languages.lua\n      }\n    }\n    Prism.hooks.add('before-tokenize', function (env) {\n      var pattern = /<%[\\s\\S]+?%>/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'etlua',\n        pattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'etlua')\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = excelFormula\nexcelFormula.displayName = 'excelFormula'\nexcelFormula.aliases = []\nfunction excelFormula(Prism) {\n  Prism.languages['excel-formula'] = {\n    comment: {\n      pattern: /(\\bN\\(\\s*)\"(?:[^\"]|\"\")*\"(?=\\s*\\))/i,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n      greedy: true\n    },\n    reference: {\n      // https://www.ablebits.com/office-addins-blog/2015/12/08/excel-reference-another-sheet-workbook/\n      // Sales!B2\n      // 'Winter sales'!B2\n      // [Sales.xlsx]Jan!B2:B5\n      // D:\\Reports\\[Sales.xlsx]Jan!B2:B5\n      // '[Sales.xlsx]Jan sales'!B2:B5\n      // 'D:\\Reports\\[Sales.xlsx]Jan sales'!B2:B5\n      pattern:\n        /(?:'[^']*'|(?:[^\\s()[\\]{}<>*?\"';,$&]*\\[[^^\\s()[\\]{}<>*?\"']+\\])?\\w+)!/,\n      greedy: true,\n      alias: 'string',\n      inside: {\n        operator: /!$/,\n        punctuation: /'/,\n        sheet: {\n          pattern: /[^[\\]]+$/,\n          alias: 'function'\n        },\n        file: {\n          pattern: /\\[[^[\\]]+\\]$/,\n          inside: {\n            punctuation: /[[\\]]/\n          }\n        },\n        path: /[\\s\\S]+/\n      }\n    },\n    'function-name': {\n      pattern: /\\b[A-Z]\\w*(?=\\()/i,\n      alias: 'keyword'\n    },\n    range: {\n      pattern:\n        /\\$?\\b(?:[A-Z]+\\$?\\d+:\\$?[A-Z]+\\$?\\d+|[A-Z]+:\\$?[A-Z]+|\\d+:\\$?\\d+)\\b/i,\n      alias: 'property',\n      inside: {\n        operator: /:/,\n        cell: /\\$?[A-Z]+\\$?\\d+/i,\n        column: /\\$?[A-Z]+/i,\n        row: /\\$?\\d+/\n      }\n    },\n    cell: {\n      // Excel is case insensitive, so the string \"foo1\" could be either a variable or a cell.\n      // To combat this, we match cells case insensitive, if the contain at least one \"$\", and case sensitive otherwise.\n      pattern: /\\b[A-Z]+\\d+\\b|\\$[A-Za-z]+\\$?\\d+\\b|\\b[A-Za-z]+\\$\\d+\\b/,\n      alias: 'property'\n    },\n    number: /(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n    boolean: /\\b(?:FALSE|TRUE)\\b/i,\n    operator: /[-+*/^%=&,]|<[=>]?|>=?/,\n    punctuation: /[[\\]();{}|]/\n  }\n  Prism.languages['xlsx'] = Prism.languages['xls'] =\n    Prism.languages['excel-formula']\n}\n","'use strict'\n\nmodule.exports = factor\nfactor.displayName = 'factor'\nfactor.aliases = []\nfunction factor(Prism) {\n  ;(function (Prism) {\n    var comment_inside = {\n      function:\n        /\\b(?:BUGS?|FIX(?:MES?)?|NOTES?|TODOS?|XX+|HACKS?|WARN(?:ING)?|\\?{2,}|!{2,})\\b/\n    }\n    var string_inside = {\n      number: /\\\\[^\\s']|%\\w/\n    }\n    var factor = {\n      comment: [\n        {\n          // ! single-line exclamation point comments with whitespace after/around the !\n          pattern: /(^|\\s)(?:! .*|!$)/,\n          lookbehind: true,\n          inside: comment_inside\n        },\n        /* from basis/multiline: */\n        {\n          // /* comment */, /* comment*/\n          pattern: /(^|\\s)\\/\\*\\s[\\s\\S]*?\\*\\/(?=\\s|$)/,\n          lookbehind: true,\n          greedy: true,\n          inside: comment_inside\n        },\n        {\n          // ![[ comment ]] , ![===[ comment]===]\n          pattern: /(^|\\s)!\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n          lookbehind: true,\n          greedy: true,\n          inside: comment_inside\n        }\n      ],\n      number: [\n        {\n          // basic base 10 integers 9, -9\n          pattern: /(^|\\s)[+-]?\\d+(?=\\s|$)/,\n          lookbehind: true\n        },\n        {\n          // base prefix integers 0b010 0o70 0xad 0d10 0XAD -0xa9\n          pattern: /(^|\\s)[+-]?0(?:b[01]+|o[0-7]+|d\\d+|x[\\dA-F]+)(?=\\s|$)/i,\n          lookbehind: true\n        },\n        {\n          // fractional ratios 1/5 -1/5 and the literal float approximations 1/5. -1/5.\n          pattern: /(^|\\s)[+-]?\\d+\\/\\d+\\.?(?=\\s|$)/,\n          lookbehind: true\n        },\n        {\n          // positive mixed numbers 23+1/5 +23+1/5\n          pattern: /(^|\\s)\\+?\\d+\\+\\d+\\/\\d+(?=\\s|$)/,\n          lookbehind: true\n        },\n        {\n          // negative mixed numbers -23-1/5\n          pattern: /(^|\\s)-\\d+-\\d+\\/\\d+(?=\\s|$)/,\n          lookbehind: true\n        },\n        {\n          // basic decimal floats -0.01 0. .0 .1 -.1 -1. -12.13 +12.13\n          // and scientific notation with base 10 exponents 3e4 3e-4 .3e-4\n          pattern:\n            /(^|\\s)[+-]?(?:\\d*\\.\\d+|\\d+\\.\\d*|\\d+)(?:e[+-]?\\d+)?(?=\\s|$)/i,\n          lookbehind: true\n        },\n        {\n          // NAN literal syntax NAN: 80000deadbeef, NAN: a\n          pattern: /(^|\\s)NAN:\\s+[\\da-fA-F]+(?=\\s|$)/,\n          lookbehind: true\n        },\n        {\n          /*\nbase prefix floats 0x1.0p3 (8.0) 0b1.010p2 (5.0) 0x1.p1 0b1.11111111p11111...\n\"The normalized hex form ±0x1.MMMMMMMMMMMMM[pP]±EEEE allows any floating-point number to be specified precisely.\nThe values of MMMMMMMMMMMMM and EEEE map directly to the mantissa and exponent fields of the binary IEEE 754 representation.\"\n<https://docs.factorcode.org/content/article-syntax-floats.html>\n*/\n          pattern:\n            /(^|\\s)[+-]?0(?:b1\\.[01]*|o1\\.[0-7]*|d1\\.\\d*|x1\\.[\\dA-F]*)p\\d+(?=\\s|$)/i,\n          lookbehind: true\n        }\n      ],\n      // R/ regexp?\\/\\\\/\n      regexp: {\n        pattern:\n          /(^|\\s)R\\/\\s(?:\\\\\\S|[^\\\\/])*\\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\\s|$)/,\n        lookbehind: true,\n        alias: 'number',\n        inside: {\n          variable: /\\\\\\S/,\n          keyword: /[+?*\\[\\]^$(){}.|]/,\n          operator: {\n            pattern: /(\\/)[idmsr]+(?:-[idmsr]+)?/,\n            lookbehind: true\n          }\n        }\n      },\n      boolean: {\n        pattern: /(^|\\s)[tf](?=\\s|$)/,\n        lookbehind: true\n      },\n      // SBUF\" asd\", URL\" ://...\", P\" /etc/\"\n      'custom-string': {\n        pattern: /(^|\\s)[A-Z0-9\\-]+\"\\s(?:\\\\\\S|[^\"\\\\])*\"/,\n        lookbehind: true,\n        greedy: true,\n        alias: 'string',\n        inside: {\n          number: /\\\\\\S|%\\w|\\//\n        }\n      },\n      'multiline-string': [\n        {\n          // STRING: name \\n content \\n ; -> CONSTANT: name \"content\" (symbol)\n          pattern: /(^|\\s)STRING:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*;(?=\\s|$)/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'string',\n          inside: {\n            number: string_inside.number,\n            // trailing semicolon on its own line\n            'semicolon-or-setlocal': {\n              pattern: /([\\r\\n][ \\t]*);(?=\\s|$)/,\n              lookbehind: true,\n              alias: 'function'\n            }\n          }\n        },\n        {\n          // HEREDOC: marker \\n content \\n marker ; -> \"content\" (immediate)\n          pattern: /(^|\\s)HEREDOC:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*\\S+(?=\\s|$)/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'string',\n          inside: string_inside\n        },\n        {\n          // [[ string ]], [==[ string]==]\n          pattern: /(^|\\s)\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'string',\n          inside: string_inside\n        }\n      ],\n      'special-using': {\n        pattern: /(^|\\s)USING:(?:\\s\\S+)*(?=\\s+;(?:\\s|$))/,\n        lookbehind: true,\n        alias: 'function',\n        inside: {\n          // this is essentially a regex for vocab names, which i don't want to specify\n          // but the USING: gets picked up as a vocab name\n          string: {\n            pattern: /(\\s)[^:\\s]+/,\n            lookbehind: true\n          }\n        }\n      },\n      /* this description of stack effect literal syntax is not complete and not as specific as theoretically possible\ntrying to do better is more work and regex-computation-time than it's worth though.\n- we'd like to have the \"delimiter\" parts of the stack effect [ (, --, and ) ] be a different (less-important or comment-like) colour to the stack effect contents\n- we'd like if nested stack effects were treated as such rather than just appearing flat (with `inside`)\n- we'd like if the following variable name conventions were recognised specifically:\nspecial row variables = ..a b..\ntype and stack effect annotations end with a colon = ( quot: ( a: ( -- ) -- b ) -- x ), ( x: number -- )\nword throws unconditional error = *\nany other word-like variable name = a ? q' etc\nhttps://docs.factorcode.org/content/article-effects.html\nthese are pretty complicated to highlight properly without a real parser, and therefore out of scope\nthe old pattern, which may be later useful, was: (^|\\s)(?:call|execute|eval)?\\((?:\\s+[^\"\\r\\n\\t ]\\S*)*?\\s+--(?:\\s+[^\"\\n\\t ]\\S*)*?\\s+\\)(?=\\s|$)\n*/\n      // current solution is not great\n      'stack-effect-delimiter': [\n        {\n          // opening parenthesis\n          pattern: /(^|\\s)(?:call|eval|execute)?\\((?=\\s)/,\n          lookbehind: true,\n          alias: 'operator'\n        },\n        {\n          // middle --\n          pattern: /(\\s)--(?=\\s)/,\n          lookbehind: true,\n          alias: 'operator'\n        },\n        {\n          // closing parenthesis\n          pattern: /(\\s)\\)(?=\\s|$)/,\n          lookbehind: true,\n          alias: 'operator'\n        }\n      ],\n      combinators: {\n        pattern: null,\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      'kernel-builtin': {\n        pattern: null,\n        lookbehind: true,\n        alias: 'variable'\n      },\n      'sequences-builtin': {\n        pattern: null,\n        lookbehind: true,\n        alias: 'variable'\n      },\n      'math-builtin': {\n        pattern: null,\n        lookbehind: true,\n        alias: 'variable'\n      },\n      'constructor-word': {\n        // <array> but not <=>\n        pattern: /(^|\\s)<(?!=+>|-+>)\\S+>(?=\\s|$)/,\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      'other-builtin-syntax': {\n        pattern: null,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      /*\nfull list of supported word naming conventions: (the convention appears outside of the [brackets])\nset-[x]\nchange-[x]\nwith-[x]\nnew-[x]\n>[string]\n[base]>\n[string]>[number]\n+[symbol]+\n[boolean-word]?\n?[of]\n[slot-reader]>>\n>>[slot-setter]\n[slot-writer]<<\n([implementation-detail])\n[mutater]!\n[variant]*\n[prettyprint].\n$[help-markup]\n<constructors>, SYNTAX:, etc are supported by their own patterns.\n`with` and `new` from `kernel` are their own builtins.\nsee <https://docs.factorcode.org/content/article-conventions.html>\n*/\n      'conventionally-named-word': {\n        pattern:\n          /(^|\\s)(?!\")(?:(?:change|new|set|with)-\\S+|\\$\\S+|>[^>\\s]+|[^:>\\s]+>|[^>\\s]+>[^>\\s]+|\\+[^+\\s]+\\+|[^?\\s]+\\?|\\?[^?\\s]+|[^>\\s]+>>|>>[^>\\s]+|[^<\\s]+<<|\\([^()\\s]+\\)|[^!\\s]+!|[^*\\s]\\S*\\*|[^.\\s]\\S*\\.)(?=\\s|$)/,\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      'colon-syntax': {\n        pattern: /(^|\\s)(?:[A-Z0-9\\-]+#?)?:{1,2}\\s+(?:;\\S+|(?!;)\\S+)(?=\\s|$)/,\n        lookbehind: true,\n        greedy: true,\n        alias: 'function'\n      },\n      'semicolon-or-setlocal': {\n        pattern: /(\\s)(?:;|:>)(?=\\s|$)/,\n        lookbehind: true,\n        alias: 'function'\n      },\n      // do not highlight leading } or trailing X{ at the begin/end of the file as it's invalid syntax\n      'curly-brace-literal-delimiter': [\n        {\n          // opening\n          pattern: /(^|\\s)[a-z]*\\{(?=\\s)/i,\n          lookbehind: true,\n          alias: 'operator'\n        },\n        {\n          // closing\n          pattern: /(\\s)\\}(?=\\s|$)/,\n          lookbehind: true,\n          alias: 'operator'\n        }\n      ],\n      // do not highlight leading ] or trailing [ at the begin/end of the file as it's invalid syntax\n      'quotation-delimiter': [\n        {\n          // opening\n          pattern: /(^|\\s)\\[(?=\\s)/,\n          lookbehind: true,\n          alias: 'operator'\n        },\n        {\n          // closing\n          pattern: /(\\s)\\](?=\\s|$)/,\n          lookbehind: true,\n          alias: 'operator'\n        }\n      ],\n      'normal-word': {\n        pattern: /(^|\\s)[^\"\\s]\\S*(?=\\s|$)/,\n        lookbehind: true\n      },\n      /*\nbasic first-class string \"a\"\nwith escaped double-quote \"a\\\"\"\nescaped backslash \"\\\\\"\nand general escapes since Factor has so many \"\\N\"\nsyntax that works in the reference implementation that isn't fully\nsupported because it's an implementation detail:\n\"string 1\"\"string 2\" -> 2 strings (works anyway)\n\"string\"5 -> string, 5\n\"string\"[ ] -> string, quotation\n{ \"a\"} -> array<string>\nthe rest of those examples all properly recognise the string, but not\nthe other object (number, quotation, etc)\nthis is fine for a regex-only implementation.\n*/\n      string: {\n        pattern: /\"(?:\\\\\\S|[^\"\\\\])*\"/,\n        greedy: true,\n        inside: string_inside\n      }\n    }\n    var escape = function (str) {\n      return (str + '').replace(/([.?*+\\^$\\[\\]\\\\(){}|\\-])/g, '\\\\$1')\n    }\n    var arrToWordsRegExp = function (arr) {\n      return new RegExp('(^|\\\\s)(?:' + arr.map(escape).join('|') + ')(?=\\\\s|$)')\n    }\n    var builtins = {\n      'kernel-builtin': [\n        'or',\n        '2nipd',\n        '4drop',\n        'tuck',\n        'wrapper',\n        'nip',\n        'wrapper?',\n        'callstack>array',\n        'die',\n        'dupd',\n        'callstack',\n        'callstack?',\n        '3dup',\n        'hashcode',\n        'pick',\n        '4nip',\n        'build',\n        '>boolean',\n        'nipd',\n        'clone',\n        '5nip',\n        'eq?',\n        '?',\n        '=',\n        'swapd',\n        '2over',\n        'clear',\n        '2dup',\n        'get-retainstack',\n        'not',\n        'tuple?',\n        'dup',\n        '3nipd',\n        'call',\n        '-rotd',\n        'object',\n        'drop',\n        'assert=',\n        'assert?',\n        '-rot',\n        'execute',\n        'boa',\n        'get-callstack',\n        'curried?',\n        '3drop',\n        'pickd',\n        'overd',\n        'over',\n        'roll',\n        '3nip',\n        'swap',\n        'and',\n        '2nip',\n        'rotd',\n        'throw',\n        '(clone)',\n        'hashcode*',\n        'spin',\n        'reach',\n        '4dup',\n        'equal?',\n        'get-datastack',\n        'assert',\n        '2drop',\n        '<wrapper>',\n        'boolean?',\n        'identity-hashcode',\n        'identity-tuple?',\n        'null',\n        'composed?',\n        'new',\n        '5drop',\n        'rot',\n        '-roll',\n        'xor',\n        'identity-tuple',\n        'boolean'\n      ],\n      'other-builtin-syntax': [\n        // syntax\n        '=======',\n        'recursive',\n        'flushable',\n        '>>',\n        '<<<<<<',\n        'M\\\\',\n        'B',\n        'PRIVATE>',\n        '\\\\',\n        '======',\n        'final',\n        'inline',\n        'delimiter',\n        'deprecated',\n        '<PRIVATE',\n        '>>>>>>',\n        '<<<<<<<',\n        'parse-complex',\n        'malformed-complex',\n        'read-only',\n        '>>>>>>>',\n        'call-next-method',\n        '<<',\n        'foldable', // literals\n        '$',\n        '$[',\n        '${'\n      ],\n      'sequences-builtin': [\n        'member-eq?',\n        'mismatch',\n        'append',\n        'assert-sequence=',\n        'longer',\n        'repetition',\n        'clone-like',\n        '3sequence',\n        'assert-sequence?',\n        'last-index-from',\n        'reversed',\n        'index-from',\n        'cut*',\n        'pad-tail',\n        'join-as',\n        'remove-eq!',\n        'concat-as',\n        'but-last',\n        'snip',\n        'nths',\n        'nth',\n        'sequence',\n        'longest',\n        'slice?',\n        '<slice>',\n        'remove-nth',\n        'tail-slice',\n        'empty?',\n        'tail*',\n        'member?',\n        'virtual-sequence?',\n        'set-length',\n        'drop-prefix',\n        'iota',\n        'unclip',\n        'bounds-error?',\n        'unclip-last-slice',\n        'non-negative-integer-expected',\n        'non-negative-integer-expected?',\n        'midpoint@',\n        'longer?',\n        '?set-nth',\n        '?first',\n        'rest-slice',\n        'prepend-as',\n        'prepend',\n        'fourth',\n        'sift',\n        'subseq-start',\n        'new-sequence',\n        '?last',\n        'like',\n        'first4',\n        '1sequence',\n        'reverse',\n        'slice',\n        'virtual@',\n        'repetition?',\n        'set-last',\n        'index',\n        '4sequence',\n        'max-length',\n        'set-second',\n        'immutable-sequence',\n        'first2',\n        'first3',\n        'supremum',\n        'unclip-slice',\n        'suffix!',\n        'insert-nth',\n        'tail',\n        '3append',\n        'short',\n        'suffix',\n        'concat',\n        'flip',\n        'immutable?',\n        'reverse!',\n        '2sequence',\n        'sum',\n        'delete-all',\n        'indices',\n        'snip-slice',\n        '<iota>',\n        'check-slice',\n        'sequence?',\n        'head',\n        'append-as',\n        'halves',\n        'sequence=',\n        'collapse-slice',\n        '?second',\n        'slice-error?',\n        'product',\n        'bounds-check?',\n        'bounds-check',\n        'immutable',\n        'virtual-exemplar',\n        'harvest',\n        'remove',\n        'pad-head',\n        'last',\n        'set-fourth',\n        'cartesian-product',\n        'remove-eq',\n        'shorten',\n        'shorter',\n        'reversed?',\n        'shorter?',\n        'shortest',\n        'head-slice',\n        'pop*',\n        'tail-slice*',\n        'but-last-slice',\n        'iota?',\n        'append!',\n        'cut-slice',\n        'new-resizable',\n        'head-slice*',\n        'sequence-hashcode',\n        'pop',\n        'set-nth',\n        '?nth',\n        'second',\n        'join',\n        'immutable-sequence?',\n        '<reversed>',\n        '3append-as',\n        'virtual-sequence',\n        'subseq?',\n        'remove-nth!',\n        'length',\n        'last-index',\n        'lengthen',\n        'assert-sequence',\n        'copy',\n        'move',\n        'third',\n        'first',\n        'tail?',\n        'set-first',\n        'prefix',\n        'bounds-error',\n        '<repetition>',\n        'exchange',\n        'surround',\n        'cut',\n        'min-length',\n        'set-third',\n        'push-all',\n        'head?',\n        'subseq-start-from',\n        'delete-slice',\n        'rest',\n        'sum-lengths',\n        'head*',\n        'infimum',\n        'remove!',\n        'glue',\n        'slice-error',\n        'subseq',\n        'push',\n        'replace-slice',\n        'subseq-as',\n        'unclip-last'\n      ],\n      'math-builtin': [\n        'number=',\n        'next-power-of-2',\n        '?1+',\n        'fp-special?',\n        'imaginary-part',\n        'float>bits',\n        'number?',\n        'fp-infinity?',\n        'bignum?',\n        'fp-snan?',\n        'denominator',\n        'gcd',\n        '*',\n        '+',\n        'fp-bitwise=',\n        '-',\n        'u>=',\n        '/',\n        '>=',\n        'bitand',\n        'power-of-2?',\n        'log2-expects-positive',\n        'neg?',\n        '<',\n        'log2',\n        '>',\n        'integer?',\n        'number',\n        'bits>double',\n        '2/',\n        'zero?',\n        'bits>float',\n        'float?',\n        'shift',\n        'ratio?',\n        'rect>',\n        'even?',\n        'ratio',\n        'fp-sign',\n        'bitnot',\n        '>fixnum',\n        'complex?',\n        '/i',\n        'integer>fixnum',\n        '/f',\n        'sgn',\n        '>bignum',\n        'next-float',\n        'u<',\n        'u>',\n        'mod',\n        'recip',\n        'rational',\n        '>float',\n        '2^',\n        'integer',\n        'fixnum?',\n        'neg',\n        'fixnum',\n        'sq',\n        'bignum',\n        '>rect',\n        'bit?',\n        'fp-qnan?',\n        'simple-gcd',\n        'complex',\n        '<fp-nan>',\n        'real',\n        '>fraction',\n        'double>bits',\n        'bitor',\n        'rem',\n        'fp-nan-payload',\n        'real-part',\n        'log2-expects-positive?',\n        'prev-float',\n        'align',\n        'unordered?',\n        'float',\n        'fp-nan?',\n        'abs',\n        'bitxor',\n        'integer>fixnum-strict',\n        'u<=',\n        'odd?',\n        '<=',\n        '/mod',\n        '>integer',\n        'real?',\n        'rational?',\n        'numerator'\n      ] // that's all for now\n    }\n    Object.keys(builtins).forEach(function (k) {\n      factor[k].pattern = arrToWordsRegExp(builtins[k])\n    })\n    var combinators = [\n      // kernel\n      '2bi',\n      'while',\n      '2tri',\n      'bi*',\n      '4dip',\n      'both?',\n      'same?',\n      'tri@',\n      'curry',\n      'prepose',\n      '3bi',\n      '?if',\n      'tri*',\n      '2keep',\n      '3keep',\n      'curried',\n      '2keepd',\n      'when',\n      '2bi*',\n      '2tri*',\n      '4keep',\n      'bi@',\n      'keepdd',\n      'do',\n      'unless*',\n      'tri-curry',\n      'if*',\n      'loop',\n      'bi-curry*',\n      'when*',\n      '2bi@',\n      '2tri@',\n      'with',\n      '2with',\n      'either?',\n      'bi',\n      'until',\n      '3dip',\n      '3curry',\n      'tri-curry*',\n      'tri-curry@',\n      'bi-curry',\n      'keepd',\n      'compose',\n      '2dip',\n      'if',\n      '3tri',\n      'unless',\n      'tuple',\n      'keep',\n      '2curry',\n      'tri',\n      'most',\n      'while*',\n      'dip',\n      'composed',\n      'bi-curry@', // sequences\n      'find-last-from',\n      'trim-head-slice',\n      'map-as',\n      'each-from',\n      'none?',\n      'trim-tail',\n      'partition',\n      'if-empty',\n      'accumulate*',\n      'reject!',\n      'find-from',\n      'accumulate-as',\n      'collector-for-as',\n      'reject',\n      'map',\n      'map-sum',\n      'accumulate!',\n      '2each-from',\n      'follow',\n      'supremum-by',\n      'map!',\n      'unless-empty',\n      'collector',\n      'padding',\n      'reduce-index',\n      'replicate-as',\n      'infimum-by',\n      'trim-tail-slice',\n      'count',\n      'find-index',\n      'filter',\n      'accumulate*!',\n      'reject-as',\n      'map-integers',\n      'map-find',\n      'reduce',\n      'selector',\n      'interleave',\n      '2map',\n      'filter-as',\n      'binary-reduce',\n      'map-index-as',\n      'find',\n      'produce',\n      'filter!',\n      'replicate',\n      'cartesian-map',\n      'cartesian-each',\n      'find-index-from',\n      'map-find-last',\n      '3map-as',\n      '3map',\n      'find-last',\n      'selector-as',\n      '2map-as',\n      '2map-reduce',\n      'accumulate',\n      'each',\n      'each-index',\n      'accumulate*-as',\n      'when-empty',\n      'all?',\n      'collector-as',\n      'push-either',\n      'new-like',\n      'collector-for',\n      '2selector',\n      'push-if',\n      '2all?',\n      'map-reduce',\n      '3each',\n      'any?',\n      'trim-slice',\n      '2reduce',\n      'change-nth',\n      'produce-as',\n      '2each',\n      'trim',\n      'trim-head',\n      'cartesian-find',\n      'map-index', // math\n      'if-zero',\n      'each-integer',\n      'unless-zero',\n      '(find-integer)',\n      'when-zero',\n      'find-last-integer',\n      '(all-integers?)',\n      'times',\n      '(each-integer)',\n      'find-integer',\n      'all-integers?', // math.combinators\n      'unless-negative',\n      'if-positive',\n      'when-positive',\n      'when-negative',\n      'unless-positive',\n      'if-negative', // combinators\n      'case',\n      '2cleave',\n      'cond>quot',\n      'case>quot',\n      '3cleave',\n      'wrong-values',\n      'to-fixed-point',\n      'alist>quot',\n      'cond',\n      'cleave',\n      'call-effect',\n      'recursive-hashcode',\n      'spread',\n      'deep-spread>quot', // combinators.short-circuit\n      '2||',\n      '0||',\n      'n||',\n      '0&&',\n      '2&&',\n      '3||',\n      '1||',\n      '1&&',\n      'n&&',\n      '3&&', // combinators.smart\n      'smart-unless*',\n      'keep-inputs',\n      'reduce-outputs',\n      'smart-when*',\n      'cleave>array',\n      'smart-with',\n      'smart-apply',\n      'smart-if',\n      'inputs/outputs',\n      'output>sequence-n',\n      'map-outputs',\n      'map-reduce-outputs',\n      'dropping',\n      'output>array',\n      'smart-map-reduce',\n      'smart-2map-reduce',\n      'output>array-n',\n      'nullary',\n      'input<sequence',\n      'append-outputs',\n      'drop-inputs',\n      'inputs',\n      'smart-2reduce',\n      'drop-outputs',\n      'smart-reduce',\n      'preserving',\n      'smart-when',\n      'outputs',\n      'append-outputs-as',\n      'smart-unless',\n      'smart-if*',\n      'sum-outputs',\n      'input<sequence-unsafe',\n      'output>sequence' // tafn\n    ]\n    factor.combinators.pattern = arrToWordsRegExp(combinators)\n    Prism.languages.factor = factor\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = $false\n$false.displayName = '$false'\n$false.aliases = []\nfunction $false(Prism) {\n  ;(function (Prism) {\n    /**\n     * Based on the manual by Wouter van Oortmerssen.\n     *\n     * @see {@link https://github.com/PrismJS/prism/issues/2801#issue-829717504}\n     */\n    Prism.languages['false'] = {\n      comment: {\n        pattern: /\\{[^}]*\\}/\n      },\n      string: {\n        pattern: /\"[^\"]*\"/,\n        greedy: true\n      },\n      'character-code': {\n        pattern: /'(?:[^\\r]|\\r\\n?)/,\n        alias: 'number'\n      },\n      'assembler-code': {\n        pattern: /\\d+`/,\n        alias: 'important'\n      },\n      number: /\\d+/,\n      operator: /[-!#$%&'*+,./:;=>?@\\\\^_`|~ßø]/,\n      punctuation: /\\[|\\]/,\n      variable: /[a-z]/,\n      'non-standard': {\n        pattern: /[()<BDO®]/,\n        alias: 'bold'\n      }\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = firestoreSecurityRules\nfirestoreSecurityRules.displayName = 'firestoreSecurityRules'\nfirestoreSecurityRules.aliases = []\nfunction firestoreSecurityRules(Prism) {\n  Prism.languages['firestore-security-rules'] = Prism.languages.extend(\n    'clike',\n    {\n      comment: /\\/\\/.*/,\n      keyword:\n        /\\b(?:allow|function|if|match|null|return|rules_version|service)\\b/,\n      operator: /&&|\\|\\||[<>!=]=?|[-+*/%]|\\b(?:in|is)\\b/\n    }\n  )\n  delete Prism.languages['firestore-security-rules']['class-name']\n  Prism.languages.insertBefore('firestore-security-rules', 'keyword', {\n    path: {\n      pattern:\n        /(^|[\\s(),])(?:\\/(?:[\\w\\xA0-\\uFFFF]+|\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)))+/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        variable: {\n          pattern: /\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)/,\n          inside: {\n            operator: /=/,\n            keyword: /\\*\\*/,\n            punctuation: /[.$(){}]/\n          }\n        },\n        punctuation: /\\//\n      }\n    },\n    method: {\n      // to make the pattern shorter, the actual method names are omitted\n      pattern: /(\\ballow\\s+)[a-z]+(?:\\s*,\\s*[a-z]+)*(?=\\s*[:;])/,\n      lookbehind: true,\n      alias: 'builtin',\n      inside: {\n        punctuation: /,/\n      }\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = flow\nflow.displayName = 'flow'\nflow.aliases = []\nfunction flow(Prism) {\n  ;(function (Prism) {\n    Prism.languages.flow = Prism.languages.extend('javascript', {})\n    Prism.languages.insertBefore('flow', 'keyword', {\n      type: [\n        {\n          pattern:\n            /\\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|any|mixed|null|void)\\b/,\n          alias: 'tag'\n        }\n      ]\n    })\n    Prism.languages.flow['function-variable'].pattern =\n      /(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)(?:\\s*:\\s*\\w+)?|(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/i\n    delete Prism.languages.flow['parameter']\n    Prism.languages.insertBefore('flow', 'operator', {\n      'flow-punctuation': {\n        pattern: /\\{\\||\\|\\}/,\n        alias: 'punctuation'\n      }\n    })\n    if (!Array.isArray(Prism.languages.flow.keyword)) {\n      Prism.languages.flow.keyword = [Prism.languages.flow.keyword]\n    }\n    Prism.languages.flow.keyword.unshift(\n      {\n        pattern: /(^|[^$]\\b)(?:Class|declare|opaque|type)\\b(?!\\$)/,\n        lookbehind: true\n      },\n      {\n        pattern:\n          /(^|[^$]\\B)\\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\\b(?!\\$)/,\n        lookbehind: true\n      }\n    )\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = fortran\nfortran.displayName = 'fortran'\nfortran.aliases = []\nfunction fortran(Prism) {\n  Prism.languages.fortran = {\n    'quoted-number': {\n      pattern: /[BOZ](['\"])[A-F0-9]+\\1/i,\n      alias: 'number'\n    },\n    string: {\n      pattern:\n        /(?:\\b\\w+_)?(['\"])(?:\\1\\1|&(?:\\r\\n?|\\n)(?:[ \\t]*!.*(?:\\r\\n?|\\n)|(?![ \\t]*!))|(?!\\1).)*(?:\\1|&)/,\n      inside: {\n        comment: {\n          pattern: /(&(?:\\r\\n?|\\n)\\s*)!.*/,\n          lookbehind: true\n        }\n      }\n    },\n    comment: {\n      pattern: /!.*/,\n      greedy: true\n    },\n    boolean: /\\.(?:FALSE|TRUE)\\.(?:_\\w+)?/i,\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[ED][+-]?\\d+)?(?:_\\w+)?/i,\n    keyword: [\n      // Types\n      /\\b(?:CHARACTER|COMPLEX|DOUBLE ?PRECISION|INTEGER|LOGICAL|REAL)\\b/i, // END statements\n      /\\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\\b/i, // Statements\n      /\\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\\b/i, // Others\n      /\\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEIF|ELSEWHERE|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\\b/i\n    ],\n    operator: [\n      /\\*\\*|\\/\\/|=>|[=\\/]=|[<>]=?|::|[+\\-*=%]|\\.[A-Z]+\\./i,\n      {\n        // Use lookbehind to prevent confusion with (/ /)\n        pattern: /(^|(?!\\().)\\/(?!\\))/,\n        lookbehind: true\n      }\n    ],\n    punctuation: /\\(\\/|\\/\\)|[(),;:&]/\n  }\n}\n","'use strict'\n\nmodule.exports = fsharp\nfsharp.displayName = 'fsharp'\nfsharp.aliases = []\nfunction fsharp(Prism) {\n  Prism.languages.fsharp = Prism.languages.extend('clike', {\n    comment: [\n      {\n        pattern: /(^|[^\\\\])\\(\\*(?!\\))[\\s\\S]*?\\*\\)/,\n        lookbehind: true,\n        greedy: true\n      },\n      {\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /(?:\"\"\"[\\s\\S]*?\"\"\"|@\"(?:\"\"|[^\"])*\"|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")B?/,\n      greedy: true\n    },\n    'class-name': {\n      pattern:\n        /(\\b(?:exception|inherit|interface|new|of|type)\\s+|\\w\\s*:\\s*|\\s:\\??>\\s*)[.\\w]+\\b(?:\\s*(?:->|\\*)\\s*[.\\w]+\\b)*(?!\\s*[:.])/,\n      lookbehind: true,\n      inside: {\n        operator: /->|\\*/,\n        punctuation: /\\./\n      }\n    },\n    keyword:\n      /\\b(?:let|return|use|yield)(?:!\\B|\\b)|\\b(?:abstract|and|as|asr|assert|atomic|base|begin|break|checked|class|component|const|constraint|constructor|continue|default|delegate|do|done|downcast|downto|eager|elif|else|end|event|exception|extern|external|false|finally|fixed|for|fun|function|functor|global|if|in|include|inherit|inline|interface|internal|land|lazy|lor|lsl|lsr|lxor|match|member|method|mixin|mod|module|mutable|namespace|new|not|null|object|of|open|or|override|parallel|private|process|protected|public|pure|rec|sealed|select|sig|static|struct|tailcall|then|to|trait|true|try|type|upcast|val|virtual|void|volatile|when|while|with)\\b/,\n    number: [\n      /\\b0x[\\da-fA-F]+(?:LF|lf|un)?\\b/,\n      /\\b0b[01]+(?:uy|y)?\\b/,\n      /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[fm]|e[+-]?\\d+)?\\b/i,\n      /\\b\\d+(?:[IlLsy]|UL|u[lsy]?)?\\b/\n    ],\n    operator:\n      /([<>~&^])\\1\\1|([*.:<>&])\\2|<-|->|[!=:]=|<?\\|{1,3}>?|\\??(?:<=|>=|<>|[-+*/%=<>])\\??|[!?^&]|~[+~-]|:>|:\\?>?/\n  })\n  Prism.languages.insertBefore('fsharp', 'keyword', {\n    preprocessor: {\n      pattern: /(^[\\t ]*)#.*/m,\n      lookbehind: true,\n      alias: 'property',\n      inside: {\n        directive: {\n          pattern: /(^#)\\b(?:else|endif|if|light|line|nowarn)\\b/,\n          lookbehind: true,\n          alias: 'keyword'\n        }\n      }\n    }\n  })\n  Prism.languages.insertBefore('fsharp', 'punctuation', {\n    'computation-expression': {\n      pattern: /\\b[_a-z]\\w*(?=\\s*\\{)/i,\n      alias: 'keyword'\n    }\n  })\n  Prism.languages.insertBefore('fsharp', 'string', {\n    annotation: {\n      pattern: /\\[<.+?>\\]/,\n      greedy: true,\n      inside: {\n        punctuation: /^\\[<|>\\]$/,\n        'class-name': {\n          pattern: /^\\w+$|(^|;\\s*)[A-Z]\\w*(?=\\()/,\n          lookbehind: true\n        },\n        'annotation-content': {\n          pattern: /[\\s\\S]+/,\n          inside: Prism.languages.fsharp\n        }\n      }\n    },\n    char: {\n      pattern:\n        /'(?:[^\\\\']|\\\\(?:.|\\d{3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}|U[a-fA-F\\d]{8}))'B?/,\n      greedy: true\n    }\n  })\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = ftl\nftl.displayName = 'ftl'\nftl.aliases = []\nfunction ftl(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    // https://freemarker.apache.org/docs/dgui_template_exp.html\n    // FTL expression with 4 levels of nesting supported\n    var FTL_EXPR =\n      /[^<()\"']|\\((?:<expr>)*\\)|<(?!#--)|<#--(?:[^-]|-(?!->))*-->|\"(?:[^\\\\\"]|\\\\.)*\"|'(?:[^\\\\']|\\\\.)*'/\n        .source\n    for (var i = 0; i < 2; i++) {\n      FTL_EXPR = FTL_EXPR.replace(/<expr>/g, function () {\n        return FTL_EXPR\n      })\n    }\n    FTL_EXPR = FTL_EXPR.replace(/<expr>/g, /[^\\s\\S]/.source)\n    var ftl = {\n      comment: /<#--[\\s\\S]*?-->/,\n      string: [\n        {\n          // raw string\n          pattern: /\\br(\"|')(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n          greedy: true\n        },\n        {\n          pattern: RegExp(\n            /(\"|')(?:(?!\\1|\\$\\{)[^\\\\]|\\\\.|\\$\\{(?:(?!\\})(?:<expr>))*\\})*\\1/.source.replace(\n              /<expr>/g,\n              function () {\n                return FTL_EXPR\n              }\n            )\n          ),\n          greedy: true,\n          inside: {\n            interpolation: {\n              pattern: RegExp(\n                /((?:^|[^\\\\])(?:\\\\\\\\)*)\\$\\{(?:(?!\\})(?:<expr>))*\\}/.source.replace(\n                  /<expr>/g,\n                  function () {\n                    return FTL_EXPR\n                  }\n                )\n              ),\n              lookbehind: true,\n              inside: {\n                'interpolation-punctuation': {\n                  pattern: /^\\$\\{|\\}$/,\n                  alias: 'punctuation'\n                },\n                rest: null\n              }\n            }\n          }\n        }\n      ],\n      keyword: /\\b(?:as)\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      'builtin-function': {\n        pattern: /((?:^|[^?])\\?\\s*)\\w+/,\n        lookbehind: true,\n        alias: 'function'\n      },\n      function: /\\b\\w+(?=\\s*\\()/,\n      number: /\\b\\d+(?:\\.\\d+)?\\b/,\n      operator:\n        /\\.\\.[<*!]?|->|--|\\+\\+|&&|\\|\\||\\?{1,2}|[-+*/%!=<>]=?|\\b(?:gt|gte|lt|lte)\\b/,\n      punctuation: /[,;.:()[\\]{}]/\n    }\n    ftl.string[1].inside.interpolation.inside.rest = ftl\n    Prism.languages.ftl = {\n      'ftl-comment': {\n        // the pattern is shortened to be more efficient\n        pattern: /^<#--[\\s\\S]*/,\n        alias: 'comment'\n      },\n      'ftl-directive': {\n        pattern: /^<[\\s\\S]+>$/,\n        inside: {\n          directive: {\n            pattern: /(^<\\/?)[#@][a-z]\\w*/i,\n            lookbehind: true,\n            alias: 'keyword'\n          },\n          punctuation: /^<\\/?|\\/?>$/,\n          content: {\n            pattern: /\\s*\\S[\\s\\S]*/,\n            alias: 'ftl',\n            inside: ftl\n          }\n        }\n      },\n      'ftl-interpolation': {\n        pattern: /^\\$\\{[\\s\\S]*\\}$/,\n        inside: {\n          punctuation: /^\\$\\{|\\}$/,\n          content: {\n            pattern: /\\s*\\S[\\s\\S]*/,\n            alias: 'ftl',\n            inside: ftl\n          }\n        }\n      }\n    }\n    Prism.hooks.add('before-tokenize', function (env) {\n      // eslint-disable-next-line regexp/no-useless-lazy\n      var pattern = RegExp(\n        /<#--[\\s\\S]*?-->|<\\/?[#@][a-zA-Z](?:<expr>)*?>|\\$\\{(?:<expr>)*?\\}/.source.replace(\n          /<expr>/g,\n          function () {\n            return FTL_EXPR\n          }\n        ),\n        'gi'\n      )\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'ftl',\n        pattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ftl')\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = gap\ngap.displayName = 'gap'\ngap.aliases = []\nfunction gap(Prism) {\n  // https://www.gap-system.org/Manuals/doc/ref/chap4.html\n  // https://www.gap-system.org/Manuals/doc/ref/chap27.html\n  Prism.languages.gap = {\n    shell: {\n      pattern: /^gap>[\\s\\S]*?(?=^gap>|$(?![\\s\\S]))/m,\n      greedy: true,\n      inside: {\n        gap: {\n          pattern: /^(gap>).+(?:(?:\\r(?:\\n|(?!\\n))|\\n)>.*)*/,\n          lookbehind: true,\n          inside: null // see below\n        },\n        punctuation: /^gap>/\n      }\n    },\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    string: {\n      pattern:\n        /(^|[^\\\\'\"])(?:'(?:[^\\r\\n\\\\']|\\\\.){1,10}'|\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"(?!\")|\"\"\"[\\s\\S]*?\"\"\")/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        continuation: {\n          pattern: /([\\r\\n])>/,\n          lookbehind: true,\n          alias: 'punctuation'\n        }\n      }\n    },\n    keyword:\n      /\\b(?:Assert|Info|IsBound|QUIT|TryNextMethod|Unbind|and|atomic|break|continue|do|elif|else|end|fi|for|function|if|in|local|mod|not|od|or|quit|readonly|readwrite|rec|repeat|return|then|until|while)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    number: {\n      pattern:\n        /(^|[^\\w.]|\\.\\.)(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?(?:_[a-z]?)?(?=$|[^\\w.]|\\.\\.)/,\n      lookbehind: true\n    },\n    continuation: {\n      pattern: /([\\r\\n])>/,\n      lookbehind: true,\n      alias: 'punctuation'\n    },\n    operator: /->|[-+*/^~=!]|<>|[<>]=?|:=|\\.\\./,\n    punctuation: /[()[\\]{},;.:]/\n  }\n  Prism.languages.gap.shell.inside.gap.inside = Prism.languages.gap\n}\n","'use strict'\n\nmodule.exports = gcode\ngcode.displayName = 'gcode'\ngcode.aliases = []\nfunction gcode(Prism) {\n  Prism.languages.gcode = {\n    comment: /;.*|\\B\\(.*?\\)\\B/,\n    string: {\n      pattern: /\"(?:\"\"|[^\"])*\"/,\n      greedy: true\n    },\n    keyword: /\\b[GM]\\d+(?:\\.\\d+)?\\b/,\n    property: /\\b[A-Z]/,\n    checksum: {\n      pattern: /(\\*)\\d+/,\n      lookbehind: true,\n      alias: 'number'\n    },\n    // T0:0:0\n    punctuation: /[:*]/\n  }\n}\n","'use strict'\n\nmodule.exports = gdscript\ngdscript.displayName = 'gdscript'\ngdscript.aliases = []\nfunction gdscript(Prism) {\n  Prism.languages.gdscript = {\n    comment: /#.*/,\n    string: {\n      pattern:\n        /@?(?:(\"|')(?:(?!\\1)[^\\n\\\\]|\\\\[\\s\\S])*\\1(?!\"|')|\"\"\"(?:[^\\\\]|\\\\[\\s\\S])*?\"\"\")/,\n      greedy: true\n    },\n    'class-name': {\n      // class_name Foo, extends Bar, class InnerClass\n      // export(int) var baz, export(int, 0) var i\n      // as Node\n      // const FOO: int = 9, var bar: bool = true\n      // func add(reference: Item, amount: int) -> Item:\n      pattern:\n        /(^(?:class|class_name|extends)[ \\t]+|^export\\([ \\t]*|\\bas[ \\t]+|(?:\\b(?:const|var)[ \\t]|[,(])[ \\t]*\\w+[ \\t]*:[ \\t]*|->[ \\t]*)[a-zA-Z_]\\w*/m,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\\b/,\n    function: /\\b[a-z_]\\w*(?=[ \\t]*\\()/i,\n    variable: /\\$\\w+/,\n    number: [\n      /\\b0b[01_]+\\b|\\b0x[\\da-fA-F_]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.[\\d_]+)(?:e[+-]?[\\d_]+)?\\b/,\n      /\\b(?:INF|NAN|PI|TAU)\\b/\n    ],\n    constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    operator: /->|:=|&&|\\|\\||<<|>>|[-+*/%&|!<>=]=?|[~^]/,\n    punctuation: /[.:,;()[\\]{}]/\n  }\n}\n","'use strict'\n\nmodule.exports = gedcom\ngedcom.displayName = 'gedcom'\ngedcom.aliases = []\nfunction gedcom(Prism) {\n  Prism.languages.gedcom = {\n    'line-value': {\n      // Preceded by level, optional pointer, and tag\n      pattern:\n        /(^[\\t ]*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?\\w+ ).+/m,\n      lookbehind: true,\n      inside: {\n        pointer: {\n          pattern: /^@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@$/,\n          alias: 'variable'\n        }\n      }\n    },\n    tag: {\n      // Preceded by level and optional pointer\n      pattern:\n        /(^[\\t ]*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?)\\w+/m,\n      lookbehind: true,\n      alias: 'string'\n    },\n    level: {\n      pattern: /(^[\\t ]*)\\d+/m,\n      lookbehind: true,\n      alias: 'number'\n    },\n    pointer: {\n      pattern: /@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@/,\n      alias: 'variable'\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = gherkin\ngherkin.displayName = 'gherkin'\ngherkin.aliases = []\nfunction gherkin(Prism) {\n  ;(function (Prism) {\n    var tableRow = /(?:\\r?\\n|\\r)[ \\t]*\\|.+\\|(?:(?!\\|).)*/.source\n    Prism.languages.gherkin = {\n      pystring: {\n        pattern: /(\"\"\"|''')[\\s\\S]+?\\1/,\n        alias: 'string'\n      },\n      comment: {\n        pattern: /(^[ \\t]*)#.*/m,\n        lookbehind: true\n      },\n      tag: {\n        pattern: /(^[ \\t]*)@\\S*/m,\n        lookbehind: true\n      },\n      feature: {\n        pattern:\n          /((?:^|\\r?\\n|\\r)[ \\t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Característica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Funcţionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità|Hwaet|Hwæt|Jellemző|Karakteristik|Lastnost|Mak|Mogucnost|laH|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|Potrzeba biznesowa|perbogh|poQbogh malja'|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|Tính năng|Trajto|Vermoë|Vlastnosť|Właściwość|Značilnost|Δυνατότητα|Λειτουργία|Могућност|Мөмкинлек|Особина|Свойство|Үзенчәлеклелек|Функционал|Функционалност|Функция|Функціонал|תכונה|خاصية|خصوصیت|صلاحیت|کاروبار کی ضرورت|وِیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ಹೆಚ್ಚಳ|ความต้องการทางธุรกิจ|ความสามารถ|โครงหลัก|기능|フィーチャ|功能|機能):(?:[^:\\r\\n]+(?:\\r?\\n|\\r|$))*/,\n        lookbehind: true,\n        inside: {\n          important: {\n            pattern: /(:)[^\\r\\n]+/,\n            lookbehind: true\n          },\n          keyword: /[^:\\r\\n]+:/\n        }\n      },\n      scenario: {\n        pattern:\n          /(^[ \\t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram Senaryo|Dyagram senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|EXAMPLZ|Examples|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|Geçmiş|Grundlage|Hannergrond|ghantoH|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut chovnatlh|lut|lutmey|Lýsing Atburðarásar|Lýsing Dæma|MISHUN SRSLY|MISHUN|Menggariskan Senario|mo'|Náčrt Scenára|Náčrt Scénáře|Náčrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|Piemēri|Plan du scénario|Plan du Scénario|Plan Senaryo|Plan senaryo|Plang vum Szenario|Pozadí|Pozadie|Pozadina|Príklady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus šablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo Deskripsyon|Senaryo deskripsyon|Senaryo|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie Uiteensetting|Situasie|Skenario konsep|Skenario|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa hwaer swa|Swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo-ho-ho|You'll wanna|Założenia|Παραδείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Υπόβαθρο|Кереш|Контекст|Концепт|Мисаллар|Мисоллар|Основа|Передумова|Позадина|Предистория|Предыстория|Приклади|Пример|Примери|Примеры|Рамка на сценарий|Скица|Структура сценарија|Структура сценария|Структура сценарію|Сценарий|Сценарий структураси|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמאות|רקע|תבנית תרחיש|תרחיש|الخلفية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکہ|منظرنامہ|نمونه ها|उदाहरण|परिदृश्य|परिदृश्य रूपरेखा|पृष्ठभूमि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలు|కథనం|నేపథ్యం|సన్నివేశం|ಉದಾಹರಣೆಗಳು|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನ್ನೆಲೆ|โครงสร้างของเหตุการณ์|ชุดของตัวอย่าง|ชุดของเหตุการณ์|แนวคิด|สรุปเหตุการณ์|เหตุการณ์|배경|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例子|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|場景|場景大綱|背景):[^:\\r\\n]*/m,\n        lookbehind: true,\n        inside: {\n          important: {\n            pattern: /(:)[^\\r\\n]*/,\n            lookbehind: true\n          },\n          keyword: /[^:\\r\\n]+:/\n        }\n      },\n      'table-body': {\n        // Look-behind is used to skip the table head, which has the same format as any table row\n        pattern: RegExp('(' + tableRow + ')(?:' + tableRow + ')+'),\n        lookbehind: true,\n        inside: {\n          outline: {\n            pattern: /<[^>]+>/,\n            alias: 'variable'\n          },\n          td: {\n            pattern: /\\s*[^\\s|][^|]*/,\n            alias: 'string'\n          },\n          punctuation: /\\|/\n        }\n      },\n      'table-head': {\n        pattern: RegExp(tableRow),\n        inside: {\n          th: {\n            pattern: /\\s*[^\\s|][^|]*/,\n            alias: 'variable'\n          },\n          punctuation: /\\|/\n        }\n      },\n      atrule: {\n        pattern:\n          /(^[ \\t]+)(?:'a|'ach|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cand|Cando|Ce|Cuando|Če|Ða ðe|Ða|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Daţi fiind|Dați fiind|DEN|Dato|De|Den youse gotta|Dengan|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ðurh|Eeldades|Ef|Eğer ki|Entao|Então|Entón|E|En|Entonces|Epi|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kad|Kada|Kadar|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|Mając|Ma|Majd|Maka|Manawa|Mas|Men|Menawa|Mutta|Nalika|Nalikaning|Nanging|Når|När|Nato|Nhưng|Niin|Njuk|O zaman|Och|Og|Oletetaan|Ond|Onda|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|Quan|Quand|Quando|qaSDI'|Så|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|Un|Und|ugeholl|Và|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadan|Zadani|Zadano|Zadate|Zadato|Zakładając|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|Δεδομένου|Και|Όταν|Τότε|А також|Агар|Але|Али|Аммо|А|Әгәр|Әйтик|Әмма|Бирок|Ва|Вә|Дадено|Дано|Допустим|Если|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Нәтиҗәдә|Нехай|Но|Онда|Припустимо, що|Припустимо|Пусть|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|אבל|אזי|אז|בהינתן|וגם|כאשר|آنگاه|اذاً|اگر|اما|اور|با فرض|بالفرض|بفرض|پھر|تب|ثم|جب|عندما|فرض کیا|لكن|لیکن|متى|هنگامی|و|अगर|और|कदा|किन्तु|चूंकि|जब|तथा|तदा|तब|परन्तु|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|అప్పుడు|ఈ పరిస్థితిలో|కాని|చెప్పబడినది|మరియు|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತ್ತು|ಸ್ಥಿತಿಯನ್ನು|กำหนดให้|ดังนั้น|แต่|เมื่อ|และ|그러면<|그리고<|단<|만약<|만일<|먼저<|조건<|하지만<|かつ<|しかし<|ただし<|ならば<|もし<|並且<|但し<|但是<|假如<|假定<|假設<|假设<|前提<|同时<|同時<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \\t])/m,\n        lookbehind: true\n      },\n      string: {\n        pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/,\n        inside: {\n          outline: {\n            pattern: /<[^>]+>/,\n            alias: 'variable'\n          }\n        }\n      },\n      outline: {\n        pattern: /<[^>]+>/,\n        alias: 'variable'\n      }\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = git\ngit.displayName = 'git'\ngit.aliases = []\nfunction git(Prism) {\n  Prism.languages.git = {\n    /*\n     * A simple one line comment like in a git status command\n     * For instance:\n     * $ git status\n     * # On branch infinite-scroll\n     * # Your branch and 'origin/sharedBranches/frontendTeam/infinite-scroll' have diverged,\n     * # and have 1 and 2 different commits each, respectively.\n     * nothing to commit (working directory clean)\n     */\n    comment: /^#.*/m,\n    /*\n     * Regexp to match the changed lines in a git diff output. Check the example below.\n     */\n    deleted: /^[-–].*/m,\n    inserted: /^\\+.*/m,\n    /*\n     * a string (double and simple quote)\n     */\n    string: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n    /*\n     * a git command. It starts with a random prompt finishing by a $, then \"git\" then some other parameters\n     * For instance:\n     * $ git add file.txt\n     */\n    command: {\n      pattern: /^.*\\$ git .*$/m,\n      inside: {\n        /*\n         * A git command can contain a parameter starting by a single or a double dash followed by a string\n         * For instance:\n         * $ git diff --cached\n         * $ git log -p\n         */\n        parameter: /\\s--?\\w+/\n      }\n    },\n    /*\n     * Coordinates displayed in a git diff command\n     * For instance:\n     * $ git diff\n     * diff --git file.txt file.txt\n     * index 6214953..1d54a52 100644\n     * --- file.txt\n     * +++ file.txt\n     * @@ -1 +1,2 @@\n     * -Here's my tetx file\n     * +Here's my text file\n     * +And this is the second line\n     */\n    coord: /^@@.*@@$/m,\n    /*\n     * Match a \"commit [SHA1]\" line in a git log output.\n     * For instance:\n     * $ git log\n     * commit a11a14ef7e26f2ca62d4b35eac455ce636d0dc09\n     * Author: lgiraudel\n     * Date:   Mon Feb 17 11:18:34 2014 +0100\n     *\n     *     Add of a new line\n     */\n    'commit-sha1': /^commit \\w{40}$/m\n  }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = glsl\nglsl.displayName = 'glsl'\nglsl.aliases = []\nfunction glsl(Prism) {\n  Prism.register(refractorC)\n  Prism.languages.glsl = Prism.languages.extend('c', {\n    keyword:\n      /\\b(?:active|asm|atomic_uint|attribute|[ibdu]?vec[234]|bool|break|buffer|case|cast|centroid|class|coherent|common|const|continue|d?mat[234](?:x[234])?|default|discard|do|double|else|enum|extern|external|false|filter|fixed|flat|float|for|fvec[234]|goto|half|highp|hvec[234]|[iu]?sampler2DMS(?:Array)?|[iu]?sampler2DRect|[iu]?samplerBuffer|[iu]?samplerCube|[iu]?samplerCubeArray|[iu]?sampler[123]D|[iu]?sampler[12]DArray|[iu]?image2DMS(?:Array)?|[iu]?image2DRect|[iu]?imageBuffer|[iu]?imageCube|[iu]?imageCubeArray|[iu]?image[123]D|[iu]?image[12]DArray|if|in|inline|inout|input|int|interface|invariant|layout|long|lowp|mediump|namespace|noinline|noperspective|out|output|partition|patch|precise|precision|public|readonly|resource|restrict|return|sample|sampler[12]DArrayShadow|sampler[12]DShadow|sampler2DRectShadow|sampler3DRect|samplerCubeArrayShadow|samplerCubeShadow|shared|short|sizeof|smooth|static|struct|subroutine|superp|switch|template|this|true|typedef|uint|uniform|union|unsigned|using|varying|void|volatile|while|writeonly)\\b/\n  })\n}\n","'use strict'\n\nmodule.exports = gml\ngml.displayName = 'gml'\ngml.aliases = []\nfunction gml(Prism) {\n  Prism.languages.gamemakerlanguage = Prism.languages.gml =\n    Prism.languages.extend('clike', {\n      keyword:\n        /\\b(?:break|case|continue|default|do|else|enum|exit|for|globalvar|if|repeat|return|switch|until|var|while)\\b/,\n      number:\n        /(?:\\b0x[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ulf]{0,4}/i,\n      operator:\n        /--|\\+\\+|[-+%/=]=?|!=|\\*\\*?=?|<[<=>]?|>[=>]?|&&?|\\^\\^?|\\|\\|?|~|\\b(?:and|at|not|or|with|xor)\\b/,\n      constant:\n        /\\b(?:GM_build_date|GM_version|action_(?:continue|restart|reverse|stop)|all|gamespeed_(?:fps|microseconds)|global|local|noone|other|pi|pointer_(?:invalid|null)|self|timezone_(?:local|utc)|undefined|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|post|pre)|keypress|keyrelease|trigger|(?:left|middle|no|right)_button|(?:left|middle|right)_press|(?:left|middle|right)_release|mouse_(?:enter|leave|wheel_down|wheel_up)|global_(?:left|middle|right)_button|global_(?:left|middle|right)_press|global_(?:left|middle|right)_release|joystick(?:1|2)_(?:button1|button2|button3|button4|button5|button6|button7|button8|down|left|right|up)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\\d|gui|gui_begin|gui_end|step_(?:begin|end|normal))|vk_(?:alt|anykey|backspace|control|delete|down|end|enter|escape|home|insert|left|nokey|pagedown|pageup|pause|printscreen|return|right|shift|space|tab|up|f\\d|numpad\\d|add|decimal|divide|lalt|lcontrol|lshift|multiply|ralt|rcontrol|rshift|subtract)|achievement_(?:filter_(?:all_players|favorites_only|friends_only)|friends_info|info|leaderboard_info|our_info|pic_loaded|show_(?:achievement|bank|friend_picker|leaderboard|profile|purchase_prompt|ui)|type_challenge|type_score_challenge)|asset_(?:font|object|path|room|script|shader|sound|sprite|tiles|timeline|unknown)|audio_(?:3d|falloff_(?:exponent_distance|exponent_distance_clamped|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|none)|mono|new_system|old_system|stereo)|bm_(?:add|complex|dest_alpha|dest_color|dest_colour|inv_dest_alpha|inv_dest_color|inv_dest_colour|inv_src_alpha|inv_src_color|inv_src_colour|max|normal|one|src_alpha|src_alpha_sat|src_color|src_colour|subtract|zero)|browser_(?:chrome|firefox|ie|ie_mobile|not_a_browser|opera|safari|safari_mobile|tizen|unknown|windows_store)|buffer_(?:bool|f16|f32|f64|fast|fixed|generalerror|grow|invalidtype|network|outofbounds|outofspace|s16|s32|s8|seek_end|seek_relative|seek_start|string|text|u16|u32|u64|u8|vbuffer|wrap)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)|cmpfunc_(?:always|equal|greater|greaterequal|less|lessequal|never|notequal)|cr_(?:appstart|arrow|beam|cross|default|drag|handpoint|hourglass|none|size_all|size_nesw|size_ns|size_nwse|size_we|uparrow)|cull_(?:clockwise|counterclockwise|noculling)|device_(?:emulator|tablet)|device_ios_(?:ipad|ipad_retina|iphone|iphone5|iphone6|iphone6plus|iphone_retina|unknown)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|dll_(?:cdecl|cdel|stdcall)|ds_type_(?:grid|list|map|priority|queue|stack)|ef_(?:cloud|ellipse|explosion|firework|flare|rain|ring|smoke|smokeup|snow|spark|star)|fa_(?:archive|bottom|center|directory|hidden|left|middle|readonly|right|sysfile|top|volumeid)|fb_login_(?:default|fallback_to_webview|forcing_safari|forcing_webview|no_fallback_to_webview|use_system_account)|iap_(?:available|canceled|ev_consume|ev_product|ev_purchase|ev_restore|ev_storeload|failed|purchased|refunded|status_available|status_loading|status_processing|status_restoring|status_unavailable|status_uninitialised|storeload_failed|storeload_ok|unavailable)|leaderboard_type_(?:number|time_mins_secs)|lighttype_(?:dir|point)|matrix_(?:projection|view|world)|mb_(?:any|left|middle|none|right)|network_(?:config_(?:connect_timeout|disable_reliable_udp|enable_reliable_udp|use_non_blocking_socket)|socket_(?:bluetooth|tcp|udp)|type_(?:connect|data|disconnect|non_blocking_connect))|of_challenge_(?:lose|tie|win)|os_(?:android|ios|linux|macosx|ps3|ps4|psvita|unknown|uwp|win32|win8native|windows|winphone|xboxone)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|angle|angle_limits|damping_ratio|frequency|length_1|length_2|lower_angle_limit|max_force|max_length|max_motor_force|max_motor_torque|max_torque|motor_force|motor_speed|motor_torque|reaction_force_x|reaction_force_y|reaction_torque|speed|translation|upper_angle_limit)|phy_particle_data_flag_(?:category|color|colour|position|typeflags|velocity)|phy_particle_flag_(?:colormixing|colourmixing|elastic|powder|spring|tensile|viscous|wall|water|zombie)|phy_particle_group_flag_(?:rigid|solid)|pr_(?:linelist|linestrip|pointlist|trianglefan|trianglelist|trianglestrip)|ps_(?:distr|shape)_(?:diamond|ellipse|gaussian|invgaussian|line|linear|rectangle)|pt_shape_(?:circle|cloud|disk|explosion|flare|line|pixel|ring|smoke|snow|spark|sphere|square|star)|ty_(?:real|string)|gp_(?:face\\d|axislh|axislv|axisrh|axisrv|padd|padl|padr|padu|select|shoulderl|shoulderlb|shoulderr|shoulderrb|start|stickl|stickr)|lb_disp_(?:none|numeric|time_ms|time_sec)|lb_sort_(?:ascending|descending|none)|ov_(?:achievements|community|friends|gamegroup|players|settings)|ugc_(?:filetype_(?:community|microtrans)|list_(?:Favorited|Followed|Published|Subscribed|UsedOrPlayed|VotedDown|VotedOn|VotedUp|WillVoteLater)|match_(?:AllGuides|Artwork|Collections|ControllerBindings|IntegratedGuides|Items|Items_Mtx|Items_ReadyToUse|Screenshots|UsableInGame|Videos|WebGuides)|query_(?:AcceptedForGameRankedByAcceptanceDate|CreatedByFriendsRankedByPublicationDate|FavoritedByFriendsRankedByPublicationDate|NotYetRated)|query_RankedBy(?:NumTimesReported|PublicationDate|TextSearch|TotalVotesAsc|Trend|Vote|VotesUp)|result_success|sortorder_CreationOrder(?:Asc|Desc)|sortorder_(?:ForModeration|LastUpdatedDesc|SubscriptionDateDesc|TitleAsc|VoteScoreDesc)|visibility_(?:friends_only|private|public))|vertex_usage_(?:binormal|blendindices|blendweight|color|colour|depth|fog|normal|position|psize|sample|tangent|texcoord|textcoord)|vertex_type_(?:float\\d|color|colour|ubyte4)|input_type|layerelementtype_(?:background|instance|oldtilemap|particlesystem|sprite|tile|tilemap|undefined)|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|tile_(?:flip|index_mask|mirror|rotate)|(?:obj|rm|scr|spr)\\w+)\\b/,\n      variable:\n        /\\b(?:alarm|application_surface|async_load|background_(?:alpha|blend|color|colour|foreground|height|hspeed|htiled|index|showcolor|showcolour|visible|vspeed|vtiled|width|x|xscale|y|yscale)|bbox_(?:bottom|left|right|top)|browser_(?:height|width)|caption_(?:health|lives|score)|current_(?:day|hour|minute|month|second|time|weekday|year)|cursor_sprite|debug_mode|delta_time|direction|display_aa|error_(?:last|occurred)|event_(?:action|number|object|type)|fps|fps_real|friction|game_(?:display|project|save)_(?:id|name)|gamemaker_(?:pro|registered|version)|gravity|gravity_direction|(?:h|v)speed|health|iap_data|id|image_(?:alpha|angle|blend|depth|index|number|speed|xscale|yscale)|instance_(?:count|id)|keyboard_(?:key|lastchar|lastkey|string)|layer|lives|mask_index|mouse_(?:button|lastbutton|x|y)|object_index|os_(?:browser|device|type|version)|path_(?:endaction|index|orientation|position|positionprevious|scale|speed)|persistent|phy_(?:rotation|(?:col_normal|collision|com|linear_velocity|position|speed)_(?:x|y)|angular_(?:damping|velocity)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|pointer_(?:invalid|null)|room|room_(?:caption|first|height|last|persistent|speed|width)|score|secure_mode|show_(?:health|lives|score)|solid|speed|sprite_(?:height|index|width|xoffset|yoffset)|temp_directory|timeline_(?:index|loop|position|running|speed)|transition_(?:color|kind|steps)|undefined|view_(?:angle|current|enabled|(?:h|v)(?:border|speed)|(?:h|w|x|y)port|(?:h|w|x|y)view|object|surface_id|visible)|visible|webgl_enabled|working_directory|(?:x|y)(?:previous|start)|x|y|argument(?:_relitive|_count|\\d)|argument|global|local|other|self)\\b/\n    })\n}\n","'use strict'\n\nmodule.exports = gn\ngn.displayName = 'gn'\ngn.aliases = ['gni']\nfunction gn(Prism) {\n  // https://gn.googlesource.com/gn/+/refs/heads/main/docs/reference.md#grammar\n  Prism.languages.gn = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    'string-literal': {\n      pattern: /(^|[^\\\\\"])\"(?:[^\\r\\n\"\\\\]|\\\\.)*\"/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern:\n            /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\{[\\s\\S]*?\\}|[a-zA-Z_]\\w*|0x[a-fA-F0-9]{2})/,\n          lookbehind: true,\n          inside: {\n            number: /^\\$0x[\\s\\S]{2}$/,\n            variable: /^\\$\\w+$/,\n            'interpolation-punctuation': {\n              pattern: /^\\$\\{|\\}$/,\n              alias: 'punctuation'\n            },\n            expression: {\n              pattern: /[\\s\\S]+/,\n              inside: null // see below\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    },\n    keyword: /\\b(?:else|if)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    'builtin-function': {\n      // a few functions get special highlighting to improve readability\n      pattern:\n        /\\b(?:assert|defined|foreach|import|pool|print|template|tool|toolchain)(?=\\s*\\()/i,\n      alias: 'keyword'\n    },\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    constant:\n      /\\b(?:current_cpu|current_os|current_toolchain|default_toolchain|host_cpu|host_os|root_build_dir|root_gen_dir|root_out_dir|target_cpu|target_gen_dir|target_os|target_out_dir)\\b/,\n    number: /-?\\b\\d+\\b/,\n    operator: /[-+!=<>]=?|&&|\\|\\|/,\n    punctuation: /[(){}[\\],.]/\n  }\n  Prism.languages.gn['string-literal'].inside['interpolation'].inside[\n    'expression'\n  ].inside = Prism.languages.gn\n  Prism.languages.gni = Prism.languages.gn\n}\n","'use strict'\n\nmodule.exports = goModule\ngoModule.displayName = 'goModule'\ngoModule.aliases = []\nfunction goModule(Prism) {\n  // https://go.dev/ref/mod#go-mod-file-module\n  Prism.languages['go-mod'] = Prism.languages['go-module'] = {\n    comment: {\n      pattern: /\\/\\/.*/,\n      greedy: true\n    },\n    version: {\n      pattern: /(^|[\\s()[\\],])v\\d+\\.\\d+\\.\\d+(?:[+-][-+.\\w]*)?(?![^\\s()[\\],])/,\n      lookbehind: true,\n      alias: 'number'\n    },\n    'go-version': {\n      pattern: /((?:^|\\s)go\\s+)\\d+(?:\\.\\d+){1,2}/,\n      lookbehind: true,\n      alias: 'number'\n    },\n    keyword: {\n      pattern: /^([ \\t]*)(?:exclude|go|module|replace|require|retract)\\b/m,\n      lookbehind: true\n    },\n    operator: /=>/,\n    punctuation: /[()[\\],]/\n  }\n}\n","'use strict'\n\nmodule.exports = go\ngo.displayName = 'go'\ngo.aliases = []\nfunction go(Prism) {\n  Prism.languages.go = Prism.languages.extend('clike', {\n    string: {\n      pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`[^`]*`/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,\n    boolean: /\\b(?:_|false|iota|nil|true)\\b/,\n    number: [\n      // binary and octal integers\n      /\\b0(?:b[01_]+|o[0-7_]+)i?\\b/i, // hexadecimal integers and floats\n      /\\b0x(?:[a-f\\d_]+(?:\\.[a-f\\d_]*)?|\\.[a-f\\d_]+)(?:p[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i, // decimal integers and floats\n      /(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?[\\d_]+)?i?(?!\\w)/i\n    ],\n    operator:\n      /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,\n    builtin:\n      /\\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\\b/\n  })\n  Prism.languages.insertBefore('go', 'string', {\n    char: {\n      pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){0,10}'/,\n      greedy: true\n    }\n  })\n  delete Prism.languages.go['class-name']\n}\n","'use strict'\n\nmodule.exports = graphql\ngraphql.displayName = 'graphql'\ngraphql.aliases = []\nfunction graphql(Prism) {\n  Prism.languages.graphql = {\n    comment: /#.*/,\n    description: {\n      pattern:\n        /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i,\n      greedy: true,\n      alias: 'string',\n      inside: {\n        'language-markdown': {\n          pattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/,\n          lookbehind: true,\n          inside: Prism.languages.markdown\n        }\n      }\n    },\n    string: {\n      pattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n      greedy: true\n    },\n    number: /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n    boolean: /\\b(?:false|true)\\b/,\n    variable: /\\$[a-z_]\\w*/i,\n    directive: {\n      pattern: /@[a-z_]\\w*/i,\n      alias: 'function'\n    },\n    'attr-name': {\n      pattern: /\\b[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i,\n      greedy: true\n    },\n    'atom-input': {\n      pattern: /\\b[A-Z]\\w*Input\\b/,\n      alias: 'class-name'\n    },\n    scalar: /\\b(?:Boolean|Float|ID|Int|String)\\b/,\n    constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n    'class-name': {\n      pattern:\n        /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*|:\\s*|\\[)[A-Z_]\\w*/,\n      lookbehind: true\n    },\n    fragment: {\n      pattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/,\n      lookbehind: true,\n      alias: 'function'\n    },\n    'definition-mutation': {\n      pattern: /(\\bmutation\\s+)[a-zA-Z_]\\w*/,\n      lookbehind: true,\n      alias: 'function'\n    },\n    'definition-query': {\n      pattern: /(\\bquery\\s+)[a-zA-Z_]\\w*/,\n      lookbehind: true,\n      alias: 'function'\n    },\n    keyword:\n      /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/,\n    operator: /[!=|&]|\\.{3}/,\n    'property-query': /\\w+(?=\\s*\\()/,\n    object: /\\w+(?=\\s*\\{)/,\n    punctuation: /[!(){}\\[\\]:=,]/,\n    property: /\\w+/\n  }\n  Prism.hooks.add('after-tokenize', function afterTokenizeGraphql(env) {\n    if (env.language !== 'graphql') {\n      return\n    }\n    /**\n     * get the graphql token stream that we want to customize\n     *\n     * @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n     * @type {Token[]}\n     */\n    var validTokens = env.tokens.filter(function (token) {\n      return (\n        typeof token !== 'string' &&\n        token.type !== 'comment' &&\n        token.type !== 'scalar'\n      )\n    })\n    var currentIndex = 0\n    /**\n     * Returns whether the token relative to the current index has the given type.\n     *\n     * @param {number} offset\n     * @returns {Token | undefined}\n     */\n    function getToken(offset) {\n      return validTokens[currentIndex + offset]\n    }\n    /**\n     * Returns whether the token relative to the current index has the given type.\n     *\n     * @param {readonly string[]} types\n     * @param {number} [offset=0]\n     * @returns {boolean}\n     */\n    function isTokenType(types, offset) {\n      offset = offset || 0\n      for (var i = 0; i < types.length; i++) {\n        var token = getToken(i + offset)\n        if (!token || token.type !== types[i]) {\n          return false\n        }\n      }\n      return true\n    }\n    /**\n     * Returns the index of the closing bracket to an opening bracket.\n     *\n     * It is assumed that `token[currentIndex - 1]` is an opening bracket.\n     *\n     * If no closing bracket could be found, `-1` will be returned.\n     *\n     * @param {RegExp} open\n     * @param {RegExp} close\n     * @returns {number}\n     */\n    function findClosingBracket(open, close) {\n      var stackHeight = 1\n      for (var i = currentIndex; i < validTokens.length; i++) {\n        var token = validTokens[i]\n        var content = token.content\n        if (token.type === 'punctuation' && typeof content === 'string') {\n          if (open.test(content)) {\n            stackHeight++\n          } else if (close.test(content)) {\n            stackHeight--\n            if (stackHeight === 0) {\n              return i\n            }\n          }\n        }\n      }\n      return -1\n    }\n    /**\n     * Adds an alias to the given token.\n     *\n     * @param {Token} token\n     * @param {string} alias\n     * @returns {void}\n     */\n    function addAlias(token, alias) {\n      var aliases = token.alias\n      if (!aliases) {\n        token.alias = aliases = []\n      } else if (!Array.isArray(aliases)) {\n        token.alias = aliases = [aliases]\n      }\n      aliases.push(alias)\n    }\n    for (; currentIndex < validTokens.length; ) {\n      var startToken = validTokens[currentIndex++] // add special aliases for mutation tokens\n      if (startToken.type === 'keyword' && startToken.content === 'mutation') {\n        // any array of the names of all input variables (if any)\n        var inputVariables = []\n        if (\n          isTokenType(['definition-mutation', 'punctuation']) &&\n          getToken(1).content === '('\n        ) {\n          // definition\n          currentIndex += 2 // skip 'definition-mutation' and 'punctuation'\n          var definitionEnd = findClosingBracket(/^\\($/, /^\\)$/)\n          if (definitionEnd === -1) {\n            continue\n          } // find all input variables\n          for (; currentIndex < definitionEnd; currentIndex++) {\n            var t = getToken(0)\n            if (t.type === 'variable') {\n              addAlias(t, 'variable-input')\n              inputVariables.push(t.content)\n            }\n          }\n          currentIndex = definitionEnd + 1\n        }\n        if (\n          isTokenType(['punctuation', 'property-query']) &&\n          getToken(0).content === '{'\n        ) {\n          currentIndex++ // skip opening bracket\n          addAlias(getToken(0), 'property-mutation')\n          if (inputVariables.length > 0) {\n            var mutationEnd = findClosingBracket(/^\\{$/, /^\\}$/)\n            if (mutationEnd === -1) {\n              continue\n            } // give references to input variables a special alias\n            for (var i = currentIndex; i < mutationEnd; i++) {\n              var varToken = validTokens[i]\n              if (\n                varToken.type === 'variable' &&\n                inputVariables.indexOf(varToken.content) >= 0\n              ) {\n                addAlias(varToken, 'variable-input')\n              }\n            }\n          }\n        }\n      }\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = groovy\ngroovy.displayName = 'groovy'\ngroovy.aliases = []\nfunction groovy(Prism) {\n  Prism.languages.groovy = Prism.languages.extend('clike', {\n    string: [\n      {\n        // https://groovy-lang.org/syntax.html#_dollar_slashy_string\n        pattern:\n          /(\"\"\"|''')(?:[^\\\\]|\\\\[\\s\\S])*?\\1|\\$\\/(?:[^/$]|\\$(?:[/$]|(?![/$]))|\\/(?!\\$))*\\/\\$/,\n        greedy: true\n      },\n      {\n        // TODO: Slash strings (e.g. /foo/) can contain line breaks but this will cause a lot of trouble with\n        // simple division (see JS regex), so find a fix maybe?\n        pattern: /([\"'/])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n        greedy: true\n      }\n    ],\n    keyword:\n      /\\b(?:abstract|as|assert|boolean|break|byte|case|catch|char|class|const|continue|def|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|in|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\\b/,\n    number:\n      /\\b(?:0b[01_]+|0x[\\da-f_]+(?:\\.[\\da-f_p\\-]+)?|[\\d_]+(?:\\.[\\d_]+)?(?:e[+-]?\\d+)?)[glidf]?\\b/i,\n    operator: {\n      pattern:\n        /(^|[^.])(?:~|==?~?|\\?[.:]?|\\*(?:[.=]|\\*=?)?|\\.[@&]|\\.\\.<|\\.\\.(?!\\.)|-[-=>]?|\\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\\|[|=]?|\\/=?|\\^=?|%=?)/,\n      lookbehind: true\n    },\n    punctuation: /\\.+|[{}[\\];(),:$]/\n  })\n  Prism.languages.insertBefore('groovy', 'string', {\n    shebang: {\n      pattern: /#!.+/,\n      alias: 'comment'\n    }\n  })\n  Prism.languages.insertBefore('groovy', 'punctuation', {\n    'spock-block': /\\b(?:and|cleanup|expect|given|setup|then|when|where):/\n  })\n  Prism.languages.insertBefore('groovy', 'function', {\n    annotation: {\n      pattern: /(^|[^.])@\\w+/,\n      lookbehind: true,\n      alias: 'punctuation'\n    }\n  }) // Handle string interpolation\n  Prism.hooks.add('wrap', function (env) {\n    if (env.language === 'groovy' && env.type === 'string') {\n      var delimiter = env.content.value[0]\n      if (delimiter != \"'\") {\n        var pattern = /([^\\\\])(?:\\$(?:\\{.*?\\}|[\\w.]+))/\n        if (delimiter === '$') {\n          pattern = /([^\\$])(?:\\$(?:\\{.*?\\}|[\\w.]+))/\n        } // To prevent double HTML-encoding we have to decode env.content first\n        env.content.value = env.content.value\n          .replace(/&lt;/g, '<')\n          .replace(/&amp;/g, '&')\n        env.content = Prism.highlight(env.content.value, {\n          expression: {\n            pattern: pattern,\n            lookbehind: true,\n            inside: Prism.languages.groovy\n          }\n        })\n        env.classes.push(delimiter === '/' ? 'regex' : 'gstring')\n      }\n    }\n  })\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nmodule.exports = haml\nhaml.displayName = 'haml'\nhaml.aliases = []\nfunction haml(Prism) {\n  Prism.register(refractorRuby)\n  /* TODO\nHandle multiline code after tag\n%foo= some |\nmultiline |\ncode |\n*/\n  ;(function (Prism) {\n    Prism.languages.haml = {\n      // Multiline stuff should appear before the rest\n      'multiline-comment': {\n        pattern:\n          /((?:^|\\r?\\n|\\r)([\\t ]*))(?:\\/|-#).*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)*/,\n        lookbehind: true,\n        alias: 'comment'\n      },\n      'multiline-code': [\n        {\n          pattern:\n            /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*,[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*,[\\t ]*)*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)/,\n          lookbehind: true,\n          inside: Prism.languages.ruby\n        },\n        {\n          pattern:\n            /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*\\|[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*\\|[\\t ]*)*/,\n          lookbehind: true,\n          inside: Prism.languages.ruby\n        }\n      ],\n      // See at the end of the file for known filters\n      filter: {\n        pattern:\n          /((?:^|\\r?\\n|\\r)([\\t ]*)):[\\w-]+(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/,\n        lookbehind: true,\n        inside: {\n          'filter-name': {\n            pattern: /^:[\\w-]+/,\n            alias: 'symbol'\n          }\n        }\n      },\n      markup: {\n        pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)<.+/,\n        lookbehind: true,\n        inside: Prism.languages.markup\n      },\n      doctype: {\n        pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)!!!(?: .+)?/,\n        lookbehind: true\n      },\n      tag: {\n        // Allows for one nested group of braces\n        pattern:\n          /((?:^|\\r?\\n|\\r)[\\t ]*)[%.#][\\w\\-#.]*[\\w\\-](?:\\([^)]+\\)|\\{(?:\\{[^}]+\\}|[^{}])+\\}|\\[[^\\]]+\\])*[\\/<>]*/,\n        lookbehind: true,\n        inside: {\n          attributes: [\n            {\n              // Lookbehind tries to prevent interpolations from breaking it all\n              // Allows for one nested group of braces\n              pattern: /(^|[^#])\\{(?:\\{[^}]+\\}|[^{}])+\\}/,\n              lookbehind: true,\n              inside: Prism.languages.ruby\n            },\n            {\n              pattern: /\\([^)]+\\)/,\n              inside: {\n                'attr-value': {\n                  pattern: /(=\\s*)(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|[^)\\s]+)/,\n                  lookbehind: true\n                },\n                'attr-name': /[\\w:-]+(?=\\s*!?=|\\s*[,)])/,\n                punctuation: /[=(),]/\n              }\n            },\n            {\n              pattern: /\\[[^\\]]+\\]/,\n              inside: Prism.languages.ruby\n            }\n          ],\n          punctuation: /[<>]/\n        }\n      },\n      code: {\n        pattern: /((?:^|\\r?\\n|\\r)[\\t ]*(?:[~-]|[&!]?=)).+/,\n        lookbehind: true,\n        inside: Prism.languages.ruby\n      },\n      // Interpolations in plain text\n      interpolation: {\n        pattern: /#\\{[^}]+\\}/,\n        inside: {\n          delimiter: {\n            pattern: /^#\\{|\\}$/,\n            alias: 'punctuation'\n          },\n          ruby: {\n            pattern: /[\\s\\S]+/,\n            inside: Prism.languages.ruby\n          }\n        }\n      },\n      punctuation: {\n        pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)[~=\\-&!]+/,\n        lookbehind: true\n      }\n    }\n    var filter_pattern =\n      '((?:^|\\\\r?\\\\n|\\\\r)([\\\\t ]*)):{{filter_name}}(?:(?:\\\\r?\\\\n|\\\\r)(?:\\\\2[\\\\t ].+|\\\\s*?(?=\\\\r?\\\\n|\\\\r)))+' // Non exhaustive list of available filters and associated languages\n    var filters = [\n      'css',\n      {\n        filter: 'coffee',\n        language: 'coffeescript'\n      },\n      'erb',\n      'javascript',\n      'less',\n      'markdown',\n      'ruby',\n      'scss',\n      'textile'\n    ]\n    var all_filters = {}\n    for (var i = 0, l = filters.length; i < l; i++) {\n      var filter = filters[i]\n      filter =\n        typeof filter === 'string'\n          ? {\n              filter: filter,\n              language: filter\n            }\n          : filter\n      if (Prism.languages[filter.language]) {\n        all_filters['filter-' + filter.filter] = {\n          pattern: RegExp(\n            filter_pattern.replace('{{filter_name}}', function () {\n              return filter.filter\n            })\n          ),\n          lookbehind: true,\n          inside: {\n            'filter-name': {\n              pattern: /^:[\\w-]+/,\n              alias: 'symbol'\n            },\n            text: {\n              pattern: /[\\s\\S]+/,\n              alias: [filter.language, 'language-' + filter.language],\n              inside: Prism.languages[filter.language]\n            }\n          }\n        }\n      }\n    }\n    Prism.languages.insertBefore('haml', 'filter', all_filters)\n  })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = handlebars\nhandlebars.displayName = 'handlebars'\nhandlebars.aliases = ['hbs']\nfunction handlebars(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    Prism.languages.handlebars = {\n      comment: /\\{\\{![\\s\\S]*?\\}\\}/,\n      delimiter: {\n        pattern: /^\\{\\{\\{?|\\}\\}\\}?$/,\n        alias: 'punctuation'\n      },\n      string: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,\n      boolean: /\\b(?:false|true)\\b/,\n      block: {\n        pattern: /^(\\s*(?:~\\s*)?)[#\\/]\\S+?(?=\\s*(?:~\\s*)?$|\\s)/,\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      brackets: {\n        pattern: /\\[[^\\]]+\\]/,\n        inside: {\n          punctuation: /\\[|\\]/,\n          variable: /[\\s\\S]+/\n        }\n      },\n      punctuation: /[!\"#%&':()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]/,\n      variable: /[^!\"#%&'()*+,\\/;<=>@\\[\\\\\\]^`{|}~\\s]+/\n    }\n    Prism.hooks.add('before-tokenize', function (env) {\n      var handlebarsPattern = /\\{\\{\\{[\\s\\S]+?\\}\\}\\}|\\{\\{[\\s\\S]+?\\}\\}/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'handlebars',\n        handlebarsPattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(\n        env,\n        'handlebars'\n      )\n    })\n    Prism.languages.hbs = Prism.languages.handlebars\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = haskell\nhaskell.displayName = 'haskell'\nhaskell.aliases = ['hs']\nfunction haskell(Prism) {\n  Prism.languages.haskell = {\n    comment: {\n      pattern:\n        /(^|[^-!#$%*+=?&@|~.:<>^\\\\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\\\\/].*|$)|\\{-[\\s\\S]*?-\\})/m,\n      lookbehind: true\n    },\n    char: {\n      pattern:\n        /'(?:[^\\\\']|\\\\(?:[abfnrtv\\\\\"'&]|\\^[A-Z@[\\]^_]|ACK|BEL|BS|CAN|CR|DC1|DC2|DC3|DC4|DEL|DLE|EM|ENQ|EOT|ESC|ETB|ETX|FF|FS|GS|HT|LF|NAK|NUL|RS|SI|SO|SOH|SP|STX|SUB|SYN|US|VT|\\d+|o[0-7]+|x[0-9a-fA-F]+))'/,\n      alias: 'string'\n    },\n    string: {\n      pattern: /\"(?:[^\\\\\"]|\\\\(?:\\S|\\s+\\\\))*\"/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b/,\n    'import-statement': {\n      // The imported or hidden names are not included in this import\n      // statement. This is because we want to highlight those exactly like\n      // we do for the names in the program.\n      pattern:\n        /(^[\\t ]*)import\\s+(?:qualified\\s+)?(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n      lookbehind: true,\n      inside: {\n        keyword: /\\b(?:as|hiding|import|qualified)\\b/,\n        punctuation: /\\./\n      }\n    },\n    // These are builtin variables only. Constructors are highlighted later as a constant.\n    builtin:\n      /\\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\b/,\n    // decimal integers and floating point numbers | octal integers | hexadecimal integers\n    number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0o[0-7]+|0x[0-9a-f]+)\\b/i,\n    operator: [\n      {\n        // infix operator\n        pattern: /`(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*`/,\n        greedy: true\n      },\n      {\n        // function composition\n        pattern: /(\\s)\\.(?=\\s)/,\n        lookbehind: true\n      }, // Most of this is needed because of the meaning of a single '.'.\n      // If it stands alone freely, it is the function composition.\n      // It may also be a separator between a module name and an identifier => no\n      // operator. If it comes together with other special characters it is an\n      // operator too.\n      //\n      // This regex means: /[-!#$%*+=?&@|~.:<>^\\\\\\/]+/ without /\\./.\n      /[-!#$%*+=?&@|~:<>^\\\\\\/][-!#$%*+=?&@|~.:<>^\\\\\\/]*|\\.[-!#$%*+=?&@|~.:<>^\\\\\\/]+/\n    ],\n    // In Haskell, nearly everything is a variable, do not highlight these.\n    hvariable: {\n      pattern: /\\b(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*/,\n      inside: {\n        punctuation: /\\./\n      }\n    },\n    constant: {\n      pattern: /\\b(?:[A-Z][\\w']*\\.)*[A-Z][\\w']*/,\n      inside: {\n        punctuation: /\\./\n      }\n    },\n    punctuation: /[{}[\\];(),.:]/\n  }\n  Prism.languages.hs = Prism.languages.haskell\n}\n","'use strict'\n\nmodule.exports = haxe\nhaxe.displayName = 'haxe'\nhaxe.aliases = []\nfunction haxe(Prism) {\n  Prism.languages.haxe = Prism.languages.extend('clike', {\n    string: {\n      // Strings can be multi-line\n      pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n      greedy: true\n    },\n    'class-name': [\n      {\n        pattern:\n          /(\\b(?:abstract|class|enum|extends|implements|interface|new|typedef)\\s+)[A-Z_]\\w*/,\n        lookbehind: true\n      }, // based on naming convention\n      /\\b[A-Z]\\w*/\n    ],\n    // The final look-ahead prevents highlighting of keywords if expressions such as \"haxe.macro.Expr\"\n    keyword:\n      /\\bthis\\b|\\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|final|for|from|function|if|implements|import|in|inline|interface|macro|new|null|operator|overload|override|package|private|public|return|static|super|switch|throw|to|try|typedef|untyped|using|var|while)(?!\\.)\\b/,\n    function: {\n      pattern: /\\b[a-z_]\\w*(?=\\s*(?:<[^<>]*>\\s*)?\\()/i,\n      greedy: true\n    },\n    operator: /\\.{3}|\\+\\+|--|&&|\\|\\||->|=>|(?:<<?|>{1,3}|[-+*/%!=&|^])=?|[?:~]/\n  })\n  Prism.languages.insertBefore('haxe', 'string', {\n    'string-interpolation': {\n      pattern: /'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /(^|[^\\\\])\\$(?:\\w+|\\{[^{}]+\\})/,\n          lookbehind: true,\n          inside: {\n            'interpolation-punctuation': {\n              pattern: /^\\$\\{?|\\}$/,\n              alias: 'punctuation'\n            },\n            expression: {\n              pattern: /[\\s\\S]+/,\n              inside: Prism.languages.haxe\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n  })\n  Prism.languages.insertBefore('haxe', 'class-name', {\n    regex: {\n      pattern: /~\\/(?:[^\\/\\\\\\r\\n]|\\\\.)+\\/[a-z]*/,\n      greedy: true,\n      inside: {\n        'regex-flags': /\\b[a-z]+$/,\n        'regex-source': {\n          pattern: /^(~\\/)[\\s\\S]+(?=\\/$)/,\n          lookbehind: true,\n          alias: 'language-regex',\n          inside: Prism.languages.regex\n        },\n        'regex-delimiter': /^~\\/|\\/$/\n      }\n    }\n  })\n  Prism.languages.insertBefore('haxe', 'keyword', {\n    preprocessor: {\n      pattern: /#(?:else|elseif|end|if)\\b.*/,\n      alias: 'property'\n    },\n    metadata: {\n      pattern: /@:?[\\w.]+/,\n      alias: 'symbol'\n    },\n    reification: {\n      pattern: /\\$(?:\\w+|(?=\\{))/,\n      alias: 'important'\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = hcl\nhcl.displayName = 'hcl'\nhcl.aliases = []\nfunction hcl(Prism) {\n  Prism.languages.hcl = {\n    comment: /(?:\\/\\/|#).*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n    heredoc: {\n      pattern: /<<-?(\\w+\\b)[\\s\\S]*?^[ \\t]*\\1/m,\n      greedy: true,\n      alias: 'string'\n    },\n    keyword: [\n      {\n        pattern:\n          /(?:data|resource)\\s+(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")(?=\\s+\"[\\w-]+\"\\s+\\{)/i,\n        inside: {\n          type: {\n            pattern: /(resource|data|\\s+)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")/i,\n            lookbehind: true,\n            alias: 'variable'\n          }\n        }\n      },\n      {\n        pattern:\n          /(?:backend|module|output|provider|provisioner|variable)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+(?=\\{)/i,\n        inside: {\n          type: {\n            pattern:\n              /(backend|module|output|provider|provisioner|variable)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+/i,\n            lookbehind: true,\n            alias: 'variable'\n          }\n        }\n      },\n      /[\\w-]+(?=\\s+\\{)/\n    ],\n    property: [/[-\\w\\.]+(?=\\s*=(?!=))/, /\"(?:\\\\[\\s\\S]|[^\\\\\"])+\"(?=\\s*[:=])/],\n    string: {\n      pattern:\n        /\"(?:[^\\\\$\"]|\\\\[\\s\\S]|\\$(?:(?=\")|\\$+(?!\\$)|[^\"${])|\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\})*\"/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /(^|[^$])\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\}/,\n          lookbehind: true,\n          inside: {\n            type: {\n              pattern:\n                /(\\b(?:count|data|local|module|path|self|terraform|var)\\b\\.)[\\w\\*]+/i,\n              lookbehind: true,\n              alias: 'variable'\n            },\n            keyword: /\\b(?:count|data|local|module|path|self|terraform|var)\\b/i,\n            function: /\\w+(?=\\()/,\n            string: {\n              pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n              greedy: true\n            },\n            number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n            punctuation: /[!\\$#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~?:]/\n          }\n        }\n      }\n    },\n    number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    punctuation: /[=\\[\\]{}]/\n  }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = hlsl\nhlsl.displayName = 'hlsl'\nhlsl.aliases = []\nfunction hlsl(Prism) {\n  Prism.register(refractorC)\n  Prism.languages.hlsl = Prism.languages.extend('c', {\n    // Regarding keywords and class names:\n    // The list of all keywords was split into 'keyword' and 'class-name' tokens based on whether they are capitalized.\n    // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-keywords\n    // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-reserved-words\n    'class-name': [\n      Prism.languages.c['class-name'],\n      /\\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|RasterizerState|RenderTargetView|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\\b/\n    ],\n    keyword: [\n      // HLSL keyword\n      /\\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\\b/, // scalar, vector, and matrix types\n      /\\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\\b/\n    ],\n    // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-grammar#floating-point-numbers\n    number:\n      /(?:(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?|\\b0x[\\da-fA-F]+)[fFhHlLuU]?\\b/,\n    boolean: /\\b(?:false|true)\\b/\n  })\n}\n","'use strict'\n\nmodule.exports = hoon\nhoon.displayName = 'hoon'\nhoon.aliases = []\nfunction hoon(Prism) {\n  Prism.languages.hoon = {\n    comment: {\n      pattern: /::.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"[^\"]*\"|'[^']*'/,\n      greedy: true\n    },\n    constant: /%(?:\\.[ny]|[\\w-]+)/,\n    'class-name': /@(?:[a-z0-9-]*[a-z0-9])?|\\*/i,\n    function: /(?:\\+[-+] {2})?(?:[a-z](?:[a-z0-9-]*[a-z0-9])?)/,\n    keyword:\n      /\\.[\\^\\+\\*=\\?]|![><:\\.=\\?!]|=[>|:,\\.\\-\\^<+;/~\\*\\?]|\\?[>|:\\.\\-\\^<\\+&~=@!]|\\|[\\$_%:\\.\\-\\^~\\*=@\\?]|\\+[|\\$\\+\\*]|:[_\\-\\^\\+~\\*]|%[_:\\.\\-\\^\\+~\\*=]|\\^[|:\\.\\-\\+&~\\*=\\?]|\\$[|_%:<>\\-\\^&~@=\\?]|;[:<\\+;\\/~\\*=]|~[>|\\$_%<\\+\\/&=\\?!]|--|==/\n  }\n}\n","'use strict'\n\nmodule.exports = hpkp\nhpkp.displayName = 'hpkp'\nhpkp.aliases = []\nfunction hpkp(Prism) {\n  /**\n   * Original by Scott Helme.\n   *\n   * Reference: https://scotthelme.co.uk/hpkp-cheat-sheet/\n   */\n  Prism.languages.hpkp = {\n    directive: {\n      pattern:\n        /\\b(?:includeSubDomains|max-age|pin-sha256|preload|report-to|report-uri|strict)(?=[\\s;=]|$)/i,\n      alias: 'property'\n    },\n    operator: /=/,\n    punctuation: /;/\n  }\n}\n","'use strict'\n\nmodule.exports = hsts\nhsts.displayName = 'hsts'\nhsts.aliases = []\nfunction hsts(Prism) {\n  /**\n   * Original by Scott Helme.\n   *\n   * Reference: https://scotthelme.co.uk/hsts-cheat-sheet/\n   */\n  Prism.languages.hsts = {\n    directive: {\n      pattern: /\\b(?:includeSubDomains|max-age|preload)(?=[\\s;=]|$)/i,\n      alias: 'property'\n    },\n    operator: /=/,\n    punctuation: /;/\n  }\n}\n","'use strict'\n\nmodule.exports = http\nhttp.displayName = 'http'\nhttp.aliases = []\nfunction http(Prism) {\n  ;(function (Prism) {\n    /**\n     * @param {string} name\n     * @returns {RegExp}\n     */\n    function headerValueOf(name) {\n      return RegExp('(^(?:' + name + '):[ \\t]*(?![ \\t]))[^]+', 'i')\n    }\n    Prism.languages.http = {\n      'request-line': {\n        pattern:\n          /^(?:CONNECT|DELETE|GET|HEAD|OPTIONS|PATCH|POST|PRI|PUT|SEARCH|TRACE)\\s(?:https?:\\/\\/|\\/)\\S*\\sHTTP\\/[\\d.]+/m,\n        inside: {\n          // HTTP Method\n          method: {\n            pattern: /^[A-Z]+\\b/,\n            alias: 'property'\n          },\n          // Request Target e.g. http://example.com, /path/to/file\n          'request-target': {\n            pattern: /^(\\s)(?:https?:\\/\\/|\\/)\\S*(?=\\s)/,\n            lookbehind: true,\n            alias: 'url',\n            inside: Prism.languages.uri\n          },\n          // HTTP Version\n          'http-version': {\n            pattern: /^(\\s)HTTP\\/[\\d.]+/,\n            lookbehind: true,\n            alias: 'property'\n          }\n        }\n      },\n      'response-status': {\n        pattern: /^HTTP\\/[\\d.]+ \\d+ .+/m,\n        inside: {\n          // HTTP Version\n          'http-version': {\n            pattern: /^HTTP\\/[\\d.]+/,\n            alias: 'property'\n          },\n          // Status Code\n          'status-code': {\n            pattern: /^(\\s)\\d+(?=\\s)/,\n            lookbehind: true,\n            alias: 'number'\n          },\n          // Reason Phrase\n          'reason-phrase': {\n            pattern: /^(\\s).+/,\n            lookbehind: true,\n            alias: 'string'\n          }\n        }\n      },\n      header: {\n        pattern: /^[\\w-]+:.+(?:(?:\\r\\n?|\\n)[ \\t].+)*/m,\n        inside: {\n          'header-value': [\n            {\n              pattern: headerValueOf(/Content-Security-Policy/.source),\n              lookbehind: true,\n              alias: ['csp', 'languages-csp'],\n              inside: Prism.languages.csp\n            },\n            {\n              pattern: headerValueOf(/Public-Key-Pins(?:-Report-Only)?/.source),\n              lookbehind: true,\n              alias: ['hpkp', 'languages-hpkp'],\n              inside: Prism.languages.hpkp\n            },\n            {\n              pattern: headerValueOf(/Strict-Transport-Security/.source),\n              lookbehind: true,\n              alias: ['hsts', 'languages-hsts'],\n              inside: Prism.languages.hsts\n            },\n            {\n              pattern: headerValueOf(/[^:]+/.source),\n              lookbehind: true\n            }\n          ],\n          'header-name': {\n            pattern: /^[^:]+/,\n            alias: 'keyword'\n          },\n          punctuation: /^:/\n        }\n      }\n    } // Create a mapping of Content-Type headers to language definitions\n    var langs = Prism.languages\n    var httpLanguages = {\n      'application/javascript': langs.javascript,\n      'application/json': langs.json || langs.javascript,\n      'application/xml': langs.xml,\n      'text/xml': langs.xml,\n      'text/html': langs.html,\n      'text/css': langs.css,\n      'text/plain': langs.plain\n    } // Declare which types can also be suffixes\n    var suffixTypes = {\n      'application/json': true,\n      'application/xml': true\n    }\n    /**\n     * Returns a pattern for the given content type which matches it and any type which has it as a suffix.\n     *\n     * @param {string} contentType\n     * @returns {string}\n     */\n    function getSuffixPattern(contentType) {\n      var suffix = contentType.replace(/^[a-z]+\\//, '')\n      var suffixPattern = '\\\\w+/(?:[\\\\w.-]+\\\\+)+' + suffix + '(?![+\\\\w.-])'\n      return '(?:' + contentType + '|' + suffixPattern + ')'\n    } // Insert each content type parser that has its associated language\n    // currently loaded.\n    var options\n    for (var contentType in httpLanguages) {\n      if (httpLanguages[contentType]) {\n        options = options || {}\n        var pattern = suffixTypes[contentType]\n          ? getSuffixPattern(contentType)\n          : contentType\n        options[contentType.replace(/\\//g, '-')] = {\n          pattern: RegExp(\n            '(' +\n              /content-type:\\s*/.source +\n              pattern +\n              /(?:(?:\\r\\n?|\\n)[\\w-].*)*(?:\\r(?:\\n|(?!\\n))|\\n)/.source +\n              ')' + // This is a little interesting:\n              // The HTTP format spec required 1 empty line before the body to make everything unambiguous.\n              // However, when writing code by hand (e.g. to display on a website) people can forget about this,\n              // so we want to be liberal here. We will allow the empty line to be omitted if the first line of\n              // the body does not start with a [\\w-] character (as headers do).\n              /[^ \\t\\w-][\\s\\S]*/.source,\n            'i'\n          ),\n          lookbehind: true,\n          inside: httpLanguages[contentType]\n        }\n      }\n    }\n    if (options) {\n      Prism.languages.insertBefore('http', 'header', options)\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = ichigojam\nichigojam.displayName = 'ichigojam'\nichigojam.aliases = []\nfunction ichigojam(Prism) {\n  // according to the offical reference (EN)\n  // https://ichigojam.net/IchigoJam-en.html\n  Prism.languages.ichigojam = {\n    comment: /(?:\\B'|REM)(?:[^\\n\\r]*)/i,\n    string: {\n      pattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^\\w +\\-.])*\"/,\n      greedy: true\n    },\n    number: /\\B#[0-9A-F]+|\\B`[01]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n    keyword:\n      /\\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GOTO|GSB|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RIGHT|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\\$|\\b)/i,\n    function:\n      /\\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\\$|\\b)/i,\n    label: /(?:\\B@\\S+)/,\n    operator: /<[=>]?|>=?|\\|\\||&&|[+\\-*\\/=|&^~!]|\\b(?:AND|NOT|OR)\\b/i,\n    punctuation: /[\\[,;:()\\]]/\n  }\n}\n","'use strict'\n\nmodule.exports = icon\nicon.displayName = 'icon'\nicon.aliases = []\nfunction icon(Prism) {\n  Prism.languages.icon = {\n    comment: /#.*/,\n    string: {\n      pattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n_]|\\\\.|_(?!\\1)(?:\\r\\n|[\\s\\S]))*\\1/,\n      greedy: true\n    },\n    number: /\\b(?:\\d+r[a-z\\d]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b|\\.\\d+\\b/i,\n    'builtin-keyword': {\n      pattern:\n        /&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\\b/,\n      alias: 'variable'\n    },\n    directive: {\n      pattern: /\\$\\w+/,\n      alias: 'builtin'\n    },\n    keyword:\n      /\\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\\b/,\n    function: /\\b(?!\\d)\\w+(?=\\s*[({]|\\s*!\\s*\\[)/,\n    operator:\n      /[+-]:(?!=)|(?:[\\/?@^%&]|\\+\\+?|--?|==?=?|~==?=?|\\*\\*?|\\|\\|\\|?|<(?:->?|<?=?)|>>?=?)(?::=)?|:(?:=:?)?|[!.\\\\|~]/,\n    punctuation: /[\\[\\](){},;]/\n  }\n}\n","'use strict'\n\nmodule.exports = icuMessageFormat\nicuMessageFormat.displayName = 'icuMessageFormat'\nicuMessageFormat.aliases = []\nfunction icuMessageFormat(Prism) {\n  // https://unicode-org.github.io/icu/userguide/format_parse/messages/\n  // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/MessageFormat.html\n  ;(function (Prism) {\n    /**\n     * @param {string} source\n     * @param {number} level\n     * @returns {string}\n     */\n    function nested(source, level) {\n      if (level <= 0) {\n        return /[]/.source\n      } else {\n        return source.replace(/<SELF>/g, function () {\n          return nested(source, level - 1)\n        })\n      }\n    }\n    var stringPattern = /'[{}:=,](?:[^']|'')*'(?!')/\n    var escape = {\n      pattern: /''/,\n      greedy: true,\n      alias: 'operator'\n    }\n    var string = {\n      pattern: stringPattern,\n      greedy: true,\n      inside: {\n        escape: escape\n      }\n    }\n    var argumentSource = nested(\n      /\\{(?:[^{}']|'(?![{},'])|''|<STR>|<SELF>)*\\}/.source.replace(\n        /<STR>/g,\n        function () {\n          return stringPattern.source\n        }\n      ),\n      8\n    )\n    var nestedMessage = {\n      pattern: RegExp(argumentSource),\n      inside: {\n        message: {\n          pattern: /^(\\{)[\\s\\S]+(?=\\}$)/,\n          lookbehind: true,\n          inside: null // see below\n        },\n        'message-delimiter': {\n          pattern: /./,\n          alias: 'punctuation'\n        }\n      }\n    }\n    Prism.languages['icu-message-format'] = {\n      argument: {\n        pattern: RegExp(argumentSource),\n        greedy: true,\n        inside: {\n          content: {\n            pattern: /^(\\{)[\\s\\S]+(?=\\}$)/,\n            lookbehind: true,\n            inside: {\n              'argument-name': {\n                pattern: /^(\\s*)[^{}:=,\\s]+/,\n                lookbehind: true\n              },\n              'choice-style': {\n                // https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classicu_1_1ChoiceFormat.html#details\n                pattern: /^(\\s*,\\s*choice\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n                lookbehind: true,\n                inside: {\n                  punctuation: /\\|/,\n                  range: {\n                    pattern: /^(\\s*)[+-]?(?:\\d+(?:\\.\\d*)?|\\u221e)\\s*[<#\\u2264]/,\n                    lookbehind: true,\n                    inside: {\n                      operator: /[<#\\u2264]/,\n                      number: /\\S+/\n                    }\n                  },\n                  rest: null // see below\n                }\n              },\n              'plural-style': {\n                // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/PluralFormat.html#:~:text=Patterns%20and%20Their%20Interpretation\n                pattern:\n                  /^(\\s*,\\s*(?:plural|selectordinal)\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n                lookbehind: true,\n                inside: {\n                  offset: /^offset:\\s*\\d+/,\n                  'nested-message': nestedMessage,\n                  selector: {\n                    pattern: /=\\d+|[^{}:=,\\s]+/,\n                    inside: {\n                      keyword: /^(?:few|many|one|other|two|zero)$/\n                    }\n                  }\n                }\n              },\n              'select-style': {\n                // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/SelectFormat.html#:~:text=Patterns%20and%20Their%20Interpretation\n                pattern: /^(\\s*,\\s*select\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n                lookbehind: true,\n                inside: {\n                  'nested-message': nestedMessage,\n                  selector: {\n                    pattern: /[^{}:=,\\s]+/,\n                    inside: {\n                      keyword: /^other$/\n                    }\n                  }\n                }\n              },\n              keyword: /\\b(?:choice|plural|select|selectordinal)\\b/,\n              'arg-type': {\n                pattern: /\\b(?:date|duration|number|ordinal|spellout|time)\\b/,\n                alias: 'keyword'\n              },\n              'arg-skeleton': {\n                pattern: /(,\\s*)::[^{}:=,\\s]+/,\n                lookbehind: true\n              },\n              'arg-style': {\n                pattern:\n                  /(,\\s*)(?:currency|full|integer|long|medium|percent|short)(?=\\s*$)/,\n                lookbehind: true\n              },\n              'arg-style-text': {\n                pattern: RegExp(\n                  /(^\\s*,\\s*(?=\\S))/.source +\n                    nested(/(?:[^{}']|'[^']*'|\\{(?:<SELF>)?\\})+/.source, 8) +\n                    '$'\n                ),\n                lookbehind: true,\n                alias: 'string'\n              },\n              punctuation: /,/\n            }\n          },\n          'argument-delimiter': {\n            pattern: /./,\n            alias: 'operator'\n          }\n        }\n      },\n      escape: escape,\n      string: string\n    }\n    nestedMessage.inside.message.inside = Prism.languages['icu-message-format']\n    Prism.languages['icu-message-format'].argument.inside.content.inside[\n      'choice-style'\n    ].inside.rest = Prism.languages['icu-message-format']\n  })(Prism)\n}\n","'use strict'\nvar refractorHaskell = require('./haskell.js')\nmodule.exports = idris\nidris.displayName = 'idris'\nidris.aliases = ['idr']\nfunction idris(Prism) {\n  Prism.register(refractorHaskell)\n  Prism.languages.idris = Prism.languages.extend('haskell', {\n    comment: {\n      pattern: /(?:(?:--|\\|\\|\\|).*$|\\{-[\\s\\S]*?-\\})/m\n    },\n    keyword:\n      /\\b(?:Type|case|class|codata|constructor|corecord|data|do|dsl|else|export|if|implementation|implicit|import|impossible|in|infix|infixl|infixr|instance|interface|let|module|mutual|namespace|of|parameters|partial|postulate|private|proof|public|quoteGoal|record|rewrite|syntax|then|total|using|where|with)\\b/,\n    builtin: undefined\n  })\n  Prism.languages.insertBefore('idris', 'keyword', {\n    'import-statement': {\n      pattern: /(^\\s*import\\s+)(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*/m,\n      lookbehind: true,\n      inside: {\n        punctuation: /\\./\n      }\n    }\n  })\n  Prism.languages.idr = Prism.languages.idris\n}\n","'use strict'\n\nmodule.exports = iecst\niecst.displayName = 'iecst'\niecst.aliases = []\nfunction iecst(Prism) {\n  Prism.languages.iecst = {\n    comment: [\n      {\n        pattern:\n          /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\(\\*[\\s\\S]*?(?:\\*\\)|$)|\\{[\\s\\S]*?(?:\\}|$))/,\n        lookbehind: true,\n        greedy: true\n      },\n      {\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    keyword: [\n      /\\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:ACCESS|CONFIG|EXTERNAL|GLOBAL|INPUT|IN_OUT|OUTPUT|TEMP)|VAR|METHOD|PROPERTY)\\b/i,\n      /\\b(?:AT|BY|(?:END_)?(?:CASE|FOR|IF|REPEAT|WHILE)|CONSTANT|CONTINUE|DO|ELSE|ELSIF|EXIT|EXTENDS|FROM|GET|GOTO|IMPLEMENTS|JMP|NON_RETAIN|OF|PRIVATE|PROTECTED|PUBLIC|RETAIN|RETURN|SET|TASK|THEN|TO|UNTIL|USING|WITH|__CATCH|__ENDTRY|__FINALLY|__TRY)\\b/\n    ],\n    'class-name':\n      /\\b(?:ANY|ARRAY|BOOL|BYTE|U?(?:D|L|S)?INT|(?:D|L)?WORD|DATE(?:_AND_TIME)?|DT|L?REAL|POINTER|STRING|TIME(?:_OF_DAY)?|TOD)\\b/,\n    address: {\n      pattern: /%[IQM][XBWDL][\\d.]*|%[IQ][\\d.]*/,\n      alias: 'symbol'\n    },\n    number:\n      /\\b(?:16#[\\da-f]+|2#[01_]+|0x[\\da-f]+)\\b|\\b(?:D|DT|T|TOD)#[\\d_shmd:]*|\\b[A-Z]*#[\\d.,_]*|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n    boolean: /\\b(?:FALSE|NULL|TRUE)\\b/,\n    operator:\n      /S?R?:?=>?|&&?|\\*\\*?|<[=>]?|>=?|[-:^/+#]|\\b(?:AND|EQ|EXPT|GE|GT|LE|LT|MOD|NE|NOT|OR|XOR)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    punctuation: /[()[\\].,;]/\n  }\n}\n","'use strict'\n\nmodule.exports = ignore\nignore.displayName = 'ignore'\nignore.aliases = ['gitignore', 'hgignore', 'npmignore']\nfunction ignore(Prism) {\n  ;(function (Prism) {\n    Prism.languages.ignore = {\n      // https://git-scm.com/docs/gitignore\n      comment: /^#.*/m,\n      entry: {\n        pattern: /\\S(?:.*(?:(?:\\\\ )|\\S))?/,\n        alias: 'string',\n        inside: {\n          operator: /^!|\\*\\*?|\\?/,\n          regex: {\n            pattern: /(^|[^\\\\])\\[[^\\[\\]]*\\]/,\n            lookbehind: true\n          },\n          punctuation: /\\//\n        }\n      }\n    }\n    Prism.languages.gitignore = Prism.languages.ignore\n    Prism.languages.hgignore = Prism.languages.ignore\n    Prism.languages.npmignore = Prism.languages.ignore\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = inform7\ninform7.displayName = 'inform7'\ninform7.aliases = []\nfunction inform7(Prism) {\n  Prism.languages.inform7 = {\n    string: {\n      pattern: /\"[^\"]*\"/,\n      inside: {\n        substitution: {\n          pattern: /\\[[^\\[\\]]+\\]/,\n          inside: {\n            delimiter: {\n              pattern: /\\[|\\]/,\n              alias: 'punctuation'\n            } // See rest below\n          }\n        }\n      }\n    },\n    comment: {\n      pattern: /\\[[^\\[\\]]+\\]/,\n      greedy: true\n    },\n    title: {\n      pattern: /^[ \\t]*(?:book|chapter|part(?! of)|section|table|volume)\\b.+/im,\n      alias: 'important'\n    },\n    number: {\n      pattern:\n        /(^|[^-])(?:\\b\\d+(?:\\.\\d+)?(?:\\^\\d+)?(?:(?!\\d)\\w+)?|\\b(?:eight|eleven|five|four|nine|one|seven|six|ten|three|twelve|two))\\b(?!-)/i,\n      lookbehind: true\n    },\n    verb: {\n      pattern:\n        /(^|[^-])\\b(?:answering|applying to|are|asking|attacking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:ing|s)?|consulting|contain(?:ing|s)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:s|ve|ving)|hold(?:ing|s)?|impl(?:ies|y)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:ing|s)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:ing|s)?|setting|showing|singing|sleeping|smelling|squeezing|support(?:ing|s)?|swearing|switching|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:ing|s)?|var(?:ies|y|ying)|waiting|waking|waving|wear(?:ing|s)?)\\b(?!-)/i,\n      lookbehind: true,\n      alias: 'operator'\n    },\n    keyword: {\n      pattern:\n        /(^|[^-])\\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|the story|unless)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\\b(?!-)/i,\n      lookbehind: true\n    },\n    property: {\n      pattern:\n        /(^|[^-])\\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: off| on)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\\b(?!-)/i,\n      lookbehind: true,\n      alias: 'symbol'\n    },\n    position: {\n      pattern:\n        /(^|[^-])\\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\\b(?!-)/i,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    type: {\n      pattern:\n        /(^|[^-])\\b(?:actions?|activit(?:ies|y)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\\b(?!-)/i,\n      lookbehind: true,\n      alias: 'variable'\n    },\n    punctuation: /[.,:;(){}]/\n  }\n  Prism.languages.inform7['string'].inside['substitution'].inside.rest =\n    Prism.languages.inform7 // We don't want the remaining text in the substitution to be highlighted as the string.\n  Prism.languages.inform7['string'].inside['substitution'].inside.rest.text = {\n    pattern: /\\S(?:\\s*\\S)*/,\n    alias: 'comment'\n  }\n}\n","'use strict'\n\nmodule.exports = ini\nini.displayName = 'ini'\nini.aliases = []\nfunction ini(Prism) {\n  Prism.languages.ini = {\n    /**\n     * The component mimics the behavior of the Win32 API parser.\n     *\n     * @see {@link https://github.com/PrismJS/prism/issues/2775#issuecomment-787477723}\n     */\n    comment: {\n      pattern: /(^[ \\f\\t\\v]*)[#;][^\\n\\r]*/m,\n      lookbehind: true\n    },\n    section: {\n      pattern: /(^[ \\f\\t\\v]*)\\[[^\\n\\r\\]]*\\]?/m,\n      lookbehind: true,\n      inside: {\n        'section-name': {\n          pattern: /(^\\[[ \\f\\t\\v]*)[^ \\f\\t\\v\\]]+(?:[ \\f\\t\\v]+[^ \\f\\t\\v\\]]+)*/,\n          lookbehind: true,\n          alias: 'selector'\n        },\n        punctuation: /\\[|\\]/\n      }\n    },\n    key: {\n      pattern:\n        /(^[ \\f\\t\\v]*)[^ \\f\\n\\r\\t\\v=]+(?:[ \\f\\t\\v]+[^ \\f\\n\\r\\t\\v=]+)*(?=[ \\f\\t\\v]*=)/m,\n      lookbehind: true,\n      alias: 'attr-name'\n    },\n    value: {\n      pattern: /(=[ \\f\\t\\v]*)[^ \\f\\n\\r\\t\\v]+(?:[ \\f\\t\\v]+[^ \\f\\n\\r\\t\\v]+)*/,\n      lookbehind: true,\n      alias: 'attr-value',\n      inside: {\n        'inner-value': {\n          pattern: /^(\"|').+(?=\\1$)/,\n          lookbehind: true\n        }\n      }\n    },\n    punctuation: /=/\n  }\n}\n","'use strict'\n\nmodule.exports = io\nio.displayName = 'io'\nio.aliases = []\nfunction io(Prism) {\n  Prism.languages.io = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\/\\/.*|#.*)/,\n      lookbehind: true,\n      greedy: true\n    },\n    'triple-quoted-string': {\n      pattern: /\"\"\"(?:\\\\[\\s\\S]|(?!\"\"\")[^\\\\])*\"\"\"/,\n      greedy: true,\n      alias: 'string'\n    },\n    string: {\n      pattern: /\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:activate|activeCoroCount|asString|block|break|call|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getEnvironmentVariable|getSlot|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|try|type|uniqueId|updateSlot|wait|while|write|yield)\\b/,\n    builtin:\n      /\\b(?:Array|AudioDevice|AudioMixer|BigNum|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Random|Regex|SGML|SGMLElement|SGMLParser|SQLite|Sequence|Server|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink)\\b/,\n    boolean: /\\b(?:false|nil|true)\\b/,\n    number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?/i,\n    operator:\n      /[=!*/%+\\-^&|]=|>>?=?|<<?=?|:?:?=|\\+\\+?|--?|\\*\\*?|\\/\\/?|%|\\|\\|?|&&?|\\b(?:and|not|or|return)\\b|@@?|\\?\\??|\\.\\./,\n    punctuation: /[{}[\\];(),.:]/\n  }\n}\n","'use strict'\n\nmodule.exports = j\nj.displayName = 'j'\nj.aliases = []\nfunction j(Prism) {\n  Prism.languages.j = {\n    comment: {\n      pattern: /\\bNB\\..*/,\n      greedy: true\n    },\n    string: {\n      pattern: /'(?:''|[^'\\r\\n])*'/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:(?:CR|LF|adverb|conjunction|def|define|dyad|monad|noun|verb)\\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\\w+|goto_\\w+|if|label_\\w+|return|select|throw|try|while|whilst)\\.)/,\n    verb: {\n      // Negative look-ahead prevents bad highlighting\n      // of ^: ;. =. =: !. !:\n      pattern:\n        /(?!\\^:|;\\.|[=!][.:])(?:\\{(?:\\.|::?)?|p(?:\\.\\.?|:)|[=!\\]]|[<>+*\\-%$|,#][.:]?|[?^]\\.?|[;\\[]:?|[~}\"i][.:]|[ACeEIjLor]\\.|(?:[_\\/\\\\qsux]|_?\\d):)/,\n      alias: 'keyword'\n    },\n    number:\n      /\\b_?(?:(?!\\d:)\\d+(?:\\.\\d+)?(?:(?:ad|ar|[ejpx])_?\\d+(?:\\.\\d+)?)*(?:b_?[\\da-z]+(?:\\.[\\da-z]+)?)?|_\\b(?!\\.))/,\n    adverb: {\n      pattern: /[~}]|[\\/\\\\]\\.?|[bfM]\\.|t[.:]/,\n      alias: 'builtin'\n    },\n    operator: /[=a][.:]|_\\./,\n    conjunction: {\n      pattern: /&(?:\\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\\.|`:?|[\\^LS]:|\"/,\n      alias: 'variable'\n    },\n    punctuation: /[()]/\n  }\n}\n","'use strict'\n\nmodule.exports = java\njava.displayName = 'java'\njava.aliases = []\nfunction java(Prism) {\n  ;(function (Prism) {\n    var keywords =\n      /\\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\\b/ // full package (optional) + parent classes (optional)\n    var classNamePrefix = /(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/\n      .source // based on the java naming conventions\n    var className = {\n      pattern: RegExp(classNamePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n      lookbehind: true,\n      inside: {\n        namespace: {\n          pattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n          inside: {\n            punctuation: /\\./\n          }\n        },\n        punctuation: /\\./\n      }\n    }\n    Prism.languages.java = Prism.languages.extend('clike', {\n      string: {\n        pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n        lookbehind: true,\n        greedy: true\n      },\n      'class-name': [\n        className,\n        {\n          // variables and parameters\n          // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n          pattern: RegExp(\n            classNamePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()])/.source\n          ),\n          lookbehind: true,\n          inside: className.inside\n        }\n      ],\n      keyword: keywords,\n      function: [\n        Prism.languages.clike.function,\n        {\n          pattern: /(::\\s*)[a-z_]\\w*/,\n          lookbehind: true\n        }\n      ],\n      number:\n        /\\b0b[01][01_]*L?\\b|\\b0x(?:\\.[\\da-f_p+-]+|[\\da-f_]+(?:\\.[\\da-f_p+-]+)?)\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfl]?/i,\n      operator: {\n        pattern:\n          /(^|[^.])(?:<<=?|>>>?=?|->|--|\\+\\+|&&|\\|\\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,\n        lookbehind: true\n      }\n    })\n    Prism.languages.insertBefore('java', 'string', {\n      'triple-quoted-string': {\n        // http://openjdk.java.net/jeps/355#Description\n        pattern: /\"\"\"[ \\t]*[\\r\\n](?:(?:\"|\"\")?(?:\\\\.|[^\"\\\\]))*\"\"\"/,\n        greedy: true,\n        alias: 'string'\n      },\n      char: {\n        pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){1,6}'/,\n        greedy: true\n      }\n    })\n    Prism.languages.insertBefore('java', 'class-name', {\n      annotation: {\n        pattern: /(^|[^.])@\\w+(?:\\s*\\.\\s*\\w+)*/,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      generics: {\n        pattern:\n          /<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&))*>)*>)*>)*>/,\n        inside: {\n          'class-name': className,\n          keyword: keywords,\n          punctuation: /[<>(),.:]/,\n          operator: /[?&|]/\n        }\n      },\n      namespace: {\n        pattern: RegExp(\n          /(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?/.source.replace(\n            /<keyword>/g,\n            function () {\n              return keywords.source\n            }\n          )\n        ),\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      }\n    })\n  })(Prism)\n}\n","'use strict'\nvar refractorJava = require('./java.js')\nvar refractorJavadoclike = require('./javadoclike.js')\nmodule.exports = javadoc\njavadoc.displayName = 'javadoc'\njavadoc.aliases = []\nfunction javadoc(Prism) {\n  Prism.register(refractorJava)\n  Prism.register(refractorJavadoclike)\n  ;(function (Prism) {\n    var codeLinePattern = /(^(?:[\\t ]*(?:\\*\\s*)*))[^*\\s].*$/m\n    var memberReference = /#\\s*\\w+(?:\\s*\\([^()]*\\))?/.source\n    var reference =\n      /(?:\\b[a-zA-Z]\\w+\\s*\\.\\s*)*\\b[A-Z]\\w*(?:\\s*<mem>)?|<mem>/.source.replace(\n        /<mem>/g,\n        function () {\n          return memberReference\n        }\n      )\n    Prism.languages.javadoc = Prism.languages.extend('javadoclike', {})\n    Prism.languages.insertBefore('javadoc', 'keyword', {\n      reference: {\n        pattern: RegExp(\n          /(@(?:exception|link|linkplain|see|throws|value)\\s+(?:\\*\\s*)?)/\n            .source +\n            '(?:' +\n            reference +\n            ')'\n        ),\n        lookbehind: true,\n        inside: {\n          function: {\n            pattern: /(#\\s*)\\w+(?=\\s*\\()/,\n            lookbehind: true\n          },\n          field: {\n            pattern: /(#\\s*)\\w+/,\n            lookbehind: true\n          },\n          namespace: {\n            pattern: /\\b(?:[a-z]\\w*\\s*\\.\\s*)+/,\n            inside: {\n              punctuation: /\\./\n            }\n          },\n          'class-name': /\\b[A-Z]\\w*/,\n          keyword: Prism.languages.java.keyword,\n          punctuation: /[#()[\\],.]/\n        }\n      },\n      'class-name': {\n        // @param <T> the first generic type parameter\n        pattern: /(@param\\s+)<[A-Z]\\w*>/,\n        lookbehind: true,\n        inside: {\n          punctuation: /[.<>]/\n        }\n      },\n      'code-section': [\n        {\n          pattern:\n            /(\\{@code\\s+(?!\\s))(?:[^\\s{}]|\\s+(?![\\s}])|\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\})+(?=\\s*\\})/,\n          lookbehind: true,\n          inside: {\n            code: {\n              // there can't be any HTML inside of {@code} tags\n              pattern: codeLinePattern,\n              lookbehind: true,\n              inside: Prism.languages.java,\n              alias: 'language-java'\n            }\n          }\n        },\n        {\n          pattern:\n            /(<(code|pre|tt)>(?!<code>)\\s*)\\S(?:\\S|\\s+\\S)*?(?=\\s*<\\/\\2>)/,\n          lookbehind: true,\n          inside: {\n            line: {\n              pattern: codeLinePattern,\n              lookbehind: true,\n              inside: {\n                // highlight HTML tags and entities\n                tag: Prism.languages.markup.tag,\n                entity: Prism.languages.markup.entity,\n                code: {\n                  // everything else is Java code\n                  pattern: /.+/,\n                  inside: Prism.languages.java,\n                  alias: 'language-java'\n                }\n              }\n            }\n          }\n        }\n      ],\n      tag: Prism.languages.markup.tag,\n      entity: Prism.languages.markup.entity\n    })\n    Prism.languages.javadoclike.addSupport('java', Prism.languages.javadoc)\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = javadoclike\njavadoclike.displayName = 'javadoclike'\njavadoclike.aliases = []\nfunction javadoclike(Prism) {\n  ;(function (Prism) {\n    var javaDocLike = (Prism.languages.javadoclike = {\n      parameter: {\n        pattern:\n          /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*@(?:arg|arguments|param)\\s+)\\w+/m,\n        lookbehind: true\n      },\n      keyword: {\n        // keywords are the first word in a line preceded be an `@` or surrounded by curly braces.\n        // @word, {@word}\n        pattern: /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*|\\{)@[a-z][a-zA-Z-]+\\b/m,\n        lookbehind: true\n      },\n      punctuation: /[{}]/\n    })\n    /**\n     * Adds doc comment support to the given language and calls a given callback on each doc comment pattern.\n     *\n     * @param {string} lang the language add doc comment support to.\n     * @param {(pattern: {inside: {rest: undefined}}) => void} callback the function called with each doc comment pattern as argument.\n     */\n    function docCommentSupport(lang, callback) {\n      var tokenName = 'doc-comment'\n      var grammar = Prism.languages[lang]\n      if (!grammar) {\n        return\n      }\n      var token = grammar[tokenName]\n      if (!token) {\n        // add doc comment: /** */\n        var definition = {}\n        definition[tokenName] = {\n          pattern: /(^|[^\\\\])\\/\\*\\*[^/][\\s\\S]*?(?:\\*\\/|$)/,\n          lookbehind: true,\n          alias: 'comment'\n        }\n        grammar = Prism.languages.insertBefore(lang, 'comment', definition)\n        token = grammar[tokenName]\n      }\n      if (token instanceof RegExp) {\n        // convert regex to object\n        token = grammar[tokenName] = {\n          pattern: token\n        }\n      }\n      if (Array.isArray(token)) {\n        for (var i = 0, l = token.length; i < l; i++) {\n          if (token[i] instanceof RegExp) {\n            token[i] = {\n              pattern: token[i]\n            }\n          }\n          callback(token[i])\n        }\n      } else {\n        callback(token)\n      }\n    }\n    /**\n     * Adds doc-comment support to the given languages for the given documentation language.\n     *\n     * @param {string[]|string} languages\n     * @param {Object} docLanguage\n     */\n    function addSupport(languages, docLanguage) {\n      if (typeof languages === 'string') {\n        languages = [languages]\n      }\n      languages.forEach(function (lang) {\n        docCommentSupport(lang, function (pattern) {\n          if (!pattern.inside) {\n            pattern.inside = {}\n          }\n          pattern.inside.rest = docLanguage\n        })\n      })\n    }\n    Object.defineProperty(javaDocLike, 'addSupport', {\n      value: addSupport\n    })\n    javaDocLike.addSupport(['java', 'javascript', 'php'], javaDocLike)\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = javascript\njavascript.displayName = 'javascript'\njavascript.aliases = ['js']\nfunction javascript(Prism) {\n  Prism.languages.javascript = Prism.languages.extend('clike', {\n    'class-name': [\n      Prism.languages.clike['class-name'],\n      {\n        pattern:\n          /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n        lookbehind: true\n      }\n    ],\n    keyword: [\n      {\n        pattern: /((?:^|\\})\\s*)catch\\b/,\n        lookbehind: true\n      },\n      {\n        pattern:\n          /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n        lookbehind: true\n      }\n    ],\n    // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n    function:\n      /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n    number: {\n      pattern: RegExp(\n        /(^|[^\\w$])/.source +\n          '(?:' + // constant\n          (/NaN|Infinity/.source +\n            '|' + // binary integer\n            /0[bB][01]+(?:_[01]+)*n?/.source +\n            '|' + // octal integer\n            /0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n            '|' + // hexadecimal integer\n            /0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n            '|' + // decimal bigint\n            /\\d+(?:_\\d+)*n/.source +\n            '|' + // decimal number (integer or float) but no bigint\n            /(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/\n              .source) +\n          ')' +\n          /(?![\\w$])/.source\n      ),\n      lookbehind: true\n    },\n    operator:\n      /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n  })\n  Prism.languages.javascript['class-name'][0].pattern =\n    /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/\n  Prism.languages.insertBefore('javascript', 'keyword', {\n    regex: {\n      // eslint-disable-next-line regexp/no-dupe-characters-character-class\n      pattern:\n        /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        'regex-source': {\n          pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n          lookbehind: true,\n          alias: 'language-regex',\n          inside: Prism.languages.regex\n        },\n        'regex-delimiter': /^\\/|\\/$/,\n        'regex-flags': /^[a-z]+$/\n      }\n    },\n    // This must be declared before keyword because we use \"function\" inside the look-forward\n    'function-variable': {\n      pattern:\n        /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n      alias: 'function'\n    },\n    parameter: [\n      {\n        pattern:\n          /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      {\n        pattern:\n          /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      {\n        pattern:\n          /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      {\n        pattern:\n          /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      }\n    ],\n    constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n  })\n  Prism.languages.insertBefore('javascript', 'string', {\n    hashbang: {\n      pattern: /^#!.*/,\n      greedy: true,\n      alias: 'comment'\n    },\n    'template-string': {\n      pattern:\n        /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n      greedy: true,\n      inside: {\n        'template-punctuation': {\n          pattern: /^`|`$/,\n          alias: 'string'\n        },\n        interpolation: {\n          pattern:\n            /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n          lookbehind: true,\n          inside: {\n            'interpolation-punctuation': {\n              pattern: /^\\$\\{|\\}$/,\n              alias: 'punctuation'\n            },\n            rest: Prism.languages.javascript\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    },\n    'string-property': {\n      pattern:\n        /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property'\n    }\n  })\n  Prism.languages.insertBefore('javascript', 'operator', {\n    'literal-property': {\n      pattern:\n        /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n      lookbehind: true,\n      alias: 'property'\n    }\n  })\n  if (Prism.languages.markup) {\n    Prism.languages.markup.tag.addInlined('script', 'javascript') // add attribute support for all DOM events.\n    // https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n    Prism.languages.markup.tag.addAttribute(\n      /on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/\n        .source,\n      'javascript'\n    )\n  }\n  Prism.languages.js = Prism.languages.javascript\n}\n","'use strict'\n\nmodule.exports = javastacktrace\njavastacktrace.displayName = 'javastacktrace'\njavastacktrace.aliases = []\nfunction javastacktrace(Prism) {\n  // Specification:\n  // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/Throwable.html#printStackTrace()\n  Prism.languages.javastacktrace = {\n    // java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n    // Caused by: java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n    // Caused by: com.example.myproject.MyProjectServletException\n    // Caused by: MidLevelException: LowLevelException\n    // Suppressed: Resource$CloseFailException: Resource ID = 0\n    summary: {\n      pattern:\n        /^([\\t ]*)(?:(?:Caused by:|Suppressed:|Exception in thread \"[^\"]*\")[\\t ]+)?[\\w$.]+(?::.*)?$/m,\n      lookbehind: true,\n      inside: {\n        keyword: {\n          pattern:\n            /^([\\t ]*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,\n          lookbehind: true\n        },\n        // the current thread if the summary starts with 'Exception in thread'\n        string: {\n          pattern: /^(\\s*)\"[^\"]*\"/,\n          lookbehind: true\n        },\n        exceptions: {\n          pattern: /^(:?\\s*)[\\w$.]+(?=:|$)/,\n          lookbehind: true,\n          inside: {\n            'class-name': /[\\w$]+$/,\n            namespace: /\\b[a-z]\\w*\\b/,\n            punctuation: /\\./\n          }\n        },\n        message: {\n          pattern: /(:\\s*)\\S.*/,\n          lookbehind: true,\n          alias: 'string'\n        },\n        punctuation: /:/\n      }\n    },\n    // at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)\n    // at org.hsqldb.jdbc.Util.throwError(Unknown Source) here could be some notes\n    // at java.base/java.lang.Class.forName0(Native Method)\n    // at Util.<init>(Unknown Source)\n    // at com.foo.loader/foo@9.0/com.foo.Main.run(Main.java:101)\n    // at com.foo.loader//com.foo.bar.App.run(App.java:12)\n    // at acme@2.1/org.acme.Lib.test(Lib.java:80)\n    // at MyClass.mash(MyClass.java:9)\n    //\n    // More information:\n    // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/StackTraceElement.html#toString()\n    //\n    // A valid Java module name is defined as:\n    //   \"A module name consists of one or more Java identifiers (§3.8) separated by \".\" tokens.\"\n    // https://docs.oracle.com/javase/specs/jls/se9/html/jls-6.html#jls-ModuleName\n    //\n    // A Java module version is defined by this class:\n    // https://docs.oracle.com/javase/9/docs/api/java/lang/module/ModuleDescriptor.Version.html\n    // This is the implementation of the `parse` method in JDK13:\n    // https://github.com/matcdac/jdk/blob/2305df71d1b7710266ae0956d73927a225132c0f/src/java.base/share/classes/java/lang/module/ModuleDescriptor.java#L1108\n    // However, to keep this simple, a version will be matched by the pattern /@[\\w$.+-]*/.\n    'stack-frame': {\n      pattern: /^([\\t ]*)at (?:[\\w$./]|@[\\w$.+-]*\\/)+(?:<init>)?\\([^()]*\\)/m,\n      lookbehind: true,\n      inside: {\n        keyword: {\n          pattern: /^(\\s*)at(?= )/,\n          lookbehind: true\n        },\n        source: [\n          // (Main.java:15)\n          // (Main.scala:15)\n          {\n            pattern: /(\\()\\w+\\.\\w+:\\d+(?=\\))/,\n            lookbehind: true,\n            inside: {\n              file: /^\\w+\\.\\w+/,\n              punctuation: /:/,\n              'line-number': {\n                pattern: /\\b\\d+\\b/,\n                alias: 'number'\n              }\n            }\n          }, // (Unknown Source)\n          // (Native Method)\n          // (...something...)\n          {\n            pattern: /(\\()[^()]*(?=\\))/,\n            lookbehind: true,\n            inside: {\n              keyword: /^(?:Native Method|Unknown Source)$/\n            }\n          }\n        ],\n        'class-name': /[\\w$]+(?=\\.(?:<init>|[\\w$]+)\\()/,\n        function: /(?:<init>|[\\w$]+)(?=\\()/,\n        'class-loader': {\n          pattern: /(\\s)[a-z]\\w*(?:\\.[a-z]\\w*)*(?=\\/[\\w@$.]*\\/)/,\n          lookbehind: true,\n          alias: 'namespace',\n          inside: {\n            punctuation: /\\./\n          }\n        },\n        module: {\n          pattern: /([\\s/])[a-z]\\w*(?:\\.[a-z]\\w*)*(?:@[\\w$.+-]*)?(?=\\/)/,\n          lookbehind: true,\n          inside: {\n            version: {\n              pattern: /(@)[\\s\\S]+/,\n              lookbehind: true,\n              alias: 'number'\n            },\n            punctuation: /[@.]/\n          }\n        },\n        namespace: {\n          pattern: /(?:\\b[a-z]\\w*\\.)+/,\n          inside: {\n            punctuation: /\\./\n          }\n        },\n        punctuation: /[()/.]/\n      }\n    },\n    // ... 32 more\n    // ... 32 common frames omitted\n    more: {\n      pattern: /^([\\t ]*)\\.{3} \\d+ [a-z]+(?: [a-z]+)*/m,\n      lookbehind: true,\n      inside: {\n        punctuation: /\\.{3}/,\n        number: /\\d+/,\n        keyword: /\\b[a-z]+(?: [a-z]+)*\\b/\n      }\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = jexl\njexl.displayName = 'jexl'\njexl.aliases = []\nfunction jexl(Prism) {\n  Prism.languages.jexl = {\n    string: /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n    transform: {\n      pattern:\n        /(\\|\\s*)[a-zA-Zа-яА-Я_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$][\\wа-яА-Я\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$]*/,\n      alias: 'function',\n      lookbehind: true\n    },\n    function:\n      /[a-zA-Zа-яА-Я_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$][\\wа-яА-Я\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$]*\\s*(?=\\()/,\n    number: /\\b\\d+(?:\\.\\d+)?\\b|\\B\\.\\d+\\b/,\n    operator: /[<>!]=?|-|\\+|&&|==|\\|\\|?|\\/\\/?|[?:*^%]/,\n    boolean: /\\b(?:false|true)\\b/,\n    keyword: /\\bin\\b/,\n    punctuation: /[{}[\\](),.]/\n  }\n}\n","'use strict'\n\nmodule.exports = jolie\njolie.displayName = 'jolie'\njolie.aliases = []\nfunction jolie(Prism) {\n  Prism.languages.jolie = Prism.languages.extend('clike', {\n    string: {\n      pattern: /(^|[^\\\\])\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,\n      lookbehind: true,\n      greedy: true\n    },\n    'class-name': {\n      pattern:\n        /((?:\\b(?:as|courier|embed|in|inputPort|outputPort|service)\\b|@)[ \\t]*)\\w+/,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:as|cH|comp|concurrent|constants|courier|cset|csets|default|define|else|embed|embedded|execution|exit|extender|for|foreach|forward|from|global|if|import|in|include|init|inputPort|install|instanceof|interface|is_defined|linkIn|linkOut|main|new|nullProcess|outputPort|over|private|provide|public|scope|sequential|service|single|spawn|synchronized|this|throw|throws|type|undef|until|while|with)\\b/,\n    function: /\\b[a-z_]\\w*(?=[ \\t]*[@(])/i,\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?l?/i,\n    operator: /-[-=>]?|\\+[+=]?|<[<=]?|[>=*!]=?|&&|\\|\\||[?\\/%^@|]/,\n    punctuation: /[()[\\]{},;.:]/,\n    builtin:\n      /\\b(?:Byte|any|bool|char|double|enum|float|int|length|long|ranges|regex|string|undefined|void)\\b/\n  })\n  Prism.languages.insertBefore('jolie', 'keyword', {\n    aggregates: {\n      pattern:\n        /(\\bAggregates\\s*:\\s*)(?:\\w+(?:\\s+with\\s+\\w+)?\\s*,\\s*)*\\w+(?:\\s+with\\s+\\w+)?/,\n      lookbehind: true,\n      inside: {\n        keyword: /\\bwith\\b/,\n        'class-name': /\\w+/,\n        punctuation: /,/\n      }\n    },\n    redirects: {\n      pattern:\n        /(\\bRedirects\\s*:\\s*)(?:\\w+\\s*=>\\s*\\w+\\s*,\\s*)*(?:\\w+\\s*=>\\s*\\w+)/,\n      lookbehind: true,\n      inside: {\n        punctuation: /,/,\n        'class-name': /\\w+/,\n        operator: /=>/\n      }\n    },\n    property: {\n      pattern:\n        /\\b(?:Aggregates|[Ii]nterfaces|Java|Javascript|Jolie|[Ll]ocation|OneWay|[Pp]rotocol|Redirects|RequestResponse)\\b(?=[ \\t]*:)/\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = jq\njq.displayName = 'jq'\njq.aliases = []\nfunction jq(Prism) {\n  ;(function (Prism) {\n    var interpolation = /\\\\\\((?:[^()]|\\([^()]*\\))*\\)/.source\n    var string = RegExp(\n      /(^|[^\\\\])\"(?:[^\"\\r\\n\\\\]|\\\\[^\\r\\n(]|__)*\"/.source.replace(\n        /__/g,\n        function () {\n          return interpolation\n        }\n      )\n    )\n    var stringInterpolation = {\n      interpolation: {\n        pattern: RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + interpolation),\n        lookbehind: true,\n        inside: {\n          content: {\n            pattern: /^(\\\\\\()[\\s\\S]+(?=\\)$)/,\n            lookbehind: true,\n            inside: null // see below\n          },\n          punctuation: /^\\\\\\(|\\)$/\n        }\n      }\n    }\n    var jq = (Prism.languages.jq = {\n      comment: /#.*/,\n      property: {\n        pattern: RegExp(string.source + /(?=\\s*:(?!:))/.source),\n        lookbehind: true,\n        greedy: true,\n        inside: stringInterpolation\n      },\n      string: {\n        pattern: string,\n        lookbehind: true,\n        greedy: true,\n        inside: stringInterpolation\n      },\n      function: {\n        pattern: /(\\bdef\\s+)[a-z_]\\w+/i,\n        lookbehind: true\n      },\n      variable: /\\B\\$\\w+/,\n      'property-literal': {\n        pattern: /\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n        alias: 'property'\n      },\n      keyword:\n        /\\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      number: /(?:\\b\\d+\\.|\\B\\.)?\\b\\d+(?:[eE][+-]?\\d+)?\\b/,\n      operator: [\n        {\n          pattern: /\\|=?/,\n          alias: 'pipe'\n        },\n        /\\.\\.|[!=<>]?=|\\?\\/\\/|\\/\\/=?|[-+*/%]=?|[<>?]|\\b(?:and|not|or)\\b/\n      ],\n      'c-style-function': {\n        pattern: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n        alias: 'function'\n      },\n      punctuation: /::|[()\\[\\]{},:;]|\\.(?=\\s*[\\[\\w$])/,\n      dot: {\n        pattern: /\\./,\n        alias: 'important'\n      }\n    })\n    stringInterpolation.interpolation.inside.content.inside = jq\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = jsExtras\njsExtras.displayName = 'jsExtras'\njsExtras.aliases = []\nfunction jsExtras(Prism) {\n  ;(function (Prism) {\n    Prism.languages.insertBefore('javascript', 'function-variable', {\n      'method-variable': {\n        pattern: RegExp(\n          '(\\\\.\\\\s*)' +\n            Prism.languages.javascript['function-variable'].pattern.source\n        ),\n        lookbehind: true,\n        alias: ['function-variable', 'method', 'function', 'property-access']\n      }\n    })\n    Prism.languages.insertBefore('javascript', 'function', {\n      method: {\n        pattern: RegExp(\n          '(\\\\.\\\\s*)' + Prism.languages.javascript['function'].source\n        ),\n        lookbehind: true,\n        alias: ['function', 'property-access']\n      }\n    })\n    Prism.languages.insertBefore('javascript', 'constant', {\n      'known-class-name': [\n        {\n          // standard built-ins\n          // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\n          pattern:\n            /\\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\\b/,\n          alias: 'class-name'\n        },\n        {\n          // errors\n          pattern: /\\b(?:[A-Z]\\w*)Error\\b/,\n          alias: 'class-name'\n        }\n      ]\n    })\n    /**\n     * Replaces the `<ID>` placeholder in the given pattern with a pattern for general JS identifiers.\n     *\n     * @param {string} source\n     * @param {string} [flags]\n     * @returns {RegExp}\n     */\n    function withId(source, flags) {\n      return RegExp(\n        source.replace(/<ID>/g, function () {\n          return /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/.source\n        }),\n        flags\n      )\n    }\n    Prism.languages.insertBefore('javascript', 'keyword', {\n      imports: {\n        // https://tc39.es/ecma262/#sec-imports\n        pattern: withId(\n          /(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)/\n            .source\n        ),\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      exports: {\n        // https://tc39.es/ecma262/#sec-exports\n        pattern: withId(\n          /(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})/\n            .source\n        ),\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      }\n    })\n    Prism.languages.javascript['keyword'].unshift(\n      {\n        pattern: /\\b(?:as|default|export|from|import)\\b/,\n        alias: 'module'\n      },\n      {\n        pattern:\n          /\\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\\b/,\n        alias: 'control-flow'\n      },\n      {\n        pattern: /\\bnull\\b/,\n        alias: ['null', 'nil']\n      },\n      {\n        pattern: /\\bundefined\\b/,\n        alias: 'nil'\n      }\n    )\n    Prism.languages.insertBefore('javascript', 'operator', {\n      spread: {\n        pattern: /\\.{3}/,\n        alias: 'operator'\n      },\n      arrow: {\n        pattern: /=>/,\n        alias: 'operator'\n      }\n    })\n    Prism.languages.insertBefore('javascript', 'punctuation', {\n      'property-access': {\n        pattern: withId(/(\\.\\s*)#?<ID>/.source),\n        lookbehind: true\n      },\n      'maybe-class-name': {\n        pattern: /(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/,\n        lookbehind: true\n      },\n      dom: {\n        // this contains only a few commonly used DOM variables\n        pattern:\n          /\\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\\b/,\n        alias: 'variable'\n      },\n      console: {\n        pattern: /\\bconsole(?=\\s*\\.)/,\n        alias: 'class-name'\n      }\n    }) // add 'maybe-class-name' to tokens which might be a class name\n    var maybeClassNameTokens = [\n      'function',\n      'function-variable',\n      'method',\n      'method-variable',\n      'property-access'\n    ]\n    for (var i = 0; i < maybeClassNameTokens.length; i++) {\n      var token = maybeClassNameTokens[i]\n      var value = Prism.languages.javascript[token] // convert regex to object\n      if (Prism.util.type(value) === 'RegExp') {\n        value = Prism.languages.javascript[token] = {\n          pattern: value\n        }\n      } // keep in mind that we don't support arrays\n      var inside = value.inside || {}\n      value.inside = inside\n      inside['maybe-class-name'] = /^[A-Z][\\s\\S]*/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = jsTemplates\njsTemplates.displayName = 'jsTemplates'\njsTemplates.aliases = []\nfunction jsTemplates(Prism) {\n  ;(function (Prism) {\n    var templateString = Prism.languages.javascript['template-string'] // see the pattern in prism-javascript.js\n    var templateLiteralPattern = templateString.pattern.source\n    var interpolationObject = templateString.inside['interpolation']\n    var interpolationPunctuationObject =\n      interpolationObject.inside['interpolation-punctuation']\n    var interpolationPattern = interpolationObject.pattern.source\n    /**\n     * Creates a new pattern to match a template string with a special tag.\n     *\n     * This will return `undefined` if there is no grammar with the given language id.\n     *\n     * @param {string} language The language id of the embedded language. E.g. `markdown`.\n     * @param {string} tag The regex pattern to match the tag.\n     * @returns {object | undefined}\n     * @example\n     * createTemplate('css', /\\bcss/.source);\n     */\n    function createTemplate(language, tag) {\n      if (!Prism.languages[language]) {\n        return undefined\n      }\n      return {\n        pattern: RegExp('((?:' + tag + ')\\\\s*)' + templateLiteralPattern),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          'template-punctuation': {\n            pattern: /^`|`$/,\n            alias: 'string'\n          },\n          'embedded-code': {\n            pattern: /[\\s\\S]+/,\n            alias: language\n          }\n        }\n      }\n    }\n    Prism.languages.javascript['template-string'] = [\n      // styled-jsx:\n      //   css`a { color: #25F; }`\n      // styled-components:\n      //   styled.h1`color: red;`\n      createTemplate(\n        'css',\n        /\\b(?:styled(?:\\([^)]*\\))?(?:\\s*\\.\\s*\\w+(?:\\([^)]*\\))*)*|css(?:\\s*\\.\\s*(?:global|resolve))?|createGlobalStyle|keyframes)/\n          .source\n      ), // html`<p></p>`\n      // div.innerHTML = `<p></p>`\n      createTemplate('html', /\\bhtml|\\.\\s*(?:inner|outer)HTML\\s*\\+?=/.source), // svg`<path fill=\"#fff\" d=\"M55.37 ...\"/>`\n      createTemplate('svg', /\\bsvg/.source), // md`# h1`, markdown`## h2`\n      createTemplate('markdown', /\\b(?:markdown|md)/.source), // gql`...`, graphql`...`, graphql.experimental`...`\n      createTemplate(\n        'graphql',\n        /\\b(?:gql|graphql(?:\\s*\\.\\s*experimental)?)/.source\n      ), // sql`...`\n      createTemplate('sql', /\\bsql/.source), // vanilla template string\n      templateString\n    ].filter(Boolean)\n    /**\n     * Returns a specific placeholder literal for the given language.\n     *\n     * @param {number} counter\n     * @param {string} language\n     * @returns {string}\n     */\n    function getPlaceholder(counter, language) {\n      return '___' + language.toUpperCase() + '_' + counter + '___'\n    }\n    /**\n     * Returns the tokens of `Prism.tokenize` but also runs the `before-tokenize` and `after-tokenize` hooks.\n     *\n     * @param {string} code\n     * @param {any} grammar\n     * @param {string} language\n     * @returns {(string|Token)[]}\n     */\n    function tokenizeWithHooks(code, grammar, language) {\n      var env = {\n        code: code,\n        grammar: grammar,\n        language: language\n      }\n      Prism.hooks.run('before-tokenize', env)\n      env.tokens = Prism.tokenize(env.code, env.grammar)\n      Prism.hooks.run('after-tokenize', env)\n      return env.tokens\n    }\n    /**\n     * Returns the token of the given JavaScript interpolation expression.\n     *\n     * @param {string} expression The code of the expression. E.g. `\"${42}\"`\n     * @returns {Token}\n     */\n    function tokenizeInterpolationExpression(expression) {\n      var tempGrammar = {}\n      tempGrammar['interpolation-punctuation'] = interpolationPunctuationObject\n      /** @type {Array} */\n      var tokens = Prism.tokenize(expression, tempGrammar)\n      if (tokens.length === 3) {\n        /**\n         * The token array will look like this\n         * [\n         *     [\"interpolation-punctuation\", \"${\"]\n         *     \"...\" // JavaScript expression of the interpolation\n         *     [\"interpolation-punctuation\", \"}\"]\n         * ]\n         */\n        var args = [1, 1]\n        args.push.apply(\n          args,\n          tokenizeWithHooks(tokens[1], Prism.languages.javascript, 'javascript')\n        )\n        tokens.splice.apply(tokens, args)\n      }\n      return new Prism.Token(\n        'interpolation',\n        tokens,\n        interpolationObject.alias,\n        expression\n      )\n    }\n    /**\n     * Tokenizes the given code with support for JavaScript interpolation expressions mixed in.\n     *\n     * This function has 3 phases:\n     *\n     * 1. Replace all JavaScript interpolation expression with a placeholder.\n     *    The placeholder will have the syntax of a identify of the target language.\n     * 2. Tokenize the code with placeholders.\n     * 3. Tokenize the interpolation expressions and re-insert them into the tokenize code.\n     *    The insertion only works if a placeholder hasn't been \"ripped apart\" meaning that the placeholder has been\n     *    tokenized as two tokens by the grammar of the embedded language.\n     *\n     * @param {string} code\n     * @param {object} grammar\n     * @param {string} language\n     * @returns {Token}\n     */\n    function tokenizeEmbedded(code, grammar, language) {\n      // 1. First filter out all interpolations\n      // because they might be escaped, we need a lookbehind, so we use Prism\n      /** @type {(Token|string)[]} */\n      var _tokens = Prism.tokenize(code, {\n        interpolation: {\n          pattern: RegExp(interpolationPattern),\n          lookbehind: true\n        }\n      }) // replace all interpolations with a placeholder which is not in the code already\n      var placeholderCounter = 0\n      /** @type {Object<string, string>} */\n      var placeholderMap = {}\n      var embeddedCode = _tokens\n        .map(function (token) {\n          if (typeof token === 'string') {\n            return token\n          } else {\n            var interpolationExpression = token.content\n            var placeholder\n            while (\n              code.indexOf(\n                (placeholder = getPlaceholder(placeholderCounter++, language))\n              ) !== -1\n            ) {\n              /* noop */\n            }\n            placeholderMap[placeholder] = interpolationExpression\n            return placeholder\n          }\n        })\n        .join('') // 2. Tokenize the embedded code\n      var embeddedTokens = tokenizeWithHooks(embeddedCode, grammar, language) // 3. Re-insert the interpolation\n      var placeholders = Object.keys(placeholderMap)\n      placeholderCounter = 0\n      /**\n       *\n       * @param {(Token|string)[]} tokens\n       * @returns {void}\n       */\n      function walkTokens(tokens) {\n        for (var i = 0; i < tokens.length; i++) {\n          if (placeholderCounter >= placeholders.length) {\n            return\n          }\n          var token = tokens[i]\n          if (typeof token === 'string' || typeof token.content === 'string') {\n            var placeholder = placeholders[placeholderCounter]\n            var s =\n              typeof token === 'string'\n                ? token\n                : /** @type {string} */\n                  token.content\n            var index = s.indexOf(placeholder)\n            if (index !== -1) {\n              ++placeholderCounter\n              var before = s.substring(0, index)\n              var middle = tokenizeInterpolationExpression(\n                placeholderMap[placeholder]\n              )\n              var after = s.substring(index + placeholder.length)\n              var replacement = []\n              if (before) {\n                replacement.push(before)\n              }\n              replacement.push(middle)\n              if (after) {\n                var afterTokens = [after]\n                walkTokens(afterTokens)\n                replacement.push.apply(replacement, afterTokens)\n              }\n              if (typeof token === 'string') {\n                tokens.splice.apply(tokens, [i, 1].concat(replacement))\n                i += replacement.length - 1\n              } else {\n                token.content = replacement\n              }\n            }\n          } else {\n            var content = token.content\n            if (Array.isArray(content)) {\n              walkTokens(content)\n            } else {\n              walkTokens([content])\n            }\n          }\n        }\n      }\n      walkTokens(embeddedTokens)\n      return new Prism.Token(\n        language,\n        embeddedTokens,\n        'language-' + language,\n        code\n      )\n    }\n    /**\n     * The languages for which JS templating will handle tagged template literals.\n     *\n     * JS templating isn't active for only JavaScript but also related languages like TypeScript, JSX, and TSX.\n     */\n    var supportedLanguages = {\n      javascript: true,\n      js: true,\n      typescript: true,\n      ts: true,\n      jsx: true,\n      tsx: true\n    }\n    Prism.hooks.add('after-tokenize', function (env) {\n      if (!(env.language in supportedLanguages)) {\n        return\n      }\n      /**\n       * Finds and tokenizes all template strings with an embedded languages.\n       *\n       * @param {(Token | string)[]} tokens\n       * @returns {void}\n       */\n      function findTemplateStrings(tokens) {\n        for (var i = 0, l = tokens.length; i < l; i++) {\n          var token = tokens[i]\n          if (typeof token === 'string') {\n            continue\n          }\n          var content = token.content\n          if (!Array.isArray(content)) {\n            if (typeof content !== 'string') {\n              findTemplateStrings([content])\n            }\n            continue\n          }\n          if (token.type === 'template-string') {\n            /**\n             * A JavaScript template-string token will look like this:\n             *\n             * [\"template-string\", [\n             *     [\"template-punctuation\", \"`\"],\n             *     (\n             *         An array of \"string\" and \"interpolation\" tokens. This is the simple string case.\n             *         or\n             *         [\"embedded-code\", \"...\"] This is the token containing the embedded code.\n             *                                  It also has an alias which is the language of the embedded code.\n             *     ),\n             *     [\"template-punctuation\", \"`\"]\n             * ]]\n             */\n            var embedded = content[1]\n            if (\n              content.length === 3 &&\n              typeof embedded !== 'string' &&\n              embedded.type === 'embedded-code'\n            ) {\n              // get string content\n              var code = stringContent(embedded)\n              var alias = embedded.alias\n              var language = Array.isArray(alias) ? alias[0] : alias\n              var grammar = Prism.languages[language]\n              if (!grammar) {\n                // the embedded language isn't registered.\n                continue\n              }\n              content[1] = tokenizeEmbedded(code, grammar, language)\n            }\n          } else {\n            findTemplateStrings(content)\n          }\n        }\n      }\n      findTemplateStrings(env.tokens)\n    })\n    /**\n     * Returns the string content of a token or token stream.\n     *\n     * @param {string | Token | (string | Token)[]} value\n     * @returns {string}\n     */\n    function stringContent(value) {\n      if (typeof value === 'string') {\n        return value\n      } else if (Array.isArray(value)) {\n        return value.map(stringContent).join('')\n      } else {\n        return stringContent(value.content)\n      }\n    }\n  })(Prism)\n}\n","'use strict'\nvar refractorJavadoclike = require('./javadoclike.js')\nvar refractorTypescript = require('./typescript.js')\nmodule.exports = jsdoc\njsdoc.displayName = 'jsdoc'\njsdoc.aliases = []\nfunction jsdoc(Prism) {\n  Prism.register(refractorJavadoclike)\n  Prism.register(refractorTypescript)\n  ;(function (Prism) {\n    var javascript = Prism.languages.javascript\n    var type = /\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})+\\}/.source\n    var parameterPrefix =\n      '(@(?:arg|argument|param|property)\\\\s+(?:' + type + '\\\\s+)?)'\n    Prism.languages.jsdoc = Prism.languages.extend('javadoclike', {\n      parameter: {\n        // @param {string} foo - foo bar\n        pattern: RegExp(\n          parameterPrefix + /(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?=\\s|$)/.source\n        ),\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      }\n    })\n    Prism.languages.insertBefore('jsdoc', 'keyword', {\n      'optional-parameter': {\n        // @param {string} [baz.foo=\"bar\"] foo bar\n        pattern: RegExp(\n          parameterPrefix +\n            /\\[(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?:=[^[\\]]+)?\\](?=\\s|$)/.source\n        ),\n        lookbehind: true,\n        inside: {\n          parameter: {\n            pattern: /(^\\[)[$\\w\\xA0-\\uFFFF\\.]+/,\n            lookbehind: true,\n            inside: {\n              punctuation: /\\./\n            }\n          },\n          code: {\n            pattern: /(=)[\\s\\S]*(?=\\]$)/,\n            lookbehind: true,\n            inside: javascript,\n            alias: 'language-javascript'\n          },\n          punctuation: /[=[\\]]/\n        }\n      },\n      'class-name': [\n        {\n          pattern: RegExp(\n            /(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\\s+(?:<TYPE>\\s+)?)[A-Z]\\w*(?:\\.[A-Z]\\w*)*/.source.replace(\n              /<TYPE>/g,\n              function () {\n                return type\n              }\n            )\n          ),\n          lookbehind: true,\n          inside: {\n            punctuation: /\\./\n          }\n        },\n        {\n          pattern: RegExp('(@[a-z]+\\\\s+)' + type),\n          lookbehind: true,\n          inside: {\n            string: javascript.string,\n            number: javascript.number,\n            boolean: javascript.boolean,\n            keyword: Prism.languages.typescript.keyword,\n            operator: /=>|\\.\\.\\.|[&|?:*]/,\n            punctuation: /[.,;=<>{}()[\\]]/\n          }\n        }\n      ],\n      example: {\n        pattern:\n          /(@example\\s+(?!\\s))(?:[^@\\s]|\\s+(?!\\s))+?(?=\\s*(?:\\*\\s*)?(?:@\\w|\\*\\/))/,\n        lookbehind: true,\n        inside: {\n          code: {\n            pattern: /^([\\t ]*(?:\\*\\s*)?)\\S.*$/m,\n            lookbehind: true,\n            inside: javascript,\n            alias: 'language-javascript'\n          }\n        }\n      }\n    })\n    Prism.languages.javadoclike.addSupport('javascript', Prism.languages.jsdoc)\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = json\njson.displayName = 'json'\njson.aliases = ['webmanifest']\nfunction json(Prism) {\n  // https://www.json.org/json-en.html\n  Prism.languages.json = {\n    property: {\n      pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n      lookbehind: true,\n      greedy: true\n    },\n    comment: {\n      pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n      greedy: true\n    },\n    number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n    punctuation: /[{}[\\],]/,\n    operator: /:/,\n    boolean: /\\b(?:false|true)\\b/,\n    null: {\n      pattern: /\\bnull\\b/,\n      alias: 'keyword'\n    }\n  }\n  Prism.languages.webmanifest = Prism.languages.json\n}\n","'use strict'\nvar refractorJson = require('./json.js')\nmodule.exports = json5\njson5.displayName = 'json5'\njson5.aliases = []\nfunction json5(Prism) {\n  Prism.register(refractorJson)\n  ;(function (Prism) {\n    var string = /(\"|')(?:\\\\(?:\\r\\n?|\\n|.)|(?!\\1)[^\\\\\\r\\n])*\\1/\n    Prism.languages.json5 = Prism.languages.extend('json', {\n      property: [\n        {\n          pattern: RegExp(string.source + '(?=\\\\s*:)'),\n          greedy: true\n        },\n        {\n          pattern:\n            /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/,\n          alias: 'unquoted'\n        }\n      ],\n      string: {\n        pattern: string,\n        greedy: true\n      },\n      number:\n        /[+-]?\\b(?:NaN|Infinity|0x[a-fA-F\\d]+)\\b|[+-]?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n    })\n  })(Prism)\n}\n","'use strict'\nvar refractorJson = require('./json.js')\nmodule.exports = jsonp\njsonp.displayName = 'jsonp'\njsonp.aliases = []\nfunction jsonp(Prism) {\n  Prism.register(refractorJson)\n  Prism.languages.jsonp = Prism.languages.extend('json', {\n    punctuation: /[{}[\\]();,.]/\n  })\n  Prism.languages.insertBefore('jsonp', 'punctuation', {\n    function: /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*\\()/\n  })\n}\n","'use strict'\n\nmodule.exports = jsstacktrace\njsstacktrace.displayName = 'jsstacktrace'\njsstacktrace.aliases = []\nfunction jsstacktrace(Prism) {\n  Prism.languages.jsstacktrace = {\n    'error-message': {\n      pattern: /^\\S.*/m,\n      alias: 'string'\n    },\n    'stack-frame': {\n      pattern: /(^[ \\t]+)at[ \\t].*/m,\n      lookbehind: true,\n      inside: {\n        'not-my-code': {\n          pattern:\n            /^at[ \\t]+(?!\\s)(?:node\\.js|<unknown>|.*(?:node_modules|\\(<anonymous>\\)|\\(<unknown>|<anonymous>$|\\(internal\\/|\\(node\\.js)).*/m,\n          alias: 'comment'\n        },\n        filename: {\n          pattern: /(\\bat\\s+(?!\\s)|\\()(?:[a-zA-Z]:)?[^():]+(?=:)/,\n          lookbehind: true,\n          alias: 'url'\n        },\n        function: {\n          pattern:\n            /(\\bat\\s+(?:new\\s+)?)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF<][.$\\w\\xA0-\\uFFFF<>]*/,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\./\n          }\n        },\n        punctuation: /[()]/,\n        keyword: /\\b(?:at|new)\\b/,\n        alias: {\n          pattern: /\\[(?:as\\s+)?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*\\]/,\n          alias: 'variable'\n        },\n        'line-number': {\n          pattern: /:\\d+(?::\\d+)?\\b/,\n          alias: 'number',\n          inside: {\n            punctuation: /:/\n          }\n        }\n      }\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = jsx\njsx.displayName = 'jsx'\njsx.aliases = []\nfunction jsx(Prism) {\n  ;(function (Prism) {\n    var javascript = Prism.util.clone(Prism.languages.javascript)\n    var space = /(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)/.source\n    var braces = /(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})/.source\n    var spread = /(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})/.source\n    /**\n     * @param {string} source\n     * @param {string} [flags]\n     */\n    function re(source, flags) {\n      source = source\n        .replace(/<S>/g, function () {\n          return space\n        })\n        .replace(/<BRACES>/g, function () {\n          return braces\n        })\n        .replace(/<SPREAD>/g, function () {\n          return spread\n        })\n      return RegExp(source, flags)\n    }\n    spread = re(spread).source\n    Prism.languages.jsx = Prism.languages.extend('markup', javascript)\n    Prism.languages.jsx.tag.pattern = re(\n      /<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>/\n        .source\n    )\n    Prism.languages.jsx.tag.inside['tag'].pattern = /^<\\/?[^\\s>\\/]*/\n    Prism.languages.jsx.tag.inside['attr-value'].pattern =\n      /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/\n    Prism.languages.jsx.tag.inside['tag'].inside['class-name'] =\n      /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/\n    Prism.languages.jsx.tag.inside['comment'] = javascript['comment']\n    Prism.languages.insertBefore(\n      'inside',\n      'attr-name',\n      {\n        spread: {\n          pattern: re(/<SPREAD>/.source),\n          inside: Prism.languages.jsx\n        }\n      },\n      Prism.languages.jsx.tag\n    )\n    Prism.languages.insertBefore(\n      'inside',\n      'special-attr',\n      {\n        script: {\n          // Allow for two levels of nesting\n          pattern: re(/=<BRACES>/.source),\n          alias: 'language-javascript',\n          inside: {\n            'script-punctuation': {\n              pattern: /^=(?=\\{)/,\n              alias: 'punctuation'\n            },\n            rest: Prism.languages.jsx\n          }\n        }\n      },\n      Prism.languages.jsx.tag\n    ) // The following will handle plain text inside tags\n    var stringifyToken = function (token) {\n      if (!token) {\n        return ''\n      }\n      if (typeof token === 'string') {\n        return token\n      }\n      if (typeof token.content === 'string') {\n        return token.content\n      }\n      return token.content.map(stringifyToken).join('')\n    }\n    var walkTokens = function (tokens) {\n      var openedTags = []\n      for (var i = 0; i < tokens.length; i++) {\n        var token = tokens[i]\n        var notTagNorBrace = false\n        if (typeof token !== 'string') {\n          if (\n            token.type === 'tag' &&\n            token.content[0] &&\n            token.content[0].type === 'tag'\n          ) {\n            // We found a tag, now find its kind\n            if (token.content[0].content[0].content === '</') {\n              // Closing tag\n              if (\n                openedTags.length > 0 &&\n                openedTags[openedTags.length - 1].tagName ===\n                  stringifyToken(token.content[0].content[1])\n              ) {\n                // Pop matching opening tag\n                openedTags.pop()\n              }\n            } else {\n              if (token.content[token.content.length - 1].content === '/>') {\n                // Autoclosed tag, ignore\n              } else {\n                // Opening tag\n                openedTags.push({\n                  tagName: stringifyToken(token.content[0].content[1]),\n                  openedBraces: 0\n                })\n              }\n            }\n          } else if (\n            openedTags.length > 0 &&\n            token.type === 'punctuation' &&\n            token.content === '{'\n          ) {\n            // Here we might have entered a JSX context inside a tag\n            openedTags[openedTags.length - 1].openedBraces++\n          } else if (\n            openedTags.length > 0 &&\n            openedTags[openedTags.length - 1].openedBraces > 0 &&\n            token.type === 'punctuation' &&\n            token.content === '}'\n          ) {\n            // Here we might have left a JSX context inside a tag\n            openedTags[openedTags.length - 1].openedBraces--\n          } else {\n            notTagNorBrace = true\n          }\n        }\n        if (notTagNorBrace || typeof token === 'string') {\n          if (\n            openedTags.length > 0 &&\n            openedTags[openedTags.length - 1].openedBraces === 0\n          ) {\n            // Here we are inside a tag, and not inside a JSX context.\n            // That's plain text: drop any tokens matched.\n            var plainText = stringifyToken(token) // And merge text with adjacent text\n            if (\n              i < tokens.length - 1 &&\n              (typeof tokens[i + 1] === 'string' ||\n                tokens[i + 1].type === 'plain-text')\n            ) {\n              plainText += stringifyToken(tokens[i + 1])\n              tokens.splice(i + 1, 1)\n            }\n            if (\n              i > 0 &&\n              (typeof tokens[i - 1] === 'string' ||\n                tokens[i - 1].type === 'plain-text')\n            ) {\n              plainText = stringifyToken(tokens[i - 1]) + plainText\n              tokens.splice(i - 1, 1)\n              i--\n            }\n            tokens[i] = new Prism.Token(\n              'plain-text',\n              plainText,\n              null,\n              plainText\n            )\n          }\n        }\n        if (token.content && typeof token.content !== 'string') {\n          walkTokens(token.content)\n        }\n      }\n    }\n    Prism.hooks.add('after-tokenize', function (env) {\n      if (env.language !== 'jsx' && env.language !== 'tsx') {\n        return\n      }\n      walkTokens(env.tokens)\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = julia\njulia.displayName = 'julia'\njulia.aliases = []\nfunction julia(Prism) {\n  Prism.languages.julia = {\n    comment: {\n      // support one level of nested comments\n      // https://github.com/JuliaLang/julia/pull/6128\n      pattern:\n        /(^|[^\\\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/,\n      lookbehind: true\n    },\n    regex: {\n      // https://docs.julialang.org/en/v1/manual/strings/#Regular-Expressions-1\n      pattern: /r\"(?:\\\\.|[^\"\\\\\\r\\n])*\"[imsx]{0,4}/,\n      greedy: true\n    },\n    string: {\n      // https://docs.julialang.org/en/v1/manual/strings/#String-Basics-1\n      // https://docs.julialang.org/en/v1/manual/strings/#non-standard-string-literals-1\n      // https://docs.julialang.org/en/v1/manual/running-external-programs/#Running-External-Programs-1\n      pattern:\n        /\"\"\"[\\s\\S]+?\"\"\"|(?:\\b\\w+)?\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`(?:[^\\\\`\\r\\n]|\\\\.)*`/,\n      greedy: true\n    },\n    char: {\n      // https://docs.julialang.org/en/v1/manual/strings/#man-characters-1\n      pattern: /(^|[^\\w'])'(?:\\\\[^\\r\\n][^'\\r\\n]*|[^\\\\\\r\\n])'/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    number:\n      /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[box])?(?:[\\da-f]+(?:_[\\da-f]+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[efp][+-]?\\d+(?:_\\d+)*)?j?/i,\n    // https://docs.julialang.org/en/v1/manual/mathematical-operations/\n    // https://docs.julialang.org/en/v1/manual/mathematical-operations/#Operator-Precedence-and-Associativity-1\n    operator:\n      /&&|\\|\\||[-+*^%÷⊻&$\\\\]=?|\\/[\\/=]?|!=?=?|\\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥'√∛]/,\n    punctuation: /::?|[{}[\\]();,.?]/,\n    // https://docs.julialang.org/en/v1/base/numbers/#Base.im\n    constant: /\\b(?:(?:Inf|NaN)(?:16|32|64)?|im|pi)\\b|[πℯ]/\n  }\n}\n","'use strict'\n\nmodule.exports = keepalived\nkeepalived.displayName = 'keepalived'\nkeepalived.aliases = []\nfunction keepalived(Prism) {\n  Prism.languages.keepalived = {\n    comment: {\n      pattern: /[#!].*/,\n      greedy: true\n    },\n    string: {\n      pattern:\n        /(^|[^\\\\])(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/,\n      lookbehind: true,\n      greedy: true\n    },\n    // support IPv4, IPv6, subnet mask\n    ip: {\n      pattern: RegExp(\n        /\\b(?:(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){5}:(?:[\\da-f]{1,4}:)?[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){4}:(?:[\\da-f]{1,4}:){0,2}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){3}:(?:[\\da-f]{1,4}:){0,3}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){2}:(?:[\\da-f]{1,4}:){0,4}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){6}<ipv4>|(?:[\\da-f]{1,4}:){0,5}:<ipv4>|::(?:[\\da-f]{1,4}:){0,5}<ipv4>|[\\da-f]{1,4}::(?:[\\da-f]{1,4}:){0,5}[\\da-f]{1,4}|::(?:[\\da-f]{1,4}:){0,6}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:)(?:\\/\\d{1,3})?|<ipv4>(?:\\/\\d{1,2})?)\\b/.source.replace(\n          /<ipv4>/g,\n          function () {\n            return /(?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d))/\n              .source\n          }\n        ),\n        'i'\n      ),\n      alias: 'number'\n    },\n    // support *nix / Windows, directory / file\n    path: {\n      pattern:\n        /(\\s)\\/(?:[^\\/\\s]+\\/)*[^\\/\\s]*|\\b[a-zA-Z]:\\\\(?:[^\\\\\\s]+\\\\)*[^\\\\\\s]*/,\n      lookbehind: true,\n      alias: 'string'\n    },\n    variable: /\\$\\{?\\w+\\}?/,\n    email: {\n      pattern: /[\\w-]+@[\\w-]+(?:\\.[\\w-]{2,3}){1,2}/,\n      alias: 'string'\n    },\n    'conditional-configuration': {\n      pattern: /@\\^?[\\w-]+/,\n      alias: 'variable'\n    },\n    operator: /=/,\n    property:\n      /\\b(?:BFD_CHECK|DNS_CHECK|FILE_CHECK|HTTP_GET|MISC_CHECK|NAME|PING_CHECK|SCRIPTS|SMTP_CHECK|SSL|SSL_GET|TCP_CHECK|UDP_CHECK|accept|advert_int|alpha|auth_pass|auth_type|authentication|bfd_cpu_affinity|bfd_instance|bfd_no_swap|bfd_priority|bfd_process_name|bfd_rlimit_rttime|bfd_rt_priority|bind_if|bind_port|bindto|ca|certificate|check_unicast_src|checker|checker_cpu_affinity|checker_log_all_failures|checker_no_swap|checker_priority|checker_rlimit_rttime|checker_rt_priority|child_wait_time|connect_ip|connect_port|connect_timeout|dbus_service_name|debug|default_interface|delay|delay_before_retry|delay_loop|digest|dont_track_primary|dynamic|dynamic_interfaces|enable_(?:dbus|script_security|sni|snmp_checker|snmp_rfc|snmp_rfcv2|snmp_rfcv3|snmp_vrrp|traps)|end|fall|fast_recovery|file|flag-[123]|fork_delay|full_command|fwmark|garp_group|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|global_defs|global_tracking|gna_interval|group|ha_suspend|hashed|helo_name|higher_prio_send_advert|hoplimit|http_protocol|hysteresis|idle_tx|include|inhibit_on_failure|init_fail|init_file|instance|interface|interfaces|interval|ip_family|ipvs_process_name|keepalived.conf|kernel_rx_buf_size|key|linkbeat_interfaces|linkbeat_use_polling|log_all_failures|log_unknown_vrids|lower_prio_no_advert|lthreshold|lvs_flush|lvs_flush_onstop|lvs_method|lvs_netlink_cmd_rcv_bufs|lvs_netlink_cmd_rcv_bufs_force|lvs_netlink_monitor_rcv_bufs|lvs_netlink_monitor_rcv_bufs_force|lvs_notify_fifo|lvs_notify_fifo_script|lvs_sched|lvs_sync_daemon|max_auto_priority|max_hops|mcast_src_ip|mh-fallback|mh-port|min_auto_priority_delay|min_rx|min_tx|misc_dynamic|misc_path|misc_timeout|multiplier|name|namespace_with_ipsets|native_ipv6|neighbor_ip|net_namespace|net_namespace_ipvs|nftables|nftables_counters|nftables_ifindex|nftables_priority|no_accept|no_checker_emails|no_email_faults|nopreempt|notification_email|notification_email_from|notify|notify_backup|notify_deleted|notify_down|notify_fault|notify_fifo|notify_fifo_script|notify_master|notify_master_rx_lower_pri|notify_priority_changes|notify_stop|notify_up|old_unicast_checksum|omega|ops|param_match|passive|password|path|persistence_engine|persistence_granularity|persistence_timeout|preempt|preempt_delay|priority|process|process_monitor_rcv_bufs|process_monitor_rcv_bufs_force|process_name|process_names|promote_secondaries|protocol|proxy_arp|proxy_arp_pvlan|quorum|quorum_down|quorum_max|quorum_up|random_seed|real_server|regex|regex_max_offset|regex_min_offset|regex_no_match|regex_options|regex_stack|reload_repeat|reload_time_file|require_reply|retry|rise|router_id|rs_init_notifies|script|script_user|sh-fallback|sh-port|shutdown_script|shutdown_script_timeout|skip_check_adv_addr|smtp_alert|smtp_alert_checker|smtp_alert_vrrp|smtp_connect_timeout|smtp_helo_name|smtp_server|snmp_socket|sorry_server|sorry_server_inhibit|sorry_server_lvs_method|source_ip|start|startup_script|startup_script_timeout|state|static_ipaddress|static_routes|static_rules|status_code|step|strict_mode|sync_group_tracking_weight|terminate_delay|timeout|track_bfd|track_file|track_group|track_interface|track_process|track_script|track_src_ip|ttl|type|umask|unicast_peer|unicast_src_ip|unicast_ttl|url|use_ipvlan|use_pid_dir|use_vmac|user|uthreshold|val[123]|version|virtual_ipaddress|virtual_ipaddress_excluded|virtual_router_id|virtual_routes|virtual_rules|virtual_server|virtual_server_group|virtualhost|vmac_xmit_base|vrrp|vrrp_(?:check_unicast_src|cpu_affinity|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|gna_interval|higher_prio_send_advert|instance|ipsets|iptables|lower_prio_no_advert|mcast_group4|mcast_group6|min_garp|netlink_cmd_rcv_bufs|netlink_cmd_rcv_bufs_force|netlink_monitor_rcv_bufs|netlink_monitor_rcv_bufs_force|no_swap|notify_fifo|notify_fifo_script|notify_priority_changes|priority|process_name|rlimit_rttime|rt_priority|rx_bufs_multiplier|rx_bufs_policy|script|skip_check_adv_addr|startup_delay|strict|sync_group|track_process|version)|warmup|weight)\\b/,\n    constant:\n      /\\b(?:A|AAAA|AH|BACKUP|CNAME|DR|MASTER|MX|NAT|NS|PASS|SCTP|SOA|TCP|TUN|TXT|UDP|dh|fo|lblc|lblcr|lc|mh|nq|ovf|rr|sed|sh|wlc|wrr)\\b/,\n    number: {\n      pattern: /(^|[^\\w.-])-?\\d+(?:\\.\\d+)?/,\n      lookbehind: true\n    },\n    boolean: /\\b(?:false|no|off|on|true|yes)\\b/,\n    punctuation: /[\\{\\}]/\n  }\n}\n","'use strict'\n\nmodule.exports = keyman\nkeyman.displayName = 'keyman'\nkeyman.aliases = []\nfunction keyman(Prism) {\n  Prism.languages.keyman = {\n    comment: {\n      pattern: /\\bc .*/i,\n      greedy: true\n    },\n    string: {\n      pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n      greedy: true\n    },\n    'virtual-key': {\n      pattern:\n        /\\[\\s*(?:(?:ALT|CAPS|CTRL|LALT|LCTRL|NCAPS|RALT|RCTRL|SHIFT)\\s+)*(?:[TKU]_[\\w?]+|[A-E]\\d\\d?|\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')\\s*\\]/i,\n      greedy: true,\n      alias: 'function' // alias for styles\n    },\n    // https://help.keyman.com/developer/language/guide/headers\n    'header-keyword': {\n      pattern: /&\\w+/,\n      alias: 'bold' // alias for styles\n    },\n    'header-statement': {\n      pattern:\n        /\\b(?:bitmap|bitmaps|caps always off|caps on only|copyright|hotkey|language|layout|message|name|shift frees caps|version)\\b/i,\n      alias: 'bold' // alias for styles\n    },\n    'rule-keyword': {\n      pattern:\n        /\\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|reset|return|save|set|store|use)\\b/i,\n      alias: 'keyword'\n    },\n    'structural-keyword': {\n      pattern: /\\b(?:ansi|begin|group|match|nomatch|unicode|using keys)\\b/i,\n      alias: 'keyword'\n    },\n    'compile-target': {\n      pattern: /\\$(?:keyman|keymanonly|keymanweb|kmfl|weaver):/i,\n      alias: 'property'\n    },\n    // U+####, x###, d### characters and numbers\n    number: /\\b(?:U\\+[\\dA-F]+|d\\d+|x[\\da-f]+|\\d+)\\b/i,\n    operator: /[+>\\\\$]|\\.\\./,\n    punctuation: /[()=,]/\n  }\n}\n","'use strict'\n\nmodule.exports = kotlin\nkotlin.displayName = 'kotlin'\nkotlin.aliases = ['kt', 'kts']\nfunction kotlin(Prism) {\n  ;(function (Prism) {\n    Prism.languages.kotlin = Prism.languages.extend('clike', {\n      keyword: {\n        // The lookbehind prevents wrong highlighting of e.g. kotlin.properties.get\n        pattern:\n          /(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/,\n        lookbehind: true\n      },\n      function: [\n        {\n          pattern: /(?:`[^\\r\\n`]+`|\\b\\w+)(?=\\s*\\()/,\n          greedy: true\n        },\n        {\n          pattern: /(\\.)(?:`[^\\r\\n`]+`|\\w+)(?=\\s*\\{)/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      number:\n        /\\b(?:0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/,\n      operator:\n        /\\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\\/*%<>]=?|[?:]:?|\\.\\.|&&|\\|\\||\\b(?:and|inv|or|shl|shr|ushr|xor)\\b/\n    })\n    delete Prism.languages.kotlin['class-name']\n    var interpolationInside = {\n      'interpolation-punctuation': {\n        pattern: /^\\$\\{?|\\}$/,\n        alias: 'punctuation'\n      },\n      expression: {\n        pattern: /[\\s\\S]+/,\n        inside: Prism.languages.kotlin\n      }\n    }\n    Prism.languages.insertBefore('kotlin', 'string', {\n      // https://kotlinlang.org/spec/expressions.html#string-interpolation-expressions\n      'string-literal': [\n        {\n          pattern: /\"\"\"(?:[^$]|\\$(?:(?!\\{)|\\{[^{}]*\\}))*?\"\"\"/,\n          alias: 'multiline',\n          inside: {\n            interpolation: {\n              pattern: /\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n              inside: interpolationInside\n            },\n            string: /[\\s\\S]+/\n          }\n        },\n        {\n          pattern: /\"(?:[^\"\\\\\\r\\n$]|\\\\.|\\$(?:(?!\\{)|\\{[^{}]*\\}))*\"/,\n          alias: 'singleline',\n          inside: {\n            interpolation: {\n              pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n              lookbehind: true,\n              inside: interpolationInside\n            },\n            string: /[\\s\\S]+/\n          }\n        }\n      ],\n      char: {\n        // https://kotlinlang.org/spec/expressions.html#character-literals\n        pattern: /'(?:[^'\\\\\\r\\n]|\\\\(?:.|u[a-fA-F0-9]{0,4}))'/,\n        greedy: true\n      }\n    })\n    delete Prism.languages.kotlin['string']\n    Prism.languages.insertBefore('kotlin', 'keyword', {\n      annotation: {\n        pattern: /\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/,\n        alias: 'builtin'\n      }\n    })\n    Prism.languages.insertBefore('kotlin', 'function', {\n      label: {\n        pattern: /\\b\\w+@|@\\w+\\b/,\n        alias: 'symbol'\n      }\n    })\n    Prism.languages.kt = Prism.languages.kotlin\n    Prism.languages.kts = Prism.languages.kotlin\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = kumir\nkumir.displayName = 'kumir'\nkumir.aliases = ['kum']\nfunction kumir(Prism) {\n  /* eslint-disable regexp/no-dupe-characters-character-class */\n  ;(function (Prism) {\n    /**\n     * Regular expression for characters that are not allowed in identifiers.\n     *\n     * @type {string}\n     */\n    var nonId = /\\s\\x00-\\x1f\\x22-\\x2f\\x3a-\\x3f\\x5b-\\x5e\\x60\\x7b-\\x7e/.source\n    /**\n     * Surround a regular expression for IDs with patterns for non-ID sequences.\n     *\n     * @param {string} pattern A regular expression for identifiers.\n     * @param {string} [flags] The regular expression flags.\n     * @returns {RegExp} A wrapped regular expression for identifiers.\n     */\n    function wrapId(pattern, flags) {\n      return RegExp(pattern.replace(/<nonId>/g, nonId), flags)\n    }\n    Prism.languages.kumir = {\n      comment: {\n        pattern: /\\|.*/\n      },\n      prolog: {\n        pattern: /#.*/,\n        greedy: true\n      },\n      string: {\n        pattern: /\"[^\\n\\r\"]*\"|'[^\\n\\r']*'/,\n        greedy: true\n      },\n      boolean: {\n        pattern: wrapId(/(^|[<nonId>])(?:да|нет)(?=[<nonId>]|$)/.source),\n        lookbehind: true\n      },\n      'operator-word': {\n        pattern: wrapId(/(^|[<nonId>])(?:и|или|не)(?=[<nonId>]|$)/.source),\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      'system-variable': {\n        pattern: wrapId(/(^|[<nonId>])знач(?=[<nonId>]|$)/.source),\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      type: [\n        {\n          pattern: wrapId(\n            /(^|[<nonId>])(?:вещ|лит|лог|сим|цел)(?:\\x20*таб)?(?=[<nonId>]|$)/\n              .source\n          ),\n          lookbehind: true,\n          alias: 'builtin'\n        },\n        {\n          pattern: wrapId(\n            /(^|[<nonId>])(?:компл|сканкод|файл|цвет)(?=[<nonId>]|$)/.source\n          ),\n          lookbehind: true,\n          alias: 'important'\n        }\n      ],\n      /**\n       * Should be performed after searching for type names because of \"таб\".\n       * \"таб\" is a reserved word, but never used without a preceding type name.\n       * \"НАЗНАЧИТЬ\", \"Фввод\", and \"Фвывод\" are not reserved words.\n       */\n      keyword: {\n        pattern: wrapId(\n          /(^|[<nonId>])(?:алг|арг(?:\\x20*рез)?|ввод|ВКЛЮЧИТЬ|вс[её]|выбор|вывод|выход|дано|для|до|дс|если|иначе|исп|использовать|кон(?:(?:\\x20+|_)исп)?|кц(?:(?:\\x20+|_)при)?|надо|нач|нс|нц|от|пауза|пока|при|раза?|рез|стоп|таб|то|утв|шаг)(?=[<nonId>]|$)/\n            .source\n        ),\n        lookbehind: true\n      },\n      /** Should be performed after searching for reserved words. */\n      name: {\n        // eslint-disable-next-line regexp/no-super-linear-backtracking\n        pattern: wrapId(\n          /(^|[<nonId>])[^\\d<nonId>][^<nonId>]*(?:\\x20+[^<nonId>]+)*(?=[<nonId>]|$)/\n            .source\n        ),\n        lookbehind: true\n      },\n      /** Should be performed after searching for names. */\n      number: {\n        pattern: wrapId(\n          /(^|[<nonId>])(?:\\B\\$[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)(?=[<nonId>]|$)/\n            .source,\n          'i'\n        ),\n        lookbehind: true\n      },\n      /** Should be performed after searching for words. */\n      punctuation: /:=|[(),:;\\[\\]]/,\n      /**\n       * Should be performed after searching for\n       * - numeric constants (because of \"+\" and \"-\");\n       * - punctuation marks (because of \":=\" and \"=\").\n       */\n      'operator-char': {\n        pattern: /\\*\\*?|<[=>]?|>=?|[-+/=]/,\n        alias: 'operator'\n      }\n    }\n    Prism.languages.kum = Prism.languages.kumir\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = kusto\nkusto.displayName = 'kusto'\nkusto.aliases = []\nfunction kusto(Prism) {\n  Prism.languages.kusto = {\n    comment: {\n      pattern: /\\/\\/.*/,\n      greedy: true\n    },\n    string: {\n      pattern:\n        /```[\\s\\S]*?```|[hH]?(?:\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|'(?:[^\\r\\n\\\\']|\\\\.)*'|@(?:\"[^\\r\\n\"]*\"|'[^\\r\\n']*'))/,\n      greedy: true\n    },\n    verb: {\n      pattern: /(\\|\\s*)[a-z][\\w-]*/i,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    command: {\n      pattern: /\\.[a-z][a-z\\d-]*\\b/,\n      alias: 'keyword'\n    },\n    'class-name':\n      /\\b(?:bool|datetime|decimal|dynamic|guid|int|long|real|string|timespan)\\b/,\n    keyword:\n      /\\b(?:access|alias|and|anti|as|asc|auto|between|by|(?:contains|(?:ends|starts)with|has(?:perfix|suffix)?)(?:_cs)?|database|declare|desc|external|from|fullouter|has_all|in|ingestion|inline|inner|innerunique|into|(?:left|right)(?:anti(?:semi)?|inner|outer|semi)?|let|like|local|not|of|on|or|pattern|print|query_parameters|range|restrict|schema|set|step|table|tables|to|view|where|with|matches\\s+regex|nulls\\s+(?:first|last))(?![\\w-])/,\n    boolean: /\\b(?:false|null|true)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/,\n    datetime: [\n      {\n        // RFC 822 + RFC 850\n        pattern:\n          /\\b(?:(?:Fri|Friday|Mon|Monday|Sat|Saturday|Sun|Sunday|Thu|Thursday|Tue|Tuesday|Wed|Wednesday)\\s*,\\s*)?\\d{1,2}(?:\\s+|-)(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)(?:\\s+|-)\\d{2}\\s+\\d{2}:\\d{2}(?::\\d{2})?(?:\\s*(?:\\b(?:[A-Z]|(?:[ECMT][DS]|GM|U)T)|[+-]\\d{4}))?\\b/,\n        alias: 'number'\n      },\n      {\n        // ISO 8601\n        pattern:\n          /[+-]?\\b(?:\\d{4}-\\d{2}-\\d{2}(?:[ T]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?)?|\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?)Z?/,\n        alias: 'number'\n      }\n    ],\n    number:\n      /\\b(?:0x[0-9A-Fa-f]+|\\d+(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?)(?:(?:min|sec|[mnµ]s|[dhms]|microsecond|tick)\\b)?|[+-]?\\binf\\b/,\n    operator: /=>|[!=]~|[!=<>]=?|[-+*/%|]|\\.\\./,\n    punctuation: /[()\\[\\]{},;.:]/\n  }\n}\n","'use strict'\n\nmodule.exports = latex\nlatex.displayName = 'latex'\nlatex.aliases = ['tex', 'context']\nfunction latex(Prism) {\n  ;(function (Prism) {\n    var funcPattern = /\\\\(?:[^a-z()[\\]]|[a-z*]+)/i\n    var insideEqu = {\n      'equation-command': {\n        pattern: funcPattern,\n        alias: 'regex'\n      }\n    }\n    Prism.languages.latex = {\n      comment: /%.*/,\n      // the verbatim environment prints whitespace to the document\n      cdata: {\n        pattern:\n          /(\\\\begin\\{((?:lstlisting|verbatim)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n        lookbehind: true\n      },\n      /*\n       * equations can be between $$ $$ or $ $ or \\( \\) or \\[ \\]\n       * (all are multiline)\n       */\n      equation: [\n        {\n          pattern:\n            /\\$\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$\\$|\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$|\\\\\\([\\s\\S]*?\\\\\\)|\\\\\\[[\\s\\S]*?\\\\\\]/,\n          inside: insideEqu,\n          alias: 'string'\n        },\n        {\n          pattern:\n            /(\\\\begin\\{((?:align|eqnarray|equation|gather|math|multline)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n          lookbehind: true,\n          inside: insideEqu,\n          alias: 'string'\n        }\n      ],\n      /*\n       * arguments which are keywords or references are highlighted\n       * as keywords\n       */\n      keyword: {\n        pattern:\n          /(\\\\(?:begin|cite|documentclass|end|label|ref|usepackage)(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,\n        lookbehind: true\n      },\n      url: {\n        pattern: /(\\\\url\\{)[^}]+(?=\\})/,\n        lookbehind: true\n      },\n      /*\n       * section or chapter headlines are highlighted as bold so that\n       * they stand out more\n       */\n      headline: {\n        pattern:\n          /(\\\\(?:chapter|frametitle|paragraph|part|section|subparagraph|subsection|subsubparagraph|subsubsection|subsubsubparagraph)\\*?(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,\n        lookbehind: true,\n        alias: 'class-name'\n      },\n      function: {\n        pattern: funcPattern,\n        alias: 'selector'\n      },\n      punctuation: /[[\\]{}&]/\n    }\n    Prism.languages.tex = Prism.languages.latex\n    Prism.languages.context = Prism.languages.latex\n  })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nvar refractorPhp = require('./php.js')\nmodule.exports = latte\nlatte.displayName = 'latte'\nlatte.aliases = []\nfunction latte(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  Prism.register(refractorPhp)\n  ;(function (Prism) {\n    Prism.languages.latte = {\n      comment: /^\\{\\*[\\s\\S]*/,\n      'latte-tag': {\n        // https://latte.nette.org/en/tags\n        pattern: /(^\\{(?:\\/(?=[a-z]))?)(?:[=_]|[a-z]\\w*\\b(?!\\())/i,\n        lookbehind: true,\n        alias: 'important'\n      },\n      delimiter: {\n        pattern: /^\\{\\/?|\\}$/,\n        alias: 'punctuation'\n      },\n      php: {\n        pattern: /\\S(?:[\\s\\S]*\\S)?/,\n        alias: 'language-php',\n        inside: Prism.languages.php\n      }\n    }\n    var markupLatte = Prism.languages.extend('markup', {})\n    Prism.languages.insertBefore(\n      'inside',\n      'attr-value',\n      {\n        'n-attr': {\n          pattern: /n:[\\w-]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+))?/,\n          inside: {\n            'attr-name': {\n              pattern: /^[^\\s=]+/,\n              alias: 'important'\n            },\n            'attr-value': {\n              pattern: /=[\\s\\S]+/,\n              inside: {\n                punctuation: [\n                  /^=/,\n                  {\n                    pattern: /^(\\s*)[\"']|[\"']$/,\n                    lookbehind: true\n                  }\n                ],\n                php: {\n                  pattern: /\\S(?:[\\s\\S]*\\S)?/,\n                  inside: Prism.languages.php\n                }\n              }\n            }\n          }\n        }\n      },\n      markupLatte.tag\n    )\n    Prism.hooks.add('before-tokenize', function (env) {\n      if (env.language !== 'latte') {\n        return\n      }\n      var lattePattern =\n        /\\{\\*[\\s\\S]*?\\*\\}|\\{[^'\"\\s{}*](?:[^\"'/{}]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\}/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'latte',\n        lattePattern\n      )\n      env.grammar = markupLatte\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'latte')\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = less\nless.displayName = 'less'\nless.aliases = []\nfunction less(Prism) {\n  /* FIXME :\n:extend() is not handled specifically : its highlighting is buggy.\nMixin usage must be inside a ruleset to be highlighted.\nAt-rules (e.g. import) containing interpolations are buggy.\nDetached rulesets are highlighted as at-rules.\nA comment before a mixin usage prevents the latter to be properly highlighted.\n*/\n  Prism.languages.less = Prism.languages.extend('css', {\n    comment: [\n      /\\/\\*[\\s\\S]*?\\*\\//,\n      {\n        pattern: /(^|[^\\\\])\\/\\/.*/,\n        lookbehind: true\n      }\n    ],\n    atrule: {\n      pattern:\n        /@[\\w-](?:\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n      inside: {\n        punctuation: /[:()]/\n      }\n    },\n    // selectors and mixins are considered the same\n    selector: {\n      pattern:\n        /(?:@\\{[\\w-]+\\}|[^{};\\s@])(?:@\\{[\\w-]+\\}|\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};@\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n      inside: {\n        // mixin parameters\n        variable: /@+[\\w-]+/\n      }\n    },\n    property: /(?:@\\{[\\w-]+\\}|[\\w-])+(?:\\+_?)?(?=\\s*:)/,\n    operator: /[+\\-*\\/]/\n  })\n  Prism.languages.insertBefore('less', 'property', {\n    variable: [\n      // Variable declaration (the colon must be consumed!)\n      {\n        pattern: /@[\\w-]+\\s*:/,\n        inside: {\n          punctuation: /:/\n        }\n      }, // Variable usage\n      /@@?[\\w-]+/\n    ],\n    'mixin-usage': {\n      pattern: /([{;]\\s*)[.#](?!\\d)[\\w-].*?(?=[(;])/,\n      lookbehind: true,\n      alias: 'function'\n    }\n  })\n}\n","'use strict'\nvar refractorScheme = require('./scheme.js')\nmodule.exports = lilypond\nlilypond.displayName = 'lilypond'\nlilypond.aliases = []\nfunction lilypond(Prism) {\n  Prism.register(refractorScheme)\n  ;(function (Prism) {\n    var schemeExpression =\n      /\\((?:[^();\"#\\\\]|\\\\[\\s\\S]|;.*(?!.)|\"(?:[^\"\\\\]|\\\\.)*\"|#(?:\\{(?:(?!#\\})[\\s\\S])*#\\}|[^{])|<expr>)*\\)/\n        .source // allow for up to pow(2, recursivenessLog2) many levels of recursive brace expressions\n    // For some reason, this can't be 4\n    var recursivenessLog2 = 5\n    for (var i = 0; i < recursivenessLog2; i++) {\n      schemeExpression = schemeExpression.replace(/<expr>/g, function () {\n        return schemeExpression\n      })\n    }\n    schemeExpression = schemeExpression.replace(/<expr>/g, /[^\\s\\S]/.source)\n    var lilypond = (Prism.languages.lilypond = {\n      comment: /%(?:(?!\\{).*|\\{[\\s\\S]*?%\\})/,\n      'embedded-scheme': {\n        pattern: RegExp(\n          /(^|[=\\s])#(?:\"(?:[^\"\\\\]|\\\\.)*\"|[^\\s()\"]*(?:[^\\s()]|<expr>))/.source.replace(\n            /<expr>/g,\n            function () {\n              return schemeExpression\n            }\n          ),\n          'm'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          scheme: {\n            pattern: /^(#)[\\s\\S]+$/,\n            lookbehind: true,\n            alias: 'language-scheme',\n            inside: {\n              'embedded-lilypond': {\n                pattern: /#\\{[\\s\\S]*?#\\}/,\n                greedy: true,\n                inside: {\n                  punctuation: /^#\\{|#\\}$/,\n                  lilypond: {\n                    pattern: /[\\s\\S]+/,\n                    alias: 'language-lilypond',\n                    inside: null // see below\n                  }\n                }\n              },\n              rest: Prism.languages.scheme\n            }\n          },\n          punctuation: /#/\n        }\n      },\n      string: {\n        pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n        greedy: true\n      },\n      'class-name': {\n        pattern: /(\\\\new\\s+)[\\w-]+/,\n        lookbehind: true\n      },\n      keyword: {\n        pattern: /\\\\[a-z][-\\w]*/i,\n        inside: {\n          punctuation: /^\\\\/\n        }\n      },\n      operator: /[=|]|<<|>>/,\n      punctuation: {\n        pattern:\n          /(^|[a-z\\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\\d))|[_^]\\.?|[.!])|[{}()[\\]<>^~]|\\\\[()[\\]<>\\\\!]|--|__/,\n        lookbehind: true\n      },\n      number: /\\b\\d+(?:\\/\\d+)?\\b/\n    })\n    lilypond['embedded-scheme'].inside['scheme'].inside[\n      'embedded-lilypond'\n    ].inside['lilypond'].inside = lilypond\n    Prism.languages.ly = lilypond\n  })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = liquid\nliquid.displayName = 'liquid'\nliquid.aliases = []\nfunction liquid(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  Prism.languages.liquid = {\n    comment: {\n      pattern: /(^\\{%\\s*comment\\s*%\\})[\\s\\S]+(?=\\{%\\s*endcomment\\s*%\\}$)/,\n      lookbehind: true\n    },\n    delimiter: {\n      pattern: /^\\{(?:\\{\\{|[%\\{])-?|-?(?:\\}\\}|[%\\}])\\}$/,\n      alias: 'punctuation'\n    },\n    string: {\n      pattern: /\"[^\"]*\"|'[^']*'/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:as|assign|break|(?:end)?(?:capture|case|comment|for|form|if|paginate|raw|style|tablerow|unless)|continue|cycle|decrement|echo|else|elsif|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\\b/,\n    object:\n      /\\b(?:address|all_country_option_tags|article|block|blog|cart|checkout|collection|color|country|country_option_tags|currency|current_page|current_tags|customer|customer_address|date|discount_allocation|discount_application|external_video|filter|filter_value|font|forloop|fulfillment|generic_file|gift_card|group|handle|image|line_item|link|linklist|localization|location|measurement|media|metafield|model|model_source|order|page|page_description|page_image|page_title|part|policy|product|product_option|recommendations|request|robots|routes|rule|script|search|selling_plan|selling_plan_allocation|selling_plan_group|shipping_method|shop|shop_locale|sitemap|store_availability|tax_line|template|theme|transaction|unit_price_measurement|user_agent|variant|video|video_source)\\b/,\n    function: [\n      {\n        pattern: /(\\|\\s*)\\w+/,\n        lookbehind: true,\n        alias: 'filter'\n      },\n      {\n        // array functions\n        pattern: /(\\.\\s*)(?:first|last|size)/,\n        lookbehind: true\n      }\n    ],\n    boolean: /\\b(?:false|nil|true)\\b/,\n    range: {\n      pattern: /\\.\\./,\n      alias: 'operator'\n    },\n    // https://github.com/Shopify/liquid/blob/698f5e0d967423e013f6169d9111bd969bd78337/lib/liquid/lexer.rb#L21\n    number: /\\b\\d+(?:\\.\\d+)?\\b/,\n    operator: /[!=]=|<>|[<>]=?|[|?:=-]|\\b(?:and|contains(?=\\s)|or)\\b/,\n    punctuation: /[.,\\[\\]()]/,\n    empty: {\n      pattern: /\\bempty\\b/,\n      alias: 'keyword'\n    }\n  }\n  Prism.hooks.add('before-tokenize', function (env) {\n    var liquidPattern =\n      /\\{%\\s*comment\\s*%\\}[\\s\\S]*?\\{%\\s*endcomment\\s*%\\}|\\{(?:%[\\s\\S]*?%|\\{\\{[\\s\\S]*?\\}\\}|\\{[\\s\\S]*?\\})\\}/g\n    var insideRaw = false\n    Prism.languages['markup-templating'].buildPlaceholders(\n      env,\n      'liquid',\n      liquidPattern,\n      function (match) {\n        var tagMatch = /^\\{%-?\\s*(\\w+)/.exec(match)\n        if (tagMatch) {\n          var tag = tagMatch[1]\n          if (tag === 'raw' && !insideRaw) {\n            insideRaw = true\n            return true\n          } else if (tag === 'endraw') {\n            insideRaw = false\n            return true\n          }\n        }\n        return !insideRaw\n      }\n    )\n  })\n  Prism.hooks.add('after-tokenize', function (env) {\n    Prism.languages['markup-templating'].tokenizePlaceholders(env, 'liquid')\n  })\n}\n","'use strict'\n\nmodule.exports = lisp\nlisp.displayName = 'lisp'\nlisp.aliases = []\nfunction lisp(Prism) {\n  ;(function (Prism) {\n    /**\n     * Functions to construct regular expressions\n     * e.g. (interactive ... or (interactive)\n     *\n     * @param {string} name\n     * @returns {RegExp}\n     */\n    function simple_form(name) {\n      return RegExp(/(\\()/.source + '(?:' + name + ')' + /(?=[\\s\\)])/.source)\n    }\n    /**\n     * booleans and numbers\n     *\n     * @param {string} pattern\n     * @returns {RegExp}\n     */\n    function primitive(pattern) {\n      return RegExp(\n        /([\\s([])/.source + '(?:' + pattern + ')' + /(?=[\\s)])/.source\n      )\n    } // Patterns in regular expressions\n    // Symbol name. See https://www.gnu.org/software/emacs/manual/html_node/elisp/Symbol-Type.html\n    // & and : are excluded as they are usually used for special purposes\n    var symbol = /(?!\\d)[-+*/~!@$%^=<>{}\\w]+/.source // symbol starting with & used in function arguments\n    var marker = '&' + symbol // Open parenthesis for look-behind\n    var par = '(\\\\()'\n    var endpar = '(?=\\\\))' // End the pattern with look-ahead space\n    var space = '(?=\\\\s)'\n    var nestedPar =\n      /(?:[^()]|\\((?:[^()]|\\((?:[^()]|\\((?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))*\\))*\\))*\\))*/\n        .source\n    var language = {\n      // Three or four semicolons are considered a heading.\n      // See https://www.gnu.org/software/emacs/manual/html_node/elisp/Comment-Tips.html\n      heading: {\n        pattern: /;;;.*/,\n        alias: ['comment', 'title']\n      },\n      comment: /;.*/,\n      string: {\n        pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n        greedy: true,\n        inside: {\n          argument: /[-A-Z]+(?=[.,\\s])/,\n          symbol: RegExp('`' + symbol + \"'\")\n        }\n      },\n      'quoted-symbol': {\n        pattern: RegExp(\"#?'\" + symbol),\n        alias: ['variable', 'symbol']\n      },\n      'lisp-property': {\n        pattern: RegExp(':' + symbol),\n        alias: 'property'\n      },\n      splice: {\n        pattern: RegExp(',@?' + symbol),\n        alias: ['symbol', 'variable']\n      },\n      keyword: [\n        {\n          pattern: RegExp(\n            par +\n              '(?:and|(?:cl-)?letf|cl-loop|cond|cons|error|if|(?:lexical-)?let\\\\*?|message|not|null|or|provide|require|setq|unless|use-package|when|while)' +\n              space\n          ),\n          lookbehind: true\n        },\n        {\n          pattern: RegExp(\n            par +\n              '(?:append|by|collect|concat|do|finally|for|in|return)' +\n              space\n          ),\n          lookbehind: true\n        }\n      ],\n      declare: {\n        pattern: simple_form(/declare/.source),\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      interactive: {\n        pattern: simple_form(/interactive/.source),\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      boolean: {\n        pattern: primitive(/nil|t/.source),\n        lookbehind: true\n      },\n      number: {\n        pattern: primitive(/[-+]?\\d+(?:\\.\\d*)?/.source),\n        lookbehind: true\n      },\n      defvar: {\n        pattern: RegExp(par + 'def(?:const|custom|group|var)\\\\s+' + symbol),\n        lookbehind: true,\n        inside: {\n          keyword: /^def[a-z]+/,\n          variable: RegExp(symbol)\n        }\n      },\n      defun: {\n        pattern: RegExp(\n          par +\n            /(?:cl-)?(?:defmacro|defun\\*?)\\s+/.source +\n            symbol +\n            /\\s+\\(/.source +\n            nestedPar +\n            /\\)/.source\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          keyword: /^(?:cl-)?def\\S+/,\n          // See below, this property needs to be defined later so that it can\n          // reference the language object.\n          arguments: null,\n          function: {\n            pattern: RegExp('(^\\\\s)' + symbol),\n            lookbehind: true\n          },\n          punctuation: /[()]/\n        }\n      },\n      lambda: {\n        pattern: RegExp(\n          par +\n            'lambda\\\\s+\\\\(\\\\s*(?:&?' +\n            symbol +\n            '(?:\\\\s+&?' +\n            symbol +\n            ')*\\\\s*)?\\\\)'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          keyword: /^lambda/,\n          // See below, this property needs to be defined later so that it can\n          // reference the language object.\n          arguments: null,\n          punctuation: /[()]/\n        }\n      },\n      car: {\n        pattern: RegExp(par + symbol),\n        lookbehind: true\n      },\n      punctuation: [\n        // open paren, brackets, and close paren\n        /(?:['`,]?\\(|[)\\[\\]])/, // cons\n        {\n          pattern: /(\\s)\\.(?=\\s)/,\n          lookbehind: true\n        }\n      ]\n    }\n    var arg = {\n      'lisp-marker': RegExp(marker),\n      varform: {\n        pattern: RegExp(\n          /\\(/.source + symbol + /\\s+(?=\\S)/.source + nestedPar + /\\)/.source\n        ),\n        inside: language\n      },\n      argument: {\n        pattern: RegExp(/(^|[\\s(])/.source + symbol),\n        lookbehind: true,\n        alias: 'variable'\n      },\n      rest: language\n    }\n    var forms = '\\\\S+(?:\\\\s+\\\\S+)*'\n    var arglist = {\n      pattern: RegExp(par + nestedPar + endpar),\n      lookbehind: true,\n      inside: {\n        'rest-vars': {\n          pattern: RegExp('&(?:body|rest)\\\\s+' + forms),\n          inside: arg\n        },\n        'other-marker-vars': {\n          pattern: RegExp('&(?:aux|optional)\\\\s+' + forms),\n          inside: arg\n        },\n        keys: {\n          pattern: RegExp('&key\\\\s+' + forms + '(?:\\\\s+&allow-other-keys)?'),\n          inside: arg\n        },\n        argument: {\n          pattern: RegExp(symbol),\n          alias: 'variable'\n        },\n        punctuation: /[()]/\n      }\n    }\n    language['lambda'].inside.arguments = arglist\n    language['defun'].inside.arguments = Prism.util.clone(arglist)\n    language['defun'].inside.arguments.inside.sublist = arglist\n    Prism.languages.lisp = language\n    Prism.languages.elisp = language\n    Prism.languages.emacs = language\n    Prism.languages['emacs-lisp'] = language\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = livescript\nlivescript.displayName = 'livescript'\nlivescript.aliases = []\nfunction livescript(Prism) {\n  Prism.languages.livescript = {\n    comment: [\n      {\n        pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|[^\\\\])#.*/,\n        lookbehind: true\n      }\n    ],\n    'interpolated-string': {\n      /* Look-behind and look-ahead prevents wrong behavior of the greedy pattern\n       * forcing it to match \"\"\"-quoted string when it would otherwise match \"-quoted first. */\n      pattern: /(^|[^\"])(\"\"\"|\")(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2(?!\")/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        variable: {\n          pattern: /(^|[^\\\\])#[a-z_](?:-?[a-z]|[\\d_])*/m,\n          lookbehind: true\n        },\n        interpolation: {\n          pattern: /(^|[^\\\\])#\\{[^}]+\\}/m,\n          lookbehind: true,\n          inside: {\n            'interpolation-punctuation': {\n              pattern: /^#\\{|\\}$/,\n              alias: 'variable'\n            } // See rest below\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    },\n    string: [\n      {\n        pattern: /('''|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n        greedy: true\n      },\n      {\n        pattern: /<\\[[\\s\\S]*?\\]>/,\n        greedy: true\n      },\n      /\\\\[^\\s,;\\])}]+/\n    ],\n    regex: [\n      {\n        pattern: /\\/\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|(?!\\/\\/)[^\\\\\\[])+\\/\\/[gimyu]{0,5}/,\n        greedy: true,\n        inside: {\n          comment: {\n            pattern: /(^|[^\\\\])#.*/,\n            lookbehind: true\n          }\n        }\n      },\n      {\n        pattern: /\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/[gimyu]{0,5}/,\n        greedy: true\n      }\n    ],\n    keyword: {\n      pattern:\n        /(^|(?!-).)\\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\\b/m,\n      lookbehind: true\n    },\n    'keyword-operator': {\n      pattern:\n        /(^|[^-])\\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?: not|nt)?|not|of|or|til|to|typeof|with|xor)(?!-)\\b)/m,\n      lookbehind: true,\n      alias: 'operator'\n    },\n    boolean: {\n      pattern: /(^|[^-])\\b(?:false|no|off|on|true|yes)(?!-)\\b/m,\n      lookbehind: true\n    },\n    argument: {\n      // Don't match .&. nor &&\n      pattern: /(^|(?!\\.&\\.)[^&])&(?!&)\\d*/m,\n      lookbehind: true,\n      alias: 'variable'\n    },\n    number: /\\b(?:\\d+~[\\da-z]+|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[a-z]\\w*)?)/i,\n    identifier: /[a-z_](?:-?[a-z]|[\\d_])*/i,\n    operator: [\n      // Spaced .\n      {\n        pattern: /( )\\.(?= )/,\n        lookbehind: true\n      }, // Full list, in order:\n      // .= .~ .. ...\n      // .&. .^. .<<. .>>. .>>>.\n      // := :: ::=\n      // &&\n      // || |>\n      // < << <<< <<<<\n      // <- <-- <-! <--!\n      // <~ <~~ <~! <~~!\n      // <| <= <?\n      // > >> >= >?\n      // - -- -> -->\n      // + ++\n      // @ @@\n      // % %%\n      // * **\n      // ! != !~=\n      // !~> !~~>\n      // !-> !-->\n      // ~ ~> ~~> ~=\n      // = ==\n      // ^ ^^\n      // / ?\n      /\\.(?:[=~]|\\.\\.?)|\\.(?:[&|^]|<<|>>>?)\\.|:(?:=|:=?)|&&|\\|[|>]|<(?:<<?<?|--?!?|~~?!?|[|=?])?|>[>=?]?|-(?:->?|>)?|\\+\\+?|@@?|%%?|\\*\\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\\^\\^?|[\\/?]/\n    ],\n    punctuation: /[(){}\\[\\]|.,:;`]/\n  }\n  Prism.languages.livescript['interpolated-string'].inside[\n    'interpolation'\n  ].inside.rest = Prism.languages.livescript\n}\n","'use strict'\n\nmodule.exports = llvm\nllvm.displayName = 'llvm'\nllvm.aliases = []\nfunction llvm(Prism) {\n  ;(function (Prism) {\n    Prism.languages.llvm = {\n      comment: /;.*/,\n      string: {\n        pattern: /\"[^\"]*\"/,\n        greedy: true\n      },\n      boolean: /\\b(?:false|true)\\b/,\n      variable: /[%@!#](?:(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+|\\d+)/i,\n      label: /(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+:/i,\n      type: {\n        pattern:\n          /\\b(?:double|float|fp128|half|i[1-9]\\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\\b/,\n        alias: 'class-name'\n      },\n      keyword: /\\b[a-z_][a-z_0-9]*\\b/,\n      number:\n        /[+-]?\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-Fa-f]+\\b|\\b0xK[\\dA-Fa-f]{20}\\b|\\b0x[ML][\\dA-Fa-f]{32}\\b|\\b0xH[\\dA-Fa-f]{4}\\b/,\n      punctuation: /[{}[\\];(),.!*=<>]/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = log\nlog.displayName = 'log'\nlog.aliases = []\nfunction log(Prism) {\n  // This is a language definition for generic log files.\n  // Since there is no one log format, this language definition has to support all formats to some degree.\n  //\n  // Based on https://github.com/MTDL9/vim-log-highlighting\n  Prism.languages.log = {\n    string: {\n      // Single-quoted strings must not be confused with plain text. E.g. Can't isn't Susan's Chris' toy\n      pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?![st] | \\w)(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n      greedy: true\n    },\n    exception: {\n      pattern:\n        /(^|[^\\w.])[a-z][\\w.]*(?:Error|Exception):.*(?:(?:\\r\\n?|\\n)[ \\t]*(?:at[ \\t].+|\\.{3}.*|Caused by:.*))+(?:(?:\\r\\n?|\\n)[ \\t]*\\.\\.\\. .*)?/,\n      lookbehind: true,\n      greedy: true,\n      alias: ['javastacktrace', 'language-javastacktrace'],\n      inside: Prism.languages['javastacktrace'] || {\n        keyword: /\\bat\\b/,\n        function: /[a-z_][\\w$]*(?=\\()/,\n        punctuation: /[.:()]/\n      }\n    },\n    level: [\n      {\n        pattern:\n          /\\b(?:ALERT|CRIT|CRITICAL|EMERG|EMERGENCY|ERR|ERROR|FAILURE|FATAL|SEVERE)\\b/,\n        alias: ['error', 'important']\n      },\n      {\n        pattern: /\\b(?:WARN|WARNING|WRN)\\b/,\n        alias: ['warning', 'important']\n      },\n      {\n        pattern: /\\b(?:DISPLAY|INF|INFO|NOTICE|STATUS)\\b/,\n        alias: ['info', 'keyword']\n      },\n      {\n        pattern: /\\b(?:DBG|DEBUG|FINE)\\b/,\n        alias: ['debug', 'keyword']\n      },\n      {\n        pattern: /\\b(?:FINER|FINEST|TRACE|TRC|VERBOSE|VRB)\\b/,\n        alias: ['trace', 'comment']\n      }\n    ],\n    property: {\n      pattern:\n        /((?:^|[\\]|])[ \\t]*)[a-z_](?:[\\w-]|\\b\\/\\b)*(?:[. ]\\(?\\w(?:[\\w-]|\\b\\/\\b)*\\)?)*:(?=\\s)/im,\n      lookbehind: true\n    },\n    separator: {\n      pattern: /(^|[^-+])-{3,}|={3,}|\\*{3,}|- - /m,\n      lookbehind: true,\n      alias: 'comment'\n    },\n    url: /\\b(?:file|ftp|https?):\\/\\/[^\\s|,;'\"]*[^\\s|,;'\">.]/,\n    email: {\n      pattern: /(^|\\s)[-\\w+.]+@[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*)+(?=\\s)/,\n      lookbehind: true,\n      alias: 'url'\n    },\n    'ip-address': {\n      pattern: /\\b(?:\\d{1,3}(?:\\.\\d{1,3}){3})\\b/,\n      alias: 'constant'\n    },\n    'mac-address': {\n      pattern: /\\b[a-f0-9]{2}(?::[a-f0-9]{2}){5}\\b/i,\n      alias: 'constant'\n    },\n    domain: {\n      pattern:\n        /(^|\\s)[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*)*\\.[a-z][a-z0-9-]+(?=\\s)/,\n      lookbehind: true,\n      alias: 'constant'\n    },\n    uuid: {\n      pattern:\n        /\\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\b/i,\n      alias: 'constant'\n    },\n    hash: {\n      pattern: /\\b(?:[a-f0-9]{32}){1,2}\\b/i,\n      alias: 'constant'\n    },\n    'file-path': {\n      pattern:\n        /\\b[a-z]:[\\\\/][^\\s|,;:(){}\\[\\]\"']+|(^|[\\s:\\[\\](>|])\\.{0,2}\\/\\w[^\\s|,;:(){}\\[\\]\"']*/i,\n      lookbehind: true,\n      greedy: true,\n      alias: 'string'\n    },\n    date: {\n      pattern: RegExp(\n        /\\b\\d{4}[-/]\\d{2}[-/]\\d{2}(?:T(?=\\d{1,2}:)|(?=\\s\\d{1,2}:))/.source +\n          '|' +\n          /\\b\\d{1,4}[-/ ](?:\\d{1,2}|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)[-/ ]\\d{2,4}T?\\b/\n            .source +\n          '|' +\n          /\\b(?:(?:Fri|Mon|Sat|Sun|Thu|Tue|Wed)(?:\\s{1,2}(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep))?|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)\\s{1,2}\\d{1,2}\\b/\n            .source,\n        'i'\n      ),\n      alias: 'number'\n    },\n    time: {\n      pattern:\n        /\\b\\d{1,2}:\\d{1,2}:\\d{1,2}(?:[.,:]\\d+)?(?:\\s?[+-]\\d{2}:?\\d{2}|Z)?\\b/,\n      alias: 'number'\n    },\n    boolean: /\\b(?:false|null|true)\\b/i,\n    number: {\n      pattern:\n        /(^|[^.\\w])(?:0x[a-f0-9]+|0o[0-7]+|0b[01]+|v?\\d[\\da-f]*(?:\\.\\d+)*(?:e[+-]?\\d+)?[a-z]{0,3}\\b)\\b(?!\\.\\w)/i,\n      lookbehind: true\n    },\n    operator: /[;:?<=>~/@!$%&+\\-|^(){}*#]/,\n    punctuation: /[\\[\\].,]/\n  }\n}\n","'use strict'\n\nmodule.exports = lolcode\nlolcode.displayName = 'lolcode'\nlolcode.aliases = []\nfunction lolcode(Prism) {\n  Prism.languages.lolcode = {\n    comment: [/\\bOBTW\\s[\\s\\S]*?\\sTLDR\\b/, /\\bBTW.+/],\n    string: {\n      pattern: /\"(?::.|[^\":])*\"/,\n      inside: {\n        variable: /:\\{[^}]+\\}/,\n        symbol: [/:\\([a-f\\d]+\\)/i, /:\\[[^\\]]+\\]/, /:[)>o\":]/]\n      },\n      greedy: true\n    },\n    number: /(?:\\B-)?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)/,\n    symbol: {\n      pattern: /(^|\\s)(?:A )?(?:BUKKIT|NOOB|NUMBAR|NUMBR|TROOF|YARN)(?=\\s|,|$)/,\n      lookbehind: true,\n      inside: {\n        keyword: /A(?=\\s)/\n      }\n    },\n    label: {\n      pattern: /((?:^|\\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\\w*/,\n      lookbehind: true,\n      alias: 'string'\n    },\n    function: {\n      pattern: /((?:^|\\s)(?:HOW IZ I|I IZ|IZ) )[a-zA-Z]\\w*/,\n      lookbehind: true\n    },\n    keyword: [\n      {\n        pattern:\n          /(^|\\s)(?:AN|FOUND YR|GIMMEH|GTFO|HAI|HAS A|HOW IZ I|I HAS A|I IZ|IF U SAY SO|IM IN YR|IM OUTTA YR|IS NOW(?: A)?|ITZ(?: A)?|IZ|KTHX|KTHXBYE|LIEK(?: A)?|MAEK|MEBBE|MKAY|NERFIN|NO WAI|O HAI IM|O RLY\\?|OIC|OMG|OMGWTF|R|SMOOSH|SRS|TIL|UPPIN|VISIBLE|WILE|WTF\\?|YA RLY|YR)(?=\\s|,|$)/,\n        lookbehind: true\n      },\n      /'Z(?=\\s|,|$)/\n    ],\n    boolean: {\n      pattern: /(^|\\s)(?:FAIL|WIN)(?=\\s|,|$)/,\n      lookbehind: true\n    },\n    variable: {\n      pattern: /(^|\\s)IT(?=\\s|,|$)/,\n      lookbehind: true\n    },\n    operator: {\n      pattern:\n        /(^|\\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:ALL|ANY|BIGGR|BOTH|DIFF|EITHER|MOD|PRODUKT|QUOSHUNT|SMALLR|SUM|WON) OF)(?=\\s|,|$)/,\n      lookbehind: true\n    },\n    punctuation: /\\.{3}|…|,|!/\n  }\n}\n","'use strict'\n\nmodule.exports = lua\nlua.displayName = 'lua'\nlua.aliases = []\nfunction lua(Prism) {\n  Prism.languages.lua = {\n    comment: /^#!.+|--(?:\\[(=*)\\[[\\s\\S]*?\\]\\1\\]|.*)/m,\n    // \\z may be used to skip the following space\n    string: {\n      pattern:\n        /([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\z(?:\\r\\n|\\s)|\\\\(?:\\r\\n|[^z]))*\\1|\\[(=*)\\[[\\s\\S]*?\\]\\2\\]/,\n      greedy: true\n    },\n    number:\n      /\\b0x[a-f\\d]+(?:\\.[a-f\\d]*)?(?:p[+-]?\\d+)?\\b|\\b\\d+(?:\\.\\B|(?:\\.\\d*)?(?:e[+-]?\\d+)?\\b)|\\B\\.\\d+(?:e[+-]?\\d+)?\\b/i,\n    keyword:\n      /\\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\\b/,\n    function: /(?!\\d)\\w+(?=\\s*(?:[({]))/,\n    operator: [\n      /[-+*%^&|#]|\\/\\/?|<[<=]?|>[>=]?|[=~]=?/,\n      {\n        // Match \"..\" but don't break \"...\"\n        pattern: /(^|[^.])\\.\\.(?!\\.)/,\n        lookbehind: true\n      }\n    ],\n    punctuation: /[\\[\\](){},;]|\\.+|:+/\n  }\n}\n","'use strict'\n\nmodule.exports = magma\nmagma.displayName = 'magma'\nmagma.aliases = []\nfunction magma(Prism) {\n  Prism.languages.magma = {\n    output: {\n      pattern:\n        /^(>.*(?:\\r(?:\\n|(?!\\n))|\\n))(?!>)(?:.+|(?:\\r(?:\\n|(?!\\n))|\\n)(?!>).*)(?:(?:\\r(?:\\n|(?!\\n))|\\n)(?!>).*)*/m,\n      lookbehind: true,\n      greedy: true\n    },\n    comment: {\n      pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n      greedy: true\n    },\n    string: {\n      pattern: /(^|[^\\\\\"])\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"/,\n      lookbehind: true,\n      greedy: true\n    },\n    // http://magma.maths.usyd.edu.au/magma/handbook/text/82\n    keyword:\n      /\\b(?:_|adj|and|assert|assert2|assert3|assigned|break|by|case|cat|catch|clear|cmpeq|cmpne|continue|declare|default|delete|diff|div|do|elif|else|end|eq|error|eval|exists|exit|for|forall|forward|fprintf|freeze|function|ge|gt|if|iload|import|in|intrinsic|is|join|le|load|local|lt|meet|mod|ne|not|notadj|notin|notsubset|or|print|printf|procedure|quit|random|read|readi|repeat|require|requirege|requirerange|restore|return|save|sdiff|select|subset|then|time|to|try|until|vprint|vprintf|vtime|when|where|while|xor)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    generator: {\n      pattern: /\\b[a-z_]\\w*(?=\\s*<)/i,\n      alias: 'class-name'\n    },\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    number: {\n      pattern:\n        /(^|[^\\w.]|\\.\\.)(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?(?:_[a-z]?)?(?=$|[^\\w.]|\\.\\.)/,\n      lookbehind: true\n    },\n    operator: /->|[-+*/^~!|#=]|:=|\\.\\./,\n    punctuation: /[()[\\]{}<>,;.:]/\n  }\n}\n","'use strict'\n\nmodule.exports = makefile\nmakefile.displayName = 'makefile'\nmakefile.aliases = []\nfunction makefile(Prism) {\n  Prism.languages.makefile = {\n    comment: {\n      pattern: /(^|[^\\\\])#(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])*/,\n      lookbehind: true\n    },\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    'builtin-target': {\n      pattern: /\\.[A-Z][^:#=\\s]+(?=\\s*:(?!=))/,\n      alias: 'builtin'\n    },\n    target: {\n      pattern: /^(?:[^:=\\s]|[ \\t]+(?![\\s:]))+(?=\\s*:(?!=))/m,\n      alias: 'symbol',\n      inside: {\n        variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|(?=[({]))/\n      }\n    },\n    variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|\\([@*%<^+?][DF]\\)|(?=[({]))/,\n    // Directives\n    keyword:\n      /-include\\b|\\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\\b/,\n    function: {\n      pattern:\n        /(\\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \\t])/,\n      lookbehind: true\n    },\n    operator: /(?:::|[?:+!])?=|[|@]/,\n    punctuation: /[:;(){}]/\n  }\n}\n","'use strict'\n\nmodule.exports = markdown\nmarkdown.displayName = 'markdown'\nmarkdown.aliases = ['md']\nfunction markdown(Prism) {\n  ;(function (Prism) {\n    // Allow only one line break\n    var inner = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source\n    /**\n     * This function is intended for the creation of the bold or italic pattern.\n     *\n     * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.\n     *\n     * _Note:_ Keep in mind that this adds a capturing group.\n     *\n     * @param {string} pattern\n     * @returns {RegExp}\n     */\n    function createInline(pattern) {\n      pattern = pattern.replace(/<inner>/g, function () {\n        return inner\n      })\n      return RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + '(?:' + pattern + ')')\n    }\n    var tableCell = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/\n      .source\n    var tableRow =\n      /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(\n        /__/g,\n        function () {\n          return tableCell\n        }\n      )\n    var tableLine =\n      /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/\n        .source\n    Prism.languages.markdown = Prism.languages.extend('markup', {})\n    Prism.languages.insertBefore('markdown', 'prolog', {\n      'front-matter-block': {\n        pattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          punctuation: /^---|---$/,\n          'front-matter': {\n            pattern: /\\S+(?:\\s+\\S+)*/,\n            alias: ['yaml', 'language-yaml'],\n            inside: Prism.languages.yaml\n          }\n        }\n      },\n      blockquote: {\n        // > ...\n        pattern: /^>(?:[\\t ]*>)*/m,\n        alias: 'punctuation'\n      },\n      table: {\n        pattern: RegExp(\n          '^' + tableRow + tableLine + '(?:' + tableRow + ')*',\n          'm'\n        ),\n        inside: {\n          'table-data-rows': {\n            pattern: RegExp(\n              '^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'\n            ),\n            lookbehind: true,\n            inside: {\n              'table-data': {\n                pattern: RegExp(tableCell),\n                inside: Prism.languages.markdown\n              },\n              punctuation: /\\|/\n            }\n          },\n          'table-line': {\n            pattern: RegExp('^(' + tableRow + ')' + tableLine + '$'),\n            lookbehind: true,\n            inside: {\n              punctuation: /\\||:?-{3,}:?/\n            }\n          },\n          'table-header-row': {\n            pattern: RegExp('^' + tableRow + '$'),\n            inside: {\n              'table-header': {\n                pattern: RegExp(tableCell),\n                alias: 'important',\n                inside: Prism.languages.markdown\n              },\n              punctuation: /\\|/\n            }\n          }\n        }\n      },\n      code: [\n        {\n          // Prefixed by 4 spaces or 1 tab and preceded by an empty line\n          pattern:\n            /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/,\n          lookbehind: true,\n          alias: 'keyword'\n        },\n        {\n          // ```optional language\n          // code block\n          // ```\n          pattern: /^```[\\s\\S]*?^```$/m,\n          greedy: true,\n          inside: {\n            'code-block': {\n              pattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m,\n              lookbehind: true\n            },\n            'code-language': {\n              pattern: /^(```).+/,\n              lookbehind: true\n            },\n            punctuation: /```/\n          }\n        }\n      ],\n      title: [\n        {\n          // title 1\n          // =======\n          // title 2\n          // -------\n          pattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m,\n          alias: 'important',\n          inside: {\n            punctuation: /==+$|--+$/\n          }\n        },\n        {\n          // # title 1\n          // ###### title 6\n          pattern: /(^\\s*)#.+/m,\n          lookbehind: true,\n          alias: 'important',\n          inside: {\n            punctuation: /^#+|#+$/\n          }\n        }\n      ],\n      hr: {\n        // ***\n        // ---\n        // * * *\n        // -----------\n        pattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      list: {\n        // * item\n        // + item\n        // - item\n        // 1. item\n        pattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      'url-reference': {\n        // [id]: http://example.com \"Optional title\"\n        // [id]: http://example.com 'Optional title'\n        // [id]: http://example.com (Optional title)\n        // [id]: <http://example.com> \"Optional title\"\n        pattern:\n          /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\n        inside: {\n          variable: {\n            pattern: /^(!?\\[)[^\\]]+/,\n            lookbehind: true\n          },\n          string:\n            /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\n          punctuation: /^[\\[\\]!:]|[<>]/\n        },\n        alias: 'url'\n      },\n      bold: {\n        // **strong**\n        // __strong__\n        // allow one nested instance of italic text using the same delimiter\n        pattern: createInline(\n          /\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/\n            .source\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          content: {\n            pattern: /(^..)[\\s\\S]+(?=..$)/,\n            lookbehind: true,\n            inside: {} // see below\n          },\n          punctuation: /\\*\\*|__/\n        }\n      },\n      italic: {\n        // *em*\n        // _em_\n        // allow one nested instance of bold text using the same delimiter\n        pattern: createInline(\n          /\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/\n            .source\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          content: {\n            pattern: /(^.)[\\s\\S]+(?=.$)/,\n            lookbehind: true,\n            inside: {} // see below\n          },\n          punctuation: /[*_]/\n        }\n      },\n      strike: {\n        // ~~strike through~~\n        // ~strike~\n        // eslint-disable-next-line regexp/strict\n        pattern: createInline(/(~~?)(?:(?!~)<inner>)+\\2/.source),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          content: {\n            pattern: /(^~~?)[\\s\\S]+(?=\\1$)/,\n            lookbehind: true,\n            inside: {} // see below\n          },\n          punctuation: /~~?/\n        }\n      },\n      'code-snippet': {\n        // `code`\n        // ``code``\n        pattern:\n          /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/,\n        lookbehind: true,\n        greedy: true,\n        alias: ['code', 'keyword']\n      },\n      url: {\n        // [example](http://example.com \"Optional title\")\n        // [example][id]\n        // [example] [id]\n        pattern: createInline(\n          /!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/\n            .source\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          operator: /^!/,\n          content: {\n            pattern: /(^\\[)[^\\]]+(?=\\])/,\n            lookbehind: true,\n            inside: {} // see below\n          },\n          variable: {\n            pattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/,\n            lookbehind: true\n          },\n          url: {\n            pattern: /(^\\]\\()[^\\s)]+/,\n            lookbehind: true\n          },\n          string: {\n            pattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/,\n            lookbehind: true\n          }\n        }\n      }\n    })\n    ;['url', 'bold', 'italic', 'strike'].forEach(function (token) {\n      ;['url', 'bold', 'italic', 'strike', 'code-snippet'].forEach(function (\n        inside\n      ) {\n        if (token !== inside) {\n          Prism.languages.markdown[token].inside.content.inside[inside] =\n            Prism.languages.markdown[inside]\n        }\n      })\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      if (env.language !== 'markdown' && env.language !== 'md') {\n        return\n      }\n      function walkTokens(tokens) {\n        if (!tokens || typeof tokens === 'string') {\n          return\n        }\n        for (var i = 0, l = tokens.length; i < l; i++) {\n          var token = tokens[i]\n          if (token.type !== 'code') {\n            walkTokens(token.content)\n            continue\n          }\n          /*\n           * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token\n           * is optional. But the grammar is defined so that there is only one case we have to handle:\n           *\n           * token.content = [\n           *     <span class=\"punctuation\">```</span>,\n           *     <span class=\"code-language\">xxxx</span>,\n           *     '\\n', // exactly one new lines (\\r or \\n or \\r\\n)\n           *     <span class=\"code-block\">...</span>,\n           *     '\\n', // exactly one new lines again\n           *     <span class=\"punctuation\">```</span>\n           * ];\n           */\n          var codeLang = token.content[1]\n          var codeBlock = token.content[3]\n          if (\n            codeLang &&\n            codeBlock &&\n            codeLang.type === 'code-language' &&\n            codeBlock.type === 'code-block' &&\n            typeof codeLang.content === 'string'\n          ) {\n            // this might be a language that Prism does not support\n            // do some replacements to support C++, C#, and F#\n            var lang = codeLang.content\n              .replace(/\\b#/g, 'sharp')\n              .replace(/\\b\\+\\+/g, 'pp') // only use the first word\n            lang = (/[a-z][\\w-]*/i.exec(lang) || [''])[0].toLowerCase()\n            var alias = 'language-' + lang // add alias\n            if (!codeBlock.alias) {\n              codeBlock.alias = [alias]\n            } else if (typeof codeBlock.alias === 'string') {\n              codeBlock.alias = [codeBlock.alias, alias]\n            } else {\n              codeBlock.alias.push(alias)\n            }\n          }\n        }\n      }\n      walkTokens(env.tokens)\n    })\n    Prism.hooks.add('wrap', function (env) {\n      if (env.type !== 'code-block') {\n        return\n      }\n      var codeLang = ''\n      for (var i = 0, l = env.classes.length; i < l; i++) {\n        var cls = env.classes[i]\n        var match = /language-(.+)/.exec(cls)\n        if (match) {\n          codeLang = match[1]\n          break\n        }\n      }\n      var grammar = Prism.languages[codeLang]\n      if (!grammar) {\n        if (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) {\n          var id =\n            'md-' +\n            new Date().valueOf() +\n            '-' +\n            Math.floor(Math.random() * 1e16)\n          env.attributes['id'] = id\n          Prism.plugins.autoloader.loadLanguages(codeLang, function () {\n            var ele = document.getElementById(id)\n            if (ele) {\n              ele.innerHTML = Prism.highlight(\n                ele.textContent,\n                Prism.languages[codeLang],\n                codeLang\n              )\n            }\n          })\n        }\n      } else {\n        env.content = Prism.highlight(\n          textContent(env.content.value),\n          grammar,\n          codeLang\n        )\n      }\n    })\n    var tagPattern = RegExp(Prism.languages.markup.tag.pattern.source, 'gi')\n    /**\n     * A list of known entity names.\n     *\n     * This will always be incomplete to save space. The current list is the one used by lowdash's unescape function.\n     *\n     * @see {@link https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/unescape.js#L2}\n     */\n    var KNOWN_ENTITY_NAMES = {\n      amp: '&',\n      lt: '<',\n      gt: '>',\n      quot: '\"'\n    } // IE 11 doesn't support `String.fromCodePoint`\n    var fromCodePoint = String.fromCodePoint || String.fromCharCode\n    /**\n     * Returns the text content of a given HTML source code string.\n     *\n     * @param {string} html\n     * @returns {string}\n     */\n    function textContent(html) {\n      // remove all tags\n      var text = html.replace(tagPattern, '') // decode known entities\n      text = text.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function (m, code) {\n        code = code.toLowerCase()\n        if (code[0] === '#') {\n          var value\n          if (code[1] === 'x') {\n            value = parseInt(code.slice(2), 16)\n          } else {\n            value = Number(code.slice(1))\n          }\n          return fromCodePoint(value)\n        } else {\n          var known = KNOWN_ENTITY_NAMES[code]\n          if (known) {\n            return known\n          } // unable to decode\n          return m\n        }\n      })\n      return text\n    }\n    Prism.languages.md = Prism.languages.markdown\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = markupTemplating\nmarkupTemplating.displayName = 'markupTemplating'\nmarkupTemplating.aliases = []\nfunction markupTemplating(Prism) {\n  ;(function (Prism) {\n    /**\n     * Returns the placeholder for the given language id and index.\n     *\n     * @param {string} language\n     * @param {string|number} index\n     * @returns {string}\n     */\n    function getPlaceholder(language, index) {\n      return '___' + language.toUpperCase() + index + '___'\n    }\n    Object.defineProperties((Prism.languages['markup-templating'] = {}), {\n      buildPlaceholders: {\n        /**\n         * Tokenize all inline templating expressions matching `placeholderPattern`.\n         *\n         * If `replaceFilter` is provided, only matches of `placeholderPattern` for which `replaceFilter` returns\n         * `true` will be replaced.\n         *\n         * @param {object} env The environment of the `before-tokenize` hook.\n         * @param {string} language The language id.\n         * @param {RegExp} placeholderPattern The matches of this pattern will be replaced by placeholders.\n         * @param {(match: string) => boolean} [replaceFilter]\n         */\n        value: function (env, language, placeholderPattern, replaceFilter) {\n          if (env.language !== language) {\n            return\n          }\n          var tokenStack = (env.tokenStack = [])\n          env.code = env.code.replace(placeholderPattern, function (match) {\n            if (typeof replaceFilter === 'function' && !replaceFilter(match)) {\n              return match\n            }\n            var i = tokenStack.length\n            var placeholder // Check for existing strings\n            while (\n              env.code.indexOf((placeholder = getPlaceholder(language, i))) !==\n              -1\n            ) {\n              ++i\n            } // Create a sparse array\n            tokenStack[i] = match\n            return placeholder\n          }) // Switch the grammar to markup\n          env.grammar = Prism.languages.markup\n        }\n      },\n      tokenizePlaceholders: {\n        /**\n         * Replace placeholders with proper tokens after tokenizing.\n         *\n         * @param {object} env The environment of the `after-tokenize` hook.\n         * @param {string} language The language id.\n         */\n        value: function (env, language) {\n          if (env.language !== language || !env.tokenStack) {\n            return\n          } // Switch the grammar back\n          env.grammar = Prism.languages[language]\n          var j = 0\n          var keys = Object.keys(env.tokenStack)\n          function walkTokens(tokens) {\n            for (var i = 0; i < tokens.length; i++) {\n              // all placeholders are replaced already\n              if (j >= keys.length) {\n                break\n              }\n              var token = tokens[i]\n              if (\n                typeof token === 'string' ||\n                (token.content && typeof token.content === 'string')\n              ) {\n                var k = keys[j]\n                var t = env.tokenStack[k]\n                var s = typeof token === 'string' ? token : token.content\n                var placeholder = getPlaceholder(language, k)\n                var index = s.indexOf(placeholder)\n                if (index > -1) {\n                  ++j\n                  var before = s.substring(0, index)\n                  var middle = new Prism.Token(\n                    language,\n                    Prism.tokenize(t, env.grammar),\n                    'language-' + language,\n                    t\n                  )\n                  var after = s.substring(index + placeholder.length)\n                  var replacement = []\n                  if (before) {\n                    replacement.push.apply(replacement, walkTokens([before]))\n                  }\n                  replacement.push(middle)\n                  if (after) {\n                    replacement.push.apply(replacement, walkTokens([after]))\n                  }\n                  if (typeof token === 'string') {\n                    tokens.splice.apply(tokens, [i, 1].concat(replacement))\n                  } else {\n                    token.content = replacement\n                  }\n                }\n              } else if (\n                token.content\n                /* && typeof token.content !== 'string' */\n              ) {\n                walkTokens(token.content)\n              }\n            }\n            return tokens\n          }\n          walkTokens(env.tokens)\n        }\n      }\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = markup\nmarkup.displayName = 'markup'\nmarkup.aliases = ['html', 'mathml', 'svg', 'xml', 'ssml', 'atom', 'rss']\nfunction markup(Prism) {\n  Prism.languages.markup = {\n    comment: {\n      pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n      greedy: true\n    },\n    prolog: {\n      pattern: /<\\?[\\s\\S]+?\\?>/,\n      greedy: true\n    },\n    doctype: {\n      // https://www.w3.org/TR/xml/#NT-doctypedecl\n      pattern:\n        /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n      greedy: true,\n      inside: {\n        'internal-subset': {\n          pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n          lookbehind: true,\n          greedy: true,\n          inside: null // see below\n        },\n        string: {\n          pattern: /\"[^\"]*\"|'[^']*'/,\n          greedy: true\n        },\n        punctuation: /^<!|>$|[[\\]]/,\n        'doctype-tag': /^DOCTYPE/i,\n        name: /[^\\s<>'\"]+/\n      }\n    },\n    cdata: {\n      pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n      greedy: true\n    },\n    tag: {\n      pattern:\n        /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n      greedy: true,\n      inside: {\n        tag: {\n          pattern: /^<\\/?[^\\s>\\/]+/,\n          inside: {\n            punctuation: /^<\\/?/,\n            namespace: /^[^\\s>\\/:]+:/\n          }\n        },\n        'special-attr': [],\n        'attr-value': {\n          pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n          inside: {\n            punctuation: [\n              {\n                pattern: /^=/,\n                alias: 'attr-equals'\n              },\n              /\"|'/\n            ]\n          }\n        },\n        punctuation: /\\/?>/,\n        'attr-name': {\n          pattern: /[^\\s>\\/]+/,\n          inside: {\n            namespace: /^[^\\s>\\/:]+:/\n          }\n        }\n      }\n    },\n    entity: [\n      {\n        pattern: /&[\\da-z]{1,8};/i,\n        alias: 'named-entity'\n      },\n      /&#x?[\\da-f]{1,8};/i\n    ]\n  }\n  Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n    Prism.languages.markup['entity']\n  Prism.languages.markup['doctype'].inside['internal-subset'].inside =\n    Prism.languages.markup // Plugin to make entity title show the real entity, idea by Roman Komarov\n  Prism.hooks.add('wrap', function (env) {\n    if (env.type === 'entity') {\n      env.attributes['title'] = env.content.value.replace(/&amp;/, '&')\n    }\n  })\n  Object.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n    /**\n     * Adds an inlined language to markup.\n     *\n     * An example of an inlined language is CSS with `<style>` tags.\n     *\n     * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n     * case insensitive.\n     * @param {string} lang The language key.\n     * @example\n     * addInlined('style', 'css');\n     */\n    value: function addInlined(tagName, lang) {\n      var includedCdataInside = {}\n      includedCdataInside['language-' + lang] = {\n        pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n        lookbehind: true,\n        inside: Prism.languages[lang]\n      }\n      includedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i\n      var inside = {\n        'included-cdata': {\n          pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n          inside: includedCdataInside\n        }\n      }\n      inside['language-' + lang] = {\n        pattern: /[\\s\\S]+/,\n        inside: Prism.languages[lang]\n      }\n      var def = {}\n      def[tagName] = {\n        pattern: RegExp(\n          /(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(\n            /__/g,\n            function () {\n              return tagName\n            }\n          ),\n          'i'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: inside\n      }\n      Prism.languages.insertBefore('markup', 'cdata', def)\n    }\n  })\n  Object.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n    /**\n     * Adds an pattern to highlight languages embedded in HTML attributes.\n     *\n     * An example of an inlined language is CSS with `style` attributes.\n     *\n     * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n     * case insensitive.\n     * @param {string} lang The language key.\n     * @example\n     * addAttribute('style', 'css');\n     */\n    value: function (attrName, lang) {\n      Prism.languages.markup.tag.inside['special-attr'].push({\n        pattern: RegExp(\n          /(^|[\"'\\s])/.source +\n            '(?:' +\n            attrName +\n            ')' +\n            /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source,\n          'i'\n        ),\n        lookbehind: true,\n        inside: {\n          'attr-name': /^[^\\s=]+/,\n          'attr-value': {\n            pattern: /=[\\s\\S]+/,\n            inside: {\n              value: {\n                pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n                lookbehind: true,\n                alias: [lang, 'language-' + lang],\n                inside: Prism.languages[lang]\n              },\n              punctuation: [\n                {\n                  pattern: /^=/,\n                  alias: 'attr-equals'\n                },\n                /\"|'/\n              ]\n            }\n          }\n        }\n      })\n    }\n  })\n  Prism.languages.html = Prism.languages.markup\n  Prism.languages.mathml = Prism.languages.markup\n  Prism.languages.svg = Prism.languages.markup\n  Prism.languages.xml = Prism.languages.extend('markup', {})\n  Prism.languages.ssml = Prism.languages.xml\n  Prism.languages.atom = Prism.languages.xml\n  Prism.languages.rss = Prism.languages.xml\n}\n","'use strict'\n\nmodule.exports = matlab\nmatlab.displayName = 'matlab'\nmatlab.aliases = []\nfunction matlab(Prism) {\n  Prism.languages.matlab = {\n    comment: [/%\\{[\\s\\S]*?\\}%/, /%.+/],\n    string: {\n      pattern: /\\B'(?:''|[^'\\r\\n])*'/,\n      greedy: true\n    },\n    // FIXME We could handle imaginary numbers as a whole\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?(?:[ij])?|\\b[ij]\\b/,\n    keyword:\n      /\\b(?:NaN|break|case|catch|continue|else|elseif|end|for|function|if|inf|otherwise|parfor|pause|pi|return|switch|try|while)\\b/,\n    function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n    operator: /\\.?[*^\\/\\\\']|[+\\-:@]|[<>=~]=?|&&?|\\|\\|?/,\n    punctuation: /\\.{3}|[.,;\\[\\](){}!]/\n  }\n}\n","'use strict'\n\nmodule.exports = maxscript\nmaxscript.displayName = 'maxscript'\nmaxscript.aliases = []\nfunction maxscript(Prism) {\n  ;(function (Prism) {\n    var keywords =\n      /\\b(?:about|and|animate|as|at|attributes|by|case|catch|collect|continue|coordsys|do|else|exit|fn|for|from|function|global|if|in|local|macroscript|mapped|max|not|of|off|on|or|parameters|persistent|plugin|rcmenu|return|rollout|set|struct|then|throw|to|tool|try|undo|utility|when|where|while|with)\\b/i\n    Prism.languages.maxscript = {\n      comment: {\n        pattern: /\\/\\*[\\s\\S]*?(?:\\*\\/|$)|--.*/,\n        greedy: true\n      },\n      string: {\n        pattern: /(^|[^\"\\\\@])(?:\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|@\"[^\"]*\")/,\n        lookbehind: true,\n        greedy: true\n      },\n      path: {\n        pattern: /\\$(?:[\\w/\\\\.*?]|'[^']*')*/,\n        greedy: true,\n        alias: 'string'\n      },\n      'function-call': {\n        pattern: RegExp(\n          '((?:' + // start of line\n            (/^/.source +\n              '|' + // operators and other language constructs\n              /[;=<>+\\-*/^({\\[]/.source +\n              '|' + // keywords as part of statements\n              /\\b(?:and|by|case|catch|collect|do|else|if|in|not|or|return|then|to|try|where|while|with)\\b/\n                .source) +\n            ')[ \\t]*)' +\n            '(?!' +\n            keywords.source +\n            ')' +\n            /[a-z_]\\w*\\b/.source +\n            '(?=[ \\t]*(?:' + // variable\n            ('(?!' +\n              keywords.source +\n              ')' +\n              /[a-z_]/.source +\n              '|' + // number\n              /\\d|-\\.?\\d/.source +\n              '|' + // other expressions or literals\n              /[({'\"$@#?]/.source) +\n            '))',\n          'im'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'function'\n      },\n      'function-definition': {\n        pattern: /(\\b(?:fn|function)\\s+)\\w+\\b/i,\n        lookbehind: true,\n        alias: 'function'\n      },\n      argument: {\n        pattern: /\\b[a-z_]\\w*(?=:)/i,\n        alias: 'attr-name'\n      },\n      keyword: keywords,\n      boolean: /\\b(?:false|true)\\b/,\n      time: {\n        pattern:\n          /(^|[^\\w.])(?:(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eEdD][+-]\\d+|[LP])?[msft])+|\\d+:\\d+(?:\\.\\d*)?)(?![\\w.:])/,\n        lookbehind: true,\n        alias: 'number'\n      },\n      number: [\n        {\n          pattern:\n            /(^|[^\\w.])(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eEdD][+-]\\d+|[LP])?|0x[a-fA-F0-9]+)(?![\\w.:])/,\n          lookbehind: true\n        },\n        /\\b(?:e|pi)\\b/\n      ],\n      constant: /\\b(?:dontcollect|ok|silentValue|undefined|unsupplied)\\b/,\n      color: {\n        pattern: /\\b(?:black|blue|brown|gray|green|orange|red|white|yellow)\\b/i,\n        alias: 'constant'\n      },\n      operator: /[-+*/<>=!]=?|[&^?]|#(?!\\()/,\n      punctuation: /[()\\[\\]{}.:,;]|#(?=\\()|\\\\$/m\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = mel\nmel.displayName = 'mel'\nmel.aliases = []\nfunction mel(Prism) {\n  Prism.languages.mel = {\n    comment: /\\/\\/.*/,\n    code: {\n      pattern: /`(?:\\\\.|[^\\\\`\\r\\n])*`/,\n      greedy: true,\n      alias: 'italic',\n      inside: {\n        delimiter: {\n          pattern: /^`|`$/,\n          alias: 'punctuation'\n        } // See rest below\n      }\n    },\n    string: {\n      pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n      greedy: true\n    },\n    variable: /\\$\\w+/,\n    number: /\\b0x[\\da-fA-F]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+/,\n    flag: {\n      pattern: /-[^\\d\\W]\\w*/,\n      alias: 'operator'\n    },\n    keyword:\n      /\\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\\b/,\n    function:\n      /\\b\\w+(?=\\()|\\b(?:CBG|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|Mayatomr|about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\\b/,\n    operator: [\n      /\\+[+=]?|-[-=]?|&&|\\|\\||[<>]=|[*\\/!=]=?|[%^]/,\n      {\n        // We don't want to match <<\n        pattern: /(^|[^<])<(?!<)/,\n        lookbehind: true\n      },\n      {\n        // We don't want to match >>\n        pattern: /(^|[^>])>(?!>)/,\n        lookbehind: true\n      }\n    ],\n    punctuation: /<<|>>|[.,:;?\\[\\](){}]/\n  }\n  Prism.languages.mel['code'].inside.rest = Prism.languages.mel\n}\n","'use strict'\n\nmodule.exports = mermaid\nmermaid.displayName = 'mermaid'\nmermaid.aliases = []\nfunction mermaid(Prism) {\n  Prism.languages.mermaid = {\n    comment: {\n      pattern: /%%.*/,\n      greedy: true\n    },\n    style: {\n      pattern:\n        /^([ \\t]*(?:classDef|linkStyle|style)[ \\t]+[\\w$-]+[ \\t]+)\\w.*[^\\s;]/m,\n      lookbehind: true,\n      inside: {\n        property: /\\b\\w[\\w-]*(?=[ \\t]*:)/,\n        operator: /:/,\n        punctuation: /,/\n      }\n    },\n    'inter-arrow-label': {\n      pattern:\n        /([^<>ox.=-])(?:-[-.]|==)(?![<>ox.=-])[ \\t]*(?:\"[^\"\\r\\n]*\"|[^\\s\".=-](?:[^\\r\\n.=-]*[^\\s.=-])?)[ \\t]*(?:\\.+->?|--+[->]|==+[=>])(?![<>ox.=-])/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        arrow: {\n          pattern: /(?:\\.+->?|--+[->]|==+[=>])$/,\n          alias: 'operator'\n        },\n        label: {\n          pattern: /^([\\s\\S]{2}[ \\t]*)\\S(?:[\\s\\S]*\\S)?/,\n          lookbehind: true,\n          alias: 'property'\n        },\n        'arrow-head': {\n          pattern: /^\\S+/,\n          alias: ['arrow', 'operator']\n        }\n      }\n    },\n    arrow: [\n      // This might look complex but it really isn't.\n      // There are many possible arrows (see tests) and it's impossible to fit all of them into one pattern. The\n      // problem is that we only have one lookbehind per pattern. However, we cannot disallow too many arrow\n      // characters in the one lookbehind because that would create too many false negatives. So we have to split the\n      // arrows into different patterns.\n      {\n        // ER diagram\n        pattern: /(^|[^{}|o.-])[|}][|o](?:--|\\.\\.)[|o][|{](?![{}|o.-])/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      {\n        // flow chart\n        // (?:==+|--+|-\\.*-)\n        pattern:\n          /(^|[^<>ox.=-])(?:[<ox](?:==+|--+|-\\.*-)[>ox]?|(?:==+|--+|-\\.*-)[>ox]|===+|---+|-\\.+-)(?![<>ox.=-])/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      {\n        // sequence diagram\n        pattern:\n          /(^|[^<>()x-])(?:--?(?:>>|[x>)])(?![<>()x])|(?:<<|[x<(])--?(?!-))/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      {\n        // class diagram\n        pattern:\n          /(^|[^<>|*o.-])(?:[*o]--|--[*o]|<\\|?(?:--|\\.\\.)|(?:--|\\.\\.)\\|?>|--|\\.\\.)(?![<>|*o.-])/,\n        lookbehind: true,\n        alias: 'operator'\n      }\n    ],\n    label: {\n      pattern: /(^|[^|<])\\|(?:[^\\r\\n\"|]|\"[^\"\\r\\n]*\")+\\|/,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property'\n    },\n    text: {\n      pattern: /(?:[(\\[{]+|\\b>)(?:[^\\r\\n\"()\\[\\]{}]|\"[^\"\\r\\n]*\")+(?:[)\\]}]+|>)/,\n      alias: 'string'\n    },\n    string: {\n      pattern: /\"[^\"\\r\\n]*\"/,\n      greedy: true\n    },\n    annotation: {\n      pattern:\n        /<<(?:abstract|choice|enumeration|fork|interface|join|service)>>|\\[\\[(?:choice|fork|join)\\]\\]/i,\n      alias: 'important'\n    },\n    keyword: [\n      // This language has both case-sensitive and case-insensitive keywords\n      {\n        pattern:\n          /(^[ \\t]*)(?:action|callback|class|classDef|classDiagram|click|direction|erDiagram|flowchart|gantt|gitGraph|graph|journey|link|linkStyle|pie|requirementDiagram|sequenceDiagram|stateDiagram|stateDiagram-v2|style|subgraph)(?![\\w$-])/m,\n        lookbehind: true,\n        greedy: true\n      },\n      {\n        pattern:\n          /(^[ \\t]*)(?:activate|alt|and|as|autonumber|deactivate|else|end(?:[ \\t]+note)?|loop|opt|par|participant|rect|state|note[ \\t]+(?:over|(?:left|right)[ \\t]+of))(?![\\w$-])/im,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    entity: /#[a-z0-9]+;/,\n    operator: {\n      pattern: /(\\w[ \\t]*)&(?=[ \\t]*\\w)|:::|:/,\n      lookbehind: true\n    },\n    punctuation: /[(){};]/\n  }\n}\n","'use strict'\n\nmodule.exports = mizar\nmizar.displayName = 'mizar'\nmizar.aliases = []\nfunction mizar(Prism) {\n  Prism.languages.mizar = {\n    comment: /::.+/,\n    keyword:\n      /@proof\\b|\\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|end|environ|equals|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:ies|y)|when|where|with|wrt)\\b/,\n    parameter: {\n      pattern: /\\$(?:10|\\d)/,\n      alias: 'variable'\n    },\n    variable: /\\b\\w+(?=:)/,\n    number: /(?:\\b|-)\\d+\\b/,\n    operator: /\\.\\.\\.|->|&|\\.?=/,\n    punctuation: /\\(#|#\\)|[,:;\\[\\](){}]/\n  }\n}\n","'use strict'\n\nmodule.exports = mongodb\nmongodb.displayName = 'mongodb'\nmongodb.aliases = []\nfunction mongodb(Prism) {\n  ;(function (Prism) {\n    var operators = [\n      // query and projection\n      '$eq',\n      '$gt',\n      '$gte',\n      '$in',\n      '$lt',\n      '$lte',\n      '$ne',\n      '$nin',\n      '$and',\n      '$not',\n      '$nor',\n      '$or',\n      '$exists',\n      '$type',\n      '$expr',\n      '$jsonSchema',\n      '$mod',\n      '$regex',\n      '$text',\n      '$where',\n      '$geoIntersects',\n      '$geoWithin',\n      '$near',\n      '$nearSphere',\n      '$all',\n      '$elemMatch',\n      '$size',\n      '$bitsAllClear',\n      '$bitsAllSet',\n      '$bitsAnyClear',\n      '$bitsAnySet',\n      '$comment',\n      '$elemMatch',\n      '$meta',\n      '$slice', // update\n      '$currentDate',\n      '$inc',\n      '$min',\n      '$max',\n      '$mul',\n      '$rename',\n      '$set',\n      '$setOnInsert',\n      '$unset',\n      '$addToSet',\n      '$pop',\n      '$pull',\n      '$push',\n      '$pullAll',\n      '$each',\n      '$position',\n      '$slice',\n      '$sort',\n      '$bit', // aggregation pipeline stages\n      '$addFields',\n      '$bucket',\n      '$bucketAuto',\n      '$collStats',\n      '$count',\n      '$currentOp',\n      '$facet',\n      '$geoNear',\n      '$graphLookup',\n      '$group',\n      '$indexStats',\n      '$limit',\n      '$listLocalSessions',\n      '$listSessions',\n      '$lookup',\n      '$match',\n      '$merge',\n      '$out',\n      '$planCacheStats',\n      '$project',\n      '$redact',\n      '$replaceRoot',\n      '$replaceWith',\n      '$sample',\n      '$set',\n      '$skip',\n      '$sort',\n      '$sortByCount',\n      '$unionWith',\n      '$unset',\n      '$unwind',\n      '$setWindowFields', // aggregation pipeline operators\n      '$abs',\n      '$accumulator',\n      '$acos',\n      '$acosh',\n      '$add',\n      '$addToSet',\n      '$allElementsTrue',\n      '$and',\n      '$anyElementTrue',\n      '$arrayElemAt',\n      '$arrayToObject',\n      '$asin',\n      '$asinh',\n      '$atan',\n      '$atan2',\n      '$atanh',\n      '$avg',\n      '$binarySize',\n      '$bsonSize',\n      '$ceil',\n      '$cmp',\n      '$concat',\n      '$concatArrays',\n      '$cond',\n      '$convert',\n      '$cos',\n      '$dateFromParts',\n      '$dateToParts',\n      '$dateFromString',\n      '$dateToString',\n      '$dayOfMonth',\n      '$dayOfWeek',\n      '$dayOfYear',\n      '$degreesToRadians',\n      '$divide',\n      '$eq',\n      '$exp',\n      '$filter',\n      '$first',\n      '$floor',\n      '$function',\n      '$gt',\n      '$gte',\n      '$hour',\n      '$ifNull',\n      '$in',\n      '$indexOfArray',\n      '$indexOfBytes',\n      '$indexOfCP',\n      '$isArray',\n      '$isNumber',\n      '$isoDayOfWeek',\n      '$isoWeek',\n      '$isoWeekYear',\n      '$last',\n      '$last',\n      '$let',\n      '$literal',\n      '$ln',\n      '$log',\n      '$log10',\n      '$lt',\n      '$lte',\n      '$ltrim',\n      '$map',\n      '$max',\n      '$mergeObjects',\n      '$meta',\n      '$min',\n      '$millisecond',\n      '$minute',\n      '$mod',\n      '$month',\n      '$multiply',\n      '$ne',\n      '$not',\n      '$objectToArray',\n      '$or',\n      '$pow',\n      '$push',\n      '$radiansToDegrees',\n      '$range',\n      '$reduce',\n      '$regexFind',\n      '$regexFindAll',\n      '$regexMatch',\n      '$replaceOne',\n      '$replaceAll',\n      '$reverseArray',\n      '$round',\n      '$rtrim',\n      '$second',\n      '$setDifference',\n      '$setEquals',\n      '$setIntersection',\n      '$setIsSubset',\n      '$setUnion',\n      '$size',\n      '$sin',\n      '$slice',\n      '$split',\n      '$sqrt',\n      '$stdDevPop',\n      '$stdDevSamp',\n      '$strcasecmp',\n      '$strLenBytes',\n      '$strLenCP',\n      '$substr',\n      '$substrBytes',\n      '$substrCP',\n      '$subtract',\n      '$sum',\n      '$switch',\n      '$tan',\n      '$toBool',\n      '$toDate',\n      '$toDecimal',\n      '$toDouble',\n      '$toInt',\n      '$toLong',\n      '$toObjectId',\n      '$toString',\n      '$toLower',\n      '$toUpper',\n      '$trim',\n      '$trunc',\n      '$type',\n      '$week',\n      '$year',\n      '$zip',\n      '$count',\n      '$dateAdd',\n      '$dateDiff',\n      '$dateSubtract',\n      '$dateTrunc',\n      '$getField',\n      '$rand',\n      '$sampleRate',\n      '$setField',\n      '$unsetField', // aggregation pipeline query modifiers\n      '$comment',\n      '$explain',\n      '$hint',\n      '$max',\n      '$maxTimeMS',\n      '$min',\n      '$orderby',\n      '$query',\n      '$returnKey',\n      '$showDiskLoc',\n      '$natural'\n    ]\n    var builtinFunctions = [\n      'ObjectId',\n      'Code',\n      'BinData',\n      'DBRef',\n      'Timestamp',\n      'NumberLong',\n      'NumberDecimal',\n      'MaxKey',\n      'MinKey',\n      'RegExp',\n      'ISODate',\n      'UUID'\n    ]\n    operators = operators.map(function (operator) {\n      return operator.replace('$', '\\\\$')\n    })\n    var operatorsSource = '(?:' + operators.join('|') + ')\\\\b'\n    Prism.languages.mongodb = Prism.languages.extend('javascript', {})\n    Prism.languages.insertBefore('mongodb', 'string', {\n      property: {\n        pattern:\n          /(?:([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)(?=\\s*:)/,\n        greedy: true,\n        inside: {\n          keyword: RegExp('^([\\'\"])?' + operatorsSource + '(?:\\\\1)?$')\n        }\n      }\n    })\n    Prism.languages.mongodb.string.inside = {\n      url: {\n        // url pattern\n        pattern:\n          /https?:\\/\\/[-\\w@:%.+~#=]{1,256}\\.[a-z0-9()]{1,6}\\b[-\\w()@:%+.~#?&/=]*/i,\n        greedy: true\n      },\n      entity: {\n        // ipv4\n        pattern:\n          /\\b(?:(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])\\b/,\n        greedy: true\n      }\n    }\n    Prism.languages.insertBefore('mongodb', 'constant', {\n      builtin: {\n        pattern: RegExp('\\\\b(?:' + builtinFunctions.join('|') + ')\\\\b'),\n        alias: 'keyword'\n      }\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = monkey\nmonkey.displayName = 'monkey'\nmonkey.aliases = []\nfunction monkey(Prism) {\n  Prism.languages.monkey = {\n    comment: {\n      pattern: /^#Rem\\s[\\s\\S]*?^#End|'.+/im,\n      greedy: true\n    },\n    string: {\n      pattern: /\"[^\"\\r\\n]*\"/,\n      greedy: true\n    },\n    preprocessor: {\n      pattern: /(^[ \\t]*)#.+/m,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property'\n    },\n    function: /\\b\\w+(?=\\()/,\n    'type-char': {\n      pattern: /\\b[?%#$]/,\n      alias: 'class-name'\n    },\n    number: {\n      pattern:\n        /((?:\\.\\.)?)(?:(?:\\b|\\B-\\.?|\\B\\.)\\d+(?:(?!\\.\\.)\\.\\d*)?|\\$[\\da-f]+)/i,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:Abstract|Array|Bool|Case|Catch|Class|Const|Continue|Default|Eachin|Else|ElseIf|End|EndIf|Exit|Extends|Extern|False|Field|Final|Float|For|Forever|Function|Global|If|Implements|Import|Inline|Int|Interface|Local|Method|Module|New|Next|Null|Object|Private|Property|Public|Repeat|Return|Select|Self|Step|Strict|String|Super|Then|Throw|To|True|Try|Until|Void|Wend|While)\\b/i,\n    operator:\n      /\\.\\.|<[=>]?|>=?|:?=|(?:[+\\-*\\/&~|]|\\b(?:Mod|Shl|Shr)\\b)=?|\\b(?:And|Not|Or)\\b/i,\n    punctuation: /[.,:;()\\[\\]]/\n  }\n}\n","'use strict'\n\nmodule.exports = moonscript\nmoonscript.displayName = 'moonscript'\nmoonscript.aliases = ['moon']\nfunction moonscript(Prism) {\n  Prism.languages.moonscript = {\n    comment: /--.*/,\n    string: [\n      {\n        pattern: /'[^']*'|\\[(=*)\\[[\\s\\S]*?\\]\\1\\]/,\n        greedy: true\n      },\n      {\n        pattern: /\"[^\"]*\"/,\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern: /#\\{[^{}]*\\}/,\n            inside: {\n              moonscript: {\n                pattern: /(^#\\{)[\\s\\S]+(?=\\})/,\n                lookbehind: true,\n                inside: null // see beow\n              },\n              'interpolation-punctuation': {\n                pattern: /#\\{|\\}/,\n                alias: 'punctuation'\n              }\n            }\n          }\n        }\n      }\n    ],\n    'class-name': [\n      {\n        pattern: /(\\b(?:class|extends)[ \\t]+)\\w+/,\n        lookbehind: true\n      }, // class-like names start with a capital letter\n      /\\b[A-Z]\\w*/\n    ],\n    keyword:\n      /\\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\\b/,\n    variable: /@@?\\w*/,\n    property: {\n      pattern: /\\b(?!\\d)\\w+(?=:)|(:)(?!\\d)\\w+/,\n      lookbehind: true\n    },\n    function: {\n      pattern:\n        /\\b(?:_G|_VERSION|assert|collectgarbage|coroutine\\.(?:create|resume|running|status|wrap|yield)|debug\\.(?:debug|getfenv|gethook|getinfo|getlocal|getmetatable|getregistry|getupvalue|setfenv|sethook|setlocal|setmetatable|setupvalue|traceback)|dofile|error|getfenv|getmetatable|io\\.(?:close|flush|input|lines|open|output|popen|read|stderr|stdin|stdout|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\\.(?:abs|acos|asin|atan|atan2|ceil|cos|cosh|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pi|pow|rad|random|randomseed|sin|sinh|sqrt|tan|tanh)|module|next|os\\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\\.(?:byte|char|dump|find|format|gmatch|gsub|len|lower|match|rep|reverse|sub|upper)|table\\.(?:concat|insert|maxn|remove|sort)|tonumber|tostring|type|unpack|xpcall)\\b/,\n      inside: {\n        punctuation: /\\./\n      }\n    },\n    boolean: /\\b(?:false|true)\\b/,\n    number:\n      /(?:\\B\\.\\d+|\\b\\d+\\.\\d+|\\b\\d+(?=[eE]))(?:[eE][-+]?\\d+)?\\b|\\b(?:0x[a-fA-F\\d]+|\\d+)(?:U?LL)?\\b/,\n    operator:\n      /\\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\\.\\.)=?|[:#^]|\\b(?:and|or)\\b=?|\\b(?:not)\\b/,\n    punctuation: /[.,()[\\]{}\\\\]/\n  }\n  Prism.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside =\n    Prism.languages.moonscript\n  Prism.languages.moon = Prism.languages.moonscript\n}\n","'use strict'\n\nmodule.exports = n1ql\nn1ql.displayName = 'n1ql'\nn1ql.aliases = []\nfunction n1ql(Prism) {\n  // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/index.html\n  Prism.languages.n1ql = {\n    comment: {\n      pattern: /\\/\\*[\\s\\S]*?(?:$|\\*\\/)|--.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\]|\\1\\1)*\\1/,\n      greedy: true\n    },\n    identifier: {\n      pattern: /`(?:\\\\[\\s\\S]|[^\\\\`]|``)*`/,\n      greedy: true\n    },\n    parameter: /\\$[\\w.]+/,\n    // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/reservedwords.html#n1ql-reserved-words\n    keyword:\n      /\\b(?:ADVISE|ALL|ALTER|ANALYZE|AS|ASC|AT|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|COMMITTED|CONNECT|CONTINUE|CORRELATE|CORRELATED|COVER|CREATE|CURRENT|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FILTER|FLATTEN|FLUSH|FOLLOWING|FOR|FORCE|FROM|FTS|FUNCTION|GOLANG|GRANT|GROUP|GROUPS|GSI|HASH|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|ISOLATION|JAVASCRIPT|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LANGUAGE|LAST|LEFT|LET|LETTING|LEVEL|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NL|NO|NTH_VALUE|NULL|NULLS|NUMBER|OBJECT|OFFSET|ON|OPTION|OPTIONS|ORDER|OTHERS|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PRECEDING|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROBE|PROCEDURE|PUBLIC|RANGE|RAW|REALM|REDUCE|RENAME|RESPECT|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|ROW|ROWS|SATISFIES|SAVEPOINT|SCHEMA|SCOPE|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TIES|TO|TRAN|TRANSACTION|TRIGGER|TRUNCATE|UNBOUNDED|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WINDOW|WITH|WORK|XOR)\\b/i,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    boolean: /\\b(?:FALSE|TRUE)\\b/i,\n    number: /(?:\\b\\d+\\.|\\B\\.)\\d+e[+\\-]?\\d+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n    operator:\n      /[-+*\\/%]|!=|==?|\\|\\||<[>=]?|>=?|\\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\\b/i,\n    punctuation: /[;[\\](),.{}:]/\n  }\n}\n","'use strict'\n\nmodule.exports = n4js\nn4js.displayName = 'n4js'\nn4js.aliases = ['n4jsd']\nfunction n4js(Prism) {\n  Prism.languages.n4js = Prism.languages.extend('javascript', {\n    // Keywords from N4JS language spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html\n    keyword:\n      /\\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\\b/\n  })\n  Prism.languages.insertBefore('n4js', 'constant', {\n    // Annotations in N4JS spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html#_annotations\n    annotation: {\n      pattern: /@+\\w+/,\n      alias: 'operator'\n    }\n  })\n  Prism.languages.n4jsd = Prism.languages.n4js\n}\n","'use strict'\n\nmodule.exports = nand2tetrisHdl\nnand2tetrisHdl.displayName = 'nand2tetrisHdl'\nnand2tetrisHdl.aliases = []\nfunction nand2tetrisHdl(Prism) {\n  Prism.languages['nand2tetris-hdl'] = {\n    comment: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n    keyword: /\\b(?:BUILTIN|CHIP|CLOCKED|IN|OUT|PARTS)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    function: /\\b[A-Za-z][A-Za-z0-9]*(?=\\()/,\n    number: /\\b\\d+\\b/,\n    operator: /=|\\.\\./,\n    punctuation: /[{}[\\];(),:]/\n  }\n}\n","'use strict'\n\nmodule.exports = naniscript\nnaniscript.displayName = 'naniscript'\nnaniscript.aliases = []\nfunction naniscript(Prism) {\n  ;(function (Prism) {\n    var expressionDef = /\\{[^\\r\\n\\[\\]{}]*\\}/\n    var params = {\n      'quoted-string': {\n        pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n        alias: 'operator'\n      },\n      'command-param-id': {\n        pattern: /(\\s)\\w+:/,\n        lookbehind: true,\n        alias: 'property'\n      },\n      'command-param-value': [\n        {\n          pattern: expressionDef,\n          alias: 'selector'\n        },\n        {\n          pattern: /([\\t ])\\S+/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'operator'\n        },\n        {\n          pattern: /\\S(?:.*\\S)?/,\n          alias: 'operator'\n        }\n      ]\n    }\n    Prism.languages.naniscript = {\n      // ; ...\n      comment: {\n        pattern: /^([\\t ]*);.*/m,\n        lookbehind: true\n      },\n      // > ...\n      // Define is a control line starting with '>' followed by a word, a space and a text.\n      define: {\n        pattern: /^>.+/m,\n        alias: 'tag',\n        inside: {\n          value: {\n            pattern: /(^>\\w+[\\t ]+)(?!\\s)[^{}\\r\\n]+/,\n            lookbehind: true,\n            alias: 'operator'\n          },\n          key: {\n            pattern: /(^>)\\w+/,\n            lookbehind: true\n          }\n        }\n      },\n      // # ...\n      label: {\n        pattern: /^([\\t ]*)#[\\t ]*\\w+[\\t ]*$/m,\n        lookbehind: true,\n        alias: 'regex'\n      },\n      command: {\n        pattern: /^([\\t ]*)@\\w+(?=[\\t ]|$).*/m,\n        lookbehind: true,\n        alias: 'function',\n        inside: {\n          'command-name': /^@\\w+/,\n          expression: {\n            pattern: expressionDef,\n            greedy: true,\n            alias: 'selector'\n          },\n          'command-params': {\n            pattern: /\\s*\\S[\\s\\S]*/,\n            inside: params\n          }\n        }\n      },\n      // Generic is any line that doesn't start with operators: ;>#@\n      'generic-text': {\n        pattern: /(^[ \\t]*)[^#@>;\\s].*/m,\n        lookbehind: true,\n        alias: 'punctuation',\n        inside: {\n          // \\{ ... \\} ... \\[ ... \\] ... \\\"\n          'escaped-char': /\\\\[{}\\[\\]\"]/,\n          expression: {\n            pattern: expressionDef,\n            greedy: true,\n            alias: 'selector'\n          },\n          'inline-command': {\n            pattern: /\\[[\\t ]*\\w[^\\r\\n\\[\\]]*\\]/,\n            greedy: true,\n            alias: 'function',\n            inside: {\n              'command-params': {\n                pattern: /(^\\[[\\t ]*\\w+\\b)[\\s\\S]+(?=\\]$)/,\n                lookbehind: true,\n                inside: params\n              },\n              'command-param-name': {\n                pattern: /^(\\[[\\t ]*)\\w+/,\n                lookbehind: true,\n                alias: 'name'\n              },\n              'start-stop-char': /[\\[\\]]/\n            }\n          }\n        }\n      }\n    }\n    Prism.languages.nani = Prism.languages['naniscript']\n    /** @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token */\n    /**\n     * This hook is used to validate generic-text tokens for balanced brackets.\n     * Mark token as bad-line when contains not balanced brackets: {},[]\n     */\n    Prism.hooks.add('after-tokenize', function (env) {\n      /** @type {(Token | string)[]} */\n      var tokens = env.tokens\n      tokens.forEach(function (token) {\n        if (typeof token !== 'string' && token.type === 'generic-text') {\n          var content = getTextContent(token)\n          if (!isBracketsBalanced(content)) {\n            token.type = 'bad-line'\n            token.content = content\n          }\n        }\n      })\n    })\n    /**\n     * @param {string} input\n     * @returns {boolean}\n     */\n    function isBracketsBalanced(input) {\n      var brackets = '[]{}'\n      var stack = []\n      for (var i = 0; i < input.length; i++) {\n        var bracket = input[i]\n        var bracketsIndex = brackets.indexOf(bracket)\n        if (bracketsIndex !== -1) {\n          if (bracketsIndex % 2 === 0) {\n            stack.push(bracketsIndex + 1)\n          } else if (stack.pop() !== bracketsIndex) {\n            return false\n          }\n        }\n      }\n      return stack.length === 0\n    }\n    /**\n     * @param {string | Token | (string | Token)[]} token\n     * @returns {string}\n     */\n    function getTextContent(token) {\n      if (typeof token === 'string') {\n        return token\n      } else if (Array.isArray(token)) {\n        return token.map(getTextContent).join('')\n      } else {\n        return getTextContent(token.content)\n      }\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = nasm\nnasm.displayName = 'nasm'\nnasm.aliases = []\nfunction nasm(Prism) {\n  Prism.languages.nasm = {\n    comment: /;.*$/m,\n    string: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n    label: {\n      pattern: /(^\\s*)[A-Za-z._?$][\\w.?$@~#]*:/m,\n      lookbehind: true,\n      alias: 'function'\n    },\n    keyword: [\n      /\\[?BITS (?:16|32|64)\\]?/,\n      {\n        pattern: /(^\\s*)section\\s*[a-z.]+:?/im,\n        lookbehind: true\n      },\n      /(?:extern|global)[^;\\r\\n]*/i,\n      /(?:CPU|DEFAULT|FLOAT).*$/m\n    ],\n    register: {\n      pattern:\n        /\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s)\\b/i,\n      alias: 'variable'\n    },\n    number:\n      /(?:\\b|(?=\\$))(?:0[hx](?:\\.[\\da-f]+|[\\da-f]+(?:\\.[\\da-f]+)?)(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,\n    operator: /[\\[\\]*+\\-\\/%<>=&|$!]/\n  }\n}\n","'use strict'\n\nmodule.exports = neon\nneon.displayName = 'neon'\nneon.aliases = []\nfunction neon(Prism) {\n  Prism.languages.neon = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    datetime: {\n      pattern:\n        /(^|[[{(=:,\\s])\\d\\d\\d\\d-\\d\\d?-\\d\\d?(?:(?:[Tt]| +)\\d\\d?:\\d\\d:\\d\\d(?:\\.\\d*)? *(?:Z|[-+]\\d\\d?(?::?\\d\\d)?)?)?(?=$|[\\]}),\\s])/,\n      lookbehind: true,\n      alias: 'number'\n    },\n    key: {\n      pattern: /(^|[[{(,\\s])[^,:=[\\]{}()'\"\\s]+(?=\\s*:(?:$|[\\]}),\\s])|\\s*=)/,\n      lookbehind: true,\n      alias: 'atrule'\n    },\n    number: {\n      pattern:\n        /(^|[[{(=:,\\s])[+-]?(?:0x[\\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\\d+(?:\\.\\d*)?|\\.?\\d+)(?:[eE][+-]?\\d+)?)(?=$|[\\]}),:=\\s])/,\n      lookbehind: true\n    },\n    boolean: {\n      pattern: /(^|[[{(=:,\\s])(?:false|no|true|yes)(?=$|[\\]}),:=\\s])/i,\n      lookbehind: true\n    },\n    null: {\n      pattern: /(^|[[{(=:,\\s])(?:null)(?=$|[\\]}),:=\\s])/i,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    string: {\n      pattern:\n        /(^|[[{(=:,\\s])(?:('''|\"\"\")\\r?\\n(?:(?:[^\\r\\n]|\\r?\\n(?![\\t ]*\\2))*\\r?\\n)?[\\t ]*\\2|'[^'\\r\\n]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/,\n      lookbehind: true,\n      greedy: true\n    },\n    literal: {\n      pattern:\n        /(^|[[{(=:,\\s])(?:[^#\"',:=[\\]{}()\\s`-]|[:-][^\"',=[\\]{}()\\s])(?:[^,:=\\]})(\\s]|:(?![\\s,\\]})]|$)|[ \\t]+[^#,:=\\]})(\\s])*/,\n      lookbehind: true,\n      alias: 'string'\n    },\n    punctuation: /[,:=[\\]{}()-]/\n  }\n}\n","'use strict'\n\nmodule.exports = nevod\nnevod.displayName = 'nevod'\nnevod.aliases = []\nfunction nevod(Prism) {\n  Prism.languages.nevod = {\n    comment: /\\/\\/.*|(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$))/,\n    string: {\n      pattern: /(?:\"(?:\"\"|[^\"])*\"(?!\")|'(?:''|[^'])*'(?!'))!?\\*?/,\n      greedy: true,\n      inside: {\n        'string-attrs': /!$|!\\*$|\\*$/\n      }\n    },\n    namespace: {\n      pattern: /(@namespace\\s+)[a-zA-Z0-9\\-.]+(?=\\s*\\{)/,\n      lookbehind: true\n    },\n    pattern: {\n      pattern:\n        /(@pattern\\s+)?#?[a-zA-Z0-9\\-.]+(?:\\s*\\(\\s*(?:~\\s*)?[a-zA-Z0-9\\-.]+\\s*(?:,\\s*(?:~\\s*)?[a-zA-Z0-9\\-.]*)*\\))?(?=\\s*=)/,\n      lookbehind: true,\n      inside: {\n        'pattern-name': {\n          pattern: /^#?[a-zA-Z0-9\\-.]+/,\n          alias: 'class-name'\n        },\n        fields: {\n          pattern: /\\(.*\\)/,\n          inside: {\n            'field-name': {\n              pattern: /[a-zA-Z0-9\\-.]+/,\n              alias: 'variable'\n            },\n            punctuation: /[,()]/,\n            operator: {\n              pattern: /~/,\n              alias: 'field-hidden-mark'\n            }\n          }\n        }\n      }\n    },\n    search: {\n      pattern: /(@search\\s+|#)[a-zA-Z0-9\\-.]+(?:\\.\\*)?(?=\\s*;)/,\n      alias: 'function',\n      lookbehind: true\n    },\n    keyword:\n      /@(?:having|inside|namespace|outside|pattern|require|search|where)\\b/,\n    'standard-pattern': {\n      pattern:\n        /\\b(?:Alpha|AlphaNum|Any|Blank|End|LineBreak|Num|NumAlpha|Punct|Space|Start|Symbol|Word|WordBreak)\\b(?:\\([a-zA-Z0-9\\-.,\\s+]*\\))?/,\n      inside: {\n        'standard-pattern-name': {\n          pattern: /^[a-zA-Z0-9\\-.]+/,\n          alias: 'builtin'\n        },\n        quantifier: {\n          pattern: /\\b\\d+(?:\\s*\\+|\\s*-\\s*\\d+)?(?!\\w)/,\n          alias: 'number'\n        },\n        'standard-pattern-attr': {\n          pattern: /[a-zA-Z0-9\\-.]+/,\n          alias: 'builtin'\n        },\n        punctuation: /[,()]/\n      }\n    },\n    quantifier: {\n      pattern: /\\b\\d+(?:\\s*\\+|\\s*-\\s*\\d+)?(?!\\w)/,\n      alias: 'number'\n    },\n    operator: [\n      {\n        pattern: /=/,\n        alias: 'pattern-def'\n      },\n      {\n        pattern: /&/,\n        alias: 'conjunction'\n      },\n      {\n        pattern: /~/,\n        alias: 'exception'\n      },\n      {\n        pattern: /\\?/,\n        alias: 'optionality'\n      },\n      {\n        pattern: /[[\\]]/,\n        alias: 'repetition'\n      },\n      {\n        pattern: /[{}]/,\n        alias: 'variation'\n      },\n      {\n        pattern: /[+_]/,\n        alias: 'sequence'\n      },\n      {\n        pattern: /\\.{2,3}/,\n        alias: 'span'\n      }\n    ],\n    'field-capture': [\n      {\n        pattern:\n          /([a-zA-Z0-9\\-.]+\\s*\\()\\s*[a-zA-Z0-9\\-.]+\\s*:\\s*[a-zA-Z0-9\\-.]+(?:\\s*,\\s*[a-zA-Z0-9\\-.]+\\s*:\\s*[a-zA-Z0-9\\-.]+)*(?=\\s*\\))/,\n        lookbehind: true,\n        inside: {\n          'field-name': {\n            pattern: /[a-zA-Z0-9\\-.]+/,\n            alias: 'variable'\n          },\n          colon: /:/\n        }\n      },\n      {\n        pattern: /[a-zA-Z0-9\\-.]+\\s*:/,\n        inside: {\n          'field-name': {\n            pattern: /[a-zA-Z0-9\\-.]+/,\n            alias: 'variable'\n          },\n          colon: /:/\n        }\n      }\n    ],\n    punctuation: /[:;,()]/,\n    name: /[a-zA-Z0-9\\-.]+/\n  }\n}\n","'use strict'\n\nmodule.exports = nginx\nnginx.displayName = 'nginx'\nnginx.aliases = []\nfunction nginx(Prism) {\n  ;(function (Prism) {\n    var variable =\n      /\\$(?:\\w[a-z\\d]*(?:_[^\\x00-\\x1F\\s\"'\\\\()$]*)?|\\{[^}\\s\"'\\\\]+\\})/i\n    Prism.languages.nginx = {\n      comment: {\n        pattern: /(^|[\\s{};])#.*/,\n        lookbehind: true,\n        greedy: true\n      },\n      directive: {\n        pattern:\n          /(^|\\s)\\w(?:[^;{}\"'\\\\\\s]|\\\\.|\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|\\s+(?:#.*(?!.)|(?![#\\s])))*?(?=\\s*[;{])/,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          string: {\n            pattern:\n              /((?:^|[^\\\\])(?:\\\\\\\\)*)(?:\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*')/,\n            lookbehind: true,\n            greedy: true,\n            inside: {\n              escape: {\n                pattern: /\\\\[\"'\\\\nrt]/,\n                alias: 'entity'\n              },\n              variable: variable\n            }\n          },\n          comment: {\n            pattern: /(\\s)#.*/,\n            lookbehind: true,\n            greedy: true\n          },\n          keyword: {\n            pattern: /^\\S+/,\n            greedy: true\n          },\n          // other patterns\n          boolean: {\n            pattern: /(\\s)(?:off|on)(?!\\S)/,\n            lookbehind: true\n          },\n          number: {\n            pattern: /(\\s)\\d+[a-z]*(?!\\S)/i,\n            lookbehind: true\n          },\n          variable: variable\n        }\n      },\n      punctuation: /[{};]/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = nim\nnim.displayName = 'nim'\nnim.aliases = []\nfunction nim(Prism) {\n  Prism.languages.nim = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    string: {\n      // Double-quoted strings can be prefixed by an identifier (Generalized raw string literals)\n      pattern:\n        /(?:\\b(?!\\d)(?:\\w|\\\\x[89a-fA-F][0-9a-fA-F])+)?(?:\"\"\"[\\s\\S]*?\"\"\"(?!\")|\"(?:\\\\[\\s\\S]|\"\"|[^\"\\\\])*\")/,\n      greedy: true\n    },\n    char: {\n      // Character literals are handled specifically to prevent issues with numeric type suffixes\n      pattern: /'(?:\\\\(?:\\d+|x[\\da-fA-F]{0,2}|.)|[^'])'/,\n      greedy: true\n    },\n    function: {\n      pattern:\n        /(?:(?!\\d)(?:\\w|\\\\x[89a-fA-F][0-9a-fA-F])+|`[^`\\r\\n]+`)\\*?(?:\\[[^\\]]+\\])?(?=\\s*\\()/,\n      greedy: true,\n      inside: {\n        operator: /\\*$/\n      }\n    },\n    // We don't want to highlight operators (and anything really) inside backticks\n    identifier: {\n      pattern: /`[^`\\r\\n]+`/,\n      greedy: true,\n      inside: {\n        punctuation: /`/\n      }\n    },\n    // The negative look ahead prevents wrong highlighting of the .. operator\n    number:\n      /\\b(?:0[xXoObB][\\da-fA-F_]+|\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:[eE][+-]?\\d[\\d_]*)?)(?:'?[iuf]\\d*)?/,\n    keyword:\n      /\\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\\b/,\n    operator: {\n      // Look behind and look ahead prevent wrong highlighting of punctuations [. .] {. .} (. .)\n      // but allow the slice operator .. to take precedence over them\n      // One can define his own operators in Nim so all combination of operators might be an operator.\n      pattern:\n        /(^|[({\\[](?=\\.\\.)|(?![({\\[]\\.).)(?:(?:[=+\\-*\\/<>@$~&%|!?^:\\\\]|\\.\\.|\\.(?![)}\\]]))+|\\b(?:and|div|in|is|isnot|mod|not|notin|of|or|shl|shr|xor)\\b)/m,\n      lookbehind: true\n    },\n    punctuation: /[({\\[]\\.|\\.[)}\\]]|[`(){}\\[\\],:]/\n  }\n}\n","'use strict'\n\nmodule.exports = nix\nnix.displayName = 'nix'\nnix.aliases = []\nfunction nix(Prism) {\n  Prism.languages.nix = {\n    comment: {\n      pattern: /\\/\\*[\\s\\S]*?\\*\\/|#.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|''(?:(?!'')[\\s\\S]|''(?:'|\\\\|\\$\\{))*''/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          // The lookbehind ensures the ${} is not preceded by \\ or ''\n          pattern: /(^|(?:^|(?!'').)[^\\\\])\\$\\{(?:[^{}]|\\{[^}]*\\})*\\}/,\n          lookbehind: true,\n          inside: null // see below\n        }\n      }\n    },\n    url: [\n      /\\b(?:[a-z]{3,7}:\\/\\/)[\\w\\-+%~\\/.:#=?&]+/,\n      {\n        pattern:\n          /([^\\/])(?:[\\w\\-+%~.:#=?&]*(?!\\/\\/)[\\w\\-+%~\\/.:#=?&])?(?!\\/\\/)\\/[\\w\\-+%~\\/.:#=?&]*/,\n        lookbehind: true\n      }\n    ],\n    antiquotation: {\n      pattern: /\\$(?=\\{)/,\n      alias: 'important'\n    },\n    number: /\\b\\d+\\b/,\n    keyword: /\\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\\b/,\n    function:\n      /\\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:Tarball|url)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\\b|\\bfoldl'\\B/,\n    boolean: /\\b(?:false|true)\\b/,\n    operator: /[=!<>]=?|\\+\\+?|\\|\\||&&|\\/\\/|->?|[?@]/,\n    punctuation: /[{}()[\\].,:;]/\n  }\n  Prism.languages.nix.string.inside.interpolation.inside = Prism.languages.nix\n}\n","'use strict'\n\nmodule.exports = nsis\nnsis.displayName = 'nsis'\nnsis.aliases = []\nfunction nsis(Prism) {\n  /**\n   * Original by Jan T. Sott (http://github.com/idleberg)\n   *\n   * Includes all commands and plug-ins shipped with NSIS 3.08\n   */\n  Prism.languages.nsis = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|[#;].*)/,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    keyword: {\n      pattern:\n        /(^[\\t ]*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|BG(?:Font|Gradient|Image)|Banner|BrandingText|BringToFront|CRCCheck|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|Seek|Write|WriteByte|WriteUTF16LE|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DLLVersion(?:Local)?|DlgItem|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|NSISdl|Name|Nop|OutFile|PE(?:DllCharacteristics|SubsysVer)|Page(?:Callbacks)?|Pop|Push|Quit|RMDir|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|UnRegDLL|Unicode|UninstPage|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UserInfo|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|Var|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle|ns(?:Dialogs|Exec))\\b/m,\n      lookbehind: true\n    },\n    property:\n      /\\b(?:ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY|admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user)\\b/,\n    constant: /\\$\\{[!\\w\\.:\\^-]+\\}|\\$\\([!\\w\\.:\\^-]+\\)/,\n    variable: /\\$\\w[\\w\\.]*/,\n    number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n    operator: /--?|\\+\\+?|<=?|>=?|==?=?|&&?|\\|\\|?|[?*\\/~^%]/,\n    punctuation: /[{}[\\];(),.:]/,\n    important: {\n      pattern:\n        /(^[\\t ]*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\\b/im,\n      lookbehind: true\n    }\n  }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = objectivec\nobjectivec.displayName = 'objectivec'\nobjectivec.aliases = ['objc']\nfunction objectivec(Prism) {\n  Prism.register(refractorC)\n  Prism.languages.objectivec = Prism.languages.extend('c', {\n    string: {\n      pattern: /@?\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/,\n    operator: /-[->]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/\n  })\n  delete Prism.languages.objectivec['class-name']\n  Prism.languages.objc = Prism.languages.objectivec\n}\n","'use strict'\n\nmodule.exports = ocaml\nocaml.displayName = 'ocaml'\nocaml.aliases = []\nfunction ocaml(Prism) {\n  // https://ocaml.org/manual/lex.html\n  Prism.languages.ocaml = {\n    comment: {\n      pattern: /\\(\\*[\\s\\S]*?\\*\\)/,\n      greedy: true\n    },\n    char: {\n      pattern: /'(?:[^\\\\\\r\\n']|\\\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,\n      greedy: true\n    },\n    string: [\n      {\n        pattern: /\"(?:\\\\(?:[\\s\\S]|\\r\\n)|[^\\\\\\r\\n\"])*\"/,\n        greedy: true\n      },\n      {\n        pattern: /\\{([a-z_]*)\\|[\\s\\S]*?\\|\\1\\}/,\n        greedy: true\n      }\n    ],\n    number: [\n      // binary and octal\n      /\\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\\b/i, // hexadecimal\n      /\\b0x[a-f0-9][a-f0-9_]*(?:\\.[a-f0-9_]*)?(?:p[+-]?\\d[\\d_]*)?(?!\\w)/i, // decimal\n      /\\b\\d[\\d_]*(?:\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?(?!\\w)/i\n    ],\n    directive: {\n      pattern: /\\B#\\w+/,\n      alias: 'property'\n    },\n    label: {\n      pattern: /\\B~\\w+/,\n      alias: 'property'\n    },\n    'type-variable': {\n      pattern: /\\B'\\w+/,\n      alias: 'function'\n    },\n    variant: {\n      pattern: /`\\w+/,\n      alias: 'symbol'\n    },\n    // For the list of keywords and operators,\n    // see: http://caml.inria.fr/pub/docs/manual-ocaml/lex.html#sec84\n    keyword:\n      /\\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    'operator-like-punctuation': {\n      pattern: /\\[[<>|]|[>|]\\]|\\{<|>\\}/,\n      alias: 'punctuation'\n    },\n    // Custom operators are allowed\n    operator:\n      /\\.[.~]|:[=>]|[=<>@^|&+\\-*\\/$%!?~][!$%&*+\\-.\\/:<=>?@^|~]*|\\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\\b/,\n    punctuation: /;;|::|[(){}\\[\\].,:;#]|\\b_\\b/\n  }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = opencl\nopencl.displayName = 'opencl'\nopencl.aliases = []\nfunction opencl(Prism) {\n  Prism.register(refractorC)\n  ;(function (Prism) {\n    /* OpenCL kernel language */\n    Prism.languages.opencl = Prism.languages.extend('c', {\n      // Extracted from the official specs (2.0) and http://streamcomputing.eu/downloads/?opencl.lang (opencl-keywords, opencl-types) and http://sourceforge.net/tracker/?func=detail&aid=2957794&group_id=95717&atid=612384 (Words2, partly Words3)\n      keyword:\n        /\\b(?:(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|__attribute__|auto|(?:bool|u?(?:char|int|long|short)|half|quad)(?:2|3|4|8|16)?|break|case|complex|const|continue|(?:double|float)(?:16(?:x(?:1|2|4|8|16))?|1x(?:1|2|4|8|16)|2(?:x(?:1|2|4|8|16))?|3|4(?:x(?:1|2|4|8|16))?|8(?:x(?:1|2|4|8|16))?)?|default|do|else|enum|extern|for|goto|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\\b/,\n      // Extracted from http://streamcomputing.eu/downloads/?opencl.lang (opencl-const)\n      // Math Constants: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/mathConstants.html\n      // Macros and Limits: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/macroLimits.html\n      number:\n        /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[fuhl]{0,4}/i,\n      boolean: /\\b(?:false|true)\\b/,\n      'constant-opencl-kernel': {\n        pattern:\n          /\\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:GLOBAL|LOCAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|(?:MAX|MIN)(?:(?:_10)?_EXP)?|MANT_DIG)|FLT_RADIX|HUGE_VALF?|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|INFINITY|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:2|10)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN|(?:UCHAR|UINT|ULONG|USHRT)_MAX)\\b/,\n        alias: 'constant'\n      }\n    })\n    Prism.languages.insertBefore('opencl', 'class-name', {\n      // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/scalarDataTypes.html\n      // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/otherDataTypes.html\n      'builtin-type': {\n        pattern:\n          /\\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\\b/,\n        alias: 'keyword'\n      }\n    })\n    var attributes = {\n      // Extracted from http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-types and opencl-host)\n      'type-opencl-host': {\n        pattern:\n          /\\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|int|long|short)|double|float)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\\b/,\n        alias: 'keyword'\n      },\n      'boolean-opencl-host': {\n        pattern: /\\bCL_(?:FALSE|TRUE)\\b/,\n        alias: 'boolean'\n      },\n      // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-const)\n      'constant-opencl-host': {\n        pattern:\n          /\\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:8|16|24|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\\b/,\n        alias: 'constant'\n      },\n      // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-host)\n      'function-opencl-host': {\n        pattern:\n          /\\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\\b/,\n        alias: 'function'\n      }\n    }\n    /* OpenCL host API */\n    Prism.languages.insertBefore('c', 'keyword', attributes) // C++ includes everything from the OpenCL C host API plus the classes defined in cl2.h\n    if (Prism.languages.cpp) {\n      // Extracted from doxygen class list http://github.khronos.org/OpenCL-CLHPP/annotated.html\n      attributes['type-opencl-host-cpp'] = {\n        pattern:\n          /\\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|Sampler|UserEvent)\\b/,\n        alias: 'keyword'\n      }\n      Prism.languages.insertBefore('cpp', 'keyword', attributes)\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = openqasm\nopenqasm.displayName = 'openqasm'\nopenqasm.aliases = ['qasm']\nfunction openqasm(Prism) {\n  // https://qiskit.github.io/openqasm/grammar/index.html\n  Prism.languages.openqasm = {\n    comment: /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*/,\n    string: {\n      pattern: /\"[^\"\\r\\n\\t]*\"|'[^'\\r\\n\\t]*'/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:CX|OPENQASM|U|barrier|boxas|boxto|break|const|continue|ctrl|def|defcal|defcalgrammar|delay|else|end|for|gate|gphase|if|in|include|inv|kernel|lengthof|let|measure|pow|reset|return|rotary|stretchinf|while)\\b|#pragma\\b/,\n    'class-name':\n      /\\b(?:angle|bit|bool|creg|fixed|float|int|length|qreg|qubit|stretch|uint)\\b/,\n    function: /\\b(?:cos|exp|ln|popcount|rotl|rotr|sin|sqrt|tan)\\b(?=\\s*\\()/,\n    constant: /\\b(?:euler|pi|tau)\\b|π|𝜏|ℇ/,\n    number: {\n      pattern:\n        /(^|[^.\\w$])(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?(?:dt|ns|us|µs|ms|s)?/i,\n      lookbehind: true\n    },\n    operator: /->|>>=?|<<=?|&&|\\|\\||\\+\\+|--|[!=<>&|~^+\\-*/%]=?|@/,\n    punctuation: /[(){}\\[\\];,:.]/\n  }\n  Prism.languages.qasm = Prism.languages.openqasm\n}\n","'use strict'\n\nmodule.exports = oz\noz.displayName = 'oz'\noz.aliases = []\nfunction oz(Prism) {\n  Prism.languages.oz = {\n    comment: {\n      pattern: /\\/\\*[\\s\\S]*?\\*\\/|%.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n      greedy: true\n    },\n    atom: {\n      pattern: /'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n      greedy: true,\n      alias: 'builtin'\n    },\n    keyword:\n      /\\$|\\[\\]|\\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\\b/,\n    function: [\n      /\\b[a-z][A-Za-z\\d]*(?=\\()/,\n      {\n        pattern: /(\\{)[A-Z][A-Za-z\\d]*\\b/,\n        lookbehind: true\n      }\n    ],\n    number:\n      /\\b(?:0[bx][\\da-f]+|\\d+(?:\\.\\d*)?(?:e~?\\d+)?)\\b|&(?:[^\\\\]|\\\\(?:\\d{3}|.))/i,\n    variable: /`(?:[^`\\\\]|\\\\.)+`/,\n    'attr-name': /\\b\\w+(?=[ \\t]*:(?![:=]))/,\n    operator:\n      /:(?:=|::?)|<[-:=]?|=(?:=|<?:?)|>=?:?|\\\\=:?|!!?|[|#+\\-*\\/,~^@]|\\b(?:andthen|div|mod|orelse)\\b/,\n    punctuation: /[\\[\\](){}.:;?]/\n  }\n}\n","'use strict'\n\nmodule.exports = parigp\nparigp.displayName = 'parigp'\nparigp.aliases = []\nfunction parigp(Prism) {\n  Prism.languages.parigp = {\n    comment: /\\/\\*[\\s\\S]*?\\*\\/|\\\\\\\\.*/,\n    string: {\n      pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n      greedy: true\n    },\n    // PARI/GP does not care about white spaces at all\n    // so let's process the keywords to build an appropriate regexp\n    // (e.g. \"b *r *e *a *k\", etc.)\n    keyword: (function () {\n      var keywords = [\n        'breakpoint',\n        'break',\n        'dbg_down',\n        'dbg_err',\n        'dbg_up',\n        'dbg_x',\n        'forcomposite',\n        'fordiv',\n        'forell',\n        'forpart',\n        'forprime',\n        'forstep',\n        'forsubgroup',\n        'forvec',\n        'for',\n        'iferr',\n        'if',\n        'local',\n        'my',\n        'next',\n        'return',\n        'until',\n        'while'\n      ]\n      keywords = keywords\n        .map(function (keyword) {\n          return keyword.split('').join(' *')\n        })\n        .join('|')\n      return RegExp('\\\\b(?:' + keywords + ')\\\\b')\n    })(),\n    function: /\\b\\w(?:[\\w ]*\\w)?(?= *\\()/,\n    number: {\n      // The lookbehind and the negative lookahead prevent from breaking the .. operator\n      pattern:\n        /((?:\\. *\\. *)?)(?:\\b\\d(?: *\\d)*(?: *(?!\\. *\\.)\\.(?: *\\d)*)?|\\. *\\d(?: *\\d)*)(?: *e *(?:[+-] *)?\\d(?: *\\d)*)?/i,\n      lookbehind: true\n    },\n    operator:\n      /\\. *\\.|[*\\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\\+(?: *[+=])?|-(?: *[-=>])?|<(?: *>|(?: *<)?(?: *=)?)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\\\(?: *\\/)?(?: *=)?|&(?: *&)?|\\| *\\||['#~^]/,\n    punctuation: /[\\[\\]{}().,:;|]/\n  }\n}\n","'use strict'\n\nmodule.exports = parser\nparser.displayName = 'parser'\nparser.aliases = []\nfunction parser(Prism) {\n  ;(function (Prism) {\n    var parser = (Prism.languages.parser = Prism.languages.extend('markup', {\n      keyword: {\n        pattern:\n          /(^|[^^])(?:\\^(?:case|eval|for|if|switch|throw)\\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\\b)/,\n        lookbehind: true\n      },\n      variable: {\n        pattern: /(^|[^^])\\B\\$(?:\\w+|(?=[.{]))(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\.|:+/\n        }\n      },\n      function: {\n        pattern: /(^|[^^])\\B[@^]\\w+(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n        lookbehind: true,\n        inside: {\n          keyword: {\n            pattern: /(^@)(?:GET_|SET_)/,\n            lookbehind: true\n          },\n          punctuation: /\\.|:+/\n        }\n      },\n      escape: {\n        pattern: /\\^(?:[$^;@()\\[\\]{}\"':]|#[a-f\\d]*)/i,\n        alias: 'builtin'\n      },\n      punctuation: /[\\[\\](){};]/\n    }))\n    parser = Prism.languages.insertBefore('parser', 'keyword', {\n      'parser-comment': {\n        pattern: /(\\s)#.*/,\n        lookbehind: true,\n        alias: 'comment'\n      },\n      expression: {\n        // Allow for 3 levels of depth\n        pattern: /(^|[^^])\\((?:[^()]|\\((?:[^()]|\\((?:[^()])*\\))*\\))*\\)/,\n        greedy: true,\n        lookbehind: true,\n        inside: {\n          string: {\n            pattern: /(^|[^^])([\"'])(?:(?!\\2)[^^]|\\^[\\s\\S])*\\2/,\n            lookbehind: true\n          },\n          keyword: parser.keyword,\n          variable: parser.variable,\n          function: parser.function,\n          boolean: /\\b(?:false|true)\\b/,\n          number: /\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\b/i,\n          escape: parser.escape,\n          operator:\n            /[~+*\\/\\\\%]|!(?:\\|\\|?|=)?|&&?|\\|\\|?|==|<[<=]?|>[>=]?|-[fd]?|\\b(?:def|eq|ge|gt|in|is|le|lt|ne)\\b/,\n          punctuation: parser.punctuation\n        }\n      }\n    })\n    Prism.languages.insertBefore(\n      'inside',\n      'punctuation',\n      {\n        expression: parser.expression,\n        keyword: parser.keyword,\n        variable: parser.variable,\n        function: parser.function,\n        escape: parser.escape,\n        'parser-punctuation': {\n          pattern: parser.punctuation,\n          alias: 'punctuation'\n        }\n      },\n      parser['tag'].inside['attr-value']\n    )\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = pascal\npascal.displayName = 'pascal'\npascal.aliases = ['objectpascal']\nfunction pascal(Prism) {\n  // Based on Free Pascal\n  /* TODO\nSupport inline asm ?\n*/\n  Prism.languages.pascal = {\n    directive: {\n      pattern: /\\{\\$[\\s\\S]*?\\}/,\n      greedy: true,\n      alias: ['marco', 'property']\n    },\n    comment: {\n      pattern: /\\(\\*[\\s\\S]*?\\*\\)|\\{[\\s\\S]*?\\}|\\/\\/.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /(?:'(?:''|[^'\\r\\n])*'(?!')|#[&$%]?[a-f\\d]+)+|\\^[a-z]/i,\n      greedy: true\n    },\n    asm: {\n      pattern: /(\\basm\\b)[\\s\\S]+?(?=\\bend\\s*[;[])/i,\n      lookbehind: true,\n      greedy: true,\n      inside: null // see below\n    },\n    keyword: [\n      {\n        // Turbo Pascal\n        pattern:\n          /(^|[^&])\\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\\b/i,\n        lookbehind: true\n      },\n      {\n        // Free Pascal\n        pattern: /(^|[^&])\\b(?:dispose|exit|false|new|true)\\b/i,\n        lookbehind: true\n      },\n      {\n        // Object Pascal\n        pattern:\n          /(^|[^&])\\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\\b/i,\n        lookbehind: true\n      },\n      {\n        // Modifiers\n        pattern:\n          /(^|[^&])\\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\\b/i,\n        lookbehind: true\n      }\n    ],\n    number: [\n      // Hexadecimal, octal and binary\n      /(?:[&%]\\d+|\\$[a-f\\d]+)/i, // Decimal\n      /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?/i\n    ],\n    operator: [\n      /\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=]/,\n      {\n        pattern:\n          /(^|[^&])\\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\\b/,\n        lookbehind: true\n      }\n    ],\n    punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.]/\n  }\n  Prism.languages.pascal.asm.inside = Prism.languages.extend('pascal', {\n    asm: undefined,\n    keyword: undefined,\n    operator: undefined\n  })\n  Prism.languages.objectpascal = Prism.languages.pascal\n}\n","'use strict'\n\nmodule.exports = pascaligo\npascaligo.displayName = 'pascaligo'\npascaligo.aliases = []\nfunction pascaligo(Prism) {\n  ;(function (Prism) {\n    // Pascaligo is a layer 2 smart contract language for the tezos blockchain\n    var braces = /\\((?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))*\\)/.source\n    var type = /(?:\\b\\w+(?:<braces>)?|<braces>)/.source.replace(\n      /<braces>/g,\n      function () {\n        return braces\n      }\n    )\n    var pascaligo = (Prism.languages.pascaligo = {\n      comment: /\\(\\*[\\s\\S]+?\\*\\)|\\/\\/.*/,\n      string: {\n        pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\^[a-z]/i,\n        greedy: true\n      },\n      'class-name': [\n        {\n          pattern: RegExp(\n            /(\\btype\\s+\\w+\\s+is\\s+)<type>/.source.replace(\n              /<type>/g,\n              function () {\n                return type\n              }\n            ),\n            'i'\n          ),\n          lookbehind: true,\n          inside: null // see below\n        },\n        {\n          pattern: RegExp(\n            /<type>(?=\\s+is\\b)/.source.replace(/<type>/g, function () {\n              return type\n            }),\n            'i'\n          ),\n          inside: null // see below\n        },\n        {\n          pattern: RegExp(\n            /(:\\s*)<type>/.source.replace(/<type>/g, function () {\n              return type\n            })\n          ),\n          lookbehind: true,\n          inside: null // see below\n        }\n      ],\n      keyword: {\n        pattern:\n          /(^|[^&])\\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\\b/i,\n        lookbehind: true\n      },\n      boolean: {\n        pattern: /(^|[^&])\\b(?:False|True)\\b/i,\n        lookbehind: true\n      },\n      builtin: {\n        pattern: /(^|[^&])\\b(?:bool|int|list|map|nat|record|string|unit)\\b/i,\n        lookbehind: true\n      },\n      function: /\\b\\w+(?=\\s*\\()/,\n      number: [\n        // Hexadecimal, octal and binary\n        /%[01]+|&[0-7]+|\\$[a-f\\d]+/i, // Decimal\n        /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?(?:mtz|n)?/i\n      ],\n      operator:\n        /->|=\\/=|\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=|]|\\b(?:and|mod|or)\\b/,\n      punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.{}]/\n    })\n    var classNameInside = [\n      'comment',\n      'keyword',\n      'builtin',\n      'operator',\n      'punctuation'\n    ].reduce(function (accum, key) {\n      accum[key] = pascaligo[key]\n      return accum\n    }, {})\n    pascaligo['class-name'].forEach(function (p) {\n      p.inside = classNameInside\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = pcaxis\npcaxis.displayName = 'pcaxis'\npcaxis.aliases = ['px']\nfunction pcaxis(Prism) {\n  Prism.languages.pcaxis = {\n    string: /\"[^\"]*\"/,\n    keyword: {\n      pattern:\n        /((?:^|;)\\s*)[-A-Z\\d]+(?:\\s*\\[[-\\w]+\\])?(?:\\s*\\(\"[^\"]*\"(?:,\\s*\"[^\"]*\")*\\))?(?=\\s*=)/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        keyword: /^[-A-Z\\d]+/,\n        language: {\n          pattern: /^(\\s*)\\[[-\\w]+\\]/,\n          lookbehind: true,\n          inside: {\n            punctuation: /^\\[|\\]$/,\n            property: /[-\\w]+/\n          }\n        },\n        'sub-key': {\n          pattern: /^(\\s*)\\S[\\s\\S]*/,\n          lookbehind: true,\n          inside: {\n            parameter: {\n              pattern: /\"[^\"]*\"/,\n              alias: 'property'\n            },\n            punctuation: /^\\(|\\)$|,/\n          }\n        }\n      }\n    },\n    operator: /=/,\n    tlist: {\n      pattern:\n        /TLIST\\s*\\(\\s*\\w+(?:(?:\\s*,\\s*\"[^\"]*\")+|\\s*,\\s*\"[^\"]*\"-\"[^\"]*\")?\\s*\\)/,\n      greedy: true,\n      inside: {\n        function: /^TLIST/,\n        property: {\n          pattern: /^(\\s*\\(\\s*)\\w+/,\n          lookbehind: true\n        },\n        string: /\"[^\"]*\"/,\n        punctuation: /[(),]/,\n        operator: /-/\n      }\n    },\n    punctuation: /[;,]/,\n    number: {\n      pattern: /(^|\\s)\\d+(?:\\.\\d+)?(?!\\S)/,\n      lookbehind: true\n    },\n    boolean: /NO|YES/\n  }\n  Prism.languages.px = Prism.languages.pcaxis\n}\n","'use strict'\n\nmodule.exports = peoplecode\npeoplecode.displayName = 'peoplecode'\npeoplecode.aliases = ['pcode']\nfunction peoplecode(Prism) {\n  Prism.languages.peoplecode = {\n    comment: RegExp(\n      [\n        // C-style multiline comments\n        /\\/\\*[\\s\\S]*?\\*\\//.source, // REM comments\n        /\\bREM[^;]*;/.source, // Nested <* *> comments\n        /<\\*(?:[^<*]|\\*(?!>)|<(?!\\*)|<\\*(?:(?!\\*>)[\\s\\S])*\\*>)*\\*>/.source, // /+ +/ comments\n        /\\/\\+[\\s\\S]*?\\+\\//.source\n      ].join('|')\n    ),\n    string: {\n      pattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n      greedy: true\n    },\n    variable: /%\\w+/,\n    'function-definition': {\n      pattern: /((?:^|[^\\w-])(?:function|method)\\s+)\\w+/i,\n      lookbehind: true,\n      alias: 'function'\n    },\n    'class-name': {\n      pattern:\n        /((?:^|[^-\\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\\s+)\\w+(?::\\w+)*/i,\n      lookbehind: true,\n      inside: {\n        punctuation: /:/\n      }\n    },\n    keyword:\n      /\\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|if|implements|import|instance|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\\b/i,\n    'operator-keyword': {\n      pattern: /\\b(?:and|not|or)\\b/i,\n      alias: 'operator'\n    },\n    function: /[_a-z]\\w*(?=\\s*\\()/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    number: /\\b\\d+(?:\\.\\d+)?\\b/,\n    operator: /<>|[<>]=?|!=|\\*\\*|[-+*/|=@]/,\n    punctuation: /[:.;,()[\\]]/\n  }\n  Prism.languages.pcode = Prism.languages.peoplecode\n}\n","'use strict'\n\nmodule.exports = perl\nperl.displayName = 'perl'\nperl.aliases = []\nfunction perl(Prism) {\n  ;(function (Prism) {\n    var brackets =\n      /(?:\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}|\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)/\n        .source\n    Prism.languages.perl = {\n      comment: [\n        {\n          // POD\n          pattern: /(^\\s*)=\\w[\\s\\S]*?=cut.*/m,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          pattern: /(^|[^\\\\$])#.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      // TODO Could be nice to handle Heredoc too.\n      string: [\n        {\n          pattern: RegExp(\n            /\\b(?:q|qq|qw|qx)(?![a-zA-Z0-9])\\s*/.source +\n              '(?:' +\n              [\n                // q/.../\n                /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source, // q a...a\n                // eslint-disable-next-line regexp/strict\n                /([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/.source, // q(...)\n                // q{...}\n                // q[...]\n                // q<...>\n                brackets\n              ].join('|') +\n              ')'\n          ),\n          greedy: true\n        }, // \"...\", `...`\n        {\n          pattern: /(\"|`)(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n          greedy: true\n        }, // '...'\n        // FIXME Multi-line single-quoted strings are not supported as they would break variables containing '\n        {\n          pattern: /'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n          greedy: true\n        }\n      ],\n      regex: [\n        {\n          pattern: RegExp(\n            /\\b(?:m|qr)(?![a-zA-Z0-9])\\s*/.source +\n              '(?:' +\n              [\n                // m/.../\n                /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source, // m a...a\n                // eslint-disable-next-line regexp/strict\n                /([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/.source, // m(...)\n                // m{...}\n                // m[...]\n                // m<...>\n                brackets\n              ].join('|') +\n              ')' +\n              /[msixpodualngc]*/.source\n          ),\n          greedy: true\n        }, // The lookbehinds prevent -s from breaking\n        {\n          pattern: RegExp(\n            /(^|[^-])\\b(?:s|tr|y)(?![a-zA-Z0-9])\\s*/.source +\n              '(?:' +\n              [\n                // s/.../.../\n                // eslint-disable-next-line regexp/strict\n                /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/\n                  .source, // s a...a...a\n                // eslint-disable-next-line regexp/strict\n                /([a-zA-Z0-9])(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3/\n                  .source, // s(...)(...)\n                // s{...}{...}\n                // s[...][...]\n                // s<...><...>\n                // s(...)[...]\n                brackets + /\\s*/.source + brackets\n              ].join('|') +\n              ')' +\n              /[msixpodualngcer]*/.source\n          ),\n          lookbehind: true,\n          greedy: true\n        }, // /.../\n        // The look-ahead tries to prevent two divisions on\n        // the same line from being highlighted as regex.\n        // This does not support multi-line regex.\n        {\n          pattern:\n            /\\/(?:[^\\/\\\\\\r\\n]|\\\\.)*\\/[msixpodualngc]*(?=\\s*(?:$|[\\r\\n,.;})&|\\-+*~<>!?^]|(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|x|xor)\\b))/,\n          greedy: true\n        }\n      ],\n      // FIXME Not sure about the handling of ::, ', and #\n      variable: [\n        // ${^POSTMATCH}\n        /[&*$@%]\\{\\^[A-Z]+\\}/, // $^V\n        /[&*$@%]\\^[A-Z_]/, // ${...}\n        /[&*$@%]#?(?=\\{)/, // $foo\n        /[&*$@%]#?(?:(?:::)*'?(?!\\d)[\\w$]+(?![\\w$]))+(?:::)*/, // $1\n        /[&*$@%]\\d+/, // $_, @_, %!\n        // The negative lookahead prevents from breaking the %= operator\n        /(?!%=)[$@%][!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~]/\n      ],\n      filehandle: {\n        // <>, <FOO>, _\n        pattern: /<(?![<=])\\S*?>|\\b_\\b/,\n        alias: 'symbol'\n      },\n      'v-string': {\n        // v1.2, 1.2.3\n        pattern: /v\\d+(?:\\.\\d+)*|\\d+(?:\\.\\d+){2,}/,\n        alias: 'string'\n      },\n      function: {\n        pattern: /(\\bsub[ \\t]+)\\w+/,\n        lookbehind: true\n      },\n      keyword:\n        /\\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\\b/,\n      number:\n        /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)\\b/,\n      operator:\n        /-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b|\\+[+=]?|-[-=>]?|\\*\\*?=?|\\/\\/?=?|=[=~>]?|~[~=]?|\\|\\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\\.(?:=|\\.\\.?)?|[\\\\?]|\\bx(?:=|\\b)|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\\b/,\n      punctuation: /[{}[\\];(),:]/\n    }\n  })(Prism)\n}\n","'use strict'\nvar refractorPhp = require('./php.js')\nmodule.exports = phpExtras\nphpExtras.displayName = 'phpExtras'\nphpExtras.aliases = []\nfunction phpExtras(Prism) {\n  Prism.register(refractorPhp)\n  Prism.languages.insertBefore('php', 'variable', {\n    this: {\n      pattern: /\\$this\\b/,\n      alias: 'keyword'\n    },\n    global:\n      /\\$(?:GLOBALS|HTTP_RAW_POST_DATA|_(?:COOKIE|ENV|FILES|GET|POST|REQUEST|SERVER|SESSION)|argc|argv|http_response_header|php_errormsg)\\b/,\n    scope: {\n      pattern: /\\b[\\w\\\\]+::/,\n      inside: {\n        keyword: /\\b(?:parent|self|static)\\b/,\n        punctuation: /::|\\\\/\n      }\n    }\n  })\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = php\nphp.displayName = 'php'\nphp.aliases = []\nfunction php(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  /**\n   * Original by Aaron Harun: http://aahacreative.com/2012/07/31/php-syntax-highlighting-prism/\n   * Modified by Miles Johnson: http://milesj.me\n   * Rewritten by Tom Pavelec\n   *\n   * Supports PHP 5.3 - 8.0\n   */\n  ;(function (Prism) {\n    var comment = /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*|#(?!\\[).*/\n    var constant = [\n      {\n        pattern: /\\b(?:false|true)\\b/i,\n        alias: 'boolean'\n      },\n      {\n        pattern: /(::\\s*)\\b[a-z_]\\w*\\b(?!\\s*\\()/i,\n        greedy: true,\n        lookbehind: true\n      },\n      {\n        pattern: /(\\b(?:case|const)\\s+)\\b[a-z_]\\w*(?=\\s*[;=])/i,\n        greedy: true,\n        lookbehind: true\n      },\n      /\\b(?:null)\\b/i,\n      /\\b[A-Z_][A-Z0-9_]*\\b(?!\\s*\\()/\n    ]\n    var number =\n      /\\b0b[01]+(?:_[01]+)*\\b|\\b0o[0-7]+(?:_[0-7]+)*\\b|\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b|(?:\\b\\d+(?:_\\d+)*\\.?(?:\\d+(?:_\\d+)*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i\n    var operator =\n      /<?=>|\\?\\?=?|\\.{3}|\\??->|[!=]=?=?|::|\\*\\*=?|--|\\+\\+|&&|\\|\\||<<|>>|[?~]|[/^|%*&<>.+-]=?/\n    var punctuation = /[{}\\[\\](),:;]/\n    Prism.languages.php = {\n      delimiter: {\n        pattern: /\\?>$|^<\\?(?:php(?=\\s)|=)?/i,\n        alias: 'important'\n      },\n      comment: comment,\n      variable: /\\$+(?:\\w+\\b|(?=\\{))/,\n      package: {\n        pattern:\n          /(namespace\\s+|use\\s+(?:function\\s+)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\\\/\n        }\n      },\n      'class-name-definition': {\n        pattern: /(\\b(?:class|enum|interface|trait)\\s+)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n        lookbehind: true,\n        alias: 'class-name'\n      },\n      'function-definition': {\n        pattern: /(\\bfunction\\s+)[a-z_]\\w*(?=\\s*\\()/i,\n        lookbehind: true,\n        alias: 'function'\n      },\n      keyword: [\n        {\n          pattern:\n            /(\\(\\s*)\\b(?:array|bool|boolean|float|int|integer|object|string)\\b(?=\\s*\\))/i,\n          alias: 'type-casting',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /([(,?]\\s*)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|object|self|static|string)\\b(?=\\s*\\$)/i,\n          alias: 'type-hint',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|object|self|static|string|void)\\b/i,\n          alias: 'return-type',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /\\b(?:array(?!\\s*\\()|bool|float|int|iterable|mixed|object|string|void)\\b/i,\n          alias: 'type-declaration',\n          greedy: true\n        },\n        {\n          pattern: /(\\|\\s*)(?:false|null)\\b|\\b(?:false|null)(?=\\s*\\|)/i,\n          alias: 'type-declaration',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern: /\\b(?:parent|self|static)(?=\\s*::)/i,\n          alias: 'static-context',\n          greedy: true\n        },\n        {\n          // yield from\n          pattern: /(\\byield\\s+)from\\b/i,\n          lookbehind: true\n        }, // `class` is always a keyword unlike other keywords\n        /\\bclass\\b/i,\n        {\n          // https://www.php.net/manual/en/reserved.keywords.php\n          //\n          // keywords cannot be preceded by \"->\"\n          // the complex lookbehind means `(?<!(?:->|::)\\s*)`\n          pattern:\n            /((?:^|[^\\s>:]|(?:^|[^-])>|(?:^|[^:]):)\\s*)\\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\\b/i,\n          lookbehind: true\n        }\n      ],\n      'argument-name': {\n        pattern: /([(,]\\s+)\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n        lookbehind: true\n      },\n      'class-name': [\n        {\n          pattern:\n            /(\\b(?:extends|implements|instanceof|new(?!\\s+self|\\s+static))\\s+|\\bcatch\\s*\\()\\b[a-z_]\\w*(?!\\\\)\\b/i,\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern: /(\\|\\s*)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern: /\\b[a-z_]\\w*(?!\\\\)\\b(?=\\s*\\|)/i,\n          greedy: true\n        },\n        {\n          pattern: /(\\|\\s*)(?:\\\\?\\b[a-z_]\\w*)+\\b/i,\n          alias: 'class-name-fully-qualified',\n          greedy: true,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern: /(?:\\\\?\\b[a-z_]\\w*)+\\b(?=\\s*\\|)/i,\n          alias: 'class-name-fully-qualified',\n          greedy: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern:\n            /(\\b(?:extends|implements|instanceof|new(?!\\s+self\\b|\\s+static\\b))\\s+|\\bcatch\\s*\\()(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n          alias: 'class-name-fully-qualified',\n          greedy: true,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern: /\\b[a-z_]\\w*(?=\\s*\\$)/i,\n          alias: 'type-declaration',\n          greedy: true\n        },\n        {\n          pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n          alias: ['class-name-fully-qualified', 'type-declaration'],\n          greedy: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern: /\\b[a-z_]\\w*(?=\\s*::)/i,\n          alias: 'static-context',\n          greedy: true\n        },\n        {\n          pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*::)/i,\n          alias: ['class-name-fully-qualified', 'static-context'],\n          greedy: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern: /([(,?]\\s*)[a-z_]\\w*(?=\\s*\\$)/i,\n          alias: 'type-hint',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern: /([(,?]\\s*)(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n          alias: ['class-name-fully-qualified', 'type-hint'],\n          greedy: true,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n          alias: 'return-type',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n          alias: ['class-name-fully-qualified', 'return-type'],\n          greedy: true,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        }\n      ],\n      constant: constant,\n      function: {\n        pattern: /(^|[^\\\\\\w])\\\\?[a-z_](?:[\\w\\\\]*\\w)?(?=\\s*\\()/i,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\\\/\n        }\n      },\n      property: {\n        pattern: /(->\\s*)\\w+/,\n        lookbehind: true\n      },\n      number: number,\n      operator: operator,\n      punctuation: punctuation\n    }\n    var string_interpolation = {\n      pattern:\n        /\\{\\$(?:\\{(?:\\{[^{}]+\\}|[^{}]+)\\}|[^{}])+\\}|(^|[^\\\\{])\\$+(?:\\w+(?:\\[[^\\r\\n\\[\\]]+\\]|->\\w+)?)/,\n      lookbehind: true,\n      inside: Prism.languages.php\n    }\n    var string = [\n      {\n        pattern: /<<<'([^']+)'[\\r\\n](?:.*[\\r\\n])*?\\1;/,\n        alias: 'nowdoc-string',\n        greedy: true,\n        inside: {\n          delimiter: {\n            pattern: /^<<<'[^']+'|[a-z_]\\w*;$/i,\n            alias: 'symbol',\n            inside: {\n              punctuation: /^<<<'?|[';]$/\n            }\n          }\n        }\n      },\n      {\n        pattern:\n          /<<<(?:\"([^\"]+)\"[\\r\\n](?:.*[\\r\\n])*?\\1;|([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\2;)/i,\n        alias: 'heredoc-string',\n        greedy: true,\n        inside: {\n          delimiter: {\n            pattern: /^<<<(?:\"[^\"]+\"|[a-z_]\\w*)|[a-z_]\\w*;$/i,\n            alias: 'symbol',\n            inside: {\n              punctuation: /^<<<\"?|[\";]$/\n            }\n          },\n          interpolation: string_interpolation\n        }\n      },\n      {\n        pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n        alias: 'backtick-quoted-string',\n        greedy: true\n      },\n      {\n        pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n        alias: 'single-quoted-string',\n        greedy: true\n      },\n      {\n        pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n        alias: 'double-quoted-string',\n        greedy: true,\n        inside: {\n          interpolation: string_interpolation\n        }\n      }\n    ]\n    Prism.languages.insertBefore('php', 'variable', {\n      string: string,\n      attribute: {\n        pattern:\n          /#\\[(?:[^\"'\\/#]|\\/(?![*/])|\\/\\/.*$|#(?!\\[).*$|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*')+\\](?=\\s*[a-z$#])/im,\n        greedy: true,\n        inside: {\n          'attribute-content': {\n            pattern: /^(#\\[)[\\s\\S]+(?=\\]$)/,\n            lookbehind: true,\n            // inside can appear subset of php\n            inside: {\n              comment: comment,\n              string: string,\n              'attribute-class-name': [\n                {\n                  pattern: /([^:]|^)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n                  alias: 'class-name',\n                  greedy: true,\n                  lookbehind: true\n                },\n                {\n                  pattern: /([^:]|^)(?:\\\\?\\b[a-z_]\\w*)+/i,\n                  alias: ['class-name', 'class-name-fully-qualified'],\n                  greedy: true,\n                  lookbehind: true,\n                  inside: {\n                    punctuation: /\\\\/\n                  }\n                }\n              ],\n              constant: constant,\n              number: number,\n              operator: operator,\n              punctuation: punctuation\n            }\n          },\n          delimiter: {\n            pattern: /^#\\[|\\]$/,\n            alias: 'punctuation'\n          }\n        }\n      }\n    })\n    Prism.hooks.add('before-tokenize', function (env) {\n      if (!/<\\?/.test(env.code)) {\n        return\n      }\n      var phpPattern =\n        /<\\?(?:[^\"'/#]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|(?:\\/\\/|#(?!\\[))(?:[^?\\n\\r]|\\?(?!>))*(?=$|\\?>|[\\r\\n])|#\\[|\\/\\*(?:[^*]|\\*(?!\\/))*(?:\\*\\/|$))*?(?:\\?>|$)/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'php',\n        phpPattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'php')\n    })\n  })(Prism)\n}\n","'use strict'\nvar refractorPhp = require('./php.js')\nvar refractorJavadoclike = require('./javadoclike.js')\nmodule.exports = phpdoc\nphpdoc.displayName = 'phpdoc'\nphpdoc.aliases = []\nfunction phpdoc(Prism) {\n  Prism.register(refractorPhp)\n  Prism.register(refractorJavadoclike)\n  ;(function (Prism) {\n    var typeExpression = /(?:\\b[a-zA-Z]\\w*|[|\\\\[\\]])+/.source\n    Prism.languages.phpdoc = Prism.languages.extend('javadoclike', {\n      parameter: {\n        pattern: RegExp(\n          '(@(?:global|param|property(?:-read|-write)?|var)\\\\s+(?:' +\n            typeExpression +\n            '\\\\s+)?)\\\\$\\\\w+'\n        ),\n        lookbehind: true\n      }\n    })\n    Prism.languages.insertBefore('phpdoc', 'keyword', {\n      'class-name': [\n        {\n          pattern: RegExp(\n            '(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\\\s+)' +\n              typeExpression\n          ),\n          lookbehind: true,\n          inside: {\n            keyword:\n              /\\b(?:array|bool|boolean|callback|double|false|float|int|integer|mixed|null|object|resource|self|string|true|void)\\b/,\n            punctuation: /[|\\\\[\\]()]/\n          }\n        }\n      ]\n    })\n    Prism.languages.javadoclike.addSupport('php', Prism.languages.phpdoc)\n  })(Prism)\n}\n","'use strict'\nvar refractorSql = require('./sql.js')\nmodule.exports = plsql\nplsql.displayName = 'plsql'\nplsql.aliases = []\nfunction plsql(Prism) {\n  Prism.register(refractorSql)\n  Prism.languages.plsql = Prism.languages.extend('sql', {\n    comment: {\n      pattern: /\\/\\*[\\s\\S]*?\\*\\/|--.*/,\n      greedy: true\n    },\n    // https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-reserved-words-keywords.html\n    keyword:\n      /\\b(?:A|ACCESSIBLE|ADD|AGENT|AGGREGATE|ALL|ALTER|AND|ANY|ARRAY|AS|ASC|AT|ATTRIBUTE|AUTHID|AVG|BEGIN|BETWEEN|BFILE_BASE|BINARY|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BULK|BY|BYTE|C|CALL|CALLING|CASCADE|CASE|CHAR|CHARACTER|CHARSET|CHARSETFORM|CHARSETID|CHAR_BASE|CHECK|CLOB_BASE|CLONE|CLOSE|CLUSTER|CLUSTERS|COLAUTH|COLLECT|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPILED|COMPRESS|CONNECT|CONSTANT|CONSTRUCTOR|CONTEXT|CONTINUE|CONVERT|COUNT|CRASH|CREATE|CREDENTIAL|CURRENT|CURSOR|CUSTOMDATUM|DANGLING|DATA|DATE|DATE_BASE|DAY|DECLARE|DEFAULT|DEFINE|DELETE|DESC|DETERMINISTIC|DIRECTORY|DISTINCT|DOUBLE|DROP|DURATION|ELEMENT|ELSE|ELSIF|EMPTY|END|ESCAPE|EXCEPT|EXCEPTION|EXCEPTIONS|EXCLUSIVE|EXECUTE|EXISTS|EXIT|EXTERNAL|FETCH|FINAL|FIRST|FIXED|FLOAT|FOR|FORALL|FORCE|FROM|FUNCTION|GENERAL|GOTO|GRANT|GROUP|HASH|HAVING|HEAP|HIDDEN|HOUR|IDENTIFIED|IF|IMMEDIATE|IMMUTABLE|IN|INCLUDING|INDEX|INDEXES|INDICATOR|INDICES|INFINITE|INSERT|INSTANTIABLE|INT|INTERFACE|INTERSECT|INTERVAL|INTO|INVALIDATE|IS|ISOLATION|JAVA|LANGUAGE|LARGE|LEADING|LENGTH|LEVEL|LIBRARY|LIKE|LIKE2|LIKE4|LIKEC|LIMIT|LIMITED|LOCAL|LOCK|LONG|LOOP|MAP|MAX|MAXLEN|MEMBER|MERGE|MIN|MINUS|MINUTE|MOD|MODE|MODIFY|MONTH|MULTISET|MUTABLE|NAME|NAN|NATIONAL|NATIVE|NCHAR|NEW|NOCOMPRESS|NOCOPY|NOT|NOWAIT|NULL|NUMBER_BASE|OBJECT|OCICOLL|OCIDATE|OCIDATETIME|OCIDURATION|OCIINTERVAL|OCILOBLOCATOR|OCINUMBER|OCIRAW|OCIREF|OCIREFCURSOR|OCIROWID|OCISTRING|OCITYPE|OF|OLD|ON|ONLY|OPAQUE|OPEN|OPERATOR|OPTION|OR|ORACLE|ORADATA|ORDER|ORGANIZATION|ORLANY|ORLVARY|OTHERS|OUT|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETER|PARAMETERS|PARENT|PARTITION|PASCAL|PERSISTABLE|PIPE|PIPELINED|PLUGGABLE|POLYMORPHIC|PRAGMA|PRECISION|PRIOR|PRIVATE|PROCEDURE|PUBLIC|RAISE|RANGE|RAW|READ|RECORD|REF|REFERENCE|RELIES_ON|REM|REMAINDER|RENAME|RESOURCE|RESULT|RESULT_CACHE|RETURN|RETURNING|REVERSE|REVOKE|ROLLBACK|ROW|SAMPLE|SAVE|SAVEPOINT|SB1|SB2|SB4|SECOND|SEGMENT|SELECT|SELF|SEPARATE|SEQUENCE|SERIALIZABLE|SET|SHARE|SHORT|SIZE|SIZE_T|SOME|SPARSE|SQL|SQLCODE|SQLDATA|SQLNAME|SQLSTATE|STANDARD|START|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUM|SYNONYM|TABAUTH|TABLE|TDO|THE|THEN|TIME|TIMESTAMP|TIMEZONE_ABBR|TIMEZONE_HOUR|TIMEZONE_MINUTE|TIMEZONE_REGION|TO|TRAILING|TRANSACTION|TRANSACTIONAL|TRUSTED|TYPE|UB1|UB2|UB4|UNDER|UNION|UNIQUE|UNPLUG|UNSIGNED|UNTRUSTED|UPDATE|USE|USING|VALIST|VALUE|VALUES|VARIABLE|VARIANCE|VARRAY|VARYING|VIEW|VIEWS|VOID|WHEN|WHERE|WHILE|WITH|WORK|WRAPPED|WRITE|YEAR|ZONE)\\b/i,\n    // https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-language-fundamentals.html#GUID-96A42F7C-7A71-4B90-8255-CA9C8BD9722E\n    operator: /:=?|=>|[<>^~!]=|\\.\\.|\\|\\||\\*\\*|[-+*/%<>=@]/\n  })\n  Prism.languages.insertBefore('plsql', 'operator', {\n    label: {\n      pattern: /<<\\s*\\w+\\s*>>/,\n      alias: 'symbol'\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = powerquery\npowerquery.displayName = 'powerquery'\npowerquery.aliases = []\nfunction powerquery(Prism) {\n  // https://docs.microsoft.com/en-us/powerquery-m/power-query-m-language-specification\n  Prism.languages.powerquery = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n      lookbehind: true,\n      greedy: true\n    },\n    'quoted-identifier': {\n      pattern: /#\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n      greedy: true\n    },\n    string: {\n      pattern: /(?:#!)?\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n      greedy: true\n    },\n    constant: [\n      /\\bDay\\.(?:Friday|Monday|Saturday|Sunday|Thursday|Tuesday|Wednesday)\\b/,\n      /\\bTraceLevel\\.(?:Critical|Error|Information|Verbose|Warning)\\b/,\n      /\\bOccurrence\\.(?:All|First|Last)\\b/,\n      /\\bOrder\\.(?:Ascending|Descending)\\b/,\n      /\\bRoundingMode\\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\\b/,\n      /\\bMissingField\\.(?:Error|Ignore|UseNull)\\b/,\n      /\\bQuoteStyle\\.(?:Csv|None)\\b/,\n      /\\bJoinKind\\.(?:FullOuter|Inner|LeftAnti|LeftOuter|RightAnti|RightOuter)\\b/,\n      /\\bGroupKind\\.(?:Global|Local)\\b/,\n      /\\bExtraValues\\.(?:Error|Ignore|List)\\b/,\n      /\\bJoinAlgorithm\\.(?:Dynamic|LeftHash|LeftIndex|PairwiseHash|RightHash|RightIndex|SortMerge)\\b/,\n      /\\bJoinSide\\.(?:Left|Right)\\b/,\n      /\\bPrecision\\.(?:Decimal|Double)\\b/,\n      /\\bRelativePosition\\.From(?:End|Start)\\b/,\n      /\\bTextEncoding\\.(?:Ascii|BigEndianUnicode|Unicode|Utf16|Utf8|Windows)\\b/,\n      /\\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Function|Int16|Int32|Int64|Int8|List|Logical|None|Number|Record|Table|Text|Time)\\.Type\\b/,\n      /\\bnull\\b/\n    ],\n    boolean: /\\b(?:false|true)\\b/,\n    keyword:\n      /\\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\\b/,\n    function: {\n      pattern: /(^|[^#\\w.])[a-z_][\\w.]*(?=\\s*\\()/i,\n      lookbehind: true\n    },\n    'data-type': {\n      pattern:\n        /\\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time)\\b/,\n      alias: 'class-name'\n    },\n    number: {\n      pattern:\n        /\\b0x[\\da-f]+\\b|(?:[+-]?(?:\\b\\d+\\.)?\\b\\d+|[+-]\\.\\d+|(^|[^.])\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n      lookbehind: true\n    },\n    operator: /[-+*\\/&?@^]|<(?:=>?|>)?|>=?|=>?|\\.\\.\\.?/,\n    punctuation: /[,;\\[\\](){}]/\n  }\n  Prism.languages.pq = Prism.languages['powerquery']\n  Prism.languages.mscript = Prism.languages['powerquery']\n}\n","'use strict'\n\nmodule.exports = powershell\npowershell.displayName = 'powershell'\npowershell.aliases = []\nfunction powershell(Prism) {\n  ;(function (Prism) {\n    var powershell = (Prism.languages.powershell = {\n      comment: [\n        {\n          pattern: /(^|[^`])<#[\\s\\S]*?#>/,\n          lookbehind: true\n        },\n        {\n          pattern: /(^|[^`])#.*/,\n          lookbehind: true\n        }\n      ],\n      string: [\n        {\n          pattern: /\"(?:`[\\s\\S]|[^`\"])*\"/,\n          greedy: true,\n          inside: null // see below\n        },\n        {\n          pattern: /'(?:[^']|'')*'/,\n          greedy: true\n        }\n      ],\n      // Matches name spaces as well as casts, attribute decorators. Force starting with letter to avoid matching array indices\n      // Supports two levels of nested brackets (e.g. `[OutputType([System.Collections.Generic.List[int]])]`)\n      namespace: /\\[[a-z](?:\\[(?:\\[[^\\]]*\\]|[^\\[\\]])*\\]|[^\\[\\]])*\\]/i,\n      boolean: /\\$(?:false|true)\\b/i,\n      variable: /\\$\\w+\\b/,\n      // Cmdlets and aliases. Aliases should come last, otherwise \"write\" gets preferred over \"write-host\" for example\n      // Get-Command | ?{ $_.ModuleName -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n      // Get-Alias | ?{ $_.ReferencedCommand.Module.Name -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n      function: [\n        /\\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\\b/i,\n        /\\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\\b/i\n      ],\n      // per http://technet.microsoft.com/en-us/library/hh847744.aspx\n      keyword:\n        /\\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\\b/i,\n      operator: {\n        pattern:\n          /(^|\\W)(?:!|-(?:b?(?:and|x?or)|as|(?:Not)?(?:Contains|In|Like|Match)|eq|ge|gt|is(?:Not)?|Join|le|lt|ne|not|Replace|sh[lr])\\b|-[-=]?|\\+[+=]?|[*\\/%]=?)/i,\n        lookbehind: true\n      },\n      punctuation: /[|{}[\\];(),.]/\n    }) // Variable interpolation inside strings, and nested expressions\n    powershell.string[0].inside = {\n      function: {\n        // Allow for one level of nesting\n        pattern: /(^|[^`])\\$\\((?:\\$\\([^\\r\\n()]*\\)|(?!\\$\\()[^\\r\\n)])*\\)/,\n        lookbehind: true,\n        inside: powershell\n      },\n      boolean: powershell.boolean,\n      variable: powershell.variable\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = processing\nprocessing.displayName = 'processing'\nprocessing.aliases = []\nfunction processing(Prism) {\n  Prism.languages.processing = Prism.languages.extend('clike', {\n    keyword:\n      /\\b(?:break|case|catch|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\\b/,\n    // Spaces are allowed between function name and parenthesis\n    function: /\\b\\w+(?=\\s*\\()/,\n    operator: /<[<=]?|>[>=]?|&&?|\\|\\|?|[%?]|[!=+\\-*\\/]=?/\n  })\n  Prism.languages.insertBefore('processing', 'number', {\n    // Special case: XML is a type\n    constant: /\\b(?!XML\\b)[A-Z][A-Z\\d_]+\\b/,\n    type: {\n      pattern: /\\b(?:boolean|byte|char|color|double|float|int|[A-Z]\\w*)\\b/,\n      alias: 'class-name'\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = prolog\nprolog.displayName = 'prolog'\nprolog.aliases = []\nfunction prolog(Prism) {\n  Prism.languages.prolog = {\n    // Syntax depends on the implementation\n    comment: {\n      pattern: /\\/\\*[\\s\\S]*?\\*\\/|%.*/,\n      greedy: true\n    },\n    // Depending on the implementation, strings may allow escaped newlines and quote-escape\n    string: {\n      pattern: /([\"'])(?:\\1\\1|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1(?!\\1)/,\n      greedy: true\n    },\n    builtin: /\\b(?:fx|fy|xf[xy]?|yfx?)\\b/,\n    // FIXME: Should we list all null-ary predicates (not followed by a parenthesis) like halt, trace, etc.?\n    function: /\\b[a-z]\\w*(?:(?=\\()|\\/\\d+)/,\n    number: /\\b\\d+(?:\\.\\d*)?/,\n    // Custom operators are allowed\n    operator: /[:\\\\=><\\-?*@\\/;+^|!$.]+|\\b(?:is|mod|not|xor)\\b/,\n    punctuation: /[(){}\\[\\],]/\n  }\n}\n","'use strict'\n\nmodule.exports = promql\npromql.displayName = 'promql'\npromql.aliases = []\nfunction promql(Prism) {\n  // Thanks to: https://github.com/prometheus-community/monaco-promql/blob/master/src/promql/promql.ts\n  // As well as: https://kausal.co/blog/slate-prism-add-new-syntax-promql/\n  ;(function (Prism) {\n    // PromQL Aggregation Operators\n    // (https://prometheus.io/docs/prometheus/latest/querying/operators/#aggregation-operators)\n    var aggregations = [\n      'sum',\n      'min',\n      'max',\n      'avg',\n      'group',\n      'stddev',\n      'stdvar',\n      'count',\n      'count_values',\n      'bottomk',\n      'topk',\n      'quantile'\n    ] // PromQL vector matching + the by and without clauses\n    // (https://prometheus.io/docs/prometheus/latest/querying/operators/#vector-matching)\n    var vectorMatching = [\n      'on',\n      'ignoring',\n      'group_right',\n      'group_left',\n      'by',\n      'without'\n    ] // PromQL offset modifier\n    // (https://prometheus.io/docs/prometheus/latest/querying/basics/#offset-modifier)\n    var offsetModifier = ['offset']\n    var keywords = aggregations.concat(vectorMatching, offsetModifier)\n    Prism.languages.promql = {\n      comment: {\n        pattern: /(^[ \\t]*)#.*/m,\n        lookbehind: true\n      },\n      'vector-match': {\n        // Match the comma-separated label lists inside vector matching:\n        pattern: new RegExp(\n          '((?:' + vectorMatching.join('|') + ')\\\\s*)\\\\([^)]*\\\\)'\n        ),\n        lookbehind: true,\n        inside: {\n          'label-key': {\n            pattern: /\\b[^,]+\\b/,\n            alias: 'attr-name'\n          },\n          punctuation: /[(),]/\n        }\n      },\n      'context-labels': {\n        pattern: /\\{[^{}]*\\}/,\n        inside: {\n          'label-key': {\n            pattern: /\\b[a-z_]\\w*(?=\\s*(?:=|![=~]))/,\n            alias: 'attr-name'\n          },\n          'label-value': {\n            pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n            greedy: true,\n            alias: 'attr-value'\n          },\n          punctuation: /\\{|\\}|=~?|![=~]|,/\n        }\n      },\n      'context-range': [\n        {\n          pattern: /\\[[\\w\\s:]+\\]/,\n          // [1m]\n          inside: {\n            punctuation: /\\[|\\]|:/,\n            'range-duration': {\n              pattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n              alias: 'number'\n            }\n          }\n        },\n        {\n          pattern: /(\\boffset\\s+)\\w+/,\n          // offset 1m\n          lookbehind: true,\n          inside: {\n            'range-duration': {\n              pattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n              alias: 'number'\n            }\n          }\n        }\n      ],\n      keyword: new RegExp('\\\\b(?:' + keywords.join('|') + ')\\\\b', 'i'),\n      function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n      number:\n        /[-+]?(?:(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[-+]?\\d+)?\\b|\\b(?:0x[0-9a-f]+|nan|inf)\\b)/i,\n      operator: /[\\^*/%+-]|==|!=|<=|<|>=|>|\\b(?:and|or|unless)\\b/i,\n      punctuation: /[{};()`,.[\\]]/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = properties\nproperties.displayName = 'properties'\nproperties.aliases = []\nfunction properties(Prism) {\n  Prism.languages.properties = {\n    comment: /^[ \\t]*[#!].*$/m,\n    'attr-value': {\n      pattern:\n        /(^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+(?: *[=:] *(?! )| ))(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])+/m,\n      lookbehind: true\n    },\n    'attr-name': /^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+(?= *[=:]| )/m,\n    punctuation: /[=:]/\n  }\n}\n","'use strict'\n\nmodule.exports = protobuf\nprotobuf.displayName = 'protobuf'\nprotobuf.aliases = []\nfunction protobuf(Prism) {\n  ;(function (Prism) {\n    var builtinTypes =\n      /\\b(?:bool|bytes|double|s?fixed(?:32|64)|float|[su]?int(?:32|64)|string)\\b/\n    Prism.languages.protobuf = Prism.languages.extend('clike', {\n      'class-name': [\n        {\n          pattern:\n            /(\\b(?:enum|extend|message|service)\\s+)[A-Za-z_]\\w*(?=\\s*\\{)/,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /(\\b(?:rpc\\s+\\w+|returns)\\s*\\(\\s*(?:stream\\s+)?)\\.?[A-Za-z_]\\w*(?:\\.[A-Za-z_]\\w*)*(?=\\s*\\))/,\n          lookbehind: true\n        }\n      ],\n      keyword:\n        /\\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\\s+\\w)|service|stream|syntax|to)\\b(?!\\s*=\\s*\\d)/,\n      function: /\\b[a-z_]\\w*(?=\\s*\\()/i\n    })\n    Prism.languages.insertBefore('protobuf', 'operator', {\n      map: {\n        pattern: /\\bmap<\\s*[\\w.]+\\s*,\\s*[\\w.]+\\s*>(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n        alias: 'class-name',\n        inside: {\n          punctuation: /[<>.,]/,\n          builtin: builtinTypes\n        }\n      },\n      builtin: builtinTypes,\n      'positional-class-name': {\n        pattern: /(?:\\b|\\B\\.)[a-z_]\\w*(?:\\.[a-z_]\\w*)*(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n        alias: 'class-name',\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      annotation: {\n        pattern: /(\\[\\s*)[a-z_]\\w*(?=\\s*=)/i,\n        lookbehind: true\n      }\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = psl\npsl.displayName = 'psl'\npsl.aliases = []\nfunction psl(Prism) {\n  Prism.languages.psl = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n      greedy: true,\n      inside: {\n        symbol: /\\\\[ntrbA-Z\"\\\\]/\n      }\n    },\n    'heredoc-string': {\n      pattern: /<<<([a-zA-Z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\1\\b/,\n      alias: 'string',\n      greedy: true\n    },\n    keyword:\n      /\\b(?:__multi|__single|case|default|do|else|elsif|exit|export|for|foreach|function|if|last|line|local|next|requires|return|switch|until|while|word)\\b/,\n    constant:\n      /\\b(?:ALARM|CHART_ADD_GRAPH|CHART_DELETE_GRAPH|CHART_DESTROY|CHART_LOAD|CHART_PRINT|EOF|OFFLINE|OK|PSL_PROF_LOG|R_CHECK_HORIZ|R_CHECK_VERT|R_CLICKER|R_COLUMN|R_FRAME|R_ICON|R_LABEL|R_LABEL_CENTER|R_LIST_MULTIPLE|R_LIST_MULTIPLE_ND|R_LIST_SINGLE|R_LIST_SINGLE_ND|R_MENU|R_POPUP|R_POPUP_SCROLLED|R_RADIO_HORIZ|R_RADIO_VERT|R_ROW|R_SCALE_HORIZ|R_SCALE_VERT|R_SEP_HORIZ|R_SEP_VERT|R_SPINNER|R_TEXT_FIELD|R_TEXT_FIELD_LABEL|R_TOGGLE|TRIM_LEADING|TRIM_LEADING_AND_TRAILING|TRIM_REDUNDANT|TRIM_TRAILING|VOID|WARN)\\b/,\n    boolean: /\\b(?:FALSE|False|NO|No|TRUE|True|YES|Yes|false|no|true|yes)\\b/,\n    variable: /\\b(?:PslDebug|errno|exit_status)\\b/,\n    builtin: {\n      pattern:\n        /\\b(?:PslExecute|PslFunctionCall|PslFunctionExists|PslSetOptions|_snmp_debug|acos|add_diary|annotate|annotate_get|ascii_to_ebcdic|asctime|asin|atan|atexit|batch_set|blackout|cat|ceil|chan_exists|change_state|close|code_cvt|cond_signal|cond_wait|console_type|convert_base|convert_date|convert_locale_date|cos|cosh|create|date|dcget_text|destroy|destroy_lock|dget_text|difference|dump_hist|ebcdic_to_ascii|encrypt|event_archive|event_catalog_get|event_check|event_query|event_range_manage|event_range_query|event_report|event_schedule|event_trigger|event_trigger2|execute|exists|exp|fabs|file|floor|fmod|fopen|fseek|ftell|full_discovery|get|get_chan_info|get_ranges|get_text|get_vars|getenv|gethostinfo|getpid|getpname|grep|history|history_get_retention|in_transition|index|int|internal|intersection|is_var|isnumber|join|kill|length|lines|lock|lock_info|log|log10|loge|matchline|msg_check|msg_get_format|msg_get_severity|msg_printf|msg_sprintf|ntharg|nthargf|nthline|nthlinef|num_bytes|num_consoles|pconfig|popen|poplines|pow|print|printf|proc_exists|process|random|read|readln|refresh_parameters|remote_check|remote_close|remote_event_query|remote_event_trigger|remote_file_send|remote_open|remove|replace|rindex|sec_check_priv|sec_store_get|sec_store_set|set|set_alarm_ranges|set_locale|share|sin|sinh|sleep|snmp_agent_config|snmp_agent_start|snmp_agent_stop|snmp_close|snmp_config|snmp_get|snmp_get_next|snmp_h_get|snmp_h_get_next|snmp_h_set|snmp_open|snmp_set|snmp_trap_ignore|snmp_trap_listen|snmp_trap_raise_std_trap|snmp_trap_receive|snmp_trap_register_im|snmp_trap_send|snmp_walk|sopen|sort|splitline|sprintf|sqrt|srandom|str_repeat|strcasecmp|subset|substr|system|tail|tan|tanh|text_domain|time|tmpnam|tolower|toupper|trace_psl_process|trim|union|unique|unlock|unset|va_arg|va_start|write)\\b/,\n      alias: 'builtin-function'\n    },\n    'foreach-variable': {\n      pattern:\n        /(\\bforeach\\s+(?:(?:\\w+\\b|\"(?:\\\\.|[^\\\\\"])*\")\\s+){0,2})[_a-zA-Z]\\w*(?=\\s*\\()/,\n      lookbehind: true,\n      greedy: true\n    },\n    function: /\\b[_a-z]\\w*\\b(?=\\s*\\()/i,\n    number: /\\b(?:0x[0-9a-f]+|\\d+(?:\\.\\d+)?)\\b/i,\n    operator: /--|\\+\\+|&&=?|\\|\\|=?|<<=?|>>=?|[=!]~|[-+*/%&|^!=<>]=?|\\.|[:?]/,\n    punctuation: /[(){}\\[\\];,]/\n  }\n}\n","'use strict'\n\nmodule.exports = pug\npug.displayName = 'pug'\npug.aliases = []\nfunction pug(Prism) {\n  ;(function (Prism) {\n    // TODO:\n    // - Add CSS highlighting inside <style> tags\n    // - Add support for multi-line code blocks\n    // - Add support for interpolation #{} and !{}\n    // - Add support for tag interpolation #[]\n    // - Add explicit support for plain text using |\n    // - Add support for markup embedded in plain text\n    Prism.languages.pug = {\n      // Multiline stuff should appear before the rest\n      // This handles both single-line and multi-line comments\n      comment: {\n        pattern: /(^([\\t ]*))\\/\\/.*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)*/m,\n        lookbehind: true\n      },\n      // All the tag-related part is in lookbehind\n      // so that it can be highlighted by the \"tag\" pattern\n      'multiline-script': {\n        pattern:\n          /(^([\\t ]*)script\\b.*\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      // See at the end of the file for known filters\n      filter: {\n        pattern:\n          /(^([\\t ]*)):.+(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n        lookbehind: true,\n        inside: {\n          'filter-name': {\n            pattern: /^:[\\w-]+/,\n            alias: 'variable'\n          },\n          text: /\\S[\\s\\S]*/\n        }\n      },\n      'multiline-plain-text': {\n        pattern:\n          /(^([\\t ]*)[\\w\\-#.]+\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n        lookbehind: true\n      },\n      markup: {\n        pattern: /(^[\\t ]*)<.+/m,\n        lookbehind: true,\n        inside: Prism.languages.markup\n      },\n      doctype: {\n        pattern: /((?:^|\\n)[\\t ]*)doctype(?: .+)?/,\n        lookbehind: true\n      },\n      // This handle all conditional and loop keywords\n      'flow-control': {\n        pattern:\n          /(^[\\t ]*)(?:case|default|each|else|if|unless|when|while)\\b(?: .+)?/m,\n        lookbehind: true,\n        inside: {\n          each: {\n            pattern: /^each .+? in\\b/,\n            inside: {\n              keyword: /\\b(?:each|in)\\b/,\n              punctuation: /,/\n            }\n          },\n          branch: {\n            pattern: /^(?:case|default|else|if|unless|when|while)\\b/,\n            alias: 'keyword'\n          },\n          rest: Prism.languages.javascript\n        }\n      },\n      keyword: {\n        pattern: /(^[\\t ]*)(?:append|block|extends|include|prepend)\\b.+/m,\n        lookbehind: true\n      },\n      mixin: [\n        // Declaration\n        {\n          pattern: /(^[\\t ]*)mixin .+/m,\n          lookbehind: true,\n          inside: {\n            keyword: /^mixin/,\n            function: /\\w+(?=\\s*\\(|\\s*$)/,\n            punctuation: /[(),.]/\n          }\n        }, // Usage\n        {\n          pattern: /(^[\\t ]*)\\+.+/m,\n          lookbehind: true,\n          inside: {\n            name: {\n              pattern: /^\\+\\w+/,\n              alias: 'function'\n            },\n            rest: Prism.languages.javascript\n          }\n        }\n      ],\n      script: {\n        pattern: /(^[\\t ]*script(?:(?:&[^(]+)?\\([^)]+\\))*[\\t ]).+/m,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      'plain-text': {\n        pattern:\n          /(^[\\t ]*(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?[\\t ]).+/m,\n        lookbehind: true\n      },\n      tag: {\n        pattern: /(^[\\t ]*)(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?:?/m,\n        lookbehind: true,\n        inside: {\n          attributes: [\n            {\n              pattern: /&[^(]+\\([^)]+\\)/,\n              inside: Prism.languages.javascript\n            },\n            {\n              pattern: /\\([^)]+\\)/,\n              inside: {\n                'attr-value': {\n                  pattern: /(=\\s*(?!\\s))(?:\\{[^}]*\\}|[^,)\\r\\n]+)/,\n                  lookbehind: true,\n                  inside: Prism.languages.javascript\n                },\n                'attr-name': /[\\w-]+(?=\\s*!?=|\\s*[,)])/,\n                punctuation: /[!=(),]+/\n              }\n            }\n          ],\n          punctuation: /:/,\n          'attr-id': /#[\\w\\-]+/,\n          'attr-class': /\\.[\\w\\-]+/\n        }\n      },\n      code: [\n        {\n          pattern: /(^[\\t ]*(?:-|!?=)).+/m,\n          lookbehind: true,\n          inside: Prism.languages.javascript\n        }\n      ],\n      punctuation: /[.\\-!=|]+/\n    }\n    var filter_pattern =\n      /(^([\\t ]*)):<filter_name>(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/\n        .source // Non exhaustive list of available filters and associated languages\n    var filters = [\n      {\n        filter: 'atpl',\n        language: 'twig'\n      },\n      {\n        filter: 'coffee',\n        language: 'coffeescript'\n      },\n      'ejs',\n      'handlebars',\n      'less',\n      'livescript',\n      'markdown',\n      {\n        filter: 'sass',\n        language: 'scss'\n      },\n      'stylus'\n    ]\n    var all_filters = {}\n    for (var i = 0, l = filters.length; i < l; i++) {\n      var filter = filters[i]\n      filter =\n        typeof filter === 'string'\n          ? {\n              filter: filter,\n              language: filter\n            }\n          : filter\n      if (Prism.languages[filter.language]) {\n        all_filters['filter-' + filter.filter] = {\n          pattern: RegExp(\n            filter_pattern.replace('<filter_name>', function () {\n              return filter.filter\n            }),\n            'm'\n          ),\n          lookbehind: true,\n          inside: {\n            'filter-name': {\n              pattern: /^:[\\w-]+/,\n              alias: 'variable'\n            },\n            text: {\n              pattern: /\\S[\\s\\S]*/,\n              alias: [filter.language, 'language-' + filter.language],\n              inside: Prism.languages[filter.language]\n            }\n          }\n        }\n      }\n    }\n    Prism.languages.insertBefore('pug', 'filter', all_filters)\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = puppet\npuppet.displayName = 'puppet'\npuppet.aliases = []\nfunction puppet(Prism) {\n  ;(function (Prism) {\n    Prism.languages.puppet = {\n      heredoc: [\n        // Matches the content of a quoted heredoc string (subject to interpolation)\n        {\n          pattern:\n            /(@\\(\"([^\"\\r\\n\\/):]+)\"(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r(?!\\n)))*?[ \\t]*(?:\\|[ \\t]*)?(?:-[ \\t]*)?\\2/,\n          lookbehind: true,\n          alias: 'string',\n          inside: {\n            // Matches the end tag\n            punctuation: /(?=\\S).*\\S(?= *$)/ // See interpolation below\n          }\n        }, // Matches the content of an unquoted heredoc string (no interpolation)\n        {\n          pattern:\n            /(@\\(([^\"\\r\\n\\/):]+)(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r(?!\\n)))*?[ \\t]*(?:\\|[ \\t]*)?(?:-[ \\t]*)?\\2/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'string',\n          inside: {\n            // Matches the end tag\n            punctuation: /(?=\\S).*\\S(?= *$)/\n          }\n        }, // Matches the start tag of heredoc strings\n        {\n          pattern: /@\\(\"?(?:[^\"\\r\\n\\/):]+)\"?(?:\\/[nrts$uL]*)?\\)/,\n          alias: 'string',\n          inside: {\n            punctuation: {\n              pattern: /(\\().+?(?=\\))/,\n              lookbehind: true\n            }\n          }\n        }\n      ],\n      'multiline-comment': {\n        pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n        lookbehind: true,\n        greedy: true,\n        alias: 'comment'\n      },\n      regex: {\n        // Must be prefixed with the keyword \"node\" or a non-word char\n        pattern:\n          /((?:\\bnode\\s+|[~=\\(\\[\\{,]\\s*|[=+]>\\s*|^\\s*))\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/(?:[imx]+\\b|\\B)/,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          // Extended regexes must have the x flag. They can contain single-line comments.\n          'extended-regex': {\n            pattern: /^\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/[im]*x[im]*$/,\n            inside: {\n              comment: /#.*/\n            }\n          }\n        }\n      },\n      comment: {\n        pattern: /(^|[^\\\\])#.*/,\n        lookbehind: true,\n        greedy: true\n      },\n      string: {\n        // Allow for one nested level of double quotes inside interpolation\n        pattern:\n          /([\"'])(?:\\$\\{(?:[^'\"}]|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}|\\$(?!\\{)|(?!\\1)[^\\\\$]|\\\\[\\s\\S])*\\1/,\n        greedy: true,\n        inside: {\n          'double-quoted': {\n            pattern: /^\"[\\s\\S]*\"$/,\n            inside: {\n              // See interpolation below\n            }\n          }\n        }\n      },\n      variable: {\n        pattern: /\\$(?:::)?\\w+(?:::\\w+)*/,\n        inside: {\n          punctuation: /::/\n        }\n      },\n      'attr-name': /(?:\\b\\w+|\\*)(?=\\s*=>)/,\n      function: [\n        {\n          pattern: /(\\.)(?!\\d)\\w+/,\n          lookbehind: true\n        },\n        /\\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\\b|\\b(?!\\d)\\w+(?=\\()/\n      ],\n      number: /\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d+)?(?:e-?\\d+)?)\\b/i,\n      boolean: /\\b(?:false|true)\\b/,\n      // Includes words reserved for future use\n      keyword:\n        /\\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\\b/,\n      datatype: {\n        pattern:\n          /\\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\\b/,\n        alias: 'symbol'\n      },\n      operator:\n        /=[=~>]?|![=~]?|<(?:<\\|?|[=~|-])?|>[>=]?|->?|~>|\\|>?>?|[*\\/%+?]|\\b(?:and|in|or)\\b/,\n      punctuation: /[\\[\\]{}().,;]|:+/\n    }\n    var interpolation = [\n      {\n        // Allow for one nested level of braces inside interpolation\n        pattern:\n          /(^|[^\\\\])\\$\\{(?:[^'\"{}]|\\{[^}]*\\}|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}/,\n        lookbehind: true,\n        inside: {\n          'short-variable': {\n            // Negative look-ahead prevent wrong highlighting of functions\n            pattern: /(^\\$\\{)(?!\\w+\\()(?:::)?\\w+(?:::\\w+)*/,\n            lookbehind: true,\n            alias: 'variable',\n            inside: {\n              punctuation: /::/\n            }\n          },\n          delimiter: {\n            pattern: /^\\$/,\n            alias: 'variable'\n          },\n          rest: Prism.languages.puppet\n        }\n      },\n      {\n        pattern: /(^|[^\\\\])\\$(?:::)?\\w+(?:::\\w+)*/,\n        lookbehind: true,\n        alias: 'variable',\n        inside: {\n          punctuation: /::/\n        }\n      }\n    ]\n    Prism.languages.puppet['heredoc'][0].inside.interpolation = interpolation\n    Prism.languages.puppet['string'].inside[\n      'double-quoted'\n    ].inside.interpolation = interpolation\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = pure\npure.displayName = 'pure'\npure.aliases = []\nfunction pure(Prism) {\n  ;(function (Prism) {\n    // https://agraef.github.io/pure-docs/pure.html#lexical-matters\n    Prism.languages.pure = {\n      comment: [\n        {\n          pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n          lookbehind: true\n        },\n        {\n          pattern: /(^|[^\\\\:])\\/\\/.*/,\n          lookbehind: true\n        },\n        /#!.+/\n      ],\n      'inline-lang': {\n        pattern: /%<[\\s\\S]+?%>/,\n        greedy: true,\n        inside: {\n          lang: {\n            pattern: /(^%< *)-\\*-.+?-\\*-/,\n            lookbehind: true,\n            alias: 'comment'\n          },\n          delimiter: {\n            pattern: /^%<.*|%>$/,\n            alias: 'punctuation'\n          }\n        }\n      },\n      string: {\n        pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n        greedy: true\n      },\n      number: {\n        // The look-behind prevents wrong highlighting of the .. operator\n        pattern:\n          /((?:\\.\\.)?)(?:\\b(?:inf|nan)\\b|\\b0x[\\da-f]+|(?:\\b(?:0b)?\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?L?)/i,\n        lookbehind: true\n      },\n      keyword:\n        /\\b(?:NULL|ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\\b/,\n      function:\n        /\\b(?:abs|add_(?:addr|constdef|(?:fundef|interface|macdef|typedef)(?:_at)?|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_c?string(?:_pointer)?|byte_(?:matrix|pointer)|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|sentry|short|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\\b/,\n      special: {\n        pattern: /\\b__[a-z]+__\\b/i,\n        alias: 'builtin'\n      },\n      // Any combination of operator chars can be an operator\n      // eslint-disable-next-line no-misleading-character-class\n      operator:\n        /(?:[!\"#$%&'*+,\\-.\\/:<=>?@\\\\^`|~\\u00a1-\\u00bf\\u00d7-\\u00f7\\u20d0-\\u2bff]|\\b_+\\b)+|\\b(?:and|div|mod|not|or)\\b/,\n      // FIXME: How can we prevent | and , to be highlighted as operator when they are used alone?\n      punctuation: /[(){}\\[\\];,|]/\n    }\n    var inlineLanguages = [\n      'c',\n      {\n        lang: 'c++',\n        alias: 'cpp'\n      },\n      'fortran'\n    ]\n    var inlineLanguageRe = /%< *-\\*- *<lang>\\d* *-\\*-[\\s\\S]+?%>/.source\n    inlineLanguages.forEach(function (lang) {\n      var alias = lang\n      if (typeof lang !== 'string') {\n        alias = lang.alias\n        lang = lang.lang\n      }\n      if (Prism.languages[alias]) {\n        var o = {}\n        o['inline-lang-' + alias] = {\n          pattern: RegExp(\n            inlineLanguageRe.replace(\n              '<lang>',\n              lang.replace(/([.+*?\\/\\\\(){}\\[\\]])/g, '\\\\$1')\n            ),\n            'i'\n          ),\n          inside: Prism.util.clone(Prism.languages.pure['inline-lang'].inside)\n        }\n        o['inline-lang-' + alias].inside.rest = Prism.util.clone(\n          Prism.languages[alias]\n        )\n        Prism.languages.insertBefore('pure', 'inline-lang', o)\n      }\n    }) // C is the default inline language\n    if (Prism.languages.c) {\n      Prism.languages.pure['inline-lang'].inside.rest = Prism.util.clone(\n        Prism.languages.c\n      )\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = purebasic\npurebasic.displayName = 'purebasic'\npurebasic.aliases = []\nfunction purebasic(Prism) {\n  /*\nOriginal Code by Bas Groothedde\n!!MANY THANKS!! I never would have made this, regex and me will never be best friends ;)\n==> https://codepen.io/ImagineProgramming/details/JYydBy/\nslightly changed to pass all tests\n*/\n  // PureBasic support, steal stuff from ansi-c\n  Prism.languages.purebasic = Prism.languages.extend('clike', {\n    comment: /;.*/,\n    keyword:\n      /\\b(?:align|and|as|break|calldebugger|case|compilercase|compilerdefault|compilerelse|compilerelseif|compilerendif|compilerendselect|compilererror|compilerif|compilerselect|continue|data|datasection|debug|debuglevel|declare|declarec|declarecdll|declaredll|declaremodule|default|define|dim|disableasm|disabledebugger|disableexplicit|else|elseif|enableasm|enabledebugger|enableexplicit|end|enddatasection|enddeclaremodule|endenumeration|endif|endimport|endinterface|endmacro|endmodule|endprocedure|endselect|endstructure|endstructureunion|endwith|enumeration|extends|fakereturn|for|foreach|forever|global|gosub|goto|if|import|importc|includebinary|includefile|includepath|interface|macro|module|newlist|newmap|next|not|or|procedure|procedurec|procedurecdll|proceduredll|procedurereturn|protected|prototype|prototypec|read|redim|repeat|restore|return|runtime|select|shared|static|step|structure|structureunion|swap|threaded|to|until|wend|while|with|xincludefile|xor)\\b/i,\n    function: /\\b\\w+(?:\\.\\w+)?\\s*(?=\\()/,\n    number: /(?:\\$[\\da-f]+|\\b-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+-]?\\d+)?)\\b/i,\n    operator:\n      /(?:@\\*?|\\?|\\*)\\w+|-[>-]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|?\\||[~^%?*/@]/\n  })\n  Prism.languages.insertBefore('purebasic', 'keyword', {\n    tag: /#\\w+\\$?/,\n    asm: {\n      pattern: /(^[\\t ]*)!.*/m,\n      lookbehind: true,\n      alias: 'tag',\n      inside: {\n        comment: /;.*/,\n        string: {\n          pattern: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n          greedy: true\n        },\n        // Anonymous label references, i.e.: jmp @b\n        'label-reference-anonymous': {\n          pattern: /(!\\s*j[a-z]+\\s+)@[fb]/i,\n          lookbehind: true,\n          alias: 'fasm-label'\n        },\n        // Named label reference, i.e.: jne label1\n        'label-reference-addressed': {\n          pattern: /(!\\s*j[a-z]+\\s+)[A-Z._?$@][\\w.?$@~#]*/i,\n          lookbehind: true,\n          alias: 'fasm-label'\n        },\n        keyword: [\n          /\\b(?:extern|global)\\b[^;\\r\\n]*/i,\n          /\\b(?:CPU|DEFAULT|FLOAT)\\b.*/\n        ],\n        function: {\n          pattern: /^([\\t ]*!\\s*)[\\da-z]+(?=\\s|$)/im,\n          lookbehind: true\n        },\n        'function-inline': {\n          pattern: /(:\\s*)[\\da-z]+(?=\\s)/i,\n          lookbehind: true,\n          alias: 'function'\n        },\n        label: {\n          pattern: /^([\\t ]*!\\s*)[A-Za-z._?$@][\\w.?$@~#]*(?=:)/m,\n          lookbehind: true,\n          alias: 'fasm-label'\n        },\n        register:\n          /\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s|mm\\d+)\\b/i,\n        number:\n          /(?:\\b|-|(?=\\$))(?:0[hx](?:[\\da-f]*\\.)?[\\da-f]+(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,\n        operator: /[\\[\\]*+\\-/%<>=&|$!,.:]/\n      }\n    }\n  })\n  delete Prism.languages.purebasic['class-name']\n  delete Prism.languages.purebasic['boolean']\n  Prism.languages.pbfasm = Prism.languages['purebasic']\n}\n","'use strict'\nvar refractorHaskell = require('./haskell.js')\nmodule.exports = purescript\npurescript.displayName = 'purescript'\npurescript.aliases = ['purs']\nfunction purescript(Prism) {\n  Prism.register(refractorHaskell)\n  Prism.languages.purescript = Prism.languages.extend('haskell', {\n    keyword:\n      /\\b(?:ado|case|class|data|derive|do|else|forall|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b|∀/,\n    'import-statement': {\n      // The imported or hidden names are not included in this import\n      // statement. This is because we want to highlight those exactly like\n      // we do for the names in the program.\n      pattern:\n        /(^[\\t ]*)import\\s+[A-Z][\\w']*(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+[A-Z][\\w']*(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n      lookbehind: true,\n      inside: {\n        keyword: /\\b(?:as|hiding|import)\\b/,\n        punctuation: /\\./\n      }\n    },\n    // These are builtin functions only. Constructors are highlighted later as a constant.\n    builtin:\n      /\\b(?:absurd|add|ap|append|apply|between|bind|bottom|clamp|compare|comparing|compose|conj|const|degree|discard|disj|div|eq|flap|flip|gcd|identity|ifM|join|lcm|liftA1|liftM1|map|max|mempty|min|mod|mul|negate|not|notEq|one|otherwise|recip|show|sub|top|unit|unless|unlessM|void|when|whenM|zero)\\b/,\n    operator: [\n      // Infix operators\n      Prism.languages.haskell.operator[0], // ASCII operators\n      Prism.languages.haskell.operator[2], // All UTF16 Unicode operator symbols\n      // This regex is equivalent to /(?=[\\x80-\\uFFFF])[\\p{gc=Math_Symbol}\\p{gc=Currency_Symbol}\\p{Modifier_Symbol}\\p{Other_Symbol}]/u\n      // See https://github.com/PrismJS/prism/issues/3006 for more details.\n      /[\\xa2-\\xa6\\xa8\\xa9\\xac\\xae-\\xb1\\xb4\\xb8\\xd7\\xf7\\u02c2-\\u02c5\\u02d2-\\u02df\\u02e5-\\u02eb\\u02ed\\u02ef-\\u02ff\\u0375\\u0384\\u0385\\u03f6\\u0482\\u058d-\\u058f\\u0606-\\u0608\\u060b\\u060e\\u060f\\u06de\\u06e9\\u06fd\\u06fe\\u07f6\\u07fe\\u07ff\\u09f2\\u09f3\\u09fa\\u09fb\\u0af1\\u0b70\\u0bf3-\\u0bfa\\u0c7f\\u0d4f\\u0d79\\u0e3f\\u0f01-\\u0f03\\u0f13\\u0f15-\\u0f17\\u0f1a-\\u0f1f\\u0f34\\u0f36\\u0f38\\u0fbe-\\u0fc5\\u0fc7-\\u0fcc\\u0fce\\u0fcf\\u0fd5-\\u0fd8\\u109e\\u109f\\u1390-\\u1399\\u166d\\u17db\\u1940\\u19de-\\u19ff\\u1b61-\\u1b6a\\u1b74-\\u1b7c\\u1fbd\\u1fbf-\\u1fc1\\u1fcd-\\u1fcf\\u1fdd-\\u1fdf\\u1fed-\\u1fef\\u1ffd\\u1ffe\\u2044\\u2052\\u207a-\\u207c\\u208a-\\u208c\\u20a0-\\u20bf\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211e-\\u2123\\u2125\\u2127\\u2129\\u212e\\u213a\\u213b\\u2140-\\u2144\\u214a-\\u214d\\u214f\\u218a\\u218b\\u2190-\\u2307\\u230c-\\u2328\\u232b-\\u2426\\u2440-\\u244a\\u249c-\\u24e9\\u2500-\\u2767\\u2794-\\u27c4\\u27c7-\\u27e5\\u27f0-\\u2982\\u2999-\\u29d7\\u29dc-\\u29fb\\u29fe-\\u2b73\\u2b76-\\u2b95\\u2b97-\\u2bff\\u2ce5-\\u2cea\\u2e50\\u2e51\\u2e80-\\u2e99\\u2e9b-\\u2ef3\\u2f00-\\u2fd5\\u2ff0-\\u2ffb\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303e\\u303f\\u309b\\u309c\\u3190\\u3191\\u3196-\\u319f\\u31c0-\\u31e3\\u3200-\\u321e\\u322a-\\u3247\\u3250\\u3260-\\u327f\\u328a-\\u32b0\\u32c0-\\u33ff\\u4dc0-\\u4dff\\ua490-\\ua4c6\\ua700-\\ua716\\ua720\\ua721\\ua789\\ua78a\\ua828-\\ua82b\\ua836-\\ua839\\uaa77-\\uaa79\\uab5b\\uab6a\\uab6b\\ufb29\\ufbb2-\\ufbc1\\ufdfc\\ufdfd\\ufe62\\ufe64-\\ufe66\\ufe69\\uff04\\uff0b\\uff1c-\\uff1e\\uff3e\\uff40\\uff5c\\uff5e\\uffe0-\\uffe6\\uffe8-\\uffee\\ufffc\\ufffd]/\n    ]\n  })\n  Prism.languages.purs = Prism.languages.purescript\n}\n","'use strict'\n\nmodule.exports = python\npython.displayName = 'python'\npython.aliases = ['py']\nfunction python(Prism) {\n  Prism.languages.python = {\n    comment: {\n      pattern: /(^|[^\\\\])#.*/,\n      lookbehind: true,\n      greedy: true\n    },\n    'string-interpolation': {\n      pattern:\n        /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,\n      greedy: true,\n      inside: {\n        interpolation: {\n          // \"{\" <expression> <optional \"!s\", \"!r\", or \"!a\"> <optional \":\" format specifier> \"}\"\n          pattern:\n            /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/,\n          lookbehind: true,\n          inside: {\n            'format-spec': {\n              pattern: /(:)[^:(){}]+(?=\\}$)/,\n              lookbehind: true\n            },\n            'conversion-option': {\n              pattern: /![sra](?=[:}]$)/,\n              alias: 'punctuation'\n            },\n            rest: null\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    },\n    'triple-quoted-string': {\n      pattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i,\n      greedy: true,\n      alias: 'string'\n    },\n    string: {\n      pattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,\n      greedy: true\n    },\n    function: {\n      pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n      lookbehind: true\n    },\n    'class-name': {\n      pattern: /(\\bclass\\s+)\\w+/i,\n      lookbehind: true\n    },\n    decorator: {\n      pattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m,\n      lookbehind: true,\n      alias: ['annotation', 'punctuation'],\n      inside: {\n        punctuation: /\\./\n      }\n    },\n    keyword:\n      /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/,\n    builtin:\n      /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\n    boolean: /\\b(?:False|None|True)\\b/,\n    number:\n      /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i,\n    operator: /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n    punctuation: /[{}[\\];(),.:]/\n  }\n  Prism.languages.python['string-interpolation'].inside[\n    'interpolation'\n  ].inside.rest = Prism.languages.python\n  Prism.languages.py = Prism.languages.python\n}\n","'use strict'\n\nmodule.exports = q\nq.displayName = 'q'\nq.aliases = []\nfunction q(Prism) {\n  Prism.languages.q = {\n    string: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n    comment: [\n      // From http://code.kx.com/wiki/Reference/Slash:\n      // When / is following a space (or a right parenthesis, bracket, or brace), it is ignored with the rest of the line.\n      {\n        pattern: /([\\t )\\]}])\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }, // From http://code.kx.com/wiki/Reference/Slash:\n      // A line which has / as its first character and contains at least one other non-whitespace character is a whole-line comment and is ignored entirely.\n      // A / on a line by itself begins a multiline comment which is terminated by the next \\ on a line by itself.\n      // If a / is not matched by a \\, the multiline comment is unterminated and continues to end of file.\n      // The / and \\ must be the first char on the line, but may be followed by any amount of whitespace.\n      {\n        pattern:\n          /(^|\\r?\\n|\\r)\\/[\\t ]*(?:(?:\\r?\\n|\\r)(?:.*(?:\\r?\\n|\\r(?!\\n)))*?(?:\\\\(?=[\\t ]*(?:\\r?\\n|\\r))|$)|\\S.*)/,\n        lookbehind: true,\n        greedy: true\n      }, // From http://code.kx.com/wiki/Reference/Slash:\n      // A \\ on a line by itself with no preceding matching / will comment to end of file.\n      {\n        pattern: /^\\\\[\\t ]*(?:\\r?\\n|\\r)[\\s\\S]+/m,\n        greedy: true\n      },\n      {\n        pattern: /^#!.+/m,\n        greedy: true\n      }\n    ],\n    symbol: /`(?::\\S+|[\\w.]*)/,\n    datetime: {\n      pattern:\n        /0N[mdzuvt]|0W[dtz]|\\d{4}\\.\\d\\d(?:m|\\.\\d\\d(?:T(?:\\d\\d(?::\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?)?)?)?[dz]?)|\\d\\d:\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?[uvt]?/,\n      alias: 'number'\n    },\n    // The negative look-ahead prevents bad highlighting\n    // of verbs 0: and 1:\n    number:\n      /\\b(?![01]:)(?:0N[hje]?|0W[hj]?|0[wn]|0x[\\da-fA-F]+|\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?[hjfeb]?)/,\n    keyword:\n      /\\\\\\w+\\b|\\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\\b/,\n    adverb: {\n      pattern: /['\\/\\\\]:?|\\beach\\b/,\n      alias: 'function'\n    },\n    verb: {\n      pattern: /(?:\\B\\.\\B|\\b[01]:|<[=>]?|>=?|[:+\\-*%,!?~=|$&#@^]):?|\\b_\\b:?/,\n      alias: 'operator'\n    },\n    punctuation: /[(){}\\[\\];.]/\n  }\n}\n","'use strict'\n\nmodule.exports = qml\nqml.displayName = 'qml'\nqml.aliases = []\nfunction qml(Prism) {\n  ;(function (Prism) {\n    var jsString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|'(?:\\\\.|[^\\\\'\\r\\n])*'/.source\n    var jsComment = /\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\//.source\n    var jsExpr =\n      /(?:[^\\\\()[\\]{}\"'/]|<string>|\\/(?![*/])|<comment>|\\(<expr>*\\)|\\[<expr>*\\]|\\{<expr>*\\}|\\\\[\\s\\S])/.source\n        .replace(/<string>/g, function () {\n          return jsString\n        })\n        .replace(/<comment>/g, function () {\n          return jsComment\n        }) // the pattern will blow up, so only a few iterations\n    for (var i = 0; i < 2; i++) {\n      jsExpr = jsExpr.replace(/<expr>/g, function () {\n        return jsExpr\n      })\n    }\n    jsExpr = jsExpr.replace(/<expr>/g, '[^\\\\s\\\\S]')\n    Prism.languages.qml = {\n      comment: {\n        pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n        greedy: true\n      },\n      'javascript-function': {\n        pattern: RegExp(\n          /((?:^|;)[ \\t]*)function\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*\\(<js>*\\)\\s*\\{<js>*\\}/.source.replace(\n            /<js>/g,\n            function () {\n              return jsExpr\n            }\n          ),\n          'm'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'language-javascript',\n        inside: Prism.languages.javascript\n      },\n      'class-name': {\n        pattern: /((?:^|[:;])[ \\t]*)(?!\\d)\\w+(?=[ \\t]*\\{|[ \\t]+on\\b)/m,\n        lookbehind: true\n      },\n      property: [\n        {\n          pattern: /((?:^|[;{])[ \\t]*)(?!\\d)\\w+(?:\\.\\w+)*(?=[ \\t]*:)/m,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /((?:^|[;{])[ \\t]*)property[ \\t]+(?!\\d)\\w+(?:\\.\\w+)*[ \\t]+(?!\\d)\\w+(?:\\.\\w+)*(?=[ \\t]*:)/m,\n          lookbehind: true,\n          inside: {\n            keyword: /^property/,\n            property: /\\w+(?:\\.\\w+)*/\n          }\n        }\n      ],\n      'javascript-expression': {\n        pattern: RegExp(\n          /(:[ \\t]*)(?![\\s;}[])(?:(?!$|[;}])<js>)+/.source.replace(\n            /<js>/g,\n            function () {\n              return jsExpr\n            }\n          ),\n          'm'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'language-javascript',\n        inside: Prism.languages.javascript\n      },\n      string: {\n        pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n        greedy: true\n      },\n      keyword: /\\b(?:as|import|on)\\b/,\n      punctuation: /[{}[\\]:;,]/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = qore\nqore.displayName = 'qore'\nqore.aliases = []\nfunction qore(Prism) {\n  Prism.languages.qore = Prism.languages.extend('clike', {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:\\/\\/|#).*)/,\n      lookbehind: true\n    },\n    // Overridden to allow unescaped multi-line strings\n    string: {\n      pattern: /(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:bool|date|float|int|list|number|string)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\\b/,\n    boolean: /\\b(?:false|true)\\b/i,\n    function: /\\$?\\b(?!\\d)\\w+(?=\\()/,\n    number:\n      /\\b(?:0b[01]+|0x(?:[\\da-f]*\\.)?[\\da-fp\\-]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e\\d+)?[df]|(?:\\d+(?:\\.\\d+)?|\\.\\d+))\\b/i,\n    operator: {\n      pattern:\n        /(^|[^.])(?:\\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\\|[|=]?|[*\\/%^]=?|[~?])/,\n      lookbehind: true\n    },\n    variable: /\\$(?!\\d)\\w+\\b/\n  })\n}\n","'use strict'\n\nmodule.exports = qsharp\nqsharp.displayName = 'qsharp'\nqsharp.aliases = ['qs']\nfunction qsharp(Prism) {\n  ;(function (Prism) {\n    /**\n     * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (zero based).\n     *\n     * Note: This is a simple text based replacement. Be careful when using backreferences!\n     *\n     * @param {string} pattern the given pattern.\n     * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n     * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n     * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n     */\n    function replace(pattern, replacements) {\n      return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n        return '(?:' + replacements[+index] + ')'\n      })\n    }\n    /**\n     * @param {string} pattern\n     * @param {string[]} replacements\n     * @param {string} [flags]\n     * @returns {RegExp}\n     */\n    function re(pattern, replacements, flags) {\n      return RegExp(replace(pattern, replacements), flags || '')\n    }\n    /**\n     * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n     *\n     * @param {string} pattern\n     * @param {number} depthLog2\n     * @returns {string}\n     */\n    function nested(pattern, depthLog2) {\n      for (var i = 0; i < depthLog2; i++) {\n        pattern = pattern.replace(/<<self>>/g, function () {\n          return '(?:' + pattern + ')'\n        })\n      }\n      return pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]')\n    } // https://docs.microsoft.com/en-us/azure/quantum/user-guide/language/typesystem/\n    // https://github.com/microsoft/qsharp-language/tree/main/Specifications/Language/5_Grammar\n    var keywordKinds = {\n      // keywords which represent a return or variable type\n      type: 'Adj BigInt Bool Ctl Double false Int One Pauli PauliI PauliX PauliY PauliZ Qubit Range Result String true Unit Zero',\n      // all other keywords\n      other:\n        'Adjoint adjoint apply as auto body borrow borrowing Controlled controlled distribute elif else fail fixup for function if in internal intrinsic invert is let mutable namespace new newtype open operation repeat return self set until use using while within'\n    } // keywords\n    function keywordsToPattern(words) {\n      return '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b'\n    }\n    var keywords = RegExp(\n      keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.other)\n    ) // types\n    var identifier = /\\b[A-Za-z_]\\w*\\b/.source\n    var qualifiedName = replace(/<<0>>(?:\\s*\\.\\s*<<0>>)*/.source, [identifier])\n    var typeInside = {\n      keyword: keywords,\n      punctuation: /[<>()?,.:[\\]]/\n    } // strings\n    var regularString = /\"(?:\\\\.|[^\\\\\"])*\"/.source\n    Prism.languages.qsharp = Prism.languages.extend('clike', {\n      comment: /\\/\\/.*/,\n      string: [\n        {\n          pattern: re(/(^|[^$\\\\])<<0>>/.source, [regularString]),\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      'class-name': [\n        {\n          // open Microsoft.Quantum.Canon;\n          // open Microsoft.Quantum.Canon as CN;\n          pattern: re(/(\\b(?:as|open)\\s+)<<0>>(?=\\s*(?:;|as\\b))/.source, [\n            qualifiedName\n          ]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // namespace Quantum.App1;\n          pattern: re(/(\\bnamespace\\s+)<<0>>(?=\\s*\\{)/.source, [qualifiedName]),\n          lookbehind: true,\n          inside: typeInside\n        }\n      ],\n      keyword: keywords,\n      number:\n        /(?:\\b0(?:x[\\da-f]+|b[01]+|o[0-7]+)|(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d*)?)(?:e[-+]?\\d+)?)l?\\b/i,\n      operator:\n        /\\band=|\\bor=|\\band\\b|\\bnot\\b|\\bor\\b|<[-=]|[-=]>|>>>=?|<<<=?|\\^\\^\\^=?|\\|\\|\\|=?|&&&=?|w\\/=?|~~~|[*\\/+\\-^=!%]=?/,\n      punctuation: /::|[{}[\\];(),.:]/\n    })\n    Prism.languages.insertBefore('qsharp', 'number', {\n      range: {\n        pattern: /\\.\\./,\n        alias: 'operator'\n      }\n    }) // single line\n    var interpolationExpr = nested(\n      replace(/\\{(?:[^\"{}]|<<0>>|<<self>>)*\\}/.source, [regularString]),\n      2\n    )\n    Prism.languages.insertBefore('qsharp', 'string', {\n      'interpolation-string': {\n        pattern: re(/\\$\"(?:\\\\.|<<0>>|[^\\\\\"{])*\"/.source, [interpolationExpr]),\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern: re(/((?:^|[^\\\\])(?:\\\\\\\\)*)<<0>>/.source, [\n              interpolationExpr\n            ]),\n            lookbehind: true,\n            inside: {\n              punctuation: /^\\{|\\}$/,\n              expression: {\n                pattern: /[\\s\\S]+/,\n                alias: 'language-qsharp',\n                inside: Prism.languages.qsharp\n              }\n            }\n          },\n          string: /[\\s\\S]+/\n        }\n      }\n    })\n  })(Prism)\n  Prism.languages.qs = Prism.languages.qsharp\n}\n","'use strict'\n\nmodule.exports = r\nr.displayName = 'r'\nr.aliases = []\nfunction r(Prism) {\n  Prism.languages.r = {\n    comment: /#.*/,\n    string: {\n      pattern: /(['\"])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    'percent-operator': {\n      // Includes user-defined operators\n      // and %%, %*%, %/%, %in%, %o%, %x%\n      pattern: /%[^%\\s]*%/,\n      alias: 'operator'\n    },\n    boolean: /\\b(?:FALSE|TRUE)\\b/,\n    ellipsis: /\\.\\.(?:\\.|\\d+)/,\n    number: [\n      /\\b(?:Inf|NaN)\\b/,\n      /(?:\\b0x[\\dA-Fa-f]+(?:\\.\\d*)?|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[EePp][+-]?\\d+)?[iL]?/\n    ],\n    keyword:\n      /\\b(?:NA|NA_character_|NA_complex_|NA_integer_|NA_real_|NULL|break|else|for|function|if|in|next|repeat|while)\\b/,\n    operator: /->?>?|<(?:=|<?-)?|[>=!]=?|::?|&&?|\\|\\|?|[+*\\/^$@~]/,\n    punctuation: /[(){}\\[\\],;]/\n  }\n}\n","'use strict'\nvar refractorScheme = require('./scheme.js')\nmodule.exports = racket\nracket.displayName = 'racket'\nracket.aliases = ['rkt']\nfunction racket(Prism) {\n  Prism.register(refractorScheme)\n  Prism.languages.racket = Prism.languages.extend('scheme', {\n    'lambda-parameter': {\n      // the racket lambda syntax is a lot more complex, so we won't even attempt to capture it.\n      // this will just prevent false positives of the `function` pattern\n      pattern: /([(\\[]lambda\\s+[(\\[])[^()\\[\\]'\\s]+/,\n      lookbehind: true\n    }\n  })\n  Prism.languages.insertBefore('racket', 'string', {\n    lang: {\n      pattern: /^#lang.+/m,\n      greedy: true,\n      alias: 'keyword'\n    }\n  })\n  Prism.languages.rkt = Prism.languages.racket\n}\n","'use strict'\n\nmodule.exports = reason\nreason.displayName = 'reason'\nreason.aliases = []\nfunction reason(Prism) {\n  Prism.languages.reason = Prism.languages.extend('clike', {\n    string: {\n      pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n      greedy: true\n    },\n    // 'class-name' must be matched *after* 'constructor' defined below\n    'class-name': /\\b[A-Z]\\w*/,\n    keyword:\n      /\\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\\b/,\n    operator:\n      /\\.{3}|:[:=]|\\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:asr|land|lor|lsl|lsr|lxor|mod)\\b/\n  })\n  Prism.languages.insertBefore('reason', 'class-name', {\n    char: {\n      pattern: /'(?:\\\\x[\\da-f]{2}|\\\\o[0-3][0-7][0-7]|\\\\\\d{3}|\\\\.|[^'\\\\\\r\\n])'/,\n      greedy: true\n    },\n    // Negative look-ahead prevents from matching things like String.capitalize\n    constructor: /\\b[A-Z]\\w*\\b(?!\\s*\\.)/,\n    label: {\n      pattern: /\\b[a-z]\\w*(?=::)/,\n      alias: 'symbol'\n    }\n  }) // We can't match functions property, so let's not even try.\n  delete Prism.languages.reason.function\n}\n","'use strict'\n\nmodule.exports = regex\nregex.displayName = 'regex'\nregex.aliases = []\nfunction regex(Prism) {\n  ;(function (Prism) {\n    var specialEscape = {\n      pattern: /\\\\[\\\\(){}[\\]^$+*?|.]/,\n      alias: 'escape'\n    }\n    var escape =\n      /\\\\(?:x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u\\{[\\da-fA-F]+\\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/\n    var charSet = {\n      pattern: /\\.|\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n      alias: 'class-name'\n    }\n    var charSetWithoutDot = {\n      pattern: /\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n      alias: 'class-name'\n    }\n    var rangeChar = '(?:[^\\\\\\\\-]|' + escape.source + ')'\n    var range = RegExp(rangeChar + '-' + rangeChar) // the name of a capturing group\n    var groupName = {\n      pattern: /(<|')[^<>']+(?=[>']$)/,\n      lookbehind: true,\n      alias: 'variable'\n    }\n    Prism.languages.regex = {\n      'char-class': {\n        pattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)\\[(?:[^\\\\\\]]|\\\\[\\s\\S])*\\]/,\n        lookbehind: true,\n        inside: {\n          'char-class-negation': {\n            pattern: /(^\\[)\\^/,\n            lookbehind: true,\n            alias: 'operator'\n          },\n          'char-class-punctuation': {\n            pattern: /^\\[|\\]$/,\n            alias: 'punctuation'\n          },\n          range: {\n            pattern: range,\n            inside: {\n              escape: escape,\n              'range-punctuation': {\n                pattern: /-/,\n                alias: 'operator'\n              }\n            }\n          },\n          'special-escape': specialEscape,\n          'char-set': charSetWithoutDot,\n          escape: escape\n        }\n      },\n      'special-escape': specialEscape,\n      'char-set': charSet,\n      backreference: [\n        {\n          // a backreference which is not an octal escape\n          pattern: /\\\\(?![123][0-7]{2})[1-9]/,\n          alias: 'keyword'\n        },\n        {\n          pattern: /\\\\k<[^<>']+>/,\n          alias: 'keyword',\n          inside: {\n            'group-name': groupName\n          }\n        }\n      ],\n      anchor: {\n        pattern: /[$^]|\\\\[ABbGZz]/,\n        alias: 'function'\n      },\n      escape: escape,\n      group: [\n        {\n          // https://docs.oracle.com/javase/10/docs/api/java/util/regex/Pattern.html\n          // https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference?view=netframework-4.7.2#grouping-constructs\n          // (), (?<name>), (?'name'), (?>), (?:), (?=), (?!), (?<=), (?<!), (?is-m), (?i-m:)\n          pattern:\n            /\\((?:\\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,\n          alias: 'punctuation',\n          inside: {\n            'group-name': groupName\n          }\n        },\n        {\n          pattern: /\\)/,\n          alias: 'punctuation'\n        }\n      ],\n      quantifier: {\n        pattern: /(?:[+*?]|\\{\\d+(?:,\\d*)?\\})[?+]?/,\n        alias: 'number'\n      },\n      alternation: {\n        pattern: /\\|/,\n        alias: 'keyword'\n      }\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = rego\nrego.displayName = 'rego'\nrego.aliases = []\nfunction rego(Prism) {\n  // https://www.openpolicyagent.org/docs/latest/policy-reference/\n  Prism.languages.rego = {\n    comment: /#.*/,\n    property: {\n      pattern:\n        /(^|[^\\\\.])(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|`[^`]*`|\\b[a-z_]\\w*\\b)(?=\\s*:(?!=))/i,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|`[^`]*`/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:as|default|else|import|not|null|package|set(?=\\s*\\()|some|with)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    function: {\n      pattern: /\\b[a-z_]\\w*\\b(?:\\s*\\.\\s*\\b[a-z_]\\w*\\b)*(?=\\s*\\()/i,\n      inside: {\n        namespace: /\\b\\w+\\b(?=\\s*\\.)/,\n        punctuation: /\\./\n      }\n    },\n    number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n    operator: /[-+*/%|&]|[<>:=]=?|!=|\\b_\\b/,\n    punctuation: /[,;.\\[\\]{}()]/\n  }\n}\n","'use strict'\n\nmodule.exports = renpy\nrenpy.displayName = 'renpy'\nrenpy.aliases = ['rpy']\nfunction renpy(Prism) {\n  Prism.languages.renpy = {\n    comment: {\n      pattern: /(^|[^\\\\])#.+/,\n      lookbehind: true\n    },\n    string: {\n      pattern:\n        /(\"\"\"|''')[\\s\\S]+?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\])*\\2|(?:^#?(?:(?:[0-9a-fA-F]){3}|[0-9a-fA-F]{6})$)/m,\n      greedy: true\n    },\n    function: /\\b[a-z_]\\w*(?=\\()/i,\n    property:\n      /\\b(?:Update|UpdateVersion|action|activate_sound|adv_nvl_transition|after_load_transition|align|alpha|alt|anchor|antialias|area|auto|background|bar_invert|bar_resizing|bar_vertical|black_color|bold|bottom_bar|bottom_gutter|bottom_margin|bottom_padding|box_reverse|box_wrap|can_update|caret|child|color|crop|default_afm_enable|default_afm_time|default_fullscreen|default_text_cps|developer|directory_name|drag_handle|drag_joined|drag_name|drag_raise|draggable|dragged|drop_shadow|drop_shadow_color|droppable|dropped|easein|easeout|edgescroll|end_game_transition|end_splash_transition|enter_replay_transition|enter_sound|enter_transition|enter_yesno_transition|executable_name|exit_replay_transition|exit_sound|exit_transition|exit_yesno_transition|fadein|fadeout|first_indent|first_spacing|fit_first|focus|focus_mask|font|foreground|game_main_transition|get_installed_packages|google_play_key|google_play_salt|ground|has_music|has_sound|has_voice|height|help|hinting|hover|hover_background|hover_color|hover_sound|hovered|hyperlink_functions|idle|idle_color|image_style|include_update|insensitive|insensitive_background|insensitive_color|inside|intra_transition|italic|justify|kerning|keyboard_focus|language|layer_clipping|layers|layout|left_bar|left_gutter|left_margin|left_padding|length|line_leading|line_overlap_split|line_spacing|linear|main_game_transition|main_menu_music|maximum|min_width|minimum|minwidth|modal|mouse|mousewheel|name|narrator_menu|newline_indent|nvl_adv_transition|offset|order_reverse|outlines|overlay_functions|pos|position|prefix|radius|range|rest_indent|right_bar|right_gutter|right_margin|right_padding|rotate|rotate_pad|ruby_style|sample_sound|save_directory|say_attribute_transition|screen_height|screen_width|scrollbars|selected_hover|selected_hover_color|selected_idle|selected_idle_color|selected_insensitive|show_side_image|show_two_window|side_spacing|side_xpos|side_ypos|size|size_group|slow_cps|slow_cps_multiplier|spacing|strikethrough|subpixel|text_align|text_style|text_xpos|text_y_fudge|text_ypos|thumb|thumb_offset|thumb_shadow|thumbnail_height|thumbnail_width|time|top_bar|top_gutter|top_margin|top_padding|translations|underline|unscrollable|update|value|version|version_name|version_tuple|vertical|width|window_hide_transition|window_icon|window_left_padding|window_show_transition|window_title|windows_icon|xadjustment|xalign|xanchor|xanchoraround|xaround|xcenter|xfill|xinitial|xmargin|xmaximum|xminimum|xoffset|xofsset|xpadding|xpos|xsize|xzoom|yadjustment|yalign|yanchor|yanchoraround|yaround|ycenter|yfill|yinitial|ymargin|ymaximum|yminimum|yoffset|ypadding|ypos|ysize|ysizexysize|yzoom|zoom|zorder)\\b/,\n    tag: /\\b(?:bar|block|button|buttoscreenn|drag|draggroup|fixed|frame|grid|[hv]box|hotbar|hotspot|image|imagebutton|imagemap|input|key|label|menu|mm_menu_frame|mousearea|nvl|parallel|screen|self|side|tag|text|textbutton|timer|vbar|viewport|window)\\b|\\$/,\n    keyword:\n      /\\b(?:None|add|adjustment|alignaround|allow|angle|animation|around|as|assert|behind|box_layout|break|build|cache|call|center|changed|child_size|choice|circles|class|clear|clicked|clipping|clockwise|config|contains|continue|corner1|corner2|counterclockwise|def|default|define|del|delay|disabled|disabled_text|dissolve|elif|else|event|except|exclude|exec|expression|fade|finally|for|from|function|global|gm_root|has|hide|id|if|import|in|init|is|jump|knot|lambda|left|less_rounded|mm_root|movie|music|null|on|onlayer|pass|pause|persistent|play|print|python|queue|raise|random|renpy|repeat|return|right|rounded_window|scene|scope|set|show|slow|slow_abortable|slow_done|sound|stop|store|style|style_group|substitute|suffix|theme|transform|transform_anchor|transpose|try|ui|unhovered|updater|use|voice|while|widget|widget_hover|widget_selected|widget_text|yield)\\b/,\n    boolean: /\\b(?:[Ff]alse|[Tt]rue)\\b/,\n    number:\n      /(?:\\b(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?)|\\B\\.\\d+)(?:e[+-]?\\d+)?j?/i,\n    operator:\n      /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:and|at|not|or|with)\\b/,\n    punctuation: /[{}[\\];(),.:]/\n  }\n  Prism.languages.rpy = Prism.languages.renpy\n}\n","'use strict'\n\nmodule.exports = rest\nrest.displayName = 'rest'\nrest.aliases = []\nfunction rest(Prism) {\n  Prism.languages.rest = {\n    table: [\n      {\n        pattern:\n          /(^[\\t ]*)(?:\\+[=-]+)+\\+(?:\\r?\\n|\\r)(?:\\1[+|].+[+|](?:\\r?\\n|\\r))+\\1(?:\\+[=-]+)+\\+/m,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\||(?:\\+[=-]+)+\\+/\n        }\n      },\n      {\n        pattern:\n          /(^[\\t ]*)=+ [ =]*=(?:(?:\\r?\\n|\\r)\\1.+)+(?:\\r?\\n|\\r)\\1=+ [ =]*=(?=(?:\\r?\\n|\\r){2}|\\s*$)/m,\n        lookbehind: true,\n        inside: {\n          punctuation: /[=-]+/\n        }\n      }\n    ],\n    // Directive-like patterns\n    'substitution-def': {\n      pattern: /(^[\\t ]*\\.\\. )\\|(?:[^|\\s](?:[^|]*[^|\\s])?)\\| [^:]+::/m,\n      lookbehind: true,\n      inside: {\n        substitution: {\n          pattern: /^\\|(?:[^|\\s]|[^|\\s][^|]*[^|\\s])\\|/,\n          alias: 'attr-value',\n          inside: {\n            punctuation: /^\\||\\|$/\n          }\n        },\n        directive: {\n          pattern: /( )(?! )[^:]+::/,\n          lookbehind: true,\n          alias: 'function',\n          inside: {\n            punctuation: /::$/\n          }\n        }\n      }\n    },\n    'link-target': [\n      {\n        pattern: /(^[\\t ]*\\.\\. )\\[[^\\]]+\\]/m,\n        lookbehind: true,\n        alias: 'string',\n        inside: {\n          punctuation: /^\\[|\\]$/\n        }\n      },\n      {\n        pattern: /(^[\\t ]*\\.\\. )_(?:`[^`]+`|(?:[^:\\\\]|\\\\.)+):/m,\n        lookbehind: true,\n        alias: 'string',\n        inside: {\n          punctuation: /^_|:$/\n        }\n      }\n    ],\n    directive: {\n      pattern: /(^[\\t ]*\\.\\. )[^:]+::/m,\n      lookbehind: true,\n      alias: 'function',\n      inside: {\n        punctuation: /::$/\n      }\n    },\n    comment: {\n      // The two alternatives try to prevent highlighting of blank comments\n      pattern:\n        /(^[\\t ]*\\.\\.)(?:(?: .+)?(?:(?:\\r?\\n|\\r).+)+| .+)(?=(?:\\r?\\n|\\r){2}|$)/m,\n      lookbehind: true\n    },\n    title: [\n      // Overlined and underlined\n      {\n        pattern:\n          /^(([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+)(?:\\r?\\n|\\r).+(?:\\r?\\n|\\r)\\1$/m,\n        inside: {\n          punctuation:\n            /^[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+|[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,\n          important: /.+/\n        }\n      }, // Underlined only\n      {\n        pattern:\n          /(^|(?:\\r?\\n|\\r){2}).+(?:\\r?\\n|\\r)([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+(?=\\r?\\n|\\r|$)/,\n        lookbehind: true,\n        inside: {\n          punctuation: /[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,\n          important: /.+/\n        }\n      }\n    ],\n    hr: {\n      pattern:\n        /((?:\\r?\\n|\\r){2})([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2{3,}(?=(?:\\r?\\n|\\r){2})/,\n      lookbehind: true,\n      alias: 'punctuation'\n    },\n    field: {\n      pattern: /(^[\\t ]*):[^:\\r\\n]+:(?= )/m,\n      lookbehind: true,\n      alias: 'attr-name'\n    },\n    'command-line-option': {\n      pattern:\n        /(^[\\t ]*)(?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?)*(?=(?:\\r?\\n|\\r)? {2,}\\S)/im,\n      lookbehind: true,\n      alias: 'symbol'\n    },\n    'literal-block': {\n      pattern: /::(?:\\r?\\n|\\r){2}([ \\t]+)(?![ \\t]).+(?:(?:\\r?\\n|\\r)\\1.+)*/,\n      inside: {\n        'literal-block-punctuation': {\n          pattern: /^::/,\n          alias: 'punctuation'\n        }\n      }\n    },\n    'quoted-literal-block': {\n      pattern:\n        /::(?:\\r?\\n|\\r){2}([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]).*(?:(?:\\r?\\n|\\r)\\1.*)*/,\n      inside: {\n        'literal-block-punctuation': {\n          pattern: /^(?:::|([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\1*)/m,\n          alias: 'punctuation'\n        }\n      }\n    },\n    'list-bullet': {\n      pattern:\n        /(^[\\t ]*)(?:[*+\\-•‣⁃]|\\(?(?:\\d+|[a-z]|[ivxdclm]+)\\)|(?:\\d+|[a-z]|[ivxdclm]+)\\.)(?= )/im,\n      lookbehind: true,\n      alias: 'punctuation'\n    },\n    'doctest-block': {\n      pattern: /(^[\\t ]*)>>> .+(?:(?:\\r?\\n|\\r).+)*/m,\n      lookbehind: true,\n      inside: {\n        punctuation: /^>>>/\n      }\n    },\n    inline: [\n      {\n        pattern:\n          /(^|[\\s\\-:\\/'\"<(\\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\\*\\*?|``?|\\|)(?!\\s)(?:(?!\\2).)*\\S\\2(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$))/m,\n        lookbehind: true,\n        inside: {\n          bold: {\n            pattern: /(^\\*\\*).+(?=\\*\\*$)/,\n            lookbehind: true\n          },\n          italic: {\n            pattern: /(^\\*).+(?=\\*$)/,\n            lookbehind: true\n          },\n          'inline-literal': {\n            pattern: /(^``).+(?=``$)/,\n            lookbehind: true,\n            alias: 'symbol'\n          },\n          role: {\n            pattern: /^:[^:]+:|:[^:]+:$/,\n            alias: 'function',\n            inside: {\n              punctuation: /^:|:$/\n            }\n          },\n          'interpreted-text': {\n            pattern: /(^`).+(?=`$)/,\n            lookbehind: true,\n            alias: 'attr-value'\n          },\n          substitution: {\n            pattern: /(^\\|).+(?=\\|$)/,\n            lookbehind: true,\n            alias: 'attr-value'\n          },\n          punctuation: /\\*\\*?|``?|\\|/\n        }\n      }\n    ],\n    link: [\n      {\n        pattern: /\\[[^\\[\\]]+\\]_(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/,\n        alias: 'string',\n        inside: {\n          punctuation: /^\\[|\\]_$/\n        }\n      },\n      {\n        pattern:\n          /(?:\\b[a-z\\d]+(?:[_.:+][a-z\\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/i,\n        alias: 'string',\n        inside: {\n          punctuation: /^_?`|`$|`?_?_$/\n        }\n      }\n    ],\n    // Line block start,\n    // quote attribution,\n    // explicit markup start,\n    // and anonymous hyperlink target shortcut (__)\n    punctuation: {\n      pattern: /(^[\\t ]*)(?:\\|(?= |$)|(?:---?|—|\\.\\.|__)(?= )|\\.\\.$)/m,\n      lookbehind: true\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = rip\nrip.displayName = 'rip'\nrip.aliases = []\nfunction rip(Prism) {\n  Prism.languages.rip = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    char: {\n      pattern: /\\B`[^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]\\b/,\n      greedy: true\n    },\n    string: {\n      pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    regex: {\n      pattern:\n        /(^|[^/])\\/(?!\\/)(?:\\[[^\\n\\r\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/(?=\\s*(?:$|[\\r\\n,.;})]))/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /(?:=>|->)|\\b(?:case|catch|class|else|exit|finally|if|raise|return|switch|try)\\b/,\n    builtin: /@|\\bSystem\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    date: /\\b\\d{4}-\\d{2}-\\d{2}\\b/,\n    time: /\\b\\d{2}:\\d{2}:\\d{2}\\b/,\n    datetime: /\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\b/,\n    symbol: /:[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/,\n    number: /[+-]?\\b(?:\\d+\\.\\d+|\\d+)\\b/,\n    punctuation: /(?:\\.{2,3})|[`,.:;=\\/\\\\()<>\\[\\]{}]/,\n    reference: /[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/\n  }\n}\n","'use strict'\n\nmodule.exports = roboconf\nroboconf.displayName = 'roboconf'\nroboconf.aliases = []\nfunction roboconf(Prism) {\n  Prism.languages.roboconf = {\n    comment: /#.*/,\n    keyword: {\n      pattern:\n        /(^|\\s)(?:(?:external|import)\\b|(?:facet|instance of)(?=[ \\t]+[\\w-]+[ \\t]*\\{))/,\n      lookbehind: true\n    },\n    component: {\n      pattern: /[\\w-]+(?=[ \\t]*\\{)/,\n      alias: 'variable'\n    },\n    property: /[\\w.-]+(?=[ \\t]*:)/,\n    value: {\n      pattern: /(=[ \\t]*(?![ \\t]))[^,;]+/,\n      lookbehind: true,\n      alias: 'attr-value'\n    },\n    optional: {\n      pattern: /\\(optional\\)/,\n      alias: 'builtin'\n    },\n    wildcard: {\n      pattern: /(\\.)\\*/,\n      lookbehind: true,\n      alias: 'operator'\n    },\n    punctuation: /[{},.;:=]/\n  }\n}\n","'use strict'\n\nmodule.exports = robotframework\nrobotframework.displayName = 'robotframework'\nrobotframework.aliases = []\nfunction robotframework(Prism) {\n  ;(function (Prism) {\n    var comment = {\n      pattern: /(^[ \\t]*| {2}|\\t)#.*/m,\n      lookbehind: true,\n      greedy: true\n    }\n    var variable = {\n      pattern: /((?:^|[^\\\\])(?:\\\\{2})*)[$@&%]\\{(?:[^{}\\r\\n]|\\{[^{}\\r\\n]*\\})*\\}/,\n      lookbehind: true,\n      inside: {\n        punctuation: /^[$@&%]\\{|\\}$/\n      }\n    }\n    function createSection(name, inside) {\n      var extendecInside = {}\n      extendecInside['section-header'] = {\n        pattern: /^ ?\\*{3}.+?\\*{3}/,\n        alias: 'keyword'\n      } // copy inside tokens\n      for (var token in inside) {\n        extendecInside[token] = inside[token]\n      }\n      extendecInside['tag'] = {\n        pattern: /([\\r\\n](?: {2}|\\t)[ \\t]*)\\[[-\\w]+\\]/,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\[|\\]/\n        }\n      }\n      extendecInside['variable'] = variable\n      extendecInside['comment'] = comment\n      return {\n        pattern: RegExp(\n          /^ ?\\*{3}[ \\t]*<name>[ \\t]*\\*{3}(?:.|[\\r\\n](?!\\*{3}))*/.source.replace(\n            /<name>/g,\n            function () {\n              return name\n            }\n          ),\n          'im'\n        ),\n        alias: 'section',\n        inside: extendecInside\n      }\n    }\n    var docTag = {\n      pattern:\n        /(\\[Documentation\\](?: {2}|\\t)[ \\t]*)(?![ \\t]|#)(?:.|(?:\\r\\n?|\\n)[ \\t]*\\.{3})+/,\n      lookbehind: true,\n      alias: 'string'\n    }\n    var testNameLike = {\n      pattern: /([\\r\\n] ?)(?!#)(?:\\S(?:[ \\t]\\S)*)+/,\n      lookbehind: true,\n      alias: 'function',\n      inside: {\n        variable: variable\n      }\n    }\n    var testPropertyLike = {\n      pattern: /([\\r\\n](?: {2}|\\t)[ \\t]*)(?!\\[|\\.{3}|#)(?:\\S(?:[ \\t]\\S)*)+/,\n      lookbehind: true,\n      inside: {\n        variable: variable\n      }\n    }\n    Prism.languages['robotframework'] = {\n      settings: createSection('Settings', {\n        documentation: {\n          pattern:\n            /([\\r\\n] ?Documentation(?: {2}|\\t)[ \\t]*)(?![ \\t]|#)(?:.|(?:\\r\\n?|\\n)[ \\t]*\\.{3})+/,\n          lookbehind: true,\n          alias: 'string'\n        },\n        property: {\n          pattern: /([\\r\\n] ?)(?!\\.{3}|#)(?:\\S(?:[ \\t]\\S)*)+/,\n          lookbehind: true\n        }\n      }),\n      variables: createSection('Variables'),\n      'test-cases': createSection('Test Cases', {\n        'test-name': testNameLike,\n        documentation: docTag,\n        property: testPropertyLike\n      }),\n      keywords: createSection('Keywords', {\n        'keyword-name': testNameLike,\n        documentation: docTag,\n        property: testPropertyLike\n      }),\n      tasks: createSection('Tasks', {\n        'task-name': testNameLike,\n        documentation: docTag,\n        property: testPropertyLike\n      }),\n      comment: comment\n    }\n    Prism.languages.robot = Prism.languages['robotframework']\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = ruby\nruby.displayName = 'ruby'\nruby.aliases = ['rb']\nfunction ruby(Prism) {\n  /**\n   * Original by Samuel Flores\n   *\n   * Adds the following new token classes:\n   *     constant, builtin, variable, symbol, regex\n   */\n  ;(function (Prism) {\n    Prism.languages.ruby = Prism.languages.extend('clike', {\n      comment: {\n        pattern: /#.*|^=begin\\s[\\s\\S]*?^=end/m,\n        greedy: true\n      },\n      'class-name': {\n        pattern:\n          /(\\b(?:class|module)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+|\\b[A-Z_]\\w*(?=\\s*\\.\\s*new\\b)/,\n        lookbehind: true,\n        inside: {\n          punctuation: /[.\\\\]/\n        }\n      },\n      keyword:\n        /\\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\\b/,\n      operator:\n        /\\.{2,3}|&\\.|===|<?=>|[!=]?~|(?:&&|\\|\\||<<|>>|\\*\\*|[+\\-*/%<>!^&|=])=?|[?:]/,\n      punctuation: /[(){}[\\].,;]/\n    })\n    Prism.languages.insertBefore('ruby', 'operator', {\n      'double-colon': {\n        pattern: /::/,\n        alias: 'punctuation'\n      }\n    })\n    var interpolation = {\n      pattern: /((?:^|[^\\\\])(?:\\\\{2})*)#\\{(?:[^{}]|\\{[^{}]*\\})*\\}/,\n      lookbehind: true,\n      inside: {\n        content: {\n          pattern: /^(#\\{)[\\s\\S]+(?=\\}$)/,\n          lookbehind: true,\n          inside: Prism.languages.ruby\n        },\n        delimiter: {\n          pattern: /^#\\{|\\}$/,\n          alias: 'punctuation'\n        }\n      }\n    }\n    delete Prism.languages.ruby.function\n    var percentExpression =\n      '(?:' +\n      [\n        /([^a-zA-Z0-9\\s{(\\[<=])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source,\n        /\\((?:[^()\\\\]|\\\\[\\s\\S]|\\((?:[^()\\\\]|\\\\[\\s\\S])*\\))*\\)/.source,\n        /\\{(?:[^{}\\\\]|\\\\[\\s\\S]|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\})*\\}/.source,\n        /\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S]|\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\])*\\]/.source,\n        /<(?:[^<>\\\\]|\\\\[\\s\\S]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)*>/.source\n      ].join('|') +\n      ')'\n    var symbolName =\n      /(?:\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|(?:\\b[a-zA-Z_]\\w*|[^\\s\\0-\\x7F]+)[?!]?|\\$.)/\n        .source\n    Prism.languages.insertBefore('ruby', 'keyword', {\n      'regex-literal': [\n        {\n          pattern: RegExp(\n            /%r/.source + percentExpression + /[egimnosux]{0,6}/.source\n          ),\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            regex: /[\\s\\S]+/\n          }\n        },\n        {\n          pattern:\n            /(^|[^/])\\/(?!\\/)(?:\\[[^\\r\\n\\]]+\\]|\\\\.|[^[/\\\\\\r\\n])+\\/[egimnosux]{0,6}(?=\\s*(?:$|[\\r\\n,.;})#]))/,\n          lookbehind: true,\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            regex: /[\\s\\S]+/\n          }\n        }\n      ],\n      variable: /[@$]+[a-zA-Z_]\\w*(?:[?!]|\\b)/,\n      symbol: [\n        {\n          pattern: RegExp(/(^|[^:]):/.source + symbolName),\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          pattern: RegExp(\n            /([\\r\\n{(,][ \\t]*)/.source + symbolName + /(?=:(?!:))/.source\n          ),\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      'method-definition': {\n        pattern: /(\\bdef\\s+)\\w+(?:\\s*\\.\\s*\\w+)?/,\n        lookbehind: true,\n        inside: {\n          function: /\\b\\w+$/,\n          keyword: /^self\\b/,\n          'class-name': /^\\w+/,\n          punctuation: /\\./\n        }\n      }\n    })\n    Prism.languages.insertBefore('ruby', 'string', {\n      'string-literal': [\n        {\n          pattern: RegExp(/%[qQiIwWs]?/.source + percentExpression),\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            string: /[\\s\\S]+/\n          }\n        },\n        {\n          pattern:\n            /(\"|')(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\#\\r\\n])*\\1/,\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            string: /[\\s\\S]+/\n          }\n        },\n        {\n          pattern: /<<[-~]?([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n          alias: 'heredoc-string',\n          greedy: true,\n          inside: {\n            delimiter: {\n              pattern: /^<<[-~]?[a-z_]\\w*|\\b[a-z_]\\w*$/i,\n              inside: {\n                symbol: /\\b\\w+/,\n                punctuation: /^<<[-~]?/\n              }\n            },\n            interpolation: interpolation,\n            string: /[\\s\\S]+/\n          }\n        },\n        {\n          pattern: /<<[-~]?'([a-z_]\\w*)'[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n          alias: 'heredoc-string',\n          greedy: true,\n          inside: {\n            delimiter: {\n              pattern: /^<<[-~]?'[a-z_]\\w*'|\\b[a-z_]\\w*$/i,\n              inside: {\n                symbol: /\\b\\w+/,\n                punctuation: /^<<[-~]?'|'$/\n              }\n            },\n            string: /[\\s\\S]+/\n          }\n        }\n      ],\n      'command-literal': [\n        {\n          pattern: RegExp(/%x/.source + percentExpression),\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            command: {\n              pattern: /[\\s\\S]+/,\n              alias: 'string'\n            }\n          }\n        },\n        {\n          pattern: /`(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|[^\\\\`#\\r\\n])*`/,\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            command: {\n              pattern: /[\\s\\S]+/,\n              alias: 'string'\n            }\n          }\n        }\n      ]\n    })\n    delete Prism.languages.ruby.string\n    Prism.languages.insertBefore('ruby', 'number', {\n      builtin:\n        /\\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\\b/,\n      constant: /\\b[A-Z][A-Z0-9_]*(?:[?!]|\\b)/\n    })\n    Prism.languages.rb = Prism.languages.ruby\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = rust\nrust.displayName = 'rust'\nrust.aliases = []\nfunction rust(Prism) {\n  ;(function (Prism) {\n    var multilineComment = /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\//.source\n    for (var i = 0; i < 2; i++) {\n      // support 4 levels of nested comments\n      multilineComment = multilineComment.replace(/<self>/g, function () {\n        return multilineComment\n      })\n    }\n    multilineComment = multilineComment.replace(/<self>/g, function () {\n      return /[^\\s\\S]/.source\n    })\n    Prism.languages.rust = {\n      comment: [\n        {\n          pattern: RegExp(/(^|[^\\\\])/.source + multilineComment),\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          pattern: /(^|[^\\\\:])\\/\\/.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      string: {\n        pattern: /b?\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|b?r(#*)\"(?:[^\"]|\"(?!\\1))*\"\\1/,\n        greedy: true\n      },\n      char: {\n        pattern:\n          /b?'(?:\\\\(?:x[0-7][\\da-fA-F]|u\\{(?:[\\da-fA-F]_*){1,6}\\}|.)|[^\\\\\\r\\n\\t'])'/,\n        greedy: true\n      },\n      attribute: {\n        pattern: /#!?\\[(?:[^\\[\\]\"]|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")*\\]/,\n        greedy: true,\n        alias: 'attr-name',\n        inside: {\n          string: null // see below\n        }\n      },\n      // Closure params should not be confused with bitwise OR |\n      'closure-params': {\n        pattern: /([=(,:]\\s*|\\bmove\\s*)\\|[^|]*\\||\\|[^|]*\\|(?=\\s*(?:\\{|->))/,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          'closure-punctuation': {\n            pattern: /^\\||\\|$/,\n            alias: 'punctuation'\n          },\n          rest: null // see below\n        }\n      },\n      'lifetime-annotation': {\n        pattern: /'\\w+/,\n        alias: 'symbol'\n      },\n      'fragment-specifier': {\n        pattern: /(\\$\\w+:)[a-z]+/,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      variable: /\\$\\w+/,\n      'function-definition': {\n        pattern: /(\\bfn\\s+)\\w+/,\n        lookbehind: true,\n        alias: 'function'\n      },\n      'type-definition': {\n        pattern: /(\\b(?:enum|struct|trait|type|union)\\s+)\\w+/,\n        lookbehind: true,\n        alias: 'class-name'\n      },\n      'module-declaration': [\n        {\n          pattern: /(\\b(?:crate|mod)\\s+)[a-z][a-z_\\d]*/,\n          lookbehind: true,\n          alias: 'namespace'\n        },\n        {\n          pattern:\n            /(\\b(?:crate|self|super)\\s*)::\\s*[a-z][a-z_\\d]*\\b(?:\\s*::(?:\\s*[a-z][a-z_\\d]*\\s*::)*)?/,\n          lookbehind: true,\n          alias: 'namespace',\n          inside: {\n            punctuation: /::/\n          }\n        }\n      ],\n      keyword: [\n        // https://github.com/rust-lang/reference/blob/master/src/keywords.md\n        /\\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\\b/, // primitives and str\n        // https://doc.rust-lang.org/stable/rust-by-example/primitives.html\n        /\\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\\b/\n      ],\n      // functions can technically start with an upper-case letter, but this will introduce a lot of false positives\n      // and Rust's naming conventions recommend snake_case anyway.\n      // https://doc.rust-lang.org/1.0.0/style/style/naming/README.html\n      function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())/,\n      macro: {\n        pattern: /\\b\\w+!/,\n        alias: 'property'\n      },\n      constant: /\\b[A-Z_][A-Z_\\d]+\\b/,\n      'class-name': /\\b[A-Z]\\w*\\b/,\n      namespace: {\n        pattern: /(?:\\b[a-z][a-z_\\d]*\\s*::\\s*)*\\b[a-z][a-z_\\d]*\\s*::(?!\\s*<)/,\n        inside: {\n          punctuation: /::/\n        }\n      },\n      // Hex, oct, bin, dec numbers with visual separators and type suffix\n      number:\n        /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      punctuation: /->|\\.\\.=|\\.{1,3}|::|[{}[\\];(),:]/,\n      operator: /[-+*\\/%!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?=?|[@?]/\n    }\n    Prism.languages.rust['closure-params'].inside.rest = Prism.languages.rust\n    Prism.languages.rust['attribute'].inside['string'] =\n      Prism.languages.rust['string']\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = sas\nsas.displayName = 'sas'\nsas.aliases = []\nfunction sas(Prism) {\n  ;(function (Prism) {\n    var stringPattern = /(?:\"(?:\"\"|[^\"])*\"(?!\")|'(?:''|[^'])*'(?!'))/.source\n    var number = /\\b(?:\\d[\\da-f]*x|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i\n    var numericConstant = {\n      pattern: RegExp(stringPattern + '[bx]'),\n      alias: 'number'\n    }\n    var macroVariable = {\n      pattern: /&[a-z_]\\w*/i\n    }\n    var macroKeyword = {\n      pattern:\n        /((?:^|\\s|=|\\())%(?:ABORT|BY|CMS|COPY|DISPLAY|DO|ELSE|END|EVAL|GLOBAL|GO|GOTO|IF|INC|INCLUDE|INDEX|INPUT|KTRIM|LENGTH|LET|LIST|LOCAL|PUT|QKTRIM|QSCAN|QSUBSTR|QSYSFUNC|QUPCASE|RETURN|RUN|SCAN|SUBSTR|SUPERQ|SYMDEL|SYMEXIST|SYMGLOBL|SYMLOCAL|SYSCALL|SYSEVALF|SYSEXEC|SYSFUNC|SYSGET|SYSRPUT|THEN|TO|TSO|UNQUOTE|UNTIL|UPCASE|WHILE|WINDOW)\\b/i,\n      lookbehind: true,\n      alias: 'keyword'\n    }\n    var step = {\n      pattern: /(^|\\s)(?:proc\\s+\\w+|data(?!=)|quit|run)\\b/i,\n      alias: 'keyword',\n      lookbehind: true\n    }\n    var comment = [\n      /\\/\\*[\\s\\S]*?\\*\\//,\n      {\n        pattern: /(^[ \\t]*|;\\s*)\\*[^;]*;/m,\n        lookbehind: true\n      }\n    ]\n    var string = {\n      pattern: RegExp(stringPattern),\n      greedy: true\n    }\n    var punctuation = /[$%@.(){}\\[\\];,\\\\]/\n    var func = {\n      pattern: /%?\\b\\w+(?=\\()/,\n      alias: 'keyword'\n    }\n    var args = {\n      function: func,\n      'arg-value': {\n        pattern: /(=\\s*)[A-Z\\.]+/i,\n        lookbehind: true\n      },\n      operator: /=/,\n      'macro-variable': macroVariable,\n      arg: {\n        pattern: /[A-Z]+/i,\n        alias: 'keyword'\n      },\n      number: number,\n      'numeric-constant': numericConstant,\n      punctuation: punctuation,\n      string: string\n    }\n    var format = {\n      pattern: /\\b(?:format|put)\\b=?[\\w'$.]+/i,\n      inside: {\n        keyword: /^(?:format|put)(?==)/i,\n        equals: /=/,\n        format: {\n          pattern: /(?:\\w|\\$\\d)+\\.\\d?/,\n          alias: 'number'\n        }\n      }\n    }\n    var altformat = {\n      pattern: /\\b(?:format|put)\\s+[\\w']+(?:\\s+[$.\\w]+)+(?=;)/i,\n      inside: {\n        keyword: /^(?:format|put)/i,\n        format: {\n          pattern: /[\\w$]+\\.\\d?/,\n          alias: 'number'\n        }\n      }\n    }\n    var globalStatements = {\n      pattern:\n        /((?:^|\\s)=?)(?:catname|checkpoint execute_always|dm|endsas|filename|footnote|%include|libname|%list|lock|missing|options|page|resetline|%run|sasfile|skip|sysecho|title\\d?)\\b/i,\n      lookbehind: true,\n      alias: 'keyword'\n    }\n    var submitStatement = {\n      pattern: /(^|\\s)(?:submit(?:\\s+(?:load|norun|parseonly))?|endsubmit)\\b/i,\n      lookbehind: true,\n      alias: 'keyword'\n    }\n    var actionSets =\n      /aStore|accessControl|aggregation|audio|autotune|bayesianNetClassifier|bioMedImage|boolRule|builtins|cardinality|cdm|clustering|conditionalRandomFields|configuration|copula|countreg|dataDiscovery|dataPreprocess|dataSciencePilot|dataStep|decisionTree|deduplication|deepLearn|deepNeural|deepRnn|ds2|ecm|entityRes|espCluster|explainModel|factmac|fastKnn|fcmpact|fedSql|freqTab|gVarCluster|gam|gleam|graphSemiSupLearn|hiddenMarkovModel|hyperGroup|ica|image|iml|kernalPca|langModel|ldaTopic|loadStreams|mbc|mixed|mlTools|modelPublishing|network|neuralNet|nmf|nonParametricBayes|nonlinear|optNetwork|optimization|panel|pca|percentile|phreg|pls|qkb|qlim|quantreg|recommend|regression|reinforcementLearn|robustPca|ruleMining|sampling|sandwich|sccasl|search(?:Analytics)?|sentimentAnalysis|sequence|session(?:Prop)?|severity|simSystem|simple|smartData|sparkEmbeddedProcess|sparseML|spatialreg|spc|stabilityMonitoring|svDataDescription|svm|table|text(?:Filters|Frequency|Mining|Parse|Rule(?:Develop|Score)|Topic|Util)|timeData|transpose|tsInfo|tsReconcile|uniTimeSeries|varReduce/\n        .source\n    var casActions = {\n      pattern: RegExp(\n        /(^|\\s)(?:action\\s+)?(?:<act>)\\.[a-z]+\\b[^;]+/.source.replace(\n          /<act>/g,\n          function () {\n            return actionSets\n          }\n        ),\n        'i'\n      ),\n      lookbehind: true,\n      inside: {\n        keyword: RegExp(\n          /(?:<act>)\\.[a-z]+\\b/.source.replace(/<act>/g, function () {\n            return actionSets\n          }),\n          'i'\n        ),\n        action: {\n          pattern: /(?:action)/i,\n          alias: 'keyword'\n        },\n        comment: comment,\n        function: func,\n        'arg-value': args['arg-value'],\n        operator: args.operator,\n        argument: args.arg,\n        number: number,\n        'numeric-constant': numericConstant,\n        punctuation: punctuation,\n        string: string\n      }\n    }\n    var keywords = {\n      pattern:\n        /((?:^|\\s)=?)(?:after|analysis|and|array|barchart|barwidth|begingraph|by|call|cas|cbarline|cfill|class(?:lev)?|close|column|computed?|contains|continue|data(?==)|define|delete|describe|document|do\\s+over|do|dol|drop|dul|else|end(?:comp|source)?|entryTitle|eval(?:uate)?|exec(?:ute)?|exit|file(?:name)?|fill(?:attrs)?|flist|fnc|function(?:list)?|global|goto|group(?:by)?|headline|headskip|histogram|if|infile|keep|keylabel|keyword|label|layout|leave|legendlabel|length|libname|loadactionset|merge|midpoints|_?null_|name|noobs|nowd|ods|options|or|otherwise|out(?:put)?|over(?:lay)?|plot|print|put|raise|ranexp|rannor|rbreak|retain|return|select|session|sessref|set|source|statgraph|sum|summarize|table|temp|terminate|then\\s+do|then|title\\d?|to|var|when|where|xaxisopts|y2axisopts|yaxisopts)\\b/i,\n      lookbehind: true\n    }\n    Prism.languages.sas = {\n      datalines: {\n        pattern: /^([ \\t]*)(?:cards|(?:data)?lines);[\\s\\S]+?^[ \\t]*;/im,\n        lookbehind: true,\n        alias: 'string',\n        inside: {\n          keyword: {\n            pattern: /^(?:cards|(?:data)?lines)/i\n          },\n          punctuation: /;/\n        }\n      },\n      'proc-sql': {\n        pattern:\n          /(^proc\\s+(?:fed)?sql(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n        lookbehind: true,\n        inside: {\n          sql: {\n            pattern: RegExp(\n              /^[ \\t]*(?:select|alter\\s+table|(?:create|describe|drop)\\s+(?:index|table(?:\\s+constraints)?|view)|create\\s+unique\\s+index|insert\\s+into|update)(?:<str>|[^;\"'])+;/.source.replace(\n                /<str>/g,\n                function () {\n                  return stringPattern\n                }\n              ),\n              'im'\n            ),\n            alias: 'language-sql',\n            inside: Prism.languages.sql\n          },\n          'global-statements': globalStatements,\n          'sql-statements': {\n            pattern:\n              /(^|\\s)(?:disconnect\\s+from|begin|commit|exec(?:ute)?|reset|rollback|validate)\\b/i,\n            lookbehind: true,\n            alias: 'keyword'\n          },\n          number: number,\n          'numeric-constant': numericConstant,\n          punctuation: punctuation,\n          string: string\n        }\n      },\n      'proc-groovy': {\n        pattern:\n          /(^proc\\s+groovy(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n        lookbehind: true,\n        inside: {\n          comment: comment,\n          groovy: {\n            pattern: RegExp(\n              /(^[ \\t]*submit(?:\\s+(?:load|norun|parseonly))?)(?:<str>|[^\"'])+?(?=endsubmit;)/.source.replace(\n                /<str>/g,\n                function () {\n                  return stringPattern\n                }\n              ),\n              'im'\n            ),\n            lookbehind: true,\n            alias: 'language-groovy',\n            inside: Prism.languages.groovy\n          },\n          keyword: keywords,\n          'submit-statement': submitStatement,\n          'global-statements': globalStatements,\n          number: number,\n          'numeric-constant': numericConstant,\n          punctuation: punctuation,\n          string: string\n        }\n      },\n      'proc-lua': {\n        pattern:\n          /(^proc\\s+lua(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n        lookbehind: true,\n        inside: {\n          comment: comment,\n          lua: {\n            pattern: RegExp(\n              /(^[ \\t]*submit(?:\\s+(?:load|norun|parseonly))?)(?:<str>|[^\"'])+?(?=endsubmit;)/.source.replace(\n                /<str>/g,\n                function () {\n                  return stringPattern\n                }\n              ),\n              'im'\n            ),\n            lookbehind: true,\n            alias: 'language-lua',\n            inside: Prism.languages.lua\n          },\n          keyword: keywords,\n          'submit-statement': submitStatement,\n          'global-statements': globalStatements,\n          number: number,\n          'numeric-constant': numericConstant,\n          punctuation: punctuation,\n          string: string\n        }\n      },\n      'proc-cas': {\n        pattern:\n          /(^proc\\s+cas(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|quit|data);|(?![\\s\\S]))/im,\n        lookbehind: true,\n        inside: {\n          comment: comment,\n          'statement-var': {\n            pattern: /((?:^|\\s)=?)saveresult\\s[^;]+/im,\n            lookbehind: true,\n            inside: {\n              statement: {\n                pattern: /^saveresult\\s+\\S+/i,\n                inside: {\n                  keyword: /^(?:saveresult)/i\n                }\n              },\n              rest: args\n            }\n          },\n          'cas-actions': casActions,\n          statement: {\n            pattern:\n              /((?:^|\\s)=?)(?:default|(?:un)?set|on|output|upload)[^;]+/im,\n            lookbehind: true,\n            inside: args\n          },\n          step: step,\n          keyword: keywords,\n          function: func,\n          format: format,\n          altformat: altformat,\n          'global-statements': globalStatements,\n          number: number,\n          'numeric-constant': numericConstant,\n          punctuation: punctuation,\n          string: string\n        }\n      },\n      'proc-args': {\n        pattern: RegExp(\n          /(^proc\\s+\\w+\\s+)(?!\\s)(?:[^;\"']|<str>)+;/.source.replace(\n            /<str>/g,\n            function () {\n              return stringPattern\n            }\n          ),\n          'im'\n        ),\n        lookbehind: true,\n        inside: args\n      },\n      /*Special keywords within macros*/\n      'macro-keyword': macroKeyword,\n      'macro-variable': macroVariable,\n      'macro-string-functions': {\n        pattern:\n          /((?:^|\\s|=))%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)\\(.*?(?:[^%]\\))/i,\n        lookbehind: true,\n        inside: {\n          function: {\n            pattern: /%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)/i,\n            alias: 'keyword'\n          },\n          'macro-keyword': macroKeyword,\n          'macro-variable': macroVariable,\n          'escaped-char': {\n            pattern: /%['\"()<>=¬^~;,#]/\n          },\n          punctuation: punctuation\n        }\n      },\n      'macro-declaration': {\n        pattern: /^%macro[^;]+(?=;)/im,\n        inside: {\n          keyword: /%macro/i\n        }\n      },\n      'macro-end': {\n        pattern: /^%mend[^;]+(?=;)/im,\n        inside: {\n          keyword: /%mend/i\n        }\n      },\n      /*%_zscore(headcir, _lhc, _mhc, _shc, headcz, headcpct, _Fheadcz); */\n      macro: {\n        pattern: /%_\\w+(?=\\()/,\n        alias: 'keyword'\n      },\n      input: {\n        pattern: /\\binput\\s[-\\w\\s/*.$&]+;/i,\n        inside: {\n          input: {\n            alias: 'keyword',\n            pattern: /^input/i\n          },\n          comment: comment,\n          number: number,\n          'numeric-constant': numericConstant\n        }\n      },\n      'options-args': {\n        pattern: /(^options)[-'\"|/\\\\<>*+=:()\\w\\s]*(?=;)/im,\n        lookbehind: true,\n        inside: args\n      },\n      'cas-actions': casActions,\n      comment: comment,\n      function: func,\n      format: format,\n      altformat: altformat,\n      'numeric-constant': numericConstant,\n      datetime: {\n        // '1jan2013'd, '9:25:19pm't, '18jan2003:9:27:05am'dt\n        pattern: RegExp(stringPattern + '(?:dt?|t)'),\n        alias: 'number'\n      },\n      string: string,\n      step: step,\n      keyword: keywords,\n      // In SAS Studio syntax highlighting, these operators are styled like keywords\n      'operator-keyword': {\n        pattern: /\\b(?:eq|ge|gt|in|le|lt|ne|not)\\b/i,\n        alias: 'operator'\n      },\n      // Decimal (1.2e23), hexadecimal (0c1x)\n      number: number,\n      operator: /\\*\\*?|\\|\\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\\/=&]|[~¬^]=?/,\n      punctuation: punctuation\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = sass\nsass.displayName = 'sass'\nsass.aliases = []\nfunction sass(Prism) {\n  ;(function (Prism) {\n    Prism.languages.sass = Prism.languages.extend('css', {\n      // Sass comments don't need to be closed, only indented\n      comment: {\n        pattern: /^([ \\t]*)\\/[\\/*].*(?:(?:\\r?\\n|\\r)\\1[ \\t].+)*/m,\n        lookbehind: true,\n        greedy: true\n      }\n    })\n    Prism.languages.insertBefore('sass', 'atrule', {\n      // We want to consume the whole line\n      'atrule-line': {\n        // Includes support for = and + shortcuts\n        pattern: /^(?:[ \\t]*)[@+=].+/m,\n        greedy: true,\n        inside: {\n          atrule: /(?:@[\\w-]+|[+=])/\n        }\n      }\n    })\n    delete Prism.languages.sass.atrule\n    var variable = /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n    var operator = [\n      /[+*\\/%]|[=!]=|<=?|>=?|\\b(?:and|not|or)\\b/,\n      {\n        pattern: /(\\s)-(?=\\s)/,\n        lookbehind: true\n      }\n    ]\n    Prism.languages.insertBefore('sass', 'property', {\n      // We want to consume the whole line\n      'variable-line': {\n        pattern: /^[ \\t]*\\$.+/m,\n        greedy: true,\n        inside: {\n          punctuation: /:/,\n          variable: variable,\n          operator: operator\n        }\n      },\n      // We want to consume the whole line\n      'property-line': {\n        pattern: /^[ \\t]*(?:[^:\\s]+ *:.*|:[^:\\s].*)/m,\n        greedy: true,\n        inside: {\n          property: [\n            /[^:\\s]+(?=\\s*:)/,\n            {\n              pattern: /(:)[^:\\s]+/,\n              lookbehind: true\n            }\n          ],\n          punctuation: /:/,\n          variable: variable,\n          operator: operator,\n          important: Prism.languages.sass.important\n        }\n      }\n    })\n    delete Prism.languages.sass.property\n    delete Prism.languages.sass.important // Now that whole lines for other patterns are consumed,\n    // what's left should be selectors\n    Prism.languages.insertBefore('sass', 'punctuation', {\n      selector: {\n        pattern:\n          /^([ \\t]*)\\S(?:,[^,\\r\\n]+|[^,\\r\\n]*)(?:,[^,\\r\\n]+)*(?:,(?:\\r?\\n|\\r)\\1[ \\t]+\\S(?:,[^,\\r\\n]+|[^,\\r\\n]*)(?:,[^,\\r\\n]+)*)*/m,\n        lookbehind: true,\n        greedy: true\n      }\n    })\n  })(Prism)\n}\n","'use strict'\nvar refractorJava = require('./java.js')\nmodule.exports = scala\nscala.displayName = 'scala'\nscala.aliases = []\nfunction scala(Prism) {\n  Prism.register(refractorJava)\n  Prism.languages.scala = Prism.languages.extend('java', {\n    'triple-quoted-string': {\n      pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n      greedy: true,\n      alias: 'string'\n    },\n    string: {\n      pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    keyword:\n      /<-|=>|\\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\\b/,\n    number:\n      /\\b0x(?:[\\da-f]*\\.)?[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e\\d+)?[dfl]?/i,\n    builtin:\n      /\\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\\b/,\n    symbol: /'[^\\d\\s\\\\]\\w*/\n  })\n  Prism.languages.insertBefore('scala', 'triple-quoted-string', {\n    'string-interpolation': {\n      pattern:\n        /\\b[a-z]\\w*(?:\"\"\"(?:[^$]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*?\"\"\"|\"(?:[^$\"\\r\\n]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*\")/i,\n      greedy: true,\n      inside: {\n        id: {\n          pattern: /^\\w+/,\n          greedy: true,\n          alias: 'function'\n        },\n        escape: {\n          pattern: /\\\\\\$\"|\\$[$\"]/,\n          greedy: true,\n          alias: 'symbol'\n        },\n        interpolation: {\n          pattern: /\\$(?:\\w+|\\{(?:[^{}]|\\{[^{}]*\\})*\\})/,\n          greedy: true,\n          inside: {\n            punctuation: /^\\$\\{?|\\}$/,\n            expression: {\n              pattern: /[\\s\\S]+/,\n              inside: Prism.languages.scala\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n  })\n  delete Prism.languages.scala['class-name']\n  delete Prism.languages.scala['function']\n}\n","'use strict'\n\nmodule.exports = scheme\nscheme.displayName = 'scheme'\nscheme.aliases = []\nfunction scheme(Prism) {\n  ;(function (Prism) {\n    Prism.languages.scheme = {\n      // this supports \"normal\" single-line comments:\n      //   ; comment\n      // and (potentially nested) multiline comments:\n      //   #| comment #| nested |# still comment |#\n      // (only 1 level of nesting is supported)\n      comment:\n        /;.*|#;\\s*(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\[(?:[^\\[\\]]|\\[[^\\[\\]]*\\])*\\])|#\\|(?:[^#|]|#(?!\\|)|\\|(?!#)|#\\|(?:[^#|]|#(?!\\|)|\\|(?!#))*\\|#)*\\|#/,\n      string: {\n        pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n        greedy: true\n      },\n      symbol: {\n        pattern: /'[^()\\[\\]#'\\s]+/,\n        greedy: true\n      },\n      char: {\n        pattern:\n          /#\\\\(?:[ux][a-fA-F\\d]+\\b|[-a-zA-Z]+\\b|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\\S)/,\n        greedy: true\n      },\n      'lambda-parameter': [\n        // https://www.cs.cmu.edu/Groups/AI/html/r4rs/r4rs_6.html#SEC30\n        {\n          pattern:\n            /((?:^|[^'`#])[(\\[]lambda\\s+)(?:[^|()\\[\\]'\\s]+|\\|(?:[^\\\\|]|\\\\.)*\\|)/,\n          lookbehind: true\n        },\n        {\n          pattern: /((?:^|[^'`#])[(\\[]lambda\\s+[(\\[])[^()\\[\\]']+/,\n          lookbehind: true\n        }\n      ],\n      keyword: {\n        pattern:\n          /((?:^|[^'`#])[(\\[])(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|except|export|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\\*)?|let\\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true\n      },\n      builtin: {\n        // all functions of the base library of R7RS plus some of built-ins of R5Rs\n        pattern:\n          /((?:^|[^'`#])[(\\[])(?:abs|and|append|apply|assoc|ass[qv]|binary-port\\?|boolean=?\\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\\?|\\?|<\\?|<=\\?|=\\?|>\\?|>=\\?)|close-(?:input-port|output-port|port)|complex\\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\\??|eq\\?|equal\\?|eqv\\?|error|error-object(?:-irritants|-message|\\?)|eval|even\\?|exact(?:-integer-sqrt|-integer\\?|\\?)?|expt|features|file-error\\?|floor(?:-quotient|-remainder|\\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\\??|input-port(?:-open\\?|\\?)|integer(?:->char|\\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\\?|newline|not|null\\?|number(?:->string|\\?)|numerator|odd\\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\\?|\\?)|pair\\?|peek-char|peek-u8|port\\?|positive\\?|procedure\\?|quotient|raise|raise-continuable|rational\\?|rationalize|read-(?:bytevector|bytevector!|char|error\\?|line|string|u8)|real\\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\\?|<\\?|<=\\?|=\\?|>\\?|>=\\?)?|substring|symbol(?:->string|\\?|=\\?)|syntax-error|textual-port\\?|truncate(?:-quotient|-remainder|\\/)?|u8-ready\\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\\?)(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true\n      },\n      operator: {\n        pattern: /((?:^|[^'`#])[(\\[])(?:[-+*%/]|[<>]=?|=>?)(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true\n      },\n      number: {\n        // The number pattern from [the R7RS spec](https://small.r7rs.org/attachment/r7rs.pdf).\n        //\n        // <number>      := <num 2>|<num 8>|<num 10>|<num 16>\n        // <num R>       := <prefix R><complex R>\n        // <complex R>   := <real R>(?:@<real R>|<imaginary R>)?|<imaginary R>\n        // <imaginary R> := [+-](?:<ureal R>|(?:inf|nan)\\.0)?i\n        // <real R>      := [+-]?<ureal R>|[+-](?:inf|nan)\\.0\n        // <ureal R>     := <uint R>(?:\\/<uint R>)?\n        //                | <decimal R>\n        //\n        // <decimal 10>  := (?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?\n        // <uint R>      := <digit R>+\n        // <prefix R>    := <radix R>(?:#[ei])?|(?:#[ei])?<radix R>\n        // <radix 2>     := #b\n        // <radix 8>     := #o\n        // <radix 10>    := (?:#d)?\n        // <radix 16>    := #x\n        // <digit 2>     := [01]\n        // <digit 8>     := [0-7]\n        // <digit 10>    := \\d\n        // <digit 16>    := [0-9a-f]\n        //\n        // The problem with this grammar is that the resulting regex is way to complex, so we simplify by grouping all\n        // non-decimal bases together. This results in a decimal (dec) and combined binary, octal, and hexadecimal (box)\n        // pattern:\n        pattern: RegExp(\n          SortedBNF({\n            '<ureal dec>':\n              /\\d+(?:\\/\\d+)|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[esfdl][+-]?\\d+)?/.source,\n            '<real dec>': /[+-]?<ureal dec>|[+-](?:inf|nan)\\.0/.source,\n            '<imaginary dec>': /[+-](?:<ureal dec>|(?:inf|nan)\\.0)?i/.source,\n            '<complex dec>':\n              /<real dec>(?:@<real dec>|<imaginary dec>)?|<imaginary dec>/\n                .source,\n            '<num dec>': /(?:#d(?:#[ei])?|#[ei](?:#d)?)?<complex dec>/.source,\n            '<ureal box>': /[0-9a-f]+(?:\\/[0-9a-f]+)?/.source,\n            '<real box>': /[+-]?<ureal box>|[+-](?:inf|nan)\\.0/.source,\n            '<imaginary box>': /[+-](?:<ureal box>|(?:inf|nan)\\.0)?i/.source,\n            '<complex box>':\n              /<real box>(?:@<real box>|<imaginary box>)?|<imaginary box>/\n                .source,\n            '<num box>': /#[box](?:#[ei])?|(?:#[ei])?#[box]<complex box>/\n              .source,\n            '<number>': /(^|[()\\[\\]\\s])(?:<num dec>|<num box>)(?=[()\\[\\]\\s]|$)/\n              .source\n          }),\n          'i'\n        ),\n        lookbehind: true\n      },\n      boolean: {\n        pattern: /(^|[()\\[\\]\\s])#(?:[ft]|false|true)(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true\n      },\n      function: {\n        pattern:\n          /((?:^|[^'`#])[(\\[])(?:[^|()\\[\\]'\\s]+|\\|(?:[^\\\\|]|\\\\.)*\\|)(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true\n      },\n      identifier: {\n        pattern: /(^|[()\\[\\]\\s])\\|(?:[^\\\\|]|\\\\.)*\\|(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true,\n        greedy: true\n      },\n      punctuation: /[()\\[\\]']/\n    }\n    /**\n     * Given a topologically sorted BNF grammar, this will return the RegExp source of last rule of the grammar.\n     *\n     * @param {Record<string, string>} grammar\n     * @returns {string}\n     */\n    function SortedBNF(grammar) {\n      for (var key in grammar) {\n        grammar[key] = grammar[key].replace(/<[\\w\\s]+>/g, function (key) {\n          return '(?:' + grammar[key].trim() + ')'\n        })\n      } // return the last item\n      return grammar[key]\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = scss\nscss.displayName = 'scss'\nscss.aliases = []\nfunction scss(Prism) {\n  Prism.languages.scss = Prism.languages.extend('css', {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n      lookbehind: true\n    },\n    atrule: {\n      pattern: /@[\\w-](?:\\([^()]+\\)|[^()\\s]|\\s+(?!\\s))*?(?=\\s+[{;])/,\n      inside: {\n        rule: /@[\\w-]+/ // See rest below\n      }\n    },\n    // url, compassified\n    url: /(?:[-a-z]+-)?url(?=\\()/i,\n    // CSS selector regex is not appropriate for Sass\n    // since there can be lot more things (var, @ directive, nesting..)\n    // a selector must start at the end of a property or after a brace (end of other rules or nesting)\n    // it can contain some characters that aren't used for defining rules or end of selector, & (parent selector), or interpolated variable\n    // the end of a selector is found when there is no rules in it ( {} or {\\s}) or if there is a property (because an interpolated var\n    // can \"pass\" as a selector- e.g: proper#{$erty})\n    // this one was hard to do, so please be careful if you edit this one :)\n    selector: {\n      // Initial look-ahead is used to prevent matching of blank selectors\n      pattern:\n        /(?=\\S)[^@;{}()]?(?:[^@;{}()\\s]|\\s+(?!\\s)|#\\{\\$[-\\w]+\\})+(?=\\s*\\{(?:\\}|\\s|[^}][^:{}]*[:{][^}]))/,\n      inside: {\n        parent: {\n          pattern: /&/,\n          alias: 'important'\n        },\n        placeholder: /%[-\\w]+/,\n        variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n      }\n    },\n    property: {\n      pattern: /(?:[-\\w]|\\$[-\\w]|#\\{\\$[-\\w]+\\})+(?=\\s*:)/,\n      inside: {\n        variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n      }\n    }\n  })\n  Prism.languages.insertBefore('scss', 'atrule', {\n    keyword: [\n      /@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\\b/i,\n      {\n        pattern: /( )(?:from|through)(?= )/,\n        lookbehind: true\n      }\n    ]\n  })\n  Prism.languages.insertBefore('scss', 'important', {\n    // var and interpolated vars\n    variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n  })\n  Prism.languages.insertBefore('scss', 'function', {\n    'module-modifier': {\n      pattern: /\\b(?:as|hide|show|with)\\b/i,\n      alias: 'keyword'\n    },\n    placeholder: {\n      pattern: /%[-\\w]+/,\n      alias: 'selector'\n    },\n    statement: {\n      pattern: /\\B!(?:default|optional)\\b/i,\n      alias: 'keyword'\n    },\n    boolean: /\\b(?:false|true)\\b/,\n    null: {\n      pattern: /\\bnull\\b/,\n      alias: 'keyword'\n    },\n    operator: {\n      pattern: /(\\s)(?:[-+*\\/%]|[=!]=|<=?|>=?|and|not|or)(?=\\s)/,\n      lookbehind: true\n    }\n  })\n  Prism.languages.scss['atrule'].inside.rest = Prism.languages.scss\n}\n","'use strict'\nvar refractorBash = require('./bash.js')\nmodule.exports = shellSession\nshellSession.displayName = 'shellSession'\nshellSession.aliases = []\nfunction shellSession(Prism) {\n  Prism.register(refractorBash)\n  ;(function (Prism) {\n    // CAREFUL!\n    // The following patterns are concatenated, so the group referenced by a back reference is non-obvious!\n    var strings = [\n      // normal string\n      /\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/.source,\n      /'[^']*'/.source,\n      /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/.source, // here doc\n      // 2 capturing groups\n      /<<-?\\s*([\"']?)(\\w+)\\1\\s[\\s\\S]*?[\\r\\n]\\2/.source\n    ].join('|')\n    Prism.languages['shell-session'] = {\n      command: {\n        pattern: RegExp(\n          // user info\n          /^/.source +\n            '(?:' + // <user> \":\" ( <path> )?\n            (/[^\\s@:$#%*!/\\\\]+@[^\\r\\n@:$#%*!/\\\\]+(?::[^\\0-\\x1F$#%*?\"<>:;|]+)?/\n              .source +\n              '|' + // <path>\n              // Since the path pattern is quite general, we will require it to start with a special character to\n              // prevent false positives.\n              /[/~.][^\\0-\\x1F$#%*?\"<>@:;|]*/.source) +\n            ')?' + // shell symbol\n            /[$#%](?=\\s)/.source + // bash command\n            /(?:[^\\\\\\r\\n \\t'\"<$]|[ \\t](?:(?!#)|#.*$)|\\\\(?:[^\\r]|\\r\\n?)|\\$(?!')|<(?!<)|<<str>>)+/.source.replace(\n              /<<str>>/g,\n              function () {\n                return strings\n              }\n            ),\n          'm'\n        ),\n        greedy: true,\n        inside: {\n          info: {\n            // foo@bar:~/files$ exit\n            // foo@bar$ exit\n            // ~/files$ exit\n            pattern: /^[^#$%]+/,\n            alias: 'punctuation',\n            inside: {\n              user: /^[^\\s@:$#%*!/\\\\]+@[^\\r\\n@:$#%*!/\\\\]+/,\n              punctuation: /:/,\n              path: /[\\s\\S]+/\n            }\n          },\n          bash: {\n            pattern: /(^[$#%]\\s*)\\S[\\s\\S]*/,\n            lookbehind: true,\n            alias: 'language-bash',\n            inside: Prism.languages.bash\n          },\n          'shell-symbol': {\n            pattern: /^[$#%]/,\n            alias: 'important'\n          }\n        }\n      },\n      output: /.(?:.*(?:[\\r\\n]|.$))*/\n    }\n    Prism.languages['sh-session'] = Prism.languages['shellsession'] =\n      Prism.languages['shell-session']\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = smali\nsmali.displayName = 'smali'\nsmali.aliases = []\nfunction smali(Prism) {\n  // Test files for the parser itself:\n  // https://github.com/JesusFreke/smali/tree/master/smali/src/test/resources/LexerTest\n  Prism.languages.smali = {\n    comment: /#.*/,\n    string: {\n      pattern: /\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|'(?:[^\\r\\n\\\\']|\\\\(?:.|u[\\da-fA-F]{4}))'/,\n      greedy: true\n    },\n    'class-name': {\n      pattern:\n        /(^|[^L])L(?:(?:\\w+|`[^`\\r\\n]*`)\\/)*(?:[\\w$]+|`[^`\\r\\n]*`)(?=\\s*;)/,\n      lookbehind: true,\n      inside: {\n        'class-name': {\n          pattern: /(^L|\\/)(?:[\\w$]+|`[^`\\r\\n]*`)$/,\n          lookbehind: true\n        },\n        namespace: {\n          pattern: /^(L)(?:(?:\\w+|`[^`\\r\\n]*`)\\/)+/,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\//\n          }\n        },\n        builtin: /^L/\n      }\n    },\n    builtin: [\n      {\n        // Reference: https://github.com/JesusFreke/smali/wiki/TypesMethodsAndFields#types\n        pattern: /([();\\[])[BCDFIJSVZ]+/,\n        lookbehind: true\n      },\n      {\n        // e.g. .field mWifiOnUid:I\n        pattern: /([\\w$>]:)[BCDFIJSVZ]/,\n        lookbehind: true\n      }\n    ],\n    keyword: [\n      {\n        pattern: /(\\.end\\s+)[\\w-]+/,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|[^\\w.-])\\.(?!\\d)[\\w-]+/,\n        lookbehind: true\n      },\n      {\n        pattern:\n          /(^|[^\\w.-])(?:abstract|annotation|bridge|constructor|enum|final|interface|private|protected|public|runtime|static|synthetic|system|transient)(?![\\w.-])/,\n        lookbehind: true\n      }\n    ],\n    function: {\n      pattern: /(^|[^\\w.-])(?:\\w+|<[\\w$-]+>)(?=\\()/,\n      lookbehind: true\n    },\n    field: {\n      pattern: /[\\w$]+(?=:)/,\n      alias: 'variable'\n    },\n    register: {\n      pattern: /(^|[^\\w.-])[vp]\\d(?![\\w.-])/,\n      lookbehind: true,\n      alias: 'variable'\n    },\n    boolean: {\n      pattern: /(^|[^\\w.-])(?:false|true)(?![\\w.-])/,\n      lookbehind: true\n    },\n    number: {\n      pattern:\n        /(^|[^/\\w.-])-?(?:NAN|INFINITY|0x(?:[\\dA-F]+(?:\\.[\\dA-F]*)?|\\.[\\dA-F]+)(?:p[+-]?[\\dA-F]+)?|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)[dflst]?(?![\\w.-])/i,\n      lookbehind: true\n    },\n    label: {\n      pattern: /(:)\\w+/,\n      lookbehind: true,\n      alias: 'property'\n    },\n    operator: /->|\\.\\.|[\\[=]/,\n    punctuation: /[{}(),;:]/\n  }\n}\n","'use strict'\n\nmodule.exports = smalltalk\nsmalltalk.displayName = 'smalltalk'\nsmalltalk.aliases = []\nfunction smalltalk(Prism) {\n  Prism.languages.smalltalk = {\n    comment: {\n      pattern: /\"(?:\"\"|[^\"])*\"/,\n      greedy: true\n    },\n    char: {\n      pattern: /\\$./,\n      greedy: true\n    },\n    string: {\n      pattern: /'(?:''|[^'])*'/,\n      greedy: true\n    },\n    symbol: /#[\\da-z]+|#(?:-|([+\\/\\\\*~<>=@%|&?!])\\1?)|#(?=\\()/i,\n    'block-arguments': {\n      pattern: /(\\[\\s*):[^\\[|]*\\|/,\n      lookbehind: true,\n      inside: {\n        variable: /:[\\da-z]+/i,\n        punctuation: /\\|/\n      }\n    },\n    'temporary-variables': {\n      pattern: /\\|[^|]+\\|/,\n      inside: {\n        variable: /[\\da-z]+/i,\n        punctuation: /\\|/\n      }\n    },\n    keyword: /\\b(?:new|nil|self|super)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    number: [\n      /\\d+r-?[\\dA-Z]+(?:\\.[\\dA-Z]+)?(?:e-?\\d+)?/,\n      /\\b\\d+(?:\\.\\d+)?(?:e-?\\d+)?/\n    ],\n    operator: /[<=]=?|:=|~[~=]|\\/\\/?|\\\\\\\\|>[>=]?|[!^+\\-*&|,@]/,\n    punctuation: /[.;:?\\[\\](){}]/\n  }\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = smarty\nsmarty.displayName = 'smarty'\nsmarty.aliases = []\nfunction smarty(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    Prism.languages.smarty = {\n      comment: {\n        pattern: /^\\{\\*[\\s\\S]*?\\*\\}/,\n        greedy: true\n      },\n      'embedded-php': {\n        pattern: /^\\{php\\}[\\s\\S]*?\\{\\/php\\}/,\n        greedy: true,\n        inside: {\n          smarty: {\n            pattern: /^\\{php\\}|\\{\\/php\\}$/,\n            inside: null // see below\n          },\n          php: {\n            pattern: /[\\s\\S]+/,\n            alias: 'language-php',\n            inside: Prism.languages.php\n          }\n        }\n      },\n      string: [\n        {\n          pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n          greedy: true,\n          inside: {\n            interpolation: {\n              pattern: /\\{[^{}]*\\}|`[^`]*`/,\n              inside: {\n                'interpolation-punctuation': {\n                  pattern: /^[{`]|[`}]$/,\n                  alias: 'punctuation'\n                },\n                expression: {\n                  pattern: /[\\s\\S]+/,\n                  inside: null // see below\n                }\n              }\n            },\n            variable: /\\$\\w+/\n          }\n        },\n        {\n          pattern: /'(?:\\\\.|[^'\\\\\\r\\n])*'/,\n          greedy: true\n        }\n      ],\n      keyword: {\n        pattern: /(^\\{\\/?)[a-z_]\\w*\\b(?!\\()/i,\n        lookbehind: true,\n        greedy: true\n      },\n      delimiter: {\n        pattern: /^\\{\\/?|\\}$/,\n        greedy: true,\n        alias: 'punctuation'\n      },\n      number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n      variable: [\n        /\\$(?!\\d)\\w+/,\n        /#(?!\\d)\\w+#/,\n        {\n          pattern: /(\\.|->|\\w\\s*=)(?!\\d)\\w+\\b(?!\\()/,\n          lookbehind: true\n        },\n        {\n          pattern: /(\\[)(?!\\d)\\w+(?=\\])/,\n          lookbehind: true\n        }\n      ],\n      function: {\n        pattern: /(\\|\\s*)@?[a-z_]\\w*|\\b[a-z_]\\w*(?=\\()/i,\n        lookbehind: true\n      },\n      'attr-name': /\\b[a-z_]\\w*(?=\\s*=)/i,\n      boolean: /\\b(?:false|no|off|on|true|yes)\\b/,\n      punctuation: /[\\[\\](){}.,:`]|->/,\n      operator: [\n        /[+\\-*\\/%]|==?=?|[!<>]=?|&&|\\|\\|?/,\n        /\\bis\\s+(?:not\\s+)?(?:div|even|odd)(?:\\s+by)?\\b/,\n        /\\b(?:and|eq|gt?e|gt|lt?e|lt|mod|neq?|not|or)\\b/\n      ]\n    }\n    Prism.languages.smarty['embedded-php'].inside.smarty.inside =\n      Prism.languages.smarty\n    Prism.languages.smarty.string[0].inside.interpolation.inside.expression.inside =\n      Prism.languages.smarty\n    var string = /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/\n    var smartyPattern = RegExp(\n      // comments\n      /\\{\\*[\\s\\S]*?\\*\\}/.source +\n        '|' + // php tags\n        /\\{php\\}[\\s\\S]*?\\{\\/php\\}/.source +\n        '|' + // smarty blocks\n        /\\{(?:[^{}\"']|<str>|\\{(?:[^{}\"']|<str>|\\{(?:[^{}\"']|<str>)*\\})*\\})*\\}/.source.replace(\n          /<str>/g,\n          function () {\n            return string.source\n          }\n        ),\n      'g'\n    ) // Tokenize all inline Smarty expressions\n    Prism.hooks.add('before-tokenize', function (env) {\n      var smartyLiteralStart = '{literal}'\n      var smartyLiteralEnd = '{/literal}'\n      var smartyLiteralMode = false\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'smarty',\n        smartyPattern,\n        function (match) {\n          // Smarty tags inside {literal} block are ignored\n          if (match === smartyLiteralEnd) {\n            smartyLiteralMode = false\n          }\n          if (!smartyLiteralMode) {\n            if (match === smartyLiteralStart) {\n              smartyLiteralMode = true\n            }\n            return true\n          }\n          return false\n        }\n      )\n    }) // Re-insert the tokens after tokenizing\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'smarty')\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = sml\nsml.displayName = 'sml'\nsml.aliases = ['smlnj']\nfunction sml(Prism) {\n  // https://smlfamily.github.io/sml97-defn.pdf\n  // https://people.mpi-sws.org/~rossberg/sml.html\n  ;(function (Prism) {\n    var keywords =\n      /\\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\\b/i\n    Prism.languages.sml = {\n      // allow one level of nesting\n      comment:\n        /\\(\\*(?:[^*(]|\\*(?!\\))|\\((?!\\*)|\\(\\*(?:[^*(]|\\*(?!\\))|\\((?!\\*))*\\*\\))*\\*\\)/,\n      string: {\n        pattern: /#?\"(?:[^\"\\\\]|\\\\.)*\"/,\n        greedy: true\n      },\n      'class-name': [\n        {\n          // This is only an approximation since the real grammar is context-free\n          //\n          // Why the main loop so complex?\n          // The main loop is approximately the same as /(?:\\s*(?:[*,]|->)\\s*<TERMINAL>)*/ which is, obviously, a lot\n          // simpler. The difference is that if a comma is the last iteration of the loop, then the terminal must be\n          // followed by a long identifier.\n          pattern: RegExp(\n            /((?:^|[^:]):\\s*)<TERMINAL>(?:\\s*(?:(?:\\*|->)\\s*<TERMINAL>|,\\s*<TERMINAL>(?:(?=<NOT-LAST>)|(?!<NOT-LAST>)\\s+<LONG-ID>)))*/.source\n              .replace(/<NOT-LAST>/g, function () {\n                return /\\s*(?:[*,]|->)/.source\n              })\n              .replace(/<TERMINAL>/g, function () {\n                return /(?:'[\\w']*|<LONG-ID>|\\((?:[^()]|\\([^()]*\\))*\\)|\\{(?:[^{}]|\\{[^{}]*\\})*\\})(?:\\s+<LONG-ID>)*/\n                  .source\n              })\n              .replace(/<LONG-ID>/g, function () {\n                return /(?!<KEYWORD>)[a-z\\d_][\\w'.]*/.source\n              })\n              .replace(/<KEYWORD>/g, function () {\n                return keywords.source\n              }),\n            'i'\n          ),\n          lookbehind: true,\n          greedy: true,\n          inside: null // see below\n        },\n        {\n          pattern:\n            /((?:^|[^\\w'])(?:datatype|exception|functor|signature|structure|type)\\s+)[a-z_][\\w'.]*/i,\n          lookbehind: true\n        }\n      ],\n      function: {\n        pattern: /((?:^|[^\\w'])fun\\s+)[a-z_][\\w'.]*/i,\n        lookbehind: true\n      },\n      keyword: keywords,\n      variable: {\n        pattern: /(^|[^\\w'])'[\\w']*/,\n        lookbehind: true\n      },\n      number: /~?\\b(?:\\d+(?:\\.\\d+)?(?:e~?\\d+)?|0x[\\da-f]+)\\b/i,\n      word: {\n        pattern: /\\b0w(?:\\d+|x[\\da-f]+)\\b/i,\n        alias: 'constant'\n      },\n      boolean: /\\b(?:false|true)\\b/i,\n      operator: /\\.\\.\\.|:[>=:]|=>?|->|[<>]=?|[!+\\-*/^#|@~]/,\n      punctuation: /[(){}\\[\\].:,;]/\n    }\n    Prism.languages.sml['class-name'][0].inside = Prism.languages.sml\n    Prism.languages.smlnj = Prism.languages.sml\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = solidity\nsolidity.displayName = 'solidity'\nsolidity.aliases = ['sol']\nfunction solidity(Prism) {\n  Prism.languages.solidity = Prism.languages.extend('clike', {\n    'class-name': {\n      pattern:\n        /(\\b(?:contract|enum|interface|library|new|struct|using)\\s+)(?!\\d)[\\w$]+/,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\\b/,\n    operator: /=>|->|:=|=:|\\*\\*|\\+\\+|--|\\|\\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/\n  })\n  Prism.languages.insertBefore('solidity', 'keyword', {\n    builtin:\n      /\\b(?:address|bool|byte|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|string|bytes(?:[1-9]|[12]\\d|3[0-2])?)\\b/\n  })\n  Prism.languages.insertBefore('solidity', 'number', {\n    version: {\n      pattern: /([<>]=?|\\^)\\d+\\.\\d+\\.\\d+\\b/,\n      lookbehind: true,\n      alias: 'number'\n    }\n  })\n  Prism.languages.sol = Prism.languages.solidity\n}\n","'use strict'\n\nmodule.exports = solutionFile\nsolutionFile.displayName = 'solutionFile'\nsolutionFile.aliases = []\nfunction solutionFile(Prism) {\n  ;(function (Prism) {\n    var guid = {\n      // https://en.wikipedia.org/wiki/Universally_unique_identifier#Format\n      pattern: /\\{[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}\\}/i,\n      alias: 'constant',\n      inside: {\n        punctuation: /[{}]/\n      }\n    }\n    Prism.languages['solution-file'] = {\n      comment: {\n        pattern: /#.*/,\n        greedy: true\n      },\n      string: {\n        pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n        greedy: true,\n        inside: {\n          guid: guid\n        }\n      },\n      object: {\n        // Foo\n        //   Bar(\"abs\") = 9\n        //   EndBar\n        //   Prop = TRUE\n        // EndFoo\n        pattern:\n          /^([ \\t]*)(?:([A-Z]\\w*)\\b(?=.*(?:\\r\\n?|\\n)(?:\\1[ \\t].*(?:\\r\\n?|\\n))*\\1End\\2(?=[ \\t]*$))|End[A-Z]\\w*(?=[ \\t]*$))/m,\n        lookbehind: true,\n        greedy: true,\n        alias: 'keyword'\n      },\n      property: {\n        pattern: /^([ \\t]*)(?!\\s)[^\\r\\n\"#=()]*[^\\s\"#=()](?=\\s*=)/m,\n        lookbehind: true,\n        inside: {\n          guid: guid\n        }\n      },\n      guid: guid,\n      number: /\\b\\d+(?:\\.\\d+)*\\b/,\n      boolean: /\\b(?:FALSE|TRUE)\\b/,\n      operator: /=/,\n      punctuation: /[(),]/\n    }\n    Prism.languages['sln'] = Prism.languages['solution-file']\n  })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = soy\nsoy.displayName = 'soy'\nsoy.aliases = []\nfunction soy(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    var stringPattern = /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/\n    var numberPattern = /\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-F]+\\b/\n    Prism.languages.soy = {\n      comment: [\n        /\\/\\*[\\s\\S]*?\\*\\//,\n        {\n          pattern: /(\\s)\\/\\/.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      'command-arg': {\n        pattern:\n          /(\\{+\\/?\\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\\s+)\\.?[\\w.]+/,\n        lookbehind: true,\n        alias: 'string',\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      parameter: {\n        pattern: /(\\{+\\/?\\s*@?param\\??\\s+)\\.?[\\w.]+/,\n        lookbehind: true,\n        alias: 'variable'\n      },\n      keyword: [\n        {\n          pattern:\n            /(\\{+\\/?[^\\S\\r\\n]*)(?:\\\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\\??|rb|sp|switch|template|xid)/,\n          lookbehind: true\n        },\n        /\\b(?:any|as|attributes|bool|css|float|html|in|int|js|list|map|null|number|string|uri)\\b/\n      ],\n      delimiter: {\n        pattern: /^\\{+\\/?|\\/?\\}+$/,\n        alias: 'punctuation'\n      },\n      property: /\\w+(?==)/,\n      variable: {\n        pattern: /\\$[^\\W\\d]\\w*(?:\\??(?:\\.\\w+|\\[[^\\]]+\\]))*/,\n        inside: {\n          string: {\n            pattern: stringPattern,\n            greedy: true\n          },\n          number: numberPattern,\n          punctuation: /[\\[\\].?]/\n        }\n      },\n      string: {\n        pattern: stringPattern,\n        greedy: true\n      },\n      function: [\n        /\\w+(?=\\()/,\n        {\n          pattern: /(\\|[^\\S\\r\\n]*)\\w+/,\n          lookbehind: true\n        }\n      ],\n      boolean: /\\b(?:false|true)\\b/,\n      number: numberPattern,\n      operator: /\\?:?|<=?|>=?|==?|!=|[+*/%-]|\\b(?:and|not|or)\\b/,\n      punctuation: /[{}()\\[\\]|.,:]/\n    } // Tokenize all inline Soy expressions\n    Prism.hooks.add('before-tokenize', function (env) {\n      var soyPattern = /\\{\\{.+?\\}\\}|\\{.+?\\}|\\s\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//g\n      var soyLitteralStart = '{literal}'\n      var soyLitteralEnd = '{/literal}'\n      var soyLitteralMode = false\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'soy',\n        soyPattern,\n        function (match) {\n          // Soy tags inside {literal} block are ignored\n          if (match === soyLitteralEnd) {\n            soyLitteralMode = false\n          }\n          if (!soyLitteralMode) {\n            if (match === soyLitteralStart) {\n              soyLitteralMode = true\n            }\n            return true\n          }\n          return false\n        }\n      )\n    }) // Re-insert the tokens after tokenizing\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'soy')\n    })\n  })(Prism)\n}\n","'use strict'\nvar refractorTurtle = require('./turtle.js')\nmodule.exports = sparql\nsparql.displayName = 'sparql'\nsparql.aliases = ['rq']\nfunction sparql(Prism) {\n  Prism.register(refractorTurtle)\n  Prism.languages.sparql = Prism.languages.extend('turtle', {\n    boolean: /\\b(?:false|true)\\b/i,\n    variable: {\n      pattern: /[?$]\\w+/,\n      greedy: true\n    }\n  })\n  Prism.languages.insertBefore('sparql', 'punctuation', {\n    keyword: [\n      /\\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|ORDER|RAND|REDUCED|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\\b/i,\n      /\\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|REGEX|REPLACE|ROUND|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\\b(?=\\s*\\()/i,\n      /\\b(?:BASE|GRAPH|PREFIX)\\b/i\n    ]\n  })\n  Prism.languages.rq = Prism.languages.sparql\n}\n","'use strict'\n\nmodule.exports = splunkSpl\nsplunkSpl.displayName = 'splunkSpl'\nsplunkSpl.aliases = []\nfunction splunkSpl(Prism) {\n  Prism.languages['splunk-spl'] = {\n    comment: /`comment\\(\"(?:\\\\.|[^\\\\\"])*\"\\)`/,\n    string: {\n      pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n      greedy: true\n    },\n    // https://docs.splunk.com/Documentation/Splunk/7.3.0/SearchReference/ListOfSearchCommands\n    keyword:\n      /\\b(?:abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|anomalydetection|append|appendcols|appendcsv|appendlookup|appendpipe|arules|associate|audit|autoregress|bin|bucket|bucketdir|chart|cluster|cofilter|collect|concurrency|contingency|convert|correlate|datamodel|dbinspect|dedup|delete|delta|diff|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geom|geomfilter|geostats|head|highlight|history|iconify|input|inputcsv|inputlookup|iplocation|join|kmeans|kv|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|mcollect|metadata|metasearch|meventcollect|mstats|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|timewrap|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|union|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\\b/i,\n    'operator-word': {\n      pattern: /\\b(?:and|as|by|not|or|xor)\\b/i,\n      alias: 'operator'\n    },\n    function: /\\b\\w+(?=\\s*\\()/,\n    property: /\\b\\w+(?=\\s*=(?!=))/,\n    date: {\n      // MM/DD/YYYY(:HH:MM:SS)?\n      pattern: /\\b\\d{1,2}\\/\\d{1,2}\\/\\d{1,4}(?:(?::\\d{1,2}){3})?\\b/,\n      alias: 'number'\n    },\n    number: /\\b\\d+(?:\\.\\d+)?\\b/,\n    boolean: /\\b(?:f|false|t|true)\\b/i,\n    operator: /[<>=]=?|[-+*/%|]/,\n    punctuation: /[()[\\],]/\n  }\n}\n","'use strict'\n\nmodule.exports = sqf\nsqf.displayName = 'sqf'\nsqf.aliases = []\nfunction sqf(Prism) {\n  Prism.languages.sqf = Prism.languages.extend('clike', {\n    string: {\n      pattern: /\"(?:(?:\"\")?[^\"])*\"(?!\")|'(?:[^'])*'/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:breakOut|breakTo|call|case|catch|default|do|echo|else|execFSM|execVM|exitWith|for|forEach|forEachMember|forEachMemberAgent|forEachMemberTeam|from|goto|if|nil|preprocessFile|preprocessFileLineNumbers|private|scopeName|spawn|step|switch|then|throw|to|try|while|with)\\b/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    function:\n      /\\b(?:abs|accTime|acos|action|actionIDs|actionKeys|actionKeysImages|actionKeysNames|actionKeysNamesArray|actionName|actionParams|activateAddons|activatedAddons|activateKey|add3DENConnection|add3DENEventHandler|add3DENLayer|addAction|addBackpack|addBackpackCargo|addBackpackCargoGlobal|addBackpackGlobal|addCamShake|addCuratorAddons|addCuratorCameraArea|addCuratorEditableObjects|addCuratorEditingArea|addCuratorPoints|addEditorObject|addEventHandler|addForce|addForceGeneratorRTD|addGoggles|addGroupIcon|addHandgunItem|addHeadgear|addItem|addItemCargo|addItemCargoGlobal|addItemPool|addItemToBackpack|addItemToUniform|addItemToVest|addLiveStats|addMagazine|addMagazineAmmoCargo|addMagazineCargo|addMagazineCargoGlobal|addMagazineGlobal|addMagazinePool|addMagazines|addMagazineTurret|addMenu|addMenuItem|addMissionEventHandler|addMPEventHandler|addMusicEventHandler|addOwnedMine|addPlayerScores|addPrimaryWeaponItem|addPublicVariableEventHandler|addRating|addResources|addScore|addScoreSide|addSecondaryWeaponItem|addSwitchableUnit|addTeamMember|addToRemainsCollector|addTorque|addUniform|addVehicle|addVest|addWaypoint|addWeapon|addWeaponCargo|addWeaponCargoGlobal|addWeaponGlobal|addWeaponItem|addWeaponPool|addWeaponTurret|admin|agent|agents|AGLToASL|aimedAtTarget|aimPos|airDensityCurveRTD|airDensityRTD|airplaneThrottle|airportSide|AISFinishHeal|alive|all3DENEntities|allAirports|allControls|allCurators|allCutLayers|allDead|allDeadMen|allDisplays|allGroups|allMapMarkers|allMines|allMissionObjects|allow3DMode|allowCrewInImmobile|allowCuratorLogicIgnoreAreas|allowDamage|allowDammage|allowFileOperations|allowFleeing|allowGetIn|allowSprint|allPlayers|allSimpleObjects|allSites|allTurrets|allUnits|allUnitsUAV|allVariables|ammo|ammoOnPylon|animate|animateBay|animateDoor|animatePylon|animateSource|animationNames|animationPhase|animationSourcePhase|animationState|append|apply|armoryPoints|arrayIntersect|asin|ASLToAGL|ASLToATL|assert|assignAsCargo|assignAsCargoIndex|assignAsCommander|assignAsDriver|assignAsGunner|assignAsTurret|assignCurator|assignedCargo|assignedCommander|assignedDriver|assignedGunner|assignedItems|assignedTarget|assignedTeam|assignedVehicle|assignedVehicleRole|assignItem|assignTeam|assignToAirport|atan|atan2|atg|ATLToASL|attachedObject|attachedObjects|attachedTo|attachObject|attachTo|attackEnabled|backpack|backpackCargo|backpackContainer|backpackItems|backpackMagazines|backpackSpaceFor|behaviour|benchmark|binocular|blufor|boundingBox|boundingBoxReal|boundingCenter|briefingName|buildingExit|buildingPos|buldozer_EnableRoadDiag|buldozer_IsEnabledRoadDiag|buldozer_LoadNewRoads|buldozer_reloadOperMap|buttonAction|buttonSetAction|cadetMode|callExtension|camCommand|camCommit|camCommitPrepared|camCommitted|camConstuctionSetParams|camCreate|camDestroy|cameraEffect|cameraEffectEnableHUD|cameraInterest|cameraOn|cameraView|campaignConfigFile|camPreload|camPreloaded|camPrepareBank|camPrepareDir|camPrepareDive|camPrepareFocus|camPrepareFov|camPrepareFovRange|camPreparePos|camPrepareRelPos|camPrepareTarget|camSetBank|camSetDir|camSetDive|camSetFocus|camSetFov|camSetFovRange|camSetPos|camSetRelPos|camSetTarget|camTarget|camUseNVG|canAdd|canAddItemToBackpack|canAddItemToUniform|canAddItemToVest|cancelSimpleTaskDestination|canFire|canMove|canSlingLoad|canStand|canSuspend|canTriggerDynamicSimulation|canUnloadInCombat|canVehicleCargo|captive|captiveNum|cbChecked|cbSetChecked|ceil|channelEnabled|cheatsEnabled|checkAIFeature|checkVisibility|civilian|className|clear3DENAttribute|clear3DENInventory|clearAllItemsFromBackpack|clearBackpackCargo|clearBackpackCargoGlobal|clearForcesRTD|clearGroupIcons|clearItemCargo|clearItemCargoGlobal|clearItemPool|clearMagazineCargo|clearMagazineCargoGlobal|clearMagazinePool|clearOverlay|clearRadio|clearVehicleInit|clearWeaponCargo|clearWeaponCargoGlobal|clearWeaponPool|clientOwner|closeDialog|closeDisplay|closeOverlay|collapseObjectTree|collect3DENHistory|collectiveRTD|combatMode|commandArtilleryFire|commandChat|commander|commandFire|commandFollow|commandFSM|commandGetOut|commandingMenu|commandMove|commandRadio|commandStop|commandSuppressiveFire|commandTarget|commandWatch|comment|commitOverlay|compile|compileFinal|completedFSM|composeText|configClasses|configFile|configHierarchy|configName|configNull|configProperties|configSourceAddonList|configSourceMod|configSourceModList|confirmSensorTarget|connectTerminalToUAV|controlNull|controlsGroupCtrl|copyFromClipboard|copyToClipboard|copyWaypoints|cos|count|countEnemy|countFriendly|countSide|countType|countUnknown|create3DENComposition|create3DENEntity|createAgent|createCenter|createDialog|createDiaryLink|createDiaryRecord|createDiarySubject|createDisplay|createGearDialog|createGroup|createGuardedPoint|createLocation|createMarker|createMarkerLocal|createMenu|createMine|createMissionDisplay|createMPCampaignDisplay|createSimpleObject|createSimpleTask|createSite|createSoundSource|createTask|createTeam|createTrigger|createUnit|createVehicle|createVehicleCrew|createVehicleLocal|crew|ctAddHeader|ctAddRow|ctClear|ctCurSel|ctData|ctFindHeaderRows|ctFindRowHeader|ctHeaderControls|ctHeaderCount|ctRemoveHeaders|ctRemoveRows|ctrlActivate|ctrlAddEventHandler|ctrlAngle|ctrlAutoScrollDelay|ctrlAutoScrollRewind|ctrlAutoScrollSpeed|ctrlChecked|ctrlClassName|ctrlCommit|ctrlCommitted|ctrlCreate|ctrlDelete|ctrlEnable|ctrlEnabled|ctrlFade|ctrlHTMLLoaded|ctrlIDC|ctrlIDD|ctrlMapAnimAdd|ctrlMapAnimClear|ctrlMapAnimCommit|ctrlMapAnimDone|ctrlMapCursor|ctrlMapMouseOver|ctrlMapScale|ctrlMapScreenToWorld|ctrlMapWorldToScreen|ctrlModel|ctrlModelDirAndUp|ctrlModelScale|ctrlParent|ctrlParentControlsGroup|ctrlPosition|ctrlRemoveAllEventHandlers|ctrlRemoveEventHandler|ctrlScale|ctrlSetActiveColor|ctrlSetAngle|ctrlSetAutoScrollDelay|ctrlSetAutoScrollRewind|ctrlSetAutoScrollSpeed|ctrlSetBackgroundColor|ctrlSetChecked|ctrlSetDisabledColor|ctrlSetEventHandler|ctrlSetFade|ctrlSetFocus|ctrlSetFont|ctrlSetFontH1|ctrlSetFontH1B|ctrlSetFontH2|ctrlSetFontH2B|ctrlSetFontH3|ctrlSetFontH3B|ctrlSetFontH4|ctrlSetFontH4B|ctrlSetFontH5|ctrlSetFontH5B|ctrlSetFontH6|ctrlSetFontH6B|ctrlSetFontHeight|ctrlSetFontHeightH1|ctrlSetFontHeightH2|ctrlSetFontHeightH3|ctrlSetFontHeightH4|ctrlSetFontHeightH5|ctrlSetFontHeightH6|ctrlSetFontHeightSecondary|ctrlSetFontP|ctrlSetFontPB|ctrlSetFontSecondary|ctrlSetForegroundColor|ctrlSetModel|ctrlSetModelDirAndUp|ctrlSetModelScale|ctrlSetPixelPrecision|ctrlSetPosition|ctrlSetScale|ctrlSetStructuredText|ctrlSetText|ctrlSetTextColor|ctrlSetTextColorSecondary|ctrlSetTextSecondary|ctrlSetTooltip|ctrlSetTooltipColorBox|ctrlSetTooltipColorShade|ctrlSetTooltipColorText|ctrlShow|ctrlShown|ctrlText|ctrlTextHeight|ctrlTextSecondary|ctrlTextWidth|ctrlType|ctrlVisible|ctRowControls|ctRowCount|ctSetCurSel|ctSetData|ctSetHeaderTemplate|ctSetRowTemplate|ctSetValue|ctValue|curatorAddons|curatorCamera|curatorCameraArea|curatorCameraAreaCeiling|curatorCoef|curatorEditableObjects|curatorEditingArea|curatorEditingAreaType|curatorMouseOver|curatorPoints|curatorRegisteredObjects|curatorSelected|curatorWaypointCost|current3DENOperation|currentChannel|currentCommand|currentMagazine|currentMagazineDetail|currentMagazineDetailTurret|currentMagazineTurret|currentMuzzle|currentNamespace|currentTask|currentTasks|currentThrowable|currentVisionMode|currentWaypoint|currentWeapon|currentWeaponMode|currentWeaponTurret|currentZeroing|cursorObject|cursorTarget|customChat|customRadio|cutFadeOut|cutObj|cutRsc|cutText|damage|date|dateToNumber|daytime|deActivateKey|debriefingText|debugFSM|debugLog|deg|delete3DENEntities|deleteAt|deleteCenter|deleteCollection|deleteEditorObject|deleteGroup|deleteGroupWhenEmpty|deleteIdentity|deleteLocation|deleteMarker|deleteMarkerLocal|deleteRange|deleteResources|deleteSite|deleteStatus|deleteTeam|deleteVehicle|deleteVehicleCrew|deleteWaypoint|detach|detectedMines|diag_activeMissionFSMs|diag_activeScripts|diag_activeSQFScripts|diag_activeSQSScripts|diag_captureFrame|diag_captureFrameToFile|diag_captureSlowFrame|diag_codePerformance|diag_drawMode|diag_dynamicSimulationEnd|diag_enable|diag_enabled|diag_fps|diag_fpsMin|diag_frameNo|diag_lightNewLoad|diag_list|diag_log|diag_logSlowFrame|diag_mergeConfigFile|diag_recordTurretLimits|diag_setLightNew|diag_tickTime|diag_toggle|dialog|diarySubjectExists|didJIP|didJIPOwner|difficulty|difficultyEnabled|difficultyEnabledRTD|difficultyOption|direction|directSay|disableAI|disableCollisionWith|disableConversation|disableDebriefingStats|disableMapIndicators|disableNVGEquipment|disableRemoteSensors|disableSerialization|disableTIEquipment|disableUAVConnectability|disableUserInput|displayAddEventHandler|displayCtrl|displayNull|displayParent|displayRemoveAllEventHandlers|displayRemoveEventHandler|displaySetEventHandler|dissolveTeam|distance|distance2D|distanceSqr|distributionRegion|do3DENAction|doArtilleryFire|doFire|doFollow|doFSM|doGetOut|doMove|doorPhase|doStop|doSuppressiveFire|doTarget|doWatch|drawArrow|drawEllipse|drawIcon|drawIcon3D|drawLine|drawLine3D|drawLink|drawLocation|drawPolygon|drawRectangle|drawTriangle|driver|drop|dynamicSimulationDistance|dynamicSimulationDistanceCoef|dynamicSimulationEnabled|dynamicSimulationSystemEnabled|east|edit3DENMissionAttributes|editObject|editorSetEventHandler|effectiveCommander|emptyPositions|enableAI|enableAIFeature|enableAimPrecision|enableAttack|enableAudioFeature|enableAutoStartUpRTD|enableAutoTrimRTD|enableCamShake|enableCaustics|enableChannel|enableCollisionWith|enableCopilot|enableDebriefingStats|enableDiagLegend|enableDynamicSimulation|enableDynamicSimulationSystem|enableEndDialog|enableEngineArtillery|enableEnvironment|enableFatigue|enableGunLights|enableInfoPanelComponent|enableIRLasers|enableMimics|enablePersonTurret|enableRadio|enableReload|enableRopeAttach|enableSatNormalOnDetail|enableSaving|enableSentences|enableSimulation|enableSimulationGlobal|enableStamina|enableStressDamage|enableTeamSwitch|enableTraffic|enableUAVConnectability|enableUAVWaypoints|enableVehicleCargo|enableVehicleSensor|enableWeaponDisassembly|endl|endLoadingScreen|endMission|engineOn|enginesIsOnRTD|enginesPowerRTD|enginesRpmRTD|enginesTorqueRTD|entities|environmentEnabled|estimatedEndServerTime|estimatedTimeLeft|evalObjectArgument|everyBackpack|everyContainer|exec|execEditorScript|exp|expectedDestination|exportJIPMessages|eyeDirection|eyePos|face|faction|fadeMusic|fadeRadio|fadeSound|fadeSpeech|failMission|fillWeaponsFromPool|find|findCover|findDisplay|findEditorObject|findEmptyPosition|findEmptyPositionReady|findIf|findNearestEnemy|finishMissionInit|finite|fire|fireAtTarget|firstBackpack|flag|flagAnimationPhase|flagOwner|flagSide|flagTexture|fleeing|floor|flyInHeight|flyInHeightASL|fog|fogForecast|fogParams|forceAddUniform|forceAtPositionRTD|forcedMap|forceEnd|forceFlagTexture|forceFollowRoad|forceGeneratorRTD|forceMap|forceRespawn|forceSpeed|forceWalk|forceWeaponFire|forceWeatherChange|forgetTarget|format|formation|formationDirection|formationLeader|formationMembers|formationPosition|formationTask|formatText|formLeader|freeLook|fromEditor|fuel|fullCrew|gearIDCAmmoCount|gearSlotAmmoCount|gearSlotData|get3DENActionState|get3DENAttribute|get3DENCamera|get3DENConnections|get3DENEntity|get3DENEntityID|get3DENGrid|get3DENIconsVisible|get3DENLayerEntities|get3DENLinesVisible|get3DENMissionAttribute|get3DENMouseOver|get3DENSelected|getAimingCoef|getAllEnvSoundControllers|getAllHitPointsDamage|getAllOwnedMines|getAllSoundControllers|getAmmoCargo|getAnimAimPrecision|getAnimSpeedCoef|getArray|getArtilleryAmmo|getArtilleryComputerSettings|getArtilleryETA|getAssignedCuratorLogic|getAssignedCuratorUnit|getBackpackCargo|getBleedingRemaining|getBurningValue|getCameraViewDirection|getCargoIndex|getCenterOfMass|getClientState|getClientStateNumber|getCompatiblePylonMagazines|getConnectedUAV|getContainerMaxLoad|getCursorObjectParams|getCustomAimCoef|getDammage|getDescription|getDir|getDirVisual|getDLCAssetsUsage|getDLCAssetsUsageByName|getDLCs|getDLCUsageTime|getEditorCamera|getEditorMode|getEditorObjectScope|getElevationOffset|getEngineTargetRpmRTD|getEnvSoundController|getFatigue|getFieldManualStartPage|getForcedFlagTexture|getFriend|getFSMVariable|getFuelCargo|getGroupIcon|getGroupIconParams|getGroupIcons|getHideFrom|getHit|getHitIndex|getHitPointDamage|getItemCargo|getMagazineCargo|getMarkerColor|getMarkerPos|getMarkerSize|getMarkerType|getMass|getMissionConfig|getMissionConfigValue|getMissionDLCs|getMissionLayerEntities|getMissionLayers|getModelInfo|getMousePosition|getMusicPlayedTime|getNumber|getObjectArgument|getObjectChildren|getObjectDLC|getObjectMaterials|getObjectProxy|getObjectTextures|getObjectType|getObjectViewDistance|getOxygenRemaining|getPersonUsedDLCs|getPilotCameraDirection|getPilotCameraPosition|getPilotCameraRotation|getPilotCameraTarget|getPlateNumber|getPlayerChannel|getPlayerScores|getPlayerUID|getPlayerUIDOld|getPos|getPosASL|getPosASLVisual|getPosASLW|getPosATL|getPosATLVisual|getPosVisual|getPosWorld|getPylonMagazines|getRelDir|getRelPos|getRemoteSensorsDisabled|getRepairCargo|getResolution|getRotorBrakeRTD|getShadowDistance|getShotParents|getSlingLoad|getSoundController|getSoundControllerResult|getSpeed|getStamina|getStatValue|getSuppression|getTerrainGrid|getTerrainHeightASL|getText|getTotalDLCUsageTime|getTrimOffsetRTD|getUnitLoadout|getUnitTrait|getUserMFDText|getUserMFDValue|getVariable|getVehicleCargo|getWeaponCargo|getWeaponSway|getWingsOrientationRTD|getWingsPositionRTD|getWPPos|glanceAt|globalChat|globalRadio|goggles|group|groupChat|groupFromNetId|groupIconSelectable|groupIconsVisible|groupId|groupOwner|groupRadio|groupSelectedUnits|groupSelectUnit|grpNull|gunner|gusts|halt|handgunItems|handgunMagazine|handgunWeapon|handsHit|hasInterface|hasPilotCamera|hasWeapon|hcAllGroups|hcGroupParams|hcLeader|hcRemoveAllGroups|hcRemoveGroup|hcSelected|hcSelectGroup|hcSetGroup|hcShowBar|hcShownBar|headgear|hideBody|hideObject|hideObjectGlobal|hideSelection|hint|hintC|hintCadet|hintSilent|hmd|hostMission|htmlLoad|HUDMovementLevels|humidity|image|importAllGroups|importance|in|inArea|inAreaArray|incapacitatedState|independent|inflame|inflamed|infoPanel|infoPanelComponentEnabled|infoPanelComponents|infoPanels|inGameUISetEventHandler|inheritsFrom|initAmbientLife|inPolygon|inputAction|inRangeOfArtillery|insertEditorObject|intersect|is3DEN|is3DENMultiplayer|isAbleToBreathe|isAgent|isAimPrecisionEnabled|isArray|isAutoHoverOn|isAutonomous|isAutoStartUpEnabledRTD|isAutotest|isAutoTrimOnRTD|isBleeding|isBurning|isClass|isCollisionLightOn|isCopilotEnabled|isDamageAllowed|isDedicated|isDLCAvailable|isEngineOn|isEqualTo|isEqualType|isEqualTypeAll|isEqualTypeAny|isEqualTypeArray|isEqualTypeParams|isFilePatchingEnabled|isFlashlightOn|isFlatEmpty|isForcedWalk|isFormationLeader|isGroupDeletedWhenEmpty|isHidden|isInRemainsCollector|isInstructorFigureEnabled|isIRLaserOn|isKeyActive|isKindOf|isLaserOn|isLightOn|isLocalized|isManualFire|isMarkedForCollection|isMultiplayer|isMultiplayerSolo|isNil|isNull|isNumber|isObjectHidden|isObjectRTD|isOnRoad|isPipEnabled|isPlayer|isRealTime|isRemoteExecuted|isRemoteExecutedJIP|isServer|isShowing3DIcons|isSimpleObject|isSprintAllowed|isStaminaEnabled|isSteamMission|isStreamFriendlyUIEnabled|isStressDamageEnabled|isText|isTouchingGround|isTurnedOut|isTutHintsEnabled|isUAVConnectable|isUAVConnected|isUIContext|isUniformAllowed|isVehicleCargo|isVehicleRadarOn|isVehicleSensorEnabled|isWalking|isWeaponDeployed|isWeaponRested|itemCargo|items|itemsWithMagazines|join|joinAs|joinAsSilent|joinSilent|joinString|kbAddDatabase|kbAddDatabaseTargets|kbAddTopic|kbHasTopic|kbReact|kbRemoveTopic|kbTell|kbWasSaid|keyImage|keyName|knowsAbout|land|landAt|landResult|language|laserTarget|lbAdd|lbClear|lbColor|lbColorRight|lbCurSel|lbData|lbDelete|lbIsSelected|lbPicture|lbPictureRight|lbSelection|lbSetColor|lbSetColorRight|lbSetCurSel|lbSetData|lbSetPicture|lbSetPictureColor|lbSetPictureColorDisabled|lbSetPictureColorSelected|lbSetPictureRight|lbSetPictureRightColor|lbSetPictureRightColorDisabled|lbSetPictureRightColorSelected|lbSetSelectColor|lbSetSelectColorRight|lbSetSelected|lbSetText|lbSetTextRight|lbSetTooltip|lbSetValue|lbSize|lbSort|lbSortByValue|lbText|lbTextRight|lbValue|leader|leaderboardDeInit|leaderboardGetRows|leaderboardInit|leaderboardRequestRowsFriends|leaderboardRequestRowsGlobal|leaderboardRequestRowsGlobalAroundUser|leaderboardsRequestUploadScore|leaderboardsRequestUploadScoreKeepBest|leaderboardState|leaveVehicle|libraryCredits|libraryDisclaimers|lifeState|lightAttachObject|lightDetachObject|lightIsOn|lightnings|limitSpeed|linearConversion|lineBreak|lineIntersects|lineIntersectsObjs|lineIntersectsSurfaces|lineIntersectsWith|linkItem|list|listObjects|listRemoteTargets|listVehicleSensors|ln|lnbAddArray|lnbAddColumn|lnbAddRow|lnbClear|lnbColor|lnbColorRight|lnbCurSelRow|lnbData|lnbDeleteColumn|lnbDeleteRow|lnbGetColumnsPosition|lnbPicture|lnbPictureRight|lnbSetColor|lnbSetColorRight|lnbSetColumnsPos|lnbSetCurSelRow|lnbSetData|lnbSetPicture|lnbSetPictureColor|lnbSetPictureColorRight|lnbSetPictureColorSelected|lnbSetPictureColorSelectedRight|lnbSetPictureRight|lnbSetText|lnbSetTextRight|lnbSetValue|lnbSize|lnbSort|lnbSortByValue|lnbText|lnbTextRight|lnbValue|load|loadAbs|loadBackpack|loadFile|loadGame|loadIdentity|loadMagazine|loadOverlay|loadStatus|loadUniform|loadVest|local|localize|locationNull|locationPosition|lock|lockCameraTo|lockCargo|lockDriver|locked|lockedCargo|lockedDriver|lockedTurret|lockIdentity|lockTurret|lockWP|log|logEntities|logNetwork|logNetworkTerminate|lookAt|lookAtPos|magazineCargo|magazines|magazinesAllTurrets|magazinesAmmo|magazinesAmmoCargo|magazinesAmmoFull|magazinesDetail|magazinesDetailBackpack|magazinesDetailUniform|magazinesDetailVest|magazinesTurret|magazineTurretAmmo|mapAnimAdd|mapAnimClear|mapAnimCommit|mapAnimDone|mapCenterOnCamera|mapGridPosition|markAsFinishedOnSteam|markerAlpha|markerBrush|markerColor|markerDir|markerPos|markerShape|markerSize|markerText|markerType|max|members|menuAction|menuAdd|menuChecked|menuClear|menuCollapse|menuData|menuDelete|menuEnable|menuEnabled|menuExpand|menuHover|menuPicture|menuSetAction|menuSetCheck|menuSetData|menuSetPicture|menuSetValue|menuShortcut|menuShortcutText|menuSize|menuSort|menuText|menuURL|menuValue|min|mineActive|mineDetectedBy|missionConfigFile|missionDifficulty|missionName|missionNamespace|missionStart|missionVersion|modelToWorld|modelToWorldVisual|modelToWorldVisualWorld|modelToWorldWorld|modParams|moonIntensity|moonPhase|morale|move|move3DENCamera|moveInAny|moveInCargo|moveInCommander|moveInDriver|moveInGunner|moveInTurret|moveObjectToEnd|moveOut|moveTime|moveTo|moveToCompleted|moveToFailed|musicVolume|name|nameSound|nearEntities|nearestBuilding|nearestLocation|nearestLocations|nearestLocationWithDubbing|nearestObject|nearestObjects|nearestTerrainObjects|nearObjects|nearObjectsReady|nearRoads|nearSupplies|nearTargets|needReload|netId|netObjNull|newOverlay|nextMenuItemIndex|nextWeatherChange|nMenuItems|numberOfEnginesRTD|numberToDate|objectCurators|objectFromNetId|objectParent|objNull|objStatus|onBriefingGear|onBriefingGroup|onBriefingNotes|onBriefingPlan|onBriefingTeamSwitch|onCommandModeChanged|onDoubleClick|onEachFrame|onGroupIconClick|onGroupIconOverEnter|onGroupIconOverLeave|onHCGroupSelectionChanged|onMapSingleClick|onPlayerConnected|onPlayerDisconnected|onPreloadFinished|onPreloadStarted|onShowNewObject|onTeamSwitch|openCuratorInterface|openDLCPage|openDSInterface|openMap|openSteamApp|openYoutubeVideo|opfor|orderGetIn|overcast|overcastForecast|owner|param|params|parseNumber|parseSimpleArray|parseText|parsingNamespace|particlesQuality|pi|pickWeaponPool|pitch|pixelGrid|pixelGridBase|pixelGridNoUIScale|pixelH|pixelW|playableSlotsNumber|playableUnits|playAction|playActionNow|player|playerRespawnTime|playerSide|playersNumber|playGesture|playMission|playMove|playMoveNow|playMusic|playScriptedMission|playSound|playSound3D|position|positionCameraToWorld|posScreenToWorld|posWorldToScreen|ppEffectAdjust|ppEffectCommit|ppEffectCommitted|ppEffectCreate|ppEffectDestroy|ppEffectEnable|ppEffectEnabled|ppEffectForceInNVG|precision|preloadCamera|preloadObject|preloadSound|preloadTitleObj|preloadTitleRsc|primaryWeapon|primaryWeaponItems|primaryWeaponMagazine|priority|processDiaryLink|processInitCommands|productVersion|profileName|profileNamespace|profileNameSteam|progressLoadingScreen|progressPosition|progressSetPosition|publicVariable|publicVariableClient|publicVariableServer|pushBack|pushBackUnique|putWeaponPool|queryItemsPool|queryMagazinePool|queryWeaponPool|rad|radioChannelAdd|radioChannelCreate|radioChannelRemove|radioChannelSetCallSign|radioChannelSetLabel|radioVolume|rain|rainbow|random|rank|rankId|rating|rectangular|registeredTasks|registerTask|reload|reloadEnabled|remoteControl|remoteExec|remoteExecCall|remoteExecutedOwner|remove3DENConnection|remove3DENEventHandler|remove3DENLayer|removeAction|removeAll3DENEventHandlers|removeAllActions|removeAllAssignedItems|removeAllContainers|removeAllCuratorAddons|removeAllCuratorCameraAreas|removeAllCuratorEditingAreas|removeAllEventHandlers|removeAllHandgunItems|removeAllItems|removeAllItemsWithMagazines|removeAllMissionEventHandlers|removeAllMPEventHandlers|removeAllMusicEventHandlers|removeAllOwnedMines|removeAllPrimaryWeaponItems|removeAllWeapons|removeBackpack|removeBackpackGlobal|removeCuratorAddons|removeCuratorCameraArea|removeCuratorEditableObjects|removeCuratorEditingArea|removeDrawIcon|removeDrawLinks|removeEventHandler|removeFromRemainsCollector|removeGoggles|removeGroupIcon|removeHandgunItem|removeHeadgear|removeItem|removeItemFromBackpack|removeItemFromUniform|removeItemFromVest|removeItems|removeMagazine|removeMagazineGlobal|removeMagazines|removeMagazinesTurret|removeMagazineTurret|removeMenuItem|removeMissionEventHandler|removeMPEventHandler|removeMusicEventHandler|removeOwnedMine|removePrimaryWeaponItem|removeSecondaryWeaponItem|removeSimpleTask|removeSwitchableUnit|removeTeamMember|removeUniform|removeVest|removeWeapon|removeWeaponAttachmentCargo|removeWeaponCargo|removeWeaponGlobal|removeWeaponTurret|reportRemoteTarget|requiredVersion|resetCamShake|resetSubgroupDirection|resistance|resize|resources|respawnVehicle|restartEditorCamera|reveal|revealMine|reverse|reversedMouseY|roadAt|roadsConnectedTo|roleDescription|ropeAttachedObjects|ropeAttachedTo|ropeAttachEnabled|ropeAttachTo|ropeCreate|ropeCut|ropeDestroy|ropeDetach|ropeEndPosition|ropeLength|ropes|ropeUnwind|ropeUnwound|rotorsForcesRTD|rotorsRpmRTD|round|runInitScript|safeZoneH|safeZoneW|safeZoneWAbs|safeZoneX|safeZoneXAbs|safeZoneY|save3DENInventory|saveGame|saveIdentity|saveJoysticks|saveOverlay|saveProfileNamespace|saveStatus|saveVar|savingEnabled|say|say2D|say3D|score|scoreSide|screenshot|screenToWorld|scriptDone|scriptName|scriptNull|scudState|secondaryWeapon|secondaryWeaponItems|secondaryWeaponMagazine|select|selectBestPlaces|selectDiarySubject|selectedEditorObjects|selectEditorObject|selectionNames|selectionPosition|selectLeader|selectMax|selectMin|selectNoPlayer|selectPlayer|selectRandom|selectRandomWeighted|selectWeapon|selectWeaponTurret|sendAUMessage|sendSimpleCommand|sendTask|sendTaskResult|sendUDPMessage|serverCommand|serverCommandAvailable|serverCommandExecutable|serverName|serverTime|set|set3DENAttribute|set3DENAttributes|set3DENGrid|set3DENIconsVisible|set3DENLayer|set3DENLinesVisible|set3DENLogicType|set3DENMissionAttribute|set3DENMissionAttributes|set3DENModelsVisible|set3DENObjectType|set3DENSelected|setAccTime|setActualCollectiveRTD|setAirplaneThrottle|setAirportSide|setAmmo|setAmmoCargo|setAmmoOnPylon|setAnimSpeedCoef|setAperture|setApertureNew|setArmoryPoints|setAttributes|setAutonomous|setBehaviour|setBleedingRemaining|setBrakesRTD|setCameraInterest|setCamShakeDefParams|setCamShakeParams|setCamUseTI|setCaptive|setCenterOfMass|setCollisionLight|setCombatMode|setCompassOscillation|setConvoySeparation|setCuratorCameraAreaCeiling|setCuratorCoef|setCuratorEditingAreaType|setCuratorWaypointCost|setCurrentChannel|setCurrentTask|setCurrentWaypoint|setCustomAimCoef|setCustomWeightRTD|setDamage|setDammage|setDate|setDebriefingText|setDefaultCamera|setDestination|setDetailMapBlendPars|setDir|setDirection|setDrawIcon|setDriveOnPath|setDropInterval|setDynamicSimulationDistance|setDynamicSimulationDistanceCoef|setEditorMode|setEditorObjectScope|setEffectCondition|setEngineRpmRTD|setFace|setFaceAnimation|setFatigue|setFeatureType|setFlagAnimationPhase|setFlagOwner|setFlagSide|setFlagTexture|setFog|setForceGeneratorRTD|setFormation|setFormationTask|setFormDir|setFriend|setFromEditor|setFSMVariable|setFuel|setFuelCargo|setGroupIcon|setGroupIconParams|setGroupIconsSelectable|setGroupIconsVisible|setGroupId|setGroupIdGlobal|setGroupOwner|setGusts|setHideBehind|setHit|setHitIndex|setHitPointDamage|setHorizonParallaxCoef|setHUDMovementLevels|setIdentity|setImportance|setInfoPanel|setLeader|setLightAmbient|setLightAttenuation|setLightBrightness|setLightColor|setLightDayLight|setLightFlareMaxDistance|setLightFlareSize|setLightIntensity|setLightnings|setLightUseFlare|setLocalWindParams|setMagazineTurretAmmo|setMarkerAlpha|setMarkerAlphaLocal|setMarkerBrush|setMarkerBrushLocal|setMarkerColor|setMarkerColorLocal|setMarkerDir|setMarkerDirLocal|setMarkerPos|setMarkerPosLocal|setMarkerShape|setMarkerShapeLocal|setMarkerSize|setMarkerSizeLocal|setMarkerText|setMarkerTextLocal|setMarkerType|setMarkerTypeLocal|setMass|setMimic|setMousePosition|setMusicEffect|setMusicEventHandler|setName|setNameSound|setObjectArguments|setObjectMaterial|setObjectMaterialGlobal|setObjectProxy|setObjectTexture|setObjectTextureGlobal|setObjectViewDistance|setOvercast|setOwner|setOxygenRemaining|setParticleCircle|setParticleClass|setParticleFire|setParticleParams|setParticleRandom|setPilotCameraDirection|setPilotCameraRotation|setPilotCameraTarget|setPilotLight|setPiPEffect|setPitch|setPlateNumber|setPlayable|setPlayerRespawnTime|setPos|setPosASL|setPosASL2|setPosASLW|setPosATL|setPosition|setPosWorld|setPylonLoadOut|setPylonsPriority|setRadioMsg|setRain|setRainbow|setRandomLip|setRank|setRectangular|setRepairCargo|setRotorBrakeRTD|setShadowDistance|setShotParents|setSide|setSimpleTaskAlwaysVisible|setSimpleTaskCustomData|setSimpleTaskDescription|setSimpleTaskDestination|setSimpleTaskTarget|setSimpleTaskType|setSimulWeatherLayers|setSize|setSkill|setSlingLoad|setSoundEffect|setSpeaker|setSpeech|setSpeedMode|setStamina|setStaminaScheme|setStatValue|setSuppression|setSystemOfUnits|setTargetAge|setTaskMarkerOffset|setTaskResult|setTaskState|setTerrainGrid|setText|setTimeMultiplier|setTitleEffect|setToneMapping|setToneMappingParams|setTrafficDensity|setTrafficDistance|setTrafficGap|setTrafficSpeed|setTriggerActivation|setTriggerArea|setTriggerStatements|setTriggerText|setTriggerTimeout|setTriggerType|setType|setUnconscious|setUnitAbility|setUnitLoadout|setUnitPos|setUnitPosWeak|setUnitRank|setUnitRecoilCoefficient|setUnitTrait|setUnloadInCombat|setUserActionText|setUserMFDText|setUserMFDValue|setVariable|setVectorDir|setVectorDirAndUp|setVectorUp|setVehicleAmmo|setVehicleAmmoDef|setVehicleArmor|setVehicleCargo|setVehicleId|setVehicleInit|setVehicleLock|setVehiclePosition|setVehicleRadar|setVehicleReceiveRemoteTargets|setVehicleReportOwnPosition|setVehicleReportRemoteTargets|setVehicleTIPars|setVehicleVarName|setVelocity|setVelocityModelSpace|setVelocityTransformation|setViewDistance|setVisibleIfTreeCollapsed|setWantedRpmRTD|setWaves|setWaypointBehaviour|setWaypointCombatMode|setWaypointCompletionRadius|setWaypointDescription|setWaypointForceBehaviour|setWaypointFormation|setWaypointHousePosition|setWaypointLoiterRadius|setWaypointLoiterType|setWaypointName|setWaypointPosition|setWaypointScript|setWaypointSpeed|setWaypointStatements|setWaypointTimeout|setWaypointType|setWaypointVisible|setWeaponReloadingTime|setWind|setWindDir|setWindForce|setWindStr|setWingForceScaleRTD|setWPPos|show3DIcons|showChat|showCinemaBorder|showCommandingMenu|showCompass|showCuratorCompass|showGPS|showHUD|showLegend|showMap|shownArtilleryComputer|shownChat|shownCompass|shownCuratorCompass|showNewEditorObject|shownGPS|shownHUD|shownMap|shownPad|shownRadio|shownScoretable|shownUAVFeed|shownWarrant|shownWatch|showPad|showRadio|showScoretable|showSubtitles|showUAVFeed|showWarrant|showWatch|showWaypoint|showWaypoints|side|sideAmbientLife|sideChat|sideEmpty|sideEnemy|sideFriendly|sideLogic|sideRadio|sideUnknown|simpleTasks|simulationEnabled|simulCloudDensity|simulCloudOcclusion|simulInClouds|simulWeatherSync|sin|size|sizeOf|skill|skillFinal|skipTime|sleep|sliderPosition|sliderRange|sliderSetPosition|sliderSetRange|sliderSetSpeed|sliderSpeed|slingLoadAssistantShown|soldierMagazines|someAmmo|sort|soundVolume|speaker|speed|speedMode|splitString|sqrt|squadParams|stance|startLoadingScreen|stop|stopEngineRTD|stopped|str|sunOrMoon|supportInfo|suppressFor|surfaceIsWater|surfaceNormal|surfaceType|swimInDepth|switchableUnits|switchAction|switchCamera|switchGesture|switchLight|switchMove|synchronizedObjects|synchronizedTriggers|synchronizedWaypoints|synchronizeObjectsAdd|synchronizeObjectsRemove|synchronizeTrigger|synchronizeWaypoint|systemChat|systemOfUnits|tan|targetKnowledge|targets|targetsAggregate|targetsQuery|taskAlwaysVisible|taskChildren|taskCompleted|taskCustomData|taskDescription|taskDestination|taskHint|taskMarkerOffset|taskNull|taskParent|taskResult|taskState|taskType|teamMember|teamMemberNull|teamName|teams|teamSwitch|teamSwitchEnabled|teamType|terminate|terrainIntersect|terrainIntersectASL|terrainIntersectAtASL|text|textLog|textLogFormat|tg|time|timeMultiplier|titleCut|titleFadeOut|titleObj|titleRsc|titleText|toArray|toFixed|toLower|toString|toUpper|triggerActivated|triggerActivation|triggerArea|triggerAttachedVehicle|triggerAttachObject|triggerAttachVehicle|triggerDynamicSimulation|triggerStatements|triggerText|triggerTimeout|triggerTimeoutCurrent|triggerType|turretLocal|turretOwner|turretUnit|tvAdd|tvClear|tvCollapse|tvCollapseAll|tvCount|tvCurSel|tvData|tvDelete|tvExpand|tvExpandAll|tvPicture|tvPictureRight|tvSetColor|tvSetCurSel|tvSetData|tvSetPicture|tvSetPictureColor|tvSetPictureColorDisabled|tvSetPictureColorSelected|tvSetPictureRight|tvSetPictureRightColor|tvSetPictureRightColorDisabled|tvSetPictureRightColorSelected|tvSetSelectColor|tvSetText|tvSetTooltip|tvSetValue|tvSort|tvSortByValue|tvText|tvTooltip|tvValue|type|typeName|typeOf|UAVControl|uiNamespace|uiSleep|unassignCurator|unassignItem|unassignTeam|unassignVehicle|underwater|uniform|uniformContainer|uniformItems|uniformMagazines|unitAddons|unitAimPosition|unitAimPositionVisual|unitBackpack|unitIsUAV|unitPos|unitReady|unitRecoilCoefficient|units|unitsBelowHeight|unlinkItem|unlockAchievement|unregisterTask|updateDrawIcon|updateMenuItem|updateObjectTree|useAIOperMapObstructionTest|useAISteeringComponent|useAudioTimeForMoves|userInputDisabled|vectorAdd|vectorCos|vectorCrossProduct|vectorDiff|vectorDir|vectorDirVisual|vectorDistance|vectorDistanceSqr|vectorDotProduct|vectorFromTo|vectorMagnitude|vectorMagnitudeSqr|vectorModelToWorld|vectorModelToWorldVisual|vectorMultiply|vectorNormalized|vectorUp|vectorUpVisual|vectorWorldToModel|vectorWorldToModelVisual|vehicle|vehicleCargoEnabled|vehicleChat|vehicleRadio|vehicleReceiveRemoteTargets|vehicleReportOwnPosition|vehicleReportRemoteTargets|vehicles|vehicleVarName|velocity|velocityModelSpace|verifySignature|vest|vestContainer|vestItems|vestMagazines|viewDistance|visibleCompass|visibleGPS|visibleMap|visiblePosition|visiblePositionASL|visibleScoretable|visibleWatch|waitUntil|waves|waypointAttachedObject|waypointAttachedVehicle|waypointAttachObject|waypointAttachVehicle|waypointBehaviour|waypointCombatMode|waypointCompletionRadius|waypointDescription|waypointForceBehaviour|waypointFormation|waypointHousePosition|waypointLoiterRadius|waypointLoiterType|waypointName|waypointPosition|waypoints|waypointScript|waypointsEnabledUAV|waypointShow|waypointSpeed|waypointStatements|waypointTimeout|waypointTimeoutCurrent|waypointType|waypointVisible|weaponAccessories|weaponAccessoriesCargo|weaponCargo|weaponDirection|weaponInertia|weaponLowered|weapons|weaponsItems|weaponsItemsCargo|weaponState|weaponsTurret|weightRTD|west|WFSideText|wind|windDir|windRTD|windStr|wingsForcesRTD|worldName|worldSize|worldToModel|worldToModelVisual|worldToScreen)\\b/i,\n    number:\n      /(?:\\$|\\b0x)[\\da-f]+\\b|(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d+)?)(?:e[+-]?\\d+)?\\b/i,\n    operator: /##|>>|&&|\\|\\||[!=<>]=?|[-+*/%#^]|\\b(?:and|mod|not|or)\\b/i,\n    'magic-variable': {\n      pattern:\n        /\\b(?:this|thisList|thisTrigger|_exception|_fnc_scriptName|_fnc_scriptNameParent|_forEachIndex|_this|_thisEventHandler|_thisFSM|_thisScript|_x)\\b/i,\n      alias: 'keyword'\n    },\n    constant: /\\bDIK(?:_[a-z\\d]+)+\\b/i\n  })\n  Prism.languages.insertBefore('sqf', 'string', {\n    macro: {\n      pattern: /(^[ \\t]*)#[a-z](?:[^\\r\\n\\\\]|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property',\n      inside: {\n        directive: {\n          pattern: /#[a-z]+\\b/i,\n          alias: 'keyword'\n        },\n        comment: Prism.languages.sqf.comment\n      }\n    }\n  })\n  delete Prism.languages.sqf['class-name']\n}\n","'use strict'\n\nmodule.exports = sql\nsql.displayName = 'sql'\nsql.aliases = []\nfunction sql(Prism) {\n  Prism.languages.sql = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n      lookbehind: true\n    },\n    variable: [\n      {\n        pattern: /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/,\n        greedy: true\n      },\n      /@[\\w.$]+/\n    ],\n    string: {\n      pattern: /(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/,\n      greedy: true,\n      lookbehind: true\n    },\n    identifier: {\n      pattern: /(^|[^@\\\\])`(?:\\\\[\\s\\S]|[^`\\\\]|``)*`/,\n      greedy: true,\n      lookbehind: true,\n      inside: {\n        punctuation: /^`|`$/\n      }\n    },\n    function:\n      /\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i,\n    // Should we highlight user defined functions too?\n    keyword:\n      /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i,\n    boolean: /\\b(?:FALSE|NULL|TRUE)\\b/i,\n    number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n    operator:\n      /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,\n    punctuation: /[;[\\]()`,.]/\n  }\n}\n","'use strict'\n\nmodule.exports = squirrel\nsquirrel.displayName = 'squirrel'\nsquirrel.aliases = []\nfunction squirrel(Prism) {\n  Prism.languages.squirrel = Prism.languages.extend('clike', {\n    comment: [\n      Prism.languages.clike['comment'][0],\n      {\n        pattern: /(^|[^\\\\:])(?:\\/\\/|#).*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /(^|[^\\\\\"'@])(?:@\"(?:[^\"]|\"\")*\"(?!\")|\"(?:[^\\\\\\r\\n\"]|\\\\.)*\")/,\n      lookbehind: true,\n      greedy: true\n    },\n    'class-name': {\n      pattern: /(\\b(?:class|enum|extends|instanceof)\\s+)\\w+(?:\\.\\w+)*/,\n      lookbehind: true,\n      inside: {\n        punctuation: /\\./\n      }\n    },\n    keyword:\n      /\\b(?:__FILE__|__LINE__|base|break|case|catch|class|clone|const|constructor|continue|default|delete|else|enum|extends|for|foreach|function|if|in|instanceof|local|null|resume|return|static|switch|this|throw|try|typeof|while|yield)\\b/,\n    number: /\\b(?:0x[0-9a-fA-F]+|\\d+(?:\\.(?:\\d+|[eE][+-]?\\d+))?)\\b/,\n    operator: /\\+\\+|--|<=>|<[-<]|>>>?|&&?|\\|\\|?|[-+*/%!=<>]=?|[~^]|::?/,\n    punctuation: /[(){}\\[\\],;.]/\n  })\n  Prism.languages.insertBefore('squirrel', 'string', {\n    char: {\n      pattern: /(^|[^\\\\\"'])'(?:[^\\\\']|\\\\(?:[xuU][0-9a-fA-F]{0,8}|[\\s\\S]))'/,\n      lookbehind: true,\n      greedy: true\n    }\n  })\n  Prism.languages.insertBefore('squirrel', 'operator', {\n    'attribute-punctuation': {\n      pattern: /<\\/|\\/>/,\n      alias: 'important'\n    },\n    lambda: {\n      pattern: /@(?=\\()/,\n      alias: 'operator'\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = stan\nstan.displayName = 'stan'\nstan.aliases = []\nfunction stan(Prism) {\n  ;(function (Prism) {\n    // https://mc-stan.org/docs/2_28/reference-manual/bnf-grammars.html\n    var higherOrderFunctions =\n      /\\b(?:algebra_solver|algebra_solver_newton|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect|ode_(?:adams|bdf|ckrk|rk45)(?:_tol)?|ode_adjoint_tol_ctl|reduce_sum|reduce_sum_static)\\b/\n    Prism.languages.stan = {\n      comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\/|#(?!include).*/,\n      string: {\n        // String literals can contain spaces and any printable ASCII characters except for \" and \\\n        // https://mc-stan.org/docs/2_24/reference-manual/print-statements-section.html#string-literals\n        pattern: /\"[\\x20\\x21\\x23-\\x5B\\x5D-\\x7E]*\"/,\n        greedy: true\n      },\n      directive: {\n        pattern: /^([ \\t]*)#include\\b.*/m,\n        lookbehind: true,\n        alias: 'property'\n      },\n      'function-arg': {\n        pattern: RegExp(\n          '(' +\n            higherOrderFunctions.source +\n            /\\s*\\(\\s*/.source +\n            ')' +\n            /[a-zA-Z]\\w*/.source\n        ),\n        lookbehind: true,\n        alias: 'function'\n      },\n      constraint: {\n        pattern: /(\\b(?:int|matrix|real|row_vector|vector)\\s*)<[^<>]*>/,\n        lookbehind: true,\n        inside: {\n          expression: {\n            pattern: /(=\\s*)\\S(?:\\S|\\s+(?!\\s))*?(?=\\s*(?:>$|,\\s*\\w+\\s*=))/,\n            lookbehind: true,\n            inside: null // see below\n          },\n          property: /\\b[a-z]\\w*(?=\\s*=)/i,\n          operator: /=/,\n          punctuation: /^<|>$|,/\n        }\n      },\n      keyword: [\n        {\n          pattern:\n            /\\bdata(?=\\s*\\{)|\\b(?:functions|generated|model|parameters|quantities|transformed)\\b/,\n          alias: 'program-block'\n        },\n        /\\b(?:array|break|cholesky_factor_corr|cholesky_factor_cov|complex|continue|corr_matrix|cov_matrix|data|else|for|if|in|increment_log_prob|int|matrix|ordered|positive_ordered|print|real|reject|return|row_vector|simplex|target|unit_vector|vector|void|while)\\b/, // these are functions that are known to take another function as their first argument.\n        higherOrderFunctions\n      ],\n      function: /\\b[a-z]\\w*(?=\\s*\\()/i,\n      number:\n        /(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:E[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i,\n      boolean: /\\b(?:false|true)\\b/,\n      operator: /<-|\\.[*/]=?|\\|\\|?|&&|[!=<>+\\-*/]=?|['^%~?:]/,\n      punctuation: /[()\\[\\]{},;]/\n    }\n    Prism.languages.stan.constraint.inside.expression.inside =\n      Prism.languages.stan\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = stylus\nstylus.displayName = 'stylus'\nstylus.aliases = []\nfunction stylus(Prism) {\n  ;(function (Prism) {\n    var unit = {\n      pattern: /(\\b\\d+)(?:%|[a-z]+)/,\n      lookbehind: true\n    } // 123 -123 .123 -.123 12.3 -12.3\n    var number = {\n      pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n      lookbehind: true\n    }\n    var inside = {\n      comment: {\n        pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n        lookbehind: true\n      },\n      url: {\n        pattern: /\\burl\\(([\"']?).*?\\1\\)/i,\n        greedy: true\n      },\n      string: {\n        pattern: /(\"|')(?:(?!\\1)[^\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\\1/,\n        greedy: true\n      },\n      interpolation: null,\n      // See below\n      func: null,\n      // See below\n      important: /\\B!(?:important|optional)\\b/i,\n      keyword: {\n        pattern: /(^|\\s+)(?:(?:else|for|if|return|unless)(?=\\s|$)|@[\\w-]+)/,\n        lookbehind: true\n      },\n      hexcode: /#[\\da-f]{3,6}/i,\n      color: [\n        /\\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\\b/i,\n        {\n          pattern:\n            /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i,\n          inside: {\n            unit: unit,\n            number: number,\n            function: /[\\w-]+(?=\\()/,\n            punctuation: /[(),]/\n          }\n        }\n      ],\n      entity: /\\\\[\\da-f]{1,8}/i,\n      unit: unit,\n      boolean: /\\b(?:false|true)\\b/,\n      operator: [\n        // We want non-word chars around \"-\" because it is\n        // accepted in property names.\n        /~|[+!\\/%<>?=]=?|[-:]=|\\*[*=]?|\\.{2,3}|&&|\\|\\||\\B-\\B|\\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\\b/\n      ],\n      number: number,\n      punctuation: /[{}()\\[\\];:,]/\n    }\n    inside['interpolation'] = {\n      pattern: /\\{[^\\r\\n}:]+\\}/,\n      alias: 'variable',\n      inside: {\n        delimiter: {\n          pattern: /^\\{|\\}$/,\n          alias: 'punctuation'\n        },\n        rest: inside\n      }\n    }\n    inside['func'] = {\n      pattern: /[\\w-]+\\([^)]*\\).*/,\n      inside: {\n        function: /^[^(]+/,\n        rest: inside\n      }\n    }\n    Prism.languages.stylus = {\n      'atrule-declaration': {\n        pattern: /(^[ \\t]*)@.+/m,\n        lookbehind: true,\n        inside: {\n          atrule: /^@[\\w-]+/,\n          rest: inside\n        }\n      },\n      'variable-declaration': {\n        pattern: /(^[ \\t]*)[\\w$-]+\\s*.?=[ \\t]*(?:\\{[^{}]*\\}|\\S.*|$)/m,\n        lookbehind: true,\n        inside: {\n          variable: /^\\S+/,\n          rest: inside\n        }\n      },\n      statement: {\n        pattern: /(^[ \\t]*)(?:else|for|if|return|unless)[ \\t].+/m,\n        lookbehind: true,\n        inside: {\n          keyword: /^\\S+/,\n          rest: inside\n        }\n      },\n      // A property/value pair cannot end with a comma or a brace\n      // It cannot have indented content unless it ended with a semicolon\n      'property-declaration': {\n        pattern:\n          /((?:^|\\{)([ \\t]*))(?:[\\w-]|\\{[^}\\r\\n]+\\})+(?:\\s*:\\s*|[ \\t]+)(?!\\s)[^{\\r\\n]*(?:;|[^{\\r\\n,]$(?!(?:\\r?\\n|\\r)(?:\\{|\\2[ \\t])))/m,\n        lookbehind: true,\n        inside: {\n          property: {\n            pattern: /^[^\\s:]+/,\n            inside: {\n              interpolation: inside.interpolation\n            }\n          },\n          rest: inside\n        }\n      },\n      // A selector can contain parentheses only as part of a pseudo-element\n      // It can span multiple lines.\n      // It must end with a comma or an accolade or have indented content.\n      selector: {\n        pattern:\n          /(^[ \\t]*)(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\)|(?![\\w-]))|\\{[^}\\r\\n]+\\})+)(?:(?:\\r?\\n|\\r)(?:\\1(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\)|(?![\\w-]))|\\{[^}\\r\\n]+\\})+)))*(?:,$|\\{|(?=(?:\\r?\\n|\\r)(?:\\{|\\1[ \\t])))/m,\n        lookbehind: true,\n        inside: {\n          interpolation: inside.interpolation,\n          comment: inside.comment,\n          punctuation: /[{},]/\n        }\n      },\n      func: inside.func,\n      string: inside.string,\n      comment: {\n        pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n        lookbehind: true,\n        greedy: true\n      },\n      interpolation: inside.interpolation,\n      punctuation: /[{}()\\[\\];:.]/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = swift\nswift.displayName = 'swift'\nswift.aliases = []\nfunction swift(Prism) {\n  Prism.languages.swift = {\n    comment: {\n      // Nested comments are supported up to 2 levels\n      pattern:\n        /(^|[^\\\\:])(?:\\/\\/.*|\\/\\*(?:[^/*]|\\/(?!\\*)|\\*(?!\\/)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\*\\/)/,\n      lookbehind: true,\n      greedy: true\n    },\n    'string-literal': [\n      // https://docs.swift.org/swift-book/LanguageGuide/StringsAndCharacters.html\n      {\n        pattern: RegExp(\n          /(^|[^\"#])/.source +\n            '(?:' + // single-line string\n            /\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^(])|[^\\\\\\r\\n\"])*\"/\n              .source +\n            '|' + // multi-line string\n            /\"\"\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|[^(])|[^\\\\\"]|\"(?!\"\"))*\"\"\"/\n              .source +\n            ')' +\n            /(?![\"#])/.source\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern: /(\\\\\\()(?:[^()]|\\([^()]*\\))*(?=\\))/,\n            lookbehind: true,\n            inside: null // see below\n          },\n          'interpolation-punctuation': {\n            pattern: /^\\)|\\\\\\($/,\n            alias: 'punctuation'\n          },\n          punctuation: /\\\\(?=[\\r\\n])/,\n          string: /[\\s\\S]+/\n        }\n      },\n      {\n        pattern: RegExp(\n          /(^|[^\"#])(#+)/.source +\n            '(?:' + // single-line string\n            /\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^#])|[^\\\\\\r\\n])*?\"/\n              .source +\n            '|' + // multi-line string\n            /\"\"\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|[^#])|[^\\\\])*?\"\"\"/.source +\n            ')' +\n            '\\\\2'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern: /(\\\\#+\\()(?:[^()]|\\([^()]*\\))*(?=\\))/,\n            lookbehind: true,\n            inside: null // see below\n          },\n          'interpolation-punctuation': {\n            pattern: /^\\)|\\\\#+\\($/,\n            alias: 'punctuation'\n          },\n          string: /[\\s\\S]+/\n        }\n      }\n    ],\n    directive: {\n      // directives with conditions\n      pattern: RegExp(\n        /#/.source +\n          '(?:' +\n          (/(?:elseif|if)\\b/.source +\n            '(?:[ \\t]*' + // This regex is a little complex. It's equivalent to this:\n            //   (?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*<round>)?|<round>)(?:[ \\t]*(?:&&|\\|\\|))?\n            // where <round> is a general parentheses expression.\n            /(?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*\\((?:[^()]|\\([^()]*\\))*\\))?|\\((?:[^()]|\\([^()]*\\))*\\))(?:[ \\t]*(?:&&|\\|\\|))?/\n              .source +\n            ')+') +\n          '|' +\n          /(?:else|endif)\\b/.source +\n          ')'\n      ),\n      alias: 'property',\n      inside: {\n        'directive-name': /^#\\w+/,\n        boolean: /\\b(?:false|true)\\b/,\n        number: /\\b\\d+(?:\\.\\d+)*\\b/,\n        operator: /!|&&|\\|\\||[<>]=?/,\n        punctuation: /[(),]/\n      }\n    },\n    literal: {\n      pattern:\n        /#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\\b/,\n      alias: 'constant'\n    },\n    'other-directive': {\n      pattern: /#\\w+\\b/,\n      alias: 'property'\n    },\n    attribute: {\n      pattern: /@\\w+/,\n      alias: 'atrule'\n    },\n    'function-definition': {\n      pattern: /(\\bfunc\\s+)\\w+/,\n      lookbehind: true,\n      alias: 'function'\n    },\n    label: {\n      // https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html#ID141\n      pattern:\n        /\\b(break|continue)\\s+\\w+|\\b[a-zA-Z_]\\w*(?=\\s*:\\s*(?:for|repeat|while)\\b)/,\n      lookbehind: true,\n      alias: 'important'\n    },\n    keyword:\n      /\\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    nil: {\n      pattern: /\\bnil\\b/,\n      alias: 'constant'\n    },\n    'short-argument': /\\$\\d+\\b/,\n    omit: {\n      pattern: /\\b_\\b/,\n      alias: 'keyword'\n    },\n    number:\n      /\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f0-9_]+(?:\\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b/i,\n    // A class name must start with an upper-case letter and be either 1 letter long or contain a lower-case letter.\n    'class-name': /\\b[A-Z](?:[A-Z_\\d]*[a-z]\\w*)?\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    constant: /\\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/,\n    // Operators are generic in Swift. Developers can even create new operators (e.g. +++).\n    // https://docs.swift.org/swift-book/ReferenceManual/zzSummaryOfTheGrammar.html#ID481\n    // This regex only supports ASCII operators.\n    operator: /[-+*/%=!<>&|^~?]+|\\.[.\\-+*/%=!<>&|^~?]+/,\n    punctuation: /[{}[\\]();,.:\\\\]/\n  }\n  Prism.languages.swift['string-literal'].forEach(function (rule) {\n    rule.inside['interpolation'].inside = Prism.languages.swift\n  })\n}\n","'use strict'\n\nmodule.exports = systemd\nsystemd.displayName = 'systemd'\nsystemd.aliases = []\nfunction systemd(Prism) {\n  // https://www.freedesktop.org/software/systemd/man/systemd.syntax.html\n  ;(function (Prism) {\n    var comment = {\n      pattern: /^[;#].*/m,\n      greedy: true\n    }\n    var quotesSource = /\"(?:[^\\r\\n\"\\\\]|\\\\(?:[^\\r]|\\r\\n?))*\"(?!\\S)/.source\n    Prism.languages.systemd = {\n      comment: comment,\n      section: {\n        pattern: /^\\[[^\\n\\r\\[\\]]*\\](?=[ \\t]*$)/m,\n        greedy: true,\n        inside: {\n          punctuation: /^\\[|\\]$/,\n          'section-name': {\n            pattern: /[\\s\\S]+/,\n            alias: 'selector'\n          }\n        }\n      },\n      key: {\n        pattern: /^[^\\s=]+(?=[ \\t]*=)/m,\n        greedy: true,\n        alias: 'attr-name'\n      },\n      value: {\n        // This pattern is quite complex because of two properties:\n        //  1) Quotes (strings) must be preceded by a space. Since we can't use lookbehinds, we have to \"resolve\"\n        //     the lookbehind. You will see this in the main loop where spaces are handled separately.\n        //  2) Line continuations.\n        //     After line continuations, empty lines and comments are ignored so we have to consume them.\n        pattern: RegExp(\n          /(=[ \\t]*(?!\\s))/.source + // the value either starts with quotes or not\n            '(?:' +\n            quotesSource +\n            '|(?=[^\"\\r\\n]))' + // main loop\n            '(?:' +\n            (/[^\\s\\\\]/.source + // handle spaces separately because of quotes\n              '|' +\n              '[ \\t]+(?:(?![ \\t\"])|' +\n              quotesSource +\n              ')' + // line continuation\n              '|' +\n              /\\\\[\\r\\n]+(?:[#;].*[\\r\\n]+)*(?![#;])/.source) +\n            ')*'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'attr-value',\n        inside: {\n          comment: comment,\n          quoted: {\n            pattern: RegExp(/(^|\\s)/.source + quotesSource),\n            lookbehind: true,\n            greedy: true\n          },\n          punctuation: /\\\\$/m,\n          boolean: {\n            pattern: /^(?:false|no|off|on|true|yes)$/,\n            greedy: true\n          }\n        }\n      },\n      punctuation: /=/\n    }\n  })(Prism)\n}\n","'use strict'\nvar refractorT4Templating = require('./t4-templating.js')\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = t4Cs\nt4Cs.displayName = 't4Cs'\nt4Cs.aliases = []\nfunction t4Cs(Prism) {\n  Prism.register(refractorT4Templating)\n  Prism.register(refractorCsharp)\n  Prism.languages.t4 = Prism.languages['t4-cs'] =\n    Prism.languages['t4-templating'].createT4('csharp')\n}\n","'use strict'\n\nmodule.exports = t4Templating\nt4Templating.displayName = 't4Templating'\nt4Templating.aliases = []\nfunction t4Templating(Prism) {\n  ;(function (Prism) {\n    function createBlock(prefix, inside, contentAlias) {\n      return {\n        pattern: RegExp('<#' + prefix + '[\\\\s\\\\S]*?#>'),\n        alias: 'block',\n        inside: {\n          delimiter: {\n            pattern: RegExp('^<#' + prefix + '|#>$'),\n            alias: 'important'\n          },\n          content: {\n            pattern: /[\\s\\S]+/,\n            inside: inside,\n            alias: contentAlias\n          }\n        }\n      }\n    }\n    function createT4(insideLang) {\n      var grammar = Prism.languages[insideLang]\n      var className = 'language-' + insideLang\n      return {\n        block: {\n          pattern: /<#[\\s\\S]+?#>/,\n          inside: {\n            directive: createBlock('@', {\n              'attr-value': {\n                pattern: /=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/,\n                inside: {\n                  punctuation: /^=|^[\"']|[\"']$/\n                }\n              },\n              keyword: /\\b\\w+(?=\\s)/,\n              'attr-name': /\\b\\w+/\n            }),\n            expression: createBlock('=', grammar, className),\n            'class-feature': createBlock('\\\\+', grammar, className),\n            standard: createBlock('', grammar, className)\n          }\n        }\n      }\n    }\n    Prism.languages['t4-templating'] = Object.defineProperty({}, 'createT4', {\n      value: createT4\n    })\n  })(Prism)\n}\n","'use strict'\nvar refractorT4Templating = require('./t4-templating.js')\nvar refractorVbnet = require('./vbnet.js')\nmodule.exports = t4Vb\nt4Vb.displayName = 't4Vb'\nt4Vb.aliases = []\nfunction t4Vb(Prism) {\n  Prism.register(refractorT4Templating)\n  Prism.register(refractorVbnet)\n  Prism.languages['t4-vb'] = Prism.languages['t4-templating'].createT4('vbnet')\n}\n","'use strict'\nvar refractorYaml = require('./yaml.js')\nmodule.exports = tap\ntap.displayName = 'tap'\ntap.aliases = []\nfunction tap(Prism) {\n  Prism.register(refractorYaml)\n  // https://en.wikipedia.org/wiki/Test_Anything_Protocol\n  Prism.languages.tap = {\n    fail: /not ok[^#{\\n\\r]*/,\n    pass: /ok[^#{\\n\\r]*/,\n    pragma: /pragma [+-][a-z]+/,\n    bailout: /bail out!.*/i,\n    version: /TAP version \\d+/i,\n    plan: /\\b\\d+\\.\\.\\d+(?: +#.*)?/,\n    subtest: {\n      pattern: /# Subtest(?:: .*)?/,\n      greedy: true\n    },\n    punctuation: /[{}]/,\n    directive: /#.*/,\n    yamlish: {\n      pattern: /(^[ \\t]*)---[\\s\\S]*?[\\r\\n][ \\t]*\\.\\.\\.$/m,\n      lookbehind: true,\n      inside: Prism.languages.yaml,\n      alias: 'language-yaml'\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = tcl\ntcl.displayName = 'tcl'\ntcl.aliases = []\nfunction tcl(Prism) {\n  Prism.languages.tcl = {\n    comment: {\n      pattern: /(^|[^\\\\])#.*/,\n      lookbehind: true\n    },\n    string: {\n      pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,\n      greedy: true\n    },\n    variable: [\n      {\n        pattern: /(\\$)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/,\n        lookbehind: true\n      },\n      {\n        pattern: /(\\$)\\{[^}]+\\}/,\n        lookbehind: true\n      },\n      {\n        pattern: /(^[\\t ]*set[ \\t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/m,\n        lookbehind: true\n      }\n    ],\n    function: {\n      pattern: /(^[\\t ]*proc[ \\t]+)\\S+/m,\n      lookbehind: true\n    },\n    builtin: [\n      {\n        pattern:\n          /(^[\\t ]*)(?:break|class|continue|error|eval|exit|for|foreach|if|proc|return|switch|while)\\b/m,\n        lookbehind: true\n      },\n      /\\b(?:else|elseif)\\b/\n    ],\n    scope: {\n      pattern: /(^[\\t ]*)(?:global|upvar|variable)\\b/m,\n      lookbehind: true,\n      alias: 'constant'\n    },\n    keyword: {\n      pattern:\n        /(^[\\t ]*|\\[)(?:Safe_Base|Tcl|after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|scan|seek|set|socket|source|split|string|subst|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|test|vars|wordBreak(?:After|Before))|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\\b/m,\n      lookbehind: true\n    },\n    operator:\n      /!=?|\\*\\*?|==|&&?|\\|\\|?|<[=<]?|>[=>]?|[-+~\\/%?^]|\\b(?:eq|in|ne|ni)\\b/,\n    punctuation: /[{}()\\[\\]]/\n  }\n}\n","'use strict'\n\nmodule.exports = textile\ntextile.displayName = 'textile'\ntextile.aliases = []\nfunction textile(Prism) {\n  ;(function (Prism) {\n    // We don't allow for pipes inside parentheses\n    // to not break table pattern |(. foo |). bar |\n    var modifierRegex = /\\([^|()\\n]+\\)|\\[[^\\]\\n]+\\]|\\{[^}\\n]+\\}/.source // Opening and closing parentheses which are not a modifier\n    // This pattern is necessary to prevent exponential backtracking\n    var parenthesesRegex = /\\)|\\((?![^|()\\n]+\\))/.source\n    /**\n     * @param {string} source\n     * @param {string} [flags]\n     */\n    function withModifier(source, flags) {\n      return RegExp(\n        source\n          .replace(/<MOD>/g, function () {\n            return '(?:' + modifierRegex + ')'\n          })\n          .replace(/<PAR>/g, function () {\n            return '(?:' + parenthesesRegex + ')'\n          }),\n        flags || ''\n      )\n    }\n    var modifierTokens = {\n      css: {\n        pattern: /\\{[^{}]+\\}/,\n        inside: {\n          rest: Prism.languages.css\n        }\n      },\n      'class-id': {\n        pattern: /(\\()[^()]+(?=\\))/,\n        lookbehind: true,\n        alias: 'attr-value'\n      },\n      lang: {\n        pattern: /(\\[)[^\\[\\]]+(?=\\])/,\n        lookbehind: true,\n        alias: 'attr-value'\n      },\n      // Anything else is punctuation (the first pattern is for row/col spans inside tables)\n      punctuation: /[\\\\\\/]\\d+|\\S/\n    }\n    var textile = (Prism.languages.textile = Prism.languages.extend('markup', {\n      phrase: {\n        pattern: /(^|\\r|\\n)\\S[\\s\\S]*?(?=$|\\r?\\n\\r?\\n|\\r\\r)/,\n        lookbehind: true,\n        inside: {\n          // h1. Header 1\n          'block-tag': {\n            pattern: withModifier(/^[a-z]\\w*(?:<MOD>|<PAR>|[<>=])*\\./.source),\n            inside: {\n              modifier: {\n                pattern: withModifier(\n                  /(^[a-z]\\w*)(?:<MOD>|<PAR>|[<>=])+(?=\\.)/.source\n                ),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              tag: /^[a-z]\\w*/,\n              punctuation: /\\.$/\n            }\n          },\n          // # List item\n          // * List item\n          list: {\n            pattern: withModifier(/^[*#]+<MOD>*\\s+\\S.*/.source, 'm'),\n            inside: {\n              modifier: {\n                pattern: withModifier(/(^[*#]+)<MOD>+/.source),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              punctuation: /^[*#]+/\n            }\n          },\n          // | cell | cell | cell |\n          table: {\n            // Modifiers can be applied to the row: {color:red}.|1|2|3|\n            // or the cell: |{color:red}.1|2|3|\n            pattern: withModifier(\n              /^(?:(?:<MOD>|<PAR>|[<>=^~])+\\.\\s*)?(?:\\|(?:(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.|(?!(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.))[^|]*)+\\|/\n                .source,\n              'm'\n            ),\n            inside: {\n              modifier: {\n                // Modifiers for rows after the first one are\n                // preceded by a pipe and a line feed\n                pattern: withModifier(\n                  /(^|\\|(?:\\r?\\n|\\r)?)(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+(?=\\.)/\n                    .source\n                ),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              punctuation: /\\||^\\./\n            }\n          },\n          inline: {\n            // eslint-disable-next-line regexp/no-super-linear-backtracking\n            pattern: withModifier(\n              /(^|[^a-zA-Z\\d])(\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>*.+?\\2(?![a-zA-Z\\d])/\n                .source\n            ),\n            lookbehind: true,\n            inside: {\n              // Note: superscripts and subscripts are not handled specifically\n              // *bold*, **bold**\n              bold: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^(\\*\\*?)<MOD>*).+?(?=\\2)/.source),\n                lookbehind: true\n              },\n              // _italic_, __italic__\n              italic: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^(__?)<MOD>*).+?(?=\\2)/.source),\n                lookbehind: true\n              },\n              // ??cite??\n              cite: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^\\?\\?<MOD>*).+?(?=\\?\\?)/.source),\n                lookbehind: true,\n                alias: 'string'\n              },\n              // @code@\n              code: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^@<MOD>*).+?(?=@)/.source),\n                lookbehind: true,\n                alias: 'keyword'\n              },\n              // +inserted+\n              inserted: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^\\+<MOD>*).+?(?=\\+)/.source),\n                lookbehind: true\n              },\n              // -deleted-\n              deleted: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^-<MOD>*).+?(?=-)/.source),\n                lookbehind: true\n              },\n              // %span%\n              span: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^%<MOD>*).+?(?=%)/.source),\n                lookbehind: true\n              },\n              modifier: {\n                pattern: withModifier(\n                  /(^\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>+/.source\n                ),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              punctuation: /[*_%?@+\\-^~]+/\n            }\n          },\n          // [alias]http://example.com\n          'link-ref': {\n            pattern: /^\\[[^\\]]+\\]\\S+$/m,\n            inside: {\n              string: {\n                pattern: /(^\\[)[^\\]]+(?=\\])/,\n                lookbehind: true\n              },\n              url: {\n                pattern: /(^\\])\\S+$/,\n                lookbehind: true\n              },\n              punctuation: /[\\[\\]]/\n            }\n          },\n          // \"text\":http://example.com\n          // \"text\":link-ref\n          link: {\n            // eslint-disable-next-line regexp/no-super-linear-backtracking\n            pattern: withModifier(\n              /\"<MOD>*[^\"]+\":.+?(?=[^\\w/]?(?:\\s|$))/.source\n            ),\n            inside: {\n              text: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^\"<MOD>*)[^\"]+(?=\")/.source),\n                lookbehind: true\n              },\n              modifier: {\n                pattern: withModifier(/(^\")<MOD>+/.source),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              url: {\n                pattern: /(:).+/,\n                lookbehind: true\n              },\n              punctuation: /[\":]/\n            }\n          },\n          // !image.jpg!\n          // !image.jpg(Title)!:http://example.com\n          image: {\n            pattern: withModifier(\n              /!(?:<MOD>|<PAR>|[<>=])*(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?!(?::.+?(?=[^\\w/]?(?:\\s|$)))?/\n                .source\n            ),\n            inside: {\n              source: {\n                pattern: withModifier(\n                  /(^!(?:<MOD>|<PAR>|[<>=])*)(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?(?=!)/\n                    .source\n                ),\n                lookbehind: true,\n                alias: 'url'\n              },\n              modifier: {\n                pattern: withModifier(/(^!)(?:<MOD>|<PAR>|[<>=])+/.source),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              url: {\n                pattern: /(:).+/,\n                lookbehind: true\n              },\n              punctuation: /[!:]/\n            }\n          },\n          // Footnote[1]\n          footnote: {\n            pattern: /\\b\\[\\d+\\]/,\n            alias: 'comment',\n            inside: {\n              punctuation: /\\[|\\]/\n            }\n          },\n          // CSS(Cascading Style Sheet)\n          acronym: {\n            pattern: /\\b[A-Z\\d]+\\([^)]+\\)/,\n            inside: {\n              comment: {\n                pattern: /(\\()[^()]+(?=\\))/,\n                lookbehind: true\n              },\n              punctuation: /[()]/\n            }\n          },\n          // Prism(C)\n          mark: {\n            pattern: /\\b\\((?:C|R|TM)\\)/,\n            alias: 'comment',\n            inside: {\n              punctuation: /[()]/\n            }\n          }\n        }\n      }\n    }))\n    var phraseInside = textile['phrase'].inside\n    var nestedPatterns = {\n      inline: phraseInside['inline'],\n      link: phraseInside['link'],\n      image: phraseInside['image'],\n      footnote: phraseInside['footnote'],\n      acronym: phraseInside['acronym'],\n      mark: phraseInside['mark']\n    } // Only allow alpha-numeric HTML tags, not XML tags\n    textile.tag.pattern =\n      /<\\/?(?!\\d)[a-z0-9]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i // Allow some nesting\n    var phraseInlineInside = phraseInside['inline'].inside\n    phraseInlineInside['bold'].inside = nestedPatterns\n    phraseInlineInside['italic'].inside = nestedPatterns\n    phraseInlineInside['inserted'].inside = nestedPatterns\n    phraseInlineInside['deleted'].inside = nestedPatterns\n    phraseInlineInside['span'].inside = nestedPatterns // Allow some styles inside table cells\n    var phraseTableInside = phraseInside['table'].inside\n    phraseTableInside['inline'] = nestedPatterns['inline']\n    phraseTableInside['link'] = nestedPatterns['link']\n    phraseTableInside['image'] = nestedPatterns['image']\n    phraseTableInside['footnote'] = nestedPatterns['footnote']\n    phraseTableInside['acronym'] = nestedPatterns['acronym']\n    phraseTableInside['mark'] = nestedPatterns['mark']\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = toml\ntoml.displayName = 'toml'\ntoml.aliases = []\nfunction toml(Prism) {\n  ;(function (Prism) {\n    var key = /(?:[\\w-]+|'[^'\\n\\r]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/.source\n    /**\n     * @param {string} pattern\n     */\n    function insertKey(pattern) {\n      return pattern.replace(/__/g, function () {\n        return key\n      })\n    }\n    Prism.languages.toml = {\n      comment: {\n        pattern: /#.*/,\n        greedy: true\n      },\n      table: {\n        pattern: RegExp(\n          insertKey(\n            /(^[\\t ]*\\[\\s*(?:\\[\\s*)?)__(?:\\s*\\.\\s*__)*(?=\\s*\\])/.source\n          ),\n          'm'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'class-name'\n      },\n      key: {\n        pattern: RegExp(\n          insertKey(/(^[\\t ]*|[{,]\\s*)__(?:\\s*\\.\\s*__)*(?=\\s*=)/.source),\n          'm'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'property'\n      },\n      string: {\n        pattern:\n          /\"\"\"(?:\\\\[\\s\\S]|[^\\\\])*?\"\"\"|'''[\\s\\S]*?'''|'[^'\\n\\r]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n        greedy: true\n      },\n      date: [\n        {\n          // Offset Date-Time, Local Date-Time, Local Date\n          pattern:\n            /\\b\\d{4}-\\d{2}-\\d{2}(?:[T\\s]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?)?\\b/i,\n          alias: 'number'\n        },\n        {\n          // Local Time\n          pattern: /\\b\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?\\b/,\n          alias: 'number'\n        }\n      ],\n      number:\n        /(?:\\b0(?:x[\\da-zA-Z]+(?:_[\\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\\b|[-+]?\\b\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?\\b|[-+]?\\b(?:inf|nan)\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      punctuation: /[.,=[\\]{}]/\n    }\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = tremor\ntremor.displayName = 'tremor'\ntremor.aliases = []\nfunction tremor(Prism) {\n  ;(function (Prism) {\n    Prism.languages.tremor = {\n      comment: {\n        pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n        lookbehind: true\n      },\n      'interpolated-string': null,\n      // see below\n      extractor: {\n        pattern: /\\b[a-z_]\\w*\\|(?:[^\\r\\n\\\\|]|\\\\(?:\\r\\n|[\\s\\S]))*\\|/i,\n        greedy: true,\n        inside: {\n          regex: {\n            pattern: /(^re)\\|[\\s\\S]+/,\n            lookbehind: true\n          },\n          function: /^\\w+/,\n          value: /\\|[\\s\\S]+/\n        }\n      },\n      identifier: {\n        pattern: /`[^`]*`/,\n        greedy: true\n      },\n      function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())\\b/,\n      keyword:\n        /\\b(?:args|as|by|case|config|connect|connector|const|copy|create|default|define|deploy|drop|each|emit|end|erase|event|flow|fn|for|from|group|having|insert|into|intrinsic|let|links|match|merge|mod|move|of|operator|patch|pipeline|recur|script|select|set|sliding|state|stream|to|tumbling|update|use|when|where|window|with)\\b/,\n      boolean: /\\b(?:false|null|true)\\b/i,\n      number:\n        /\\b(?:0b[01_]*|0x[0-9a-fA-F_]*|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[Ee][+-]?[\\d_]+)?)\\b/,\n      'pattern-punctuation': {\n        pattern: /%(?=[({[])/,\n        alias: 'punctuation'\n      },\n      operator:\n        /[-+*\\/%~!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?>?=?|(?:absent|and|not|or|present|xor)\\b/,\n      punctuation: /::|[;\\[\\]()\\{\\},.:]/\n    }\n    var interpolationPattern =\n      /#\\{(?:[^\"{}]|\\{[^{}]*\\}|\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\")*\\}/.source\n    Prism.languages.tremor['interpolated-string'] = {\n      pattern: RegExp(\n        /(^|[^\\\\])/.source +\n          '(?:' +\n          '\"\"\"(?:' +\n          /[^\"\\\\#]|\\\\[\\s\\S]|\"(?!\"\")|#(?!\\{)/.source +\n          '|' +\n          interpolationPattern +\n          ')*\"\"\"' +\n          '|' +\n          '\"(?:' +\n          /[^\"\\\\\\r\\n#]|\\\\(?:\\r\\n|[\\s\\S])|#(?!\\{)/.source +\n          '|' +\n          interpolationPattern +\n          ')*\"' +\n          ')'\n      ),\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: RegExp(interpolationPattern),\n          inside: {\n            punctuation: /^#\\{|\\}$/,\n            expression: {\n              pattern: /[\\s\\S]+/,\n              inside: Prism.languages.tremor\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n    Prism.languages.troy = Prism.languages['tremor']\n    Prism.languages.trickle = Prism.languages['tremor']\n  })(Prism)\n}\n","'use strict'\nvar refractorJsx = require('./jsx.js')\nvar refractorTypescript = require('./typescript.js')\nmodule.exports = tsx\ntsx.displayName = 'tsx'\ntsx.aliases = []\nfunction tsx(Prism) {\n  Prism.register(refractorJsx)\n  Prism.register(refractorTypescript)\n  ;(function (Prism) {\n    var typescript = Prism.util.clone(Prism.languages.typescript)\n    Prism.languages.tsx = Prism.languages.extend('jsx', typescript) // doesn't work with TS because TS is too complex\n    delete Prism.languages.tsx['parameter']\n    delete Prism.languages.tsx['literal-property'] // This will prevent collisions between TSX tags and TS generic types.\n    // Idea by https://github.com/karlhorky\n    // Discussion: https://github.com/PrismJS/prism/issues/2594#issuecomment-710666928\n    var tag = Prism.languages.tsx.tag\n    tag.pattern = RegExp(\n      /(^|[^\\w$]|(?=<\\/))/.source + '(?:' + tag.pattern.source + ')',\n      tag.pattern.flags\n    )\n    tag.lookbehind = true\n  })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = tt2\ntt2.displayName = 'tt2'\ntt2.aliases = []\nfunction tt2(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    Prism.languages.tt2 = Prism.languages.extend('clike', {\n      comment: /#.*|\\[%#[\\s\\S]*?%\\]/,\n      keyword:\n        /\\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|SWITCH|TAGS|THROW|TRY|UNLESS|USE|WHILE|WRAPPER)\\b/,\n      punctuation: /[[\\]{},()]/\n    })\n    Prism.languages.insertBefore('tt2', 'number', {\n      operator: /=[>=]?|!=?|<=?|>=?|&&|\\|\\|?|\\b(?:and|not|or)\\b/,\n      variable: {\n        pattern: /\\b[a-z]\\w*(?:\\s*\\.\\s*(?:\\d+|\\$?[a-z]\\w*))*\\b/i\n      }\n    })\n    Prism.languages.insertBefore('tt2', 'keyword', {\n      delimiter: {\n        pattern: /^(?:\\[%|%%)-?|-?%\\]$/,\n        alias: 'punctuation'\n      }\n    })\n    Prism.languages.insertBefore('tt2', 'string', {\n      'single-quoted-string': {\n        pattern: /'[^\\\\']*(?:\\\\[\\s\\S][^\\\\']*)*'/,\n        greedy: true,\n        alias: 'string'\n      },\n      'double-quoted-string': {\n        pattern: /\"[^\\\\\"]*(?:\\\\[\\s\\S][^\\\\\"]*)*\"/,\n        greedy: true,\n        alias: 'string',\n        inside: {\n          variable: {\n            pattern: /\\$(?:[a-z]\\w*(?:\\.(?:\\d+|\\$?[a-z]\\w*))*)/i\n          }\n        }\n      }\n    }) // The different types of TT2 strings \"replace\" the C-like standard string\n    delete Prism.languages.tt2.string\n    Prism.hooks.add('before-tokenize', function (env) {\n      var tt2Pattern = /\\[%[\\s\\S]+?%\\]/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'tt2',\n        tt2Pattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'tt2')\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = turtle\nturtle.displayName = 'turtle'\nturtle.aliases = []\nfunction turtle(Prism) {\n  Prism.languages.turtle = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    'multiline-string': {\n      pattern:\n        /\"\"\"(?:(?:\"\"?)?(?:[^\"\\\\]|\\\\.))*\"\"\"|'''(?:(?:''?)?(?:[^'\\\\]|\\\\.))*'''/,\n      greedy: true,\n      alias: 'string',\n      inside: {\n        comment: /#.*/\n      }\n    },\n    string: {\n      pattern: /\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*'/,\n      greedy: true\n    },\n    url: {\n      pattern:\n        /<(?:[^\\x00-\\x20<>\"{}|^`\\\\]|\\\\(?:u[\\da-fA-F]{4}|U[\\da-fA-F]{8}))*>/,\n      greedy: true,\n      inside: {\n        punctuation: /[<>]/\n      }\n    },\n    function: {\n      pattern:\n        /(?:(?![-.\\d\\xB7])[-.\\w\\xB7\\xC0-\\uFFFD]+)?:(?:(?![-.])(?:[-.:\\w\\xC0-\\uFFFD]|%[\\da-f]{2}|\\\\.)+)?/i,\n      inside: {\n        'local-name': {\n          pattern: /([^:]*:)[\\s\\S]+/,\n          lookbehind: true\n        },\n        prefix: {\n          pattern: /[\\s\\S]+/,\n          inside: {\n            punctuation: /:/\n          }\n        }\n      }\n    },\n    number: /[+-]?\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n    punctuation: /[{}.,;()[\\]]|\\^\\^/,\n    boolean: /\\b(?:false|true)\\b/,\n    keyword: [/(?:\\ba|@prefix|@base)\\b|=/, /\\b(?:base|graph|prefix)\\b/i],\n    tag: {\n      pattern: /@[a-z]+(?:-[a-z\\d]+)*/i,\n      inside: {\n        punctuation: /@/\n      }\n    }\n  }\n  Prism.languages.trig = Prism.languages['turtle']\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = twig\ntwig.displayName = 'twig'\ntwig.aliases = []\nfunction twig(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  Prism.languages.twig = {\n    comment: /^\\{#[\\s\\S]*?#\\}$/,\n    'tag-name': {\n      pattern: /(^\\{%-?\\s*)\\w+/,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    delimiter: {\n      pattern: /^\\{[{%]-?|-?[%}]\\}$/,\n      alias: 'punctuation'\n    },\n    string: {\n      pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      inside: {\n        punctuation: /^['\"]|['\"]$/\n      }\n    },\n    keyword: /\\b(?:even|if|odd)\\b/,\n    boolean: /\\b(?:false|null|true)\\b/,\n    number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n    operator: [\n      {\n        pattern:\n          /(\\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,\n        lookbehind: true\n      },\n      /[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/\n    ],\n    punctuation: /[()\\[\\]{}:.,]/\n  }\n  Prism.hooks.add('before-tokenize', function (env) {\n    if (env.language !== 'twig') {\n      return\n    }\n    var pattern = /\\{(?:#[\\s\\S]*?#|%[\\s\\S]*?%|\\{[\\s\\S]*?\\})\\}/g\n    Prism.languages['markup-templating'].buildPlaceholders(env, 'twig', pattern)\n  })\n  Prism.hooks.add('after-tokenize', function (env) {\n    Prism.languages['markup-templating'].tokenizePlaceholders(env, 'twig')\n  })\n}\n","'use strict'\n\nmodule.exports = typescript\ntypescript.displayName = 'typescript'\ntypescript.aliases = ['ts']\nfunction typescript(Prism) {\n  ;(function (Prism) {\n    Prism.languages.typescript = Prism.languages.extend('javascript', {\n      'class-name': {\n        pattern:\n          /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,\n        lookbehind: true,\n        greedy: true,\n        inside: null // see below\n      },\n      builtin:\n        /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/\n    }) // The keywords TypeScript adds to JavaScript\n    Prism.languages.typescript.keyword.push(\n      /\\b(?:abstract|declare|is|keyof|readonly|require)\\b/, // keywords that have to be followed by an identifier\n      /\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/, // This is for `import type *, {}`\n      /\\btype\\b(?=\\s*(?:[\\{*]|$))/\n    ) // doesn't work with TS because TS is too complex\n    delete Prism.languages.typescript['parameter']\n    delete Prism.languages.typescript['literal-property'] // a version of typescript specifically for highlighting types\n    var typeInside = Prism.languages.extend('typescript', {})\n    delete typeInside['class-name']\n    Prism.languages.typescript['class-name'].inside = typeInside\n    Prism.languages.insertBefore('typescript', 'function', {\n      decorator: {\n        pattern: /@[$\\w\\xA0-\\uFFFF]+/,\n        inside: {\n          at: {\n            pattern: /^@/,\n            alias: 'operator'\n          },\n          function: /^[\\s\\S]+/\n        }\n      },\n      'generic-function': {\n        // e.g. foo<T extends \"bar\" | \"baz\">( ...\n        pattern:\n          /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/,\n        greedy: true,\n        inside: {\n          function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/,\n          generic: {\n            pattern: /<[\\s\\S]+/,\n            // everything after the first <\n            alias: 'class-name',\n            inside: typeInside\n          }\n        }\n      }\n    })\n    Prism.languages.ts = Prism.languages.typescript\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = typoscript\ntyposcript.displayName = 'typoscript'\ntyposcript.aliases = ['tsconfig']\nfunction typoscript(Prism) {\n  ;(function (Prism) {\n    var keywords =\n      /\\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\\b/\n    Prism.languages.typoscript = {\n      comment: [\n        {\n          // multiline comments /* */\n          pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n          lookbehind: true\n        },\n        {\n          // double-slash comments - ignored when backslashes or colon is found in front\n          // also ignored whenever directly after an equal-sign, because it would probably be an url without protocol\n          pattern: /(^|[^\\\\:= \\t]|(?:^|[^= \\t])[ \\t]+)\\/\\/.*/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          // hash comments - ignored when leading quote is found for hex colors in strings\n          pattern: /(^|[^\"'])#.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      function: [\n        {\n          // old include style\n          pattern:\n            /<INCLUDE_TYPOSCRIPT:\\s*source\\s*=\\s*(?:\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')\\s*>/,\n          inside: {\n            string: {\n              pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n              inside: {\n                keyword: keywords\n              }\n            },\n            keyword: {\n              pattern: /INCLUDE_TYPOSCRIPT/\n            }\n          }\n        },\n        {\n          // new include style\n          pattern: /@import\\s*(?:\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')/,\n          inside: {\n            string: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/\n          }\n        }\n      ],\n      string: {\n        pattern: /^([^=]*=[< ]?)(?:(?!\\]\\n).)*/,\n        lookbehind: true,\n        inside: {\n          function: /\\{\\$.*\\}/,\n          // constants include\n          keyword: keywords,\n          number: /^\\d+$/,\n          punctuation: /[,|:]/\n        }\n      },\n      keyword: keywords,\n      number: {\n        // special highlighting for indexes of arrays in tags\n        pattern: /\\b\\d+\\s*[.{=]/,\n        inside: {\n          operator: /[.{=]/\n        }\n      },\n      tag: {\n        pattern: /\\.?[-\\w\\\\]+\\.?/,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      punctuation: /[{}[\\];(),.:|]/,\n      operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/\n    }\n    Prism.languages.tsconfig = Prism.languages.typoscript\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = unrealscript\nunrealscript.displayName = 'unrealscript'\nunrealscript.aliases = ['uc', 'uscript']\nfunction unrealscript(Prism) {\n  Prism.languages.unrealscript = {\n    comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    category: {\n      pattern:\n        /(\\b(?:(?:autoexpand|hide|show)categories|var)\\s*\\()[^()]+(?=\\))/,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property'\n    },\n    metadata: {\n      pattern: /(\\w\\s*)<\\s*\\w+\\s*=[^<>|=\\r\\n]+(?:\\|\\s*\\w+\\s*=[^<>|=\\r\\n]+)*>/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        property: /\\b\\w+(?=\\s*=)/,\n        operator: /=/,\n        punctuation: /[<>|]/\n      }\n    },\n    macro: {\n      pattern: /`\\w+/,\n      alias: 'property'\n    },\n    'class-name': {\n      pattern:\n        /(\\b(?:class|enum|extends|interface|state(?:\\(\\))?|struct|within)\\s+)\\w+/,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    boolean: /\\b(?:false|true)\\b/,\n    number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n    // https://docs.unrealengine.com/udk/Three/UnrealScriptExpressions.html\n    operator:\n      />>|<<|--|\\+\\+|\\*\\*|[-+*/~!=<>$@]=?|&&?|\\|\\|?|\\^\\^?|[?:%]|\\b(?:ClockwiseFrom|Cross|Dot)\\b/,\n    punctuation: /[()[\\]{};,.]/\n  }\n  Prism.languages.uc = Prism.languages.uscript = Prism.languages.unrealscript\n}\n","'use strict'\n\nmodule.exports = uorazor\nuorazor.displayName = 'uorazor'\nuorazor.aliases = []\nfunction uorazor(Prism) {\n  Prism.languages.uorazor = {\n    'comment-hash': {\n      pattern: /#.*/,\n      alias: 'comment',\n      greedy: true\n    },\n    'comment-slash': {\n      pattern: /\\/\\/.*/,\n      alias: 'comment',\n      greedy: true\n    },\n    string: {\n      pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      inside: {\n        punctuation: /^['\"]|['\"]$/\n      },\n      greedy: true\n    },\n    'source-layers': {\n      pattern:\n        /\\b(?:arms|backpack|blue|bracelet|cancel|clear|cloak|criminal|earrings|enemy|facialhair|friend|friendly|gloves|gray|grey|ground|hair|head|innerlegs|innertorso|innocent|lefthand|middletorso|murderer|neck|nonfriendly|onehandedsecondary|outerlegs|outertorso|pants|red|righthand|ring|self|shirt|shoes|talisman|waist)\\b/i,\n      alias: 'function'\n    },\n    'source-commands': {\n      pattern:\n        /\\b(?:alliance|attack|cast|clearall|clearignore|clearjournal|clearlist|clearsysmsg|createlist|createtimer|dclick|dclicktype|dclickvar|dress|dressconfig|drop|droprelloc|emote|getlabel|guild|gumpclose|gumpresponse|hotkey|ignore|lasttarget|lift|lifttype|menu|menuresponse|msg|org|organize|organizer|overhead|pause|poplist|potion|promptresponse|pushlist|removelist|removetimer|rename|restock|say|scav|scavenger|script|setability|setlasttarget|setskill|settimer|setvar|sysmsg|target|targetloc|targetrelloc|targettype|undress|unignore|unsetvar|useobject|useonce|useskill|usetype|virtue|wait|waitforgump|waitformenu|waitforprompt|waitforstat|waitforsysmsg|waitfortarget|walk|wfsysmsg|wft|whisper|yell)\\b/,\n      alias: 'function'\n    },\n    'tag-name': {\n      pattern: /(^\\{%-?\\s*)\\w+/,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    delimiter: {\n      pattern: /^\\{[{%]-?|-?[%}]\\}$/,\n      alias: 'punctuation'\n    },\n    function:\n      /\\b(?:atlist|close|closest|count|counter|counttype|dead|dex|diffhits|diffmana|diffstam|diffweight|find|findbuff|finddebuff|findlayer|findtype|findtypelist|followers|gumpexists|hidden|hits|hp|hue|human|humanoid|ingump|inlist|insysmessage|insysmsg|int|invul|lhandempty|list|listexists|mana|maxhits|maxhp|maxmana|maxstam|maxweight|monster|mounted|name|next|noto|paralyzed|poisoned|position|prev|previous|queued|rand|random|rhandempty|skill|stam|str|targetexists|timer|timerexists|varexist|warmode|weight)\\b/,\n    keyword:\n      /\\b(?:and|as|break|continue|else|elseif|endfor|endif|endwhile|for|if|loop|not|or|replay|stop|while)\\b/,\n    boolean: /\\b(?:false|null|true)\\b/,\n    number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n    operator: [\n      {\n        pattern:\n          /(\\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,\n        lookbehind: true\n      },\n      /[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/\n    ],\n    punctuation: /[()\\[\\]{}:.,]/\n  }\n}\n","'use strict'\n\nmodule.exports = uri\nuri.displayName = 'uri'\nuri.aliases = ['url']\nfunction uri(Prism) {\n  // https://tools.ietf.org/html/rfc3986#appendix-A\n  Prism.languages.uri = {\n    scheme: {\n      pattern: /^[a-z][a-z0-9+.-]*:/im,\n      greedy: true,\n      inside: {\n        'scheme-delimiter': /:$/\n      }\n    },\n    fragment: {\n      pattern: /#[\\w\\-.~!$&'()*+,;=%:@/?]*/,\n      inside: {\n        'fragment-delimiter': /^#/\n      }\n    },\n    query: {\n      pattern: /\\?[\\w\\-.~!$&'()*+,;=%:@/?]*/,\n      inside: {\n        'query-delimiter': {\n          pattern: /^\\?/,\n          greedy: true\n        },\n        'pair-delimiter': /[&;]/,\n        pair: {\n          pattern: /^[^=][\\s\\S]*/,\n          inside: {\n            key: /^[^=]+/,\n            value: {\n              pattern: /(^=)[\\s\\S]+/,\n              lookbehind: true\n            }\n          }\n        }\n      }\n    },\n    authority: {\n      pattern: RegExp(\n        /^\\/\\//.source + // [ userinfo \"@\" ]\n          /(?:[\\w\\-.~!$&'()*+,;=%:]*@)?/.source + // host\n          ('(?:' + // IP-literal\n            /\\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\\.[\\w\\-.~!$&'()*+,;=]+)\\]/\n              .source +\n            '|' + // IPv4address or registered name\n            /[\\w\\-.~!$&'()*+,;=%]*/.source +\n            ')') + // [ \":\" port ]\n          /(?::\\d*)?/.source,\n        'm'\n      ),\n      inside: {\n        'authority-delimiter': /^\\/\\//,\n        'user-info-segment': {\n          pattern: /^[\\w\\-.~!$&'()*+,;=%:]*@/,\n          inside: {\n            'user-info-delimiter': /@$/,\n            'user-info': /^[\\w\\-.~!$&'()*+,;=%:]+/\n          }\n        },\n        'port-segment': {\n          pattern: /:\\d*$/,\n          inside: {\n            'port-delimiter': /^:/,\n            port: /^\\d+/\n          }\n        },\n        host: {\n          pattern: /[\\s\\S]+/,\n          inside: {\n            'ip-literal': {\n              pattern: /^\\[[\\s\\S]+\\]$/,\n              inside: {\n                'ip-literal-delimiter': /^\\[|\\]$/,\n                'ipv-future': /^v[\\s\\S]+/,\n                'ipv6-address': /^[\\s\\S]+/\n              }\n            },\n            'ipv4-address':\n              /^(?:(?:[03-9]\\d?|[12]\\d{0,2})\\.){3}(?:[03-9]\\d?|[12]\\d{0,2})$/\n          }\n        }\n      }\n    },\n    path: {\n      pattern: /^[\\w\\-.~!$&'()*+,;=%:@/]+/m,\n      inside: {\n        'path-separator': /\\//\n      }\n    }\n  }\n  Prism.languages.url = Prism.languages.uri\n}\n","'use strict'\n\nmodule.exports = v\nv.displayName = 'v'\nv.aliases = []\nfunction v(Prism) {\n  ;(function (Prism) {\n    var interpolationExpr = {\n      pattern: /[\\s\\S]+/,\n      inside: null\n    }\n    Prism.languages.v = Prism.languages.extend('clike', {\n      string: {\n        pattern: /r?([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n        alias: 'quoted-string',\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern:\n              /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\{[^{}]*\\}|\\w+(?:\\.\\w+(?:\\([^\\(\\)]*\\))?|\\[[^\\[\\]]+\\])*)/,\n            lookbehind: true,\n            inside: {\n              'interpolation-variable': {\n                pattern: /^\\$\\w[\\s\\S]*$/,\n                alias: 'variable'\n              },\n              'interpolation-punctuation': {\n                pattern: /^\\$\\{|\\}$/,\n                alias: 'punctuation'\n              },\n              'interpolation-expression': interpolationExpr\n            }\n          }\n        }\n      },\n      'class-name': {\n        pattern: /(\\b(?:enum|interface|struct|type)\\s+)(?:C\\.)?\\w+/,\n        lookbehind: true\n      },\n      keyword:\n        /(?:\\b(?:__global|as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\\$(?:else|for|if)|#(?:flag|include))\\b/,\n      number:\n        /\\b(?:0x[a-f\\d]+(?:_[a-f\\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?)\\b/i,\n      operator:\n        /~|\\?|[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\.?/,\n      builtin:\n        /\\b(?:any(?:_float|_int)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|64|128|nt)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\\b/\n    })\n    interpolationExpr.inside = Prism.languages.v\n    Prism.languages.insertBefore('v', 'string', {\n      char: {\n        pattern: /`(?:\\\\`|\\\\?[^`]{1,2})`/,\n        // using {1,2} instead of `u` flag for compatibility\n        alias: 'rune'\n      }\n    })\n    Prism.languages.insertBefore('v', 'operator', {\n      attribute: {\n        pattern:\n          /(^[\\t ]*)\\[(?:deprecated|direct_array_access|flag|inline|live|ref_only|typedef|unsafe_fn|windows_stdcall)\\]/m,\n        lookbehind: true,\n        alias: 'annotation',\n        inside: {\n          punctuation: /[\\[\\]]/,\n          keyword: /\\w+/\n        }\n      },\n      generic: {\n        pattern: /<\\w+>(?=\\s*[\\)\\{])/,\n        inside: {\n          punctuation: /[<>]/,\n          'class-name': /\\w+/\n        }\n      }\n    })\n    Prism.languages.insertBefore('v', 'function', {\n      'generic-function': {\n        // e.g. foo<T>( ...\n        pattern: /\\b\\w+\\s*<\\w+>(?=\\()/,\n        inside: {\n          function: /^\\w+/,\n          generic: {\n            pattern: /<\\w+>/,\n            inside: Prism.languages.v.generic.inside\n          }\n        }\n      }\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = vala\nvala.displayName = 'vala'\nvala.aliases = []\nfunction vala(Prism) {\n  Prism.languages.vala = Prism.languages.extend('clike', {\n    // Classes copied from prism-csharp\n    'class-name': [\n      {\n        // (Foo bar, Bar baz)\n        pattern: /\\b[A-Z]\\w*(?:\\.\\w+)*\\b(?=(?:\\?\\s+|\\*?\\s+\\*?)\\w)/,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      {\n        // [Foo]\n        pattern: /(\\[)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      {\n        // class Foo : Bar\n        pattern:\n          /(\\b(?:class|interface)\\s+[A-Z]\\w*(?:\\.\\w+)*\\s*:\\s*)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      {\n        // class Foo\n        pattern:\n          /((?:\\b(?:class|enum|interface|new|struct)\\s+)|(?:catch\\s+\\())[A-Z]\\w*(?:\\.\\w+)*\\b/,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      }\n    ],\n    keyword:\n      /\\b(?:abstract|as|assert|async|base|bool|break|case|catch|char|class|const|construct|continue|default|delegate|delete|do|double|dynamic|else|ensures|enum|errordomain|extern|finally|float|for|foreach|get|if|in|inline|int|int16|int32|int64|int8|interface|internal|is|lock|long|namespace|new|null|out|override|owned|params|private|protected|public|ref|requires|return|set|short|signal|sizeof|size_t|ssize_t|static|string|struct|switch|this|throw|throws|try|typeof|uchar|uint|uint16|uint32|uint64|uint8|ulong|unichar|unowned|ushort|using|value|var|virtual|void|volatile|weak|while|yield)\\b/i,\n    function: /\\b\\w+(?=\\s*\\()/,\n    number:\n      /(?:\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)(?:f|u?l?)?/i,\n    operator:\n      /\\+\\+|--|&&|\\|\\||<<=?|>>=?|=>|->|~|[+\\-*\\/%&^|=!<>]=?|\\?\\??|\\.\\.\\./,\n    punctuation: /[{}[\\];(),.:]/,\n    constant: /\\b[A-Z0-9_]+\\b/\n  })\n  Prism.languages.insertBefore('vala', 'string', {\n    'raw-string': {\n      pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n      greedy: true,\n      alias: 'string'\n    },\n    'template-string': {\n      pattern: /@\"[\\s\\S]*?\"/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /\\$(?:\\([^)]*\\)|[a-zA-Z]\\w*)/,\n          inside: {\n            delimiter: {\n              pattern: /^\\$\\(?|\\)$/,\n              alias: 'punctuation'\n            },\n            rest: Prism.languages.vala\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n  })\n  Prism.languages.insertBefore('vala', 'keyword', {\n    regex: {\n      pattern:\n        /\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[imsx]{0,4}(?=\\s*(?:$|[\\r\\n,.;})\\]]))/,\n      greedy: true,\n      inside: {\n        'regex-source': {\n          pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n          lookbehind: true,\n          alias: 'language-regex',\n          inside: Prism.languages.regex\n        },\n        'regex-delimiter': /^\\//,\n        'regex-flags': /^[a-z]+$/\n      }\n    }\n  })\n}\n","'use strict'\nvar refractorBasic = require('./basic.js')\nmodule.exports = vbnet\nvbnet.displayName = 'vbnet'\nvbnet.aliases = []\nfunction vbnet(Prism) {\n  Prism.register(refractorBasic)\n  Prism.languages.vbnet = Prism.languages.extend('basic', {\n    comment: [\n      {\n        pattern: /(?:!|REM\\b).+/i,\n        inside: {\n          keyword: /^REM/i\n        }\n      },\n      {\n        pattern: /(^|[^\\\\:])'.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /(^|[^\"])\"(?:\"\"|[^\"])*\"(?!\")/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /(?:\\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDBL|CDEC|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DEFAULT|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LET|LIB|LIKE|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPERATOR|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHELL|SHORT|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SWAP|SYNCLOCK|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\\$|\\b)/i,\n    punctuation: /[,;:(){}]/\n  })\n}\n","'use strict'\n\nmodule.exports = velocity\nvelocity.displayName = 'velocity'\nvelocity.aliases = []\nfunction velocity(Prism) {\n  ;(function (Prism) {\n    Prism.languages.velocity = Prism.languages.extend('markup', {})\n    var velocity = {\n      variable: {\n        pattern:\n          /(^|[^\\\\](?:\\\\\\\\)*)\\$!?(?:[a-z][\\w-]*(?:\\([^)]*\\))?(?:\\.[a-z][\\w-]*(?:\\([^)]*\\))?|\\[[^\\]]+\\])*|\\{[^}]+\\})/i,\n        lookbehind: true,\n        inside: {} // See below\n      },\n      string: {\n        pattern: /\"[^\"]*\"|'[^']*'/,\n        greedy: true\n      },\n      number: /\\b\\d+\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      operator:\n        /[=!<>]=?|[+*/%-]|&&|\\|\\||\\.\\.|\\b(?:eq|g[et]|l[et]|n(?:e|ot))\\b/,\n      punctuation: /[(){}[\\]:,.]/\n    }\n    velocity.variable.inside = {\n      string: velocity['string'],\n      function: {\n        pattern: /([^\\w-])[a-z][\\w-]*(?=\\()/,\n        lookbehind: true\n      },\n      number: velocity['number'],\n      boolean: velocity['boolean'],\n      punctuation: velocity['punctuation']\n    }\n    Prism.languages.insertBefore('velocity', 'comment', {\n      unparsed: {\n        pattern: /(^|[^\\\\])#\\[\\[[\\s\\S]*?\\]\\]#/,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          punctuation: /^#\\[\\[|\\]\\]#$/\n        }\n      },\n      'velocity-comment': [\n        {\n          pattern: /(^|[^\\\\])#\\*[\\s\\S]*?\\*#/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'comment'\n        },\n        {\n          pattern: /(^|[^\\\\])##.*/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'comment'\n        }\n      ],\n      directive: {\n        pattern:\n          /(^|[^\\\\](?:\\\\\\\\)*)#@?(?:[a-z][\\w-]*|\\{[a-z][\\w-]*\\})(?:\\s*\\((?:[^()]|\\([^()]*\\))*\\))?/i,\n        lookbehind: true,\n        inside: {\n          keyword: {\n            pattern: /^#@?(?:[a-z][\\w-]*|\\{[a-z][\\w-]*\\})|\\bin\\b/,\n            inside: {\n              punctuation: /[{}]/\n            }\n          },\n          rest: velocity\n        }\n      },\n      variable: velocity['variable']\n    })\n    Prism.languages.velocity['tag'].inside['attr-value'].inside.rest =\n      Prism.languages.velocity\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = verilog\nverilog.displayName = 'verilog'\nverilog.aliases = []\nfunction verilog(Prism) {\n  Prism.languages.verilog = {\n    comment: {\n      pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n      greedy: true\n    },\n    'kernel-function': {\n      // support for any kernel function (ex: $display())\n      pattern: /\\B\\$\\w+\\b/,\n      alias: 'property'\n    },\n    // support for user defined constants (ex: `define)\n    constant: /\\B`\\w+\\b/,\n    function: /\\b\\w+(?=\\()/,\n    // support for verilog and system verilog keywords\n    keyword:\n      /\\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|case|casex|casez|cell|chandle|class|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endsequence|endspecify|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_ondetect|pulsestyle_onevent|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\\b/,\n    // bold highlighting for all verilog and system verilog logic blocks\n    important: /\\b(?:always|always_comb|always_ff|always_latch)\\b(?: *@)?/,\n    // support for time ticks, vectors, and real numbers\n    number:\n      /\\B##?\\d+|(?:\\b\\d+)?'[odbh] ?[\\da-fzx_?]+|\\b(?:\\d*[._])?\\d+(?:e[-+]?\\d+)?/i,\n    operator: /[-+{}^~%*\\/?=!<>&|]+/,\n    punctuation: /[[\\];(),.:]/\n  }\n}\n","'use strict'\n\nmodule.exports = vhdl\nvhdl.displayName = 'vhdl'\nvhdl.aliases = []\nfunction vhdl(Prism) {\n  Prism.languages.vhdl = {\n    comment: /--.+/,\n    // support for all logic vectors\n    'vhdl-vectors': {\n      pattern: /\\b[oxb]\"[\\da-f_]+\"|\"[01uxzwlh-]+\"/i,\n      alias: 'number'\n    },\n    // support for operator overloading included\n    'quoted-function': {\n      pattern: /\"\\S+?\"(?=\\()/,\n      alias: 'function'\n    },\n    string: /\"(?:[^\\\\\"\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,\n    constant: /\\b(?:library|use)\\b/i,\n    // support for predefined attributes included\n    keyword:\n      /\\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\\b/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    function: /\\w+(?=\\()/,\n    // decimal, based, physical, and exponential numbers supported\n    number: /'[01uxzwlh-]'|\\b(?:\\d+#[\\da-f_.]+#|\\d[\\d_.]*)(?:e[-+]?\\d+)?/i,\n    operator:\n      /[<>]=?|:=|[-+*/&=]|\\b(?:abs|and|mod|nand|nor|not|or|rem|rol|ror|sla|sll|sra|srl|xnor|xor)\\b/i,\n    punctuation: /[{}[\\];(),.:]/\n  }\n}\n","'use strict'\n\nmodule.exports = vim\nvim.displayName = 'vim'\nvim.aliases = []\nfunction vim(Prism) {\n  Prism.languages.vim = {\n    string: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\r\\n]|'')*'/,\n    comment: /\".*/,\n    function: /\\b\\w+(?=\\()/,\n    keyword:\n      /\\b(?:N|Next|P|Print|X|XMLent|XMLns|ab|abbreviate|abc|abclear|abo|aboveleft|al|all|ar|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|args|argu|argument|as|ascii|b|bN|bNext|ba|bad|badd|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bo|botright|bp|bprevious|br|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|brewind|bro|browse|bufdo|buffer|buffers|bun|bunload|bw|bwipeout|c|cN|cNext|cNfcNfile|ca|cabbrev|cabc|cabclear|cad|caddb|caddbuffer|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cg|cgetb|cgetbuffer|cgete|cgetexpr|cgetfile|change|changes|chd|chdir|che|checkpath|checkt|checktime|cl|cla|clast|clist|clo|close|cmapc|cmapclear|cn|cnew|cnewer|cnext|cnf|cnfile|cnorea|cnoreabbrev|co|col|colder|colo|colorscheme|comc|comclear|comp|compiler|con|conf|confirm|continue|cope|copen|copy|cp|cpf|cpfile|cprevious|cq|cquit|cr|crewind|cu|cuna|cunabbrev|cunmap|cw|cwindow|d|debugg|debuggreedy|delc|delcommand|delete|delf|delfunction|delm|delmarks|di|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|e|earlier|echoe|echoerr|echom|echomsg|echon|edit|el|else|elsei|elseif|em|emenu|en|endf|endfo|endfor|endfun|endfunction|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fin|fina|finally|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoc|folddoclosed|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|h|ha|hardcopy|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iu|iuna|iunabbrev|iunmap|j|join|ju|jumps|k|kee|keepalt|keepj|keepjumps|keepmarks|l|lN|lNext|lNf|lNfile|la|lad|laddb|laddbuffer|laddexpr|laddf|laddfile|lan|language|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|left|lefta|leftabove|let|lex|lexpr|lf|lfile|lfir|lfirst|lg|lgetb|lgetbuffer|lgete|lgetexpr|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|list|ll|lla|llast|lli|llist|lm|lmak|lmake|lmap|lmapc|lmapclear|ln|lne|lnew|lnewer|lnext|lnf|lnfile|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lpf|lpfile|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|ma|mak|make|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvie|mkview|mkvimrc|mod|mode|move|mz|mzf|mzfile|mzscheme|n|nbkey|new|next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|o|omapc|omapclear|on|only|open|opt|options|ou|ounmap|p|pc|pclose|pe|ped|pedit|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|print|prof|profd|profdel|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|ptN|ptNext|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|py|pyf|pyfile|python|q|qa|qall|quit|quita|quitall|r|read|rec|recover|red|redi|redir|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|rub|ruby|rubyd|rubydo|rubyf|rubyfile|runtime|rv|rviminfo|sN|sNext|sa|sal|sall|san|sandbox|sargument|sav|saveas|sb|sbN|sbNext|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbp|sbprevious|sbr|sbrewind|sbuffer|scrip|scripte|scriptencoding|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sl|sla|slast|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|so|sor|sort|source|sp|spe|spelld|spelldump|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|split|spr|sprevious|sre|srewind|st|sta|stag|star|startg|startgreplace|startinsert|startr|startreplace|stj|stjump|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tN|tNext|ta|tab|tabN|tabNext|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnew|tabnext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|u|una|unabbreviate|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|ve|verb|verbose|version|vert|vertical|vi|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|w|wN|wNext|wa|wall|wh|while|win|winc|wincmd|windo|winp|winpos|winsize|wn|wnext|wp|wprevious|wq|wqa|wqall|write|ws|wsverb|wv|wviminfo|x|xa|xall|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\\b/,\n    builtin:\n      /\\b(?:acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autocmd|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|t_AB|t_AF|t_AL|t_CS|t_CV|t_Ce|t_Co|t_Cs|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_IE|t_IS|t_K1|t_K3|t_K4|t_K5|t_K6|t_K7|t_K8|t_K9|t_KA|t_KB|t_KC|t_KD|t_KE|t_KF|t_KG|t_KH|t_KI|t_KJ|t_KK|t_KL|t_RI|t_RV|t_SI|t_Sb|t_Sf|t_WP|t_WS|t_ZH|t_ZR|t_al|t_bc|t_cd|t_ce|t_cl|t_cm|t_cs|t_da|t_db|t_dl|t_fs|t_k1|t_k2|t_k3|t_k4|t_k5|t_k6|t_k7|t_k8|t_k9|t_kB|t_kD|t_kI|t_kN|t_kP|t_kb|t_kd|t_ke|t_kh|t_kl|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_se|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_xs|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww)\\b/,\n    number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?)\\b/i,\n    operator:\n      /\\|\\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\\/%?]|\\b(?:is(?:not)?)\\b/,\n    punctuation: /[{}[\\](),;:]/\n  }\n}\n","'use strict'\n\nmodule.exports = visualBasic\nvisualBasic.displayName = 'visualBasic'\nvisualBasic.aliases = []\nfunction visualBasic(Prism) {\n  Prism.languages['visual-basic'] = {\n    comment: {\n      pattern: /(?:['‘’]|REM\\b)(?:[^\\r\\n_]|_(?:\\r\\n?|\\n)?)*/i,\n      inside: {\n        keyword: /^REM/i\n      }\n    },\n    directive: {\n      pattern:\n        /#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\\b_[ \\t]*(?:\\r\\n?|\\n)|.)+/i,\n      alias: 'property',\n      greedy: true\n    },\n    string: {\n      pattern: /\\$?[\"“”](?:[\"“”]{2}|[^\"“”])*[\"“”]C?/i,\n      greedy: true\n    },\n    date: {\n      pattern:\n        /#[ \\t]*(?:\\d+([/-])\\d+\\1\\d+(?:[ \\t]+(?:\\d+[ \\t]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[ \\t]*(?:AM|PM))?))?|\\d+[ \\t]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[ \\t]*(?:AM|PM))?)[ \\t]*#/i,\n      alias: 'number'\n    },\n    number:\n      /(?:(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)(?:E[+-]?\\d+)?|&[HO][\\dA-F]+)(?:[FRD]|U?[ILS])?/i,\n    boolean: /\\b(?:False|Nothing|True)\\b/i,\n    keyword:\n      /\\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\\b/i,\n    operator: /[+\\-*/\\\\^<=>&#@$%!]|\\b_(?=[ \\t]*[\\r\\n])/,\n    punctuation: /[{}().,:?]/\n  }\n  Prism.languages.vb = Prism.languages['visual-basic']\n  Prism.languages.vba = Prism.languages['visual-basic']\n}\n","'use strict'\n\nmodule.exports = warpscript\nwarpscript.displayName = 'warpscript'\nwarpscript.aliases = []\nfunction warpscript(Prism) {\n  Prism.languages.warpscript = {\n    comment: /#.*|\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n    string: {\n      pattern:\n        /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'|<'(?:[^\\\\']|'(?!>)|\\\\.)*'>/,\n      greedy: true\n    },\n    variable: /\\$\\S+/,\n    macro: {\n      pattern: /@\\S+/,\n      alias: 'property'\n    },\n    // WarpScript doesn't have any keywords, these are all functions under the control category\n    // https://www.warp10.io/tags/control\n    keyword:\n      /\\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\\b/,\n    number:\n      /[+-]?\\b(?:NaN|Infinity|\\d+(?:\\.\\d*)?(?:[Ee][+-]?\\d+)?|0x[\\da-fA-F]+|0b[01]+)\\b/,\n    boolean: /\\b(?:F|T|false|true)\\b/,\n    punctuation: /<%|%>|[{}[\\]()]/,\n    // Some operators from the \"operators\" category\n    // https://www.warp10.io/tags/operators\n    operator:\n      /==|&&?|\\|\\|?|\\*\\*?|>>>?|<<|[<>!~]=?|[-/%^]|\\+!?|\\b(?:AND|NOT|OR)\\b/\n  }\n}\n","'use strict'\n\nmodule.exports = wasm\nwasm.displayName = 'wasm'\nwasm.aliases = []\nfunction wasm(Prism) {\n  Prism.languages.wasm = {\n    comment: [\n      /\\(;[\\s\\S]*?;\\)/,\n      {\n        pattern: /;;.*/,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,\n      greedy: true\n    },\n    keyword: [\n      {\n        pattern: /\\b(?:align|offset)=/,\n        inside: {\n          operator: /=/\n        }\n      },\n      {\n        pattern:\n          /\\b(?:(?:f32|f64|i32|i64)(?:\\.(?:abs|add|and|ceil|clz|const|convert_[su]\\/i(?:32|64)|copysign|ctz|demote\\/f64|div(?:_[su])?|eqz?|extend_[su]\\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\\/f32|reinterpret\\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\\/f(?:32|64))?|wrap\\/i64|xor))?|memory\\.(?:grow|size))\\b/,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      /\\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\\b/\n    ],\n    variable: /\\$[\\w!#$%&'*+\\-./:<=>?@\\\\^`|~]+/,\n    number:\n      /[+-]?\\b(?:\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:[eE][+-]?\\d(?:_?\\d)*)?|0x[\\da-fA-F](?:_?[\\da-fA-F])*(?:\\.[\\da-fA-F](?:_?[\\da-fA-D])*)?(?:[pP][+-]?\\d(?:_?\\d)*)?)\\b|\\binf\\b|\\bnan(?::0x[\\da-fA-F](?:_?[\\da-fA-D])*)?\\b/,\n    punctuation: /[()]/\n  }\n}\n","'use strict'\n\nmodule.exports = webIdl\nwebIdl.displayName = 'webIdl'\nwebIdl.aliases = []\nfunction webIdl(Prism) {\n  ;(function (Prism) {\n    var id = /(?:\\B-|\\b_|\\b)[A-Za-z][\\w-]*(?![\\w-])/.source\n    var type =\n      '(?:' +\n      /\\b(?:unsigned\\s+)?long\\s+long(?![\\w-])/.source +\n      '|' +\n      /\\b(?:unrestricted|unsigned)\\s+[a-z]+(?![\\w-])/.source +\n      '|' +\n      /(?!(?:unrestricted|unsigned)\\b)/.source +\n      id +\n      /(?:\\s*<(?:[^<>]|<[^<>]*>)*>)?/.source +\n      ')' +\n      /(?:\\s*\\?)?/.source\n    var typeInside = {}\n    Prism.languages['web-idl'] = {\n      comment: {\n        pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n        greedy: true\n      },\n      string: {\n        pattern: /\"[^\"]*\"/,\n        greedy: true\n      },\n      namespace: {\n        pattern: RegExp(/(\\bnamespace\\s+)/.source + id),\n        lookbehind: true\n      },\n      'class-name': [\n        {\n          pattern:\n            /(^|[^\\w-])(?:iterable|maplike|setlike)\\s*<(?:[^<>]|<[^<>]*>)*>/,\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          pattern: RegExp(\n            /(\\b(?:attribute|const|deleter|getter|optional|setter)\\s+)/.source +\n              type\n          ),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // callback return type\n          pattern: RegExp(\n            '(' + /\\bcallback\\s+/.source + id + /\\s*=\\s*/.source + ')' + type\n          ),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // typedef\n          pattern: RegExp(/(\\btypedef\\b\\s*)/.source + type),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          pattern: RegExp(\n            /(\\b(?:callback|dictionary|enum|interface(?:\\s+mixin)?)\\s+)(?!(?:interface|mixin)\\b)/\n              .source + id\n          ),\n          lookbehind: true\n        },\n        {\n          // inheritance\n          pattern: RegExp(/(:\\s*)/.source + id),\n          lookbehind: true\n        }, // includes and implements\n        RegExp(id + /(?=\\s+(?:implements|includes)\\b)/.source),\n        {\n          pattern: RegExp(/(\\b(?:implements|includes)\\s+)/.source + id),\n          lookbehind: true\n        },\n        {\n          // function return type, parameter types, and dictionary members\n          pattern: RegExp(\n            type +\n              '(?=' +\n              /\\s*(?:\\.{3}\\s*)?/.source +\n              id +\n              /\\s*[(),;=]/.source +\n              ')'\n          ),\n          inside: typeInside\n        }\n      ],\n      builtin:\n        /\\b(?:ArrayBuffer|BigInt64Array|BigUint64Array|ByteString|DOMString|DataView|Float32Array|Float64Array|FrozenArray|Int16Array|Int32Array|Int8Array|ObservableArray|Promise|USVString|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray)\\b/,\n      keyword: [\n        /\\b(?:async|attribute|callback|const|constructor|deleter|dictionary|enum|getter|implements|includes|inherit|interface|mixin|namespace|null|optional|or|partial|readonly|required|setter|static|stringifier|typedef|unrestricted)\\b/, // type keywords\n        /\\b(?:any|bigint|boolean|byte|double|float|iterable|long|maplike|object|octet|record|sequence|setlike|short|symbol|undefined|unsigned|void)\\b/\n      ],\n      boolean: /\\b(?:false|true)\\b/,\n      number: {\n        pattern:\n          /(^|[^\\w-])-?(?:0x[0-9a-f]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|NaN|Infinity)(?![\\w-])/i,\n        lookbehind: true\n      },\n      operator: /\\.{3}|[=:?<>-]/,\n      punctuation: /[(){}[\\].,;]/\n    }\n    for (var key in Prism.languages['web-idl']) {\n      if (key !== 'class-name') {\n        typeInside[key] = Prism.languages['web-idl'][key]\n      }\n    }\n    Prism.languages['webidl'] = Prism.languages['web-idl']\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = wiki\nwiki.displayName = 'wiki'\nwiki.aliases = []\nfunction wiki(Prism) {\n  Prism.languages.wiki = Prism.languages.extend('markup', {\n    'block-comment': {\n      pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n      lookbehind: true,\n      alias: 'comment'\n    },\n    heading: {\n      pattern: /^(=+)[^=\\r\\n].*?\\1/m,\n      inside: {\n        punctuation: /^=+|=+$/,\n        important: /.+/\n      }\n    },\n    emphasis: {\n      // TODO Multi-line\n      pattern: /('{2,5}).+?\\1/,\n      inside: {\n        'bold-italic': {\n          pattern: /(''''').+?(?=\\1)/,\n          lookbehind: true,\n          alias: ['bold', 'italic']\n        },\n        bold: {\n          pattern: /(''')[^'](?:.*?[^'])?(?=\\1)/,\n          lookbehind: true\n        },\n        italic: {\n          pattern: /('')[^'](?:.*?[^'])?(?=\\1)/,\n          lookbehind: true\n        },\n        punctuation: /^''+|''+$/\n      }\n    },\n    hr: {\n      pattern: /^-{4,}/m,\n      alias: 'punctuation'\n    },\n    url: [\n      /ISBN +(?:97[89][ -]?)?(?:\\d[ -]?){9}[\\dx]\\b|(?:PMID|RFC) +\\d+/i,\n      /\\[\\[.+?\\]\\]|\\[.+?\\]/\n    ],\n    variable: [\n      /__[A-Z]+__/, // FIXME Nested structures should be handled\n      // {{formatnum:{{#expr:{{{3}}}}}}}\n      /\\{{3}.+?\\}{3}/,\n      /\\{\\{.+?\\}\\}/\n    ],\n    symbol: [/^#redirect/im, /~{3,5}/],\n    // Handle table attrs:\n    // {|\n    // ! style=\"text-align:left;\"| Item\n    // |}\n    'table-tag': {\n      pattern: /((?:^|[|!])[|!])[^|\\r\\n]+\\|(?!\\|)/m,\n      lookbehind: true,\n      inside: {\n        'table-bar': {\n          pattern: /\\|$/,\n          alias: 'punctuation'\n        },\n        rest: Prism.languages.markup['tag'].inside\n      }\n    },\n    punctuation: /^(?:\\{\\||\\|\\}|\\|-|[*#:;!|])|\\|\\||!!/m\n  })\n  Prism.languages.insertBefore('wiki', 'tag', {\n    // Prevent highlighting inside <nowiki>, <source> and <pre> tags\n    nowiki: {\n      pattern: /<(nowiki|pre|source)\\b[^>]*>[\\s\\S]*?<\\/\\1>/i,\n      inside: {\n        tag: {\n          pattern: /<(?:nowiki|pre|source)\\b[^>]*>|<\\/(?:nowiki|pre|source)>/i,\n          inside: Prism.languages.markup['tag'].inside\n        }\n      }\n    }\n  })\n}\n","'use strict'\n\nmodule.exports = wolfram\nwolfram.displayName = 'wolfram'\nwolfram.aliases = ['mathematica', 'wl', 'nb']\nfunction wolfram(Prism) {\n  Prism.languages.wolfram = {\n    // Allow one level of nesting - note: regex taken from applescipt\n    comment: /\\(\\*(?:\\(\\*(?:[^*]|\\*(?!\\)))*\\*\\)|(?!\\(\\*)[\\s\\S])*?\\*\\)/,\n    string: {\n      pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\\b/,\n    context: {\n      pattern: /\\b\\w+`+\\w*/,\n      alias: 'class-name'\n    },\n    blank: {\n      pattern: /\\b\\w+_\\b/,\n      alias: 'regex'\n    },\n    'global-variable': {\n      pattern: /\\$\\w+/,\n      alias: 'variable'\n    },\n    boolean: /\\b(?:False|True)\\b/,\n    number:\n      /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?j?\\b/i,\n    operator:\n      /\\/\\.|;|=\\.|\\^=|\\^:=|:=|<<|>>|<\\||\\|>|:>|\\|->|->|<-|@@@|@@|@|\\/@|=!=|===|==|=|\\+|-|\\^|\\[\\/-+%=\\]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n    punctuation: /[{}[\\];(),.:]/\n  }\n  Prism.languages.mathematica = Prism.languages.wolfram\n  Prism.languages.wl = Prism.languages.wolfram\n  Prism.languages.nb = Prism.languages.wolfram\n}\n","'use strict'\n\nmodule.exports = wren\nwren.displayName = 'wren'\nwren.aliases = []\nfunction wren(Prism) {\n  // https://wren.io/\n  Prism.languages.wren = {\n    // Multiline comments in Wren can have nested multiline comments\n    // Comments: // and /* */\n    comment: [\n      {\n        // support 3 levels of nesting\n        // regex: \\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\/\n        pattern:\n          /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*))*\\*\\/)*\\*\\/)*\\*\\//,\n        greedy: true\n      },\n      {\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    // Triple quoted strings are multiline but cannot have interpolation (raw strings)\n    // Based on prism-python.js\n    'triple-quoted-string': {\n      pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n      greedy: true,\n      alias: 'string'\n    },\n    // see below\n    'string-literal': null,\n    // #!/usr/bin/env wren on the first line\n    hashbang: {\n      pattern: /^#!\\/.+/,\n      greedy: true,\n      alias: 'comment'\n    },\n    // Attributes are special keywords to add meta data to classes\n    attribute: {\n      // #! attributes are stored in class properties\n      // #!myvar = true\n      // #attributes are not stored and dismissed at compilation\n      pattern: /#!?[ \\t\\u3000]*\\w+/,\n      alias: 'keyword'\n    },\n    'class-name': [\n      {\n        // class definition\n        // class Meta {}\n        pattern: /(\\bclass\\s+)\\w+/,\n        lookbehind: true\n      }, // A class must always start with an uppercase.\n      // File.read\n      /\\b[A-Z][a-z\\d_]*\\b/\n    ],\n    // A constant can be a variable, class, property or method. Just named in all uppercase letters\n    constant: /\\b[A-Z][A-Z\\d_]*\\b/,\n    null: {\n      pattern: /\\bnull\\b/,\n      alias: 'keyword'\n    },\n    keyword:\n      /\\b(?:as|break|class|construct|continue|else|for|foreign|if|import|in|is|return|static|super|this|var|while)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\n    // Functions can be Class.method()\n    function: /\\b[a-z_]\\w*(?=\\s*[({])/i,\n    operator: /<<|>>|[=!<>]=?|&&|\\|\\||[-+*/%~^&|?:]|\\.{2,3}/,\n    punctuation: /[\\[\\](){}.,;]/\n  }\n  Prism.languages.wren['string-literal'] = {\n    // A single quote string is multiline and can have interpolation (similar to JS backticks ``)\n    pattern:\n      /(^|[^\\\\\"])\"(?:[^\\\\\"%]|\\\\[\\s\\S]|%(?!\\()|%\\((?:[^()]|\\((?:[^()]|\\([^)]*\\))*\\))*\\))*\"/,\n    lookbehind: true,\n    greedy: true,\n    inside: {\n      interpolation: {\n        // \"%(interpolation)\"\n        pattern:\n          /((?:^|[^\\\\])(?:\\\\{2})*)%\\((?:[^()]|\\((?:[^()]|\\([^)]*\\))*\\))*\\)/,\n        lookbehind: true,\n        inside: {\n          expression: {\n            pattern: /^(%\\()[\\s\\S]+(?=\\)$)/,\n            lookbehind: true,\n            inside: Prism.languages.wren\n          },\n          'interpolation-punctuation': {\n            pattern: /^%\\(|\\)$/,\n            alias: 'punctuation'\n          }\n        }\n      },\n      string: /[\\s\\S]+/\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = xeora\nxeora.displayName = 'xeora'\nxeora.aliases = ['xeoracube']\nfunction xeora(Prism) {\n  ;(function (Prism) {\n    Prism.languages.xeora = Prism.languages.extend('markup', {\n      constant: {\n        pattern: /\\$(?:DomainContents|PageRenderDuration)\\$/,\n        inside: {\n          punctuation: {\n            pattern: /\\$/\n          }\n        }\n      },\n      variable: {\n        pattern: /\\$@?(?:#+|[-+*~=^])?[\\w.]+\\$/,\n        inside: {\n          punctuation: {\n            pattern: /[$.]/\n          },\n          operator: {\n            pattern: /#+|[-+*~=^@]/\n          }\n        }\n      },\n      'function-inline': {\n        pattern:\n          /\\$F:[-\\w.]+\\?[-\\w.]+(?:,(?:(?:@[-#]*\\w+\\.[\\w+.]\\.*)*\\|)*(?:(?:[\\w+]|[-#*.~^]+[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\\w+\\.[\\w+.]\\.*)+(?:(?:[\\w+]|[-#*~^][-#*.~^]*[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*)?)?)?\\$/,\n        inside: {\n          variable: {\n            pattern: /(?:[,|])@?(?:#+|[-+*~=^])?[\\w.]+/,\n            inside: {\n              punctuation: {\n                pattern: /[,.|]/\n              },\n              operator: {\n                pattern: /#+|[-+*~=^@]/\n              }\n            }\n          },\n          punctuation: {\n            pattern: /\\$\\w:|[$:?.,|]/\n          }\n        },\n        alias: 'function'\n      },\n      'function-block': {\n        pattern:\n          /\\$XF:\\{[-\\w.]+\\?[-\\w.]+(?:,(?:(?:@[-#]*\\w+\\.[\\w+.]\\.*)*\\|)*(?:(?:[\\w+]|[-#*.~^]+[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\\w+\\.[\\w+.]\\.*)+(?:(?:[\\w+]|[-#*~^][-#*.~^]*[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*)?)?)?\\}:XF\\$/,\n        inside: {\n          punctuation: {\n            pattern: /[$:{}?.,|]/\n          }\n        },\n        alias: 'function'\n      },\n      'directive-inline': {\n        pattern: /\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+\\])?:[-\\/\\w.]+\\$/,\n        inside: {\n          punctuation: {\n            pattern: /\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,\n            inside: {\n              tag: {\n                pattern: /#\\d/\n              }\n            }\n          }\n        },\n        alias: 'function'\n      },\n      'directive-block-open': {\n        pattern:\n          /\\$\\w+:\\{|\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+\\])?:[-\\w.]+:\\{(?:![A-Z]+)?/,\n        inside: {\n          punctuation: {\n            pattern: /\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,\n            inside: {\n              tag: {\n                pattern: /#\\d/\n              }\n            }\n          },\n          attribute: {\n            pattern: /![A-Z]+$/,\n            inside: {\n              punctuation: {\n                pattern: /!/\n              }\n            },\n            alias: 'keyword'\n          }\n        },\n        alias: 'function'\n      },\n      'directive-block-separator': {\n        pattern: /\\}:[-\\w.]+:\\{/,\n        inside: {\n          punctuation: {\n            pattern: /[:{}]/\n          }\n        },\n        alias: 'function'\n      },\n      'directive-block-close': {\n        pattern: /\\}:[-\\w.]+\\$/,\n        inside: {\n          punctuation: {\n            pattern: /[:{}$]/\n          }\n        },\n        alias: 'function'\n      }\n    })\n    Prism.languages.insertBefore(\n      'inside',\n      'punctuation',\n      {\n        variable: Prism.languages.xeora['function-inline'].inside['variable']\n      },\n      Prism.languages.xeora['function-block']\n    )\n    Prism.languages.xeoracube = Prism.languages.xeora\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = xmlDoc\nxmlDoc.displayName = 'xmlDoc'\nxmlDoc.aliases = []\nfunction xmlDoc(Prism) {\n  ;(function (Prism) {\n    /**\n     * If the given language is present, it will insert the given doc comment grammar token into it.\n     *\n     * @param {string} lang\n     * @param {any} docComment\n     */\n    function insertDocComment(lang, docComment) {\n      if (Prism.languages[lang]) {\n        Prism.languages.insertBefore(lang, 'comment', {\n          'doc-comment': docComment\n        })\n      }\n    }\n    var tag = Prism.languages.markup.tag\n    var slashDocComment = {\n      pattern: /\\/\\/\\/.*/,\n      greedy: true,\n      alias: 'comment',\n      inside: {\n        tag: tag\n      }\n    }\n    var tickDocComment = {\n      pattern: /'''.*/,\n      greedy: true,\n      alias: 'comment',\n      inside: {\n        tag: tag\n      }\n    }\n    insertDocComment('csharp', slashDocComment)\n    insertDocComment('fsharp', slashDocComment)\n    insertDocComment('vbnet', tickDocComment)\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = xojo\nxojo.displayName = 'xojo'\nxojo.aliases = []\nfunction xojo(Prism) {\n  Prism.languages.xojo = {\n    comment: {\n      pattern: /(?:'|\\/\\/|Rem\\b).+/i,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:\"\"|[^\"])*\"/,\n      greedy: true\n    },\n    number: [/(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i, /&[bchou][a-z\\d]+/i],\n    directive: {\n      pattern: /#(?:Else|ElseIf|Endif|If|Pragma)\\b/i,\n      alias: 'property'\n    },\n    keyword:\n      /\\b(?:AddHandler|App|Array|As(?:signs)?|Auto|Boolean|Break|By(?:Ref|Val)|Byte|Call|Case|Catch|CFStringRef|CGFloat|Class|Color|Const|Continue|CString|Currency|CurrentMethodName|Declare|Delegate|Dim|Do(?:uble|wnTo)?|Each|Else(?:If)?|End|Enumeration|Event|Exception|Exit|Extends|False|Finally|For|Function|Get|GetTypeInfo|Global|GOTO|If|Implements|In|Inherits|Int(?:8|16|32|64|eger|erface)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Shared|Short|Single|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:8|16|32|64|eger)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\\b/i,\n    operator:\n      /<[=>]?|>=?|[+\\-*\\/\\\\^=]|\\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|WeakAddressOf|Xor)\\b/i,\n    punctuation: /[.,;:()]/\n  }\n}\n","'use strict'\n\nmodule.exports = xquery\nxquery.displayName = 'xquery'\nxquery.aliases = []\nfunction xquery(Prism) {\n  ;(function (Prism) {\n    Prism.languages.xquery = Prism.languages.extend('markup', {\n      'xquery-comment': {\n        pattern: /\\(:[\\s\\S]*?:\\)/,\n        greedy: true,\n        alias: 'comment'\n      },\n      string: {\n        pattern: /([\"'])(?:\\1\\1|(?!\\1)[\\s\\S])*\\1/,\n        greedy: true\n      },\n      extension: {\n        pattern: /\\(#.+?#\\)/,\n        alias: 'symbol'\n      },\n      variable: /\\$[-\\w:]+/,\n      axis: {\n        pattern:\n          /(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      'keyword-operator': {\n        pattern:\n          /(^|[^:-])\\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\\b(?=$|[^:-])/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      keyword: {\n        pattern:\n          /(^|[^:-])\\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\\b(?=$|[^:-])/,\n        lookbehind: true\n      },\n      function: /[\\w-]+(?::[\\w-]+)*(?=\\s*\\()/,\n      'xquery-element': {\n        pattern: /(element\\s+)[\\w-]+(?::[\\w-]+)*/,\n        lookbehind: true,\n        alias: 'tag'\n      },\n      'xquery-attribute': {\n        pattern: /(attribute\\s+)[\\w-]+(?::[\\w-]+)*/,\n        lookbehind: true,\n        alias: 'attr-name'\n      },\n      builtin: {\n        pattern:\n          /(^|[^:-])\\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:ENTITIES|ENTITY|ID|IDREFS?|NCName|NMTOKENS?|NOTATION|Name|QName|anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|int|integer|language|long|negativeInteger|nonNegativeInteger|nonPositiveInteger|normalizedString|positiveInteger|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\\b(?=$|[^:-])/,\n        lookbehind: true\n      },\n      number: /\\b\\d+(?:\\.\\d+)?(?:E[+-]?\\d+)?/,\n      operator: [\n        /[+*=?|@]|\\.\\.?|:=|!=|<[=<]?|>[=>]?/,\n        {\n          pattern: /(\\s)-(?=\\s)/,\n          lookbehind: true\n        }\n      ],\n      punctuation: /[[\\](){},;:/]/\n    })\n    Prism.languages.xquery.tag.pattern =\n      /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/\n    Prism.languages.xquery['tag'].inside['attr-value'].pattern =\n      /=(?:(\"|')(?:\\\\[\\s\\S]|\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/\n    Prism.languages.xquery['tag'].inside['attr-value'].inside['punctuation'] =\n      /^=\"|\"$/\n    Prism.languages.xquery['tag'].inside['attr-value'].inside['expression'] = {\n      // Allow for two levels of nesting\n      pattern: /\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}/,\n      inside: Prism.languages.xquery,\n      alias: 'language-xquery'\n    } // The following will handle plain text inside tags\n    var stringifyToken = function (token) {\n      if (typeof token === 'string') {\n        return token\n      }\n      if (typeof token.content === 'string') {\n        return token.content\n      }\n      return token.content.map(stringifyToken).join('')\n    }\n    var walkTokens = function (tokens) {\n      var openedTags = []\n      for (var i = 0; i < tokens.length; i++) {\n        var token = tokens[i]\n        var notTagNorBrace = false\n        if (typeof token !== 'string') {\n          if (\n            token.type === 'tag' &&\n            token.content[0] &&\n            token.content[0].type === 'tag'\n          ) {\n            // We found a tag, now find its kind\n            if (token.content[0].content[0].content === '</') {\n              // Closing tag\n              if (\n                openedTags.length > 0 &&\n                openedTags[openedTags.length - 1].tagName ===\n                  stringifyToken(token.content[0].content[1])\n              ) {\n                // Pop matching opening tag\n                openedTags.pop()\n              }\n            } else {\n              if (token.content[token.content.length - 1].content === '/>') {\n                // Autoclosed tag, ignore\n              } else {\n                // Opening tag\n                openedTags.push({\n                  tagName: stringifyToken(token.content[0].content[1]),\n                  openedBraces: 0\n                })\n              }\n            }\n          } else if (\n            openedTags.length > 0 &&\n            token.type === 'punctuation' &&\n            token.content === '{' && // Ignore `{{`\n            (!tokens[i + 1] ||\n              tokens[i + 1].type !== 'punctuation' ||\n              tokens[i + 1].content !== '{') &&\n            (!tokens[i - 1] ||\n              tokens[i - 1].type !== 'plain-text' ||\n              tokens[i - 1].content !== '{')\n          ) {\n            // Here we might have entered an XQuery expression inside a tag\n            openedTags[openedTags.length - 1].openedBraces++\n          } else if (\n            openedTags.length > 0 &&\n            openedTags[openedTags.length - 1].openedBraces > 0 &&\n            token.type === 'punctuation' &&\n            token.content === '}'\n          ) {\n            // Here we might have left an XQuery expression inside a tag\n            openedTags[openedTags.length - 1].openedBraces--\n          } else if (token.type !== 'comment') {\n            notTagNorBrace = true\n          }\n        }\n        if (notTagNorBrace || typeof token === 'string') {\n          if (\n            openedTags.length > 0 &&\n            openedTags[openedTags.length - 1].openedBraces === 0\n          ) {\n            // Here we are inside a tag, and not inside an XQuery expression.\n            // That's plain text: drop any tokens matched.\n            var plainText = stringifyToken(token) // And merge text with adjacent text\n            if (\n              i < tokens.length - 1 &&\n              (typeof tokens[i + 1] === 'string' ||\n                tokens[i + 1].type === 'plain-text')\n            ) {\n              plainText += stringifyToken(tokens[i + 1])\n              tokens.splice(i + 1, 1)\n            }\n            if (\n              i > 0 &&\n              (typeof tokens[i - 1] === 'string' ||\n                tokens[i - 1].type === 'plain-text')\n            ) {\n              plainText = stringifyToken(tokens[i - 1]) + plainText\n              tokens.splice(i - 1, 1)\n              i--\n            }\n            if (/^\\s+$/.test(plainText)) {\n              tokens[i] = plainText\n            } else {\n              tokens[i] = new Prism.Token(\n                'plain-text',\n                plainText,\n                null,\n                plainText\n              )\n            }\n          }\n        }\n        if (token.content && typeof token.content !== 'string') {\n          walkTokens(token.content)\n        }\n      }\n    }\n    Prism.hooks.add('after-tokenize', function (env) {\n      if (env.language !== 'xquery') {\n        return\n      }\n      walkTokens(env.tokens)\n    })\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = yaml\nyaml.displayName = 'yaml'\nyaml.aliases = ['yml']\nfunction yaml(Prism) {\n  ;(function (Prism) {\n    // https://yaml.org/spec/1.2/spec.html#c-ns-anchor-property\n    // https://yaml.org/spec/1.2/spec.html#c-ns-alias-node\n    var anchorOrAlias = /[*&][^\\s[\\]{},]+/ // https://yaml.org/spec/1.2/spec.html#c-ns-tag-property\n    var tag =\n      /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/ // https://yaml.org/spec/1.2/spec.html#c-ns-properties(n,c)\n    var properties =\n      '(?:' +\n      tag.source +\n      '(?:[ \\t]+' +\n      anchorOrAlias.source +\n      ')?|' +\n      anchorOrAlias.source +\n      '(?:[ \\t]+' +\n      tag.source +\n      ')?)' // https://yaml.org/spec/1.2/spec.html#ns-plain(n,c)\n    // This is a simplified version that doesn't support \"#\" and multiline keys\n    // All these long scarry character classes are simplified versions of YAML's characters\n    var plainKey =\n      /(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(\n        /<PLAIN>/g,\n        function () {\n          return /[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/\n            .source\n        }\n      )\n    var string = /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/.source\n    /**\n     *\n     * @param {string} value\n     * @param {string} [flags]\n     * @returns {RegExp}\n     */\n    function createValuePattern(value, flags) {\n      flags = (flags || '').replace(/m/g, '') + 'm' // add m flag\n      var pattern =\n        /([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/.source\n          .replace(/<<prop>>/g, function () {\n            return properties\n          })\n          .replace(/<<value>>/g, function () {\n            return value\n          })\n      return RegExp(pattern, flags)\n    }\n    Prism.languages.yaml = {\n      scalar: {\n        pattern: RegExp(\n          /([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/.source.replace(\n            /<<prop>>/g,\n            function () {\n              return properties\n            }\n          )\n        ),\n        lookbehind: true,\n        alias: 'string'\n      },\n      comment: /#.*/,\n      key: {\n        pattern: RegExp(\n          /((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)/.source\n            .replace(/<<prop>>/g, function () {\n              return properties\n            })\n            .replace(/<<key>>/g, function () {\n              return '(?:' + plainKey + '|' + string + ')'\n            })\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'atrule'\n      },\n      directive: {\n        pattern: /(^[ \\t]*)%.+/m,\n        lookbehind: true,\n        alias: 'important'\n      },\n      datetime: {\n        pattern: createValuePattern(\n          /\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?/\n            .source\n        ),\n        lookbehind: true,\n        alias: 'number'\n      },\n      boolean: {\n        pattern: createValuePattern(/false|true/.source, 'i'),\n        lookbehind: true,\n        alias: 'important'\n      },\n      null: {\n        pattern: createValuePattern(/null|~/.source, 'i'),\n        lookbehind: true,\n        alias: 'important'\n      },\n      string: {\n        pattern: createValuePattern(string),\n        lookbehind: true,\n        greedy: true\n      },\n      number: {\n        pattern: createValuePattern(\n          /[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/\n            .source,\n          'i'\n        ),\n        lookbehind: true\n      },\n      tag: tag,\n      important: anchorOrAlias,\n      punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./\n    }\n    Prism.languages.yml = Prism.languages.yaml\n  })(Prism)\n}\n","'use strict'\n\nmodule.exports = yang\nyang.displayName = 'yang'\nyang.aliases = []\nfunction yang(Prism) {\n  Prism.languages.yang = {\n    // https://tools.ietf.org/html/rfc6020#page-34\n    // http://www.yang-central.org/twiki/bin/view/Main/YangExamples\n    comment: /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*/,\n    string: {\n      pattern: /\"(?:[^\\\\\"]|\\\\.)*\"|'[^']*'/,\n      greedy: true\n    },\n    keyword: {\n      pattern: /(^|[{};\\r\\n][ \\t]*)[a-z_][\\w.-]*/i,\n      lookbehind: true\n    },\n    namespace: {\n      pattern: /(\\s)[a-z_][\\w.-]*(?=:)/i,\n      lookbehind: true\n    },\n    boolean: /\\b(?:false|true)\\b/,\n    operator: /\\+/,\n    punctuation: /[{};:]/\n  }\n}\n","'use strict'\n\nmodule.exports = zig\nzig.displayName = 'zig'\nzig.aliases = []\nfunction zig(Prism) {\n  ;(function (Prism) {\n    function literal(str) {\n      return function () {\n        return str\n      }\n    }\n    var keyword =\n      /\\b(?:align|allowzero|and|anyframe|anytype|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|nosuspend|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\\b/\n    var IDENTIFIER = '\\\\b(?!' + keyword.source + ')(?!\\\\d)\\\\w+\\\\b'\n    var ALIGN = /align\\s*\\((?:[^()]|\\([^()]*\\))*\\)/.source\n    var PREFIX_TYPE_OP =\n      /(?:\\?|\\bpromise->|(?:\\[[^[\\]]*\\]|\\*(?!\\*)|\\*\\*)(?:\\s*<ALIGN>|\\s*const\\b|\\s*volatile\\b|\\s*allowzero\\b)*)/.source.replace(\n        /<ALIGN>/g,\n        literal(ALIGN)\n      )\n    var SUFFIX_EXPR =\n      /(?:\\bpromise\\b|(?:\\berror\\.)?<ID>(?:\\.<ID>)*(?!\\s+<ID>))/.source.replace(\n        /<ID>/g,\n        literal(IDENTIFIER)\n      )\n    var TYPE =\n      '(?!\\\\s)(?:!?\\\\s*(?:' + PREFIX_TYPE_OP + '\\\\s*)*' + SUFFIX_EXPR + ')+'\n    /*\n     * A simplified grammar for Zig compile time type literals:\n     *\n     * TypeExpr = ( \"!\"? PREFIX_TYPE_OP* SUFFIX_EXPR )+\n     *\n     * SUFFIX_EXPR = ( \\b \"promise\" \\b | ( \\b \"error\" \".\" )? IDENTIFIER ( \".\" IDENTIFIER )* (?! \\s+ IDENTIFIER ) )\n     *\n     * PREFIX_TYPE_OP = \"?\"\n     *                | \\b \"promise\" \"->\"\n     *                | ( \"[\" [^\\[\\]]* \"]\" | \"*\" | \"**\" ) ( ALIGN | \"const\" \\b | \"volatile\" \\b | \"allowzero\" \\b )*\n     *\n     * ALIGN = \"align\" \"(\" ( [^()] | \"(\" [^()]* \")\" )* \")\"\n     *\n     * IDENTIFIER = \\b (?! KEYWORD ) [a-zA-Z_] \\w* \\b\n     *\n     */\n    Prism.languages.zig = {\n      comment: [\n        {\n          pattern: /\\/\\/[/!].*/,\n          alias: 'doc-comment'\n        },\n        /\\/{2}.*/\n      ],\n      string: [\n        {\n          // \"string\" and c\"string\"\n          pattern: /(^|[^\\\\@])c?\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          // multiline strings and c-strings\n          pattern: /([\\r\\n])([ \\t]+c?\\\\{2}).*(?:(?:\\r\\n?|\\n)\\2.*)*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      char: {\n        // characters 'a', '\\n', '\\xFF', '\\u{10FFFF}'\n        pattern:\n          /(^|[^\\\\])'(?:[^'\\\\\\r\\n]|[\\uD800-\\uDFFF]{2}|\\\\(?:.|x[a-fA-F\\d]{2}|u\\{[a-fA-F\\d]{1,6}\\}))'/,\n        lookbehind: true,\n        greedy: true\n      },\n      builtin: /\\B@(?!\\d)\\w+(?=\\s*\\()/,\n      label: {\n        pattern:\n          /(\\b(?:break|continue)\\s*:\\s*)\\w+\\b|\\b(?!\\d)\\w+\\b(?=\\s*:\\s*(?:\\{|while\\b))/,\n        lookbehind: true\n      },\n      'class-name': [\n        // const Foo = struct {};\n        /\\b(?!\\d)\\w+(?=\\s*=\\s*(?:(?:extern|packed)\\s+)?(?:enum|struct|union)\\s*[({])/,\n        {\n          // const x: i32 = 9;\n          // var x: Bar;\n          // fn foo(x: bool, y: f32) void {}\n          pattern: RegExp(\n            /(:\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?[=;,)])|<TYPE>(?=\\s*(?:<ALIGN>\\s*)?\\{)/.source\n              .replace(/<TYPE>/g, literal(TYPE))\n              .replace(/<ALIGN>/g, literal(ALIGN))\n          ),\n          lookbehind: true,\n          inside: null // see below\n        },\n        {\n          // extern fn foo(x: f64) f64; (optional alignment)\n          pattern: RegExp(\n            /(\\)\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?;)/.source\n              .replace(/<TYPE>/g, literal(TYPE))\n              .replace(/<ALIGN>/g, literal(ALIGN))\n          ),\n          lookbehind: true,\n          inside: null // see below\n        }\n      ],\n      'builtin-type': {\n        pattern:\n          /\\b(?:anyerror|bool|c_u?(?:int|long|longlong|short)|c_longdouble|c_void|comptime_(?:float|int)|f(?:16|32|64|128)|[iu](?:8|16|32|64|128|size)|noreturn|type|void)\\b/,\n        alias: 'keyword'\n      },\n      keyword: keyword,\n      function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n      number:\n        /\\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\\d]+(?:\\.[a-fA-F\\d]*)?(?:[pP][+-]?[a-fA-F\\d]+)?|\\d+(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      operator:\n        /\\.[*?]|\\.{2,3}|[-=]>|\\*\\*|\\+\\+|\\|\\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,\n      punctuation: /[.:,;(){}[\\]]/\n    }\n    Prism.languages.zig['class-name'].forEach(function (obj) {\n      if (obj.inside === null) {\n        obj.inside = Prism.languages.zig\n      }\n    })\n  })(Prism)\n}\n","/// <reference lib=\"WebWorker\"/>\n\nvar _self = (typeof window !== 'undefined')\n\t? window   // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {}   // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new <script> to load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tmanual: _self.Prism && _self.Prism.manual,\n\t\t/**\n\t\t * By default, if Prism is in a web worker, it assumes that it is in a worker it created itself, so it uses\n\t\t * `addEventListener` to communicate with its parent instance. However, if you're using Prism manually in your\n\t\t * own worker, you don't want it to do this.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not add its own listeners to the worker.\n\t\t *\n\t\t * You obviously have to change this value before Prism executes. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.disableWorkerMessageHandler = true;\n\t\t * // Load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\n\t\t/**\n\t\t * A namespace for utility methods.\n\t\t *\n\t\t * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n\t\t * change or disappear at any time.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t */\n\t\tutil: {\n\t\t\tencode: function encode(tokens) {\n\t\t\t\tif (tokens instanceof Token) {\n\t\t\t\t\treturn new Token(tokens.type, encode(tokens.content), tokens.alias);\n\t\t\t\t} else if (Array.isArray(tokens)) {\n\t\t\t\t\treturn tokens.map(encode);\n\t\t\t\t} else {\n\t\t\t\t\treturn tokens.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\\u00a0/g, ' ');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the name of the type of the given value.\n\t\t\t *\n\t\t\t * @param {any} o\n\t\t\t * @returns {string}\n\t\t\t * @example\n\t\t\t * type(null)      === 'Null'\n\t\t\t * type(undefined) === 'Undefined'\n\t\t\t * type(123)       === 'Number'\n\t\t\t * type('foo')     === 'String'\n\t\t\t * type(true)      === 'Boolean'\n\t\t\t * type([1, 2])    === 'Array'\n\t\t\t * type({})        === 'Object'\n\t\t\t * type(String)    === 'Function'\n\t\t\t * type(/abc+/)    === 'RegExp'\n\t\t\t */\n\t\t\ttype: function (o) {\n\t\t\t\treturn Object.prototype.toString.call(o).slice(8, -1);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns a unique number for the given object. Later calls will still return the same number.\n\t\t\t *\n\t\t\t * @param {Object} obj\n\t\t\t * @returns {number}\n\t\t\t */\n\t\t\tobjId: function (obj) {\n\t\t\t\tif (!obj['__id']) {\n\t\t\t\t\tObject.defineProperty(obj, '__id', { value: ++uniqueId });\n\t\t\t\t}\n\t\t\t\treturn obj['__id'];\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Creates a deep clone of the given object.\n\t\t\t *\n\t\t\t * The main intended use of this function is to clone language definitions.\n\t\t\t *\n\t\t\t * @param {T} o\n\t\t\t * @param {Record<number, any>} [visited]\n\t\t\t * @returns {T}\n\t\t\t * @template T\n\t\t\t */\n\t\t\tclone: function deepClone(o, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar clone; var id;\n\t\t\t\tswitch (_.util.type(o)) {\n\t\t\t\t\tcase 'Object':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = /** @type {Record<string, any>} */ ({});\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\tfor (var key in o) {\n\t\t\t\t\t\t\tif (o.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tclone[key] = deepClone(o[key], visited);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tcase 'Array':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\t(/** @type {Array} */(/** @type {any} */(o))).forEach(function (v, i) {\n\t\t\t\t\t\t\tclone[i] = deepClone(v, visited);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn o;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n\t\t\t *\n\t\t\t * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tgetLanguage: function (element) {\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar m = lang.exec(element.className);\n\t\t\t\t\tif (m) {\n\t\t\t\t\t\treturn m[1].toLowerCase();\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn 'none';\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Sets the Prism `language-xxxx` class of the given element.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} language\n\t\t\t * @returns {void}\n\t\t\t */\n\t\t\tsetLanguage: function (element, language) {\n\t\t\t\t// remove all `language-xxxx` classes\n\t\t\t\t// (this might leave behind a leading space)\n\t\t\t\telement.className = element.className.replace(RegExp(lang, 'gi'), '');\n\n\t\t\t\t// add the new `language-xxxx` class\n\t\t\t\t// (using `classList` will automatically clean up spaces for us)\n\t\t\t\telement.classList.add('language-' + language);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the script element that is currently executing.\n\t\t\t *\n\t\t\t * This does __not__ work for line script element.\n\t\t\t *\n\t\t\t * @returns {HTMLScriptElement | null}\n\t\t\t */\n\t\t\tcurrentScript: function () {\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif ('currentScript' in document && 1 < 2 /* hack to trip TS' flow analysis */) {\n\t\t\t\t\treturn /** @type {any} */ (document.currentScript);\n\t\t\t\t}\n\n\t\t\t\t// IE11 workaround\n\t\t\t\t// we'll get the src of the current script by parsing IE11's error stack trace\n\t\t\t\t// this will not work for inline scripts\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new Error();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Get file src url from stack. Specifically works with the format of stack traces in IE.\n\t\t\t\t\t// A stack will look like this:\n\t\t\t\t\t//\n\t\t\t\t\t// Error\n\t\t\t\t\t//    at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n\t\t\t\t\t//    at Global code (http://localhost/components/prism-core.js:606:1)\n\n\t\t\t\t\tvar src = (/at [^(\\r\\n]*\\((.*):[^:]+:[^:]+\\)$/i.exec(err.stack) || [])[1];\n\t\t\t\t\tif (src) {\n\t\t\t\t\t\tvar scripts = document.getElementsByTagName('script');\n\t\t\t\t\t\tfor (var i in scripts) {\n\t\t\t\t\t\t\tif (scripts[i].src == src) {\n\t\t\t\t\t\t\t\treturn scripts[i];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns whether a given class is active for `element`.\n\t\t\t *\n\t\t\t * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n\t\t\t * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n\t\t\t * given class is just the given class with a `no-` prefix.\n\t\t\t *\n\t\t\t * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n\t\t\t * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n\t\t\t * ancestors have the given class or the negated version of it, then the default activation will be returned.\n\t\t\t *\n\t\t\t * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n\t\t\t * version of it, the class is considered active.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} className\n\t\t\t * @param {boolean} [defaultActivation=false]\n\t\t\t * @returns {boolean}\n\t\t\t */\n\t\t\tisActive: function (element, className, defaultActivation) {\n\t\t\t\tvar no = 'no-' + className;\n\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar classList = element.classList;\n\t\t\t\t\tif (classList.contains(className)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tif (classList.contains(no)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn !!defaultActivation;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tlanguages: {\n\t\t\t/**\n\t\t\t * The grammar for plain, unformatted text.\n\t\t\t */\n\t\t\tplain: plainTextGrammar,\n\t\t\tplaintext: plainTextGrammar,\n\t\t\ttext: plainTextGrammar,\n\t\t\ttxt: plainTextGrammar,\n\n\t\t\t/**\n\t\t\t * Creates a deep copy of the language with the given id and appends the given tokens.\n\t\t\t *\n\t\t\t * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n\t\t\t * will be overwritten at its original position.\n\t\t\t *\n\t\t\t * ## Best practices\n\t\t\t *\n\t\t\t * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n\t\t\t * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n\t\t\t * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n\t\t\t *\n\t\t\t * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n\t\t\t * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n\t\t\t *\n\t\t\t * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n\t\t\t * @param {Grammar} redef The new tokens to append.\n\t\t\t * @returns {Grammar} The new language created.\n\t\t\t * @public\n\t\t\t * @example\n\t\t\t * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n\t\t\t *     // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n\t\t\t *     // at its original position\n\t\t\t *     'comment': { ... },\n\t\t\t *     // CSS doesn't have a 'color' token, so this token will be appended\n\t\t\t *     'color': /\\b(?:red|green|blue)\\b/\n\t\t\t * });\n\t\t\t */\n\t\t\textend: function (id, redef) {\n\t\t\t\tvar lang = _.util.clone(_.languages[id]);\n\n\t\t\t\tfor (var key in redef) {\n\t\t\t\t\tlang[key] = redef[key];\n\t\t\t\t}\n\n\t\t\t\treturn lang;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Inserts tokens _before_ another token in a language definition or any other grammar.\n\t\t\t *\n\t\t\t * ## Usage\n\t\t\t *\n\t\t\t * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n\t\t\t * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n\t\t\t * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n\t\t\t * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n\t\t\t * this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.markup.style = {\n\t\t\t *     // token\n\t\t\t * };\n\t\t\t * ```\n\t\t\t *\n\t\t\t * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n\t\t\t * before existing tokens. For the CSS example above, you would use it like this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'cdata', {\n\t\t\t *     'style': {\n\t\t\t *         // token\n\t\t\t *     }\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Special cases\n\t\t\t *\n\t\t\t * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n\t\t\t * will be ignored.\n\t\t\t *\n\t\t\t * This behavior can be used to insert tokens after `before`:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'comment', {\n\t\t\t *     'comment': Prism.languages.markup.comment,\n\t\t\t *     // tokens after 'comment'\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Limitations\n\t\t\t *\n\t\t\t * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n\t\t\t * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n\t\t\t * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n\t\t\t * deleting properties which is necessary to insert at arbitrary positions.\n\t\t\t *\n\t\t\t * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n\t\t\t * Instead, it will create a new object and replace all references to the target object with the new one. This\n\t\t\t * can be done without temporarily deleting properties, so the iteration order is well-defined.\n\t\t\t *\n\t\t\t * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n\t\t\t * you hold the target object in a variable, then the value of the variable will not change.\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * var oldMarkup = Prism.languages.markup;\n\t\t\t * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n\t\t\t *\n\t\t\t * assert(oldMarkup !== Prism.languages.markup);\n\t\t\t * assert(newMarkup === Prism.languages.markup);\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n\t\t\t * object to be modified.\n\t\t\t * @param {string} before The key to insert before.\n\t\t\t * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n\t\t\t * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n\t\t\t * object to be modified.\n\t\t\t *\n\t\t\t * Defaults to `Prism.languages`.\n\t\t\t * @returns {Grammar} The new grammar object.\n\t\t\t * @public\n\t\t\t */\n\t\t\tinsertBefore: function (inside, before, insert, root) {\n\t\t\t\troot = root || /** @type {any} */ (_.languages);\n\t\t\t\tvar grammar = root[inside];\n\t\t\t\t/** @type {Grammar} */\n\t\t\t\tvar ret = {};\n\n\t\t\t\tfor (var token in grammar) {\n\t\t\t\t\tif (grammar.hasOwnProperty(token)) {\n\n\t\t\t\t\t\tif (token == before) {\n\t\t\t\t\t\t\tfor (var newToken in insert) {\n\t\t\t\t\t\t\t\tif (insert.hasOwnProperty(newToken)) {\n\t\t\t\t\t\t\t\t\tret[newToken] = insert[newToken];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Do not insert token which also occur in insert. See #1525\n\t\t\t\t\t\tif (!insert.hasOwnProperty(token)) {\n\t\t\t\t\t\t\tret[token] = grammar[token];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar old = root[inside];\n\t\t\t\troot[inside] = ret;\n\n\t\t\t\t// Update references in other language definitions\n\t\t\t\t_.languages.DFS(_.languages, function (key, value) {\n\t\t\t\t\tif (value === old && key != inside) {\n\t\t\t\t\t\tthis[key] = ret;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn ret;\n\t\t\t},\n\n\t\t\t// Traverse a language definition with Depth First Search\n\t\t\tDFS: function DFS(o, callback, type, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar objId = _.util.objId;\n\n\t\t\t\tfor (var i in o) {\n\t\t\t\t\tif (o.hasOwnProperty(i)) {\n\t\t\t\t\t\tcallback.call(o, i, o[i], type || i);\n\n\t\t\t\t\t\tvar property = o[i];\n\t\t\t\t\t\tvar propertyType = _.util.type(property);\n\n\t\t\t\t\t\tif (propertyType === 'Object' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, null, visited);\n\t\t\t\t\t\t} else if (propertyType === 'Array' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, i, visited);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tplugins: {},\n\n\t\t/**\n\t\t * This is the most high-level function in Prism’s API.\n\t\t * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n\t\t * each one of them.\n\t\t *\n\t\t * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n\t\t *\n\t\t * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAll: function (async, callback) {\n\t\t\t_.highlightAllUnder(document, async, callback);\n\t\t},\n\n\t\t/**\n\t\t * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n\t\t * {@link Prism.highlightElement} on each one of them.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-highlightall`\n\t\t * 2. `before-all-elements-highlight`\n\t\t * 3. All hooks of {@link Prism.highlightElement} for each element.\n\t\t *\n\t\t * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n\t\t * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAllUnder: function (container, async, callback) {\n\t\t\tvar env = {\n\t\t\t\tcallback: callback,\n\t\t\t\tcontainer: container,\n\t\t\t\tselector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n\t\t\t};\n\n\t\t\t_.hooks.run('before-highlightall', env);\n\n\t\t\tenv.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n\t\t\t_.hooks.run('before-all-elements-highlight', env);\n\n\t\t\tfor (var i = 0, element; (element = env.elements[i++]);) {\n\t\t\t\t_.highlightElement(element, async === true, env.callback);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Highlights the code inside a single element.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-sanity-check`\n\t\t * 2. `before-highlight`\n\t\t * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n\t\t * 4. `before-insert`\n\t\t * 5. `after-highlight`\n\t\t * 6. `complete`\n\t\t *\n\t\t * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n\t\t * the element's language.\n\t\t *\n\t\t * @param {Element} element The element containing the code.\n\t\t * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n\t\t * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n\t\t * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n\t\t * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n\t\t *\n\t\t * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n\t\t * asynchronous highlighting to work. You can build your own bundle on the\n\t\t * [Download page](https://prismjs.com/download.html).\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n\t\t * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightElement: function (element, async, callback) {\n\t\t\t// Find language\n\t\t\tvar language = _.util.getLanguage(element);\n\t\t\tvar grammar = _.languages[language];\n\n\t\t\t// Set language on the element, if not present\n\t\t\t_.util.setLanguage(element, language);\n\n\t\t\t// Set language on the parent, for styling\n\t\t\tvar parent = element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre') {\n\t\t\t\t_.util.setLanguage(parent, language);\n\t\t\t}\n\n\t\t\tvar code = element.textContent;\n\n\t\t\tvar env = {\n\t\t\t\telement: element,\n\t\t\t\tlanguage: language,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tcode: code\n\t\t\t};\n\n\t\t\tfunction insertHighlightedCode(highlightedCode) {\n\t\t\t\tenv.highlightedCode = highlightedCode;\n\n\t\t\t\t_.hooks.run('before-insert', env);\n\n\t\t\t\tenv.element.innerHTML = env.highlightedCode;\n\n\t\t\t\t_.hooks.run('after-highlight', env);\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t}\n\n\t\t\t_.hooks.run('before-sanity-check', env);\n\n\t\t\t// plugins may change/add the parent/element\n\t\t\tparent = env.element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre' && !parent.hasAttribute('tabindex')) {\n\t\t\t\tparent.setAttribute('tabindex', '0');\n\t\t\t}\n\n\t\t\tif (!env.code) {\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_.hooks.run('before-highlight', env);\n\n\t\t\tif (!env.grammar) {\n\t\t\t\tinsertHighlightedCode(_.util.encode(env.code));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (async && _self.Worker) {\n\t\t\t\tvar worker = new Worker(_.filename);\n\n\t\t\t\tworker.onmessage = function (evt) {\n\t\t\t\t\tinsertHighlightedCode(evt.data);\n\t\t\t\t};\n\n\t\t\t\tworker.postMessage(JSON.stringify({\n\t\t\t\t\tlanguage: env.language,\n\t\t\t\t\tcode: env.code,\n\t\t\t\t\timmediateClose: true\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tinsertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns a string with the HTML produced.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-tokenize`\n\t\t * 2. `after-tokenize`\n\t\t * 3. `wrap`: On each {@link Token}.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @param {string} language The name of the language definition passed to `grammar`.\n\t\t * @returns {string} The highlighted HTML.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n\t\t */\n\t\thighlight: function (text, grammar, language) {\n\t\t\tvar env = {\n\t\t\t\tcode: text,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tlanguage: language\n\t\t\t};\n\t\t\t_.hooks.run('before-tokenize', env);\n\t\t\tif (!env.grammar) {\n\t\t\t\tthrow new Error('The language \"' + env.language + '\" has no grammar.');\n\t\t\t}\n\t\t\tenv.tokens = _.tokenize(env.code, env.grammar);\n\t\t\t_.hooks.run('after-tokenize', env);\n\t\t\treturn Token.stringify(_.util.encode(env.tokens), env.language);\n\t\t},\n\n\t\t/**\n\t\t * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns an array with the tokenized code.\n\t\t *\n\t\t * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n\t\t *\n\t\t * This method could be useful in other contexts as well, as a very crude parser.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @returns {TokenStream} An array of strings and tokens, a token stream.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * let code = `var foo = 0;`;\n\t\t * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n\t\t * tokens.forEach(token => {\n\t\t *     if (token instanceof Prism.Token && token.type === 'number') {\n\t\t *         console.log(`Found numeric literal: ${token.content}`);\n\t\t *     }\n\t\t * });\n\t\t */\n\t\ttokenize: function (text, grammar) {\n\t\t\tvar rest = grammar.rest;\n\t\t\tif (rest) {\n\t\t\t\tfor (var token in rest) {\n\t\t\t\t\tgrammar[token] = rest[token];\n\t\t\t\t}\n\n\t\t\t\tdelete grammar.rest;\n\t\t\t}\n\n\t\t\tvar tokenList = new LinkedList();\n\t\t\taddAfter(tokenList, tokenList.head, text);\n\n\t\t\tmatchGrammar(text, tokenList, grammar, tokenList.head, 0);\n\n\t\t\treturn toArray(tokenList);\n\t\t},\n\n\t\t/**\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thooks: {\n\t\t\tall: {},\n\n\t\t\t/**\n\t\t\t * Adds the given callback to the list of callbacks for the given hook.\n\t\t\t *\n\t\t\t * The callback will be invoked when the hook it is registered for is run.\n\t\t\t * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n\t\t\t *\n\t\t\t * One callback function can be registered to multiple hooks and the same hook multiple times.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {HookCallback} callback The callback function which is given environment variables.\n\t\t\t * @public\n\t\t\t */\n\t\t\tadd: function (name, callback) {\n\t\t\t\tvar hooks = _.hooks.all;\n\n\t\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\t\thooks[name].push(callback);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Runs a hook invoking all registered callbacks with the given environment variables.\n\t\t\t *\n\t\t\t * Callbacks will be invoked synchronously and in the order in which they were registered.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n\t\t\t * @public\n\t\t\t */\n\t\t\trun: function (name, env) {\n\t\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0, callback; (callback = callbacks[i++]);) {\n\t\t\t\t\tcallback(env);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tToken: Token\n\t};\n\t_self.Prism = _;\n\n\n\t// Typescript note:\n\t// The following can be used to import the Token type in JSDoc:\n\t//\n\t//   @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n\t/**\n\t * Creates a new token.\n\t *\n\t * @param {string} type See {@link Token#type type}\n\t * @param {string | TokenStream} content See {@link Token#content content}\n\t * @param {string|string[]} [alias] The alias(es) of the token.\n\t * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n\t * @class\n\t * @global\n\t * @public\n\t */\n\tfunction Token(type, content, alias, matchedStr) {\n\t\t/**\n\t\t * The type of the token.\n\t\t *\n\t\t * This is usually the key of a pattern in a {@link Grammar}.\n\t\t *\n\t\t * @type {string}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.type = type;\n\t\t/**\n\t\t * The strings or tokens contained by this token.\n\t\t *\n\t\t * This will be a token stream if the pattern matched also defined an `inside` grammar.\n\t\t *\n\t\t * @type {string | TokenStream}\n\t\t * @public\n\t\t */\n\t\tthis.content = content;\n\t\t/**\n\t\t * The alias(es) of the token.\n\t\t *\n\t\t * @type {string|string[]}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.alias = alias;\n\t\t// Copy of the full string this token was created from\n\t\tthis.length = (matchedStr || '').length | 0;\n\t}\n\n\t/**\n\t * A token stream is an array of strings and {@link Token Token} objects.\n\t *\n\t * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n\t * them.\n\t *\n\t * 1. No adjacent strings.\n\t * 2. No empty strings.\n\t *\n\t *    The only exception here is the token stream that only contains the empty string and nothing else.\n\t *\n\t * @typedef {Array<string | Token>} TokenStream\n\t * @global\n\t * @public\n\t */\n\n\t/**\n\t * Converts the given token or token stream to an HTML representation.\n\t *\n\t * The following hooks will be run:\n\t * 1. `wrap`: On each {@link Token}.\n\t *\n\t * @param {string | Token | TokenStream} o The token or token stream to be converted.\n\t * @param {string} language The name of current language.\n\t * @returns {string} The HTML representation of the token or token stream.\n\t * @memberof Token\n\t * @static\n\t */\n\tToken.stringify = function stringify(o, language) {\n\t\tif (typeof o == 'string') {\n\t\t\treturn o;\n\t\t}\n\t\tif (Array.isArray(o)) {\n\t\t\tvar s = '';\n\t\t\to.forEach(function (e) {\n\t\t\t\ts += stringify(e, language);\n\t\t\t});\n\t\t\treturn s;\n\t\t}\n\n\t\tvar env = {\n\t\t\ttype: o.type,\n\t\t\tcontent: stringify(o.content, language),\n\t\t\ttag: 'span',\n\t\t\tclasses: ['token', o.type],\n\t\t\tattributes: {},\n\t\t\tlanguage: language\n\t\t};\n\n\t\tvar aliases = o.alias;\n\t\tif (aliases) {\n\t\t\tif (Array.isArray(aliases)) {\n\t\t\t\tArray.prototype.push.apply(env.classes, aliases);\n\t\t\t} else {\n\t\t\t\tenv.classes.push(aliases);\n\t\t\t}\n\t\t}\n\n\t\t_.hooks.run('wrap', env);\n\n\t\tvar attributes = '';\n\t\tfor (var name in env.attributes) {\n\t\t\tattributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '&quot;') + '\"';\n\t\t}\n\n\t\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n\t};\n\n\t/**\n\t * @param {RegExp} pattern\n\t * @param {number} pos\n\t * @param {string} text\n\t * @param {boolean} lookbehind\n\t * @returns {RegExpExecArray | null}\n\t */\n\tfunction matchPattern(pattern, pos, text, lookbehind) {\n\t\tpattern.lastIndex = pos;\n\t\tvar match = pattern.exec(text);\n\t\tif (match && lookbehind && match[1]) {\n\t\t\t// change the match to remove the text matched by the Prism lookbehind group\n\t\t\tvar lookbehindLength = match[1].length;\n\t\t\tmatch.index += lookbehindLength;\n\t\t\tmatch[0] = match[0].slice(lookbehindLength);\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t * @param {string} text\n\t * @param {LinkedList<string | Token>} tokenList\n\t * @param {any} grammar\n\t * @param {LinkedListNode<string | Token>} startNode\n\t * @param {number} startPos\n\t * @param {RematchOptions} [rematch]\n\t * @returns {void}\n\t * @private\n\t *\n\t * @typedef RematchOptions\n\t * @property {string} cause\n\t * @property {number} reach\n\t */\n\tfunction matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n\t\tfor (var token in grammar) {\n\t\t\tif (!grammar.hasOwnProperty(token) || !grammar[token]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar patterns = grammar[token];\n\t\t\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\n\n\t\t\tfor (var j = 0; j < patterns.length; ++j) {\n\t\t\t\tif (rematch && rematch.cause == token + ',' + j) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar patternObj = patterns[j];\n\t\t\t\tvar inside = patternObj.inside;\n\t\t\t\tvar lookbehind = !!patternObj.lookbehind;\n\t\t\t\tvar greedy = !!patternObj.greedy;\n\t\t\t\tvar alias = patternObj.alias;\n\n\t\t\t\tif (greedy && !patternObj.pattern.global) {\n\t\t\t\t\t// Without the global flag, lastIndex won't work\n\t\t\t\t\tvar flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n\t\t\t\t\tpatternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n\t\t\t\t}\n\n\t\t\t\t/** @type {RegExp} */\n\t\t\t\tvar pattern = patternObj.pattern || patternObj;\n\n\t\t\t\tfor ( // iterate the token list and keep track of the current token/string position\n\t\t\t\t\tvar currentNode = startNode.next, pos = startPos;\n\t\t\t\t\tcurrentNode !== tokenList.tail;\n\t\t\t\t\tpos += currentNode.value.length, currentNode = currentNode.next\n\t\t\t\t) {\n\n\t\t\t\t\tif (rematch && pos >= rematch.reach) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar str = currentNode.value;\n\n\t\t\t\t\tif (tokenList.length > text.length) {\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeCount = 1; // this is the to parameter of removeBetween\n\t\t\t\t\tvar match;\n\n\t\t\t\t\tif (greedy) {\n\t\t\t\t\t\tmatch = matchPattern(pattern, pos, text, lookbehind);\n\t\t\t\t\t\tif (!match || match.index >= text.length) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar from = match.index;\n\t\t\t\t\t\tvar to = match.index + match[0].length;\n\t\t\t\t\t\tvar p = pos;\n\n\t\t\t\t\t\t// find the node that contains the match\n\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\twhile (from >= p) {\n\t\t\t\t\t\t\tcurrentNode = currentNode.next;\n\t\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// adjust pos (and p)\n\t\t\t\t\t\tp -= currentNode.value.length;\n\t\t\t\t\t\tpos = p;\n\n\t\t\t\t\t\t// the current node is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\t\tif (currentNode.value instanceof Token) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// find the last node which is affected by this match\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tvar k = currentNode;\n\t\t\t\t\t\t\tk !== tokenList.tail && (p < to || typeof k.value === 'string');\n\t\t\t\t\t\t\tk = k.next\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveCount++;\n\t\t\t\t\t\t\tp += k.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tremoveCount--;\n\n\t\t\t\t\t\t// replace with the new match\n\t\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatch = matchPattern(pattern, 0, str, lookbehind);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// eslint-disable-next-line no-redeclare\n\t\t\t\t\tvar from = match.index;\n\t\t\t\t\tvar matchStr = match[0];\n\t\t\t\t\tvar before = str.slice(0, from);\n\t\t\t\t\tvar after = str.slice(from + matchStr.length);\n\n\t\t\t\t\tvar reach = pos + str.length;\n\t\t\t\t\tif (rematch && reach > rematch.reach) {\n\t\t\t\t\t\trematch.reach = reach;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeFrom = currentNode.prev;\n\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\tremoveFrom = addAfter(tokenList, removeFrom, before);\n\t\t\t\t\t\tpos += before.length;\n\t\t\t\t\t}\n\n\t\t\t\t\tremoveRange(tokenList, removeFrom, removeCount);\n\n\t\t\t\t\tvar wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n\t\t\t\t\tcurrentNode = addAfter(tokenList, removeFrom, wrapped);\n\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\taddAfter(tokenList, currentNode, after);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (removeCount > 1) {\n\t\t\t\t\t\t// at least one Token object was removed, so we have to do some rematching\n\t\t\t\t\t\t// this can only happen if the current pattern is greedy\n\n\t\t\t\t\t\t/** @type {RematchOptions} */\n\t\t\t\t\t\tvar nestedRematch = {\n\t\t\t\t\t\t\tcause: token + ',' + j,\n\t\t\t\t\t\t\treach: reach\n\t\t\t\t\t\t};\n\t\t\t\t\t\tmatchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n\n\t\t\t\t\t\t// the reach might have been extended because of the rematching\n\t\t\t\t\t\tif (rematch && nestedRematch.reach > rematch.reach) {\n\t\t\t\t\t\t\trematch.reach = nestedRematch.reach;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @typedef LinkedListNode\n\t * @property {T} value\n\t * @property {LinkedListNode<T> | null} prev The previous node.\n\t * @property {LinkedListNode<T> | null} next The next node.\n\t * @template T\n\t * @private\n\t */\n\n\t/**\n\t * @template T\n\t * @private\n\t */\n\tfunction LinkedList() {\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar head = { value: null, prev: null, next: null };\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar tail = { value: null, prev: head, next: null };\n\t\thead.next = tail;\n\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.head = head;\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.tail = tail;\n\t\tthis.length = 0;\n\t}\n\n\t/**\n\t * Adds a new node with the given value to the list.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {T} value\n\t * @returns {LinkedListNode<T>} The added node.\n\t * @template T\n\t */\n\tfunction addAfter(list, node, value) {\n\t\t// assumes that node != list.tail && values.length >= 0\n\t\tvar next = node.next;\n\n\t\tvar newNode = { value: value, prev: node, next: next };\n\t\tnode.next = newNode;\n\t\tnext.prev = newNode;\n\t\tlist.length++;\n\n\t\treturn newNode;\n\t}\n\t/**\n\t * Removes `count` nodes after the given node. The given node will not be removed.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {number} count\n\t * @template T\n\t */\n\tfunction removeRange(list, node, count) {\n\t\tvar next = node.next;\n\t\tfor (var i = 0; i < count && next !== list.tail; i++) {\n\t\t\tnext = next.next;\n\t\t}\n\t\tnode.next = next;\n\t\tnext.prev = node;\n\t\tlist.length -= i;\n\t}\n\t/**\n\t * @param {LinkedList<T>} list\n\t * @returns {T[]}\n\t * @template T\n\t */\n\tfunction toArray(list) {\n\t\tvar array = [];\n\t\tvar node = list.head.next;\n\t\twhile (node !== list.tail) {\n\t\t\tarray.push(node.value);\n\t\t\tnode = node.next;\n\t\t}\n\t\treturn array;\n\t}\n\n\n\tif (!_self.document) {\n\t\tif (!_self.addEventListener) {\n\t\t\t// in Node.js\n\t\t\treturn _;\n\t\t}\n\n\t\tif (!_.disableWorkerMessageHandler) {\n\t\t\t// In worker\n\t\t\t_self.addEventListener('message', function (evt) {\n\t\t\t\tvar message = JSON.parse(evt.data);\n\t\t\t\tvar lang = message.language;\n\t\t\t\tvar code = message.code;\n\t\t\t\tvar immediateClose = message.immediateClose;\n\n\t\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\t\tif (immediateClose) {\n\t\t\t\t\t_self.close();\n\t\t\t\t}\n\t\t\t}, false);\n\t\t}\n\n\t\treturn _;\n\t}\n\n\t// Get current script and highlight\n\tvar script = _.util.currentScript();\n\n\tif (script) {\n\t\t_.filename = script.src;\n\n\t\tif (script.hasAttribute('data-manual')) {\n\t\t\t_.manual = true;\n\t\t}\n\t}\n\n\tfunction highlightAutomaticallyCallback() {\n\t\tif (!_.manual) {\n\t\t\t_.highlightAll();\n\t\t}\n\t}\n\n\tif (!_.manual) {\n\t\t// If the document state is \"loading\", then we'll use DOMContentLoaded.\n\t\t// If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n\t\t// DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n\t\t// might take longer one animation frame to execute which can create a race condition where only some plugins have\n\t\t// been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n\t\t// See https://github.com/PrismJS/prism/issues/2102\n\t\tvar readyState = document.readyState;\n\t\tif (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n\t\t\tdocument.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n\t\t} else {\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(highlightAutomaticallyCallback);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(highlightAutomaticallyCallback, 16);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn _;\n\n}(_self));\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n// some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n */\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n */\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n","/**\n * @license React\n * scheduler.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';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n  module.exports = require('./cjs/scheduler.development.js');\n}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param  {String}      style      - The inline style.\n * @param  {Function}    [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n  var output = null;\n  if (!style || typeof style !== 'string') {\n    return output;\n  }\n\n  var declaration;\n  var declarations = parse(style);\n  var hasIterator = typeof iterator === 'function';\n  var property;\n  var value;\n\n  for (var i = 0, len = declarations.length; i < len; i++) {\n    declaration = declarations[i];\n    property = declaration.property;\n    value = declaration.value;\n\n    if (hasIterator) {\n      iterator(property, value, declaration);\n    } else if (value) {\n      output || (output = {});\n      output[property] = value;\n    }\n  }\n\n  return output;\n}\n\nmodule.exports = StyleToObject;\n","module.exports = extend\n\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}\n","function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\nfunction _createSuper(Derived) {\n  var hasNativeReflectConstruct = isNativeReflectConstruct();\n  return function _createSuperInternal() {\n    var Super = getPrototypeOf(Derived),\n      result;\n    if (hasNativeReflectConstruct) {\n      var NewTarget = getPrototypeOf(this).constructor;\n      result = Reflect.construct(Super, arguments, NewTarget);\n    } else {\n      result = Super.apply(this, arguments);\n    }\n    return possibleConstructorReturn(this, result);\n  };\n}\nmodule.exports = _createSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var superPropBase = require(\"./superPropBase.js\");\nfunction _get() {\n  if (typeof Reflect !== \"undefined\" && Reflect.get) {\n    module.exports = _get = Reflect.get.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  } else {\n    module.exports = _get = function _get(target, property, receiver) {\n      var base = superPropBase(target, property);\n      if (!base) return;\n      var desc = Object.getOwnPropertyDescriptor(base, property);\n      if (desc.get) {\n        return desc.get.call(arguments.length < 3 ? target : receiver);\n      }\n      return desc.value;\n    }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  }\n  return _get.apply(this, arguments);\n}\nmodule.exports = _get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n  module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  Object.defineProperty(subClass, \"prototype\", {\n    writable: false\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n  try {\n    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  } else if (call !== void 0) {\n    throw new TypeError(\"Derived constructors may only return object or undefined\");\n  }\n  return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n  module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nfunction _superPropBase(object, property) {\n  while (!Object.prototype.hasOwnProperty.call(object, property)) {\n    object = getPrototypeOf(object);\n    if (object === null) break;\n  }\n  return object;\n}\nmodule.exports = _superPropBase, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export default function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    enumerableOnly && (symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    })), keys.push.apply(keys, symbols);\n  }\n  return keys;\n}\nexport default function _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = null != arguments[i] ? arguments[i] : {};\n    i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n      defineProperty(target, key, source[key]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n    });\n  }\n  return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n  return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n  return target;\n}","export default function _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n  return arr2;\n}","export default function _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n  var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n  if (_i == null) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _s, _e;\n  try {\n    for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n  return _arr;\n}","\nconst data = {\n  \"categories\": [\n  {\n    \"title\": \"Proxmox VE Tools\",\n  }, {\n    \"title\": \"Home Assistant\",\n  }, {\n    \"title\": \"Automation\",\n  }, {\n    \"title\": \"MQTT\",\n  }, {\n    \"title\": \"Database\",\n  }, {\n    \"title\": \"Zigbee - Zwave\",\n  }, {\n    \"title\": \"Monitoring - Analytics\",\n  }, {\n    \"title\": \"Docker - Kubernetes\",\n  }, {\n    \"title\": \"Operating System\",\n  }, {\n    \"title\": \"TurnKey\",\n  }, {\n    \"title\": \"Server - Networking\",\n  }, {\n    \"title\": \"Media - Photo\",\n  }, {\n    \"title\": \"Ad Blocker - DNS\",\n  }, {\n    \"title\": \"Document - Notes\",\n  }, {\n    \"title\": \"Dashboards\",\n  }, {\n    \"title\": \"File - Code\",\n  }, {\n    \"title\": \"Miscellaneous\",\n  }],\n  \"items\": [\n  {\n    \"category\": \"Proxmox VE Tools\",\n    \"title\": \"Proxmox VE Post Install\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/proxmoxve/icon.png?raw=true\" height=\"100\"/></p>\n   \n  <h1 align=\"center\" id=\"heading\"> Proxmox VE Post Install </h1>\n  \n  This script provides options for managing Proxmox VE repositories, including disabling the Enterprise Repo, adding or correcting PVE sources, enabling the No-Subscription Repo, adding the test Repo, disabling the subscription nag, updating Proxmox VE, and rebooting the system.\n    \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)\"\n  ~~~\n  \n  It is recommended to answer “yes” (y) to all options presented during the process.`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE Kernel Clean\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/proxmoxve/icon.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Proxmox VE Kernel Clean </h1>\n  Cleaning unused kernel images is beneficial for reducing the length of the GRUB menu and freeing up disk space. By removing old, unused kernels, the system is able to conserve disk space and streamline the boot process.\n      \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/kernel-clean.sh)\"\n  ~~~`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE Processor Microcode\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/processor.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Proxmox VE Processor Microcode </h1>\n  <h3 align=\"center\"> For Intel or AMD Processors </h3>\n  \n  Processor Microcode is a layer of low-level software that runs on the processor and provides patches or updates to its firmware. Microcode updates can fix hardware bugs, improve performance, and enhance security features of the processor.\n\n  It's important to note that the availability of firmware update mechanisms, such as Intel's Management Engine (ME) or AMD's Platform Security Processor (PSP), may vary depending on the processor and its specific implementation. Therefore, it's recommended to consult the documentation for your processor to confirm whether firmware updates can be applied through the operating system.  \n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/microcode.sh)\"\n  ~~~\n  \n\n  After a reboot, you can check whether any microcode updates are currently in effect by running the following command.\n\n  ~~~bash\n  journalctl -k | grep -E \"microcode\" | head -n 1\n  ~~~`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE CPU Scaling Governor\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/cpu.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Proxmox VE CPU Scaling Governor </h1>\n\n  The CPU scaling governor determines how the CPU frequency is adjusted based on the workload, with the goal of either conserving power or improving performance. By scaling the frequency up or down, the operating system can optimize the CPU usage and conserve energy when possible. [Generic Scaling Governors](https://www.kernel.org/doc/html/latest/admin-guide/pm/cpufreq.html?#generic-scaling-governors)\n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/scaling-governor.sh)\"\n  ~~~`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE LXC Cleaner\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/lxc.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Proxmox VE LXC Cleaner </h1>\n  This script provides options to delete logs and cache, and repopulate apt lists for Ubuntu and Debian systems.\n   \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/clean-lxcs.sh)\"\n  ~~~`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE LXC Updater\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/lxc.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Proxmox VE LXC Updater </h1>\n  This script has been created to simplify and speed up the process of updating all LXC containers across various Linux distributions, such as Ubuntu, Debian, Devuan, Alpine Linux, CentOS-Rocky-Alma, Fedora, and ArchLinux. It's designed to automatically skip templates and specific containers during the update, enhancing its convenience and usability.<br> \n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/update-lxcs.sh)\"\n  ~~~`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE Cron LXC Updater\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/lxc.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Proxmox VE Cron LXC Updater </h1>\n  This script will add/remove a crontab schedule that updates all LXCs every Sunday at midnight.<br> \n  \n  To exclude LXCs from updating, edit crontab (<code class=\"highlighter-rouge\">crontab -e</code>) and add CTID as shown in the example (-s 103 111)\n\n  example: <code class=\"highlighter-rouge\">0 0 * * 0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/update-lxcs-cron.sh)\" -s 103 111 >>/var/log/update-lxcs-cron.log 2>/dev/null</code>\n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/cron-update-lxcs.sh)\"\n  ~~~`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE Monitor-All\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/monitor.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Proxmox VE Monitor-All </h1>\n  This script will add Monitor-All to Proxmox VE, which will monitor the status of all your instances, both containers and virtual machines, excluding templates and user-defined ones, and automatically restart or reset them if they become unresponsive. This is particularly useful if you're experiencing problems with Home Assistant becoming non-responsive every few days/weeks. Monitor-All also maintains a log of the entire process, which can be helpful for troubleshooting and monitoring purposes.<br>\n  \n  🛈 Virtual machines without the QEMU guest agent installed must be excluded. <br>\n  🛈 Prior to generating any new CT/VM not found in this repository, it's necessary to halt Proxmox VE Monitor-All by running <code class=\"highlighter-rouge\">systemctl stop ping-instances</code>. <br>\n  \n  All commands are run from the <b>Proxmox VE shell.</b>.\n  \n  <b>To add or remove Monitor-All in Proxmox VE:</b>\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/monitor-all.sh)\"\n  ~~~\n  <br>\n  <br>\n  To make setup changes, first stop the service: <code class=\"highlighter-rouge\">systemctl stop ping-instances</code>\n\n  To edit pause time: \n  ~~~bash\n  nano /usr/local/bin/ping-instances.sh\n  ~~~\n\n  To add excluded instances:\n  ~~~bash\n  nano /etc/systemd/system/ping-instances.service\n  ~~~\n  \n  After changes have been saved, <code class=\"highlighter-rouge\">systemctl daemon-reload</code> and start the service: <code class=\"highlighter-rouge\">systemctl start ping-instances</code>\n\n  Monitor-All logs : <code class=\"highlighter-rouge\">cat /var/log/ping-instances.log</code>`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE Host Backup\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/bash-dark.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Proxmox VE Host Backup </h1>\n  This script serves as a versatile backup utility, enabling users to specify both the backup path and the directory they want to work in. This flexibility empowers users to select the specific files and directories they wish to back up, making it compatible with a wide range of hosts, not limited to Proxmox.\n   \n  Run the command below in the <b>Proxmox VE Shell</b>, or any host.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/host-backup.sh)\"\n  ~~~\n  \n  A backup is rendered ineffective when it remains stored on the host`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox VE Dark Theme\",\n    \"content\": `<p align=\"center\"><img src=\"https://camo.githubusercontent.com/f6f33a09f8c1207dfb3dc1cbd754c2f3393562c11b1c999751ad9a91a656834a/68747470733a2f2f692e696d6775722e636f6d2f536e6c437948462e706e67\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Proxmox VE Discord Dark Theme </h1>\n  \n  A dark theme for the Proxmox VE Web UI is a custom theme created by [Weilbyte](https://github.com/Weilbyte/PVEDiscordDark) that changes the look and feel of the Proxmox web-based interface to a dark color scheme. This theme can improve the visual experience and make the interface easier on the eyes, especially when used in low-light environments.\n  \n  Run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash <(curl -s https://raw.githubusercontent.com/Weilbyte/PVEDiscordDark/master/PVEDiscordDark.sh ) install\n  ~~~\n  \n  To uninstall the theme, simply run the script with the <code class=\"highlighter-rouge\">uninstall</code> command.`\n  },\n  {\n    \"category\": \"Proxmox VE Tools\",\n\n    \"title\": \"Proxmox Backup Server Post Install\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/proxmoxve/icon.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Proxmox Backup Server Post Install </h1>\n  The script will give options to Disable the Enterprise Repo, Add/Correct PBS Sources, Enable the No-Subscription Repo, Add Test Repo, Disable Subscription Nag, Update Proxmox Backup Server and Reboot PBS.\n  \n  Run the command below in the <b>Proxmox Backup Server Shell</b>. ⚠️ **Proxmox Backup Server ONLY**\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pbs-install.sh)\"\n  ~~~\n  \n  It is recommended to answer “yes” (y) to all options presented during the process.`\n  },\n  {\n    \"category\": \"Home Assistant\",\n\n    \"title\": \"Home Assistant OS VM\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/haos.png?raw=true\"/></p>\n   \n  <h1 align=\"center\" id=\"heading\"> Home Assistant OS VM </h1>\n  <h3 align=\"center\"> Option to create VM using Stable, Beta or Dev Image </h3>\n  \n  This script automates the process of creating a Virtual Machine (VM) using the official KVM (qcow2) disk image provided by the Home Assistant Team. It involves finding, downloading, and extracting the image, defining user-defined settings, importing and attaching the disk, setting the boot order, and starting the VM. It supports various storage types, and does not involve any hidden installations.\n\n  To create a new Proxmox VE Home Assistant OS VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/haos-vm.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  4GB RAM - 32GB Storage - 2vCPU - Stable Image ⚡</h3>\n  \n  🛈 The disk must have a minimum size of 32GB and its size cannot be changed during the creation of the VM.\n\n  After the script completes, click on the VM, then on the **_Summary_** tab to find the VM IP.\n  \n  **Home Assistant Interface: IP:8123**`\n  },\n  {\n    \"category\": \"Home Assistant\",\n\n    \"title\": \"PiMox HAOS VM\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/pimox.png?raw=true\" width=\"100\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\"> PiMox HAOS VM </h1>\n  \n  <h3 align=\"center\"> Option to create VM using Stable, Beta or Dev Image </h3>\n  \n  The script automates the manual process of finding, downloading and extracting the aarch64 (qcow2) disk image provided by the Home Assistant Team, creating a VM with user defined settings, importing and attaching the disk, setting the boot order and starting the VM.\n  \n  To create a new PiMox HAOS VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/pimox-haos-vm.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  4GB RAM - 32GB Storage - 2vCPU - Stable Image ⚡</h3>\n  \n  After the script completes, click on the VM, then on the **_Console_** tab to find the VM IP.\n  \n  **Home Assistant Interface: IP:8123**`\n  },\n  {\n    \"category\": \"Home Assistant\",\n\n    \"title\": \"Home Assistant Container LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/docker.svg\" height=\"100\"/>\n  <img src=\"https://avatars.githubusercontent.com/u/13844975?s=200&amp;v=4\" width=\"100\" height=\"100\"/><img src=\"https://avatars1.githubusercontent.com/u/22225832?s=400&amp;v=4\" alt=\"GitHub - portainer/portainer-docs: Portainer documentation\" width=\"100\" height=\"100\"/></p>\n    \n  <h1 align=\"center\" id=\"heading\"> Home Assistant Container LXC </h1>\n  <h3 align=\"center\"> Option to Use Fuse Overlayfs (Advanced)</h3> \n\n  A standalone container-based installation of Home Assistant Core means that the software is installed inside a Docker container, separate from the host operating system. This allows for flexibility and scalability, as well as improved security, as the container can be easily moved or isolated from other processes on the host.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Home Assistant Container LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Containers, Remove Images or Install HACS, run the command below (or type update) in the <b>LXC Console</b>.\n    \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homeassistant.sh)\"\n  ~~~\n    \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 16GB Storage - 2vCPU ⚡</h3>\n    \n  **Home Assistant Interface: IP:8123**\n    \n  **Portainer Interface: IP:9000**\n    \n  ⚙️ **Path to HA /config**\n  ~~~bash\n  /var/lib/docker/volumes/hass_config/_data\n  ~~~`\n  \n  },\n  {\n    \"category\": \"Home Assistant\",\n\n    \"title\": \"Home Assistant Core LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://avatars.githubusercontent.com/u/13844975?s=200&amp;v=4\" width=\"100\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Home Assistant Core LXC </h1>\n  \n  A standalone installation of Home Assistant Core refers to a setup where the Home Assistant Core software is installed directly on a device or operating system, without the use of containers. This provides a simpler, but less flexible and scalable solution, as the software is tightly coupled with the underlying system.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n  \n  To create a new Proxmox VE Home Assistant Core LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update, Install HACS or Filebrowser, run the command below (or type update) in the <b>LXC Console</b>. <br>\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homeassistant-core.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n\n  **Home Assistant Interface: IP:8123**\n  \n  ⚙️ **Path to HA /config**\n  ~~~bash\n  /root/.homeassistant\n  ~~~`\n  \n  },\n  {\n    \"category\": \"Home Assistant\",\n\n    \"title\": \"Podman Home Assistant Container LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/podman.svg\" height=\"100\"/>\n  <img src=\"https://avatars.githubusercontent.com/u/13844975?s=200&amp;v=4\" height=\"100\"/><img/></p>\n  <h1 align=\"center\" id=\"heading\">Podman Home Assistant Container LXC</h1>\n  \n  A standalone Podman container-based installation of Home Assistant Core means that the Home Assistant Core software is installed inside a container managed by Podman, separate from the host operating system. This provides a flexible and scalable solution for running the software, as the container can be easily moved between host systems or isolated from other processes for security. Podman is a popular open-source tool for managing containers that is similar to Docker, but designed for use on Linux systems without a daemon.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Podman Home Assistant Container LXC, run the command below in the <b>Proxmox VE Shell</b>. <br> \n  To Update Podman, Install HACS or FileBrowser, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/podman-homeassistant.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 16GB Storage - 2vCPU ⚡</h3>\n    \n  **Home Assistant Interface: IP:8123**\n    \n  ⚙️ **Path to HA /config**\n  ~~~bash\n  /var/lib/containers/storage/volumes/hass_config/_data\n  ~~~`\n\n  },\n  {\n    \"category\": \"Automation\",\n\n    \"title\": \"ioBroker LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/ioBroker/ioBroker/blob/master/img/logos/ioBroker_Logo_256px.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> ioBroker LXC </h1>\n    \n  [ioBroker](https://www.iobroker.net/#en/intro) is an open-source platform for building and managing smart home automation systems. It provides a centralized control and management interface for connected devices, sensors, and other IoT devices. ioBroker integrates with a wide range of popular smart home systems, devices, and services, making it easy to automate tasks and processes, monitor and control devices, and collect and analyze data from a variety of sources. With its flexible architecture and easy-to-use interface, ioBroker is designed to make it simple for users to build and customize their own smart home automation systems, regardless of their technical background or experience.\n  \n  To create a new Proxmox VE ioBroker LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/iobroker.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n    \n  **ioBroker Interface: IP:8081**`\n  \n  },\n  {\n    \"category\": \"Automation\",\n\n    \"title\": \"openHAB LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://www.openhab.org/openhab-logo-square.png?raw=true\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">openHAB LXC</h1>\n\n  [openHAB](https://www.openhab.org/) is a popular open-source home automation platform that provides a vendor and technology agnostic solution for integrating and automating various smart home devices and services. It supports a wide range of devices and protocols, making it easy to bring together different systems and devices into a unified smart home ecosystem. With its user-friendly interface and powerful automation capabilities, openHAB makes it easy to create custom automations and monitor and control your smart home devices and systems, all from a single interface.\n  \n  To create a new Proxmox VE openHAB LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/openhab.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n    \n  **openHAB Interface: IP:8080**`\n  \n  },\n  {\n    \"category\": \"Automation\",\n\n    \"title\": \"Homebridge LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://homebridge.io/assets/images/logo.svg\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">Homebridge LXC</h1>\n\n  [Homebridge](https://homebridge.io/) is a popular open-source software platform that enables you to integrate smart home devices and services that do not natively support Apple's HomeKit protocol into the HomeKit ecosystem. This allows you to control and automate these devices using Siri, the Home app, or other HomeKit-enabled apps, making it easy to bring together a variety of different devices into a unified smart home system. With Homebridge, you can expand the capabilities of your smart home, unlocking new possibilities for automating and controlling your devices and systems.\n\n  To create a new Proxmox VE Homebridge LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homebridge.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n    \n  **Homebridge Interface: IP:8581**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">admin</code>`\n  \n  },\n  {\n    \"category\": \"Automation\",\n\n    \"title\": \"ESPHome LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/esphome/dark_icon@2x.png?raw=true\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">ESPHome LXC</h1>\n  \n  [ESPHome](https://esphome.io/) is a platform for controlling ESP8266/ESP32-based devices using configuration files and integrating them with Home Automation systems. It provides a simple and flexible way to set up and manage the functionality of these devices, including defining and automating actions, monitoring sensors, and connecting to networks and other services. ESPHome is designed to be user-friendly and easy to use, and supports a wide range of features and integrations, making it a popular choice for home automation projects and IoT applications.\n\n  To create a new Proxmox VE ESPHome LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update ESPHome, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/esphome.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n    \n  **ESPHome Interface: IP:6052**`\n  \n  },\n  {\n    \"category\": \"Automation\",\n\n    \"title\": \"Node-Red LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/custom_integrations/nodered/icon.png?raw=true\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">Node-Red LXC</h1>\n\n  [Node-RED](https://nodered.org/) is a visual programming tool that allows developers and non-developers alike to easily wire together hardware devices, APIs, and online services to create custom applications. It provides a visual interface for building workflows, making it easy to create and modify complex integrations without having to write any code. Node-RED is used in a wide range of applications, from simple automations to complex integrations, and is known for its simplicity, versatility, and ease of use.\n\n  To create a new Proxmox VE Node-RED LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Node-Red or Install Themes run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/node-red.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n    \n  **Node-Red Interface: IP:1880**`\n    \n  },\n  {\n    \"category\": \"Automation\",\n\n    \"title\": \"n8n LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://docs.n8n.io/_images/n8n-docs-icon.svg\" height=\"70\"/></p>\n  <h1 align=\"center\" id=\"heading\">n8n LXC</h1>\n    \n  [n8n](https://n8n.io/) is a workflow automation tool that enables users to automate various tasks and processes by connecting various data sources, systems, and services. It provides a visual interface for building workflows, allowing users to easily define and automate complex sequences of actions, such as data processing, conditional branching, and API calls. n8n supports a wide range of integrations, making it a versatile tool for automating a variety of use cases, from simple data processing workflows to complex business processes. With its extendable architecture, n8n is designed to be easily customizable and can be adapted to meet the specific needs of different users and industries.\n \n  To create a new Proxmox VE n8n LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update n8n, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/n8n.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 3GB Storage - 2vCPU ⚡</h3>\n    \n  **n8n Interface: IP:5678**`\n  \n  },\n  {\n    \"category\": \"Automation\",\n\n    \"title\": \"Scrypted LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://www.scrypted.app/images/web_hi_res_512.png?raw=true\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">Scrypted LXC</h1>\n\n  <h3 align=\"center\"> Option to add Coral Edge TPU support </h3> \n  \n  [Scrypted](https://www.scrypted.app/) is a home automation platform that focuses on providing a seamless experience for managing and utilizing cameras in a smart home setup. It offers features like camera management, event triggering, video and image storage, and integration with other smart home devices and services. Scrypted is designed to make it easy to set up and use cameras in a home automation system, providing a simple and user-friendly interface for monitoring and automating camera-related tasks.\n\n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n  \n  To create a new Proxmox VE Scrypted LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/scrypted.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n    \n  **Scrypted Interface: (https)IP:10443**`\n  \n  },\n  {\n    \"category\": \"Automation\",\n\n    \"title\": \"FHEM LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://avatars.githubusercontent.com/u/45183393?s=100&v=4\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">FHEM LXC</h1>\n\n  [FHEM](https://fhem.de/) stands for \"Freundliche Hausautomation und Energie-Messung,\" which translates to \"Friendly Home Automation and Energy Measurement\" in English. The software can interface with a wide range of devices, including lighting systems, thermostats, weather stations, and media devices, among others.\n  \n  🛈 If the LXC is created Privileged, the script will automatically set up USB passthrough.\n  \n  To create a new Proxmox VE FHEM LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/fhem.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n    \n  **FHEM Interface: IP:8083**`\n  \n  },\n  {\n   \"category\": \"MQTT\",\n\n   \"title\": \"MQTT LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/eclipsemosquitto.svg\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">MQTT LXC</h1>\n  \n  [Eclipse Mosquitto](https://mosquitto.org/) is an open-source message broker that implements the MQTT (Message Queuing Telemetry Transport) protocol. It is a lightweight and simple-to-use message broker that allows IoT devices and applications to communicate with each other by exchanging messages in real-time. Mosquitto is widely used in IoT applications, due to its low resource requirements and its compatibility with a wide range of devices and platforms\n  \n  To create a new Proxmox VE MQTT LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/mqtt.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n    \n  Mosquitto comes with a password file generating utility called mosquitto_passwd.\n  ~~~bash\n  mosquitto_passwd -c /etc/mosquitto/passwd <user>\n  ~~~\n \n  Ensure that the file is managed by the appropriate user and group.\n  ~~~bash\n  chown mosquitto:mosquitto /etc/mosquitto/passwd\n  ~~~\n\n  Now restart Mosquitto server.\n  ~~~bash\n  systemctl restart mosquitto\n  ~~~`\n  \n  },\n  {\n    \"category\": \"MQTT\",\n\n    \"title\": \"EMQX LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/hassio-addons/repository/blob/master/emqx/icon.png?raw=true\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">EMQX LXC</h1>\n\n  [EMQX](https://www.emqx.io/) is an open-source MQTT broker that features a high-performance, real-time message processing engine. It is designed to handle large-scale IoT deployments, providing fast and reliable message delivery for connected devices. EMQX is known for its scalability, reliability, and low latency, making it a popular choice for IoT and M2M applications. It also offers a wide range of features and plugins for enhanced security, monitoring, and management.\n  \n  To create a new Proxmox VE EMQX LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n    bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/emqx.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  \n  **EMQX Interface: IP:18083** \n    \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n\n  **password** <code class=\"highlighter-rouge\">public</code>\n\n  ⚙️ **Setup**\n  \n  Access Control ➡ Authentication  ➡ Create ➡ Next ➡ Next ➡ Create ➡ Users ➡ Add ➡ Username / Password (to authenicate with MQTT) ➡ Save. You're now ready to enjoy a high-performance MQTT Broker.`\n  \n  },\n  {\n    \"category\": \"Database\",\n\n    \"title\": \"Mariadb LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/mariadb.svg\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">Mariadb LXC</h1>\n\n  <h3 align=\"center\"> Option to Install Adminer</h3>\n  \n  [MariaDB](https://mariadb.org/) is a fork of the popular MySQL database management system that is developed and maintained by the open-source community. It is also commercially supported, offering enterprise-level features and support for organizations that require them. MariaDB aims to maintain high compatibility with MySQL, ensuring a drop-in replacement capability.\n  \n  To create a new Proxmox VE Mariadb LXC, run the command below in the <b>Proxmox VE Shell</b>.\n    \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/mariadb.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n  \n  The subsequent step involves executing the included security script. This script modifies certain default options that are less secure. Our purpose for running it is to prevent remote root logins and eliminate unnecessary database users.  \n  Run the security script:\n  ~~~bash\n  mysql_secure_installation\n  ~~~\n  Enter current password for root (enter for none): <code class=\"highlighter-rouge\">enter</code>\n    \n  Switch to unix_socket authentication [Y/n] <code class=\"highlighter-rouge\">y</code> \n    \n  Change the root password? [Y/n] <code class=\"highlighter-rouge\">n</code> \n    \n  Remove anonymous users? [Y/n] <code class=\"highlighter-rouge\">y</code> \n    \n  Disallow root login remotely? [Y/n] <code class=\"highlighter-rouge\">y</code>  \n    \n  Remove test database and access to it? [Y/n] <code class=\"highlighter-rouge\">y</code> \n    \n  Reload privilege tables now? [Y/n] <code class=\"highlighter-rouge\">y</code>  \n  \n  We will create a new account called admin with the same capabilities as the root account, but configured for password authentication. \n  ~~~bash\n  mysql\n  ~~~ \n  Prompt will change to <code class=\"highlighter-rouge\">MariaDB [(none)]></code>\n  \n  Create a new local admin (Change the username and password to match your preferences)\n  ~~~sql\n  CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';\n  ~~~\n  Give local admin root privileges (Change the username and password to match above)\n  ~~~sql\n  GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;\n  ~~~\n  \n  Now, we'll give the user admin root privileges and password-based access that can connect from anywhere on your local area network (LAN), which has addresses in the subnet 192.168.100.0/24. This is an improvement because opening a MariaDB server up to the Internet and granting access to all hosts is bad practice.. Change the **_username_**, **_password_** and **_subnet_** to match your preferences:\n  ~~~sql\n  GRANT ALL ON *.* TO 'admin'@'192.168.100.%' IDENTIFIED BY 'password' WITH GRANT OPTION;\n  ~~~\n  Flush the privileges to ensure that they are saved and available in the current session:\n  ~~~sql\n  FLUSH PRIVILEGES;\n  ~~~\n  command below this, exit the MariaDB shell:\n  ~~~bash\n  exit\n  ~~~\n  Log in as the new database user you just created:\n  ~~~bash\n  mysql -u admin -p\n  ~~~\n  Create a new database:\n  ~~~sql\n  CREATE DATABASE homeassistant;\n  ~~~\n  command below this, exit the MariaDB shell:\n  ~~~bash\n  exit\n  ~~~\n  ⚠️ Reboot the lxc \n  \n  Checking status.\n  ~~~bash\n  systemctl status mariadb\n  ~~~ \n  Change the recorder: <code class=\"highlighter-rouge\">db_url:</code> in your HA configuration.yaml\n    \n  Example:\n  ~~~bash\n  recorder:\n    db_url: mysql://admin:password@192.168.100.26:3306/homeassistant?charset=utf8mb4\n  ~~~\n    \n  ⚙️ [**Adminer**](https://www.adminer.org/) is a full-featured database management tool\n    \n  **Adminer Interface: IP/adminer/**`\n  },\n  {\n    \"category\": \"Database\",\n\n    \"title\": \"PostgreSQL LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/postgresql.svg\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">PostgreSQL LXC</h1>\n  <h3 align=\"center\"> Option to Install Adminer</h3>\n  \n  [PostgreSQL](https://www.postgresql.org/) (often referred to as Postgres) is an open-source relational database management system that is known for its extensibility and strict adherence to SQL standards. It is a free and powerful database solution, suitable for a wide range of applications, from small projects to large enterprise systems. PostgreSQL is widely used for its reliability, feature-richness, and robustness.\n  \n  To create a new Proxmox VE PostgreSQL LXC, run the command below in the <b>Proxmox VE Shell</b>.\n    \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/postgresql.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n  \n  To make sure our PostgreSQL is secured with a strong password, set a password for its system user and then change the default database admin user account\n  \n  Change user password\n  ~~~bash\n  passwd postgres\n  ~~~\n  Login using Postgres system account\n    \n  ~~~bash\n  su - postgres\n  ~~~\n  Now, change the Admin database password \n  ~~~bash\n  psql -c \"ALTER USER postgres WITH PASSWORD 'your-password';\"\n  ~~~\n  Create a new user.\n  ~~~bash\n  psql\n  ~~~\n  ~~~sql\n  CREATE USER admin WITH PASSWORD 'your-password';\n  ~~~\n  Create a new database:\n  ~~~sql\n  CREATE DATABASE homeassistant;\n  ~~~\n  Grant all rights or privileges on created database to the user\n  ~~~sql\n  GRANT ALL ON DATABASE homeassistant TO admin;\n  ~~~\n  To exit psql\n  ~~~bash\n  \\\\q\n  ~~~ \n  Then type exit to get back to root\n  \n  Change the recorder: <code class=\"highlighter-rouge\">db_url:</code> in your HA configuration.yaml\n    \n  Example:\n  ~~~bash\n  recorder:\n    db_url: postgresql://admin:your-password@192.168.100.20:5432/homeassistant?client_encoding=utf8\n  ~~~\n\n  ⚙️ [**Adminer**](https://www.adminer.org/) is a full-featured database management tool\n    \n  **Adminer Interface: IP/adminer/**`\n  },\n  {\n    \"category\": \"Database\",\n\n    \"title\": \"InfluxDB LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/influx.svg\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">InfluxDB LXC</h1>\n  <h3 align=\"center\"> Options to Install InfluxDB v1 or v2 and Telegraf</h3>\n  * Choosing InfluxDB v1 will result in Chronograf being installed automatically.\n  \n  [InfluxDB](https://www.influxdata.com/) is designed to handle high write and query loads, and is optimized for storing and analyzing time-stamped data, such as metrics, events, and logs. InfluxDB supports SQL-like query language and has a built-in HTTP API for data ingestion and retrieval. It's commonly used for IoT and industrial applications where time-series data is involved.\n  \n  [Telegraf](https://www.influxdata.com/time-series-platform/telegraf/) is a server agent that collects, processes, and aggregates metrics and events data from different sources, such as systems, databases, and APIs, and outputs the data to various outputs, such as InfluxDB, Prometheus, Elasticsearch, and many others.\n  \n  To create a new Proxmox VE InfluxDB LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n    bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/influxdb.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n\n InfluxDB V1 (Chronograf) Interface: IP:8888\n\n InfluxDB V2 Interface: IP:8086\n\n ⚙️ **InfluxDB Configuration**\n  \n  ~~~yaml\n  nano /etc/influxdb/influxdb.conf\n  ~~~\n  \n ⚙️ **Telegraf Configuration**\n  \n  ~~~yaml\n  nano /etc/telegraf/telegraf.conf\n  ~~~`\n  \n  },\n  {\n    \"category\": \"Zigbee - Zwave\",\n\n    \"title\": \"Zigbee2MQTT LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/Koenkk/zigbee2mqtt/blob/master/images/logo_bee_only.png?raw=true\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\">Zigbee2MQTT LXC</h1>\n\n  <h3 align=\"center\"> Option to switch to Edge/dev branch</h3>\n  \n  [Zigbee2MQTT](https://www.zigbee2mqtt.io/) is an open-source software project that allows you to use Zigbee-based smart home devices (such as those sold under the Philips Hue and Ikea Tradfri brands) with MQTT-based home automation systems, like Home Assistant, Node-RED, and others. The software acts as a bridge between your Zigbee devices and MQTT, allowing you to control and monitor these devices from your home automation system.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Zigbee2MQTT LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Zigbee2MQTT, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/zigbee2mqtt.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n  As an alternative option, you can use Alpine Linux and the Zigbee2MQTT package to create a Zigbee2MQTT LXC container with faster creation time and minimal system resource usage. <br>\n\n  To create a new Proxmox VE Alpine-Zigbee2MQTT LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  ~~~bash\n  bash -c \"$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-zigbee2mqtt.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  256MiB RAM - 300MiB Storage - 1vCPU ⚡</h3>\n\n  ⚙️ **Determine the location of your adapter**\n    \n  ~~~bash\n  ls -l /dev/serial/by-id\n  ~~~\n  Example Output: <code class=\"highlighter-rouge\">lrwxrwxrwx 1 root root 13 Jun 19 17:30 usb-1a86_USB_Serial-if00-port0 -> ../../ttyUSB0</code>\n  \n  \n  ⚙️ ⚠️ **Before you start Zigbee2MQTT you need to edit the [configuration.yaml](https://www.zigbee2mqtt.io/guide/configuration/)**\n\n  Debian<br>\n  ~~~bash\n  nano /opt/zigbee2mqtt/data/configuration.yaml\n  ~~~\n  Alpine<br>\n  ~~~bash\n  nano /etc/zigbee2mqtt/configuration.yaml\n  ~~~\n\n  Save and exit the editor with “Ctrl+O”, “Enter” and “Ctrl+X”\n  \n  Example:\n  ~~~yaml\n  frontend:\n    port: 9442\n  homeassistant: true\n  permit_join: false\n  mqtt:\n    base_topic: zigbee2mqtt\n    server: 'mqtt://192.168.86.224:1883'\n    user: usr\n    password: pwd\n    keepalive: 60\n    reject_unauthorized: true\n    version: 4\n  serial:\n    port: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0\n    #adapter: deconz\t#(uncomment for ConBee II)\n    #adapter: ezsp    #(uncomment for ITead Sonoff Zigbee 3.0 USB Dongle Plus V2 model \"ZBDongle-E version\")\n  advanced:\n    pan_id: GENERATE\n    network_key: GENERATE\n    channel: 20\n  ~~~\n  ⚙️ **Zigbee2MQTT can be started after completing the configuration**\n\n  Debian<br>  \n  ~~~bash\n  cd /opt/zigbee2mqtt && npm start\n  ~~~\n  Alpine<br>  \n  ~~~bash\n  rc-update add zigbee2mqtt default\n  ~~~`\n\n  },\n  {\n    \"category\": \"Zigbee - Zwave\",\n\n    \"title\": \"deCONZ LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://phoscon.de/img/phoscon-logo128x.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> deCONZ LXC </h1>\n  \n  [deCONZ](https://www.phoscon.de/en/conbee2/software#deconz) is a software for managing and controlling Zigbee-based smart home devices. It allows for setting up, configuring and visualizing the status of connected devices, as well as for triggering actions and automations. It works as a bridge between the Zigbee network and other home automation systems and can be used as a standalone solution or integrated into existing setups.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE deCONZ LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n    bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/deconz.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **deCONZ Interface: IP:80**`\n  \n  },\n  {\n    \"category\": \"Zigbee - Zwave\",\n\n    \"title\": \"Z-Wave JS UI LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/zwave.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Z-Wave JS UI LXC </h1>\n  \n  [Z-Wave JS UI](https://github.com/zwave-js/zwave-js-ui#) is an open-source software that serves as a gateway between Z-Wave devices and MQTT (Message Queuing Telemetry Transport) protocol, allowing users to control and monitor their Z-Wave devices via a user interface. The software provides a configurable platform to manage Z-Wave networks and integrate with other smart home systems through MQTT.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n  \n  To create a new Proxmox VE Z-Wave JS UI LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Z-Wave JS UI, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/zwave-js-ui.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Z-Wave JS UI Interface: IP:8091**`\n  \n  },\n  {\n    \"category\": \"Monitoring - Analytics\",\n\n    \"title\": \"Uptime Kuma LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/louislam/uptime-kuma/blob/master/public/icon.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Uptime Kuma LXC </h1>\n  \n  [Uptime Kuma](https://github.com/louislam/uptime-kuma#uptime-kuma) is a monitoring and alerting system that tracks the availability and performance of servers, websites, and other internet-connected devices. It can be self-hosted and is open-source, offering a visually appealing interface for monitoring and receiving notifications about downtime events.\n  \n  To create a new Proxmox VE Uptime Kuma LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Uptime Kuma, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/uptimekuma.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **Uptime Kuma Interface: IP:3001**`\n  \n  },\n  {\n    \"category\": \"Monitoring - Analytics\",\n\n    \"title\": \"Pi.Alert LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/leiweibau/Pi.Alert/main/front/img/favicons/glass_black_white.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Pi.Alert LXC </h1>\n  \n  [Pi.Alert](https://github.com/leiweibau/Pi.Alert/) is a WIFI / LAN intruder detector. Checks the devices connected and alert you with unknown devices. It also warns of the disconnection of \"always connected\" devices.\n  \n  To create a new Proxmox VE Pi.Alert LXC, run the command below in the <b>Proxmox VE Shell</b>.<br>\n  To Update Pi.Alert, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/pialert.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 3GB Storage - 1vCPU ⚡</h3>\n  \n  **Pi.Alert Interface: IP/pialert/**`\n  \n  },\n  {\n    \"category\": \"Monitoring - Analytics\",\n\n    \"title\": \"OpenObserve LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/tteck/Proxmox/main/misc/images/openobsecure.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> OpenObserve LXC </h1>\n  \n  [OpenObserve](https://openobserve.ai/) is a simple yet sophisticated log search, infrastructure monitoring, and APM solution.\n  \n  To create a new Proxmox VE OpenObserve LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update OpenObserve, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/openobserve.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 3GB Storage - 1vCPU ⚡</h3>\n  \n  **Credentials:** <code class=\"highlighter-rouge\">cat /opt/openobserve/data/.env</code>\n\n  **OpenObserve Interface: IP:5080**`\n  \n  },\n  {\n    \"category\": \"Monitoring - Analytics\",\n  \n    \"title\": \"Change Detection LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/dgtlmoon/changedetection.io/blob/master/changedetectionio/static/images/avatar-256x256.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Change Detection LXC </h1>\n  \n  [Change Detection](https://changedetection.io/) is a service that allows you to monitor changes to web pages and receive notifications when changes occur. It can be used for a variety of purposes such as keeping track of online price changes, monitoring news websites for updates, or tracking changes to online forums.\n\n  To create a new Proxmox VE Change Detection LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Change Detection, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/changedetection.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **Change Detection Interface: IP:5000**`\n  \n  \n  },\n  {\n    \"category\": \"Monitoring - Analytics\",\n\n    \"title\": \"Prometheus LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/prometheus.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Prometheus LXC </h1>\n  \n  [Prometheus](https://prometheus.io/) is widely used to monitor the performance and health of various infrastructure components and applications, and trigger alerts based on predefined rules. It has a multi-dimensional data model and supports various data sources and exporters, making it an extremely flexible and scalable monitoring solution.\n  \n  To create a new Proxmox VE Prometheus LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/prometheus.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n  \n  **Prometheus Interface: IP:9090**`\n  \n  },\n  {\n    \"category\": \"Monitoring - Analytics\",\n\n    \"title\": \"Grafana LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fdocs.checkmk.com%2Flatest%2Fimages%2Fgrafana_logo.png&f=1&nofb=1\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Grafana LXC </h1>\n  \n  [Grafana](https://grafana.com/) is a data visualization and monitoring platform that enables users to query, visualize, alert on and understand metrics, logs, and other data sources. It integrates with various data sources, including Prometheus, InfluxDB, Elasticsearch, and many others, to present a unified view of the data and enable users to create insightful and interactive dashboards.\n  \n  To create a new Proxmox VE Grafana LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/grafana.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n  As an alternative option, you can use Alpine Linux and the Grafana package to create a Grafana LXC container with faster creation time and minimal system resource usage. <br>\n  \n  To create a new Proxmox VE Alpine-Grafana LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  ~~~bash\n  bash -c \"$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-grafana.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  256Mib RAM - 500MiB Storage - 1vCPU ⚡</h3>\n\n  **Grafana Interface: IP:3000**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">admin</code>`\n  \n  },\n  {\n    \"category\": \"Docker - Kubernetes\",\n\n    \"title\": \"Docker LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/docker.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Docker LXC </h1>\n  <h3 align=\"center\"> Options to Install Portainer and/or Docker Compose V2 (Fuse Overlayfs is in \"Advanced\")</h3>\n  \n  [Docker](https://www.docker.com/) is an open-source project for automating the deployment of applications as portable, self-sufficient containers.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Docker LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/docker.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  As an alternative option, you can use Alpine Linux and the Docker package to create a Docker LXC container with faster creation time and minimal system resource usage. <br>\n  \n  To create a new Proxmox VE Alpine-Docker LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  ~~~bash\n  bash -c \"$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-docker.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 2GB Storage - 1vCPU ⚡</h3>\n\n  **⚠ Run Compose V2 by replacing the hyphen (-) with a space, using docker compose, instead of docker-compose.**\n  \n  **Portainer Interface: IP:9443**`\n\n  },\n    {\n    \"category\": \"Docker - Kubernetes\",\n\n    \"title\": \"Dockge LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/louislam/dockge/master/frontend/public/icon.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Dockge LXC </h1>\n  <h3 align=\"center\"> Options to add Immich and/or Home Assistant </h3>\n  \n  [Dockge](https://github.com/louislam/dockge) is a fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Dockge LXC, run the command below in the <b>Proxmox VE Shell</b>.\n\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/dockge.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 18GB Storage - 2vCPU ⚡</h3>\n  \n  **Dockge Interface: IP:5001**\n\n  To update Dockge\n  ~~~bash\n  cd /opt/dockge\n  docker compose pull\n  docker compose up -d\n  ~~~`\n  },\n  {\n    \"category\": \"Docker - Kubernetes\",\n\n    \"title\": \"Umbrel LXC\",\n  \n    \"content\": `<p align=\"center\"><img src=\"https://uploads-ssl.webflow.com/62966b49981ba146f4842f45/62966b49981ba15b44842fe4_umbrel-logo-compact-purple.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Umbrel LXC </h1>\n  \n  [Umbrel](https://umbrel.com/) is an open-source project that provides a secure and easy-to-use software solution for hosting your own personal server, enabling you to have full control over your data and online services. The OS provides a comprehensive web interface and pre-configured applications for various tasks, making self-hosting accessible for non-technical users.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Umbrel LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/umbrel.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Umbrel Interface: IP** (a reboot is required before app installs)`\n  \n  },\n  {\n    \"category\": \"Docker - Kubernetes\",\n\n    \"title\": \"CasaOS LXC\",\n  \n    \"content\": `<p align=\"center\"><img src=\"https://www.casaos.io/images/casa_9c491a0f.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> CasaOS LXC </h1>\n  \n  [CasaOS](https://www.casaos.io/) is a software that aims to make it easy for users to create a personal cloud system at home. It uses the Docker ecosystem to provide a simple, user-friendly experience for managing various applications and services.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE CasaOS LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/casaos.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **CasaOS Interface: IP**`\n  \n  },\n  {\n    \"category\": \"Docker - Kubernetes\",\n\n    \"title\": \"Runtipi LXC\",\n  \n    \"content\": `<p align=\"center\"><img src=\"https://runtipi.io/_next/static/media/tipi.c0b9b68e.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Runtipi LXC </h1>\n  \n  [Runtipi](https://runtipi.io/) lets you install all your favorite self-hosted apps without the hassle of configuring and managing each service. One-click installs and updates for more than 180 popular apps.\n  \n  🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n  To create a new Proxmox VE Runtipi LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/runtipi.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Runtipi Interface: IP**`\n  \n  },\n  /*\n  {\n    \"category\": \"Docker - Kubernetes\",\n\n    \"title\": \"k0s Kubernetes LXC\",\n  \n    \"content\": `<p align=\"center\"><img src=\"https://k0sproject.io/images/k0s-logo.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> k0s Kubernetes LXC </h1>\n  <h3 align=\"center\"> Option to Install Helm Package Manager</h3>\n  \n  [k0s](https://k0sproject.io/) is a lightweight, easy-to-deploy, and certified Kubernetes distribution designed to simplify the process of deploying and managing a Kubernetes cluster. It focuses on simplicity and ease-of-use while providing a secure and production-ready environment for running applications.\n  \n  \n  To create a new Proxmox VE k0s Kubernetes LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/k0s.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n\n  ⚙️ **Config Path**\n\n  ~~~yaml\n  /etc/k0s/k0s.yaml\n  ~~~`\n  \n  },\n  */\n  {\n    \"category\": \"Docker - Kubernetes\",\n\n    \"title\": \"Podman LXC\",\n  \n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/podman.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Podman LXC </h1>\n  \n  [Podman](https://podman.io/) is an open-source, daemonless, and portable container engine that allows users to manage containers on Linux systems without the need for a daemon or system service to be running in the background. It provides an API and a command-line interface that can be used to create, run, and manage containers and their associated networks, volumes, and images. It is built on top of the Open Container Initiative (OCI) runtime specification, making it compatible with other OCI-compliant container engines.\n  \n  \n  To create a new Proxmox VE Podman LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/podman.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2vCPU ⚡</h3>`\n    \n  },\n  {\n    \"category\": \"Operating System\",\n\n    \"title\": \"Debian LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://www.debian.org/Pics/debian-logo-1024x576.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Debian LXC </h1>\n  Debian Linux is a distribution that emphasizes free software. It supports many hardware platforms.\n\n  To create a new Proxmox VE Debian LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/debian.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>`\n  \n  },\n  {\n    \"category\": \"Operating System\",\n\n    \"title\": \"Debian 12 VM\",\n    \"content\": `<p align=\"center\"><img src=\"https://www.debian.org/Pics/debian-logo-1024x576.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Debian 12 VM </h1>\n  Debian Linux is a distribution that emphasizes free software. It supports many hardware platforms.\n\n  To create a new Proxmox VE Debian 12 VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/debian-vm.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 2GB Storage - 2vCPU ⚡</h3>\n  \n  More Info at https://github.com/tteck/Proxmox/discussions/1988`\n  \n  },\n  {\n    \"category\": \"Operating System\",\n\n    \"title\": \"Ubuntu LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://assets.ubuntu.com/v1/29985a98-ubuntu-logo32.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Ubuntu LXC </h1>\n  <h3 align=\"center\" id=\"heading\"> Option to select version </h3>\n  Ubuntu is a distribution based on Debian, designed to have regular releases and a consistent user experience.\n  \n  To create a new Proxmox VE Ubuntu LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/ubuntu.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU - 22.04 ⚡</h3>`\n  \n  },\n    {\n    \"category\": \"Operating System\",\n\n    \"title\": \"Ubuntu 22.04 VM\",\n    \"content\": `<p align=\"center\"><img src=\"https://assets.ubuntu.com/v1/29985a98-ubuntu-logo32.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Ubuntu 22.04 VM </h1>\n  Ubuntu is a distribution based on Debian, designed to have regular releases and a consistent user experience.\n\n  To create a new Proxmox VE Ubuntu 22.04 VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/ubuntu-vm.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 2GB Storage - 2vCPU ⚡</h3>\n  \n  More Info at https://github.com/tteck/Proxmox/discussions/2072`\n  \n  },\n  {\n    \"category\": \"Operating System\",\n\n    \"title\": \"Alpine LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/alpinelinux.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Alpine LXC </h1>\n  A security-oriented, lightweight Linux distribution based on musl and BusyBox.<br>\n  By default, the root password is set to <code class=\"highlighter-rouge\">alpine</code>. If you choose to use advanced settings, you will need to define a password, autologin is currently unavailable.\n\n  To create a new Proxmox VE Alpine LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/alpine.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 100MiB Storage - 1vCPU ⚡</h3>\n\n  ⚙️ **Default Password** <code class=\"highlighter-rouge\">alpine</code>\n\n  ⚙️ **To Update Alpine**\n  \n  ~~~bash\n  apk update && apk upgrade\n  ~~~`\n  },\n  {\n    \"category\": \"TurnKey\",\n\n    \"title\": \"TurnKey LXC Appliances\",\n    \"content\": `<p align=\"center\"><img src=\"https://blog.desdelinux.net/wp-content/uploads/2017/01/TurnKey-Linux.png \" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> TurnKey LXC Appliances </h1>\n\n  [TurnKey LXC Appliances](https://www.turnkeylinux.org/) is an open-source project that provides a collection of free, ready-to-use virtual appliances and installation images for various software applications and services. These appliances are pre-configured and come with all the necessary software and settings to simplify deployment and management. The goal of TurnKey Linux is to make it easier for users to set up and run popular software applications without the need for extensive manual configuration.\n  \n  To create a new Proxmox VE TurnKey LXC Appliance , run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/turnkey/turnkey.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">Resource and network settings are adjustable post LXC creation.</h3>\n  \n  The script creates a <code class=\"highlighter-rouge\">*.creds</code> file in the Proxmox root directory with the password of the newly created TurnKey LXC Appliance.\n\n  ⚙️ **Retrieve Password** <code class=\"highlighter-rouge\">cat turnkey-*name*.creds</code>`\n  \n  }, \n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"Cloudflared LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/cloudflare.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Cloudflared LXC </h1>\n   \n  [Cloudflared](https://www.cloudflare.com/) is a command-line tool that allows you to securely access resources on the Cloudflare network, such as websites and APIs, from your local computer. It works by creating a secure tunnel between your computer and the Cloudflare network, allowing you to access resources as if they were on your local network. \n  \n  To create a new Proxmox VE Cloudflared LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/cloudflared.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>`\n  \n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"Zoraxy LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://zoraxy.arozos.com/img/icon.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Zoraxy LXC </h1>\n   \n  [Zoraxy](https://zoraxy.arozos.com/) is an all in one homelab network routing solution. \n  \n  To create a new Proxmox VE Zoraxy LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/zoraxy.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n\n  **Zoraxy Interface: IP:8000**`\n  \n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"Nginx Proxy Manager LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/nginxproxymanager.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Nginx Proxy Manager LXC </h1>\n  \n  [Nginx Proxy Manager](https://nginxproxymanager.com/) is a tool that provides a web-based interface to manage Nginx reverse proxies. It enables users to easily and securely expose their services to the internet by providing features such as HTTPS encryption, domain mapping, and access control. It eliminates the need for manual configuration of Nginx reverse proxies, making it easy for users to quickly and securely expose their services to the public.\n  \n  To create a new Proxmox VE Nginx Proxy Manager LXC Container, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Nginx Proxy Manager, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~yaml\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nginxproxymanager.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 3GB Storage - 1vCPU ⚡</h3>\n\n  🚨 Since there are hundreds of Certbot instances, it's necessary to install the specific Certbot of your preference.\n  \n  Forward port <code class=\"highlighter-rouge\">80</code> and <code class=\"highlighter-rouge\">443</code> from your router to your Nginx Proxy Manager LXC IP.\n  \n  Add the command below to your <code class=\"highlighter-rouge\">configuration.yaml</code> in Home Assistant.\n  ~~~yaml\n  http:\n    use_x_forwarded_for: true\n    trusted_proxies:\n      - 192.168.100.27 ###(Nginx Proxy Manager LXC IP)###\n  ~~~\n  \n  **Nginx Proxy Manager Interface: IP:81**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin@example.com</code>\n  \n  **password** <code class=\"highlighter-rouge\">changeme</code>`\n\n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"YunoHost LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://yunohost.org/_images/ynh_logo_white_300dpi.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> YunoHost LXC </h1>\n   \n  [YunoHost](https://yunohost.org/#/) is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting, while making sure it stays reliable, secure, ethical and lightweight. \n  \n  To create a new Proxmox VE YunoHost LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/yunohost.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 20GB Storage - 2vCPU ⚡</h3>\n  \n  **YunoHost Interface: IP/**`\n  \n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"UniFi Network Application LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fblog.ui.com%2Fwp-content%2Fuploads%2F2016%2F10%2Funifi-app-logo-300x108.png&f=1&nofb=1\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> UniFi Network Application LXC </h1>\n  \n  UniFi Network Application is a software that helps manage and monitor UniFi networks (Wi-Fi, Ethernet, etc.) by providing an intuitive user interface and advanced features. It allows network administrators to configure, monitor, and upgrade network devices, as well as view network statistics, client devices, and historical events. The aim of the application is to make the management of UniFi networks easier and more efficient.\n  \n  To create a new Proxmox VE UniFi Network Application LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/unifi.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **UniFi Interface: (https)IP:8443**`\n  \n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"Omada Controller LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://www.enterpriseitpro.net/wp-content/uploads/2020/12/logo-omada.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Omada Controller LXC </h1>\n  \n  Omada Controller is a software application used to manage TP-Link's Omada EAP (Enterprise Access Point) devices. It allows administrators to centrally manage a large number of EAPs, monitor network performance, and control user access to the network. The software provides an intuitive interface for network configuration, firmware upgrades, and network monitoring. By using the Omada Controller, administrators can streamline the management process, reduce manual intervention, and improve the overall security and reliability of the network.\n  \n  To create a new Proxmox VE Omada Controller LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Omada, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/omada.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Omada Interface: (https)IP:8043**`\n  \n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"WireGuard LXC\",\n  \n    \"content\": `<p align=\"center\"><img src=\"https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fcdn.icon-icons.com%2Ficons2%2F2699%2FPNG%2F512%2Fwireguard_logo_icon_168760.png&f=1&nofb=1\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> WireGuard LXC </h1>\n   \n  WireGuard is a free and open-source virtual private network (VPN) software that uses modern cryptography to secure the data transmitted over a network. It is designed to be fast, secure, and easy to use. WireGuard supports various operating systems, including Linux, Windows, macOS, Android, and iOS. It operates at the network layer and is capable of being used with a wide range of protocols and configurations. Unlike other VPN protocols, WireGuard is designed to be simple and fast, with a focus on security and speed. It is known for its ease of setup and configuration, making it a popular choice for personal and commercial use.\n\n  To create a new Proxmox VE WireGuard LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update WireGuard or Install a Dashboard, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/wireguard.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  ⚙️ **Host Configuration**\n  \n  ~~~yaml\n  nano /etc/pivpn/wireguard/setupVars.conf\n  ~~~\n  ⚙️ **Add Clients** \n  \n  ~~~yaml\n  pivpn add\n  ~~~`\n\n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"Cronicle Primary LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/jhuckaby/Cronicle/blob/master/htdocs/images/logo-128.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Cronicle Primary LXC </h1>\n  \n  [Cronicle](https://github.com/jhuckaby/Cronicle) is a task scheduling and management software that allows users to schedule and run tasks automatically on multiple servers. It has a web-based user interface that provides a convenient and centralized way to manage tasks and view their execution status. With Cronicle, users can schedule tasks to run at specific times, or on demand, and assign tasks to specific worker servers. The software provides real-time statistics and a live log viewer to help users monitor the progress of tasks. Cronicle is designed for use in large-scale environments, making it a valuable tool for automation and management of complex and time-sensitive tasks.\n\n  To create a new Proxmox VE Cronicle Primary LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Cronicle or Install Cronicle Worker, run the command below (or type update) in a <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/cronicle.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **Cronicle Primary Interface: IP:3012**\n\n  ⚙️ Config Path\n  ~~~bash\n  /opt/cronicle/conf/config.json\n  ~~~\n\n  Primary and Worker Private Keys Must Match.`\n  \n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"MeshCentral LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/Ylianst/MeshCentral/blob/master/public/favicon-303x303.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> MeshCentral LXC </h1>\n  \n  [MeshCentral](https://meshcentral.com/info/) is a web-based computer management platform that provides remote control and management capabilities for computers. It allows administrators to manage and control computers over a local network or the internet through a single, centralized web-based interface. With MeshCentral, users can monitor the status of computers, perform remote administration tasks, and control the power state of machines. The software supports various operating systems and provides real-time updates and alerts to keep administrators informed of the status of their systems. MeshCentral is designed to provide an easy-to-use, scalable, and secure solution for remote computer management, making it a valuable tool for IT administrators, helpdesk support, and remote workers.\n  \n  To create a new Proxmox VE MeshCentral LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/meshcentral.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **MeshCentral Interface: IP**`\n  \n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"Tailscale\",\n    \"content\": `<p align=\"center\"><img src=\"https://avatars.githubusercontent.com/u/48932923?v=4&s=100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Tailscale</h1>\n  \n  [Tailscale](https://tailscale.com/) is a software-defined networking solution that enables secure communication between devices over the internet. It creates a virtual private network (VPN) that enables devices to communicate with each other as if they were on the same local network. Tailscale works even when the devices are separated by firewalls or subnets, and provides secure and encrypted communication between devices. With Tailscale, users can connect devices, servers, computers, and cloud instances to create a secure network, making it easier to manage and control access to resources. Tailscale is designed to be easy to set up and use, providing a streamlined solution for secure communication between devices over the internet.\n  \n  To Install Talescale on an existing LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/add-tailscale-lxc.sh)\"\n  ~~~\n  After the script finishes, reboot the LXC then run <code class=\"highlighter-rouge\">tailscale up</code> in the LXC console\n  \n  [**Tailscale Login**](https://login.tailscale.com/start)`\n  \n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"CrowdSec\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/crowdsecurity/crowdsec-docs/main/crowdsec-docs/static/img/crowdsec_no_txt.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> CrowdSec</h1>\n\n  [CrowdSec](https://crowdsec.net/) is a free and open-source intrusion prevention system (IPS) designed to provide network security against malicious traffic. It is a collaborative IPS that analyzes behaviors and responses to attacks by sharing signals across a community of users. CrowdSec leverages the collective intelligence of its users to detect and respond to security threats in real-time. With CrowdSec, network administrators can set up protection against a wide range of threats, including malicious traffic, bots, and denial-of-service (DoS) attacks. The software is designed to be easy to use and integrate with existing security systems, making it a valuable tool for enhancing the security of any network.\n  \n  To Install CrowdSec, ⚠️ run the command below in the <b>LXC console</b>.\n  \n  ~~~bash\n    bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/crowdsec.sh)\"\n  ~~~\n  \n  [**Control center for your CrowdSec machines.**](https://app.crowdsec.net/product-tour)`\n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"Keycloak LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://www.keycloak.org/resources/images/keycloak_icon_512px.svg?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Keycloak LXC</h1>\n\n  [Keycloak](https://www.keycloak.org/) is an open-source identity and access management solution that provides centralized authentication and authorization for modern applications and services. It enables organizations to secure their applications and services with a single sign-on (SSO) solution, reducing the need for users to remember multiple login credentials. Keycloak supports various authentication protocols, including SAML, OAuth, and OpenID Connect, and integrates with a wide range of applications and services. With Keycloak, administrators can manage user identities, define security policies, and monitor access to their applications and services. The software is designed to be scalable, flexible, and easy to use, making it a valuable tool for enhancing the security and usability of modern applications and services.\n  \n  To create a new Proxmox VE Keycloak LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/keycloak.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2CPU ⚡</h3>\n\n  **Keycloak Interface: IP:8080** (First start can take a few minutes)\n  \n  ⚙️ **Initial Login**\n  \n  The initial admin user can be added manually using the web frontend when accessed from localhost or automatically using environment variables.\n  \n  To add the initial admin user using environment variables, set <code class=\"highlighter-rouge\">KEYCLOAK_ADMIN</code> for the initial admin username and <code class=\"highlighter-rouge\">KEYCLOAK_ADMIN_PASSWORD</code> for the initial admin password.\n  \n  First, stop Keycloak\n  ~~~bash\n  systemctl stop keycloak.service\n  ~~~\n  then start Keycloak by coping & pasting the command below (only needed once)\n  ~~~bash\n  cd /opt/keycloak\n  export KEYCLOAK_ADMIN=admin\n  export KEYCLOAK_ADMIN_PASSWORD=changeme\n  bin/kc.sh start-dev \n  ~~~`\n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"OpenWrt VM\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/openwrt.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> OpenWrt VM </h1>\n  \n  [OpenWrt](https://openwrt.org/) is a powerful open-source firmware that can transform a wide range of networking devices into highly customizable and feature-rich routers, providing users with greater control and flexibility over their network infrastructure.\n  \n  To create a new Proxmox VE OpenWrt VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/openwrt.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  256MiB RAM - 512MiB Storage - 1CPU ⚡</h3>`\n\n  },\n  {\n    \"category\": \"Server - Networking\",\n\n    \"title\": \"Mikrotik RouterOS CHR VM\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/mikrotik.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Mikrotik RouterOS CHR VM </h1>\n  \n  [Mikrotik RouterOS CHR](https://help.mikrotik.com/docs/display/ROS/Cloud+Hosted+Router%2C+CHR) is a Linux-based operating system that transforms a computer into a router. It provides a wide range of features for network routing, firewall, bandwidth management, wireless access point, backhaul link, hotspot gateway, VPN server, and many others. RouterOS is a versatile solution that supports various network configurations, including those with multiple WAN links, hotspots, and VPNs. It is highly customizable, allowing administrators to configure and manage their networks according to their specific requirements. With RouterOS, network administrators can monitor and control the performance and security of their networks, ensuring reliable and secure communication for their users. The software is designed to be easy to use and provides a wide range of tools for network management, making it a valuable solution for small and large networks alike.\n  \n  To create a new Proxmox VE Mikrotik RouterOS CHR VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/mikrotik-routeros.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 128MiB Storage - 2CPU ⚡</h3>\n\n  Initial setup is done via VM console. Go to the IP address to manage.\n\n  ⚙️ **Initial Login**\n\n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">no password</code>`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Audiobookshelf LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/audiobookshelf.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Audiobookshelf LXC </h1>\n  \n  [Audiobookshelf](https://www.audiobookshelf.org/) is a Self-hosted audiobook and podcast server.\n\n  To create a new Proxmox VE Audiobookshelf LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/audiobookshelf.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Audiobookshelf Interface: IP:13378**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Plex Media Server LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/plex-white.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Plex Media Server LXC </h1>\n  <h3 align=\"center\" id=\"heading\"> With Hardware Acceleration Support </h3> \n  \n  To create a new Proxmox VE Plex Media Server LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Plex Media Server or add Extras, run the command below (or type update) in the <b>LXC Console</b>.\n\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/plex.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Plex Media Server Interface: IP:32400/web**`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Tautulli LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/tautulli.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Tautulli LXC </h1>\n\n  [Tautulli](https://tautulli.com/) allows you to monitor and track your Plex Media Server usage, such as viewing statistics and analysis of your media library. It can be used to monitor user activity, get notifications about new media added to your library, and even generate reports on your media usage.\n  \n  To create a new Proxmox VE Tautulli LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/tautulli.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Tautulli Interface: IP:8181**`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Emby Media Server LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/emby/icon.png?raw=true\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\"> Emby Media Server LXC </h1>\n  \n  [Emby](https://emby.media/) brings together your personal videos, music, photos, and live television.\n  \n  To create a new Proxmox VE Emby Media Server LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Emby, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/emby.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Emby Media Server Interface: IP:8096**`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Jellyfin Media Server LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/jellyfin/icon.png?raw=true\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\"> Jellyfin Media Server LXC </h1>\n  \n  [TurnKey has a LXC CT for Jellyfin](https://www.turnkeylinux.org/mediaserver)\n  \n  To create a new Proxmox VE Jellyfin Media Server LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n    bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/jellyfin.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Jellyfin Media Server Interface: IP:8096**\n  \n  FFmpeg path: <code class=\"highlighter-rouge\">/usr/lib/jellyfin-ffmpeg/ffmpeg</code>`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Jellyseerr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/jellyseerr.svg\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\"> Jellyseerr LXC </h1>\n  \n  [Jellyseerr](https://github.com/Fallenbagel/jellyseerr) is a free and open source software application for managing requests for your media library. It is a a fork of Overseerr built to bring support for Jellyfin & Emby media servers.\n  \n  To create a new Proxmox VE Jellyseerr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Jellyseerr, run the command below (or type update) in the <b>LXC Console</b>.\n \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/jellyseerr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Jellyseerr Interface: IP:5055**`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Overseerr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/overseerr.svg\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\"> Overseerr LXC </h1>\n  \n  [Overseerr](https://overseerr.dev/) is a request management and media discovery tool built to work with your existing Plex ecosystem.\n  \n  To create a new Proxmox VE Overseerr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Overseerr, run the command below (or type update) in the <b>LXC Console</b>.\n \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/overseerr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Overseerr Interface: IP:5055**`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Ombi LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/ombi.svg\" height=\"100\"/></p>\n  <h1 align=\"center\" id=\"heading\"> Ombi LXC </h1>\n  \n  [Ombi](https://ombi.io/) is a self-hosted web application designed to empower shared Plex, Emby or Jellyfin users with automated content request capabilities. By integrating with various TV Show and Movie DVR tools, Ombi ensures a smooth and comprehensive experience for your users, allowing them to effortlessly request content on their own.\n  \n  To create a new Proxmox VE Ombi LXC, run the command below in the <b>Proxmox VE Shell</b>.\n \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/ombi.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n  \n  **Ombi Interface: IP:5000**`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"ownCloud VM\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/owncloud.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> ownCloud VM </h1>\n\n  [TurnKey ownCloud](https://www.turnkeylinux.org/owncloud) is an open-source file sharing server and collaboration platform that can store your personal content, like documents and pictures, in a centralized location.\n  \n  To create a new Proxmox VE TurnKey ownCloud VM, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/owncloud-vm.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>  \n  \n  **ownCloud Interface: IP**`\n\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Nextcloud LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/nextcloud.svg\" height=\"150\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Nextcloud LXC </h1>\n  \n  [NextCloudPi](https://github.com/nextcloud/nextcloudpi#features) is a popular self-hosted solution for file collaboration and data storage. It is built on the NextCloud software, which is an open-source platform for data management.\n  \n  To create a new Proxmox VE NextCloudPi LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nextcloudpi.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n\n  **NextCloudPi Interface: (https)IP/**<br><br>\n  \n  [Alpine Nextcloud Hub](https://nextcloud.com/) integrates the four key Nextcloud products Files, Talk, Groupware and Office into a single platform, optimizing the flow of collaboration.\n  \n  To create a new Proxmox VE Alpine Nextcloud Hub LXC, run the command below in the <b>Proxmox VE Shell</b>.<br>\n  To Update Alpine Nextcloud or Show Alpine Nextcloud Login Credentials, run the command below in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-nextcloud.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 2vCPU ⚡</h3>\n\n  **Alpine Nextcloud Hub Interface: (https)IP/**<br><br>\n  \n  [TurnKey Nextcloud](https://www.turnkeylinux.org/nextcloud) helps store your files, folders, contacts, photo galleries, calendars and more on a server of your choosing. Access that folder from your mobile device, your desktop, or a web browser. Access your data wherever you are, when you need it.\n  \n  To create a new Proxmox VE TurnKey Nextcloud LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/turnkey/turnkey.sh)\"\n  ~~~\n  To create a new Proxmox VE TurnKey Nextcloud VM, run the command below in the <b>Proxmox VE Shell</b>.\n\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/nextcloud-vm.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n\n  **TurnKey Nextcloud Interface: (https)IP/**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Owncast LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/owncast/owncast/develop/web/public/img/favicon/android-icon-144x144.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Owncast LXC </h1>\n  \n  [Owncast](https://owncast.online/) is a free and open source live video and web chat server for use with existing popular broadcasting software.\n  \n  To create a new Proxmox VE Owncast LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/owncast.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 2GB Storage - 2vCPU ⚡</h3>\n  \n  **Owncast Interface: IP:8080** <br>\n  **Owncast Admin Interface: IP:8080/admin**\n  \n  ⚙️ **Initial Admin Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">abc123</code>`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"OpenMediaVault LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/openmediavault.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> OpenMediaVault LXC </h1>\n  \n  [OpenMediaVault](https://www.openmediavault.org/) is a next-generation network-attached storage (NAS) solution based on Debian Linux. It provides a web-based interface for managing and storing digital data, making it easy to use and set up. OpenMediaVault supports various storage protocols, including SMB/CIFS, NFS, and FTP, and provides a wide range of features for data management, such as user and group management, disk quotas, and data backup and recovery. The software is designed to be flexible and scalable, making it a valuable solution for both personal and enterprise use. OpenMediaVault provides a stable and reliable platform for managing and storing digital data, making it a popular choice for those who want to host their own data and ensure its security and privacy. With OpenMediaVault, users can access their data from anywhere and easily share it with others, making it a valuable tool for collaboration and data management.\n  \n  To create a new Proxmox VE OpenMediaVault LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/omv.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **OpenMediaVault Interface: IP**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">openmediavault</code>`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Navidrome LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/navidrome/navidrome/master/resources/logo-192x192.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Navidrome LXC </h1>\n  \n  [Navidrome](https://www.navidrome.org/) is a music server solution that makes your music collection accessible from anywhere. It provides a modern web-based user interface and compatibility with a range of third-party mobile apps for both iOS and Android devices. With Navidrome, users can access their music collection from anywhere, whether at home or on the go. The software supports a variety of music formats, making it easy for users to play their favorite songs and albums. Navidrome provides a simple and user-friendly interface for managing and organizing music collections, making it a valuable tool for music lovers who want to access their music from anywhere. The software is designed to be easy to set up and use, making it a popular choice for those who want to host their own music server and enjoy their music collection from anywhere.\n  \n  To create a new Proxmox VE Navidrome LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Navidrome, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/navidrome.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  To change Navidrome music folder path, edit: <code class=\"highlighter-rouge\">/var/lib/navidrome/navidrome.toml</code>\n  \n  **Navidrome Interface: IP:4533**`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"PhotoPrism LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/photoprism.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> PhotoPrism LXC </h1>\n  \n  [PhotoPrism](https://photoprism.app/) is an AI-Powered Photos App for the Decentralized Web. It makes use of the latest technologies to tag and find pictures automatically without getting in your way.\n  \n  To create a new Proxmox VE PhotoPrism LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update PhotoPrism, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/photoprism.sh)\"\n  ~~~\n\n  Please note that Ubuntu 22.04 and Debian 12 are supported, while older Linux distributions may not be compatible.\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **PhotoPrism Interface: IP:2342**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">changeme</code>\n  \n  [PhotoSync](https://www.photosync-app.com/home.html)`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Bazarr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://www.bazarr.media/assets/img/logo.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Bazarr LXC </h1>\n  \n  [Bazarr](https://www.bazarr.media/) is a companion application to Sonarr and Radarr that manages and downloads subtitles based on your requirements.\n  \n  To create a new Proxmox VE Bazarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/bazarr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Bazarr Interface: IP:6767**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Lidarr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Lidarr/Lidarr/develop/Logo/256.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Lidarr LXC </h1>\n  \n  [Lidarr](https://lidarr.audio/) is a music management tool designed for Usenet and BitTorrent users. It allows users to manage and organize their music collection with ease. Lidarr integrates with popular Usenet and BitTorrent clients, such as Sonarr and Radarr, to automate the downloading and organizing of music files. The software provides a web-based interface for managing and organizing music, making it easy to search and find songs, albums, and artists. Lidarr also supports metadata management, including album art, artist information, and lyrics, making it easy for users to keep their music collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing music collections, making it a valuable tool for music lovers who want to keep their collection organized and up-to-date. With Lidarr, users can enjoy their music collection from anywhere, making it a powerful tool for managing and sharing music files.\n  \n  To create a new Proxmox VE Lidarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/lidarr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Lidarr Interface: IP:8686**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Prowlarr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Prowlarr/Prowlarr/develop/Logo/256.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Prowlarr LXC </h1>\n  \n  [Prowlarr](https://github.com/Prowlarr/Prowlarr) is a software tool designed to integrate with various PVR (Personal Video Recorder) apps. It is built on a popular *arr .net/ReactJS base stack and serves as an indexer manager and proxy. Prowlarr makes it easy to manage and organize TV show and movie collections, by integrating with popular PVR apps and automating the downloading and organizing of media files. The software provides a web-based interface for managing and organizing TV shows and movies, making it easy to search and find content. Prowlarr also supports metadata management, including show and movie information, making it easy for users to keep their media collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing media collections, making it a valuable tool for media enthusiasts who want to keep their collection organized and up-to-date. With Prowlarr, users can enjoy their media collection from anywhere, making it a powerful tool for managing and sharing media files.\n  \n  To create a new Proxmox VE Prowlarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/prowlarr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Prowlarr Interface: IP:9696**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Radarr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Radarr/Radarr/develop/Logo/256.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Radarr LXC </h1>\n  \n  [Radarr](https://radarr.video/) is a movie management tool designed for Usenet and BitTorrent users. It allows users to manage and organize their movie collection with ease. Radarr integrates with popular Usenet and BitTorrent clients, such as Sonarr and Lidarr, to automate the downloading and organizing of movie files. The software provides a web-based interface for managing and organizing movies, making it easy to search and find titles, genres, and release dates. Radarr also supports metadata management, including movie posters and information, making it easy for users to keep their movie collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing movie collections, making it a valuable tool for movie enthusiasts who want to keep their collection organized and up-to-date. With Radarr, users can enjoy their movie collection from anywhere, making it a powerful tool for managing and sharing movie files.\n  \n  To create a new Proxmox VE Radarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/radarr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Radarr Interface: IP:7878**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Readarr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Readarr/Readarr/develop/Logo/256.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Readarr LXC </h1>\n  \n  [Readarr](https://readarr.com/) is an eBook and audiobook management tool designed for Usenet and BitTorrent users. It allows users to manage and organize their eBook and audiobook collection with ease. Readarr integrates with popular Usenet and BitTorrent clients, such as Sonarr and Lidarr, to automate the downloading and organizing of eBook and audiobook files. The software provides a web-based interface for managing and organizing eBooks and audiobooks, making it easy to search and find titles, authors, and genres. Readarr also supports metadata management, including cover art and information, making it easy for users to keep their eBook and audiobook collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing eBook and audiobook collections, making it a valuable tool for book and audiobook enthusiasts who want to keep their collection organized and up-to-date. With Readarr, users can enjoy their eBook and audiobook collection from anywhere, making it a powerful tool for managing and sharing book and audiobook files.\n  \n  To create a new Proxmox VE Radarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/readarr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Readarr Interface: IP:8787**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Sonarr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Sonarr LXC </h1>\n  \n  [Sonarr](https://sonarr.tv/) is a personal video recorder (PVR) software designed for Usenet and BitTorrent users. It allows users to manage and organize their TV show collection with ease. Sonarr integrates with popular Usenet and BitTorrent clients, such as NZBget and Transmission, to automate the downloading and organizing of TV show files. The software provides a web-based interface for managing and organizing TV shows, making it easy to search and find titles, seasons, and episodes. Sonarr also supports metadata management, including TV show posters and information, making it easy for users to keep their TV show collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing TV show collections, making it a valuable tool for TV show enthusiasts who want to keep their collection organized and up-to-date. With Sonarr, users can enjoy their TV show collection from anywhere, making it a powerful tool for managing and sharing TV show files.\n  \n  To create a new Proxmox VE Sonarr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Sonarr, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/sonarr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Sonarr Interface: IP:8989**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n    \"title\": \"Unmanic LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Unmanic/unmanic/master/icon.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Unmanic LXC </h1>\n  \n  [Unmanic](https://docs.unmanic.app/) is a simple tool for optimising your file library. You can use it to convert your files into a single, uniform format, manage file movements based on timestamps, or execute custom commands against a file based on its file size.\n  \n  To create a new Proxmox VE Unmanic LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Unmanic, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/unmanic.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Unmanic Interface: IP:8888**`\n  \n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Tdarr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://home.tdarr.io/static/media/logo3-min.246d6df44c7f16ddebaf.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Tdarr LXC </h1>\n  \n  [Tdarr](https://tdarr.io/) is a media transcoding application designed to automate the transcode and remux management of a media library. It uses conditional-based processing to determine the required encoding and remux operations for each file in the library. The software integrates with popular media management tools, such as Sonarr and Radarr, to ensure that newly added media files are automatically processed and optimized for the user's desired playback device. Tdarr provides a web-based interface for monitoring and managing the transcoding process, and also supports real-time logging and reporting. The software is designed to be flexible and configurable, with a wide range of encoding and remux options available to users. Tdarr is an ideal solution for media enthusiasts who want to optimize their library for seamless playback on a variety of devices, while also streamlining the management and maintenance of their media library.\n  \n  To create a new Proxmox VE Tdarr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/tdarr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Tdarr Interface: IP:8265**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Whisparr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Whisparr/Whisparr/develop/Logo/256.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Whisparr LXC </h1>\n  \n  [Whisparr](https://github.com/Whisparr/Whisparr) is an adult movie collection manager for Usenet and BitTorrent users.\n  \n  To create a new Proxmox VE Whisparr LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/whisparr.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **Whisparr Interface: IP:6969**`\n  },\n  {\n    \"category\": \"Media - Photo\",\n\n  \n    \"title\": \"Channels DVR Server LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://getchannels.com/a/images/channels-logo.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\">Channels DVR Server LXC </h1>\n  \n  [Channels DVR Server](https://getchannels.com/dvr-server/) runs on your computer or NAS device at home. There's no cloud to worry about. Your tv shows and movies will always be available.\n  \n  To create a new Proxmox VE Channels DVR Server LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/channels.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Channels DVR Server Interface: IP:8089**`\n  },  \n  {\n    \"category\": \"Ad Blocker - DNS\",\n\n    \"title\": \"Pi-hole LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/pi_hole/icon.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Pi-hole LXC </h1>\n  \n  [Pi-hole](https://pi-hole.net/) is a free, open-source network-level advertisement and Internet tracker blocking application. It runs on a Raspberry Pi or other Linux-based systems and acts as a DNS sinkhole, blocking unwanted traffic before it reaches a user's device. Pi-hole can also function as a DHCP server, providing IP addresses and other network configuration information to devices on a network. The software is highly configurable and supports a wide range of customizations, such as allowing or blocking specific domains, setting up blocklists and whitelists, and customizing the appearance of the web-based interface. The main purpose of Pi-hole is to protect users' privacy and security by blocking unwanted and potentially malicious content, such as ads, trackers, and malware. It is designed to be easy to set up and use, and can be configured through a web-based interface or through a terminal-based command-line interface.\n  \n  To create a new Proxmox VE Pi-hole LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/pihole.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  ⚠️ **Reboot Pi-hole LXC after install**\n  \n  **Pi-hole Interface: IP/admin**\n  \n  ⚙️ **To set your password:**\n  \n  ~~~yaml\n  pihole -a -p\n  ~~~`\n  },\n  {\n    \"category\": \"Ad Blocker - DNS\",\n\n    \"title\": \"Technitium DNS LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://avatars.githubusercontent.com/u/12230362?s=100&v=4\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Technitium DNS LXC </h1>\n\n  [Technitium DNS Server](https://technitium.com/dns/) is a free, open-source and privacy-focused DNS (Domain Name System) server software for Windows, Linux, and macOS. It is designed to provide a secure, fast, and reliable DNS resolution service to its users. The server can be configured through a web-based interface, and it supports a variety of advanced features, such as automatic IP updates, IPv6 support, caching of DNS queries, and the ability to block unwanted domains. It is also designed to be highly secure, with built-in measures to prevent common types of DNS attacks and data leaks. Technitium DNS Server is aimed at providing an alternative to traditional DNS servers, which often have privacy and security concerns associated with them, and it is ideal for users who are looking for a more secure and private DNS resolution service.\n  \n  To create a new Proxmox VE Technitium DNS LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Technitium DNS, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/technitiumdns.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **Technitium DNS Interface: IP:5380**`\n  \n  },\n  {\n    \"category\": \"Ad Blocker - DNS\",\n\n    \"title\": \"AdGuard Home LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/adguard/icon.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> AdGuard Home LXC </h1>\n\n  [AdGuard Home](https://adguard.com/en/adguard-home/overview.html) is an open-source, self-hosted network-wide ad blocker. It blocks advertisements, trackers, phishing and malware websites, and provides protection against online threats. AdGuard Home is a DNS-based solution, which means it blocks ads and malicious content at the network level, before it even reaches your device. It runs on your home network and can be easily configured and managed through a web-based interface. It provides detailed statistics and logs, allowing you to see which websites are being blocked, and why. AdGuard Home is designed to be fast, lightweight, and easy to use, making it an ideal solution for home users who want to block ads, protect their privacy, and improve the speed and security of their online experience.\n  \n  To create a new Proxmox VE AdGuard Home LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Manually Update AdGuard Home, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/adguard.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n\n  **AdGuard Home Setup Interface: IP:3000  (After Setup use only IP)**\n  \n  <sub>(For the Home Assistant Integration, use port <code class=\"highlighter-rouge\">80</code> not <code class=\"highlighter-rouge\">3000</code>)</sub>`\n  \n  },\n  {\n    \"category\": \"Ad Blocker - DNS\",\n\n    \"title\": \"Blocky LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/0xERR0R/blocky/main/docs/blocky.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Blocky LXC </h1>\n  \n  [Blocky](https://0xerr0r.github.io/blocky/) is a software tool designed for blocking unwanted ads and trackers on local networks. It functions as a DNS proxy and runs on the Go programming language. Blocky intercepts requests to advertisements and other unwanted content and blocks them before they reach the end user. This results in a cleaner, faster, and more secure online experience for users connected to the local network. Blocky is open-source, easy to configure and can be run on a variety of devices, making it a versatile solution for small to medium-sized local networks.\n  \n  To create a new Proxmox VE Blocky LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/blocky.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  \n  ⚙️ **Blocky Config Path**\n  \n  ~~~yaml\n  /opt/blocky/config.yml\n  ~~~`\n  },\n  {\n    \"category\": \"Document - Notes\",\n\n    \"title\": \"Paperless-ngx LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/paperless-ngx/paperless-ngx/blob/main/resources/logo/web/svg/square.svg?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Paperless-ngx LXC </h1>\n  \n  [Paperless-ngx](https://paperless-ngx.readthedocs.io/en/latest/#) is a software tool designed for digitizing and organizing paper documents. It provides a web-based interface for scanning, uploading, and organizing paper documents, making it easier to manage, search, and access important information. Paperless-ngx uses the OCR (Optical Character Recognition) technology to extract text from scanned images and makes it searchable, thus increasing the efficiency of document management.\n  \n  To create a new Proxmox VE Paperless-ngx LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Paperless-ngx or Show Login Credentials, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/paperless-ngx.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Paperless-ngx Interface: IP:8000**`\n  \n  },\n  {\n    \"category\": \"Document - Notes\",\n\n    \"title\": \"Trilium LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/zadam/trilium/master/images/app-icons/png/128x128.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Trilium LXC </h1>\n  \n  [Trilium](https://github.com/zadam/trilium#trilium-notes) is an open-source note-taking and personal knowledge management application. It allows users to organize and manage their notes, ideas, and information in a single place, using a hierarchical tree-like structure. Trilium offers a range of features, including rich text formatting, links, images, and attachments, making it easy to create and structure notes. The software is designed to be flexible and customizable, with a range of customization options and plugins available, including themes, export options, and more. Trilium is a self-hosted solution, and can be run on a local machine or a cloud-based server, providing users with full control over their notes and information.\n  \n  To create a new Proxmox VE Trilium LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Trilium, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/trilium.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **Trilium Interface: IP:8080**`\n  \n  },\n  {\n    \"category\": \"Document - Notes\",\n\n    \"title\": \"Wiki.js LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://static.requarks.io/logo/wikijs-butterfly.svg?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Wiki.js LXC </h1>\n  \n  [Wiki.js](https://js.wiki/) is a free, open-source, and modern wiki application built using Node.js. It is designed to be fast, easy to use, and flexible, with a range of features for collaboration, knowledge management, and content creation. Wiki.js supports Markdown syntax for editing pages, and includes features such as version control, page history, and access control, making it easy to manage content and collaborate with others. The software is fully customizable, with a range of themes and extensions available, and can be deployed on a local server or in the cloud, making it an ideal choice for small teams and organizations looking to create and manage a wiki. Wiki.js provides a modern, user-friendly interface, and supports a range of data sources, including local file systems, databases, and cloud storage services. \n  \n  To create a new Proxmox VE Wiki.js LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Wiki.js, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/wikijs.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **Wiki.js Interface: IP:3000**`\n  },\n  {\n    \"category\": \"Document - Notes\",\n\n  \n    \"title\": \"NocoDB LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/nocodb.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> NocoDB LXC </h1>\n  \n  [NocoDB](https://www.nocodb.com/) is a document-oriented database management system. It uses the NoSQL (Not Only SQL) data model, which allows for more flexible and scalable data storage than traditional relational databases. NoCoDB stores data in JSON format, making it easier to manage and query complex data structures, and supports a range of data types, including strings, numbers, arrays, and objects. The software provides a web-based interface for managing and querying data, and includes features such as real-time data synchronization, auto-indexing, and full-text search. NoCoDB is designed to be scalable, and can be used for a range of applications, from small projects to large enterprise systems. The software is free and open-source, and is designed to be easy to use and integrate with other applications.\n  \n  To create a new Proxmox VE NocoDB LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update NocoDB, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nocodb.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n  \n  **NocoDB Interface: IP:8080/dashboard**`\n  \n  },\n  {\n    \"category\": \"Document - Notes\",\n  \n    \"title\": \"Kavita LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Kareadita/Kavita/develop/Logo/kavita.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"Kavita\"> Kavita LXC </h1>\n  \n  [Kavita](https://www.kavitareader.com/) is a fast, feature rich, cross platform reading server. Built with a focus for manga, and the goal of being a full solution for all your reading needs.\n  \n  To create a new Proxmox VE Kavita LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Kavita, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/kavita.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Kavita Interface: IP:5000**`\n  \n  },\n  {\n    \"category\": \"Dashboards\",\n\n    \"title\": \"Heimdall Dashboard LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/heimdall.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Heimdall Dashboard LXC (English-only) </h1>\n  \n  [Heimdall Dashboard](https://heimdall.site/) is a self-hosted, web-based dashboard for managing and monitoring the health of applications and servers. It allows you to keep track of the status of your systems from a single, centralized location, and receive notifications when things go wrong. With Heimdall Dashboard, you have full control over your data and can customize it to meet your specific needs. Self-hosting the dashboard gives you the flexibility to run it on your own infrastructure, making it a suitable solution for organizations that prioritize data security and privacy.\n  \n  To create a new Proxmox VE Heimdall Dashboard LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Heimdall Dashboard, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/heimdalldashboard.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **Heimdall Dashboard Interface: IP:7990**`\n  \n  },\n  {\n    \"category\": \"Dashboards\",\n\n    \"title\": \"Linkwarden LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/linkwarden/linkwarden/main/assets/logo.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Linkwarden LXC </h1>\n  \n  [Linkwarden](https://linkwarden.app/) is a fully self-hostable, open-source collaborative bookmark manager to collect, organize and archive webpages.\n  \n  To create a new Proxmox VE Linkwarden LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/linkwarden.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Linkwarden Interface: IP:3000**\n  \n  Show Database/Adminer Credentials: <code class=\"highlighter-rouge\">cat linkwarden.creds</code>`\n  \n  },\n  {\n    \"category\": \"Dashboards\",\n\n    \"title\": \"Homepage LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/benphelps/homepage/raw/main/images/banner_light%402x.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Homepage LXC </h1>\n  \n  [Homepage](https://github.com/benphelps/homepage) is a self-hosted dashboard solution for centralizing and organizing data and information.\n  \n  To create a new Proxmox VE Homepage LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Homepage, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homepage.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 3GB Storage - 2vCPU ⚡</h3>\n  \n  [Configuration](https://github.com/benphelps/homepage/wiki) (bookmarks.yaml, services.yaml, widgets.yaml) path: <code class=\"highlighter-rouge\">/opt/homepage/config/</code>\n  \n  **Homepage Interface: IP:3000**`\n  \n  },\n    {\n    \"category\": \"Dashboards\",\n\n    \"title\": \"OliveTin\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/OliveTin/OliveTin/main/webui/OliveTinLogo.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> OliveTin </h1>\n\n  [OliveTin](https://www.olivetin.app/) provides a secure and straightforward way to execute pre-determined shell commands through a web-based interface.\n  \n  To Install OliveTin, ⚠️ run the command below in the LXC console.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/olivetin.sh)\"\n  ~~~\n  \n  **OliveTin Interface: IP:1337**\n  \n  ⚙️ **Config Path**\n  \n  ~~~yaml\n  /etc/OliveTin/config.yaml\n  ~~~`\n  },\n    {\n    \"category\": \"Dashboards\",\n\n    \"title\": \"Homarr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://homarr.dev/img/logo.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Homarr LXC </h1>\n  \n  [Homarr](https://homarr.dev/) is a sleek, modern dashboard that puts all of your apps and services at your fingertips.\n  \n  To create a new Proxmox VE Homarr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Homarr, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homarr.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n\n  **Homarr Interface: IP:3000**`\n   \n  },\n  {\n    \"category\": \"Dashboards\",\n\n    \"title\": \"Homer LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/bastienwirtz/homer/main/public/assets/icons/logo.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Homer LXC </h1>\n  \n  [Homer](https://github.com/bastienwirtz/homer#---------homer) is a simple and lightweight static homepage generator that allows you to create and manage a home page for your server. It uses a YAML configuration file to define the layout and content of your homepage, making it easy to set up and customize. The generated homepage is static, meaning it does not require any server-side processing, making it fast and efficient to serve. Homer is designed to be a flexible and low-maintenance solution for organizing and accessing your services and information from a single, centralized location.\n  \n  To create a new Proxmox VE Homer LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Homer, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homer.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n\n  **Homer Interface: IP:8010**\n  \n  ⚙️ **Config Path**\n  \n  ~~~yaml\n  /opt/homer/assets/config.yml\n  ~~~`\n   \n  },\n  {\n    \"category\": \"Dashboards\",\n\n    \"title\": \"Dashy LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/Lissy93/dashy/raw/master/public/web-icons/dashy-logo.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Dashy LXC </h1>\n  \n  [Dashy](https://dashy.to/) is a solution that helps you organize your self-hosted services by centralizing access to them through a single interface.\n  \n  To create a new Proxmox VE Dashy LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Dashy, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/dashy.sh)\"\n  ~~~\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 6GB Storage - 2vCPU ⚡</h3>\n  \n  **Dashy Interface: IP:4000**\n  \n  Once you've configured everything according to your preferences in interactive mode and saved the changes to the disk, go into update configuration and rebuild application.`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"File Browser\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/filebrowser.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> File Browser </h1>\n\n  [File Browser](https://filebrowser.org/features) offers a user-friendly web interface for managing files within a designated directory. It allows you to perform various actions such as uploading, deleting, previewing, renaming, and editing files.\n  \n  To Install, or uninstall File Browser, ⚠️ run the command below in the <b>LXC console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/filebrowser.sh)\"\n  ~~~\n  \n  **File Browser Interface: IP:8080**\n  \n  ⚙️ **Initial Login (not required for No Authentication)**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n\n  **password** <code class=\"highlighter-rouge\">changeme</code>\n  \n  ⚙️ **To Update File Browser**\n  \n  ~~~yaml\n  curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash\n  ~~~`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"VS Code Server\",\n    \"content\": `<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/674621/71187801-14e60a80-2280-11ea-94c9-e56576f76baf.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> VS Code Server </h1>\n\n  [VS Code Server](https://code.visualstudio.com/docs/remote/vscode-server) is a service you can run on a remote development machine, like your desktop PC or a virtual machine (VM). It allows you to securely connect to that remote machine from anywhere through a vscode.dev URL, without the requirement of SSH.\n  \n  To Install VS Code Server, ⚠️ run the command below in the <b>LXC console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/code-server.sh)\"\n  ~~~\n  \n  **VS Code Server Interface: IP:8680**`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Deluge LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://dev.deluge-torrent.org/chrome/common/deluge_logo.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Deluge LXC </h1>\n\n  [Deluge](https://www.deluge-torrent.org/) is a free, open-source, lightweight BitTorrent client. It supports various platforms including Windows, Linux, and macOS, and offers features such as peer exchange, DHT, and magnet links.\n  \n  To create a new Proxmox VE Deluge LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/deluge.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n\n  ⚙️ **Initial Login**\n\n  **password** <code class=\"highlighter-rouge\">deluge</code>\n\n  **Deluge Interface: IP:8112**`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Transmission LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/transmission/transmission/main/web/assets/img/logo.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Transmission LXC </h1>\n\n  [Transmission](https://transmissionbt.com/) is a free, open-source BitTorrent client known for its fast download speeds and ease of use. It supports various platforms such as Windows, Linux, and macOS and has features like web interface, peer exchange, and encrypted transfers.\n  \n  To create a new Proxmox VE Transmission LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/transmission.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n\n  ⚙️ **Initial Login**\n\n  **user/password** <code class=\"highlighter-rouge\">transmission</code>\n\n  **Transmission Interface: IP:9091/transmission**`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Autobrr LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/autobrr/autobrr/master/.github/images/logo.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Autobrr LXC </h1>\n\n  [Autobrr](https://autobrr.com/) is a torrent downloading tool that automates the process of downloading torrents. It is designed to be modern and user-friendly, providing users with a convenient and efficient way to download torrent files. With Autobrr, you can schedule and manage your torrent downloads, and have the ability to automatically download torrents based on certain conditions, such as time of day or availability of seeds. This can save you time and effort, allowing you to focus on other tasks while your torrents are being downloaded in the background.\n  \n  To create a new Proxmox VE Autobrr LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Autobrr, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/autobrr.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n\n  **Autobrr Interface: IP:7474**`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"qBittorrent LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/qbittorrent/qBittorrent/master/src/icons/qbittorrent.ico\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> qBittorrent LXC </h1>\n\n  [qBittorrent](https://www.qbittorrent.org/) offers a user-friendly interface that allows users to search for and download torrent files easily. It also supports magnet links, which allow users to start downloading files without the need for a torrent file.\n  \n  To create a new Proxmox VE qBittorrent LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/qbittorrent.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>  \n  \n  **qBittorrent Interface: IP:8090**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">changeme</code>`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Real-Debrid Torrent Client LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://fcdn.real-debrid.com/0820/images/logo.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Real-Debrid Torrent Client LXC </h1>\n\n  [RDTClient](https://github.com/rogerfar/rdt-client)  is a web interface to manage your torrents on Real-Debrid, AllDebrid or Premiumize.\n  \n  To create a new Proxmox VE Real-Debrid Torrent Client LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/rdtclient.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  1GB RAM - 4GB Storage - 1vCPU ⚡</h3>  \n  \n  **Real-Debrid Torrent Client Interface: IP:6500**`  \n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Jackett LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Jackett/Jackett/master/src/Jackett.Common/Content/jacket_medium.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Jackett LXC </h1>\n\n  [Jackett](https://github.com/Jackett/Jackett) supports a wide range of trackers, including popular ones like The Pirate Bay, RARBG, and Torrentz2, as well as many private trackers. It can be integrated with several BitTorrent clients, including qBittorrent, Deluge, and uTorrent, among others.\n  \n  To create a new Proxmox VE Jackett LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/jackett.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n\n  **Jackett Interface: IP:9117**`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Pingvin Share LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/stonith404/pingvin-share/blob/main/frontend/public/img/logo.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Pingvin Share LXC </h1>\n\n  [Pingvin Share](https://github.com/stonith404/pingvin-share) is self-hosted file sharing platform and an alternative for WeTransfer.\n  \n  To create a new Proxmox VE Pingvin Share LXC, run the command below in the <b>Proxmox VE Shell</b>.<br>\n  To Update Pingvin Share, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/pingvin.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>  \n  \n  **Pingvin Share Interface: IP:3000**`\n\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"SABnzbd LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/sabnzbd/sabnzbd/develop/icons/logo-arrow.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> SABnzbd LXC </h1>\n\n  [SABnzbd](https://sabnzbd.org/) is a free, open-source software program for downloading binary files from Usenet newsgroups. It is designed to be easy to use, and provides a number of features to simplify the downloading process, such as automatic error detection and repair, download scheduling, and integration with other applications. SABnzbd is a binary newsreader, which means it is specifically designed for downloading binary files, such as images, music, and video, from Usenet newsgroups. With its user-friendly interface and powerful features, SABnzbd makes it easy to manage your Usenet downloads and keep your download queue organized.\n  \n  To create a new Proxmox VE SABnzbd LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update SABnzbd, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/sabnzbd.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n\n  **SABnzbd Interface: IP:7777**`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Webmin System Administration\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/webmin/webmin/blob/master/images/webmin-blue.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Webmin System Administration </h1>\n\n  If you prefer to manage all aspects of your Proxmox VE LXC from a graphical interface instead of the command line interface, Webmin might be right for you.\n  Benefits include automatic daily security updates, backup and restore, file manager with editor, web control panel, and preconfigured system monitoring with optional email alerts.\n  \n  To Install Webmin System Administration, ⚠️ run the command below in the <b>LXC console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/webmin.sh)\"\n  ~~~\n  \n  **Webmin Interface: (https)IP:10000**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">root</code>\n  \n  **password** <code class=\"highlighter-rouge\">root</code>\n  \n  ⚙️ **To Update Webmin**\n  \n  <code class=\"highlighter-rouge\">Update from the Webmin UI</code>\n  \n  ⚙️ **To Uninstall Webmin**\n  \n  ~~~yaml\n  bash /etc/webmin/uninstall.sh\n  ~~~`\n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Syncthing LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/syncthing/syncthing/6afaa9f20c8eb9c7af5abbe2f2d90fa2571aa7ad/assets/logo-only.svg?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Syncthing LXC </h1>\n  \n  [Syncthing](https://syncthing.net/) is an open-source file syncing tool that allows users to keep their files in sync across multiple devices by using peer-to-peer synchronization. It doesn't rely on any central server, so all data transfers are directly between devices.\n  \n  To create a new Proxmox VE Syncthing LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/syncthing.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Syncthing Interface: IP:8384**`\n  \n  },\n  {\n    \"category\": \"File - Code\",\n\n    \"title\": \"Daemon Sync Server LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fimg.informer.com%2Ficons_mac%2Fpng%2F128%2F350%2F350335.png&f=1&nofb=1\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Daemon Sync Server LXC </h1>\n  \n  Sync files from app to server, share photos & videos, back up your data and stay secure inside local network.\n  \n  To create a new Proxmox VE Daemon Sync Server LXC, run the command below in the <b>Proxmox VE Shell</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/daemonsync.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 8GB Storage - 1vCPU ⚡</h3>\n  \n  **Daemon Sync Server Interface: IP:8084**\n  \n  Search: <code class=\"highlighter-rouge\">DAEMON Sync</code> in your favorite app store`\n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"OctoPrint LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/octoprint.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> OctoPrint LXC </h1>\n  \n  [OctoPrint](https://octoprint.org/) is a free and open-source web-based 3D printer control software that allows you to remotely control and monitor your 3D printer from a web interface. It was designed to be compatible with a wide range of 3D printers.\n  \n  To create a new Proxmox VE OctoPrint LXC, run the following in the <b>Proxmox VE Shell</b>.<br>\n  To Update OctoPrint, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/octoprint.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n  \n  **OctoPrint Interface - IP:5000**`\n  \n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"Vaultwarden LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/dani-garcia/vaultwarden/main/resources/vaultwarden-icon-white.svg\" width=\"100\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Vaultwarden LXC </h1>\n  \n  [Vaultwarden](https://www.vaultwarden.net/) is a self-hosted password manager which provides secure and encrypted password storage. It uses client-side encryption and provides access to passwords through a web interface and mobile apps.\n  \n  To create a new Proxmox VE Vaultwarden LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Vaultwarden, Web-Vault or Set the Admin Token, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/vaultwarden.sh)\"\n  ~~~\n  ⚠️ Vaultwarden needs to be behind a proxy (Nginx Proxy Manager) to obtain HTTPS and to allow clients to connect.\n  \n  The script builds from source, which takes time and resources. After the build, the script will automatically set resources to Normal Settings. \n  \n  <h3 align=\"center\" id=\"heading\">⚡ Build Settings:  4GB RAM - 6GB Storage - 4vCPU ⚡</h3>\n  <h3 align=\"center\" id=\"heading\">⚡ Normal Settings:  512Mib RAM - 6GB Storage - 1vCPU ⚡</h3>\n\n  As an alternative option, you can use Alpine Linux and the Vaultwarden package to create a Vaultwarden LXC container with significantly faster creation time and minimal system resource usage. <br>\n  \n  To create a new Proxmox VE Alpine-Vaultwarden LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Alpine-Vaultwarden, or Set the Admin Token, run the command below in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-vaultwarden.sh)\"\n  ~~~\n\n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  256Mib RAM - 300MiB Storage - 1vCPU ⚡</h3>\n\n  **Vaultwarden Interface: IP:8000**\n  \n  **Vaultwarden Admin Interface: IP:8000/admin**`\n  \n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"grocy LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://grocy.info/img/grocy_logo.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> grocy LXC </h1>\n  \n  [grocy](https://grocy.info/) is a web-based self-hosted groceries & household management solution for your home. It helps you keep track of your groceries and household items, manage your shopping list, and keep track of your pantry, recipes, meal plans, and more.\n  \n  To create a new Proxmox VE grocy LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update grocy, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/grocy.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **grocy Interface: IP**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">admin</code>`\n  \n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"MagicMirror Server LXC\",\n  \n    \"content\": `<p align=\"center\"><img src=\"https://github.com/MichMich/MagicMirror/raw/master/.github/header.png\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> MagicMirror Server LXC </h1>\n  \n  [MagicMirror²](https://docs.magicmirror.builders/) is a smart mirror software that allows you to build your own personal smart mirror. It uses modular components that you can customize to display information such as the weather, news, calendar, to-do list, and more. The platform is open source, allowing for community contributions and customization.\n  \n  To create a new MagicMirror Server LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update MagicMirror, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/magicmirror.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 3GB Storage - 1vCPU ⚡</h3>\n  \n  **MagicMirror Interface: IP:8080**\n  \n  ⚙️ **[Configuration](https://docs.magicmirror.builders/configuration/introduction.html#configuring-your-magicmirror)**\n  ~~~yaml\n  /opt/magicmirror/config/config.js\n  ~~~`\n\n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"TasmoAdmin LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/tasmota.svg\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> TasmoAdmin LXC </h1>\n  \n  [TasmoAdmin](https://github.com/TasmoAdmin/TasmoAdmin#readme) is an administrative platform for devices flashed with Tasmota.\n  \n  To create a new Proxmox VE TasmoAdmin LXC, run the following in the <b>Proxmox VE Shell</b>. <br>\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/tasmoadmin.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n  \n  **TasmoAdmin Interface - IP:9999**`\n  \n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"RTSPtoWeb LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://brands.home-assistant.io/_/rtsp_to_webrtc/logo.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> RTSPtoWeb LXC </h1>\n  \n  [RTSPtoWeb](https://github.com/deepch/RTSPtoWeb) converts your RTSP streams to formats consumable in a web browser like MSE (Media Source Extensions), WebRTC, or HLS. It's fully native Golang without the use of FFmpeg or GStreamer\n  \n  To create a new Proxmox VE RTSPtoWeb LXC, run the following in the <b>Proxmox VE Shell</b>. <br>\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/rtsptoweb.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **RSTPtoWEB Interface - IP:8083**`\n  \n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"go2rtc LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://brands.home-assistant.io/_/rtsp_to_webrtc/logo.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> go2rtc LXC </h1>\n  \n  [go2rtc](https://github.com/AlexxIT/go2rtc) is the ultimate camera streaming application with support RTSP, WebRTC, HomeKit, FFmpeg, RTMP, etc.\n  \n  To create a new Proxmox VE go2rtc LXC, run the following in the <b>Proxmox VE Shell</b>. <br>\n  To Update go2rtc, run the command below (or type update) in the <b>LXC Console</b>.\n  \n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/go2rtc.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n  \n  **go2rtc Interface - IP:1984**`\n  \n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"Whoogle LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/whoogle.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Whoogle LXC </h1>\n  \n  Get Google search results, but without any ads, javascript, AMP links, cookies, or IP address tracking.\n  \n  To create a new Proxmox VE Whoogle LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Whoogle, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/whoogle.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n\n  **Whoogle Interface: IP:5000**`\n  \n  },\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"AgentDVR LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://ispycontent.azureedge.net/img/ispy2.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> AgentDVR LXC </h1>\n\n  [AgentDVR](https://www.ispyconnect.com/) a new video surveillance solution for the Internet Of Things.\n  \n  To create a new Proxmox VE AgentDVR LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/agentdvr.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **AgentDVR Interface: IP:8090**`\n  \n},\n  {\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"Shinobi NVR LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://gitlab.com/uploads/-/system/project/avatar/6947723/mstile-150x150.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> Shinobi NVR LXC </h1>\n\n  [Shinobi](https://shinobi.video/) is an open-source, self-hosted network video recording (NVR) software. It allows you to manage and monitor security cameras and record video footage. Shinobi can be run on various platforms including Linux, macOS, and Raspberry Pi, and offers features such as real-time streaming, motion detection, and email notifications.\n  \n  To create a new Proxmox VE Shinobi NVR LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update Shinobi, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/shinobi.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **Shinobi Interface: IP:8080**\n\n  **Shinobi Admin Interface: IP:8080/super**\n  \n  ⚙️ **Initial Admin Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin@shinobi.video</code>\n  \n  **password** <code class=\"highlighter-rouge\">admin</code>`\n  \n},\n{\n    \"category\": \"Miscellaneous\",\n\n    \"title\": \"MotionEye NVR LXC\",\n    \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/motioneye/icon.png?raw=true\" height=\"100\"/></p>\n  \n  <h1 align=\"center\" id=\"heading\"> MotionEye NVR LXC </h1>\n\n  MotionEye is an open-source, self-hosted network video recording (NVR) software designed to manage and monitor IP cameras. It runs on various platforms such as Linux, Raspberry Pi, and Docker, and offers features such as real-time video streaming, motion detection, and customizable camera views.\n  \n  To create a new Proxmox VE MotionEye NVR LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\n  To Update MotionEye, run the command below (or type update) in the <b>LXC Console</b>.\n  ~~~bash\n  bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/motioneye.sh)\"\n  ~~~\n  \n  <h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n  \n  **MotionEye Interface: IP:8765**\n  \n  ⚙️ **Initial Login**\n  \n  **username** <code class=\"highlighter-rouge\">admin</code>\n  \n  **password** <code class=\"highlighter-rouge\">    </code>`\n  \n},\n{\n  \"category\": \"Miscellaneous\",\n\n  \"title\": \"Hyperion LXC\",\n  \"content\": `<p align=\"center\"><img src=\"https://github.com/hyperion-project/hyperion.ng/raw/master/doc/logo_dark.png?raw=true\" height=\"100\"/></p>\n\n<h1 align=\"center\" id=\"heading\"> Hyperion LXC </h1>\n\nHyperion is an opensource Ambient Lighting implementation. It supports many LED devices and video grabbers.\n\nTo create a new Proxmox VE Hyperion LXC, run the command below in the <b>Proxmox VE Shell</b>. <br>\nTo Update Hyperion, run the command below (or type update) in the <b>LXC Console</b>.\n\n~~~bash\nbash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/hyperion.sh)\"\n~~~\n\n<h3 align=\"center\" id=\"heading\">⚡ Default Settings:  512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n\n**Hyperion Interface: IP:8090**`\n\n},\n{\n  \"category\": \"Miscellaneous\",\n\n  \"title\": \"All Templates\",\n  \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/proxmox.svg\" height=\"100\"/></p>\n\n<h1 align=\"center\" id=\"heading\"> All Templates </h1>\n\nA script designed to allow for the creation of one of the many free LXC templates. Great for creating system LXCs.<br>\nThe script creates a *.creds file in the Proxmox root directory with the password of the newly created LXC.<br>\nPlease take note that if you plan to use this script for creating TurnKey LXCs, you'll need to modify the hostname after creation.\n\nTo create a new Proxmox VE Template LXC, run the command below in the <b>Proxmox VE Shell</b>.\n\n~~~bash\nbash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/all-templates.sh)\"\n~~~\n\n<h3 align=\"center\" id=\"heading\">⚡ Default Settings:  2GB RAM - 8GB Storage - 2vCPU- onboot 0 - DHCP - Unprivileged ⚡</h3><br>\nResource and network settings are adjustable post LXC creation.`\n\n}\n  ]\n}\n  \nexport default data;","export default function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}","function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n  return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  Object.defineProperty(subClass, \"prototype\", {\n    writable: false\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n  try {\n    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}","export default function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, _typeof(obj);\n}","export default function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  } else if (call !== void 0) {\n    throw new TypeError(\"Derived constructors may only return object or undefined\");\n  }\n  return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n  var hasNativeReflectConstruct = isNativeReflectConstruct();\n  return function _createSuperInternal() {\n    var Super = getPrototypeOf(Derived),\n      result;\n    if (hasNativeReflectConstruct) {\n      var NewTarget = getPrototypeOf(this).constructor;\n      result = Reflect.construct(Super, arguments, NewTarget);\n    } else {\n      result = Super.apply(this, arguments);\n    }\n    return possibleConstructorReturn(this, result);\n  };\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n  if (isNativeReflectConstruct()) {\n    _construct = Reflect.construct.bind();\n  } else {\n    _construct = function _construct(Parent, args, Class) {\n      var a = [null];\n      a.push.apply(a, args);\n      var Constructor = Function.bind.apply(Parent, a);\n      var instance = new Constructor();\n      if (Class) setPrototypeOf(instance, Class.prototype);\n      return instance;\n    };\n  }\n  return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n  var _cache = typeof Map === \"function\" ? new Map() : undefined;\n  _wrapNativeSuper = function _wrapNativeSuper(Class) {\n    if (Class === null || !isNativeFunction(Class)) return Class;\n    if (typeof Class !== \"function\") {\n      throw new TypeError(\"Super expression must either be null or a function\");\n    }\n    if (typeof _cache !== \"undefined\") {\n      if (_cache.has(Class)) return _cache.get(Class);\n      _cache.set(Class, Wrapper);\n    }\n    function Wrapper() {\n      return construct(Class, arguments, getPrototypeOf(this).constructor);\n    }\n    Wrapper.prototype = Object.create(Class.prototype, {\n      constructor: {\n        value: Wrapper,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n    return setPrototypeOf(Wrapper, Class);\n  };\n  return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n  return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {object & {type: string, position?: Position|undefined}} NodeLike\n */\n\n/**\n * Stringify one point, a position (start and end points), or a node’s\n * positional information.\n *\n * @param {Node|NodeLike|Position|Point|null} [value]\n * @returns {string}\n */\nexport function stringifyPosition(value) {\n  // Nothing.\n  if (!value || typeof value !== 'object') {\n    return ''\n  }\n\n  // Node.\n  if ('position' in value || 'type' in value) {\n    return position(value.position)\n  }\n\n  // Position.\n  if ('start' in value || 'end' in value) {\n    return position(value)\n  }\n\n  // Point.\n  if ('line' in value || 'column' in value) {\n    return point(value)\n  }\n\n  // ?\n  return ''\n}\n\n/**\n * @param {Point|undefined} point\n * @returns {string}\n */\nfunction point(point) {\n  return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position|undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n  return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number|undefined} value\n * @returns {number}\n */\nfunction index(value) {\n  return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {object & {type: string, position?: Position|undefined}} NodeLike\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\nexport class VFileMessage extends Error {\n  /**\n   * Constructor of a message for `reason` at `place` from `origin`.\n   * When an error is passed in as `reason`, copies the `stack`.\n   *\n   * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given.\n   * @param {Node|NodeLike|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional).\n   * @param {string} [origin] Place in code the message originates from (`string`, optional).\n   */\n  constructor(reason, place, origin) {\n    /** @type {[string|null, string|null]} */\n    const parts = [null, null]\n    /** @type {Position} */\n    let position = {\n      // @ts-expect-error: we always follows the structure of `position`.\n      start: {line: null, column: null},\n      // @ts-expect-error: \"\n      end: {line: null, column: null}\n    }\n\n    super()\n\n    if (typeof place === 'string') {\n      origin = place\n      place = undefined\n    }\n\n    if (typeof origin === 'string') {\n      const index = origin.indexOf(':')\n\n      if (index === -1) {\n        parts[1] = origin\n      } else {\n        parts[0] = origin.slice(0, index)\n        parts[1] = origin.slice(index + 1)\n      }\n    }\n\n    if (place) {\n      // Node.\n      if ('type' in place || 'position' in place) {\n        if (place.position) {\n          position = place.position\n        }\n      }\n      // Position.\n      else if ('start' in place || 'end' in place) {\n        position = place\n      }\n      // Point.\n      else if ('line' in place || 'column' in place) {\n        position.start = place\n      }\n    }\n\n    // Fields from `Error`\n    this.name = stringifyPosition(place) || '1:1'\n    this.message = typeof reason === 'object' ? reason.message : reason\n    this.stack = typeof reason === 'object' ? reason.stack : ''\n\n    /**\n     * Reason for message.\n     * @type {string}\n     */\n    this.reason = this.message\n    /**\n     * If true, marks associated file as no longer processable.\n     * @type {boolean?}\n     */\n    // eslint-disable-next-line no-unused-expressions\n    this.fatal\n    /**\n     * Starting line of error.\n     * @type {number?}\n     */\n    this.line = position.start.line\n    /**\n     * Starting column of error.\n     * @type {number?}\n     */\n    this.column = position.start.column\n    /**\n     * Namespace of warning.\n     * @type {string?}\n     */\n    this.source = parts[0]\n    /**\n     * Category of message.\n     * @type {string?}\n     */\n    this.ruleId = parts[1]\n    /**\n     * Full range information, when available.\n     * Has start and end properties, both set to an object with line and column, set to number?.\n     * @type {Position?}\n     */\n    this.position = position\n\n    // The following fields are “well known”.\n    // Not standard.\n    // Feel free to add other non-standard fields to your messages.\n\n    /* eslint-disable no-unused-expressions */\n    /**\n     * You can use this to specify the source value that’s being reported, which\n     * is deemed incorrect.\n     * @type {string?}\n     */\n    this.actual\n    /**\n     * You can use this to suggest values that should be used instead of\n     * `actual`, one or more values that are deemed as acceptable.\n     * @type {Array<string>?}\n     */\n    this.expected\n    /**\n     * You may add a file property with a path of a file (used throughout the VFile ecosystem).\n     * @type {string?}\n     */\n    this.file\n    /**\n     * You may add a url property with a link to documentation for the message.\n     * @type {string?}\n     */\n    this.url\n    /**\n     * You may add a note property with a long form description of the message (supported by vfile-reporter).\n     * @type {string?}\n     */\n    this.note\n    /* eslint-enable no-unused-expressions */\n  }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\n","// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * @param {string} path\n * @param {string} [ext]\n * @returns {string}\n */\nfunction basename(path, ext) {\n  if (ext !== undefined && typeof ext !== 'string') {\n    throw new TypeError('\"ext\" argument must be a string')\n  }\n\n  assertPath(path)\n  let start = 0\n  let end = -1\n  let index = path.length\n  /** @type {boolean|undefined} */\n  let seenNonSlash\n\n  if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n    while (index--) {\n      if (path.charCodeAt(index) === 47 /* `/` */) {\n        // If we reached a path separator that was not part of a set of path\n        // separators at the end of the string, stop now.\n        if (seenNonSlash) {\n          start = index + 1\n          break\n        }\n      } else if (end < 0) {\n        // We saw the first non-path separator, mark this as the end of our\n        // path component.\n        seenNonSlash = true\n        end = index + 1\n      }\n    }\n\n    return end < 0 ? '' : path.slice(start, end)\n  }\n\n  if (ext === path) {\n    return ''\n  }\n\n  let firstNonSlashEnd = -1\n  let extIndex = ext.length - 1\n\n  while (index--) {\n    if (path.charCodeAt(index) === 47 /* `/` */) {\n      // If we reached a path separator that was not part of a set of path\n      // separators at the end of the string, stop now.\n      if (seenNonSlash) {\n        start = index + 1\n        break\n      }\n    } else {\n      if (firstNonSlashEnd < 0) {\n        // We saw the first non-path separator, remember this index in case\n        // we need it if the extension ends up not matching.\n        seenNonSlash = true\n        firstNonSlashEnd = index + 1\n      }\n\n      if (extIndex > -1) {\n        // Try to match the explicit extension.\n        if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n          if (extIndex < 0) {\n            // We matched the extension, so mark this as the end of our path\n            // component\n            end = index\n          }\n        } else {\n          // Extension does not match, so our result is the entire path\n          // component\n          extIndex = -1\n          end = firstNonSlashEnd\n        }\n      }\n    }\n  }\n\n  if (start === end) {\n    end = firstNonSlashEnd\n  } else if (end < 0) {\n    end = path.length\n  }\n\n  return path.slice(start, end)\n}\n\n/**\n * @param {string} path\n * @returns {string}\n */\nfunction dirname(path) {\n  assertPath(path)\n\n  if (path.length === 0) {\n    return '.'\n  }\n\n  let end = -1\n  let index = path.length\n  /** @type {boolean|undefined} */\n  let unmatchedSlash\n\n  // Prefix `--` is important to not run on `0`.\n  while (--index) {\n    if (path.charCodeAt(index) === 47 /* `/` */) {\n      if (unmatchedSlash) {\n        end = index\n        break\n      }\n    } else if (!unmatchedSlash) {\n      // We saw the first non-path separator\n      unmatchedSlash = true\n    }\n  }\n\n  return end < 0\n    ? path.charCodeAt(0) === 47 /* `/` */\n      ? '/'\n      : '.'\n    : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n    ? '//'\n    : path.slice(0, end)\n}\n\n/**\n * @param {string} path\n * @returns {string}\n */\nfunction extname(path) {\n  assertPath(path)\n\n  let index = path.length\n\n  let end = -1\n  let startPart = 0\n  let startDot = -1\n  // Track the state of characters (if any) we see before our first dot and\n  // after any path separator we find.\n  let preDotState = 0\n  /** @type {boolean|undefined} */\n  let unmatchedSlash\n\n  while (index--) {\n    const code = path.charCodeAt(index)\n\n    if (code === 47 /* `/` */) {\n      // If we reached a path separator that was not part of a set of path\n      // separators at the end of the string, stop now.\n      if (unmatchedSlash) {\n        startPart = index + 1\n        break\n      }\n\n      continue\n    }\n\n    if (end < 0) {\n      // We saw the first non-path separator, mark this as the end of our\n      // extension.\n      unmatchedSlash = true\n      end = index + 1\n    }\n\n    if (code === 46 /* `.` */) {\n      // If this is our first dot, mark it as the start of our extension.\n      if (startDot < 0) {\n        startDot = index\n      } else if (preDotState !== 1) {\n        preDotState = 1\n      }\n    } else if (startDot > -1) {\n      // We saw a non-dot and non-path separator before our dot, so we should\n      // have a good chance at having a non-empty extension.\n      preDotState = -1\n    }\n  }\n\n  if (\n    startDot < 0 ||\n    end < 0 ||\n    // We saw a non-dot character immediately before the dot.\n    preDotState === 0 ||\n    // The (right-most) trimmed path component is exactly `..`.\n    (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n  ) {\n    return ''\n  }\n\n  return path.slice(startDot, end)\n}\n\n/**\n * @param {Array<string>} segments\n * @returns {string}\n */\nfunction join(...segments) {\n  let index = -1\n  /** @type {string|undefined} */\n  let joined\n\n  while (++index < segments.length) {\n    assertPath(segments[index])\n\n    if (segments[index]) {\n      joined =\n        joined === undefined ? segments[index] : joined + '/' + segments[index]\n    }\n  }\n\n  return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Note: `normalize` is not exposed as `path.normalize`, so some code is\n * manually removed from it.\n *\n * @param {string} path\n * @returns {string}\n */\nfunction normalize(path) {\n  assertPath(path)\n\n  const absolute = path.charCodeAt(0) === 47 /* `/` */\n\n  // Normalize the path according to POSIX rules.\n  let value = normalizeString(path, !absolute)\n\n  if (value.length === 0 && !absolute) {\n    value = '.'\n  }\n\n  if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {\n    value += '/'\n  }\n\n  return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * @param {boolean} allowAboveRoot\n * @returns {string}\n */\nfunction normalizeString(path, allowAboveRoot) {\n  let result = ''\n  let lastSegmentLength = 0\n  let lastSlash = -1\n  let dots = 0\n  let index = -1\n  /** @type {number|undefined} */\n  let code\n  /** @type {number} */\n  let lastSlashIndex\n\n  while (++index <= path.length) {\n    if (index < path.length) {\n      code = path.charCodeAt(index)\n    } else if (code === 47 /* `/` */) {\n      break\n    } else {\n      code = 47 /* `/` */\n    }\n\n    if (code === 47 /* `/` */) {\n      if (lastSlash === index - 1 || dots === 1) {\n        // Empty.\n      } else if (lastSlash !== index - 1 && dots === 2) {\n        if (\n          result.length < 2 ||\n          lastSegmentLength !== 2 ||\n          result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n          result.charCodeAt(result.length - 2) !== 46 /* `.` */\n        ) {\n          if (result.length > 2) {\n            lastSlashIndex = result.lastIndexOf('/')\n\n            if (lastSlashIndex !== result.length - 1) {\n              if (lastSlashIndex < 0) {\n                result = ''\n                lastSegmentLength = 0\n              } else {\n                result = result.slice(0, lastSlashIndex)\n                lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n              }\n\n              lastSlash = index\n              dots = 0\n              continue\n            }\n          } else if (result.length > 0) {\n            result = ''\n            lastSegmentLength = 0\n            lastSlash = index\n            dots = 0\n            continue\n          }\n        }\n\n        if (allowAboveRoot) {\n          result = result.length > 0 ? result + '/..' : '..'\n          lastSegmentLength = 2\n        }\n      } else {\n        if (result.length > 0) {\n          result += '/' + path.slice(lastSlash + 1, index)\n        } else {\n          result = path.slice(lastSlash + 1, index)\n        }\n\n        lastSegmentLength = index - lastSlash - 1\n      }\n\n      lastSlash = index\n      dots = 0\n    } else if (code === 46 /* `.` */ && dots > -1) {\n      dots++\n    } else {\n      dots = -1\n    }\n  }\n\n  return result\n}\n\n/**\n * @param {string} path\n */\nfunction assertPath(path) {\n  if (typeof path !== 'string') {\n    throw new TypeError(\n      'Path must be a string. Received ' + JSON.stringify(path)\n    )\n  }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n  return '/'\n}\n","/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * @param {unknown} fileURLOrPath\n * @returns {fileURLOrPath is URL}\n */\n// From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>\nexport function isUrl(fileURLOrPath) {\n  return (\n    fileURLOrPath !== null &&\n    typeof fileURLOrPath === 'object' &&\n    // @ts-expect-error: indexable.\n    fileURLOrPath.href &&\n    // @ts-expect-error: indexable.\n    fileURLOrPath.origin\n  )\n}\n","/// <reference lib=\"dom\" />\n\nimport {isUrl} from './minurl.shared.js'\n\n// See: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js>\n\n/**\n * @param {string|URL} path\n */\nexport function urlToPath(path) {\n  if (typeof path === 'string') {\n    path = new URL(path)\n  } else if (!isUrl(path)) {\n    /** @type {NodeJS.ErrnoException} */\n    const error = new TypeError(\n      'The \"path\" argument must be of type string or an instance of URL. Received `' +\n        path +\n        '`'\n    )\n    error.code = 'ERR_INVALID_ARG_TYPE'\n    throw error\n  }\n\n  if (path.protocol !== 'file:') {\n    /** @type {NodeJS.ErrnoException} */\n    const error = new TypeError('The URL must be of scheme file')\n    error.code = 'ERR_INVALID_URL_SCHEME'\n    throw error\n  }\n\n  return getPathFromURLPosix(path)\n}\n\n/**\n * @param {URL} url\n */\nfunction getPathFromURLPosix(url) {\n  if (url.hostname !== '') {\n    /** @type {NodeJS.ErrnoException} */\n    const error = new TypeError(\n      'File URL host must be \"localhost\" or empty on darwin'\n    )\n    error.code = 'ERR_INVALID_FILE_URL_HOST'\n    throw error\n  }\n\n  const pathname = url.pathname\n  let index = -1\n\n  while (++index < pathname.length) {\n    if (\n      pathname.charCodeAt(index) === 37 /* `%` */ &&\n      pathname.charCodeAt(index + 1) === 50 /* `2` */\n    ) {\n      const third = pathname.charCodeAt(index + 2)\n      if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n        /** @type {NodeJS.ErrnoException} */\n        const error = new TypeError(\n          'File URL path must not include encoded / characters'\n        )\n        error.code = 'ERR_INVALID_FILE_URL_PATH'\n        throw error\n      }\n    }\n  }\n\n  return decodeURIComponent(pathname)\n}\n\nexport {isUrl} from './minurl.shared.js'\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {Record<string, unknown> & {type: string, position?: Position|undefined}} NodeLike\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n *\n * @typedef {'ascii'|'utf8'|'utf-8'|'utf16le'|'ucs2'|'ucs-2'|'base64'|'base64url'|'latin1'|'binary'|'hex'} BufferEncoding\n *   Encodings supported by the buffer class.\n *   This is a copy of the typing from Node, copied to prevent Node globals from\n *   being needed.\n *   Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/90a4ec8/types/node/buffer.d.ts#L170>\n *\n * @typedef {Value|Options|VFile|URL} Compatible\n *   Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * @property {Value} [value]\n * @property {string} [cwd]\n * @property {Array<string>} [history]\n * @property {string|URL} [path]\n * @property {string} [basename]\n * @property {string} [stem]\n * @property {string} [extname]\n * @property {string} [dirname]\n * @property {Data} [data]\n *\n * @typedef Map\n *   Raw source map, see:\n *   <https://github.com/mozilla/source-map/blob/58819f0/source-map.d.ts#L15-L23>.\n * @property {number} version\n * @property {Array<string>} sources\n * @property {Array<string>} names\n * @property {string|undefined} [sourceRoot]\n * @property {Array<string>|undefined} [sourcesContent]\n * @property {string} mappings\n * @property {string} file\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options\n *   Configuration: a bunch of keys that will be shallow copied over to the new\n *   file.\n *\n * @typedef {Record<string, unknown>} ReporterSettings\n * @typedef {<T = ReporterSettings>(files: Array<VFile>, options: T) => string} Reporter\n */\n\nimport buffer from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\n\n// Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n  /**\n   * Create a new virtual file.\n   *\n   * If `options` is `string` or `Buffer`, it’s treated as `{value: options}`.\n   * If `options` is a `URL`, it’s treated as `{path: options}`.\n   * If `options` is a `VFile`, shallow copies its data over to the new file.\n   * All fields in `options` are set on the newly created `VFile`.\n   *\n   * Path related fields are set in the following order (least specific to\n   * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n   * `dirname`.\n   *\n   * It’s not possible to set either `dirname` or `extname` without setting\n   * either `history`, `path`, `basename`, or `stem` as well.\n   *\n   * @param {Compatible} [value]\n   */\n  constructor(value) {\n    /** @type {Options} */\n    let options\n\n    if (!value) {\n      options = {}\n    } else if (typeof value === 'string' || buffer(value)) {\n      // @ts-expect-error Looks like a buffer.\n      options = {value}\n    } else if (isUrl(value)) {\n      options = {path: value}\n    } else {\n      // @ts-expect-error Looks like file or options.\n      options = value\n    }\n\n    /**\n     * Place to store custom information (default: `{}`).\n     * It’s OK to store custom data directly on the file but moving it to\n     * `data` is recommended.\n     * @type {Data}\n     */\n    this.data = {}\n\n    /**\n     * List of messages associated with the file.\n     * @type {Array<VFileMessage>}\n     */\n    this.messages = []\n\n    /**\n     * List of filepaths the file moved between.\n     * The first is the original path and the last is the current path.\n     * @type {Array<string>}\n     */\n    this.history = []\n\n    /**\n     * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n     * @type {string}\n     */\n    this.cwd = proc.cwd()\n\n    /* eslint-disable no-unused-expressions */\n    /**\n     * Raw value.\n     * @type {Value}\n     */\n    this.value\n\n    // The below are non-standard, they are “well-known”.\n    // As in, used in several tools.\n\n    /**\n     * Whether a file was saved to disk.\n     * This is used by vfile reporters.\n     * @type {boolean}\n     */\n    this.stored\n\n    /**\n     * Sometimes files have a non-string, compiled, representation.\n     * This can be stored in the `result` field.\n     * One example is when turning markdown into React nodes.\n     * This is used by unified to store non-string results.\n     * @type {unknown}\n     */\n    this.result\n\n    /**\n     * Sometimes files have a source map associated with them.\n     * This can be stored in the `map` field.\n     * This should be a `Map` type, which is equivalent to the `RawSourceMap`\n     * type from the `source-map` module.\n     * @type {Map|undefined}\n     */\n    this.map\n    /* eslint-enable no-unused-expressions */\n\n    // Set path related properties in the correct order.\n    let index = -1\n\n    while (++index < order.length) {\n      const prop = order[index]\n\n      // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n      // `vfile`s too.\n      if (prop in options && options[prop] !== undefined) {\n        // @ts-expect-error: TS is confused by the different types for `history`.\n        this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n      }\n    }\n\n    /** @type {string} */\n    let prop\n\n    // Set non-path related properties.\n    for (prop in options) {\n      // @ts-expect-error: fine to set other things.\n      if (!order.includes(prop)) this[prop] = options[prop]\n    }\n  }\n\n  /**\n   * Get the full path (example: `'~/index.min.js'`).\n   * @returns {string}\n   */\n  get path() {\n    return this.history[this.history.length - 1]\n  }\n\n  /**\n   * Set the full path (example: `'~/index.min.js'`).\n   * Cannot be nullified.\n   * You can set a file URL (a `URL` object with a `file:` protocol) which will\n   * be turned into a path with `url.fileURLToPath`.\n   * @param {string|URL} path\n   */\n  set path(path) {\n    if (isUrl(path)) {\n      path = urlToPath(path)\n    }\n\n    assertNonEmpty(path, 'path')\n\n    if (this.path !== path) {\n      this.history.push(path)\n    }\n  }\n\n  /**\n   * Get the parent path (example: `'~'`).\n   */\n  get dirname() {\n    return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n  }\n\n  /**\n   * Set the parent path (example: `'~'`).\n   * Cannot be set if there’s no `path` yet.\n   */\n  set dirname(dirname) {\n    assertPath(this.basename, 'dirname')\n    this.path = path.join(dirname || '', this.basename)\n  }\n\n  /**\n   * Get the basename (including extname) (example: `'index.min.js'`).\n   */\n  get basename() {\n    return typeof this.path === 'string' ? path.basename(this.path) : undefined\n  }\n\n  /**\n   * Set basename (including extname) (`'index.min.js'`).\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be nullified (use `file.path = file.dirname` instead).\n   */\n  set basename(basename) {\n    assertNonEmpty(basename, 'basename')\n    assertPart(basename, 'basename')\n    this.path = path.join(this.dirname || '', basename)\n  }\n\n  /**\n   * Get the extname (including dot) (example: `'.js'`).\n   */\n  get extname() {\n    return typeof this.path === 'string' ? path.extname(this.path) : undefined\n  }\n\n  /**\n   * Set the extname (including dot) (example: `'.js'`).\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be set if there’s no `path` yet.\n   */\n  set extname(extname) {\n    assertPart(extname, 'extname')\n    assertPath(this.dirname, 'extname')\n\n    if (extname) {\n      if (extname.charCodeAt(0) !== 46 /* `.` */) {\n        throw new Error('`extname` must start with `.`')\n      }\n\n      if (extname.includes('.', 1)) {\n        throw new Error('`extname` cannot contain multiple dots')\n      }\n    }\n\n    this.path = path.join(this.dirname, this.stem + (extname || ''))\n  }\n\n  /**\n   * Get the stem (basename w/o extname) (example: `'index.min'`).\n   */\n  get stem() {\n    return typeof this.path === 'string'\n      ? path.basename(this.path, this.extname)\n      : undefined\n  }\n\n  /**\n   * Set the stem (basename w/o extname) (example: `'index.min'`).\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be nullified (use `file.path = file.dirname` instead).\n   */\n  set stem(stem) {\n    assertNonEmpty(stem, 'stem')\n    assertPart(stem, 'stem')\n    this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n  }\n\n  /**\n   * Serialize the file.\n   *\n   * @param {BufferEncoding} [encoding='utf8']\n   *   When `value` is a `Buffer`, `encoding` is a character encoding to\n   *   understand it as (default: `'utf8'`).\n   * @returns {string}\n   *   Serialized file.\n   */\n  toString(encoding) {\n    return (this.value || '').toString(encoding)\n  }\n\n  /**\n   * Constructs a new `VFileMessage`, where `fatal` is set to `false`, and\n   * associates it with the file by adding it to `vfile.messages` and setting\n   * `message.file` to the current filepath.\n   *\n   * @param {string|Error} reason\n   *   Human readable reason for the message, uses the stack and message of the error if given.\n   * @param {Node|NodeLike|Position|Point} [place]\n   *   Place where the message occurred in the file.\n   * @param {string} [origin]\n   *   Computer readable reason for the message\n   * @returns {VFileMessage}\n   *   Message.\n   */\n  message(reason, place, origin) {\n    const message = new VFileMessage(reason, place, origin)\n\n    if (this.path) {\n      message.name = this.path + ':' + message.name\n      message.file = this.path\n    }\n\n    message.fatal = false\n\n    this.messages.push(message)\n\n    return message\n  }\n\n  /**\n   * Like `VFile#message()`, but associates an informational message where\n   * `fatal` is set to `null`.\n   *\n   * @param {string|Error} reason\n   *   Human readable reason for the message, uses the stack and message of the error if given.\n   * @param {Node|NodeLike|Position|Point} [place]\n   *   Place where the message occurred in the file.\n   * @param {string} [origin]\n   *   Computer readable reason for the message\n   * @returns {VFileMessage}\n   *   Message.\n   */\n  info(reason, place, origin) {\n    const message = this.message(reason, place, origin)\n\n    message.fatal = null\n\n    return message\n  }\n\n  /**\n   * Like `VFile#message()`, but associates a fatal message where `fatal` is\n   * set to `true`, and then immediately throws it.\n   *\n   * > 👉 **Note**: a fatal error means that a file is no longer processable.\n   *\n   * @param {string|Error} reason\n   *   Human readable reason for the message, uses the stack and message of the error if given.\n   * @param {Node|NodeLike|Position|Point} [place]\n   *   Place where the message occurred in the file.\n   * @param {string} [origin]\n   *   Computer readable reason for the message\n   * @returns {never}\n   *   Message.\n   */\n  fail(reason, place, origin) {\n    const message = this.message(reason, place, origin)\n\n    message.fatal = true\n\n    throw message\n  }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {void}\n */\nfunction assertPart(part, name) {\n  if (part && part.includes(path.sep)) {\n    throw new Error(\n      '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n    )\n  }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {asserts part is string}\n */\nfunction assertNonEmpty(part, name) {\n  if (!part) {\n    throw new Error('`' + name + '` cannot be empty')\n  }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string|undefined} path\n * @param {string} name\n * @returns {asserts path is string}\n */\nfunction assertPath(path, name) {\n  if (!path) {\n    throw new Error('Setting `' + name + '` requires `path` to be set too')\n  }\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n  return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n *   Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n  if (error) {\n    throw error\n  }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","/**\n * @typedef {(error?: Error|null|undefined, ...output: Array<any>) => void} Callback\n * @typedef {(...input: Array<any>) => any} Middleware\n *\n * @typedef {(...input: Array<any>) => void} Run\n *   Call all middleware.\n * @typedef {(fn: Middleware) => Pipeline} Use\n *   Add `fn` (middleware) to the list.\n * @typedef {{run: Run, use: Use}} Pipeline\n *   Middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n */\nexport function trough() {\n  /** @type {Array<Middleware>} */\n  const fns = []\n  /** @type {Pipeline} */\n  const pipeline = {run, use}\n\n  return pipeline\n\n  /** @type {Run} */\n  function run(...values) {\n    let middlewareIndex = -1\n    /** @type {Callback} */\n    const callback = values.pop()\n\n    if (typeof callback !== 'function') {\n      throw new TypeError('Expected function as last argument, not ' + callback)\n    }\n\n    next(null, ...values)\n\n    /**\n     * Run the next `fn`, or we’re done.\n     *\n     * @param {Error|null|undefined} error\n     * @param {Array<any>} output\n     */\n    function next(error, ...output) {\n      const fn = fns[++middlewareIndex]\n      let index = -1\n\n      if (error) {\n        callback(error)\n        return\n      }\n\n      // Copy non-nullish input into values.\n      while (++index < values.length) {\n        if (output[index] === null || output[index] === undefined) {\n          output[index] = values[index]\n        }\n      }\n\n      // Save the newly created `output` for the next call.\n      values = output\n\n      // Next or done.\n      if (fn) {\n        wrap(fn, next)(...output)\n      } else {\n        callback(null, ...output)\n      }\n    }\n  }\n\n  /** @type {Use} */\n  function use(middelware) {\n    if (typeof middelware !== 'function') {\n      throw new TypeError(\n        'Expected `middelware` to be a function, not ' + middelware\n      )\n    }\n\n    fns.push(middelware)\n    return pipeline\n  }\n}\n\n/**\n * Wrap `middleware`.\n * Can be sync or async; return a promise, receive a callback, or return new\n * values and errors.\n *\n * @param {Middleware} middleware\n * @param {Callback} callback\n */\nexport function wrap(middleware, callback) {\n  /** @type {boolean} */\n  let called\n\n  return wrapped\n\n  /**\n   * Call `middleware`.\n   * @this {any}\n   * @param {Array<any>} parameters\n   * @returns {void}\n   */\n  function wrapped(...parameters) {\n    const fnExpectsCallback = middleware.length > parameters.length\n    /** @type {any} */\n    let result\n\n    if (fnExpectsCallback) {\n      parameters.push(done)\n    }\n\n    try {\n      result = middleware.apply(this, parameters)\n    } catch (error) {\n      const exception = /** @type {Error} */ (error)\n\n      // Well, this is quite the pickle.\n      // `middleware` received a callback and called it synchronously, but that\n      // threw an error.\n      // The only thing left to do is to throw the thing instead.\n      if (fnExpectsCallback && called) {\n        throw exception\n      }\n\n      return done(exception)\n    }\n\n    if (!fnExpectsCallback) {\n      if (result instanceof Promise) {\n        result.then(then, done)\n      } else if (result instanceof Error) {\n        done(result)\n      } else {\n        then(result)\n      }\n    }\n  }\n\n  /**\n   * Call `callback`, only once.\n   * @type {Callback}\n   */\n  function done(error, ...output) {\n    if (!called) {\n      called = true\n      callback(error, ...output)\n    }\n  }\n\n  /**\n   * Call `done` with one value.\n   *\n   * @param {any} [value]\n   */\n  function then(value) {\n    done(null, value)\n  }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport {bail} from 'bail'\nimport isBuffer from 'is-buffer'\nimport extend from 'extend'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\n\n// Expose a frozen processor.\nexport const unified = base().freeze()\n\nconst own = {}.hasOwnProperty\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n  const transformers = trough()\n  /** @type {Processor['attachers']} */\n  const attachers = []\n  /** @type {Record<string, unknown>} */\n  let namespace = {}\n  /** @type {boolean|undefined} */\n  let frozen\n  let freezeIndex = -1\n\n  // Data management.\n  // @ts-expect-error: overloads are handled.\n  processor.data = data\n  processor.Parser = undefined\n  processor.Compiler = undefined\n\n  // Lock.\n  processor.freeze = freeze\n\n  // Plugins.\n  processor.attachers = attachers\n  // @ts-expect-error: overloads are handled.\n  processor.use = use\n\n  // API.\n  processor.parse = parse\n  processor.stringify = stringify\n  // @ts-expect-error: overloads are handled.\n  processor.run = run\n  processor.runSync = runSync\n  // @ts-expect-error: overloads are handled.\n  processor.process = process\n  processor.processSync = processSync\n\n  // Expose.\n  return processor\n\n  // Create a new processor based on the processor in the current scope.\n  /** @type {Processor} */\n  function processor() {\n    const destination = base()\n    let index = -1\n\n    while (++index < attachers.length) {\n      destination.use(...attachers[index])\n    }\n\n    destination.data(extend(true, {}, namespace))\n\n    return destination\n  }\n\n  /**\n   * @param {string|Record<string, unknown>} [key]\n   * @param {unknown} [value]\n   * @returns {unknown}\n   */\n  function data(key, value) {\n    if (typeof key === 'string') {\n      // Set `key`.\n      if (arguments.length === 2) {\n        assertUnfrozen('data', frozen)\n        namespace[key] = value\n        return processor\n      }\n\n      // Get `key`.\n      return (own.call(namespace, key) && namespace[key]) || null\n    }\n\n    // Set space.\n    if (key) {\n      assertUnfrozen('data', frozen)\n      namespace = key\n      return processor\n    }\n\n    // Get space.\n    return namespace\n  }\n\n  /** @type {Processor['freeze']} */\n  function freeze() {\n    if (frozen) {\n      return processor\n    }\n\n    while (++freezeIndex < attachers.length) {\n      const [attacher, ...options] = attachers[freezeIndex]\n\n      if (options[0] === false) {\n        continue\n      }\n\n      if (options[0] === true) {\n        options[0] = undefined\n      }\n\n      /** @type {Transformer|void} */\n      const transformer = attacher.call(processor, ...options)\n\n      if (typeof transformer === 'function') {\n        transformers.use(transformer)\n      }\n    }\n\n    frozen = true\n    freezeIndex = Number.POSITIVE_INFINITY\n\n    return processor\n  }\n\n  /**\n   * @param {Pluggable|null|undefined} [value]\n   * @param {...unknown} options\n   * @returns {Processor}\n   */\n  function use(value, ...options) {\n    /** @type {Record<string, unknown>|undefined} */\n    let settings\n\n    assertUnfrozen('use', frozen)\n\n    if (value === null || value === undefined) {\n      // Empty.\n    } else if (typeof value === 'function') {\n      addPlugin(value, ...options)\n    } else if (typeof value === 'object') {\n      if (Array.isArray(value)) {\n        addList(value)\n      } else {\n        addPreset(value)\n      }\n    } else {\n      throw new TypeError('Expected usable value, not `' + value + '`')\n    }\n\n    if (settings) {\n      namespace.settings = Object.assign(namespace.settings || {}, settings)\n    }\n\n    return processor\n\n    /**\n     * @param {import('..').Pluggable<unknown[]>} value\n     * @returns {void}\n     */\n    function add(value) {\n      if (typeof value === 'function') {\n        addPlugin(value)\n      } else if (typeof value === 'object') {\n        if (Array.isArray(value)) {\n          const [plugin, ...options] = value\n          addPlugin(plugin, ...options)\n        } else {\n          addPreset(value)\n        }\n      } else {\n        throw new TypeError('Expected usable value, not `' + value + '`')\n      }\n    }\n\n    /**\n     * @param {Preset} result\n     * @returns {void}\n     */\n    function addPreset(result) {\n      addList(result.plugins)\n\n      if (result.settings) {\n        settings = Object.assign(settings || {}, result.settings)\n      }\n    }\n\n    /**\n     * @param {PluggableList|null|undefined} [plugins]\n     * @returns {void}\n     */\n    function addList(plugins) {\n      let index = -1\n\n      if (plugins === null || plugins === undefined) {\n        // Empty.\n      } else if (Array.isArray(plugins)) {\n        while (++index < plugins.length) {\n          const thing = plugins[index]\n          add(thing)\n        }\n      } else {\n        throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n      }\n    }\n\n    /**\n     * @param {Plugin} plugin\n     * @param {...unknown} [value]\n     * @returns {void}\n     */\n    function addPlugin(plugin, value) {\n      let index = -1\n      /** @type {Processor['attachers'][number]|undefined} */\n      let entry\n\n      while (++index < attachers.length) {\n        if (attachers[index][0] === plugin) {\n          entry = attachers[index]\n          break\n        }\n      }\n\n      if (entry) {\n        if (isPlainObj(entry[1]) && isPlainObj(value)) {\n          value = extend(true, entry[1], value)\n        }\n\n        entry[1] = value\n      } else {\n        // @ts-expect-error: fine.\n        attachers.push([...arguments])\n      }\n    }\n  }\n\n  /** @type {Processor['parse']} */\n  function parse(doc) {\n    processor.freeze()\n    const file = vfile(doc)\n    const Parser = processor.Parser\n    assertParser('parse', Parser)\n\n    if (newable(Parser, 'parse')) {\n      // @ts-expect-error: `newable` checks this.\n      return new Parser(String(file), file).parse()\n    }\n\n    // @ts-expect-error: `newable` checks this.\n    return Parser(String(file), file) // eslint-disable-line new-cap\n  }\n\n  /** @type {Processor['stringify']} */\n  function stringify(node, doc) {\n    processor.freeze()\n    const file = vfile(doc)\n    const Compiler = processor.Compiler\n    assertCompiler('stringify', Compiler)\n    assertNode(node)\n\n    if (newable(Compiler, 'compile')) {\n      // @ts-expect-error: `newable` checks this.\n      return new Compiler(node, file).compile()\n    }\n\n    // @ts-expect-error: `newable` checks this.\n    return Compiler(node, file) // eslint-disable-line new-cap\n  }\n\n  /**\n   * @param {Node} node\n   * @param {VFileCompatible|RunCallback} [doc]\n   * @param {RunCallback} [callback]\n   * @returns {Promise<Node>|void}\n   */\n  function run(node, doc, callback) {\n    assertNode(node)\n    processor.freeze()\n\n    if (!callback && typeof doc === 'function') {\n      callback = doc\n      doc = undefined\n    }\n\n    if (!callback) {\n      return new Promise(executor)\n    }\n\n    executor(null, callback)\n\n    /**\n     * @param {null|((node: Node) => void)} resolve\n     * @param {(error: Error) => void} reject\n     * @returns {void}\n     */\n    function executor(resolve, reject) {\n      // @ts-expect-error: `doc` can’t be a callback anymore, we checked.\n      transformers.run(node, vfile(doc), done)\n\n      /**\n       * @param {Error|null} error\n       * @param {Node} tree\n       * @param {VFile} file\n       * @returns {void}\n       */\n      function done(error, tree, file) {\n        tree = tree || node\n        if (error) {\n          reject(error)\n        } else if (resolve) {\n          resolve(tree)\n        } else {\n          // @ts-expect-error: `callback` is defined if `resolve` is not.\n          callback(null, tree, file)\n        }\n      }\n    }\n  }\n\n  /** @type {Processor['runSync']} */\n  function runSync(node, file) {\n    /** @type {Node|undefined} */\n    let result\n    /** @type {boolean|undefined} */\n    let complete\n\n    processor.run(node, file, done)\n\n    assertDone('runSync', 'run', complete)\n\n    // @ts-expect-error: we either bailed on an error or have a tree.\n    return result\n\n    /**\n     * @param {Error|null} [error]\n     * @param {Node} [tree]\n     * @returns {void}\n     */\n    function done(error, tree) {\n      bail(error)\n      result = tree\n      complete = true\n    }\n  }\n\n  /**\n   * @param {VFileCompatible} doc\n   * @param {ProcessCallback} [callback]\n   * @returns {Promise<VFile>|undefined}\n   */\n  function process(doc, callback) {\n    processor.freeze()\n    assertParser('process', processor.Parser)\n    assertCompiler('process', processor.Compiler)\n\n    if (!callback) {\n      return new Promise(executor)\n    }\n\n    executor(null, callback)\n\n    /**\n     * @param {null|((file: VFile) => void)} resolve\n     * @param {(error?: Error|null|undefined) => void} reject\n     * @returns {void}\n     */\n    function executor(resolve, reject) {\n      const file = vfile(doc)\n\n      processor.run(processor.parse(file), file, (error, tree, file) => {\n        if (error || !tree || !file) {\n          done(error)\n        } else {\n          /** @type {unknown} */\n          const result = processor.stringify(tree, file)\n\n          if (result === undefined || result === null) {\n            // Empty.\n          } else if (looksLikeAVFileValue(result)) {\n            file.value = result\n          } else {\n            file.result = result\n          }\n\n          done(error, file)\n        }\n      })\n\n      /**\n       * @param {Error|null|undefined} [error]\n       * @param {VFile|undefined} [file]\n       * @returns {void}\n       */\n      function done(error, file) {\n        if (error || !file) {\n          reject(error)\n        } else if (resolve) {\n          resolve(file)\n        } else {\n          // @ts-expect-error: `callback` is defined if `resolve` is not.\n          callback(null, file)\n        }\n      }\n    }\n  }\n\n  /** @type {Processor['processSync']} */\n  function processSync(doc) {\n    /** @type {boolean|undefined} */\n    let complete\n\n    processor.freeze()\n    assertParser('processSync', processor.Parser)\n    assertCompiler('processSync', processor.Compiler)\n\n    const file = vfile(doc)\n\n    processor.process(file, done)\n\n    assertDone('processSync', 'process', complete)\n\n    return file\n\n    /**\n     * @param {Error|null|undefined} [error]\n     * @returns {void}\n     */\n    function done(error) {\n      complete = true\n      bail(error)\n    }\n  }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n  return (\n    typeof value === 'function' &&\n    // Prototypes do exist.\n    // type-coverage:ignore-next-line\n    value.prototype &&\n    // A function with keys in its prototype is probably a constructor.\n    // Classes’ prototype methods are not enumerable, so we check if some value\n    // exists in the prototype.\n    // type-coverage:ignore-next-line\n    (keys(value.prototype) || name in value.prototype)\n  )\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record<string, unknown>} value\n * @returns {boolean}\n */\nfunction keys(value) {\n  /** @type {string} */\n  let key\n\n  for (key in value) {\n    if (own.call(value, key)) {\n      return true\n    }\n  }\n\n  return false\n}\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n  if (typeof value !== 'function') {\n    throw new TypeError('Cannot `' + name + '` without `Parser`')\n  }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n  if (typeof value !== 'function') {\n    throw new TypeError('Cannot `' + name + '` without `Compiler`')\n  }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n  if (frozen) {\n    throw new Error(\n      'Cannot call `' +\n        name +\n        '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n    )\n  }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n  // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n  // type-coverage:ignore-next-line\n  if (!isPlainObj(node) || typeof node.type !== 'string') {\n    throw new TypeError('Expected node, got `' + node + '`')\n    // Fine.\n  }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n  if (!complete) {\n    throw new Error(\n      '`' + name + '` finished async. Use `' + asyncName + '` instead'\n    )\n  }\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n  return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n  return Boolean(\n    value &&\n      typeof value === 'object' &&\n      'message' in value &&\n      'messages' in value\n  )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n  return typeof value === 'string' || isBuffer(value)\n}\n","/**\n * @typedef Options\n * @property {boolean} [includeImageAlt=true]\n */\n\n/**\n * Get the text content of a node.\n * Prefer the node’s plain-text fields, otherwise serialize its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} node\n * @param {Options} [options]\n * @returns {string}\n */\nexport function toString(node, options) {\n  var {includeImageAlt = true} = options || {}\n  return one(node, includeImageAlt)\n}\n\n/**\n * @param {unknown} node\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction one(node, includeImageAlt) {\n  return (\n    (node &&\n      typeof node === 'object' &&\n      // @ts-ignore looks like a literal.\n      (node.value ||\n        // @ts-ignore looks like an image.\n        (includeImageAlt ? node.alt : '') ||\n        // @ts-ignore looks like a parent.\n        ('children' in node && all(node.children, includeImageAlt)) ||\n        (Array.isArray(node) && all(node, includeImageAlt)))) ||\n    ''\n  )\n}\n\n/**\n * @param {Array.<unknown>} values\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction all(values, includeImageAlt) {\n  /** @type {Array.<string>} */\n  var result = []\n  var index = -1\n\n  while (++index < values.length) {\n    result[index] = one(values[index], includeImageAlt)\n  }\n\n  return result.join('')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {number} start\n * @param {number} remove\n * @param {T[]} items\n * @returns {void}\n */\nexport function splice(list, start, remove, items) {\n  const end = list.length\n  let chunkStart = 0\n  /** @type {unknown[]} */\n\n  let parameters // Make start between zero and `end` (included).\n\n  if (start < 0) {\n    start = -start > end ? 0 : end + start\n  } else {\n    start = start > end ? end : start\n  }\n\n  remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n  if (items.length < 10000) {\n    parameters = Array.from(items)\n    parameters.unshift(start, remove) // @ts-expect-error Hush, it’s fine.\n    ;[].splice.apply(list, parameters)\n  } else {\n    // Delete `remove` items starting from `start`\n    if (remove) [].splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n    while (chunkStart < items.length) {\n      parameters = items.slice(chunkStart, chunkStart + 10000)\n      parameters.unshift(start, 0) // @ts-expect-error Hush, it’s fine.\n      ;[].splice.apply(list, parameters)\n      chunkStart += 10000\n      start += 10000\n    }\n  }\n}\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {T[]} items\n * @returns {T[]}\n */\n\nexport function push(list, items) {\n  if (list.length > 0) {\n    splice(list, list.length, 0, items)\n    return list\n  }\n\n  return items\n}\n","/**\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine several syntax extensions into one.\n *\n * @param {Extension[]} extensions List of syntax extensions.\n * @returns {NormalizedExtension} A single combined extension.\n */\nexport function combineExtensions(extensions) {\n  /** @type {NormalizedExtension} */\n  const all = {}\n  let index = -1\n\n  while (++index < extensions.length) {\n    syntaxExtension(all, extensions[index])\n  }\n\n  return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all Extension to merge into.\n * @param {Extension} extension Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n  /** @type {string} */\n  let hook\n\n  for (hook in extension) {\n    const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n    const left = maybe || (all[hook] = {})\n    const right = extension[hook]\n    /** @type {string} */\n    let code\n\n    for (code in right) {\n      if (!hasOwnProperty.call(left, code)) left[code] = []\n      const value = right[code]\n      constructs(\n        // @ts-expect-error Looks like a list.\n        left[code],\n        Array.isArray(value) ? value : value ? [value] : []\n      )\n    }\n  }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {unknown[]} existing\n * @param {unknown[]} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n  let index = -1\n  /** @type {unknown[]} */\n  const before = []\n\n  while (++index < list.length) {\n    // @ts-expect-error Looks like an object.\n    ;(list[index].add === 'after' ? existing : before).push(list[index])\n  }\n\n  splice(existing, 0, 0, before)\n}\n\n/**\n * Combine several HTML extensions into one.\n *\n * @param {HtmlExtension[]} htmlExtensions List of HTML extensions.\n * @returns {HtmlExtension} A single combined extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n  /** @type {HtmlExtension} */\n  const handlers = {}\n  let index = -1\n\n  while (++index < htmlExtensions.length) {\n    htmlExtension(handlers, htmlExtensions[index])\n  }\n\n  return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all Extension to merge into.\n * @param {HtmlExtension} extension Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n  /** @type {string} */\n  let hook\n\n  for (hook in extension) {\n    const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n    const left = maybe || (all[hook] = {})\n    const right = extension[hook]\n    /** @type {string} */\n    let type\n\n    if (right) {\n      for (type in right) {\n        left[type] = right[type]\n      }\n    }\n  }\n}\n","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nexport const unicodePunctuationRegex =\n  /[!-/:-@[-`{-~\\u00A1\\u00A7\\u00AB\\u00B6\\u00B7\\u00BB\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n */\n\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n */\n\nexport const asciiDigit = regexCheck(/\\d/)\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n */\n\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n */\n\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n */\n\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n */\n\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function asciiControl(code) {\n  return (\n    // Special whitespace codes (which have negative values), C0 and Control\n    // character DEL\n    code !== null && (code < 32 || code === 127)\n  )\n}\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEndingOrSpace(code) {\n  return code !== null && (code < 0 || code === 32)\n}\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEnding(code) {\n  return code !== null && code < -2\n}\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownSpace(code) {\n  return code === -2 || code === -1 || code === 32\n}\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n\nexport const unicodeWhitespace = regexCheck(/\\s/)\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => code is number}\n */\n\nfunction regexCheck(regex) {\n  return check\n  /**\n   * Check whether a code matches the bound regex.\n   *\n   * @param {Code} code Character code\n   * @returns {code is number} Whether the character code matches the bound regex\n   */\n\n  function check(code) {\n    return code !== null && regex.test(String.fromCharCode(code))\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownSpace} from 'micromark-util-character'\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {string} type\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n\nexport function factorySpace(effects, ok, type, max) {\n  const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n  let size = 0\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (markdownSpace(code)) {\n      effects.enter(type)\n      return prefix(code)\n    }\n\n    return ok(code)\n  }\n  /** @type {State} */\n\n  function prefix(code) {\n    if (markdownSpace(code) && size++ < limit) {\n      effects.consume(code)\n      return prefix\n    }\n\n    effects.exit(type)\n    return ok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const content = {\n  tokenize: initializeContent\n}\n/** @type {Initializer} */\n\nfunction initializeContent(effects) {\n  const contentStart = effects.attempt(\n    this.parser.constructs.contentInitial,\n    afterContentStartConstruct,\n    paragraphInitial\n  )\n  /** @type {Token} */\n\n  let previous\n  return contentStart\n  /** @type {State} */\n\n  function afterContentStartConstruct(code) {\n    if (code === null) {\n      effects.consume(code)\n      return\n    }\n\n    effects.enter('lineEnding')\n    effects.consume(code)\n    effects.exit('lineEnding')\n    return factorySpace(effects, contentStart, 'linePrefix')\n  }\n  /** @type {State} */\n\n  function paragraphInitial(code) {\n    effects.enter('paragraph')\n    return lineStart(code)\n  }\n  /** @type {State} */\n\n  function lineStart(code) {\n    const token = effects.enter('chunkText', {\n      contentType: 'text',\n      previous\n    })\n\n    if (previous) {\n      previous.next = token\n    }\n\n    previous = token\n    return data(code)\n  }\n  /** @type {State} */\n\n  function data(code) {\n    if (code === null) {\n      effects.exit('chunkText')\n      effects.exit('paragraph')\n      effects.consume(code)\n      return\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.consume(code)\n      effects.exit('chunkText')\n      return lineStart\n    } // Data.\n\n    effects.consume(code)\n    return data\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Point} Point\n */\n\n/**\n * @typedef {Record<string, unknown>} StackState\n * @typedef {[Construct, StackState]} StackItem\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\n\nexport const document = {\n  tokenize: initializeDocument\n}\n/** @type {Construct} */\n\nconst containerConstruct = {\n  tokenize: tokenizeContainer\n}\n/** @type {Initializer} */\n\nfunction initializeDocument(effects) {\n  const self = this\n  /** @type {Array<StackItem>} */\n\n  const stack = []\n  let continued = 0\n  /** @type {TokenizeContext|undefined} */\n\n  let childFlow\n  /** @type {Token|undefined} */\n\n  let childToken\n  /** @type {number} */\n\n  let lineStartOffset\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    // First we iterate through the open blocks, starting with the root\n    // document, and descending through last children down to the last open\n    // block.\n    // Each block imposes a condition that the line must satisfy if the block is\n    // to remain open.\n    // For example, a block quote requires a `>` character.\n    // A paragraph requires a non-blank line.\n    // In this phase we may match all or just some of the open blocks.\n    // But we cannot close unmatched blocks yet, because we may have a lazy\n    // continuation line.\n    if (continued < stack.length) {\n      const item = stack[continued]\n      self.containerState = item[1]\n      return effects.attempt(\n        item[0].continuation,\n        documentContinue,\n        checkNewContainers\n      )(code)\n    } // Done.\n\n    return checkNewContainers(code)\n  }\n  /** @type {State} */\n\n  function documentContinue(code) {\n    continued++ // Note: this field is called `_closeFlow` but it also closes containers.\n    // Perhaps a good idea to rename it but it’s already used in the wild by\n    // extensions.\n\n    if (self.containerState._closeFlow) {\n      self.containerState._closeFlow = undefined\n\n      if (childFlow) {\n        closeFlow()\n      } // Note: this algorithm for moving events around is similar to the\n      // algorithm when dealing with lazy lines in `writeToChild`.\n\n      const indexBeforeExits = self.events.length\n      let indexBeforeFlow = indexBeforeExits\n      /** @type {Point|undefined} */\n\n      let point // Find the flow chunk.\n\n      while (indexBeforeFlow--) {\n        if (\n          self.events[indexBeforeFlow][0] === 'exit' &&\n          self.events[indexBeforeFlow][1].type === 'chunkFlow'\n        ) {\n          point = self.events[indexBeforeFlow][1].end\n          break\n        }\n      }\n\n      exitContainers(continued) // Fix positions.\n\n      let index = indexBeforeExits\n\n      while (index < self.events.length) {\n        self.events[index][1].end = Object.assign({}, point)\n        index++\n      } // Inject the exits earlier (they’re still also at the end).\n\n      splice(\n        self.events,\n        indexBeforeFlow + 1,\n        0,\n        self.events.slice(indexBeforeExits)\n      ) // Discard the duplicate exits.\n\n      self.events.length = index\n      return checkNewContainers(code)\n    }\n\n    return start(code)\n  }\n  /** @type {State} */\n\n  function checkNewContainers(code) {\n    // Next, after consuming the continuation markers for existing blocks, we\n    // look for new block starts (e.g. `>` for a block quote).\n    // If we encounter a new block start, we close any blocks unmatched in\n    // step 1 before creating the new block as a child of the last matched\n    // block.\n    if (continued === stack.length) {\n      // No need to `check` whether there’s a container, of `exitContainers`\n      // would be moot.\n      // We can instead immediately `attempt` to parse one.\n      if (!childFlow) {\n        return documentContinued(code)\n      } // If we have concrete content, such as block HTML or fenced code,\n      // we can’t have containers “pierce” into them, so we can immediately\n      // start.\n\n      if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n        return flowStart(code)\n      } // If we do have flow, it could still be a blank line,\n      // but we’d be interrupting it w/ a new container if there’s a current\n      // construct.\n\n      self.interrupt = Boolean(\n        childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n      )\n    } // Check if there is a new container.\n\n    self.containerState = {}\n    return effects.check(\n      containerConstruct,\n      thereIsANewContainer,\n      thereIsNoNewContainer\n    )(code)\n  }\n  /** @type {State} */\n\n  function thereIsANewContainer(code) {\n    if (childFlow) closeFlow()\n    exitContainers(continued)\n    return documentContinued(code)\n  }\n  /** @type {State} */\n\n  function thereIsNoNewContainer(code) {\n    self.parser.lazy[self.now().line] = continued !== stack.length\n    lineStartOffset = self.now().offset\n    return flowStart(code)\n  }\n  /** @type {State} */\n\n  function documentContinued(code) {\n    // Try new containers.\n    self.containerState = {}\n    return effects.attempt(\n      containerConstruct,\n      containerContinue,\n      flowStart\n    )(code)\n  }\n  /** @type {State} */\n\n  function containerContinue(code) {\n    continued++\n    stack.push([self.currentConstruct, self.containerState]) // Try another.\n\n    return documentContinued(code)\n  }\n  /** @type {State} */\n\n  function flowStart(code) {\n    if (code === null) {\n      if (childFlow) closeFlow()\n      exitContainers(0)\n      effects.consume(code)\n      return\n    }\n\n    childFlow = childFlow || self.parser.flow(self.now())\n    effects.enter('chunkFlow', {\n      contentType: 'flow',\n      previous: childToken,\n      _tokenizer: childFlow\n    })\n    return flowContinue(code)\n  }\n  /** @type {State} */\n\n  function flowContinue(code) {\n    if (code === null) {\n      writeToChild(effects.exit('chunkFlow'), true)\n      exitContainers(0)\n      effects.consume(code)\n      return\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.consume(code)\n      writeToChild(effects.exit('chunkFlow')) // Get ready for the next line.\n\n      continued = 0\n      self.interrupt = undefined\n      return start\n    }\n\n    effects.consume(code)\n    return flowContinue\n  }\n  /**\n   * @param {Token} token\n   * @param {boolean} [eof]\n   * @returns {void}\n   */\n\n  function writeToChild(token, eof) {\n    const stream = self.sliceStream(token)\n    if (eof) stream.push(null)\n    token.previous = childToken\n    if (childToken) childToken.next = token\n    childToken = token\n    childFlow.defineSkip(token.start)\n    childFlow.write(stream) // Alright, so we just added a lazy line:\n    //\n    // ```markdown\n    // > a\n    // b.\n    //\n    // Or:\n    //\n    // > ~~~c\n    // d\n    //\n    // Or:\n    //\n    // > | e |\n    // f\n    // ```\n    //\n    // The construct in the second example (fenced code) does not accept lazy\n    // lines, so it marked itself as done at the end of its first line, and\n    // then the content construct parses `d`.\n    // Most constructs in markdown match on the first line: if the first line\n    // forms a construct, a non-lazy line can’t “unmake” it.\n    //\n    // The construct in the third example is potentially a GFM table, and\n    // those are *weird*.\n    // It *could* be a table, from the first line, if the following line\n    // matches a condition.\n    // In this case, that second line is lazy, which “unmakes” the first line\n    // and turns the whole into one content block.\n    //\n    // We’ve now parsed the non-lazy and the lazy line, and can figure out\n    // whether the lazy line started a new flow block.\n    // If it did, we exit the current containers between the two flow blocks.\n\n    if (self.parser.lazy[token.start.line]) {\n      let index = childFlow.events.length\n\n      while (index--) {\n        if (\n          // The token starts before the line ending…\n          childFlow.events[index][1].start.offset < lineStartOffset && // …and either is not ended yet…\n          (!childFlow.events[index][1].end || // …or ends after it.\n            childFlow.events[index][1].end.offset > lineStartOffset)\n        ) {\n          // Exit: there’s still something open, which means it’s a lazy line\n          // part of something.\n          return\n        }\n      } // Note: this algorithm for moving events around is similar to the\n      // algorithm when closing flow in `documentContinue`.\n\n      const indexBeforeExits = self.events.length\n      let indexBeforeFlow = indexBeforeExits\n      /** @type {boolean|undefined} */\n\n      let seen\n      /** @type {Point|undefined} */\n\n      let point // Find the previous chunk (the one before the lazy line).\n\n      while (indexBeforeFlow--) {\n        if (\n          self.events[indexBeforeFlow][0] === 'exit' &&\n          self.events[indexBeforeFlow][1].type === 'chunkFlow'\n        ) {\n          if (seen) {\n            point = self.events[indexBeforeFlow][1].end\n            break\n          }\n\n          seen = true\n        }\n      }\n\n      exitContainers(continued) // Fix positions.\n\n      index = indexBeforeExits\n\n      while (index < self.events.length) {\n        self.events[index][1].end = Object.assign({}, point)\n        index++\n      } // Inject the exits earlier (they’re still also at the end).\n\n      splice(\n        self.events,\n        indexBeforeFlow + 1,\n        0,\n        self.events.slice(indexBeforeExits)\n      ) // Discard the duplicate exits.\n\n      self.events.length = index\n    }\n  }\n  /**\n   * @param {number} size\n   * @returns {void}\n   */\n\n  function exitContainers(size) {\n    let index = stack.length // Exit open containers.\n\n    while (index-- > size) {\n      const entry = stack[index]\n      self.containerState = entry[1]\n      entry[0].exit.call(self, effects)\n    }\n\n    stack.length = size\n  }\n\n  function closeFlow() {\n    childFlow.write([null])\n    childToken = undefined\n    childFlow = undefined\n    self.containerState._closeFlow = undefined\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContainer(effects, ok, nok) {\n  return factorySpace(\n    effects,\n    effects.attempt(this.parser.constructs.document, ok, nok),\n    'linePrefix',\n    this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n  )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blankLine = {\n  tokenize: tokenizeBlankLine,\n  partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlankLine(effects, ok, nok) {\n  return factorySpace(effects, afterWhitespace, 'linePrefix')\n  /** @type {State} */\n\n  function afterWhitespace(code) {\n    return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {splice} from 'micromark-util-chunked'\n\n/**\n * Tokenize subcontent.\n *\n * @param {Event[]} events\n * @returns {boolean}\n */\nexport function subtokenize(events) {\n  /** @type {Record<string, number>} */\n  const jumps = {}\n  let index = -1\n  /** @type {Event} */\n\n  let event\n  /** @type {number|undefined} */\n\n  let lineIndex\n  /** @type {number} */\n\n  let otherIndex\n  /** @type {Event} */\n\n  let otherEvent\n  /** @type {Event[]} */\n\n  let parameters\n  /** @type {Event[]} */\n\n  let subevents\n  /** @type {boolean|undefined} */\n\n  let more\n\n  while (++index < events.length) {\n    while (index in jumps) {\n      index = jumps[index]\n    }\n\n    event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n    // is in the first content of a list item.\n\n    if (\n      index &&\n      event[1].type === 'chunkFlow' &&\n      events[index - 1][1].type === 'listItemPrefix'\n    ) {\n      subevents = event[1]._tokenizer.events\n      otherIndex = 0\n\n      if (\n        otherIndex < subevents.length &&\n        subevents[otherIndex][1].type === 'lineEndingBlank'\n      ) {\n        otherIndex += 2\n      }\n\n      if (\n        otherIndex < subevents.length &&\n        subevents[otherIndex][1].type === 'content'\n      ) {\n        while (++otherIndex < subevents.length) {\n          if (subevents[otherIndex][1].type === 'content') {\n            break\n          }\n\n          if (subevents[otherIndex][1].type === 'chunkText') {\n            subevents[otherIndex][1]._isInFirstContentOfListItem = true\n            otherIndex++\n          }\n        }\n      }\n    } // Enter.\n\n    if (event[0] === 'enter') {\n      if (event[1].contentType) {\n        Object.assign(jumps, subcontent(events, index))\n        index = jumps[index]\n        more = true\n      }\n    } // Exit.\n    else if (event[1]._container) {\n      otherIndex = index\n      lineIndex = undefined\n\n      while (otherIndex--) {\n        otherEvent = events[otherIndex]\n\n        if (\n          otherEvent[1].type === 'lineEnding' ||\n          otherEvent[1].type === 'lineEndingBlank'\n        ) {\n          if (otherEvent[0] === 'enter') {\n            if (lineIndex) {\n              events[lineIndex][1].type = 'lineEndingBlank'\n            }\n\n            otherEvent[1].type = 'lineEnding'\n            lineIndex = otherIndex\n          }\n        } else {\n          break\n        }\n      }\n\n      if (lineIndex) {\n        // Fix position.\n        event[1].end = Object.assign({}, events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n        parameters = events.slice(lineIndex, index)\n        parameters.unshift(event)\n        splice(events, lineIndex, index - lineIndex + 1, parameters)\n      }\n    }\n  }\n\n  return !more\n}\n/**\n * Tokenize embedded tokens.\n *\n * @param {Event[]} events\n * @param {number} eventIndex\n * @returns {Record<string, number>}\n */\n\nfunction subcontent(events, eventIndex) {\n  const token = events[eventIndex][1]\n  const context = events[eventIndex][2]\n  let startPosition = eventIndex - 1\n  /** @type {number[]} */\n\n  const startPositions = []\n  const tokenizer =\n    token._tokenizer || context.parser[token.contentType](token.start)\n  const childEvents = tokenizer.events\n  /** @type {[number, number][]} */\n\n  const jumps = []\n  /** @type {Record<string, number>} */\n\n  const gaps = {}\n  /** @type {Chunk[]} */\n\n  let stream\n  /** @type {Token|undefined} */\n\n  let previous\n  let index = -1\n  /** @type {Token|undefined} */\n\n  let current = token\n  let adjust = 0\n  let start = 0\n  const breaks = [start] // Loop forward through the linked tokens to pass them in order to the\n  // subtokenizer.\n\n  while (current) {\n    // Find the position of the event for this token.\n    while (events[++startPosition][1] !== current) {\n      // Empty.\n    }\n\n    startPositions.push(startPosition)\n\n    if (!current._tokenizer) {\n      stream = context.sliceStream(current)\n\n      if (!current.next) {\n        stream.push(null)\n      }\n\n      if (previous) {\n        tokenizer.defineSkip(current.start)\n      }\n\n      if (current._isInFirstContentOfListItem) {\n        tokenizer._gfmTasklistFirstContentOfListItem = true\n      }\n\n      tokenizer.write(stream)\n\n      if (current._isInFirstContentOfListItem) {\n        tokenizer._gfmTasklistFirstContentOfListItem = undefined\n      }\n    } // Unravel the next token.\n\n    previous = current\n    current = current.next\n  } // Now, loop back through all events (and linked tokens), to figure out which\n  // parts belong where.\n\n  current = token\n\n  while (++index < childEvents.length) {\n    if (\n      // Find a void token that includes a break.\n      childEvents[index][0] === 'exit' &&\n      childEvents[index - 1][0] === 'enter' &&\n      childEvents[index][1].type === childEvents[index - 1][1].type &&\n      childEvents[index][1].start.line !== childEvents[index][1].end.line\n    ) {\n      start = index + 1\n      breaks.push(start) // Help GC.\n\n      current._tokenizer = undefined\n      current.previous = undefined\n      current = current.next\n    }\n  } // Help GC.\n\n  tokenizer.events = [] // If there’s one more token (which is the cases for lines that end in an\n  // EOF), that’s perfect: the last point we found starts it.\n  // If there isn’t then make sure any remaining content is added to it.\n\n  if (current) {\n    // Help GC.\n    current._tokenizer = undefined\n    current.previous = undefined\n  } else {\n    breaks.pop()\n  } // Now splice the events from the subtokenizer into the current events,\n  // moving back to front so that splice indices aren’t affected.\n\n  index = breaks.length\n\n  while (index--) {\n    const slice = childEvents.slice(breaks[index], breaks[index + 1])\n    const start = startPositions.pop()\n    jumps.unshift([start, start + slice.length - 1])\n    splice(events, start, 2, slice)\n  }\n\n  index = -1\n\n  while (++index < jumps.length) {\n    gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n    adjust += jumps[index][1] - jumps[index][0] - 1\n  }\n\n  return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n  tokenize: tokenizeContent,\n  resolve: resolveContent\n}\n/** @type {Construct} */\n\nconst continuationConstruct = {\n  tokenize: tokenizeContinuation,\n  partial: true\n}\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\n\nfunction resolveContent(events) {\n  subtokenize(events)\n  return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContent(effects, ok) {\n  /** @type {Token} */\n  let previous\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('content')\n    previous = effects.enter('chunkContent', {\n      contentType: 'content'\n    })\n    return data(code)\n  }\n  /** @type {State} */\n\n  function data(code) {\n    if (code === null) {\n      return contentEnd(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      return effects.check(\n        continuationConstruct,\n        contentContinue,\n        contentEnd\n      )(code)\n    } // Data.\n\n    effects.consume(code)\n    return data\n  }\n  /** @type {State} */\n\n  function contentEnd(code) {\n    effects.exit('chunkContent')\n    effects.exit('content')\n    return ok(code)\n  }\n  /** @type {State} */\n\n  function contentContinue(code) {\n    effects.consume(code)\n    effects.exit('chunkContent')\n    previous.next = effects.enter('chunkContent', {\n      contentType: 'content',\n      previous\n    })\n    previous = previous.next\n    return data\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContinuation(effects, ok, nok) {\n  const self = this\n  return startLookahead\n  /** @type {State} */\n\n  function startLookahead(code) {\n    effects.exit('chunkContent')\n    effects.enter('lineEnding')\n    effects.consume(code)\n    effects.exit('lineEnding')\n    return factorySpace(effects, prefixed, 'linePrefix')\n  }\n  /** @type {State} */\n\n  function prefixed(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return nok(code)\n    }\n\n    const tail = self.events[self.events.length - 1]\n\n    if (\n      !self.parser.constructs.disable.null.includes('codeIndented') &&\n      tail &&\n      tail[1].type === 'linePrefix' &&\n      tail[2].sliceSerialize(tail[1], true).length >= 4\n    ) {\n      return ok(code)\n    }\n\n    return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const flow = {\n  tokenize: initializeFlow\n}\n/** @type {Initializer} */\n\nfunction initializeFlow(effects) {\n  const self = this\n  const initial = effects.attempt(\n    // Try to parse a blank line.\n    blankLine,\n    atBlankEnding, // Try to parse initial flow (essentially, only code).\n    effects.attempt(\n      this.parser.constructs.flowInitial,\n      afterConstruct,\n      factorySpace(\n        effects,\n        effects.attempt(\n          this.parser.constructs.flow,\n          afterConstruct,\n          effects.attempt(content, afterConstruct)\n        ),\n        'linePrefix'\n      )\n    )\n  )\n  return initial\n  /** @type {State} */\n\n  function atBlankEnding(code) {\n    if (code === null) {\n      effects.consume(code)\n      return\n    }\n\n    effects.enter('lineEndingBlank')\n    effects.consume(code)\n    effects.exit('lineEndingBlank')\n    self.currentConstruct = undefined\n    return initial\n  }\n  /** @type {State} */\n\n  function afterConstruct(code) {\n    if (code === null) {\n      effects.consume(code)\n      return\n    }\n\n    effects.enter('lineEnding')\n    effects.consume(code)\n    effects.exit('lineEnding')\n    self.currentConstruct = undefined\n    return initial\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nexport const resolver = {\n  resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n/**\n * @param {'string'|'text'} field\n * @returns {InitialConstruct}\n */\n\nfunction initializeFactory(field) {\n  return {\n    tokenize: initializeText,\n    resolveAll: createResolver(\n      field === 'text' ? resolveAllLineSuffixes : undefined\n    )\n  }\n  /** @type {Initializer} */\n\n  function initializeText(effects) {\n    const self = this\n    const constructs = this.parser.constructs[field]\n    const text = effects.attempt(constructs, start, notText)\n    return start\n    /** @type {State} */\n\n    function start(code) {\n      return atBreak(code) ? text(code) : notText(code)\n    }\n    /** @type {State} */\n\n    function notText(code) {\n      if (code === null) {\n        effects.consume(code)\n        return\n      }\n\n      effects.enter('data')\n      effects.consume(code)\n      return data\n    }\n    /** @type {State} */\n\n    function data(code) {\n      if (atBreak(code)) {\n        effects.exit('data')\n        return text(code)\n      } // Data.\n\n      effects.consume(code)\n      return data\n    }\n    /**\n     * @param {Code} code\n     * @returns {boolean}\n     */\n\n    function atBreak(code) {\n      if (code === null) {\n        return true\n      }\n\n      const list = constructs[code]\n      let index = -1\n\n      if (list) {\n        while (++index < list.length) {\n          const item = list[index]\n\n          if (!item.previous || item.previous.call(self, self.previous)) {\n            return true\n          }\n        }\n      }\n\n      return false\n    }\n  }\n}\n/**\n * @param {Resolver} [extraResolver]\n * @returns {Resolver}\n */\n\nfunction createResolver(extraResolver) {\n  return resolveAllText\n  /** @type {Resolver} */\n\n  function resolveAllText(events, context) {\n    let index = -1\n    /** @type {number|undefined} */\n\n    let enter // A rather boring computation (to merge adjacent `data` events) which\n    // improves mm performance by 29%.\n\n    while (++index <= events.length) {\n      if (enter === undefined) {\n        if (events[index] && events[index][1].type === 'data') {\n          enter = index\n          index++\n        }\n      } else if (!events[index] || events[index][1].type !== 'data') {\n        // Don’t do anything if there is one data token.\n        if (index !== enter + 2) {\n          events[enter][1].end = events[index - 1][1].end\n          events.splice(enter + 2, index - enter - 2)\n          index = enter + 2\n        }\n\n        enter = undefined\n      }\n    }\n\n    return extraResolver ? extraResolver(events, context) : events\n  }\n}\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\n\nfunction resolveAllLineSuffixes(events, context) {\n  let eventIndex = 0 // Skip first.\n\n  while (++eventIndex <= events.length) {\n    if (\n      (eventIndex === events.length ||\n        events[eventIndex][1].type === 'lineEnding') &&\n      events[eventIndex - 1][1].type === 'data'\n    ) {\n      const data = events[eventIndex - 1][1]\n      const chunks = context.sliceStream(data)\n      let index = chunks.length\n      let bufferIndex = -1\n      let size = 0\n      /** @type {boolean|undefined} */\n\n      let tabs\n\n      while (index--) {\n        const chunk = chunks[index]\n\n        if (typeof chunk === 'string') {\n          bufferIndex = chunk.length\n\n          while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n            size++\n            bufferIndex--\n          }\n\n          if (bufferIndex) break\n          bufferIndex = -1\n        } // Number\n        else if (chunk === -2) {\n          tabs = true\n          size++\n        } else if (chunk === -1) {\n          // Empty\n        } else {\n          // Replacement character, exit.\n          index++\n          break\n        }\n      }\n\n      if (size) {\n        const token = {\n          type:\n            eventIndex === events.length || tabs || size < 2\n              ? 'lineSuffix'\n              : 'hardBreakTrailing',\n          start: {\n            line: data.end.line,\n            column: data.end.column - size,\n            offset: data.end.offset - size,\n            _index: data.start._index + index,\n            _bufferIndex: index\n              ? bufferIndex\n              : data.start._bufferIndex + bufferIndex\n          },\n          end: Object.assign({}, data.end)\n        }\n        data.end = Object.assign({}, token.start)\n\n        if (data.start.offset === data.end.offset) {\n          Object.assign(data, token)\n        } else {\n          events.splice(\n            eventIndex,\n            0,\n            ['enter', token, context],\n            ['exit', token, context]\n          )\n          eventIndex += 2\n        }\n      }\n\n      eventIndex++\n    }\n  }\n\n  return events\n}\n","/**\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {{resolveAll?: Resolver}[]} constructs\n * @param {Event[]} events\n * @param {TokenizeContext} context\n * @returns {Event[]}\n */\nexport function resolveAll(constructs, events, context) {\n  /** @type {Resolver[]} */\n  const called = []\n  let index = -1\n\n  while (++index < constructs.length) {\n    const resolve = constructs[index].resolveAll\n\n    if (resolve && !called.includes(resolve)) {\n      events = resolve(events, context)\n      called.push(resolve)\n    }\n  }\n\n  return events\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n */\n\n/**\n * @typedef Info\n * @property {() => void} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n *   Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit<Point, '_index'|'_bufferIndex'>} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n  /** @type {Point} */\n  let point = Object.assign(\n    from\n      ? Object.assign({}, from)\n      : {\n          line: 1,\n          column: 1,\n          offset: 0\n        },\n    {\n      _index: 0,\n      _bufferIndex: -1\n    }\n  )\n  /** @type {Record<string, number>} */\n\n  const columnStart = {}\n  /** @type {Array<Construct>} */\n\n  const resolveAllConstructs = []\n  /** @type {Array<Chunk>} */\n\n  let chunks = []\n  /** @type {Array<Token>} */\n\n  let stack = []\n  /** @type {boolean|undefined} */\n\n  let consumed = true\n  /**\n   * Tools used for tokenizing.\n   *\n   * @type {Effects}\n   */\n\n  const effects = {\n    consume,\n    enter,\n    exit,\n    attempt: constructFactory(onsuccessfulconstruct),\n    check: constructFactory(onsuccessfulcheck),\n    interrupt: constructFactory(onsuccessfulcheck, {\n      interrupt: true\n    })\n  }\n  /**\n   * State and tools for resolving and serializing.\n   *\n   * @type {TokenizeContext}\n   */\n\n  const context = {\n    previous: null,\n    code: null,\n    containerState: {},\n    events: [],\n    parser,\n    sliceStream,\n    sliceSerialize,\n    now,\n    defineSkip,\n    write\n  }\n  /**\n   * The state function.\n   *\n   * @type {State|void}\n   */\n\n  let state = initialize.tokenize.call(context, effects)\n  /**\n   * Track which character we expect to be consumed, to catch bugs.\n   *\n   * @type {Code}\n   */\n\n  let expectedCode\n\n  if (initialize.resolveAll) {\n    resolveAllConstructs.push(initialize)\n  }\n\n  return context\n  /** @type {TokenizeContext['write']} */\n\n  function write(slice) {\n    chunks = push(chunks, slice)\n    main() // Exit if we’re not done, resolve might change stuff.\n\n    if (chunks[chunks.length - 1] !== null) {\n      return []\n    }\n\n    addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n    context.events = resolveAll(resolveAllConstructs, context.events, context)\n    return context.events\n  } //\n  // Tools.\n  //\n\n  /** @type {TokenizeContext['sliceSerialize']} */\n\n  function sliceSerialize(token, expandTabs) {\n    return serializeChunks(sliceStream(token), expandTabs)\n  }\n  /** @type {TokenizeContext['sliceStream']} */\n\n  function sliceStream(token) {\n    return sliceChunks(chunks, token)\n  }\n  /** @type {TokenizeContext['now']} */\n\n  function now() {\n    return Object.assign({}, point)\n  }\n  /** @type {TokenizeContext['defineSkip']} */\n\n  function defineSkip(value) {\n    columnStart[value.line] = value.column\n    accountForPotentialSkip()\n  } //\n  // State management.\n  //\n\n  /**\n   * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n   * `consume`).\n   * Here is where we walk through the chunks, which either include strings of\n   * several characters, or numerical character codes.\n   * The reason to do this in a loop instead of a call is so the stack can\n   * drain.\n   *\n   * @returns {void}\n   */\n\n  function main() {\n    /** @type {number} */\n    let chunkIndex\n\n    while (point._index < chunks.length) {\n      const chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n      if (typeof chunk === 'string') {\n        chunkIndex = point._index\n\n        if (point._bufferIndex < 0) {\n          point._bufferIndex = 0\n        }\n\n        while (\n          point._index === chunkIndex &&\n          point._bufferIndex < chunk.length\n        ) {\n          go(chunk.charCodeAt(point._bufferIndex))\n        }\n      } else {\n        go(chunk)\n      }\n    }\n  }\n  /**\n   * Deal with one code.\n   *\n   * @param {Code} code\n   * @returns {void}\n   */\n\n  function go(code) {\n    consumed = undefined\n    expectedCode = code\n    state = state(code)\n  }\n  /** @type {Effects['consume']} */\n\n  function consume(code) {\n    if (markdownLineEnding(code)) {\n      point.line++\n      point.column = 1\n      point.offset += code === -3 ? 2 : 1\n      accountForPotentialSkip()\n    } else if (code !== -1) {\n      point.column++\n      point.offset++\n    } // Not in a string chunk.\n\n    if (point._bufferIndex < 0) {\n      point._index++\n    } else {\n      point._bufferIndex++ // At end of string chunk.\n      // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n      // strings.\n\n      if (point._bufferIndex === chunks[point._index].length) {\n        point._bufferIndex = -1\n        point._index++\n      }\n    } // Expose the previous character.\n\n    context.previous = code // Mark as consumed.\n\n    consumed = true\n  }\n  /** @type {Effects['enter']} */\n\n  function enter(type, fields) {\n    /** @type {Token} */\n    // @ts-expect-error Patch instead of assign required fields to help GC.\n    const token = fields || {}\n    token.type = type\n    token.start = now()\n    context.events.push(['enter', token, context])\n    stack.push(token)\n    return token\n  }\n  /** @type {Effects['exit']} */\n\n  function exit(type) {\n    const token = stack.pop()\n    token.end = now()\n    context.events.push(['exit', token, context])\n    return token\n  }\n  /**\n   * Use results.\n   *\n   * @type {ReturnHandle}\n   */\n\n  function onsuccessfulconstruct(construct, info) {\n    addResult(construct, info.from)\n  }\n  /**\n   * Discard results.\n   *\n   * @type {ReturnHandle}\n   */\n\n  function onsuccessfulcheck(_, info) {\n    info.restore()\n  }\n  /**\n   * Factory to attempt/check/interrupt.\n   *\n   * @param {ReturnHandle} onreturn\n   * @param {Record<string, unknown>} [fields]\n   */\n\n  function constructFactory(onreturn, fields) {\n    return hook\n    /**\n     * Handle either an object mapping codes to constructs, a list of\n     * constructs, or a single construct.\n     *\n     * @param {Construct|Array<Construct>|ConstructRecord} constructs\n     * @param {State} returnState\n     * @param {State} [bogusState]\n     * @returns {State}\n     */\n\n    function hook(constructs, returnState, bogusState) {\n      /** @type {Array<Construct>} */\n      let listOfConstructs\n      /** @type {number} */\n\n      let constructIndex\n      /** @type {Construct} */\n\n      let currentConstruct\n      /** @type {Info} */\n\n      let info\n      return Array.isArray(constructs)\n        ? /* c8 ignore next 1 */\n          handleListOfConstructs(constructs)\n        : 'tokenize' in constructs // @ts-expect-error Looks like a construct.\n        ? handleListOfConstructs([constructs])\n        : handleMapOfConstructs(constructs)\n      /**\n       * Handle a list of construct.\n       *\n       * @param {ConstructRecord} map\n       * @returns {State}\n       */\n\n      function handleMapOfConstructs(map) {\n        return start\n        /** @type {State} */\n\n        function start(code) {\n          const def = code !== null && map[code]\n          const all = code !== null && map.null\n          const list = [\n            // To do: add more extension tests.\n\n            /* c8 ignore next 2 */\n            ...(Array.isArray(def) ? def : def ? [def] : []),\n            ...(Array.isArray(all) ? all : all ? [all] : [])\n          ]\n          return handleListOfConstructs(list)(code)\n        }\n      }\n      /**\n       * Handle a list of construct.\n       *\n       * @param {Array<Construct>} list\n       * @returns {State}\n       */\n\n      function handleListOfConstructs(list) {\n        listOfConstructs = list\n        constructIndex = 0\n\n        if (list.length === 0) {\n          return bogusState\n        }\n\n        return handleConstruct(list[constructIndex])\n      }\n      /**\n       * Handle a single construct.\n       *\n       * @param {Construct} construct\n       * @returns {State}\n       */\n\n      function handleConstruct(construct) {\n        return start\n        /** @type {State} */\n\n        function start(code) {\n          // To do: not needed to store if there is no bogus state, probably?\n          // Currently doesn’t work because `inspect` in document does a check\n          // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n          // by not storing.\n          info = store()\n          currentConstruct = construct\n\n          if (!construct.partial) {\n            context.currentConstruct = construct\n          }\n\n          if (\n            construct.name &&\n            context.parser.constructs.disable.null.includes(construct.name)\n          ) {\n            return nok(code)\n          }\n\n          return construct.tokenize.call(\n            // If we do have fields, create an object w/ `context` as its\n            // prototype.\n            // This allows a “live binding”, which is needed for `interrupt`.\n            fields ? Object.assign(Object.create(context), fields) : context,\n            effects,\n            ok,\n            nok\n          )(code)\n        }\n      }\n      /** @type {State} */\n\n      function ok(code) {\n        consumed = true\n        onreturn(currentConstruct, info)\n        return returnState\n      }\n      /** @type {State} */\n\n      function nok(code) {\n        consumed = true\n        info.restore()\n\n        if (++constructIndex < listOfConstructs.length) {\n          return handleConstruct(listOfConstructs[constructIndex])\n        }\n\n        return bogusState\n      }\n    }\n  }\n  /**\n   * @param {Construct} construct\n   * @param {number} from\n   * @returns {void}\n   */\n\n  function addResult(construct, from) {\n    if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n      resolveAllConstructs.push(construct)\n    }\n\n    if (construct.resolve) {\n      splice(\n        context.events,\n        from,\n        context.events.length - from,\n        construct.resolve(context.events.slice(from), context)\n      )\n    }\n\n    if (construct.resolveTo) {\n      context.events = construct.resolveTo(context.events, context)\n    }\n  }\n  /**\n   * Store state.\n   *\n   * @returns {Info}\n   */\n\n  function store() {\n    const startPoint = now()\n    const startPrevious = context.previous\n    const startCurrentConstruct = context.currentConstruct\n    const startEventsIndex = context.events.length\n    const startStack = Array.from(stack)\n    return {\n      restore,\n      from: startEventsIndex\n    }\n    /**\n     * Restore state.\n     *\n     * @returns {void}\n     */\n\n    function restore() {\n      point = startPoint\n      context.previous = startPrevious\n      context.currentConstruct = startCurrentConstruct\n      context.events.length = startEventsIndex\n      stack = startStack\n      accountForPotentialSkip()\n    }\n  }\n  /**\n   * Move the current point a bit forward in the line when it’s on a column\n   * skip.\n   *\n   * @returns {void}\n   */\n\n  function accountForPotentialSkip() {\n    if (point.line in columnStart && point.column < 2) {\n      point.column = columnStart[point.line]\n      point.offset += columnStart[point.line] - 1\n    }\n  }\n}\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array<Chunk>} chunks\n * @param {Pick<Token, 'start'|'end'>} token\n * @returns {Array<Chunk>}\n */\n\nfunction sliceChunks(chunks, token) {\n  const startIndex = token.start._index\n  const startBufferIndex = token.start._bufferIndex\n  const endIndex = token.end._index\n  const endBufferIndex = token.end._bufferIndex\n  /** @type {Array<Chunk>} */\n\n  let view\n\n  if (startIndex === endIndex) {\n    // @ts-expect-error `_bufferIndex` is used on string chunks.\n    view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n  } else {\n    view = chunks.slice(startIndex, endIndex)\n\n    if (startBufferIndex > -1) {\n      // @ts-expect-error `_bufferIndex` is used on string chunks.\n      view[0] = view[0].slice(startBufferIndex)\n    }\n\n    if (endBufferIndex > 0) {\n      // @ts-expect-error `_bufferIndex` is used on string chunks.\n      view.push(chunks[endIndex].slice(0, endBufferIndex))\n    }\n  }\n\n  return view\n}\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array<Chunk>} chunks\n * @param {boolean} [expandTabs=false]\n * @returns {string}\n */\n\nfunction serializeChunks(chunks, expandTabs) {\n  let index = -1\n  /** @type {Array<string>} */\n\n  const result = []\n  /** @type {boolean|undefined} */\n\n  let atTab\n\n  while (++index < chunks.length) {\n    const chunk = chunks[index]\n    /** @type {string} */\n\n    let value\n\n    if (typeof chunk === 'string') {\n      value = chunk\n    } else\n      switch (chunk) {\n        case -5: {\n          value = '\\r'\n          break\n        }\n\n        case -4: {\n          value = '\\n'\n          break\n        }\n\n        case -3: {\n          value = '\\r' + '\\n'\n          break\n        }\n\n        case -2: {\n          value = expandTabs ? ' ' : '\\t'\n          break\n        }\n\n        case -1: {\n          if (!expandTabs && atTab) continue\n          value = ' '\n          break\n        }\n\n        default: {\n          // Currently only replacement character.\n          value = String.fromCharCode(chunk)\n        }\n      }\n\n    atTab = chunk === -2\n    result.push(value)\n  }\n\n  return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const thematicBreak = {\n  name: 'thematicBreak',\n  tokenize: tokenizeThematicBreak\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n  let size = 0\n  /** @type {NonNullable<Code>} */\n\n  let marker\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('thematicBreak')\n    marker = code\n    return atBreak(code)\n  }\n  /** @type {State} */\n\n  function atBreak(code) {\n    if (code === marker) {\n      effects.enter('thematicBreakSequence')\n      return sequence(code)\n    }\n\n    if (markdownSpace(code)) {\n      return factorySpace(effects, atBreak, 'whitespace')(code)\n    }\n\n    if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n      return nok(code)\n    }\n\n    effects.exit('thematicBreak')\n    return ok(code)\n  }\n  /** @type {State} */\n\n  function sequence(code) {\n    if (code === marker) {\n      effects.consume(code)\n      size++\n      return sequence\n    }\n\n    effects.exit('thematicBreakSequence')\n    return atBreak(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @typedef {Record<string, unknown> & {marker: Code, type: string, size: number}} ListContainerState\n * @typedef {TokenizeContext & {containerState: ListContainerState}} TokenizeContextWithState\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n/** @type {Construct} */\n\nexport const list = {\n  name: 'list',\n  tokenize: tokenizeListStart,\n  continuation: {\n    tokenize: tokenizeListContinuation\n  },\n  exit: tokenizeListEnd\n}\n/** @type {Construct} */\n\nconst listItemPrefixWhitespaceConstruct = {\n  tokenize: tokenizeListItemPrefixWhitespace,\n  partial: true\n}\n/** @type {Construct} */\n\nconst indentConstruct = {\n  tokenize: tokenizeIndent,\n  partial: true\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListStart(effects, ok, nok) {\n  const self = this\n  const tail = self.events[self.events.length - 1]\n  let initialSize =\n    tail && tail[1].type === 'linePrefix'\n      ? tail[2].sliceSerialize(tail[1], true).length\n      : 0\n  let size = 0\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    const kind =\n      self.containerState.type ||\n      (code === 42 || code === 43 || code === 45\n        ? 'listUnordered'\n        : 'listOrdered')\n\n    if (\n      kind === 'listUnordered'\n        ? !self.containerState.marker || code === self.containerState.marker\n        : asciiDigit(code)\n    ) {\n      if (!self.containerState.type) {\n        self.containerState.type = kind\n        effects.enter(kind, {\n          _container: true\n        })\n      }\n\n      if (kind === 'listUnordered') {\n        effects.enter('listItemPrefix')\n        return code === 42 || code === 45\n          ? effects.check(thematicBreak, nok, atMarker)(code)\n          : atMarker(code)\n      }\n\n      if (!self.interrupt || code === 49) {\n        effects.enter('listItemPrefix')\n        effects.enter('listItemValue')\n        return inside(code)\n      }\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function inside(code) {\n    if (asciiDigit(code) && ++size < 10) {\n      effects.consume(code)\n      return inside\n    }\n\n    if (\n      (!self.interrupt || size < 2) &&\n      (self.containerState.marker\n        ? code === self.containerState.marker\n        : code === 41 || code === 46)\n    ) {\n      effects.exit('listItemValue')\n      return atMarker(code)\n    }\n\n    return nok(code)\n  }\n  /**\n   * @type {State}\n   **/\n\n  function atMarker(code) {\n    effects.enter('listItemMarker')\n    effects.consume(code)\n    effects.exit('listItemMarker')\n    self.containerState.marker = self.containerState.marker || code\n    return effects.check(\n      blankLine, // Can’t be empty when interrupting.\n      self.interrupt ? nok : onBlank,\n      effects.attempt(\n        listItemPrefixWhitespaceConstruct,\n        endOfPrefix,\n        otherPrefix\n      )\n    )\n  }\n  /** @type {State} */\n\n  function onBlank(code) {\n    self.containerState.initialBlankLine = true\n    initialSize++\n    return endOfPrefix(code)\n  }\n  /** @type {State} */\n\n  function otherPrefix(code) {\n    if (markdownSpace(code)) {\n      effects.enter('listItemPrefixWhitespace')\n      effects.consume(code)\n      effects.exit('listItemPrefixWhitespace')\n      return endOfPrefix\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function endOfPrefix(code) {\n    self.containerState.size =\n      initialSize +\n      self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n    return ok(code)\n  }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n  const self = this\n  self.containerState._closeFlow = undefined\n  return effects.check(blankLine, onBlank, notBlank)\n  /** @type {State} */\n\n  function onBlank(code) {\n    self.containerState.furtherBlankLines =\n      self.containerState.furtherBlankLines ||\n      self.containerState.initialBlankLine // We have a blank line.\n    // Still, try to consume at most the items size.\n\n    return factorySpace(\n      effects,\n      ok,\n      'listItemIndent',\n      self.containerState.size + 1\n    )(code)\n  }\n  /** @type {State} */\n\n  function notBlank(code) {\n    if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n      self.containerState.furtherBlankLines = undefined\n      self.containerState.initialBlankLine = undefined\n      return notInCurrentItem(code)\n    }\n\n    self.containerState.furtherBlankLines = undefined\n    self.containerState.initialBlankLine = undefined\n    return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n  }\n  /** @type {State} */\n\n  function notInCurrentItem(code) {\n    // While we do continue, we signal that the flow should be closed.\n    self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n    self.interrupt = undefined\n    return factorySpace(\n      effects,\n      effects.attempt(list, ok, nok),\n      'linePrefix',\n      self.parser.constructs.disable.null.includes('codeIndented')\n        ? undefined\n        : 4\n    )(code)\n  }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeIndent(effects, ok, nok) {\n  const self = this\n  return factorySpace(\n    effects,\n    afterPrefix,\n    'listItemIndent',\n    self.containerState.size + 1\n  )\n  /** @type {State} */\n\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1]\n    return tail &&\n      tail[1].type === 'listItemIndent' &&\n      tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n      ? ok(code)\n      : nok(code)\n  }\n}\n/**\n * @type {Exiter}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListEnd(effects) {\n  effects.exit(this.containerState.type)\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n  const self = this\n  return factorySpace(\n    effects,\n    afterPrefix,\n    'listItemPrefixWhitespace',\n    self.parser.constructs.disable.null.includes('codeIndented')\n      ? undefined\n      : 4 + 1\n  )\n  /** @type {State} */\n\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1]\n    return !markdownSpace(code) &&\n      tail &&\n      tail[1].type === 'listItemPrefixWhitespace'\n      ? ok(code)\n      : nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blockQuote = {\n  name: 'blockQuote',\n  tokenize: tokenizeBlockQuoteStart,\n  continuation: {\n    tokenize: tokenizeBlockQuoteContinuation\n  },\n  exit\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n  const self = this\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (code === 62) {\n      const state = self.containerState\n\n      if (!state.open) {\n        effects.enter('blockQuote', {\n          _container: true\n        })\n        state.open = true\n      }\n\n      effects.enter('blockQuotePrefix')\n      effects.enter('blockQuoteMarker')\n      effects.consume(code)\n      effects.exit('blockQuoteMarker')\n      return after\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function after(code) {\n    if (markdownSpace(code)) {\n      effects.enter('blockQuotePrefixWhitespace')\n      effects.consume(code)\n      effects.exit('blockQuotePrefixWhitespace')\n      effects.exit('blockQuotePrefix')\n      return ok\n    }\n\n    effects.exit('blockQuotePrefix')\n    return ok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n  return factorySpace(\n    effects,\n    effects.attempt(blockQuote, ok, nok),\n    'linePrefix',\n    this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n  )\n}\n/** @type {Exiter} */\n\nfunction exit(effects) {\n  effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n  asciiControl,\n  markdownLineEndingOrSpace,\n  markdownLineEnding\n} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} literalType\n * @param {string} literalMarkerType\n * @param {string} rawType\n * @param {string} stringType\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryDestination(\n  effects,\n  ok,\n  nok,\n  type,\n  literalType,\n  literalMarkerType,\n  rawType,\n  stringType,\n  max\n) {\n  const limit = max || Number.POSITIVE_INFINITY\n  let balance = 0\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (code === 60) {\n      effects.enter(type)\n      effects.enter(literalType)\n      effects.enter(literalMarkerType)\n      effects.consume(code)\n      effects.exit(literalMarkerType)\n      return destinationEnclosedBefore\n    }\n\n    if (code === null || code === 41 || asciiControl(code)) {\n      return nok(code)\n    }\n\n    effects.enter(type)\n    effects.enter(rawType)\n    effects.enter(stringType)\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return destinationRaw(code)\n  }\n  /** @type {State} */\n\n  function destinationEnclosedBefore(code) {\n    if (code === 62) {\n      effects.enter(literalMarkerType)\n      effects.consume(code)\n      effects.exit(literalMarkerType)\n      effects.exit(literalType)\n      effects.exit(type)\n      return ok\n    }\n\n    effects.enter(stringType)\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return destinationEnclosed(code)\n  }\n  /** @type {State} */\n\n  function destinationEnclosed(code) {\n    if (code === 62) {\n      effects.exit('chunkString')\n      effects.exit(stringType)\n      return destinationEnclosedBefore(code)\n    }\n\n    if (code === null || code === 60 || markdownLineEnding(code)) {\n      return nok(code)\n    }\n\n    effects.consume(code)\n    return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n  }\n  /** @type {State} */\n\n  function destinationEnclosedEscape(code) {\n    if (code === 60 || code === 62 || code === 92) {\n      effects.consume(code)\n      return destinationEnclosed\n    }\n\n    return destinationEnclosed(code)\n  }\n  /** @type {State} */\n\n  function destinationRaw(code) {\n    if (code === 40) {\n      if (++balance > limit) return nok(code)\n      effects.consume(code)\n      return destinationRaw\n    }\n\n    if (code === 41) {\n      if (!balance--) {\n        effects.exit('chunkString')\n        effects.exit(stringType)\n        effects.exit(rawType)\n        effects.exit(type)\n        return ok(code)\n      }\n\n      effects.consume(code)\n      return destinationRaw\n    }\n\n    if (code === null || markdownLineEndingOrSpace(code)) {\n      if (balance) return nok(code)\n      effects.exit('chunkString')\n      effects.exit(stringType)\n      effects.exit(rawType)\n      effects.exit(type)\n      return ok(code)\n    }\n\n    if (asciiControl(code)) return nok(code)\n    effects.consume(code)\n    return code === 92 ? destinationRawEscape : destinationRaw\n  }\n  /** @type {State} */\n\n  function destinationRawEscape(code) {\n    if (code === 40 || code === 41 || code === 92) {\n      effects.consume(code)\n      return destinationRaw\n    }\n\n    return destinationRaw(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @this {TokenizeContext}\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n  const self = this\n  let size = 0\n  /** @type {boolean} */\n\n  let data\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter(type)\n    effects.enter(markerType)\n    effects.consume(code)\n    effects.exit(markerType)\n    effects.enter(stringType)\n    return atBreak\n  }\n  /** @type {State} */\n\n  function atBreak(code) {\n    if (\n      code === null ||\n      code === 91 ||\n      (code === 93 && !data) ||\n      /* To do: remove in the future once we’ve switched from\n       * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n       * which doesn’t need this */\n\n      /* Hidden footnotes hook */\n\n      /* c8 ignore next 3 */\n      (code === 94 &&\n        !size &&\n        '_hiddenFootnoteSupport' in self.parser.constructs) ||\n      size > 999\n    ) {\n      return nok(code)\n    }\n\n    if (code === 93) {\n      effects.exit(stringType)\n      effects.enter(markerType)\n      effects.consume(code)\n      effects.exit(markerType)\n      effects.exit(type)\n      return ok\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return atBreak\n    }\n\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return label(code)\n  }\n  /** @type {State} */\n\n  function label(code) {\n    if (\n      code === null ||\n      code === 91 ||\n      code === 93 ||\n      markdownLineEnding(code) ||\n      size++ > 999\n    ) {\n      effects.exit('chunkString')\n      return atBreak(code)\n    }\n\n    effects.consume(code)\n    data = data || !markdownSpace(code)\n    return code === 92 ? labelEscape : label\n  }\n  /** @type {State} */\n\n  function labelEscape(code) {\n    if (code === 91 || code === 92 || code === 93) {\n      effects.consume(code)\n      size++\n      return label\n    }\n\n    return label(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n  /** @type {NonNullable<Code>} */\n  let marker\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter(type)\n    effects.enter(markerType)\n    effects.consume(code)\n    effects.exit(markerType)\n    marker = code === 40 ? 41 : code\n    return atFirstTitleBreak\n  }\n  /** @type {State} */\n\n  function atFirstTitleBreak(code) {\n    if (code === marker) {\n      effects.enter(markerType)\n      effects.consume(code)\n      effects.exit(markerType)\n      effects.exit(type)\n      return ok\n    }\n\n    effects.enter(stringType)\n    return atTitleBreak(code)\n  }\n  /** @type {State} */\n\n  function atTitleBreak(code) {\n    if (code === marker) {\n      effects.exit(stringType)\n      return atFirstTitleBreak(marker)\n    }\n\n    if (code === null) {\n      return nok(code)\n    } // Note: blank lines can’t exist in content.\n\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return factorySpace(effects, atTitleBreak, 'linePrefix')\n    }\n\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return title(code)\n  }\n  /** @type {State} */\n\n  function title(code) {\n    if (code === marker || code === null || markdownLineEnding(code)) {\n      effects.exit('chunkString')\n      return atTitleBreak(code)\n    }\n\n    effects.consume(code)\n    return code === 92 ? titleEscape : title\n  }\n  /** @type {State} */\n\n  function titleEscape(code) {\n    if (code === marker || code === 92) {\n      effects.consume(code)\n      return title\n    }\n\n    return title(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n */\nexport function factoryWhitespace(effects, ok) {\n  /** @type {boolean} */\n  let seen\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      seen = true\n      return start\n    }\n\n    if (markdownSpace(code)) {\n      return factorySpace(\n        effects,\n        start,\n        seen ? 'linePrefix' : 'lineSuffix'\n      )(code)\n    }\n\n    return ok(code)\n  }\n}\n","/**\n * Normalize an identifier (such as used in definitions).\n *\n * @param {string} value\n * @returns {string}\n */\nexport function normalizeIdentifier(value) {\n  return (\n    value // Collapse Markdown whitespace.\n      .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n      .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n      // counterpart is uppercased will result in a different uppercase\n      // character.\n      // Hence, to get that form, we perform both lower- and uppercase.\n      // Upper case makes sure keys will not interact with default prototypal\n      // methods: no method is uppercase.\n      .toLowerCase()\n      .toUpperCase()\n  )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {\n  markdownLineEnding,\n  markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const definition = {\n  name: 'definition',\n  tokenize: tokenizeDefinition\n}\n/** @type {Construct} */\n\nconst titleConstruct = {\n  tokenize: tokenizeTitle,\n  partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinition(effects, ok, nok) {\n  const self = this\n  /** @type {string} */\n\n  let identifier\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('definition')\n    return factoryLabel.call(\n      self,\n      effects,\n      labelAfter,\n      nok,\n      'definitionLabel',\n      'definitionLabelMarker',\n      'definitionLabelString'\n    )(code)\n  }\n  /** @type {State} */\n\n  function labelAfter(code) {\n    identifier = normalizeIdentifier(\n      self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n    )\n\n    if (code === 58) {\n      effects.enter('definitionMarker')\n      effects.consume(code)\n      effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n      return factoryWhitespace(\n        effects,\n        factoryDestination(\n          effects,\n          effects.attempt(\n            titleConstruct,\n            factorySpace(effects, after, 'whitespace'),\n            factorySpace(effects, after, 'whitespace')\n          ),\n          nok,\n          'definitionDestination',\n          'definitionDestinationLiteral',\n          'definitionDestinationLiteralMarker',\n          'definitionDestinationRaw',\n          'definitionDestinationString'\n        )\n      )\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function after(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('definition')\n\n      if (!self.parser.defined.includes(identifier)) {\n        self.parser.defined.push(identifier)\n      }\n\n      return ok(code)\n    }\n\n    return nok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTitle(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    return markdownLineEndingOrSpace(code)\n      ? factoryWhitespace(effects, before)(code)\n      : nok(code)\n  }\n  /** @type {State} */\n\n  function before(code) {\n    if (code === 34 || code === 39 || code === 40) {\n      return factoryTitle(\n        effects,\n        factorySpace(effects, after, 'whitespace'),\n        nok,\n        'definitionTitle',\n        'definitionTitleMarker',\n        'definitionTitleString'\n      )(code)\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function after(code) {\n    return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeIndented = {\n  name: 'codeIndented',\n  tokenize: tokenizeCodeIndented\n}\n/** @type {Construct} */\n\nconst indentedContent = {\n  tokenize: tokenizeIndentedContent,\n  partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n  const self = this\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('codeIndented')\n    return factorySpace(effects, afterStartPrefix, 'linePrefix', 4 + 1)(code)\n  }\n  /** @type {State} */\n\n  function afterStartPrefix(code) {\n    const tail = self.events[self.events.length - 1]\n    return tail &&\n      tail[1].type === 'linePrefix' &&\n      tail[2].sliceSerialize(tail[1], true).length >= 4\n      ? afterPrefix(code)\n      : nok(code)\n  }\n  /** @type {State} */\n\n  function afterPrefix(code) {\n    if (code === null) {\n      return after(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      return effects.attempt(indentedContent, afterPrefix, after)(code)\n    }\n\n    effects.enter('codeFlowValue')\n    return content(code)\n  }\n  /** @type {State} */\n\n  function content(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('codeFlowValue')\n      return afterPrefix(code)\n    }\n\n    effects.consume(code)\n    return content\n  }\n  /** @type {State} */\n\n  function after(code) {\n    effects.exit('codeIndented')\n    return ok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n  const self = this\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    // If this is a lazy line, it can’t be code.\n    if (self.parser.lazy[self.now().line]) {\n      return nok(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return start\n    }\n\n    return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n  }\n  /** @type {State} */\n\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1]\n    return tail &&\n      tail[1].type === 'linePrefix' &&\n      tail[2].sliceSerialize(tail[1], true).length >= 4\n      ? ok(code)\n      : markdownLineEnding(code)\n      ? start(code)\n      : nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n  markdownLineEnding,\n  markdownLineEndingOrSpace,\n  markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n\n/** @type {Construct} */\nexport const headingAtx = {\n  name: 'headingAtx',\n  tokenize: tokenizeHeadingAtx,\n  resolve: resolveHeadingAtx\n}\n/** @type {Resolver} */\n\nfunction resolveHeadingAtx(events, context) {\n  let contentEnd = events.length - 2\n  let contentStart = 3\n  /** @type {Token} */\n\n  let content\n  /** @type {Token} */\n\n  let text // Prefix whitespace, part of the opening.\n\n  if (events[contentStart][1].type === 'whitespace') {\n    contentStart += 2\n  } // Suffix whitespace, part of the closing.\n\n  if (\n    contentEnd - 2 > contentStart &&\n    events[contentEnd][1].type === 'whitespace'\n  ) {\n    contentEnd -= 2\n  }\n\n  if (\n    events[contentEnd][1].type === 'atxHeadingSequence' &&\n    (contentStart === contentEnd - 1 ||\n      (contentEnd - 4 > contentStart &&\n        events[contentEnd - 2][1].type === 'whitespace'))\n  ) {\n    contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n  }\n\n  if (contentEnd > contentStart) {\n    content = {\n      type: 'atxHeadingText',\n      start: events[contentStart][1].start,\n      end: events[contentEnd][1].end\n    }\n    text = {\n      type: 'chunkText',\n      start: events[contentStart][1].start,\n      end: events[contentEnd][1].end,\n      // @ts-expect-error Constants are fine to assign.\n      contentType: 'text'\n    }\n    splice(events, contentStart, contentEnd - contentStart + 1, [\n      ['enter', content, context],\n      ['enter', text, context],\n      ['exit', text, context],\n      ['exit', content, context]\n    ])\n  }\n\n  return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n  const self = this\n  let size = 0\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('atxHeading')\n    effects.enter('atxHeadingSequence')\n    return fenceOpenInside(code)\n  }\n  /** @type {State} */\n\n  function fenceOpenInside(code) {\n    if (code === 35 && size++ < 6) {\n      effects.consume(code)\n      return fenceOpenInside\n    }\n\n    if (code === null || markdownLineEndingOrSpace(code)) {\n      effects.exit('atxHeadingSequence')\n      return self.interrupt ? ok(code) : headingBreak(code)\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function headingBreak(code) {\n    if (code === 35) {\n      effects.enter('atxHeadingSequence')\n      return sequence(code)\n    }\n\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('atxHeading')\n      return ok(code)\n    }\n\n    if (markdownSpace(code)) {\n      return factorySpace(effects, headingBreak, 'whitespace')(code)\n    }\n\n    effects.enter('atxHeadingText')\n    return data(code)\n  }\n  /** @type {State} */\n\n  function sequence(code) {\n    if (code === 35) {\n      effects.consume(code)\n      return sequence\n    }\n\n    effects.exit('atxHeadingSequence')\n    return headingBreak(code)\n  }\n  /** @type {State} */\n\n  function data(code) {\n    if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n      effects.exit('atxHeadingText')\n      return headingBreak(code)\n    }\n\n    effects.consume(code)\n    return data\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const setextUnderline = {\n  name: 'setextUnderline',\n  tokenize: tokenizeSetextUnderline,\n  resolveTo: resolveToSetextUnderline\n}\n/** @type {Resolver} */\n\nfunction resolveToSetextUnderline(events, context) {\n  let index = events.length\n  /** @type {number|undefined} */\n\n  let content\n  /** @type {number|undefined} */\n\n  let text\n  /** @type {number|undefined} */\n\n  let definition // Find the opening of the content.\n  // It’ll always exist: we don’t tokenize if it isn’t there.\n\n  while (index--) {\n    if (events[index][0] === 'enter') {\n      if (events[index][1].type === 'content') {\n        content = index\n        break\n      }\n\n      if (events[index][1].type === 'paragraph') {\n        text = index\n      }\n    } // Exit\n    else {\n      if (events[index][1].type === 'content') {\n        // Remove the content end (if needed we’ll add it later)\n        events.splice(index, 1)\n      }\n\n      if (!definition && events[index][1].type === 'definition') {\n        definition = index\n      }\n    }\n  }\n\n  const heading = {\n    type: 'setextHeading',\n    start: Object.assign({}, events[text][1].start),\n    end: Object.assign({}, events[events.length - 1][1].end)\n  } // Change the paragraph to setext heading text.\n\n  events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n  // but we need move it.\n\n  if (definition) {\n    events.splice(text, 0, ['enter', heading, context])\n    events.splice(definition + 1, 0, ['exit', events[content][1], context])\n    events[content][1].end = Object.assign({}, events[definition][1].end)\n  } else {\n    events[content][1] = heading\n  } // Add the heading exit at the end.\n\n  events.push(['exit', heading, context])\n  return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n  const self = this\n  let index = self.events.length\n  /** @type {NonNullable<Code>} */\n\n  let marker\n  /** @type {boolean} */\n\n  let paragraph // Find an opening.\n\n  while (index--) {\n    // Skip enter/exit of line ending, line prefix, and content.\n    // We can now either have a definition or a paragraph.\n    if (\n      self.events[index][1].type !== 'lineEnding' &&\n      self.events[index][1].type !== 'linePrefix' &&\n      self.events[index][1].type !== 'content'\n    ) {\n      paragraph = self.events[index][1].type === 'paragraph'\n      break\n    }\n  }\n\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n      effects.enter('setextHeadingLine')\n      effects.enter('setextHeadingLineSequence')\n      marker = code\n      return closingSequence(code)\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function closingSequence(code) {\n    if (code === marker) {\n      effects.consume(code)\n      return closingSequence\n    }\n\n    effects.exit('setextHeadingLineSequence')\n    return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n  }\n  /** @type {State} */\n\n  function closingSequenceEnd(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('setextHeadingLine')\n      return ok(code)\n    }\n\n    return nok(code)\n  }\n}\n","/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result\n * in more relaxed rules (condition 6): because they are known blocks, the\n * HTML-like syntax doesn’t have to be strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n */\nexport const htmlBlockNames = [\n  'address',\n  'article',\n  'aside',\n  'base',\n  'basefont',\n  'blockquote',\n  'body',\n  'caption',\n  'center',\n  'col',\n  'colgroup',\n  'dd',\n  'details',\n  'dialog',\n  'dir',\n  'div',\n  'dl',\n  'dt',\n  'fieldset',\n  'figcaption',\n  'figure',\n  'footer',\n  'form',\n  'frame',\n  'frameset',\n  'h1',\n  'h2',\n  'h3',\n  'h4',\n  'h5',\n  'h6',\n  'head',\n  'header',\n  'hr',\n  'html',\n  'iframe',\n  'legend',\n  'li',\n  'link',\n  'main',\n  'menu',\n  'menuitem',\n  'nav',\n  'noframes',\n  'ol',\n  'optgroup',\n  'option',\n  'p',\n  'param',\n  'section',\n  'summary',\n  'table',\n  'tbody',\n  'td',\n  'tfoot',\n  'th',\n  'thead',\n  'title',\n  'tr',\n  'track',\n  'ul'\n]\n\n/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result in\n * HTML that can include lines w/o exiting, until a closing tag also in this\n * list is found (condition 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * Note that `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n  asciiAlpha,\n  asciiAlphanumeric,\n  markdownLineEnding,\n  markdownLineEndingOrSpace,\n  markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n/** @type {Construct} */\n\nexport const htmlFlow = {\n  name: 'htmlFlow',\n  tokenize: tokenizeHtmlFlow,\n  resolveTo: resolveToHtmlFlow,\n  concrete: true\n}\n/** @type {Construct} */\n\nconst nextBlankConstruct = {\n  tokenize: tokenizeNextBlank,\n  partial: true\n}\n/** @type {Resolver} */\n\nfunction resolveToHtmlFlow(events) {\n  let index = events.length\n\n  while (index--) {\n    if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n      break\n    }\n  }\n\n  if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n    // Add the prefix start to the HTML token.\n    events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n    events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n    events.splice(index - 2, 2)\n  }\n\n  return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n  const self = this\n  /** @type {number} */\n\n  let kind\n  /** @type {boolean} */\n\n  let startTag\n  /** @type {string} */\n\n  let buffer\n  /** @type {number} */\n\n  let index\n  /** @type {Code} */\n\n  let marker\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('htmlFlow')\n    effects.enter('htmlFlowData')\n    effects.consume(code)\n    return open\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (code === 33) {\n      effects.consume(code)\n      return declarationStart\n    }\n\n    if (code === 47) {\n      effects.consume(code)\n      return tagCloseStart\n    }\n\n    if (code === 63) {\n      effects.consume(code)\n      kind = 3 // While we’re in an instruction instead of a declaration, we’re on a `?`\n      // right now, so we do need to search for `>`, similar to declarations.\n\n      return self.interrupt ? ok : continuationDeclarationInside\n    }\n\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      buffer = String.fromCharCode(code)\n      startTag = true\n      return tagName\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function declarationStart(code) {\n    if (code === 45) {\n      effects.consume(code)\n      kind = 2\n      return commentOpenInside\n    }\n\n    if (code === 91) {\n      effects.consume(code)\n      kind = 5\n      buffer = 'CDATA['\n      index = 0\n      return cdataOpenInside\n    }\n\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      kind = 4\n      return self.interrupt ? ok : continuationDeclarationInside\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function commentOpenInside(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return self.interrupt ? ok : continuationDeclarationInside\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function cdataOpenInside(code) {\n    if (code === buffer.charCodeAt(index++)) {\n      effects.consume(code)\n      return index === buffer.length\n        ? self.interrupt\n          ? ok\n          : continuation\n        : cdataOpenInside\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function tagCloseStart(code) {\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      buffer = String.fromCharCode(code)\n      return tagName\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function tagName(code) {\n    if (\n      code === null ||\n      code === 47 ||\n      code === 62 ||\n      markdownLineEndingOrSpace(code)\n    ) {\n      if (\n        code !== 47 &&\n        startTag &&\n        htmlRawNames.includes(buffer.toLowerCase())\n      ) {\n        kind = 1\n        return self.interrupt ? ok(code) : continuation(code)\n      }\n\n      if (htmlBlockNames.includes(buffer.toLowerCase())) {\n        kind = 6\n\n        if (code === 47) {\n          effects.consume(code)\n          return basicSelfClosing\n        }\n\n        return self.interrupt ? ok(code) : continuation(code)\n      }\n\n      kind = 7 // Do not support complete HTML when interrupting\n\n      return self.interrupt && !self.parser.lazy[self.now().line]\n        ? nok(code)\n        : startTag\n        ? completeAttributeNameBefore(code)\n        : completeClosingTagAfter(code)\n    }\n\n    if (code === 45 || asciiAlphanumeric(code)) {\n      effects.consume(code)\n      buffer += String.fromCharCode(code)\n      return tagName\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function basicSelfClosing(code) {\n    if (code === 62) {\n      effects.consume(code)\n      return self.interrupt ? ok : continuation\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function completeClosingTagAfter(code) {\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return completeClosingTagAfter\n    }\n\n    return completeEnd(code)\n  }\n  /** @type {State} */\n\n  function completeAttributeNameBefore(code) {\n    if (code === 47) {\n      effects.consume(code)\n      return completeEnd\n    }\n\n    if (code === 58 || code === 95 || asciiAlpha(code)) {\n      effects.consume(code)\n      return completeAttributeName\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return completeAttributeNameBefore\n    }\n\n    return completeEnd(code)\n  }\n  /** @type {State} */\n\n  function completeAttributeName(code) {\n    if (\n      code === 45 ||\n      code === 46 ||\n      code === 58 ||\n      code === 95 ||\n      asciiAlphanumeric(code)\n    ) {\n      effects.consume(code)\n      return completeAttributeName\n    }\n\n    return completeAttributeNameAfter(code)\n  }\n  /** @type {State} */\n\n  function completeAttributeNameAfter(code) {\n    if (code === 61) {\n      effects.consume(code)\n      return completeAttributeValueBefore\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return completeAttributeNameAfter\n    }\n\n    return completeAttributeNameBefore(code)\n  }\n  /** @type {State} */\n\n  function completeAttributeValueBefore(code) {\n    if (\n      code === null ||\n      code === 60 ||\n      code === 61 ||\n      code === 62 ||\n      code === 96\n    ) {\n      return nok(code)\n    }\n\n    if (code === 34 || code === 39) {\n      effects.consume(code)\n      marker = code\n      return completeAttributeValueQuoted\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return completeAttributeValueBefore\n    }\n\n    marker = null\n    return completeAttributeValueUnquoted(code)\n  }\n  /** @type {State} */\n\n  function completeAttributeValueQuoted(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return nok(code)\n    }\n\n    if (code === marker) {\n      effects.consume(code)\n      return completeAttributeValueQuotedAfter\n    }\n\n    effects.consume(code)\n    return completeAttributeValueQuoted\n  }\n  /** @type {State} */\n\n  function completeAttributeValueUnquoted(code) {\n    if (\n      code === null ||\n      code === 34 ||\n      code === 39 ||\n      code === 60 ||\n      code === 61 ||\n      code === 62 ||\n      code === 96 ||\n      markdownLineEndingOrSpace(code)\n    ) {\n      return completeAttributeNameAfter(code)\n    }\n\n    effects.consume(code)\n    return completeAttributeValueUnquoted\n  }\n  /** @type {State} */\n\n  function completeAttributeValueQuotedAfter(code) {\n    if (code === 47 || code === 62 || markdownSpace(code)) {\n      return completeAttributeNameBefore(code)\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function completeEnd(code) {\n    if (code === 62) {\n      effects.consume(code)\n      return completeAfter\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function completeAfter(code) {\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return completeAfter\n    }\n\n    return code === null || markdownLineEnding(code)\n      ? continuation(code)\n      : nok(code)\n  }\n  /** @type {State} */\n\n  function continuation(code) {\n    if (code === 45 && kind === 2) {\n      effects.consume(code)\n      return continuationCommentInside\n    }\n\n    if (code === 60 && kind === 1) {\n      effects.consume(code)\n      return continuationRawTagOpen\n    }\n\n    if (code === 62 && kind === 4) {\n      effects.consume(code)\n      return continuationClose\n    }\n\n    if (code === 63 && kind === 3) {\n      effects.consume(code)\n      return continuationDeclarationInside\n    }\n\n    if (code === 93 && kind === 5) {\n      effects.consume(code)\n      return continuationCharacterDataInside\n    }\n\n    if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n      return effects.check(\n        nextBlankConstruct,\n        continuationClose,\n        continuationAtLineEnding\n      )(code)\n    }\n\n    if (code === null || markdownLineEnding(code)) {\n      return continuationAtLineEnding(code)\n    }\n\n    effects.consume(code)\n    return continuation\n  }\n  /** @type {State} */\n\n  function continuationAtLineEnding(code) {\n    effects.exit('htmlFlowData')\n    return htmlContinueStart(code)\n  }\n  /** @type {State} */\n\n  function htmlContinueStart(code) {\n    if (code === null) {\n      return done(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      return effects.attempt(\n        {\n          tokenize: htmlLineEnd,\n          partial: true\n        },\n        htmlContinueStart,\n        done\n      )(code)\n    }\n\n    effects.enter('htmlFlowData')\n    return continuation(code)\n  }\n  /** @type {Tokenizer} */\n\n  function htmlLineEnd(effects, ok, nok) {\n    return start\n    /** @type {State} */\n\n    function start(code) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return lineStart\n    }\n    /** @type {State} */\n\n    function lineStart(code) {\n      return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n    }\n  }\n  /** @type {State} */\n\n  function continuationCommentInside(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return continuationDeclarationInside\n    }\n\n    return continuation(code)\n  }\n  /** @type {State} */\n\n  function continuationRawTagOpen(code) {\n    if (code === 47) {\n      effects.consume(code)\n      buffer = ''\n      return continuationRawEndTag\n    }\n\n    return continuation(code)\n  }\n  /** @type {State} */\n\n  function continuationRawEndTag(code) {\n    if (code === 62 && htmlRawNames.includes(buffer.toLowerCase())) {\n      effects.consume(code)\n      return continuationClose\n    }\n\n    if (asciiAlpha(code) && buffer.length < 8) {\n      effects.consume(code)\n      buffer += String.fromCharCode(code)\n      return continuationRawEndTag\n    }\n\n    return continuation(code)\n  }\n  /** @type {State} */\n\n  function continuationCharacterDataInside(code) {\n    if (code === 93) {\n      effects.consume(code)\n      return continuationDeclarationInside\n    }\n\n    return continuation(code)\n  }\n  /** @type {State} */\n\n  function continuationDeclarationInside(code) {\n    if (code === 62) {\n      effects.consume(code)\n      return continuationClose\n    } // More dashes.\n\n    if (code === 45 && kind === 2) {\n      effects.consume(code)\n      return continuationDeclarationInside\n    }\n\n    return continuation(code)\n  }\n  /** @type {State} */\n\n  function continuationClose(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('htmlFlowData')\n      return done(code)\n    }\n\n    effects.consume(code)\n    return continuationClose\n  }\n  /** @type {State} */\n\n  function done(code) {\n    effects.exit('htmlFlow')\n    return ok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.exit('htmlFlowData')\n    effects.enter('lineEndingBlank')\n    effects.consume(code)\n    effects.exit('lineEndingBlank')\n    return effects.attempt(blankLine, ok, nok)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n  markdownLineEnding,\n  markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeFenced = {\n  name: 'codeFenced',\n  tokenize: tokenizeCodeFenced,\n  concrete: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n  const self = this\n  /** @type {Construct} */\n\n  const closingFenceConstruct = {\n    tokenize: tokenizeClosingFence,\n    partial: true\n  }\n  /** @type {Construct} */\n\n  const nonLazyLine = {\n    tokenize: tokenizeNonLazyLine,\n    partial: true\n  }\n  const tail = this.events[this.events.length - 1]\n  const initialPrefix =\n    tail && tail[1].type === 'linePrefix'\n      ? tail[2].sliceSerialize(tail[1], true).length\n      : 0\n  let sizeOpen = 0\n  /** @type {NonNullable<Code>} */\n\n  let marker\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('codeFenced')\n    effects.enter('codeFencedFence')\n    effects.enter('codeFencedFenceSequence')\n    marker = code\n    return sequenceOpen(code)\n  }\n  /** @type {State} */\n\n  function sequenceOpen(code) {\n    if (code === marker) {\n      effects.consume(code)\n      sizeOpen++\n      return sequenceOpen\n    }\n\n    effects.exit('codeFencedFenceSequence')\n    return sizeOpen < 3\n      ? nok(code)\n      : factorySpace(effects, infoOpen, 'whitespace')(code)\n  }\n  /** @type {State} */\n\n  function infoOpen(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return openAfter(code)\n    }\n\n    effects.enter('codeFencedFenceInfo')\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return info(code)\n  }\n  /** @type {State} */\n\n  function info(code) {\n    if (code === null || markdownLineEndingOrSpace(code)) {\n      effects.exit('chunkString')\n      effects.exit('codeFencedFenceInfo')\n      return factorySpace(effects, infoAfter, 'whitespace')(code)\n    }\n\n    if (code === 96 && code === marker) return nok(code)\n    effects.consume(code)\n    return info\n  }\n  /** @type {State} */\n\n  function infoAfter(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return openAfter(code)\n    }\n\n    effects.enter('codeFencedFenceMeta')\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return meta(code)\n  }\n  /** @type {State} */\n\n  function meta(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('chunkString')\n      effects.exit('codeFencedFenceMeta')\n      return openAfter(code)\n    }\n\n    if (code === 96 && code === marker) return nok(code)\n    effects.consume(code)\n    return meta\n  }\n  /** @type {State} */\n\n  function openAfter(code) {\n    effects.exit('codeFencedFence')\n    return self.interrupt ? ok(code) : contentStart(code)\n  }\n  /** @type {State} */\n\n  function contentStart(code) {\n    if (code === null) {\n      return after(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      return effects.attempt(\n        nonLazyLine,\n        effects.attempt(\n          closingFenceConstruct,\n          after,\n          initialPrefix\n            ? factorySpace(\n                effects,\n                contentStart,\n                'linePrefix',\n                initialPrefix + 1\n              )\n            : contentStart\n        ),\n        after\n      )(code)\n    }\n\n    effects.enter('codeFlowValue')\n    return contentContinue(code)\n  }\n  /** @type {State} */\n\n  function contentContinue(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('codeFlowValue')\n      return contentStart(code)\n    }\n\n    effects.consume(code)\n    return contentContinue\n  }\n  /** @type {State} */\n\n  function after(code) {\n    effects.exit('codeFenced')\n    return ok(code)\n  }\n  /** @type {Tokenizer} */\n\n  function tokenizeNonLazyLine(effects, ok, nok) {\n    const self = this\n    return start\n    /** @type {State} */\n\n    function start(code) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return lineStart\n    }\n    /** @type {State} */\n\n    function lineStart(code) {\n      return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n    }\n  }\n  /** @type {Tokenizer} */\n\n  function tokenizeClosingFence(effects, ok, nok) {\n    let size = 0\n    return factorySpace(\n      effects,\n      closingSequenceStart,\n      'linePrefix',\n      this.parser.constructs.disable.null.includes('codeIndented')\n        ? undefined\n        : 4\n    )\n    /** @type {State} */\n\n    function closingSequenceStart(code) {\n      effects.enter('codeFencedFence')\n      effects.enter('codeFencedFenceSequence')\n      return closingSequence(code)\n    }\n    /** @type {State} */\n\n    function closingSequence(code) {\n      if (code === marker) {\n        effects.consume(code)\n        size++\n        return closingSequence\n      }\n\n      if (size < sizeOpen) return nok(code)\n      effects.exit('codeFencedFenceSequence')\n      return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n    }\n    /** @type {State} */\n\n    function closingSequenceEnd(code) {\n      if (code === null || markdownLineEnding(code)) {\n        effects.exit('codeFencedFence')\n        return ok(code)\n      }\n\n      return nok(code)\n    }\n  }\n}\n","/// <reference lib=\"dom\" />\n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n  const characterReference = '&' + value + ';'\n  element.innerHTML = characterReference\n  const char = element.textContent\n\n  // Some named character references do not require the closing semicolon\n  // (`&not`, for instance), which leads to situations where parsing the assumed\n  // named reference of `&notit;` will result in the string `¬it;`.\n  // When we encounter a trailing semicolon after parsing, and the character\n  // reference to decode was not a semicolon (`&semi;`), we can assume that the\n  // matching was not complete.\n  // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n  // yield `null`.\n  if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n    return false\n  }\n\n  // If the decoded string is equal to the input, the character reference was\n  // not valid.\n  // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n  // yield `null`.\n  return char === characterReference ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n  asciiAlphanumeric,\n  asciiDigit,\n  asciiHexDigit\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterReference = {\n  name: 'characterReference',\n  tokenize: tokenizeCharacterReference\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n  const self = this\n  let size = 0\n  /** @type {number} */\n\n  let max\n  /** @type {(code: Code) => code is number} */\n\n  let test\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('characterReference')\n    effects.enter('characterReferenceMarker')\n    effects.consume(code)\n    effects.exit('characterReferenceMarker')\n    return open\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (code === 35) {\n      effects.enter('characterReferenceMarkerNumeric')\n      effects.consume(code)\n      effects.exit('characterReferenceMarkerNumeric')\n      return numeric\n    }\n\n    effects.enter('characterReferenceValue')\n    max = 31\n    test = asciiAlphanumeric\n    return value(code)\n  }\n  /** @type {State} */\n\n  function numeric(code) {\n    if (code === 88 || code === 120) {\n      effects.enter('characterReferenceMarkerHexadecimal')\n      effects.consume(code)\n      effects.exit('characterReferenceMarkerHexadecimal')\n      effects.enter('characterReferenceValue')\n      max = 6\n      test = asciiHexDigit\n      return value\n    }\n\n    effects.enter('characterReferenceValue')\n    max = 7\n    test = asciiDigit\n    return value(code)\n  }\n  /** @type {State} */\n\n  function value(code) {\n    /** @type {Token} */\n    let token\n\n    if (code === 59 && size) {\n      token = effects.exit('characterReferenceValue')\n\n      if (\n        test === asciiAlphanumeric &&\n        !decodeNamedCharacterReference(self.sliceSerialize(token))\n      ) {\n        return nok(code)\n      }\n\n      effects.enter('characterReferenceMarker')\n      effects.consume(code)\n      effects.exit('characterReferenceMarker')\n      effects.exit('characterReference')\n      return ok\n    }\n\n    if (test(code) && size++ < max) {\n      effects.consume(code)\n      return value\n    }\n\n    return nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {asciiPunctuation} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterEscape = {\n  name: 'characterEscape',\n  tokenize: tokenizeCharacterEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('characterEscape')\n    effects.enter('escapeMarker')\n    effects.consume(code)\n    effects.exit('escapeMarker')\n    return open\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (asciiPunctuation(code)) {\n      effects.enter('characterEscapeValue')\n      effects.consume(code)\n      effects.exit('characterEscapeValue')\n      effects.exit('characterEscape')\n      return ok\n    }\n\n    return nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const lineEnding = {\n  name: 'lineEnding',\n  tokenize: tokenizeLineEnding\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLineEnding(effects, ok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('lineEnding')\n    effects.consume(code)\n    effects.exit('lineEnding')\n    return factorySpace(effects, ok, 'linePrefix')\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const labelEnd = {\n  name: 'labelEnd',\n  tokenize: tokenizeLabelEnd,\n  resolveTo: resolveToLabelEnd,\n  resolveAll: resolveAllLabelEnd\n}\n/** @type {Construct} */\n\nconst resourceConstruct = {\n  tokenize: tokenizeResource\n}\n/** @type {Construct} */\n\nconst fullReferenceConstruct = {\n  tokenize: tokenizeFullReference\n}\n/** @type {Construct} */\n\nconst collapsedReferenceConstruct = {\n  tokenize: tokenizeCollapsedReference\n}\n/** @type {Resolver} */\n\nfunction resolveAllLabelEnd(events) {\n  let index = -1\n  /** @type {Token} */\n\n  let token\n\n  while (++index < events.length) {\n    token = events[index][1]\n\n    if (\n      token.type === 'labelImage' ||\n      token.type === 'labelLink' ||\n      token.type === 'labelEnd'\n    ) {\n      // Remove the marker.\n      events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n      token.type = 'data'\n      index++\n    }\n  }\n\n  return events\n}\n/** @type {Resolver} */\n\nfunction resolveToLabelEnd(events, context) {\n  let index = events.length\n  let offset = 0\n  /** @type {Token} */\n\n  let token\n  /** @type {number|undefined} */\n\n  let open\n  /** @type {number|undefined} */\n\n  let close\n  /** @type {Event[]} */\n\n  let media // Find an opening.\n\n  while (index--) {\n    token = events[index][1]\n\n    if (open) {\n      // If we see another link, or inactive link label, we’ve been here before.\n      if (\n        token.type === 'link' ||\n        (token.type === 'labelLink' && token._inactive)\n      ) {\n        break\n      } // Mark other link openings as inactive, as we can’t have links in\n      // links.\n\n      if (events[index][0] === 'enter' && token.type === 'labelLink') {\n        token._inactive = true\n      }\n    } else if (close) {\n      if (\n        events[index][0] === 'enter' &&\n        (token.type === 'labelImage' || token.type === 'labelLink') &&\n        !token._balanced\n      ) {\n        open = index\n\n        if (token.type !== 'labelLink') {\n          offset = 2\n          break\n        }\n      }\n    } else if (token.type === 'labelEnd') {\n      close = index\n    }\n  }\n\n  const group = {\n    type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n    start: Object.assign({}, events[open][1].start),\n    end: Object.assign({}, events[events.length - 1][1].end)\n  }\n  const label = {\n    type: 'label',\n    start: Object.assign({}, events[open][1].start),\n    end: Object.assign({}, events[close][1].end)\n  }\n  const text = {\n    type: 'labelText',\n    start: Object.assign({}, events[open + offset + 2][1].end),\n    end: Object.assign({}, events[close - 2][1].start)\n  }\n  media = [\n    ['enter', group, context],\n    ['enter', label, context]\n  ] // Opening marker.\n\n  media = push(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n  media = push(media, [['enter', text, context]]) // Between.\n\n  media = push(\n    media,\n    resolveAll(\n      context.parser.constructs.insideSpan.null,\n      events.slice(open + offset + 4, close - 3),\n      context\n    )\n  ) // Text close, marker close, label close.\n\n  media = push(media, [\n    ['exit', text, context],\n    events[close - 2],\n    events[close - 1],\n    ['exit', label, context]\n  ]) // Reference, resource, or so.\n\n  media = push(media, events.slice(close + 1)) // Media close.\n\n  media = push(media, [['exit', group, context]])\n  splice(events, open, events.length, media)\n  return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n  const self = this\n  let index = self.events.length\n  /** @type {Token} */\n\n  let labelStart\n  /** @type {boolean} */\n\n  let defined // Find an opening.\n\n  while (index--) {\n    if (\n      (self.events[index][1].type === 'labelImage' ||\n        self.events[index][1].type === 'labelLink') &&\n      !self.events[index][1]._balanced\n    ) {\n      labelStart = self.events[index][1]\n      break\n    }\n  }\n\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (!labelStart) {\n      return nok(code)\n    } // It’s a balanced bracket, but contains a link.\n\n    if (labelStart._inactive) return balanced(code)\n    defined = self.parser.defined.includes(\n      normalizeIdentifier(\n        self.sliceSerialize({\n          start: labelStart.end,\n          end: self.now()\n        })\n      )\n    )\n    effects.enter('labelEnd')\n    effects.enter('labelMarker')\n    effects.consume(code)\n    effects.exit('labelMarker')\n    effects.exit('labelEnd')\n    return afterLabelEnd\n  }\n  /** @type {State} */\n\n  function afterLabelEnd(code) {\n    // Resource: `[asd](fgh)`.\n    if (code === 40) {\n      return effects.attempt(\n        resourceConstruct,\n        ok,\n        defined ? ok : balanced\n      )(code)\n    } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n    if (code === 91) {\n      return effects.attempt(\n        fullReferenceConstruct,\n        ok,\n        defined\n          ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n          : balanced\n      )(code)\n    } // Shortcut reference: `[asd]`?\n\n    return defined ? ok(code) : balanced(code)\n  }\n  /** @type {State} */\n\n  function balanced(code) {\n    labelStart._balanced = true\n    return nok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeResource(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('resource')\n    effects.enter('resourceMarker')\n    effects.consume(code)\n    effects.exit('resourceMarker')\n    return factoryWhitespace(effects, open)\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (code === 41) {\n      return end(code)\n    }\n\n    return factoryDestination(\n      effects,\n      destinationAfter,\n      nok,\n      'resourceDestination',\n      'resourceDestinationLiteral',\n      'resourceDestinationLiteralMarker',\n      'resourceDestinationRaw',\n      'resourceDestinationString',\n      32\n    )(code)\n  }\n  /** @type {State} */\n\n  function destinationAfter(code) {\n    return markdownLineEndingOrSpace(code)\n      ? factoryWhitespace(effects, between)(code)\n      : end(code)\n  }\n  /** @type {State} */\n\n  function between(code) {\n    if (code === 34 || code === 39 || code === 40) {\n      return factoryTitle(\n        effects,\n        factoryWhitespace(effects, end),\n        nok,\n        'resourceTitle',\n        'resourceTitleMarker',\n        'resourceTitleString'\n      )(code)\n    }\n\n    return end(code)\n  }\n  /** @type {State} */\n\n  function end(code) {\n    if (code === 41) {\n      effects.enter('resourceMarker')\n      effects.consume(code)\n      effects.exit('resourceMarker')\n      effects.exit('resource')\n      return ok\n    }\n\n    return nok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeFullReference(effects, ok, nok) {\n  const self = this\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    return factoryLabel.call(\n      self,\n      effects,\n      afterLabel,\n      nok,\n      'reference',\n      'referenceMarker',\n      'referenceString'\n    )(code)\n  }\n  /** @type {State} */\n\n  function afterLabel(code) {\n    return self.parser.defined.includes(\n      normalizeIdentifier(\n        self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n      )\n    )\n      ? ok(code)\n      : nok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('reference')\n    effects.enter('referenceMarker')\n    effects.consume(code)\n    effects.exit('referenceMarker')\n    return open\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (code === 93) {\n      effects.enter('referenceMarker')\n      effects.consume(code)\n      effects.exit('referenceMarker')\n      effects.exit('reference')\n      return ok\n    }\n\n    return nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartImage = {\n  name: 'labelStartImage',\n  tokenize: tokenizeLabelStartImage,\n  resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n  const self = this\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('labelImage')\n    effects.enter('labelImageMarker')\n    effects.consume(code)\n    effects.exit('labelImageMarker')\n    return open\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (code === 91) {\n      effects.enter('labelMarker')\n      effects.consume(code)\n      effects.exit('labelMarker')\n      effects.exit('labelImage')\n      return after\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function after(code) {\n    /* To do: remove in the future once we’ve switched from\n     * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n     * which doesn’t need this */\n\n    /* Hidden footnotes hook */\n\n    /* c8 ignore next 3 */\n    return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n      ? nok(code)\n      : ok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n  markdownLineEndingOrSpace,\n  unicodePunctuation,\n  unicodeWhitespace\n} from 'micromark-util-character'\n\n/**\n * Classify whether a character code represents whitespace, punctuation, or\n * something else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * Note that eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * @returns {number|undefined}\n */\nexport function classifyCharacter(code) {\n  if (\n    code === null ||\n    markdownLineEndingOrSpace(code) ||\n    unicodeWhitespace(code)\n  ) {\n    return 1\n  }\n\n  if (unicodePunctuation(code)) {\n    return 2\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Point} Point\n */\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const attention = {\n  name: 'attention',\n  tokenize: tokenizeAttention,\n  resolveAll: resolveAllAttention\n}\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n\nfunction resolveAllAttention(events, context) {\n  let index = -1\n  /** @type {number} */\n\n  let open\n  /** @type {Token} */\n\n  let group\n  /** @type {Token} */\n\n  let text\n  /** @type {Token} */\n\n  let openingSequence\n  /** @type {Token} */\n\n  let closingSequence\n  /** @type {number} */\n\n  let use\n  /** @type {Event[]} */\n\n  let nextEvents\n  /** @type {number} */\n\n  let offset // Walk through all events.\n  //\n  // Note: performance of this is fine on an mb of normal markdown, but it’s\n  // a bottleneck for malicious stuff.\n\n  while (++index < events.length) {\n    // Find a token that can close.\n    if (\n      events[index][0] === 'enter' &&\n      events[index][1].type === 'attentionSequence' &&\n      events[index][1]._close\n    ) {\n      open = index // Now walk back to find an opener.\n\n      while (open--) {\n        // Find a token that can open the closer.\n        if (\n          events[open][0] === 'exit' &&\n          events[open][1].type === 'attentionSequence' &&\n          events[open][1]._open && // If the markers are the same:\n          context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n            context.sliceSerialize(events[index][1]).charCodeAt(0)\n        ) {\n          // If the opening can close or the closing can open,\n          // and the close size *is not* a multiple of three,\n          // but the sum of the opening and closing size *is* multiple of three,\n          // then don’t match.\n          if (\n            (events[open][1]._close || events[index][1]._open) &&\n            (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n            !(\n              (events[open][1].end.offset -\n                events[open][1].start.offset +\n                events[index][1].end.offset -\n                events[index][1].start.offset) %\n              3\n            )\n          ) {\n            continue\n          } // Number of markers to use from the sequence.\n\n          use =\n            events[open][1].end.offset - events[open][1].start.offset > 1 &&\n            events[index][1].end.offset - events[index][1].start.offset > 1\n              ? 2\n              : 1\n          const start = Object.assign({}, events[open][1].end)\n          const end = Object.assign({}, events[index][1].start)\n          movePoint(start, -use)\n          movePoint(end, use)\n          openingSequence = {\n            type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n            start,\n            end: Object.assign({}, events[open][1].end)\n          }\n          closingSequence = {\n            type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n            start: Object.assign({}, events[index][1].start),\n            end\n          }\n          text = {\n            type: use > 1 ? 'strongText' : 'emphasisText',\n            start: Object.assign({}, events[open][1].end),\n            end: Object.assign({}, events[index][1].start)\n          }\n          group = {\n            type: use > 1 ? 'strong' : 'emphasis',\n            start: Object.assign({}, openingSequence.start),\n            end: Object.assign({}, closingSequence.end)\n          }\n          events[open][1].end = Object.assign({}, openingSequence.start)\n          events[index][1].start = Object.assign({}, closingSequence.end)\n          nextEvents = [] // If there are more markers in the opening, add them before.\n\n          if (events[open][1].end.offset - events[open][1].start.offset) {\n            nextEvents = push(nextEvents, [\n              ['enter', events[open][1], context],\n              ['exit', events[open][1], context]\n            ])\n          } // Opening.\n\n          nextEvents = push(nextEvents, [\n            ['enter', group, context],\n            ['enter', openingSequence, context],\n            ['exit', openingSequence, context],\n            ['enter', text, context]\n          ]) // Between.\n\n          nextEvents = push(\n            nextEvents,\n            resolveAll(\n              context.parser.constructs.insideSpan.null,\n              events.slice(open + 1, index),\n              context\n            )\n          ) // Closing.\n\n          nextEvents = push(nextEvents, [\n            ['exit', text, context],\n            ['enter', closingSequence, context],\n            ['exit', closingSequence, context],\n            ['exit', group, context]\n          ]) // If there are more markers in the closing, add them after.\n\n          if (events[index][1].end.offset - events[index][1].start.offset) {\n            offset = 2\n            nextEvents = push(nextEvents, [\n              ['enter', events[index][1], context],\n              ['exit', events[index][1], context]\n            ])\n          } else {\n            offset = 0\n          }\n\n          splice(events, open - 1, index - open + 3, nextEvents)\n          index = open + nextEvents.length - offset - 2\n          break\n        }\n      }\n    }\n  } // Remove remaining sequences.\n\n  index = -1\n\n  while (++index < events.length) {\n    if (events[index][1].type === 'attentionSequence') {\n      events[index][1].type = 'data'\n    }\n  }\n\n  return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAttention(effects, ok) {\n  const attentionMarkers = this.parser.constructs.attentionMarkers.null\n  const previous = this.previous\n  const before = classifyCharacter(previous)\n  /** @type {NonNullable<Code>} */\n\n  let marker\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('attentionSequence')\n    marker = code\n    return sequence(code)\n  }\n  /** @type {State} */\n\n  function sequence(code) {\n    if (code === marker) {\n      effects.consume(code)\n      return sequence\n    }\n\n    const token = effects.exit('attentionSequence')\n    const after = classifyCharacter(code)\n    const open =\n      !after || (after === 2 && before) || attentionMarkers.includes(code)\n    const close =\n      !before || (before === 2 && after) || attentionMarkers.includes(previous)\n    token._open = Boolean(marker === 42 ? open : open && (before || !close))\n    token._close = Boolean(marker === 42 ? close : close && (after || !open))\n    return ok(code)\n  }\n}\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\n\nfunction movePoint(point, offset) {\n  point.column += offset\n  point.offset += offset\n  point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n  asciiAlpha,\n  asciiAlphanumeric,\n  asciiAtext,\n  asciiControl\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const autolink = {\n  name: 'autolink',\n  tokenize: tokenizeAutolink\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAutolink(effects, ok, nok) {\n  let size = 1\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('autolink')\n    effects.enter('autolinkMarker')\n    effects.consume(code)\n    effects.exit('autolinkMarker')\n    effects.enter('autolinkProtocol')\n    return open\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      return schemeOrEmailAtext\n    }\n\n    return asciiAtext(code) ? emailAtext(code) : nok(code)\n  }\n  /** @type {State} */\n\n  function schemeOrEmailAtext(code) {\n    return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n      ? schemeInsideOrEmailAtext(code)\n      : emailAtext(code)\n  }\n  /** @type {State} */\n\n  function schemeInsideOrEmailAtext(code) {\n    if (code === 58) {\n      effects.consume(code)\n      return urlInside\n    }\n\n    if (\n      (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n      size++ < 32\n    ) {\n      effects.consume(code)\n      return schemeInsideOrEmailAtext\n    }\n\n    return emailAtext(code)\n  }\n  /** @type {State} */\n\n  function urlInside(code) {\n    if (code === 62) {\n      effects.exit('autolinkProtocol')\n      return end(code)\n    }\n\n    if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n      return nok(code)\n    }\n\n    effects.consume(code)\n    return urlInside\n  }\n  /** @type {State} */\n\n  function emailAtext(code) {\n    if (code === 64) {\n      effects.consume(code)\n      size = 0\n      return emailAtSignOrDot\n    }\n\n    if (asciiAtext(code)) {\n      effects.consume(code)\n      return emailAtext\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function emailAtSignOrDot(code) {\n    return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n  }\n  /** @type {State} */\n\n  function emailLabel(code) {\n    if (code === 46) {\n      effects.consume(code)\n      size = 0\n      return emailAtSignOrDot\n    }\n\n    if (code === 62) {\n      // Exit, then change the type.\n      effects.exit('autolinkProtocol').type = 'autolinkEmail'\n      return end(code)\n    }\n\n    return emailValue(code)\n  }\n  /** @type {State} */\n\n  function emailValue(code) {\n    if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n      effects.consume(code)\n      return code === 45 ? emailValue : emailLabel\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function end(code) {\n    effects.enter('autolinkMarker')\n    effects.consume(code)\n    effects.exit('autolinkMarker')\n    effects.exit('autolink')\n    return ok\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n  asciiAlpha,\n  asciiAlphanumeric,\n  markdownLineEnding,\n  markdownLineEndingOrSpace,\n  markdownSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const htmlText = {\n  name: 'htmlText',\n  tokenize: tokenizeHtmlText\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n  const self = this\n  /** @type {NonNullable<Code>|undefined} */\n\n  let marker\n  /** @type {string} */\n\n  let buffer\n  /** @type {number} */\n\n  let index\n  /** @type {State} */\n\n  let returnState\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('htmlText')\n    effects.enter('htmlTextData')\n    effects.consume(code)\n    return open\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (code === 33) {\n      effects.consume(code)\n      return declarationOpen\n    }\n\n    if (code === 47) {\n      effects.consume(code)\n      return tagCloseStart\n    }\n\n    if (code === 63) {\n      effects.consume(code)\n      return instruction\n    }\n\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      return tagOpen\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function declarationOpen(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return commentOpen\n    }\n\n    if (code === 91) {\n      effects.consume(code)\n      buffer = 'CDATA['\n      index = 0\n      return cdataOpen\n    }\n\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      return declaration\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function commentOpen(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return commentStart\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function commentStart(code) {\n    if (code === null || code === 62) {\n      return nok(code)\n    }\n\n    if (code === 45) {\n      effects.consume(code)\n      return commentStartDash\n    }\n\n    return comment(code)\n  }\n  /** @type {State} */\n\n  function commentStartDash(code) {\n    if (code === null || code === 62) {\n      return nok(code)\n    }\n\n    return comment(code)\n  }\n  /** @type {State} */\n\n  function comment(code) {\n    if (code === null) {\n      return nok(code)\n    }\n\n    if (code === 45) {\n      effects.consume(code)\n      return commentClose\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = comment\n      return atLineEnding(code)\n    }\n\n    effects.consume(code)\n    return comment\n  }\n  /** @type {State} */\n\n  function commentClose(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return end\n    }\n\n    return comment(code)\n  }\n  /** @type {State} */\n\n  function cdataOpen(code) {\n    if (code === buffer.charCodeAt(index++)) {\n      effects.consume(code)\n      return index === buffer.length ? cdata : cdataOpen\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function cdata(code) {\n    if (code === null) {\n      return nok(code)\n    }\n\n    if (code === 93) {\n      effects.consume(code)\n      return cdataClose\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = cdata\n      return atLineEnding(code)\n    }\n\n    effects.consume(code)\n    return cdata\n  }\n  /** @type {State} */\n\n  function cdataClose(code) {\n    if (code === 93) {\n      effects.consume(code)\n      return cdataEnd\n    }\n\n    return cdata(code)\n  }\n  /** @type {State} */\n\n  function cdataEnd(code) {\n    if (code === 62) {\n      return end(code)\n    }\n\n    if (code === 93) {\n      effects.consume(code)\n      return cdataEnd\n    }\n\n    return cdata(code)\n  }\n  /** @type {State} */\n\n  function declaration(code) {\n    if (code === null || code === 62) {\n      return end(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = declaration\n      return atLineEnding(code)\n    }\n\n    effects.consume(code)\n    return declaration\n  }\n  /** @type {State} */\n\n  function instruction(code) {\n    if (code === null) {\n      return nok(code)\n    }\n\n    if (code === 63) {\n      effects.consume(code)\n      return instructionClose\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = instruction\n      return atLineEnding(code)\n    }\n\n    effects.consume(code)\n    return instruction\n  }\n  /** @type {State} */\n\n  function instructionClose(code) {\n    return code === 62 ? end(code) : instruction(code)\n  }\n  /** @type {State} */\n\n  function tagCloseStart(code) {\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      return tagClose\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function tagClose(code) {\n    if (code === 45 || asciiAlphanumeric(code)) {\n      effects.consume(code)\n      return tagClose\n    }\n\n    return tagCloseBetween(code)\n  }\n  /** @type {State} */\n\n  function tagCloseBetween(code) {\n    if (markdownLineEnding(code)) {\n      returnState = tagCloseBetween\n      return atLineEnding(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return tagCloseBetween\n    }\n\n    return end(code)\n  }\n  /** @type {State} */\n\n  function tagOpen(code) {\n    if (code === 45 || asciiAlphanumeric(code)) {\n      effects.consume(code)\n      return tagOpen\n    }\n\n    if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n      return tagOpenBetween(code)\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function tagOpenBetween(code) {\n    if (code === 47) {\n      effects.consume(code)\n      return end\n    }\n\n    if (code === 58 || code === 95 || asciiAlpha(code)) {\n      effects.consume(code)\n      return tagOpenAttributeName\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenBetween\n      return atLineEnding(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return tagOpenBetween\n    }\n\n    return end(code)\n  }\n  /** @type {State} */\n\n  function tagOpenAttributeName(code) {\n    if (\n      code === 45 ||\n      code === 46 ||\n      code === 58 ||\n      code === 95 ||\n      asciiAlphanumeric(code)\n    ) {\n      effects.consume(code)\n      return tagOpenAttributeName\n    }\n\n    return tagOpenAttributeNameAfter(code)\n  }\n  /** @type {State} */\n\n  function tagOpenAttributeNameAfter(code) {\n    if (code === 61) {\n      effects.consume(code)\n      return tagOpenAttributeValueBefore\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenAttributeNameAfter\n      return atLineEnding(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return tagOpenAttributeNameAfter\n    }\n\n    return tagOpenBetween(code)\n  }\n  /** @type {State} */\n\n  function tagOpenAttributeValueBefore(code) {\n    if (\n      code === null ||\n      code === 60 ||\n      code === 61 ||\n      code === 62 ||\n      code === 96\n    ) {\n      return nok(code)\n    }\n\n    if (code === 34 || code === 39) {\n      effects.consume(code)\n      marker = code\n      return tagOpenAttributeValueQuoted\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenAttributeValueBefore\n      return atLineEnding(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return tagOpenAttributeValueBefore\n    }\n\n    effects.consume(code)\n    marker = undefined\n    return tagOpenAttributeValueUnquoted\n  }\n  /** @type {State} */\n\n  function tagOpenAttributeValueQuoted(code) {\n    if (code === marker) {\n      effects.consume(code)\n      return tagOpenAttributeValueQuotedAfter\n    }\n\n    if (code === null) {\n      return nok(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenAttributeValueQuoted\n      return atLineEnding(code)\n    }\n\n    effects.consume(code)\n    return tagOpenAttributeValueQuoted\n  }\n  /** @type {State} */\n\n  function tagOpenAttributeValueQuotedAfter(code) {\n    if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n      return tagOpenBetween(code)\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function tagOpenAttributeValueUnquoted(code) {\n    if (\n      code === null ||\n      code === 34 ||\n      code === 39 ||\n      code === 60 ||\n      code === 61 ||\n      code === 96\n    ) {\n      return nok(code)\n    }\n\n    if (code === 62 || markdownLineEndingOrSpace(code)) {\n      return tagOpenBetween(code)\n    }\n\n    effects.consume(code)\n    return tagOpenAttributeValueUnquoted\n  } // We can’t have blank lines in content, so no need to worry about empty\n  // tokens.\n\n  /** @type {State} */\n\n  function atLineEnding(code) {\n    effects.exit('htmlTextData')\n    effects.enter('lineEnding')\n    effects.consume(code)\n    effects.exit('lineEnding')\n    return factorySpace(\n      effects,\n      afterPrefix,\n      'linePrefix',\n      self.parser.constructs.disable.null.includes('codeIndented')\n        ? undefined\n        : 4\n    )\n  }\n  /** @type {State} */\n\n  function afterPrefix(code) {\n    effects.enter('htmlTextData')\n    return returnState(code)\n  }\n  /** @type {State} */\n\n  function end(code) {\n    if (code === 62) {\n      effects.consume(code)\n      effects.exit('htmlTextData')\n      effects.exit('htmlText')\n      return ok\n    }\n\n    return nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartLink = {\n  name: 'labelStartLink',\n  tokenize: tokenizeLabelStartLink,\n  resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n  const self = this\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('labelLink')\n    effects.enter('labelMarker')\n    effects.consume(code)\n    effects.exit('labelMarker')\n    effects.exit('labelLink')\n    return after\n  }\n  /** @type {State} */\n\n  function after(code) {\n    /* To do: remove in the future once we’ve switched from\n     * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n     * which doesn’t need this */\n\n    /* Hidden footnotes hook. */\n\n    /* c8 ignore next 3 */\n    return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n      ? nok(code)\n      : ok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const hardBreakEscape = {\n  name: 'hardBreakEscape',\n  tokenize: tokenizeHardBreakEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('hardBreakEscape')\n    effects.enter('escapeMarker')\n    effects.consume(code)\n    return open\n  }\n  /** @type {State} */\n\n  function open(code) {\n    if (markdownLineEnding(code)) {\n      effects.exit('escapeMarker')\n      effects.exit('hardBreakEscape')\n      return ok(code)\n    }\n\n    return nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeText = {\n  name: 'codeText',\n  tokenize: tokenizeCodeText,\n  resolve: resolveCodeText,\n  previous\n}\n/** @type {Resolver} */\n\nfunction resolveCodeText(events) {\n  let tailExitIndex = events.length - 4\n  let headEnterIndex = 3\n  /** @type {number} */\n\n  let index\n  /** @type {number|undefined} */\n\n  let enter // If we start and end with an EOL or a space.\n\n  if (\n    (events[headEnterIndex][1].type === 'lineEnding' ||\n      events[headEnterIndex][1].type === 'space') &&\n    (events[tailExitIndex][1].type === 'lineEnding' ||\n      events[tailExitIndex][1].type === 'space')\n  ) {\n    index = headEnterIndex // And we have data.\n\n    while (++index < tailExitIndex) {\n      if (events[index][1].type === 'codeTextData') {\n        // Then we have padding.\n        events[headEnterIndex][1].type = 'codeTextPadding'\n        events[tailExitIndex][1].type = 'codeTextPadding'\n        headEnterIndex += 2\n        tailExitIndex -= 2\n        break\n      }\n    }\n  } // Merge adjacent spaces and data.\n\n  index = headEnterIndex - 1\n  tailExitIndex++\n\n  while (++index <= tailExitIndex) {\n    if (enter === undefined) {\n      if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n        enter = index\n      }\n    } else if (\n      index === tailExitIndex ||\n      events[index][1].type === 'lineEnding'\n    ) {\n      events[enter][1].type = 'codeTextData'\n\n      if (index !== enter + 2) {\n        events[enter][1].end = events[index - 1][1].end\n        events.splice(enter + 2, index - enter - 2)\n        tailExitIndex -= index - enter - 2\n        index = enter + 2\n      }\n\n      enter = undefined\n    }\n  }\n\n  return events\n}\n/** @type {Previous} */\n\nfunction previous(code) {\n  // If there is a previous code, there will always be a tail.\n  return (\n    code !== 96 ||\n    this.events[this.events.length - 1][1].type === 'characterEscape'\n  )\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeText(effects, ok, nok) {\n  const self = this\n  let sizeOpen = 0\n  /** @type {number} */\n\n  let size\n  /** @type {Token} */\n\n  let token\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('codeText')\n    effects.enter('codeTextSequence')\n    return openingSequence(code)\n  }\n  /** @type {State} */\n\n  function openingSequence(code) {\n    if (code === 96) {\n      effects.consume(code)\n      sizeOpen++\n      return openingSequence\n    }\n\n    effects.exit('codeTextSequence')\n    return gap(code)\n  }\n  /** @type {State} */\n\n  function gap(code) {\n    // EOF.\n    if (code === null) {\n      return nok(code)\n    } // Closing fence?\n    // Could also be data.\n\n    if (code === 96) {\n      token = effects.enter('codeTextSequence')\n      size = 0\n      return closingSequence(code)\n    } // Tabs don’t work, and virtual spaces don’t make sense.\n\n    if (code === 32) {\n      effects.enter('space')\n      effects.consume(code)\n      effects.exit('space')\n      return gap\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return gap\n    } // Data.\n\n    effects.enter('codeTextData')\n    return data(code)\n  } // In code.\n\n  /** @type {State} */\n\n  function data(code) {\n    if (\n      code === null ||\n      code === 32 ||\n      code === 96 ||\n      markdownLineEnding(code)\n    ) {\n      effects.exit('codeTextData')\n      return gap(code)\n    }\n\n    effects.consume(code)\n    return data\n  } // Closing fence.\n\n  /** @type {State} */\n\n  function closingSequence(code) {\n    // More.\n    if (code === 96) {\n      effects.consume(code)\n      size++\n      return closingSequence\n    } // Done!\n\n    if (size === sizeOpen) {\n      effects.exit('codeTextSequence')\n      effects.exit('codeText')\n      return ok(code)\n    } // More or less accents: mark as data.\n\n    token.type = 'codeTextData'\n    return data(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\nimport {\n  attention,\n  autolink,\n  blockQuote,\n  characterEscape,\n  characterReference,\n  codeFenced,\n  codeIndented,\n  codeText,\n  definition,\n  hardBreakEscape,\n  headingAtx,\n  htmlFlow,\n  htmlText,\n  labelEnd,\n  labelStartImage,\n  labelStartLink,\n  lineEnding,\n  list,\n  setextUnderline,\n  thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n/** @type {Extension['document']} */\n\nexport const document = {\n  [42]: list,\n  [43]: list,\n  [45]: list,\n  [48]: list,\n  [49]: list,\n  [50]: list,\n  [51]: list,\n  [52]: list,\n  [53]: list,\n  [54]: list,\n  [55]: list,\n  [56]: list,\n  [57]: list,\n  [62]: blockQuote\n}\n/** @type {Extension['contentInitial']} */\n\nexport const contentInitial = {\n  [91]: definition\n}\n/** @type {Extension['flowInitial']} */\n\nexport const flowInitial = {\n  [-2]: codeIndented,\n  [-1]: codeIndented,\n  [32]: codeIndented\n}\n/** @type {Extension['flow']} */\n\nexport const flow = {\n  [35]: headingAtx,\n  [42]: thematicBreak,\n  [45]: [setextUnderline, thematicBreak],\n  [60]: htmlFlow,\n  [61]: setextUnderline,\n  [95]: thematicBreak,\n  [96]: codeFenced,\n  [126]: codeFenced\n}\n/** @type {Extension['string']} */\n\nexport const string = {\n  [38]: characterReference,\n  [92]: characterEscape\n}\n/** @type {Extension['text']} */\n\nexport const text = {\n  [-5]: lineEnding,\n  [-4]: lineEnding,\n  [-3]: lineEnding,\n  [33]: labelStartImage,\n  [38]: characterReference,\n  [42]: attention,\n  [60]: [autolink, htmlText],\n  [91]: labelStartLink,\n  [92]: [hardBreakEscape, characterEscape],\n  [93]: labelEnd,\n  [95]: attention,\n  [96]: codeText\n}\n/** @type {Extension['insideSpan']} */\n\nexport const insideSpan = {\n  null: [attention, resolveText]\n}\n/** @type {Extension['attentionMarkers']} */\n\nexport const attentionMarkers = {\n  null: [42, 95]\n}\n/** @type {Extension['disable']} */\n\nexport const disable = {\n  null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {boolean} [end=false]\n * @returns {Array<Chunk>}\n */\nconst search = /[\\0\\t\\n\\r]/g\n/**\n * @returns {Preprocessor}\n */\n\nexport function preprocess() {\n  let column = 1\n  let buffer = ''\n  /** @type {boolean|undefined} */\n\n  let start = true\n  /** @type {boolean|undefined} */\n\n  let atCarriageReturn\n  return preprocessor\n  /** @type {Preprocessor} */\n\n  function preprocessor(value, encoding, end) {\n    /** @type {Array<Chunk>} */\n    const chunks = []\n    /** @type {RegExpMatchArray|null} */\n\n    let match\n    /** @type {number} */\n\n    let next\n    /** @type {number} */\n\n    let startPosition\n    /** @type {number} */\n\n    let endPosition\n    /** @type {Code} */\n\n    let code // @ts-expect-error `Buffer` does allow an encoding.\n\n    value = buffer + value.toString(encoding)\n    startPosition = 0\n    buffer = ''\n\n    if (start) {\n      if (value.charCodeAt(0) === 65279) {\n        startPosition++\n      }\n\n      start = undefined\n    }\n\n    while (startPosition < value.length) {\n      search.lastIndex = startPosition\n      match = search.exec(value)\n      endPosition =\n        match && match.index !== undefined ? match.index : value.length\n      code = value.charCodeAt(endPosition)\n\n      if (!match) {\n        buffer = value.slice(startPosition)\n        break\n      }\n\n      if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n        chunks.push(-3)\n        atCarriageReturn = undefined\n      } else {\n        if (atCarriageReturn) {\n          chunks.push(-5)\n          atCarriageReturn = undefined\n        }\n\n        if (startPosition < endPosition) {\n          chunks.push(value.slice(startPosition, endPosition))\n          column += endPosition - startPosition\n        }\n\n        switch (code) {\n          case 0: {\n            chunks.push(65533)\n            column++\n            break\n          }\n\n          case 9: {\n            next = Math.ceil(column / 4) * 4\n            chunks.push(-2)\n\n            while (column++ < next) chunks.push(-1)\n\n            break\n          }\n\n          case 10: {\n            chunks.push(-4)\n            column = 1\n            break\n          }\n\n          default: {\n            atCarriageReturn = true\n            column = 1\n          }\n        }\n      }\n\n      startPosition = endPosition + 1\n    }\n\n    if (end) {\n      if (atCarriageReturn) chunks.push(-5)\n      if (buffer) chunks.push(buffer)\n      chunks.push(null)\n    }\n\n    return chunks\n  }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * @param {string} value\n *   Value to decode.\n * @param {number} base\n *   Numeric base.\n * @returns {string}\n */\nexport function decodeNumericCharacterReference(value, base) {\n  const code = Number.parseInt(value, base)\n\n  if (\n    // C0 except for HT, LF, FF, CR, space\n    code < 9 ||\n    code === 11 ||\n    (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n    (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n    (code > 55295 && code < 57344) || // Noncharacters.\n    (code > 64975 && code < 65008) ||\n    (code & 65535) === 65535 ||\n    (code & 65535) === 65534 || // Out of range\n    code > 1114111\n  ) {\n    return '\\uFFFD'\n  }\n\n  return String.fromCharCode(code)\n}\n","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n  /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n/**\n * Utility to decode markdown strings (which occur in places such as fenced\n * code info strings, destinations, labels, and titles).\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * @returns {string}\n */\n\nexport function decodeString(value) {\n  return value.replace(characterEscapeOrReference, decode)\n}\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\n\nfunction decode($0, $1, $2) {\n  if ($1) {\n    // Escape.\n    return $1\n  } // Reference.\n\n  const head = $2.charCodeAt(0)\n\n  if (head === 35) {\n    const head = $2.charCodeAt(1)\n    const hex = head === 120 || head === 88\n    return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n  }\n\n  return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {Root|Content} Node\n * @typedef {Extract<Node, UnistParent>} Parent\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n *\n * @typedef {UnistParent & {type: 'fragment', children: Array<PhrasingContent>}} Fragment\n */\n\n/**\n * @typedef _CompileDataFields\n * @property {boolean|undefined} expectingFirstListItemValue\n * @property {boolean|undefined} flowCodeInside\n * @property {boolean|undefined} setextHeadingSlurpLineEnding\n * @property {boolean|undefined} atHardBreak\n * @property {'collapsed'|'full'} referenceType\n * @property {boolean|undefined} inReference\n * @property {'characterReferenceMarkerHexadecimal'|'characterReferenceMarkerNumeric'} characterReferenceType\n *\n * @typedef {Record<string, unknown> & Partial<_CompileDataFields>} CompileData\n *\n * @typedef {(tree: Root) => Root|void} Transform\n * @typedef {(this: CompileContext, token: Token) => void} Handle\n * @typedef {Record<string, Handle>} Handles\n *   Token types mapping to handles\n * @typedef {Record<string, Record<string, unknown>|Array<unknown>> & {canContainEols: Array<string>, transforms: Array<Transform>, enter: Handles, exit: Handles}} NormalizedExtension\n * @typedef {Partial<NormalizedExtension>} Extension\n *   An mdast extension changes how markdown tokens are turned into mdast.\n *\n * @typedef {(this: Omit<CompileContext, 'sliceSerialize'>, left: Token|undefined, right: Token) => void} OnEnterError\n * @typedef {(this: Omit<CompileContext, 'sliceSerialize'>, left: Token, right: Token) => void} OnExitError\n *\n * @typedef CompileContext\n *   mdast compiler context\n * @property {Array<Node | Fragment>} stack\n * @property {Array<[Token, OnEnterError|undefined]>} tokenStack\n * @property {(key: string, value?: unknown) => void} setData\n *   Set data into the key-value store.\n * @property {<K extends string>(key: K) => CompileData[K]} getData\n *   Get data from the key-value store.\n * @property {(this: CompileContext) => void} buffer\n *   Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n *   Stop capturing and access the output data.\n * @property {<N extends Node>(this: CompileContext, node: N, token: Token, onError?: OnEnterError) => N} enter\n *   Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n *   Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n *   Get the string value of a token.\n * @property {NormalizedExtension} config\n *   Configuration.\n *\n * @typedef {{mdastExtensions?: Array<Extension|Array<Extension>>}} FromMarkdownOptions\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n */\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n/**\n * @param value Markdown to parse (`string` or `Buffer`).\n * @param [encoding] Character encoding to understand `value` as when it’s a `Buffer` (`string`, default: `'utf8'`).\n * @param [options] Configuration\n */\n\nexport const fromMarkdown =\n  /**\n   * @type {(\n   *   ((value: Value, encoding: Encoding, options?: Options) => Root) &\n   *   ((value: Value, options?: Options) => Root)\n   * )}\n   */\n\n  /**\n   * @param {Value} value\n   * @param {Encoding} [encoding]\n   * @param {Options} [options]\n   * @returns {Root}\n   */\n  function (value, encoding, options) {\n    if (typeof encoding !== 'string') {\n      options = encoding\n      encoding = undefined\n    }\n\n    return compiler(options)(\n      postprocess(\n        parse(options).document().write(preprocess()(value, encoding, true))\n      )\n    )\n  }\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options} [options]\n */\n\nfunction compiler(options = {}) {\n  /** @type {NormalizedExtension} */\n  // @ts-expect-error: our base has all required fields, so the result will too.\n  const config = configure(\n    {\n      transforms: [],\n      canContainEols: [\n        'emphasis',\n        'fragment',\n        'heading',\n        'paragraph',\n        'strong'\n      ],\n      enter: {\n        autolink: opener(link),\n        autolinkProtocol: onenterdata,\n        autolinkEmail: onenterdata,\n        atxHeading: opener(heading),\n        blockQuote: opener(blockQuote),\n        characterEscape: onenterdata,\n        characterReference: onenterdata,\n        codeFenced: opener(codeFlow),\n        codeFencedFenceInfo: buffer,\n        codeFencedFenceMeta: buffer,\n        codeIndented: opener(codeFlow, buffer),\n        codeText: opener(codeText, buffer),\n        codeTextData: onenterdata,\n        data: onenterdata,\n        codeFlowValue: onenterdata,\n        definition: opener(definition),\n        definitionDestinationString: buffer,\n        definitionLabelString: buffer,\n        definitionTitleString: buffer,\n        emphasis: opener(emphasis),\n        hardBreakEscape: opener(hardBreak),\n        hardBreakTrailing: opener(hardBreak),\n        htmlFlow: opener(html, buffer),\n        htmlFlowData: onenterdata,\n        htmlText: opener(html, buffer),\n        htmlTextData: onenterdata,\n        image: opener(image),\n        label: buffer,\n        link: opener(link),\n        listItem: opener(listItem),\n        listItemValue: onenterlistitemvalue,\n        listOrdered: opener(list, onenterlistordered),\n        listUnordered: opener(list),\n        paragraph: opener(paragraph),\n        reference: onenterreference,\n        referenceString: buffer,\n        resourceDestinationString: buffer,\n        resourceTitleString: buffer,\n        setextHeading: opener(heading),\n        strong: opener(strong),\n        thematicBreak: opener(thematicBreak)\n      },\n      exit: {\n        atxHeading: closer(),\n        atxHeadingSequence: onexitatxheadingsequence,\n        autolink: closer(),\n        autolinkEmail: onexitautolinkemail,\n        autolinkProtocol: onexitautolinkprotocol,\n        blockQuote: closer(),\n        characterEscapeValue: onexitdata,\n        characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n        characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n        characterReferenceValue: onexitcharacterreferencevalue,\n        codeFenced: closer(onexitcodefenced),\n        codeFencedFence: onexitcodefencedfence,\n        codeFencedFenceInfo: onexitcodefencedfenceinfo,\n        codeFencedFenceMeta: onexitcodefencedfencemeta,\n        codeFlowValue: onexitdata,\n        codeIndented: closer(onexitcodeindented),\n        codeText: closer(onexitcodetext),\n        codeTextData: onexitdata,\n        data: onexitdata,\n        definition: closer(),\n        definitionDestinationString: onexitdefinitiondestinationstring,\n        definitionLabelString: onexitdefinitionlabelstring,\n        definitionTitleString: onexitdefinitiontitlestring,\n        emphasis: closer(),\n        hardBreakEscape: closer(onexithardbreak),\n        hardBreakTrailing: closer(onexithardbreak),\n        htmlFlow: closer(onexithtmlflow),\n        htmlFlowData: onexitdata,\n        htmlText: closer(onexithtmltext),\n        htmlTextData: onexitdata,\n        image: closer(onexitimage),\n        label: onexitlabel,\n        labelText: onexitlabeltext,\n        lineEnding: onexitlineending,\n        link: closer(onexitlink),\n        listItem: closer(),\n        listOrdered: closer(),\n        listUnordered: closer(),\n        paragraph: closer(),\n        referenceString: onexitreferencestring,\n        resourceDestinationString: onexitresourcedestinationstring,\n        resourceTitleString: onexitresourcetitlestring,\n        resource: onexitresource,\n        setextHeading: closer(onexitsetextheading),\n        setextHeadingLineSequence: onexitsetextheadinglinesequence,\n        setextHeadingText: onexitsetextheadingtext,\n        strong: closer(),\n        thematicBreak: closer()\n      }\n    },\n    options.mdastExtensions || []\n  )\n  /** @type {CompileData} */\n\n  const data = {}\n  return compile\n  /**\n   * @param {Array<Event>} events\n   * @returns {Root}\n   */\n\n  function compile(events) {\n    /** @type {Root} */\n    let tree = {\n      type: 'root',\n      children: []\n    }\n    /** @type {CompileContext['stack']} */\n\n    const stack = [tree]\n    /** @type {CompileContext['tokenStack']} */\n\n    const tokenStack = []\n    /** @type {Array<number>} */\n\n    const listStack = []\n    /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n\n    const context = {\n      stack,\n      tokenStack,\n      config,\n      enter,\n      exit,\n      buffer,\n      resume,\n      setData,\n      getData\n    }\n    let index = -1\n\n    while (++index < events.length) {\n      // We preprocess lists to add `listItem` tokens, and to infer whether\n      // items the list itself are spread out.\n      if (\n        events[index][1].type === 'listOrdered' ||\n        events[index][1].type === 'listUnordered'\n      ) {\n        if (events[index][0] === 'enter') {\n          listStack.push(index)\n        } else {\n          const tail = listStack.pop()\n          index = prepareList(events, tail, index)\n        }\n      }\n    }\n\n    index = -1\n\n    while (++index < events.length) {\n      const handler = config[events[index][0]]\n\n      if (own.call(handler, events[index][1].type)) {\n        handler[events[index][1].type].call(\n          Object.assign(\n            {\n              sliceSerialize: events[index][2].sliceSerialize\n            },\n            context\n          ),\n          events[index][1]\n        )\n      }\n    }\n\n    if (tokenStack.length > 0) {\n      const tail = tokenStack[tokenStack.length - 1]\n      const handler = tail[1] || defaultOnError\n      handler.call(context, undefined, tail[0])\n    } // Figure out `root` position.\n\n    tree.position = {\n      start: point(\n        events.length > 0\n          ? events[0][1].start\n          : {\n              line: 1,\n              column: 1,\n              offset: 0\n            }\n      ),\n      end: point(\n        events.length > 0\n          ? events[events.length - 2][1].end\n          : {\n              line: 1,\n              column: 1,\n              offset: 0\n            }\n      )\n    }\n    index = -1\n\n    while (++index < config.transforms.length) {\n      tree = config.transforms[index](tree) || tree\n    }\n\n    return tree\n  }\n  /**\n   * @param {Array<Event>} events\n   * @param {number} start\n   * @param {number} length\n   * @returns {number}\n   */\n\n  function prepareList(events, start, length) {\n    let index = start - 1\n    let containerBalance = -1\n    let listSpread = false\n    /** @type {Token|undefined} */\n\n    let listItem\n    /** @type {number|undefined} */\n\n    let lineIndex\n    /** @type {number|undefined} */\n\n    let firstBlankLineIndex\n    /** @type {boolean|undefined} */\n\n    let atMarker\n\n    while (++index <= length) {\n      const event = events[index]\n\n      if (\n        event[1].type === 'listUnordered' ||\n        event[1].type === 'listOrdered' ||\n        event[1].type === 'blockQuote'\n      ) {\n        if (event[0] === 'enter') {\n          containerBalance++\n        } else {\n          containerBalance--\n        }\n\n        atMarker = undefined\n      } else if (event[1].type === 'lineEndingBlank') {\n        if (event[0] === 'enter') {\n          if (\n            listItem &&\n            !atMarker &&\n            !containerBalance &&\n            !firstBlankLineIndex\n          ) {\n            firstBlankLineIndex = index\n          }\n\n          atMarker = undefined\n        }\n      } else if (\n        event[1].type === 'linePrefix' ||\n        event[1].type === 'listItemValue' ||\n        event[1].type === 'listItemMarker' ||\n        event[1].type === 'listItemPrefix' ||\n        event[1].type === 'listItemPrefixWhitespace'\n      ) {\n        // Empty.\n      } else {\n        atMarker = undefined\n      }\n\n      if (\n        (!containerBalance &&\n          event[0] === 'enter' &&\n          event[1].type === 'listItemPrefix') ||\n        (containerBalance === -1 &&\n          event[0] === 'exit' &&\n          (event[1].type === 'listUnordered' ||\n            event[1].type === 'listOrdered'))\n      ) {\n        if (listItem) {\n          let tailIndex = index\n          lineIndex = undefined\n\n          while (tailIndex--) {\n            const tailEvent = events[tailIndex]\n\n            if (\n              tailEvent[1].type === 'lineEnding' ||\n              tailEvent[1].type === 'lineEndingBlank'\n            ) {\n              if (tailEvent[0] === 'exit') continue\n\n              if (lineIndex) {\n                events[lineIndex][1].type = 'lineEndingBlank'\n                listSpread = true\n              }\n\n              tailEvent[1].type = 'lineEnding'\n              lineIndex = tailIndex\n            } else if (\n              tailEvent[1].type === 'linePrefix' ||\n              tailEvent[1].type === 'blockQuotePrefix' ||\n              tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n              tailEvent[1].type === 'blockQuoteMarker' ||\n              tailEvent[1].type === 'listItemIndent'\n            ) {\n              // Empty\n            } else {\n              break\n            }\n          }\n\n          if (\n            firstBlankLineIndex &&\n            (!lineIndex || firstBlankLineIndex < lineIndex)\n          ) {\n            // @ts-expect-error Patched.\n            listItem._spread = true\n          } // Fix position.\n\n          listItem.end = Object.assign(\n            {},\n            lineIndex ? events[lineIndex][1].start : event[1].end\n          )\n          events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n          index++\n          length++\n        } // Create a new list item.\n\n        if (event[1].type === 'listItemPrefix') {\n          listItem = {\n            type: 'listItem',\n            // @ts-expect-error Patched\n            _spread: false,\n            start: Object.assign({}, event[1].start)\n          } // @ts-expect-error: `listItem` is most definitely defined, TS...\n\n          events.splice(index, 0, ['enter', listItem, event[2]])\n          index++\n          length++\n          firstBlankLineIndex = undefined\n          atMarker = true\n        }\n      }\n    } // @ts-expect-error Patched.\n\n    events[start][1]._spread = listSpread\n    return length\n  }\n  /**\n   * @type {CompileContext['setData']}\n   * @param [value]\n   */\n\n  function setData(key, value) {\n    data[key] = value\n  }\n  /**\n   * @type {CompileContext['getData']}\n   * @template {string} K\n   * @param {K} key\n   * @returns {CompileData[K]}\n   */\n\n  function getData(key) {\n    return data[key]\n  }\n  /**\n   * @param {Point} d\n   * @returns {Point}\n   */\n\n  function point(d) {\n    return {\n      line: d.line,\n      column: d.column,\n      offset: d.offset\n    }\n  }\n  /**\n   * @param {(token: Token) => Node} create\n   * @param {Handle} [and]\n   * @returns {Handle}\n   */\n\n  function opener(create, and) {\n    return open\n    /**\n     * @this {CompileContext}\n     * @param {Token} token\n     * @returns {void}\n     */\n\n    function open(token) {\n      enter.call(this, create(token), token)\n      if (and) and.call(this, token)\n    }\n  }\n  /** @type {CompileContext['buffer']} */\n\n  function buffer() {\n    this.stack.push({\n      type: 'fragment',\n      children: []\n    })\n  }\n  /**\n   * @type {CompileContext['enter']}\n   * @template {Node} N\n   * @this {CompileContext}\n   * @param {N} node\n   * @param {Token} token\n   * @param {OnEnterError} [errorHandler]\n   * @returns {N}\n   */\n\n  function enter(node, token, errorHandler) {\n    const parent = this.stack[this.stack.length - 1]\n    // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n    parent.children.push(node)\n    this.stack.push(node)\n    this.tokenStack.push([token, errorHandler]) // @ts-expect-error: `end` will be patched later.\n\n    node.position = {\n      start: point(token.start)\n    }\n    return node\n  }\n  /**\n   * @param {Handle} [and]\n   * @returns {Handle}\n   */\n\n  function closer(and) {\n    return close\n    /**\n     * @this {CompileContext}\n     * @param {Token} token\n     * @returns {void}\n     */\n\n    function close(token) {\n      if (and) and.call(this, token)\n      exit.call(this, token)\n    }\n  }\n  /**\n   * @type {CompileContext['exit']}\n   * @this {CompileContext}\n   * @param {Token} token\n   * @param {OnExitError} [onExitError]\n   * @returns {Node}\n   */\n\n  function exit(token, onExitError) {\n    const node = this.stack.pop()\n    const open = this.tokenStack.pop()\n\n    if (!open) {\n      throw new Error(\n        'Cannot close `' +\n          token.type +\n          '` (' +\n          stringifyPosition({\n            start: token.start,\n            end: token.end\n          }) +\n          '): it’s not open'\n      )\n    } else if (open[0].type !== token.type) {\n      if (onExitError) {\n        onExitError.call(this, token, open[0])\n      } else {\n        const handler = open[1] || defaultOnError\n        handler.call(this, token, open[0])\n      }\n    }\n\n    node.position.end = point(token.end)\n    return node\n  }\n  /**\n   * @this {CompileContext}\n   * @returns {string}\n   */\n\n  function resume() {\n    return toString(this.stack.pop())\n  } //\n  // Handlers.\n  //\n\n  /** @type {Handle} */\n\n  function onenterlistordered() {\n    setData('expectingFirstListItemValue', true)\n  }\n  /** @type {Handle} */\n\n  function onenterlistitemvalue(token) {\n    if (getData('expectingFirstListItemValue')) {\n      const ancestor =\n        /** @type {List} */\n        this.stack[this.stack.length - 2]\n      ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n      setData('expectingFirstListItemValue')\n    }\n  }\n  /** @type {Handle} */\n\n  function onexitcodefencedfenceinfo() {\n    const data = this.resume()\n    const node =\n      /** @type {Code} */\n      this.stack[this.stack.length - 1]\n    node.lang = data\n  }\n  /** @type {Handle} */\n\n  function onexitcodefencedfencemeta() {\n    const data = this.resume()\n    const node =\n      /** @type {Code} */\n      this.stack[this.stack.length - 1]\n    node.meta = data\n  }\n  /** @type {Handle} */\n\n  function onexitcodefencedfence() {\n    // Exit if this is the closing fence.\n    if (getData('flowCodeInside')) return\n    this.buffer()\n    setData('flowCodeInside', true)\n  }\n  /** @type {Handle} */\n\n  function onexitcodefenced() {\n    const data = this.resume()\n    const node =\n      /** @type {Code} */\n      this.stack[this.stack.length - 1]\n    node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n    setData('flowCodeInside')\n  }\n  /** @type {Handle} */\n\n  function onexitcodeindented() {\n    const data = this.resume()\n    const node =\n      /** @type {Code} */\n      this.stack[this.stack.length - 1]\n    node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n  }\n  /** @type {Handle} */\n\n  function onexitdefinitionlabelstring(token) {\n    // Discard label, use the source content instead.\n    const label = this.resume()\n    const node =\n      /** @type {Definition} */\n      this.stack[this.stack.length - 1]\n    node.label = label\n    node.identifier = normalizeIdentifier(\n      this.sliceSerialize(token)\n    ).toLowerCase()\n  }\n  /** @type {Handle} */\n\n  function onexitdefinitiontitlestring() {\n    const data = this.resume()\n    const node =\n      /** @type {Definition} */\n      this.stack[this.stack.length - 1]\n    node.title = data\n  }\n  /** @type {Handle} */\n\n  function onexitdefinitiondestinationstring() {\n    const data = this.resume()\n    const node =\n      /** @type {Definition} */\n      this.stack[this.stack.length - 1]\n    node.url = data\n  }\n  /** @type {Handle} */\n\n  function onexitatxheadingsequence(token) {\n    const node =\n      /** @type {Heading} */\n      this.stack[this.stack.length - 1]\n\n    if (!node.depth) {\n      const depth = this.sliceSerialize(token).length\n      node.depth = depth\n    }\n  }\n  /** @type {Handle} */\n\n  function onexitsetextheadingtext() {\n    setData('setextHeadingSlurpLineEnding', true)\n  }\n  /** @type {Handle} */\n\n  function onexitsetextheadinglinesequence(token) {\n    const node =\n      /** @type {Heading} */\n      this.stack[this.stack.length - 1]\n    node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n  }\n  /** @type {Handle} */\n\n  function onexitsetextheading() {\n    setData('setextHeadingSlurpLineEnding')\n  }\n  /** @type {Handle} */\n\n  function onenterdata(token) {\n    const parent =\n      /** @type {Parent} */\n      this.stack[this.stack.length - 1]\n    /** @type {Node} */\n\n    let tail = parent.children[parent.children.length - 1]\n\n    if (!tail || tail.type !== 'text') {\n      // Add a new text node.\n      tail = text() // @ts-expect-error: we’ll add `end` later.\n\n      tail.position = {\n        start: point(token.start)\n      } // @ts-expect-error: Assume `parent` accepts `text`.\n\n      parent.children.push(tail)\n    }\n\n    this.stack.push(tail)\n  }\n  /** @type {Handle} */\n\n  function onexitdata(token) {\n    const tail = this.stack.pop()\n    tail.value += this.sliceSerialize(token)\n    tail.position.end = point(token.end)\n  }\n  /** @type {Handle} */\n\n  function onexitlineending(token) {\n    const context = this.stack[this.stack.length - 1]\n\n    // If we’re at a hard break, include the line ending in there.\n    if (getData('atHardBreak')) {\n      const tail = context.children[context.children.length - 1]\n      tail.position.end = point(token.end)\n      setData('atHardBreak')\n      return\n    }\n\n    if (\n      !getData('setextHeadingSlurpLineEnding') &&\n      config.canContainEols.includes(context.type)\n    ) {\n      onenterdata.call(this, token)\n      onexitdata.call(this, token)\n    }\n  }\n  /** @type {Handle} */\n\n  function onexithardbreak() {\n    setData('atHardBreak', true)\n  }\n  /** @type {Handle} */\n\n  function onexithtmlflow() {\n    const data = this.resume()\n    const node =\n      /** @type {HTML} */\n      this.stack[this.stack.length - 1]\n    node.value = data\n  }\n  /** @type {Handle} */\n\n  function onexithtmltext() {\n    const data = this.resume()\n    const node =\n      /** @type {HTML} */\n      this.stack[this.stack.length - 1]\n    node.value = data\n  }\n  /** @type {Handle} */\n\n  function onexitcodetext() {\n    const data = this.resume()\n    const node =\n      /** @type {InlineCode} */\n      this.stack[this.stack.length - 1]\n    node.value = data\n  }\n  /** @type {Handle} */\n\n  function onexitlink() {\n    const context =\n      /** @type {Link & {identifier: string, label: string}} */\n      this.stack[this.stack.length - 1] // To do: clean.\n\n    if (getData('inReference')) {\n      context.type += 'Reference' // @ts-expect-error: mutate.\n\n      context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n      delete context.url\n      delete context.title\n    } else {\n      // @ts-expect-error: mutate.\n      delete context.identifier // @ts-expect-error: mutate.\n\n      delete context.label\n    }\n\n    setData('referenceType')\n  }\n  /** @type {Handle} */\n\n  function onexitimage() {\n    const context =\n      /** @type {Image & {identifier: string, label: string}} */\n      this.stack[this.stack.length - 1] // To do: clean.\n\n    if (getData('inReference')) {\n      context.type += 'Reference' // @ts-expect-error: mutate.\n\n      context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n      delete context.url\n      delete context.title\n    } else {\n      // @ts-expect-error: mutate.\n      delete context.identifier // @ts-expect-error: mutate.\n\n      delete context.label\n    }\n\n    setData('referenceType')\n  }\n  /** @type {Handle} */\n\n  function onexitlabeltext(token) {\n    const ancestor =\n      /** @type {(Link|Image) & {identifier: string, label: string}} */\n      this.stack[this.stack.length - 2]\n    const string = this.sliceSerialize(token)\n    ancestor.label = decodeString(string)\n    ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n  }\n  /** @type {Handle} */\n\n  function onexitlabel() {\n    const fragment =\n      /** @type {Fragment} */\n      this.stack[this.stack.length - 1]\n    const value = this.resume()\n    const node =\n      /** @type {(Link|Image) & {identifier: string, label: string}} */\n      this.stack[this.stack.length - 1] // Assume a reference.\n\n    setData('inReference', true)\n\n    if (node.type === 'link') {\n      // @ts-expect-error: Assume static phrasing content.\n      node.children = fragment.children\n    } else {\n      node.alt = value\n    }\n  }\n  /** @type {Handle} */\n\n  function onexitresourcedestinationstring() {\n    const data = this.resume()\n    const node =\n      /** @type {Link|Image} */\n      this.stack[this.stack.length - 1]\n    node.url = data\n  }\n  /** @type {Handle} */\n\n  function onexitresourcetitlestring() {\n    const data = this.resume()\n    const node =\n      /** @type {Link|Image} */\n      this.stack[this.stack.length - 1]\n    node.title = data\n  }\n  /** @type {Handle} */\n\n  function onexitresource() {\n    setData('inReference')\n  }\n  /** @type {Handle} */\n\n  function onenterreference() {\n    setData('referenceType', 'collapsed')\n  }\n  /** @type {Handle} */\n\n  function onexitreferencestring(token) {\n    const label = this.resume()\n    const node =\n      /** @type {LinkReference|ImageReference} */\n      this.stack[this.stack.length - 1]\n    node.label = label\n    node.identifier = normalizeIdentifier(\n      this.sliceSerialize(token)\n    ).toLowerCase()\n    setData('referenceType', 'full')\n  }\n  /** @type {Handle} */\n\n  function onexitcharacterreferencemarker(token) {\n    setData('characterReferenceType', token.type)\n  }\n  /** @type {Handle} */\n\n  function onexitcharacterreferencevalue(token) {\n    const data = this.sliceSerialize(token)\n    const type = getData('characterReferenceType')\n    /** @type {string} */\n\n    let value\n\n    if (type) {\n      value = decodeNumericCharacterReference(\n        data,\n        type === 'characterReferenceMarkerNumeric' ? 10 : 16\n      )\n      setData('characterReferenceType')\n    } else {\n      // @ts-expect-error `decodeNamedCharacterReference` can return false for\n      // invalid named character references, but everything we’ve tokenized is\n      // valid.\n      value = decodeNamedCharacterReference(data)\n    }\n\n    const tail = this.stack.pop()\n    tail.value += value\n    tail.position.end = point(token.end)\n  }\n  /** @type {Handle} */\n\n  function onexitautolinkprotocol(token) {\n    onexitdata.call(this, token)\n    const node =\n      /** @type {Link} */\n      this.stack[this.stack.length - 1]\n    node.url = this.sliceSerialize(token)\n  }\n  /** @type {Handle} */\n\n  function onexitautolinkemail(token) {\n    onexitdata.call(this, token)\n    const node =\n      /** @type {Link} */\n      this.stack[this.stack.length - 1]\n    node.url = 'mailto:' + this.sliceSerialize(token)\n  } //\n  // Creaters.\n  //\n\n  /** @returns {Blockquote} */\n\n  function blockQuote() {\n    return {\n      type: 'blockquote',\n      children: []\n    }\n  }\n  /** @returns {Code} */\n\n  function codeFlow() {\n    return {\n      type: 'code',\n      lang: null,\n      meta: null,\n      value: ''\n    }\n  }\n  /** @returns {InlineCode} */\n\n  function codeText() {\n    return {\n      type: 'inlineCode',\n      value: ''\n    }\n  }\n  /** @returns {Definition} */\n\n  function definition() {\n    return {\n      type: 'definition',\n      identifier: '',\n      label: null,\n      title: null,\n      url: ''\n    }\n  }\n  /** @returns {Emphasis} */\n\n  function emphasis() {\n    return {\n      type: 'emphasis',\n      children: []\n    }\n  }\n  /** @returns {Heading} */\n\n  function heading() {\n    // @ts-expect-error `depth` will be set later.\n    return {\n      type: 'heading',\n      depth: undefined,\n      children: []\n    }\n  }\n  /** @returns {Break} */\n\n  function hardBreak() {\n    return {\n      type: 'break'\n    }\n  }\n  /** @returns {HTML} */\n\n  function html() {\n    return {\n      type: 'html',\n      value: ''\n    }\n  }\n  /** @returns {Image} */\n\n  function image() {\n    return {\n      type: 'image',\n      title: null,\n      url: '',\n      alt: null\n    }\n  }\n  /** @returns {Link} */\n\n  function link() {\n    return {\n      type: 'link',\n      title: null,\n      url: '',\n      children: []\n    }\n  }\n  /**\n   * @param {Token} token\n   * @returns {List}\n   */\n\n  function list(token) {\n    return {\n      type: 'list',\n      ordered: token.type === 'listOrdered',\n      start: null,\n      // @ts-expect-error Patched.\n      spread: token._spread,\n      children: []\n    }\n  }\n  /**\n   * @param {Token} token\n   * @returns {ListItem}\n   */\n\n  function listItem(token) {\n    return {\n      type: 'listItem',\n      // @ts-expect-error Patched.\n      spread: token._spread,\n      checked: null,\n      children: []\n    }\n  }\n  /** @returns {Paragraph} */\n\n  function paragraph() {\n    return {\n      type: 'paragraph',\n      children: []\n    }\n  }\n  /** @returns {Strong} */\n\n  function strong() {\n    return {\n      type: 'strong',\n      children: []\n    }\n  }\n  /** @returns {Text} */\n\n  function text() {\n    return {\n      type: 'text',\n      value: ''\n    }\n  }\n  /** @returns {ThematicBreak} */\n\n  function thematicBreak() {\n    return {\n      type: 'thematicBreak'\n    }\n  }\n}\n/**\n * @param {Extension} combined\n * @param {Array<Extension|Array<Extension>>} extensions\n * @returns {Extension}\n */\n\nfunction configure(combined, extensions) {\n  let index = -1\n\n  while (++index < extensions.length) {\n    const value = extensions[index]\n\n    if (Array.isArray(value)) {\n      configure(combined, value)\n    } else {\n      extension(combined, value)\n    }\n  }\n\n  return combined\n}\n/**\n * @param {Extension} combined\n * @param {Extension} extension\n * @returns {void}\n */\n\nfunction extension(combined, extension) {\n  /** @type {string} */\n  let key\n\n  for (key in extension) {\n    if (own.call(extension, key)) {\n      const list = key === 'canContainEols' || key === 'transforms'\n      const maybe = own.call(combined, key) ? combined[key] : undefined\n      /* c8 ignore next */\n\n      const left = maybe || (combined[key] = list ? [] : {})\n      const right = extension[key]\n\n      if (right) {\n        if (list) {\n          // @ts-expect-error: `left` is an array.\n          combined[key] = [...left, ...right]\n        } else {\n          Object.assign(left, right)\n        }\n      }\n    }\n  }\n}\n/** @type {OnEnterError} */\n\nfunction defaultOnError(left, right) {\n  if (left) {\n    throw new Error(\n      'Cannot close `' +\n        left.type +\n        '` (' +\n        stringifyPosition({\n          start: left.start,\n          end: left.end\n        }) +\n        '): a different token (`' +\n        right.type +\n        '`, ' +\n        stringifyPosition({\n          start: right.start,\n          end: right.end\n        }) +\n        ') is open'\n    )\n  } else {\n    throw new Error(\n      'Cannot close document, a token (`' +\n        right.type +\n        '`, ' +\n        stringifyPosition({\n          start: right.start,\n          end: right.end\n        }) +\n        ') is still open'\n    )\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * @param {Array<Event>} events\n * @returns {Array<Event>}\n */\n\nexport function postprocess(events) {\n  while (!subtokenize(events)) {\n    // Empty\n  }\n\n  return events\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Create} Create\n */\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n/**\n * @param {ParseOptions} [options]\n * @returns {ParseContext}\n */\n\nexport function parse(options = {}) {\n  /** @type {FullNormalizedExtension} */\n  // @ts-expect-error `defaultConstructs` is full, so the result will be too.\n  const constructs = combineExtensions(\n    // @ts-expect-error Same as above.\n    [defaultConstructs].concat(options.extensions || [])\n  )\n  /** @type {ParseContext} */\n\n  const parser = {\n    defined: [],\n    lazy: {},\n    constructs,\n    content: create(content),\n    document: create(document),\n    flow: create(flow),\n    string: create(string),\n    text: create(text)\n  }\n  return parser\n  /**\n   * @param {InitialConstruct} initial\n   */\n\n  function create(initial) {\n    return creator\n    /** @type {Create} */\n\n    function creator(from) {\n      return createTokenizer(parser, initial, from)\n    }\n  }\n}\n","import remarkParse from './lib/index.js'\n\nexport default remarkParse\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/** @type {import('unified').Plugin<[Options?] | void[], string, Root>} */\nexport default function remarkParse(options) {\n  /** @type {import('unified').ParserFunction<Root>} */\n  const parser = (doc) => {\n    // Assume options.\n    const settings = /** @type {Options} */ (this.data('settings'))\n\n    return fromMarkdown(\n      doc,\n      Object.assign({}, settings, options, {\n        // Note: these options are not in the readme.\n        // The goal is for them to be set by plugins on `data` instead of being\n        // passed by users.\n        extensions: this.data('micromarkExtensions') || [],\n        mdastExtensions: this.data('fromMarkdownExtensions') || []\n      })\n    )\n  }\n\n  Object.assign(this, {Parser: parser})\n}\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri` below).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * Then, a regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`,\n * or `/^https?$/i` for `img[src]`.\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string|undefined} url\n * @param {RegExp} [protocol]\n * @returns {string}\n */\nexport function sanitizeUri(url, protocol) {\n  const value = encode(normalizeUri(url || ''))\n\n  if (!protocol) {\n    return value\n  }\n\n  const colon = value.indexOf(':')\n  const questionMark = value.indexOf('?')\n  const numberSign = value.indexOf('#')\n  const slash = value.indexOf('/')\n\n  if (\n    // If there is no protocol, it’s relative.\n    colon < 0 || // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n    (slash > -1 && colon > slash) ||\n    (questionMark > -1 && colon > questionMark) ||\n    (numberSign > -1 && colon > numberSign) || // It is a protocol, it should be allowed.\n    protocol.test(value.slice(0, colon))\n  ) {\n    return value\n  }\n\n  return ''\n}\n/**\n * Normalize a URL (such as used in definitions).\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * @returns {string}\n */\n\nexport function normalizeUri(value) {\n  /** @type {Array<string>} */\n  const result = []\n  let index = -1\n  let start = 0\n  let skip = 0\n\n  while (++index < value.length) {\n    const code = value.charCodeAt(index)\n    /** @type {string} */\n\n    let replace = '' // A correct percent encoded value.\n\n    if (\n      code === 37 &&\n      asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n      asciiAlphanumeric(value.charCodeAt(index + 2))\n    ) {\n      skip = 2\n    } // ASCII.\n    else if (code < 128) {\n      if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n        replace = String.fromCharCode(code)\n      }\n    } // Astral.\n    else if (code > 55295 && code < 57344) {\n      const next = value.charCodeAt(index + 1) // A correct surrogate pair.\n\n      if (code < 56320 && next > 56319 && next < 57344) {\n        replace = String.fromCharCode(code, next)\n        skip = 1\n      } // Lone surrogate.\n      else {\n        replace = '\\uFFFD'\n      }\n    } // Unicode.\n    else {\n      replace = String.fromCharCode(code)\n    }\n\n    if (replace) {\n      result.push(value.slice(start, index), encodeURIComponent(replace))\n      start = index + skip + 1\n      replace = ''\n    }\n\n    if (skip) {\n      index += skip\n      skip = 0\n    }\n  }\n\n  return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n *\n * @typedef {string} Type\n * @typedef {Object<string, unknown>} Props\n *\n * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.<Type|Props|TestFunctionAnything>} Test\n */\n\n/**\n * Check if a node passes a test\n *\n * @callback TestFunctionAnything\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean|void}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} X\n * @callback TestFunctionPredicate\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is X}\n */\n\n/**\n * @callback AssertAnything\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} Y\n * @callback AssertPredicate\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is Y}\n */\n\nexport const is =\n  /**\n   * Check if a node passes a test.\n   * When a `parent` node is known the `index` of node should also be given.\n   *\n   * @type {(\n   *   (<T extends Node>(node: unknown, test: T['type']|Partial<T>|TestFunctionPredicate<T>|Array.<T['type']|Partial<T>|TestFunctionPredicate<T>>, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => node is T) &\n   *   ((node?: unknown, test?: Test, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => boolean)\n   * )}\n   */\n  (\n    /**\n     * Check if a node passes a test.\n     * When a `parent` node is known the `index` of node should also be given.\n     *\n     * @param {unknown} [node] Node to check\n     * @param {Test} [test]\n     * When nullish, checks if `node` is a `Node`.\n     * When `string`, works like passing `function (node) {return node.type === test}`.\n     * When `function` checks if function passed the node is true.\n     * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n     * When `array`, checks any one of the subtests pass.\n     * @param {number|null|undefined} [index] Position of `node` in `parent`\n     * @param {Parent|null|undefined} [parent] Parent of `node`\n     * @param {unknown} [context] Context object to invoke `test` with\n     * @returns {boolean} Whether test passed and `node` is a `Node` (object with `type` set to non-empty `string`).\n     */\n    // eslint-disable-next-line max-params\n    function is(node, test, index, parent, context) {\n      const check = convert(test)\n\n      if (\n        index !== undefined &&\n        index !== null &&\n        (typeof index !== 'number' ||\n          index < 0 ||\n          index === Number.POSITIVE_INFINITY)\n      ) {\n        throw new Error('Expected positive finite index')\n      }\n\n      if (\n        parent !== undefined &&\n        parent !== null &&\n        (!is(parent) || !parent.children)\n      ) {\n        throw new Error('Expected parent node')\n      }\n\n      if (\n        (parent === undefined || parent === null) !==\n        (index === undefined || index === null)\n      ) {\n        throw new Error('Expected both parent and index')\n      }\n\n      // @ts-expect-error Looks like a node.\n      return node && node.type && typeof node.type === 'string'\n        ? Boolean(check.call(context, node, index, parent))\n        : false\n    }\n  )\n\nexport const convert =\n  /**\n   * @type {(\n   *   (<T extends Node>(test: T['type']|Partial<T>|TestFunctionPredicate<T>) => AssertPredicate<T>) &\n   *   ((test?: Test) => AssertAnything)\n   * )}\n   */\n  (\n    /**\n     * Generate an assertion from a check.\n     * @param {Test} [test]\n     * When nullish, checks if `node` is a `Node`.\n     * When `string`, works like passing `function (node) {return node.type === test}`.\n     * When `function` checks if function passed the node is true.\n     * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n     * When `array`, checks any one of the subtests pass.\n     * @returns {AssertAnything}\n     */\n    function (test) {\n      if (test === undefined || test === null) {\n        return ok\n      }\n\n      if (typeof test === 'string') {\n        return typeFactory(test)\n      }\n\n      if (typeof test === 'object') {\n        return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n      }\n\n      if (typeof test === 'function') {\n        return castFactory(test)\n      }\n\n      throw new Error('Expected function, string, or object as test')\n    }\n  )\n/**\n * @param {Array.<Type|Props|TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n  /** @type {Array.<AssertAnything>} */\n  const checks = []\n  let index = -1\n\n  while (++index < tests.length) {\n    checks[index] = convert(tests[index])\n  }\n\n  return castFactory(any)\n\n  /**\n   * @this {unknown}\n   * @param {unknown[]} parameters\n   * @returns {boolean}\n   */\n  function any(...parameters) {\n    let index = -1\n\n    while (++index < checks.length) {\n      if (checks[index].call(this, ...parameters)) return true\n    }\n\n    return false\n  }\n}\n\n/**\n * Utility to assert each property in `test` is represented in `node`, and each\n * values are strictly equal.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n  return castFactory(all)\n\n  /**\n   * @param {Node} node\n   * @returns {boolean}\n   */\n  function all(node) {\n    /** @type {string} */\n    let key\n\n    for (key in check) {\n      // @ts-expect-error: hush, it sure works as an index.\n      if (node[key] !== check[key]) return false\n    }\n\n    return true\n  }\n}\n\n/**\n * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n *\n * @param {Type} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n  return castFactory(type)\n\n  /**\n   * @param {Node} node\n   */\n  function type(node) {\n    return node && node.type === check\n  }\n}\n\n/**\n * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n  return assertion\n\n  /**\n   * @this {unknown}\n   * @param {Array.<unknown>} parameters\n   * @returns {boolean}\n   */\n  function assertion(...parameters) {\n    // @ts-expect-error: spreading is fine.\n    return Boolean(check.call(this, ...parameters))\n  }\n}\n\n// Utility to return true.\nfunction ok() {\n  return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('./complex-types.js').Action} Action\n * @typedef {import('./complex-types.js').Index} Index\n * @typedef {import('./complex-types.js').ActionTuple} ActionTuple\n * @typedef {import('./complex-types.js').VisitorResult} VisitorResult\n * @typedef {import('./complex-types.js').Visitor} Visitor\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal\n */\nexport const CONTINUE = true\n/**\n * Do not traverse this node’s children\n */\nexport const SKIP = 'skip'\n/**\n * Stop traversing immediately\n */\nexport const EXIT = false\n\n/**\n * Visit children of tree which pass test.\n *\n * @param tree\n *   Tree to walk\n * @param [test]\n *   `unist-util-is`-compatible test\n * @param visitor\n *   Function called for nodes that pass `test`.\n * @param [reverse=false]\n *   Traverse in reverse preorder (NRL) instead of preorder (NLR) (default).\n */\nexport const visitParents =\n  /**\n   * @type {(\n   *   (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: import('./complex-types.js').BuildVisitor<Tree, Check>, reverse?: boolean) => void) &\n   *   (<Tree extends Node>(tree: Tree, visitor: import('./complex-types.js').BuildVisitor<Tree>, reverse?: boolean) => void)\n   * )}\n   */\n  (\n    /**\n     * @param {Node} tree\n     * @param {Test} test\n     * @param {import('./complex-types.js').Visitor<Node>} visitor\n     * @param {boolean} [reverse=false]\n     */\n    function (tree, test, visitor, reverse) {\n      if (typeof test === 'function' && typeof visitor !== 'function') {\n        reverse = visitor\n        // @ts-expect-error no visitor given, so `visitor` is test.\n        visitor = test\n        test = null\n      }\n\n      const is = convert(test)\n      const step = reverse ? -1 : 1\n\n      factory(tree, null, [])()\n\n      /**\n       * @param {Node} node\n       * @param {number?} index\n       * @param {Array<Parent>} parents\n       */\n      function factory(node, index, parents) {\n        /** @type {Record<string, unknown>} */\n        // @ts-expect-error: hush\n        const value = typeof node === 'object' && node !== null ? node : {}\n        /** @type {string|undefined} */\n        let name\n\n        if (typeof value.type === 'string') {\n          name =\n            typeof value.tagName === 'string'\n              ? value.tagName\n              : typeof value.name === 'string'\n              ? value.name\n              : undefined\n\n          Object.defineProperty(visit, 'name', {\n            value:\n              'node (' +\n              color(value.type + (name ? '<' + name + '>' : '')) +\n              ')'\n          })\n        }\n\n        return visit\n\n        function visit() {\n          /** @type {ActionTuple} */\n          let result = []\n          /** @type {ActionTuple} */\n          let subresult\n          /** @type {number} */\n          let offset\n          /** @type {Array<Parent>} */\n          let grandparents\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          // @ts-expect-error looks like a parent.\n          if (node.children && result[0] !== SKIP) {\n            // @ts-expect-error looks like a parent.\n            offset = (reverse ? node.children.length : -1) + step\n            // @ts-expect-error looks like a parent.\n            grandparents = parents.concat(node)\n\n            // @ts-expect-error looks like a parent.\n            while (offset > -1 && offset < node.children.length) {\n              // @ts-expect-error looks like a parent.\n              subresult = factory(node.children[offset], offset, grandparents)()\n\n              if (subresult[0] === EXIT) {\n                return subresult\n              }\n\n              offset =\n                typeof subresult[1] === 'number' ? subresult[1] : offset + step\n            }\n          }\n\n          return result\n        }\n      }\n    }\n  )\n\n/**\n * @param {VisitorResult} value\n * @returns {ActionTuple}\n */\nfunction toResult(value) {\n  if (Array.isArray(value)) {\n    return value\n  }\n\n  if (typeof value === 'number') {\n    return [CONTINUE, value]\n  }\n\n  return [value]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n * @typedef {import('./complex-types.js').Visitor} Visitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit children of tree which pass test.\n *\n * @param tree\n *   Tree to walk\n * @param [test]\n *   `unist-util-is`-compatible test\n * @param visitor\n *   Function called for nodes that pass `test`.\n * @param reverse\n *   Traverse in reverse preorder (NRL) instead of preorder (NLR) (default).\n */\nexport const visit =\n  /**\n   * @type {(\n   *   (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: import('./complex-types.js').BuildVisitor<Tree, Check>, reverse?: boolean) => void) &\n   *   (<Tree extends Node>(tree: Tree, visitor: import('./complex-types.js').BuildVisitor<Tree>, reverse?: boolean) => void)\n   * )}\n   */\n  (\n    /**\n     * @param {Node} tree\n     * @param {Test} test\n     * @param {import('./complex-types.js').Visitor} visitor\n     * @param {boolean} [reverse]\n     */\n    function (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      /**\n       * @param {Node} node\n       * @param {Array<Parent>} parents\n       */\n      function overload(node, parents) {\n        const parent = parents[parents.length - 1]\n        return visitor(\n          node,\n          parent ? parent.children.indexOf(node) : null,\n          parent\n        )\n      }\n    }\n  )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n","/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Node} Node\n * @typedef {Record<string, unknown> & {type: string, position?: PositionLike|undefined}} NodeLike\n * @typedef {import('unist').Point} Point\n *\n * @typedef {Partial<Point>} PointLike\n *\n * @typedef PositionLike\n * @property {PointLike} [start]\n * @property {PointLike} [end]\n */\n\nexport const pointStart = point('start')\nexport const pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike|Node} [node]\n * @returns {Position}\n */\nexport function position(node) {\n  return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start'|'end'} type\n */\nfunction point(type) {\n  return point\n\n  /**\n   * Get the positional info of `node`.\n   *\n   * @param {NodeLike|Node} [node]\n   * @returns {Point}\n   */\n  function point(node) {\n    const point = (node && node.position && node.position[type]) || {}\n\n    return {\n      line: point.line || null,\n      column: point.column || null,\n      offset: point.offset > -1 ? point.offset : null\n    }\n  }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Definition} Definition\n */\n\n/**\n * @typedef {Root | Content} Node\n *\n * @callback GetDefinition\n *   Get a definition by identifier.\n * @param {string | null | undefined} [identifier]\n *   Identifier of definition.\n * @returns {Definition | null}\n *   Definition corresponding to `identifier` or `null`.\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find definitions in `tree`.\n *\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} tree\n *   Tree to check.\n * @returns {GetDefinition}\n *   Getter.\n */\nexport function definitions(tree) {\n  /** @type {Record<string, Definition>} */\n  const cache = Object.create(null)\n\n  if (!tree || !tree.type) {\n    throw new Error('mdast-util-definitions expected node')\n  }\n\n  visit(tree, 'definition', (definition) => {\n    const id = clean(definition.identifier)\n    if (id && !own.call(cache, id)) {\n      cache[id] = definition\n    }\n  })\n\n  return definition\n\n  /** @type {GetDefinition} */\n  function definition(identifier) {\n    const id = clean(identifier)\n    // To do: next major: return `undefined` when not found.\n    return id && own.call(cache, id) ? cache[id] : null\n  }\n}\n\n/**\n * @param {string | null | undefined} [value]\n * @returns {string}\n */\nfunction clean(value) {\n  return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('hast').Element} Element\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  if (index === -1) {\n    state.footnoteOrder.push(id)\n    state.footnoteCounts[id] = 1\n    counter = state.footnoteOrder.length\n  } else {\n    state.footnoteCounts[id]++\n    counter = index + 1\n  }\n\n  const reuseCounter = state.footnoteCounts[id]\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + state.clobberPrefix + 'fn-' + safeId,\n      id:\n        state.clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Reference} Reference\n * @typedef {import('mdast').Root} Root\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Reference>} References\n */\n\n// To do: next major: always return array.\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n *   Info passed around.\n * @param {References} node\n *   Reference node (image, link).\n * @returns {ElementContent | Array<ElementContent>}\n *   hast content.\n */\nexport function revert(state, node) {\n  const subtype = node.referenceType\n  let suffix = ']'\n\n  if (subtype === 'collapsed') {\n    suffix += '[]'\n  } else if (subtype === 'full') {\n    suffix += '[' + (node.label || node.identifier) + ']'\n  }\n\n  if (node.type === 'imageReference') {\n    return {type: 'text', value: '![' + node.alt + suffix}\n  }\n\n  const contents = state.all(node)\n  const head = contents[0]\n\n  if (head && head.type === 'text') {\n    head.value = '[' + head.value\n  } else {\n    contents.unshift({type: 'text', value: '['})\n  }\n\n  const tail = contents[contents.length - 1]\n\n  if (tail && tail.type === 'text') {\n    tail.value += suffix\n  } else {\n    contents.push({type: 'text', value: suffix})\n  }\n\n  return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Parent>} Parents\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ListItem} node\n *   mdast node.\n * @param {Parents | null | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function listItem(state, node, parent) {\n  const results = state.all(node)\n  const loose = parent ? listLoose(parent) : listItemLoose(node)\n  /** @type {Properties} */\n  const properties = {}\n  /** @type {Array<ElementContent>} */\n  const children = []\n\n  if (typeof node.checked === 'boolean') {\n    const head = results[0]\n    /** @type {Element} */\n    let paragraph\n\n    if (head && head.type === 'element' && head.tagName === 'p') {\n      paragraph = head\n    } else {\n      paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n      results.unshift(paragraph)\n    }\n\n    if (paragraph.children.length > 0) {\n      paragraph.children.unshift({type: 'text', value: ' '})\n    }\n\n    paragraph.children.unshift({\n      type: 'element',\n      tagName: 'input',\n      properties: {type: 'checkbox', checked: node.checked, disabled: true},\n      children: []\n    })\n\n    // According to github-markdown-css, this class hides bullet.\n    // See: <https://github.com/sindresorhus/github-markdown-css>.\n    properties.className = ['task-list-item']\n  }\n\n  let index = -1\n\n  while (++index < results.length) {\n    const child = results[index]\n\n    // Add eols before nodes, except if this is a loose, first paragraph.\n    if (\n      loose ||\n      index !== 0 ||\n      child.type !== 'element' ||\n      child.tagName !== 'p'\n    ) {\n      children.push({type: 'text', value: '\\n'})\n    }\n\n    if (child.type === 'element' && child.tagName === 'p' && !loose) {\n      children.push(...child.children)\n    } else {\n      children.push(child)\n    }\n  }\n\n  const tail = results[results.length - 1]\n\n  // Add a final eol.\n  if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n    children.push({type: 'text', value: '\\n'})\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'li', properties, children}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n  let loose = false\n  if (node.type === 'list') {\n    loose = node.spread || false\n    const children = node.children\n    let index = -1\n\n    while (!loose && ++index < children.length) {\n      loose = listItemLoose(children[index])\n    }\n  }\n\n  return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n  const spread = node.spread\n\n  return spread === undefined || spread === null\n    ? node.children.length > 1\n    : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n *   Value to trim.\n * @returns {string}\n *   Trimmed value.\n */\nexport function trimLines(value) {\n  const source = String(value)\n  const search = /\\r?\\n|\\r/g\n  let match = search.exec(source)\n  let last = 0\n  /** @type {Array<string>} */\n  const lines = []\n\n  while (match) {\n    lines.push(\n      trimLine(source.slice(last, match.index), last > 0, true),\n      match[0]\n    )\n\n    last = match.index + match[0].length\n    match = search.exec(source)\n  }\n\n  lines.push(trimLine(source.slice(last), last > 0, false))\n\n  return lines.join('')\n}\n\n/**\n * @param {string} value\n *   Line to trim.\n * @param {boolean} start\n *   Whether to trim the start of the line.\n * @param {boolean} end\n *   Whether to trim the end of the line.\n * @returns {string}\n *   Trimmed line.\n */\nfunction trimLine(value, start, end) {\n  let startIndex = 0\n  let endIndex = value.length\n\n  if (start) {\n    let code = value.codePointAt(startIndex)\n\n    while (code === tab || code === space) {\n      startIndex++\n      code = value.codePointAt(startIndex)\n    }\n  }\n\n  if (end) {\n    let code = value.codePointAt(endIndex - 1)\n\n    while (code === tab || code === space) {\n      endIndex--\n      code = value.codePointAt(endIndex - 1)\n    }\n  }\n\n  return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {footnote} from './footnote.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n */\nexport const handlers = {\n  blockquote,\n  break: hardBreak,\n  code,\n  delete: strikethrough,\n  emphasis,\n  footnoteReference,\n  footnote,\n  heading,\n  html,\n  imageReference,\n  image,\n  inlineCode,\n  linkReference,\n  link,\n  listItem,\n  list,\n  paragraph,\n  root,\n  strong,\n  table,\n  tableCell,\n  tableRow,\n  text,\n  thematicBreak,\n  toml: ignore,\n  yaml: ignore,\n  definition: ignore,\n  footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n  // To do: next major: return `undefined`.\n  return null\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Blockquote} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function blockquote(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'blockquote',\n    properties: {},\n    children: state.wrap(state.all(node), true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Break} node\n *   mdast node.\n * @returns {Array<Element | Text>}\n *   hast element content.\n */\nexport function hardBreak(state, node) {\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n  state.patch(node, result)\n  return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Code} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function code(state, node) {\n  const value = node.value ? node.value + '\\n' : ''\n  // To do: next major, use `node.lang` w/o regex, the splitting’s been going\n  // on for years in remark now.\n  const lang = node.lang ? node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/) : null\n  /** @type {Properties} */\n  const properties = {}\n\n  if (lang) {\n    properties.className = ['language-' + lang]\n  }\n\n  // Create `<code>`.\n  /** @type {Element} */\n  let result = {\n    type: 'element',\n    tagName: 'code',\n    properties,\n    children: [{type: 'text', value}]\n  }\n\n  if (node.meta) {\n    result.data = {meta: node.meta}\n  }\n\n  state.patch(node, result)\n  result = state.applyData(node, result)\n\n  // Create `<pre>`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../state.js').State} State\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n// To do: when both:\n// * <https://github.com/micromark/micromark-extension-footnote>\n// * <https://github.com/syntax-tree/mdast-util-footnote>\n// …are archived, remove this (also from mdast).\n// These inline notes are not used in GFM.\n\n/**\n * Turn an mdast `footnote` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Footnote} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnote(state, node) {\n  const footnoteById = state.footnoteById\n  let no = 1\n\n  while (no in footnoteById) no++\n\n  const identifier = String(no)\n\n  footnoteById[identifier] = {\n    type: 'footnoteDefinition',\n    identifier,\n    children: [{type: 'paragraph', children: node.children}],\n    position: node.position\n  }\n\n  return footnoteReference(state, {\n    type: 'footnoteReference',\n    identifier,\n    position: node.position\n  })\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').HTML} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Raw | Element | null}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.dangerous) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  // To do: next major: return `undefined`.\n  return null\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {ElementContent | Array<ElementContent>}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {ElementContent | Array<ElementContent>}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(def.url || '')}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastRoot | HastElement}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array<Element>} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start.line && end.line) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Parent>} Parents\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | null | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array<ElementContent>} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(node, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastText | HastElement}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} MdastRoot\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n * @typedef {Extract<MdastNodes, MdastParent>} MdastParents\n *\n * @typedef EmbeddedHastFields\n *   hast fields.\n * @property {string | null | undefined} [hName]\n *   Generate a specific element with this tag name instead.\n * @property {HastProperties | null | undefined} [hProperties]\n *   Generate an element with these properties instead.\n * @property {Array<HastElementContent> | null | undefined} [hChildren]\n *   Generate an element with this content instead.\n *\n * @typedef {Record<string, unknown> & EmbeddedHastFields} MdastData\n *   mdast data with embedded hast fields.\n *\n * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData\n *   mdast node with embedded hast data.\n *\n * @typedef PointLike\n *   Point-like value.\n * @property {number | null | undefined} [line]\n *   Line.\n * @property {number | null | undefined} [column]\n *   Column.\n * @property {number | null | undefined} [offset]\n *   Offset.\n *\n * @typedef PositionLike\n *   Position-like value.\n * @property {PointLike | null | undefined} [start]\n *   Point-like value.\n * @property {PointLike | null | undefined} [end]\n *   Point-like value.\n *\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | null | undefined} parent\n *   Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n *   hast node.\n *\n * @callback HFunctionProps\n *   Signature of `state` for when props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {HastProperties} props\n *   Properties.\n * @param {Array<HastElementContent> | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @callback HFunctionNoProps\n *   Signature of `state` for when no props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {Array<HastElementContent> | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @typedef HFields\n *   Info on `state`.\n * @property {boolean} dangerous\n *   Whether HTML is allowed.\n * @property {string} clobberPrefix\n *   Prefix to use to prevent DOM clobbering.\n * @property {string} footnoteLabel\n *   Label to use to introduce the footnote section.\n * @property {string} footnoteLabelTagName\n *   HTML used for the footnote label.\n * @property {HastProperties} footnoteLabelProperties\n *   Properties on the HTML tag used for the footnote label.\n * @property {string} footnoteBackLabel\n *   Label to use from backreferences back to their footnote call.\n * @property {(identifier: string) => MdastDefinition | null} definition\n *   Definition cache.\n * @property {Record<string, MdastFootnoteDefinition>} footnoteById\n *   Footnote definitions by their identifier.\n * @property {Array<string>} footnoteOrder\n *   Identifiers of order when footnote calls first appear in tree order.\n * @property {Record<string, number>} footnoteCounts\n *   Counts for how often the same footnote was called.\n * @property {Handlers} handlers\n *   Applied handlers.\n * @property {Handler} unknownHandler\n *   Handler for any none not in `passThrough` or otherwise handled.\n * @property {(from: MdastNodes, node: HastNodes) => void} patch\n *   Copy a node’s positional info.\n * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => Type | HastElement} applyData\n *   Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array<HastElementContent> | null | undefined} one\n *   Transform an mdast node to hast.\n * @property {(node: MdastNodes) => Array<HastElementContent>} all\n *   Transform the children of an mdast parent to hast.\n * @property {<Type extends HastContent>(nodes: Array<Type>, loose?: boolean | null | undefined) => Array<Type | HastText>} wrap\n *   Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment\n *   Like `state` but lower-level and usable on non-elements.\n *   Deprecated: use `patch` and `applyData`.\n * @property {Array<string>} passThrough\n *   List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree.\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` attribute on footnotes to prevent it from\n *   *clobbering*.\n * @property {string | null | undefined} [footnoteBackLabel='Back to content']\n *   Label to use from backreferences back to their footnote call (affects\n *   screen readers).\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n *   Label to use for the footnotes section (affects screen readers).\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n *   Properties to use on the footnote label (note that `id: 'footnote-label'`\n *   is always added as footnote calls use it with `aria-describedby` to\n *   provide an accessible label).\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n *   Tag name to use for the footnote label.\n * @property {Handlers | null | undefined} [handlers]\n *   Extra handlers for nodes.\n * @property {Array<string> | null | undefined} [passThrough]\n *   List of custom mdast node types to pass through (keep) in hast (note that\n *   the node itself is passed, but eventual children are transformed).\n * @property {Handler | null | undefined} [unknownHandler]\n *   Handler for all unknown nodes.\n *\n * @typedef {Record<string, Handler>} Handlers\n *   Handle nodes.\n *\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} State\n *   Info passed around.\n */\n\nimport {visit} from 'unist-util-visit'\nimport {position, pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n *   mdast node to transform.\n * @param {Options | null | undefined} [options]\n *   Configuration.\n * @returns {State}\n *   `state` function.\n */\nexport function createState(tree, options) {\n  const settings = options || {}\n  const dangerous = settings.allowDangerousHtml || false\n  /** @type {Record<string, MdastFootnoteDefinition>} */\n  const footnoteById = {}\n\n  // To do: next major: add `options` to state, remove:\n  // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,\n  // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,\n  // `unknownHandler`.\n\n  // To do: next major: move to `state.options.allowDangerousHtml`.\n  state.dangerous = dangerous\n  // To do: next major: move to `state.options`.\n  state.clobberPrefix =\n    settings.clobberPrefix === undefined || settings.clobberPrefix === null\n      ? 'user-content-'\n      : settings.clobberPrefix\n  // To do: next major: move to `state.options`.\n  state.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelProperties = settings.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  // To do: next major: move to `state.options`.\n  state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n  // To do: next major: move to `state.options`.\n  state.unknownHandler = settings.unknownHandler\n  // To do: next major: move to `state.options`.\n  state.passThrough = settings.passThrough\n\n  state.handlers = {...handlers, ...settings.handlers}\n\n  // To do: next major: replace utility with `definitionById` object, so we\n  // only walk once (as we need footnotes too).\n  state.definition = definitions(tree)\n  state.footnoteById = footnoteById\n  /** @type {Array<string>} */\n  state.footnoteOrder = []\n  /** @type {Record<string, number>} */\n  state.footnoteCounts = {}\n\n  state.patch = patch\n  state.applyData = applyData\n  state.one = oneBound\n  state.all = allBound\n  state.wrap = wrap\n  // To do: next major: remove `augment`.\n  state.augment = augment\n\n  visit(tree, 'footnoteDefinition', (definition) => {\n    const id = String(definition.identifier).toUpperCase()\n\n    // Mimick CM behavior of link definitions.\n    // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8290999/index.js#L26>.\n    if (!own.call(footnoteById, id)) {\n      footnoteById[id] = definition\n    }\n  })\n\n  // @ts-expect-error Hush, it’s fine!\n  return state\n\n  /**\n   * Finalise the created `right`, a hast node, from `left`, an mdast node.\n   *\n   * @param {MdastNodeWithData | PositionLike | null | undefined} left\n   * @param {HastElementContent} right\n   * @returns {HastElementContent}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function augment(left, right) {\n    // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n    if (left && 'data' in left && left.data) {\n      /** @type {MdastData} */\n      const data = left.data\n\n      if (data.hName) {\n        if (right.type !== 'element') {\n          right = {\n            type: 'element',\n            tagName: '',\n            properties: {},\n            children: []\n          }\n        }\n\n        right.tagName = data.hName\n      }\n\n      if (right.type === 'element' && data.hProperties) {\n        right.properties = {...right.properties, ...data.hProperties}\n      }\n\n      if ('children' in right && right.children && data.hChildren) {\n        right.children = data.hChildren\n      }\n    }\n\n    if (left) {\n      const ctx = 'type' in left ? left : {position: left}\n\n      if (!generated(ctx)) {\n        // @ts-expect-error: fine.\n        right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n      }\n    }\n\n    return right\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Create an element for `node`.\n   *\n   * @type {HFunctionProps}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function state(node, tagName, props, children) {\n    if (Array.isArray(props)) {\n      children = props\n      props = {}\n    }\n\n    // @ts-expect-error augmenting an element yields an element.\n    return augment(node, {\n      type: 'element',\n      tagName,\n      properties: props || {},\n      children: children || []\n    })\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Transform an mdast node into a hast node.\n   *\n   * @param {MdastNodes} node\n   *   mdast node.\n   * @param {MdastParents | null | undefined} [parent]\n   *   Parent of `node`.\n   * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n   *   Resulting hast node.\n   */\n  function oneBound(node, parent) {\n    // @ts-expect-error: that’s a state :)\n    return one(state, node, parent)\n  }\n\n  /**\n   * Transform the children of an mdast node into hast nodes.\n   *\n   * @param {MdastNodes} parent\n   *   mdast node to compile\n   * @returns {Array<HastElementContent>}\n   *   Resulting hast nodes.\n   */\n  function allBound(parent) {\n    // @ts-expect-error: that’s a state :)\n    return all(state, parent)\n  }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n *   mdast node to copy from.\n * @param {HastNodes} to\n *   hast node to copy into.\n * @returns {void}\n *   Nothing.\n */\nfunction patch(from, to) {\n  if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n *   Node type.\n * @param {MdastNodes} from\n *   mdast node to use data from.\n * @param {Type} to\n *   hast node to change.\n * @returns {Type | HastElement}\n *   Nothing.\n */\nfunction applyData(from, to) {\n  /** @type {Type | HastElement} */\n  let result = to\n\n  // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n  if (from && from.data) {\n    const hName = from.data.hName\n    const hChildren = from.data.hChildren\n    const hProperties = from.data.hProperties\n\n    if (typeof hName === 'string') {\n      // Transforming the node resulted in an element with a different name\n      // than wanted:\n      if (result.type === 'element') {\n        result.tagName = hName\n      }\n      // Transforming the node resulted in a non-element, which happens for\n      // raw, text, and root nodes (unless custom handlers are passed).\n      // The intent is likely to keep the content around (otherwise: pass\n      // `hChildren`).\n      else {\n        result = {\n          type: 'element',\n          tagName: hName,\n          properties: {},\n          children: []\n        }\n\n        // To do: next major: take the children from the `root`, or inject the\n        // raw/text/comment or so into the element?\n        // if ('children' in node) {\n        //   // @ts-expect-error: assume `children` are allowed in elements.\n        //   result.children = node.children\n        // } else {\n        //   // @ts-expect-error: assume `node` is allowed in elements.\n        //   result.children.push(node)\n        // }\n      }\n    }\n\n    if (result.type === 'element' && hProperties) {\n      result.properties = {...result.properties, ...hProperties}\n    }\n\n    if (\n      'children' in result &&\n      result.children &&\n      hChildren !== null &&\n      hChildren !== undefined\n    ) {\n      // @ts-expect-error: assume valid children are defined.\n      result.children = hChildren\n    }\n  }\n\n  return result\n}\n\n/**\n * Transform an mdast node into a hast node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   mdast node.\n * @param {MdastParents | null | undefined} [parent]\n *   Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n *   Resulting hast node.\n */\n// To do: next major: do not expose, keep bound.\nexport function one(state, node, parent) {\n  const type = node && node.type\n\n  // Fail on non-nodes.\n  if (!type) {\n    throw new Error('Expected node, got `' + node + '`')\n  }\n\n  if (own.call(state.handlers, type)) {\n    return state.handlers[type](state, node, parent)\n  }\n\n  if (state.passThrough && state.passThrough.includes(type)) {\n    // To do: next major: deep clone.\n    // @ts-expect-error: types of passed through nodes are expected to be added manually.\n    return 'children' in node ? {...node, children: all(state, node)} : node\n  }\n\n  if (state.unknownHandler) {\n    return state.unknownHandler(state, node, parent)\n  }\n\n  return defaultUnknownHandler(state, node)\n}\n\n/**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} parent\n *   mdast node to compile\n * @returns {Array<HastElementContent>}\n *   Resulting hast nodes.\n */\n// To do: next major: do not expose, keep bound.\nexport function all(state, parent) {\n  /** @type {Array<HastElementContent>} */\n  const values = []\n\n  if ('children' in parent) {\n    const nodes = parent.children\n    let index = -1\n    while (++index < nodes.length) {\n      const result = one(state, nodes[index], parent)\n\n      // To do: see if we van clean this? Can we merge texts?\n      if (result) {\n        if (index && nodes[index - 1].type === 'break') {\n          if (!Array.isArray(result) && result.type === 'text') {\n            result.value = result.value.replace(/^\\s+/, '')\n          }\n\n          if (!Array.isArray(result) && result.type === 'element') {\n            const head = result.children[0]\n\n            if (head && head.type === 'text') {\n              head.value = head.value.replace(/^\\s+/, '')\n            }\n          }\n        }\n\n        if (Array.isArray(result)) {\n          values.push(...result)\n        } else {\n          values.push(result)\n        }\n      }\n    }\n  }\n\n  return values\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   Unknown mdast node.\n * @returns {HastText | HastElement}\n *   Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n  const data = node.data || {}\n  /** @type {HastText | HastElement} */\n  const result =\n    'value' in node &&\n    !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n      ? {type: 'text', value: node.value}\n      : {\n          type: 'element',\n          tagName: 'div',\n          properties: {},\n          children: all(state, node)\n        }\n\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastContent} Type\n *   Node type.\n * @param {Array<Type>} nodes\n *   List of nodes to wrap.\n * @param {boolean | null | undefined} [loose=false]\n *   Whether to add line endings at start and end.\n * @returns {Array<Type | HastText>}\n *   Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n  /** @type {Array<Type | HastText>} */\n  const result = []\n  let index = -1\n\n  if (loose) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  while (++index < nodes.length) {\n    if (index) result.push({type: 'text', value: '\\n'})\n    result.push(nodes[index])\n  }\n\n  if (loose && nodes.length > 0) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  return result\n}\n","/**\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef NodeLike\n * @property {PositionLike | null | undefined} [position]\n */\n\n/**\n * Check if `node` is generated.\n *\n * @param {NodeLike | null | undefined} [node]\n *   Node to check.\n * @returns {boolean}\n *   Whether `node` is generated (does not have positional info).\n */\nexport function generated(node) {\n  return (\n    !node ||\n    !node.position ||\n    !node.position.start ||\n    !node.position.start.line ||\n    !node.position.start.column ||\n    !node.position.end ||\n    !node.position.end.line ||\n    !node.position.end.column\n  )\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Root} HastRoot\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Root} MdastRoot\n *\n * @typedef {import('./state.js').Options} Options\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n */\n\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * *   `hast-util-to-html` also has an option `allowDangerousHtml` which will\n *     output the raw HTML.\n *     This is typically discouraged as noted by the option name but is useful\n *     if you completely trust authors\n * *   `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n *     into standard hast nodes (`element`, `text`, etc).\n *     This is a heavy task as it needs a full HTML parser, but it is the only\n *     way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * *   when the node has a `value` (and doesn’t have `data.hName`,\n *     `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n *     node\n * *   otherwise, create a `<div>` element (which could be changed with\n *     `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n *   mdast tree.\n * @param {Options | null | undefined} [options]\n *   Configuration.\n * @returns {HastNodes | null | undefined}\n *   hast tree.\n */\n// To do: next major: always return a single `root`.\nexport function toHast(tree, options) {\n  const state = createState(tree, options)\n  const node = state.one(tree, null)\n  const foot = footer(state)\n\n  if (foot) {\n    // @ts-expect-error If there’s a footer, there were definitions, meaning block\n    // content.\n    // So assume `node` is a parent node.\n    node.children.push({type: 'text', value: '\\n'}, foot)\n  }\n\n  // To do: next major: always return root?\n  return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n *   Info passed around.\n * @returns {Element | undefined}\n *   `section` element or `undefined`.\n */\nexport function footer(state) {\n  /** @type {Array<ElementContent>} */\n  const listItems = []\n  let index = -1\n\n  while (++index < state.footnoteOrder.length) {\n    const def = state.footnoteById[state.footnoteOrder[index]]\n\n    if (!def) {\n      continue\n    }\n\n    const content = state.all(def)\n    const id = String(def.identifier).toUpperCase()\n    const safeId = normalizeUri(id.toLowerCase())\n    let referenceIndex = 0\n    /** @type {Array<ElementContent>} */\n    const backReferences = []\n\n    while (++referenceIndex <= state.footnoteCounts[id]) {\n      /** @type {Element} */\n      const backReference = {\n        type: 'element',\n        tagName: 'a',\n        properties: {\n          href:\n            '#' +\n            state.clobberPrefix +\n            'fnref-' +\n            safeId +\n            (referenceIndex > 1 ? '-' + referenceIndex : ''),\n          dataFootnoteBackref: true,\n          className: ['data-footnote-backref'],\n          ariaLabel: state.footnoteBackLabel\n        },\n        children: [{type: 'text', value: '↩'}]\n      }\n\n      if (referenceIndex > 1) {\n        backReference.children.push({\n          type: 'element',\n          tagName: 'sup',\n          children: [{type: 'text', value: String(referenceIndex)}]\n        })\n      }\n\n      if (backReferences.length > 0) {\n        backReferences.push({type: 'text', value: ' '})\n      }\n\n      backReferences.push(backReference)\n    }\n\n    const tail = content[content.length - 1]\n\n    if (tail && tail.type === 'element' && tail.tagName === 'p') {\n      const tailTail = tail.children[tail.children.length - 1]\n      if (tailTail && tailTail.type === 'text') {\n        tailTail.value += ' '\n      } else {\n        tail.children.push({type: 'text', value: ' '})\n      }\n\n      tail.children.push(...backReferences)\n    } else {\n      content.push(...backReferences)\n    }\n\n    /** @type {Element} */\n    const listItem = {\n      type: 'element',\n      tagName: 'li',\n      properties: {id: state.clobberPrefix + 'fn-' + safeId},\n      children: state.wrap(content, true)\n    }\n\n    state.patch(def, listItem)\n\n    listItems.push(listItem)\n  }\n\n  if (listItems.length === 0) {\n    return\n  }\n\n  return {\n    type: 'element',\n    tagName: 'section',\n    properties: {dataFootnotes: true, className: ['footnotes']},\n    children: [\n      {\n        type: 'element',\n        tagName: state.footnoteLabelTagName,\n        properties: {\n          // To do: use structured clone.\n          ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),\n          id: 'footnote-label'\n        },\n        children: [{type: 'text', value: state.footnoteLabel}]\n      },\n      {type: 'text', value: '\\n'},\n      {\n        type: 'element',\n        tagName: 'ol',\n        properties: {},\n        children: state.wrap(listItems, true)\n      },\n      {type: 'text', value: '\\n'}\n    ]\n  }\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor<any, any, any, any>} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `<MdastRoot, HastRoot>` overload doesn’t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * *   If a destination processor is given, that processor runs with a new HTML\n *     (hast) tree (bridge-mode).\n *     As the given processor runs with a hast tree, and rehype plugins support\n *     hast, that means rehype plugins can be used with the given processor.\n *     The hast tree is discarded in the end.\n *     It’s highly unlikely that you want to do this.\n * *   The common case is to not pass a destination processor, in which case the\n *     current processor continues running with a new HTML (hast) tree\n *     (mutate-mode).\n *     As the current processor continues with a hast tree, and rehype plugins\n *     support hast, that means rehype plugins can be used after\n *     `remark-rehype`.\n *     It’s likely that this is what you want to do.\n *\n * @param destination\n *   Optional unified processor.\n * @param options\n *   Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n  /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n  (\n    function (destination, options) {\n      return destination && 'run' in destination\n        ? bridge(destination, options)\n        : mutate(destination || options)\n    }\n  )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n  return (node, file, next) => {\n    destination.run(toHast(node, options), file, (error) => {\n      next(error)\n    })\n  }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n  // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n  return (node) => toHast(node, options)\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nexport class Schema {\n  /**\n   * @constructor\n   * @param {Properties} property\n   * @param {Normal} normal\n   * @param {string} [space]\n   */\n  constructor(property, normal, space) {\n    this.property = property\n    this.normal = normal\n    if (space) {\n      this.space = space\n    }\n  }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n  /** @type {Properties} */\n  const property = {}\n  /** @type {Normal} */\n  const normal = {}\n  let index = -1\n\n  while (++index < definitions.length) {\n    Object.assign(property, definitions[index].property)\n    Object.assign(normal, definitions[index].normal)\n  }\n\n  return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n  return value.toLowerCase()\n}\n","export class Info {\n  /**\n   * @constructor\n   * @param {string} property\n   * @param {string} attribute\n   */\n  constructor(property, attribute) {\n    /** @type {string} */\n    this.property = property\n    /** @type {string} */\n    this.attribute = attribute\n  }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n  return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n  /**\n   * @constructor\n   * @param {string} property\n   * @param {string} attribute\n   * @param {number|null} [mask]\n   * @param {string} [space]\n   */\n  constructor(property, attribute, mask, space) {\n    let index = -1\n\n    super(property, attribute)\n\n    mark(this, 'space', space)\n\n    if (typeof mask === 'number') {\n      while (++index < checks.length) {\n        const check = checks[index]\n        mark(this, checks[index], (mask & types[check]) === types[check])\n      }\n    }\n  }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n  if (value) {\n    // @ts-expect-error: assume `value` matches the expected value of `key`.\n    values[key] = value\n  }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n  /** @type {Properties} */\n  const property = {}\n  /** @type {Normal} */\n  const normal = {}\n  /** @type {string} */\n  let prop\n\n  for (prop in definition.properties) {\n    if (own.call(definition.properties, prop)) {\n      const value = definition.properties[prop]\n      const info = new DefinedInfo(\n        prop,\n        definition.transform(definition.attributes || {}, prop),\n        value,\n        definition.space\n      )\n\n      if (\n        definition.mustUseProperty &&\n        definition.mustUseProperty.includes(prop)\n      ) {\n        info.mustUseProperty = true\n      }\n\n      property[prop] = info\n\n      normal[normalize(prop)] = prop\n      normal[normalize(info.attribute)] = prop\n    }\n  }\n\n  return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n  space: 'xlink',\n  transform(_, prop) {\n    return 'xlink:' + prop.slice(5).toLowerCase()\n  },\n  properties: {\n    xLinkActuate: null,\n    xLinkArcRole: null,\n    xLinkHref: null,\n    xLinkRole: null,\n    xLinkShow: null,\n    xLinkTitle: null,\n    xLinkType: null\n  }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n  space: 'xml',\n  transform(_, prop) {\n    return 'xml:' + prop.slice(3).toLowerCase()\n  },\n  properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n  return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n  return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n  space: 'xmlns',\n  attributes: {xmlnsxlink: 'xmlns:xlink'},\n  transform: caseInsensitiveTransform,\n  properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n  transform(_, prop) {\n    return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n  },\n  properties: {\n    ariaActiveDescendant: null,\n    ariaAtomic: booleanish,\n    ariaAutoComplete: null,\n    ariaBusy: booleanish,\n    ariaChecked: booleanish,\n    ariaColCount: number,\n    ariaColIndex: number,\n    ariaColSpan: number,\n    ariaControls: spaceSeparated,\n    ariaCurrent: null,\n    ariaDescribedBy: spaceSeparated,\n    ariaDetails: null,\n    ariaDisabled: booleanish,\n    ariaDropEffect: spaceSeparated,\n    ariaErrorMessage: null,\n    ariaExpanded: booleanish,\n    ariaFlowTo: spaceSeparated,\n    ariaGrabbed: booleanish,\n    ariaHasPopup: null,\n    ariaHidden: booleanish,\n    ariaInvalid: null,\n    ariaKeyShortcuts: null,\n    ariaLabel: null,\n    ariaLabelledBy: spaceSeparated,\n    ariaLevel: number,\n    ariaLive: null,\n    ariaModal: booleanish,\n    ariaMultiLine: booleanish,\n    ariaMultiSelectable: booleanish,\n    ariaOrientation: null,\n    ariaOwns: spaceSeparated,\n    ariaPlaceholder: null,\n    ariaPosInSet: number,\n    ariaPressed: booleanish,\n    ariaReadOnly: booleanish,\n    ariaRelevant: null,\n    ariaRequired: booleanish,\n    ariaRoleDescription: spaceSeparated,\n    ariaRowCount: number,\n    ariaRowIndex: number,\n    ariaRowSpan: number,\n    ariaSelected: booleanish,\n    ariaSetSize: number,\n    ariaSort: null,\n    ariaValueMax: number,\n    ariaValueMin: number,\n    ariaValueNow: number,\n    ariaValueText: null,\n    role: null\n  }\n})\n","import {\n  boolean,\n  overloadedBoolean,\n  booleanish,\n  number,\n  spaceSeparated,\n  commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n  space: 'html',\n  attributes: {\n    acceptcharset: 'accept-charset',\n    classname: 'class',\n    htmlfor: 'for',\n    httpequiv: 'http-equiv'\n  },\n  transform: caseInsensitiveTransform,\n  mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n  properties: {\n    // Standard Properties.\n    abbr: null,\n    accept: commaSeparated,\n    acceptCharset: spaceSeparated,\n    accessKey: spaceSeparated,\n    action: null,\n    allow: null,\n    allowFullScreen: boolean,\n    allowPaymentRequest: boolean,\n    allowUserMedia: boolean,\n    alt: null,\n    as: null,\n    async: boolean,\n    autoCapitalize: null,\n    autoComplete: spaceSeparated,\n    autoFocus: boolean,\n    autoPlay: boolean,\n    capture: boolean,\n    charSet: null,\n    checked: boolean,\n    cite: null,\n    className: spaceSeparated,\n    cols: number,\n    colSpan: null,\n    content: null,\n    contentEditable: booleanish,\n    controls: boolean,\n    controlsList: spaceSeparated,\n    coords: number | commaSeparated,\n    crossOrigin: null,\n    data: null,\n    dateTime: null,\n    decoding: null,\n    default: boolean,\n    defer: boolean,\n    dir: null,\n    dirName: null,\n    disabled: boolean,\n    download: overloadedBoolean,\n    draggable: booleanish,\n    encType: null,\n    enterKeyHint: null,\n    form: null,\n    formAction: null,\n    formEncType: null,\n    formMethod: null,\n    formNoValidate: boolean,\n    formTarget: null,\n    headers: spaceSeparated,\n    height: number,\n    hidden: boolean,\n    high: number,\n    href: null,\n    hrefLang: null,\n    htmlFor: spaceSeparated,\n    httpEquiv: spaceSeparated,\n    id: null,\n    imageSizes: null,\n    imageSrcSet: null,\n    inputMode: null,\n    integrity: null,\n    is: null,\n    isMap: boolean,\n    itemId: null,\n    itemProp: spaceSeparated,\n    itemRef: spaceSeparated,\n    itemScope: boolean,\n    itemType: spaceSeparated,\n    kind: null,\n    label: null,\n    lang: null,\n    language: null,\n    list: null,\n    loading: null,\n    loop: boolean,\n    low: number,\n    manifest: null,\n    max: null,\n    maxLength: number,\n    media: null,\n    method: null,\n    min: null,\n    minLength: number,\n    multiple: boolean,\n    muted: boolean,\n    name: null,\n    nonce: null,\n    noModule: boolean,\n    noValidate: boolean,\n    onAbort: null,\n    onAfterPrint: null,\n    onAuxClick: null,\n    onBeforePrint: null,\n    onBeforeUnload: null,\n    onBlur: null,\n    onCancel: null,\n    onCanPlay: null,\n    onCanPlayThrough: null,\n    onChange: null,\n    onClick: null,\n    onClose: null,\n    onContextLost: null,\n    onContextMenu: null,\n    onContextRestored: null,\n    onCopy: null,\n    onCueChange: null,\n    onCut: null,\n    onDblClick: null,\n    onDrag: null,\n    onDragEnd: null,\n    onDragEnter: null,\n    onDragExit: null,\n    onDragLeave: null,\n    onDragOver: null,\n    onDragStart: null,\n    onDrop: null,\n    onDurationChange: null,\n    onEmptied: null,\n    onEnded: null,\n    onError: null,\n    onFocus: null,\n    onFormData: null,\n    onHashChange: null,\n    onInput: null,\n    onInvalid: null,\n    onKeyDown: null,\n    onKeyPress: null,\n    onKeyUp: null,\n    onLanguageChange: null,\n    onLoad: null,\n    onLoadedData: null,\n    onLoadedMetadata: null,\n    onLoadEnd: null,\n    onLoadStart: null,\n    onMessage: null,\n    onMessageError: null,\n    onMouseDown: null,\n    onMouseEnter: null,\n    onMouseLeave: null,\n    onMouseMove: null,\n    onMouseOut: null,\n    onMouseOver: null,\n    onMouseUp: null,\n    onOffline: null,\n    onOnline: null,\n    onPageHide: null,\n    onPageShow: null,\n    onPaste: null,\n    onPause: null,\n    onPlay: null,\n    onPlaying: null,\n    onPopState: null,\n    onProgress: null,\n    onRateChange: null,\n    onRejectionHandled: null,\n    onReset: null,\n    onResize: null,\n    onScroll: null,\n    onSecurityPolicyViolation: null,\n    onSeeked: null,\n    onSeeking: null,\n    onSelect: null,\n    onSlotChange: null,\n    onStalled: null,\n    onStorage: null,\n    onSubmit: null,\n    onSuspend: null,\n    onTimeUpdate: null,\n    onToggle: null,\n    onUnhandledRejection: null,\n    onUnload: null,\n    onVolumeChange: null,\n    onWaiting: null,\n    onWheel: null,\n    open: boolean,\n    optimum: number,\n    pattern: null,\n    ping: spaceSeparated,\n    placeholder: null,\n    playsInline: boolean,\n    poster: null,\n    preload: null,\n    readOnly: boolean,\n    referrerPolicy: null,\n    rel: spaceSeparated,\n    required: boolean,\n    reversed: boolean,\n    rows: number,\n    rowSpan: number,\n    sandbox: spaceSeparated,\n    scope: null,\n    scoped: boolean,\n    seamless: boolean,\n    selected: boolean,\n    shape: null,\n    size: number,\n    sizes: null,\n    slot: null,\n    span: number,\n    spellCheck: booleanish,\n    src: null,\n    srcDoc: null,\n    srcLang: null,\n    srcSet: null,\n    start: number,\n    step: null,\n    style: null,\n    tabIndex: number,\n    target: null,\n    title: null,\n    translate: null,\n    type: null,\n    typeMustMatch: boolean,\n    useMap: null,\n    value: booleanish,\n    width: number,\n    wrap: null,\n\n    // Legacy.\n    // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n    align: null, // Several. Use CSS `text-align` instead,\n    aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n    archive: spaceSeparated, // `<object>`. List of URIs to archives\n    axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n    background: null, // `<body>`. Use CSS `background-image` instead\n    bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n    border: number, // `<table>`. Use CSS `border-width` instead,\n    borderColor: null, // `<table>`. Use CSS `border-color` instead,\n    bottomMargin: number, // `<body>`\n    cellPadding: null, // `<table>`\n    cellSpacing: null, // `<table>`\n    char: null, // Several table elements. When `align=char`, sets the character to align on\n    charOff: null, // Several table elements. When `char`, offsets the alignment\n    classId: null, // `<object>`\n    clear: null, // `<br>`. Use CSS `clear` instead\n    code: null, // `<object>`\n    codeBase: null, // `<object>`\n    codeType: null, // `<object>`\n    color: null, // `<font>` and `<hr>`. Use CSS instead\n    compact: boolean, // Lists. Use CSS to reduce space between items instead\n    declare: boolean, // `<object>`\n    event: null, // `<script>`\n    face: null, // `<font>`. Use CSS instead\n    frame: null, // `<table>`\n    frameBorder: null, // `<iframe>`. Use CSS `border` instead\n    hSpace: number, // `<img>` and `<object>`\n    leftMargin: number, // `<body>`\n    link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n    longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n    lowSrc: null, // `<img>`. Use a `<picture>`\n    marginHeight: number, // `<body>`\n    marginWidth: number, // `<body>`\n    noResize: boolean, // `<frame>`\n    noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n    noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n    noWrap: boolean, // `<td>` and `<th>`\n    object: null, // `<applet>`\n    profile: null, // `<head>`\n    prompt: null, // `<isindex>`\n    rev: null, // `<link>`\n    rightMargin: number, // `<body>`\n    rules: null, // `<table>`\n    scheme: null, // `<meta>`\n    scrolling: booleanish, // `<frame>`. Use overflow in the child context\n    standby: null, // `<object>`\n    summary: null, // `<table>`\n    text: null, // `<body>`. Use CSS `color` instead\n    topMargin: number, // `<body>`\n    valueType: null, // `<param>`\n    version: null, // `<html>`. Use a doctype.\n    vAlign: null, // Several. Use CSS `vertical-align` instead\n    vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n    vSpace: number, // `<img>` and `<object>`\n\n    // Non-standard Properties.\n    allowTransparency: null,\n    autoCorrect: null,\n    autoSave: null,\n    disablePictureInPicture: boolean,\n    disableRemotePlayback: boolean,\n    prefix: null,\n    property: null,\n    results: number,\n    security: null,\n    unselectable: null\n  }\n})\n","import {\n  boolean,\n  number,\n  spaceSeparated,\n  commaSeparated,\n  commaOrSpaceSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseSensitiveTransform} from './util/case-sensitive-transform.js'\n\nexport const svg = create({\n  space: 'svg',\n  attributes: {\n    accentHeight: 'accent-height',\n    alignmentBaseline: 'alignment-baseline',\n    arabicForm: 'arabic-form',\n    baselineShift: 'baseline-shift',\n    capHeight: 'cap-height',\n    className: 'class',\n    clipPath: 'clip-path',\n    clipRule: 'clip-rule',\n    colorInterpolation: 'color-interpolation',\n    colorInterpolationFilters: 'color-interpolation-filters',\n    colorProfile: 'color-profile',\n    colorRendering: 'color-rendering',\n    crossOrigin: 'crossorigin',\n    dataType: 'datatype',\n    dominantBaseline: 'dominant-baseline',\n    enableBackground: 'enable-background',\n    fillOpacity: 'fill-opacity',\n    fillRule: 'fill-rule',\n    floodColor: 'flood-color',\n    floodOpacity: 'flood-opacity',\n    fontFamily: 'font-family',\n    fontSize: 'font-size',\n    fontSizeAdjust: 'font-size-adjust',\n    fontStretch: 'font-stretch',\n    fontStyle: 'font-style',\n    fontVariant: 'font-variant',\n    fontWeight: 'font-weight',\n    glyphName: 'glyph-name',\n    glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n    glyphOrientationVertical: 'glyph-orientation-vertical',\n    hrefLang: 'hreflang',\n    horizAdvX: 'horiz-adv-x',\n    horizOriginX: 'horiz-origin-x',\n    horizOriginY: 'horiz-origin-y',\n    imageRendering: 'image-rendering',\n    letterSpacing: 'letter-spacing',\n    lightingColor: 'lighting-color',\n    markerEnd: 'marker-end',\n    markerMid: 'marker-mid',\n    markerStart: 'marker-start',\n    navDown: 'nav-down',\n    navDownLeft: 'nav-down-left',\n    navDownRight: 'nav-down-right',\n    navLeft: 'nav-left',\n    navNext: 'nav-next',\n    navPrev: 'nav-prev',\n    navRight: 'nav-right',\n    navUp: 'nav-up',\n    navUpLeft: 'nav-up-left',\n    navUpRight: 'nav-up-right',\n    onAbort: 'onabort',\n    onActivate: 'onactivate',\n    onAfterPrint: 'onafterprint',\n    onBeforePrint: 'onbeforeprint',\n    onBegin: 'onbegin',\n    onCancel: 'oncancel',\n    onCanPlay: 'oncanplay',\n    onCanPlayThrough: 'oncanplaythrough',\n    onChange: 'onchange',\n    onClick: 'onclick',\n    onClose: 'onclose',\n    onCopy: 'oncopy',\n    onCueChange: 'oncuechange',\n    onCut: 'oncut',\n    onDblClick: 'ondblclick',\n    onDrag: 'ondrag',\n    onDragEnd: 'ondragend',\n    onDragEnter: 'ondragenter',\n    onDragExit: 'ondragexit',\n    onDragLeave: 'ondragleave',\n    onDragOver: 'ondragover',\n    onDragStart: 'ondragstart',\n    onDrop: 'ondrop',\n    onDurationChange: 'ondurationchange',\n    onEmptied: 'onemptied',\n    onEnd: 'onend',\n    onEnded: 'onended',\n    onError: 'onerror',\n    onFocus: 'onfocus',\n    onFocusIn: 'onfocusin',\n    onFocusOut: 'onfocusout',\n    onHashChange: 'onhashchange',\n    onInput: 'oninput',\n    onInvalid: 'oninvalid',\n    onKeyDown: 'onkeydown',\n    onKeyPress: 'onkeypress',\n    onKeyUp: 'onkeyup',\n    onLoad: 'onload',\n    onLoadedData: 'onloadeddata',\n    onLoadedMetadata: 'onloadedmetadata',\n    onLoadStart: 'onloadstart',\n    onMessage: 'onmessage',\n    onMouseDown: 'onmousedown',\n    onMouseEnter: 'onmouseenter',\n    onMouseLeave: 'onmouseleave',\n    onMouseMove: 'onmousemove',\n    onMouseOut: 'onmouseout',\n    onMouseOver: 'onmouseover',\n    onMouseUp: 'onmouseup',\n    onMouseWheel: 'onmousewheel',\n    onOffline: 'onoffline',\n    onOnline: 'ononline',\n    onPageHide: 'onpagehide',\n    onPageShow: 'onpageshow',\n    onPaste: 'onpaste',\n    onPause: 'onpause',\n    onPlay: 'onplay',\n    onPlaying: 'onplaying',\n    onPopState: 'onpopstate',\n    onProgress: 'onprogress',\n    onRateChange: 'onratechange',\n    onRepeat: 'onrepeat',\n    onReset: 'onreset',\n    onResize: 'onresize',\n    onScroll: 'onscroll',\n    onSeeked: 'onseeked',\n    onSeeking: 'onseeking',\n    onSelect: 'onselect',\n    onShow: 'onshow',\n    onStalled: 'onstalled',\n    onStorage: 'onstorage',\n    onSubmit: 'onsubmit',\n    onSuspend: 'onsuspend',\n    onTimeUpdate: 'ontimeupdate',\n    onToggle: 'ontoggle',\n    onUnload: 'onunload',\n    onVolumeChange: 'onvolumechange',\n    onWaiting: 'onwaiting',\n    onZoom: 'onzoom',\n    overlinePosition: 'overline-position',\n    overlineThickness: 'overline-thickness',\n    paintOrder: 'paint-order',\n    panose1: 'panose-1',\n    pointerEvents: 'pointer-events',\n    referrerPolicy: 'referrerpolicy',\n    renderingIntent: 'rendering-intent',\n    shapeRendering: 'shape-rendering',\n    stopColor: 'stop-color',\n    stopOpacity: 'stop-opacity',\n    strikethroughPosition: 'strikethrough-position',\n    strikethroughThickness: 'strikethrough-thickness',\n    strokeDashArray: 'stroke-dasharray',\n    strokeDashOffset: 'stroke-dashoffset',\n    strokeLineCap: 'stroke-linecap',\n    strokeLineJoin: 'stroke-linejoin',\n    strokeMiterLimit: 'stroke-miterlimit',\n    strokeOpacity: 'stroke-opacity',\n    strokeWidth: 'stroke-width',\n    tabIndex: 'tabindex',\n    textAnchor: 'text-anchor',\n    textDecoration: 'text-decoration',\n    textRendering: 'text-rendering',\n    typeOf: 'typeof',\n    underlinePosition: 'underline-position',\n    underlineThickness: 'underline-thickness',\n    unicodeBidi: 'unicode-bidi',\n    unicodeRange: 'unicode-range',\n    unitsPerEm: 'units-per-em',\n    vAlphabetic: 'v-alphabetic',\n    vHanging: 'v-hanging',\n    vIdeographic: 'v-ideographic',\n    vMathematical: 'v-mathematical',\n    vectorEffect: 'vector-effect',\n    vertAdvY: 'vert-adv-y',\n    vertOriginX: 'vert-origin-x',\n    vertOriginY: 'vert-origin-y',\n    wordSpacing: 'word-spacing',\n    writingMode: 'writing-mode',\n    xHeight: 'x-height',\n    // These were camelcased in Tiny. Now lowercased in SVG 2\n    playbackOrder: 'playbackorder',\n    timelineBegin: 'timelinebegin'\n  },\n  transform: caseSensitiveTransform,\n  properties: {\n    about: commaOrSpaceSeparated,\n    accentHeight: number,\n    accumulate: null,\n    additive: null,\n    alignmentBaseline: null,\n    alphabetic: number,\n    amplitude: number,\n    arabicForm: null,\n    ascent: number,\n    attributeName: null,\n    attributeType: null,\n    azimuth: number,\n    bandwidth: null,\n    baselineShift: null,\n    baseFrequency: null,\n    baseProfile: null,\n    bbox: null,\n    begin: null,\n    bias: number,\n    by: null,\n    calcMode: null,\n    capHeight: number,\n    className: spaceSeparated,\n    clip: null,\n    clipPath: null,\n    clipPathUnits: null,\n    clipRule: null,\n    color: null,\n    colorInterpolation: null,\n    colorInterpolationFilters: null,\n    colorProfile: null,\n    colorRendering: null,\n    content: null,\n    contentScriptType: null,\n    contentStyleType: null,\n    crossOrigin: null,\n    cursor: null,\n    cx: null,\n    cy: null,\n    d: null,\n    dataType: null,\n    defaultAction: null,\n    descent: number,\n    diffuseConstant: number,\n    direction: null,\n    display: null,\n    dur: null,\n    divisor: number,\n    dominantBaseline: null,\n    download: boolean,\n    dx: null,\n    dy: null,\n    edgeMode: null,\n    editable: null,\n    elevation: number,\n    enableBackground: null,\n    end: null,\n    event: null,\n    exponent: number,\n    externalResourcesRequired: null,\n    fill: null,\n    fillOpacity: number,\n    fillRule: null,\n    filter: null,\n    filterRes: null,\n    filterUnits: null,\n    floodColor: null,\n    floodOpacity: null,\n    focusable: null,\n    focusHighlight: null,\n    fontFamily: null,\n    fontSize: null,\n    fontSizeAdjust: null,\n    fontStretch: null,\n    fontStyle: null,\n    fontVariant: null,\n    fontWeight: null,\n    format: null,\n    fr: null,\n    from: null,\n    fx: null,\n    fy: null,\n    g1: commaSeparated,\n    g2: commaSeparated,\n    glyphName: commaSeparated,\n    glyphOrientationHorizontal: null,\n    glyphOrientationVertical: null,\n    glyphRef: null,\n    gradientTransform: null,\n    gradientUnits: null,\n    handler: null,\n    hanging: number,\n    hatchContentUnits: null,\n    hatchUnits: null,\n    height: null,\n    href: null,\n    hrefLang: null,\n    horizAdvX: number,\n    horizOriginX: number,\n    horizOriginY: number,\n    id: null,\n    ideographic: number,\n    imageRendering: null,\n    initialVisibility: null,\n    in: null,\n    in2: null,\n    intercept: number,\n    k: number,\n    k1: number,\n    k2: number,\n    k3: number,\n    k4: number,\n    kernelMatrix: commaOrSpaceSeparated,\n    kernelUnitLength: null,\n    keyPoints: null, // SEMI_COLON_SEPARATED\n    keySplines: null, // SEMI_COLON_SEPARATED\n    keyTimes: null, // SEMI_COLON_SEPARATED\n    kerning: null,\n    lang: null,\n    lengthAdjust: null,\n    letterSpacing: null,\n    lightingColor: null,\n    limitingConeAngle: number,\n    local: null,\n    markerEnd: null,\n    markerMid: null,\n    markerStart: null,\n    markerHeight: null,\n    markerUnits: null,\n    markerWidth: null,\n    mask: null,\n    maskContentUnits: null,\n    maskUnits: null,\n    mathematical: null,\n    max: null,\n    media: null,\n    mediaCharacterEncoding: null,\n    mediaContentEncodings: null,\n    mediaSize: number,\n    mediaTime: null,\n    method: null,\n    min: null,\n    mode: null,\n    name: null,\n    navDown: null,\n    navDownLeft: null,\n    navDownRight: null,\n    navLeft: null,\n    navNext: null,\n    navPrev: null,\n    navRight: null,\n    navUp: null,\n    navUpLeft: null,\n    navUpRight: null,\n    numOctaves: null,\n    observer: null,\n    offset: null,\n    onAbort: null,\n    onActivate: null,\n    onAfterPrint: null,\n    onBeforePrint: null,\n    onBegin: null,\n    onCancel: null,\n    onCanPlay: null,\n    onCanPlayThrough: null,\n    onChange: null,\n    onClick: null,\n    onClose: null,\n    onCopy: null,\n    onCueChange: null,\n    onCut: null,\n    onDblClick: null,\n    onDrag: null,\n    onDragEnd: null,\n    onDragEnter: null,\n    onDragExit: null,\n    onDragLeave: null,\n    onDragOver: null,\n    onDragStart: null,\n    onDrop: null,\n    onDurationChange: null,\n    onEmptied: null,\n    onEnd: null,\n    onEnded: null,\n    onError: null,\n    onFocus: null,\n    onFocusIn: null,\n    onFocusOut: null,\n    onHashChange: null,\n    onInput: null,\n    onInvalid: null,\n    onKeyDown: null,\n    onKeyPress: null,\n    onKeyUp: null,\n    onLoad: null,\n    onLoadedData: null,\n    onLoadedMetadata: null,\n    onLoadStart: null,\n    onMessage: null,\n    onMouseDown: null,\n    onMouseEnter: null,\n    onMouseLeave: null,\n    onMouseMove: null,\n    onMouseOut: null,\n    onMouseOver: null,\n    onMouseUp: null,\n    onMouseWheel: null,\n    onOffline: null,\n    onOnline: null,\n    onPageHide: null,\n    onPageShow: null,\n    onPaste: null,\n    onPause: null,\n    onPlay: null,\n    onPlaying: null,\n    onPopState: null,\n    onProgress: null,\n    onRateChange: null,\n    onRepeat: null,\n    onReset: null,\n    onResize: null,\n    onScroll: null,\n    onSeeked: null,\n    onSeeking: null,\n    onSelect: null,\n    onShow: null,\n    onStalled: null,\n    onStorage: null,\n    onSubmit: null,\n    onSuspend: null,\n    onTimeUpdate: null,\n    onToggle: null,\n    onUnload: null,\n    onVolumeChange: null,\n    onWaiting: null,\n    onZoom: null,\n    opacity: null,\n    operator: null,\n    order: null,\n    orient: null,\n    orientation: null,\n    origin: null,\n    overflow: null,\n    overlay: null,\n    overlinePosition: number,\n    overlineThickness: number,\n    paintOrder: null,\n    panose1: null,\n    path: null,\n    pathLength: number,\n    patternContentUnits: null,\n    patternTransform: null,\n    patternUnits: null,\n    phase: null,\n    ping: spaceSeparated,\n    pitch: null,\n    playbackOrder: null,\n    pointerEvents: null,\n    points: null,\n    pointsAtX: number,\n    pointsAtY: number,\n    pointsAtZ: number,\n    preserveAlpha: null,\n    preserveAspectRatio: null,\n    primitiveUnits: null,\n    propagate: null,\n    property: commaOrSpaceSeparated,\n    r: null,\n    radius: null,\n    referrerPolicy: null,\n    refX: null,\n    refY: null,\n    rel: commaOrSpaceSeparated,\n    rev: commaOrSpaceSeparated,\n    renderingIntent: null,\n    repeatCount: null,\n    repeatDur: null,\n    requiredExtensions: commaOrSpaceSeparated,\n    requiredFeatures: commaOrSpaceSeparated,\n    requiredFonts: commaOrSpaceSeparated,\n    requiredFormats: commaOrSpaceSeparated,\n    resource: null,\n    restart: null,\n    result: null,\n    rotate: null,\n    rx: null,\n    ry: null,\n    scale: null,\n    seed: null,\n    shapeRendering: null,\n    side: null,\n    slope: null,\n    snapshotTime: null,\n    specularConstant: number,\n    specularExponent: number,\n    spreadMethod: null,\n    spacing: null,\n    startOffset: null,\n    stdDeviation: null,\n    stemh: null,\n    stemv: null,\n    stitchTiles: null,\n    stopColor: null,\n    stopOpacity: null,\n    strikethroughPosition: number,\n    strikethroughThickness: number,\n    string: null,\n    stroke: null,\n    strokeDashArray: commaOrSpaceSeparated,\n    strokeDashOffset: null,\n    strokeLineCap: null,\n    strokeLineJoin: null,\n    strokeMiterLimit: number,\n    strokeOpacity: number,\n    strokeWidth: null,\n    style: null,\n    surfaceScale: number,\n    syncBehavior: null,\n    syncBehaviorDefault: null,\n    syncMaster: null,\n    syncTolerance: null,\n    syncToleranceDefault: null,\n    systemLanguage: commaOrSpaceSeparated,\n    tabIndex: number,\n    tableValues: null,\n    target: null,\n    targetX: number,\n    targetY: number,\n    textAnchor: null,\n    textDecoration: null,\n    textRendering: null,\n    textLength: null,\n    timelineBegin: null,\n    title: null,\n    transformBehavior: null,\n    type: null,\n    typeOf: commaOrSpaceSeparated,\n    to: null,\n    transform: null,\n    u1: null,\n    u2: null,\n    underlinePosition: number,\n    underlineThickness: number,\n    unicode: null,\n    unicodeBidi: null,\n    unicodeRange: null,\n    unitsPerEm: number,\n    values: null,\n    vAlphabetic: number,\n    vMathematical: number,\n    vectorEffect: null,\n    vHanging: number,\n    vIdeographic: number,\n    version: null,\n    vertAdvY: number,\n    vertOriginX: number,\n    vertOriginY: number,\n    viewBox: null,\n    viewTarget: null,\n    visibility: null,\n    width: null,\n    widths: null,\n    wordSpacing: null,\n    writingMode: null,\n    x: null,\n    x1: null,\n    x2: null,\n    xChannelSelector: null,\n    xHeight: number,\n    y: null,\n    y1: null,\n    y2: null,\n    yChannelSelector: null,\n    z: null,\n    zoomAndPan: null\n  }\n})\n","/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nimport {merge} from './lib/util/merge.js'\nimport {xlink} from './lib/xlink.js'\nimport {xml} from './lib/xml.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\n\nexport {find} from './lib/find.js'\nexport {hastToReact} from './lib/hast-to-react.js'\nexport {normalize} from './lib/normalize.js'\nexport const html = merge([xml, xlink, xmlns, aria, htmlBase], 'html')\nexport const svg = merge([xml, xlink, xmlns, aria, svgBase], 'svg')\n","import {visit} from 'unist-util-visit'\n\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n *\n * @callback AllowElement\n * @param {Element} element\n * @param {number} index\n * @param {Element|Root} parent\n * @returns {boolean|undefined}\n *\n * @typedef Options\n * @property {Array<string>} [allowedElements]\n * @property {Array<string>} [disallowedElements=[]]\n * @property {AllowElement} [allowElement]\n * @property {boolean} [unwrapDisallowed=false]\n */\n\n/**\n * @type {import('unified').Plugin<[Options], Root>}\n */\nexport default function rehypeFilter(options) {\n  if (options.allowedElements && options.disallowedElements) {\n    throw new TypeError(\n      'Only one of `allowedElements` and `disallowedElements` should be defined'\n    )\n  }\n\n  if (\n    options.allowedElements ||\n    options.disallowedElements ||\n    options.allowElement\n  ) {\n    return (tree) => {\n      visit(tree, 'element', (node, index, parent_) => {\n        const parent = /** @type {Element|Root} */ (parent_)\n        /** @type {boolean|undefined} */\n        let remove\n\n        if (options.allowedElements) {\n          remove = !options.allowedElements.includes(node.tagName)\n        } else if (options.disallowedElements) {\n          remove = options.disallowedElements.includes(node.tagName)\n        }\n\n        if (!remove && options.allowElement && typeof index === 'number') {\n          remove = !options.allowElement(node, index, parent)\n        }\n\n        if (remove && typeof index === 'number') {\n          if (options.unwrapDisallowed && node.children) {\n            parent.children.splice(index, 1, ...node.children)\n          } else {\n            parent.children.splice(index, 1)\n          }\n\n          return index\n        }\n\n        return undefined\n      })\n    }\n  }\n}\n","/**\n * @param {unknown} thing\n * @returns {boolean}\n */\nexport function whitespace(thing) {\n  /** @type {string} */\n  var value =\n    // @ts-ignore looks like a node.\n    thing && typeof thing === 'object' && thing.type === 'text'\n      ? // @ts-ignore looks like a text.\n        thing.value || ''\n      : thing\n\n  // HTML whitespace expression.\n  // See <https://html.spec.whatwg.org/#space-character>.\n  return typeof value === 'string' && value.replace(/[ \\t\\n\\f\\r]/g, '') === ''\n}\n","/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\nimport {normalize} from './normalize.js'\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\n\nconst valid = /^data[-\\w.:]+$/i\nconst dash = /-[a-z]/g\nconst cap = /[A-Z]/g\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nexport function find(schema, value) {\n  const normal = normalize(value)\n  let prop = value\n  let Type = Info\n\n  if (normal in schema.normal) {\n    return schema.property[schema.normal[normal]]\n  }\n\n  if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n    // Attribute or property.\n    if (value.charAt(4) === '-') {\n      // Turn it into a property.\n      const rest = value.slice(5).replace(dash, camelcase)\n      prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n    } else {\n      // Turn it into an attribute.\n      const rest = value.slice(4)\n\n      if (!dash.test(rest)) {\n        let dashes = rest.replace(cap, kebab)\n\n        if (dashes.charAt(0) !== '-') {\n          dashes = '-' + dashes\n        }\n\n        value = 'data' + dashes\n      }\n    }\n\n    Type = DefinedInfo\n  }\n\n  return new Type(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n  return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n  return $0.charAt(1).toUpperCase()\n}\n","export const hastToReact = {\n  classId: 'classID',\n  dataType: 'datatype',\n  itemId: 'itemID',\n  strokeDashArray: 'strokeDasharray',\n  strokeDashOffset: 'strokeDashoffset',\n  strokeLineCap: 'strokeLinecap',\n  strokeLineJoin: 'strokeLinejoin',\n  strokeMiterLimit: 'strokeMiterlimit',\n  typeOf: 'typeof',\n  xLinkActuate: 'xlinkActuate',\n  xLinkArcRole: 'xlinkArcrole',\n  xLinkHref: 'xlinkHref',\n  xLinkRole: 'xlinkRole',\n  xLinkShow: 'xlinkShow',\n  xLinkTitle: 'xlinkTitle',\n  xLinkType: 'xlinkType',\n  xmlnsXLink: 'xmlnsXlink'\n}\n","/**\n * Parse space separated tokens to an array of strings.\n *\n * @param {string} value Space separated tokens\n * @returns {Array.<string>} Tokens\n */\nexport function parse(value) {\n  const input = String(value || '').trim()\n  return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated tokens.\n *\n * @param {Array.<string|number>} values Tokens\n * @returns {string} Space separated tokens\n */\nexport function stringify(values) {\n  return values.join(' ').trim()\n}\n","/**\n * @typedef {Object} StringifyOptions\n * @property {boolean} [padLeft=true] Whether to pad a space before a token (`boolean`, default: `true`).\n * @property {boolean} [padRight=false] Whether to pad a space after a token (`boolean`, default: `false`).\n */\n\n/**\n * Parse comma separated tokens to an array.\n *\n * @param {string} value\n * @returns {Array.<string>}\n */\nexport function parse(value) {\n  /** @type {Array.<string>} */\n  var tokens = []\n  var input = String(value || '')\n  var index = input.indexOf(',')\n  var start = 0\n  /** @type {boolean} */\n  var end\n  /** @type {string} */\n  var token\n\n  while (!end) {\n    if (index === -1) {\n      index = input.length\n      end = true\n    }\n\n    token = input.slice(start, index).trim()\n\n    if (token || !end) {\n      tokens.push(token)\n    }\n\n    start = index + 1\n    index = input.indexOf(',', start)\n  }\n\n  return tokens\n}\n\n/**\n * Serialize an array of strings to comma separated tokens.\n *\n * @param {Array.<string|number>} values\n * @param {StringifyOptions} [options]\n * @returns {string}\n */\nexport function stringify(values, options) {\n  var settings = options || {}\n\n  // Ensure the last empty entry is seen.\n  if (values[values.length - 1] === '') {\n    values = values.concat('')\n  }\n\n  return values\n    .join(\n      (settings.padRight ? ' ' : '') +\n        ',' +\n        (settings.padLeft === false ? '' : ' ')\n    )\n    .trim()\n}\n","import StyleToObject from './index.js';\n\nexport default StyleToObject;\n","const protocols = ['http', 'https', 'mailto', 'tel']\n\n/**\n * @param {string} uri\n * @returns {string}\n */\nexport function uriTransformer(uri) {\n  const url = (uri || '').trim()\n  const first = url.charAt(0)\n\n  if (first === '#' || first === '/') {\n    return url\n  }\n\n  const colon = url.indexOf(':')\n  if (colon === -1) {\n    return url\n  }\n\n  let index = -1\n\n  while (++index < protocols.length) {\n    const protocol = protocols[index]\n\n    if (\n      colon === protocol.length &&\n      url.slice(0, protocol.length).toLowerCase() === protocol\n    ) {\n      return url\n    }\n  }\n\n  index = url.indexOf('?')\n  if (index !== -1 && colon > index) {\n    return url\n  }\n\n  index = url.indexOf('#')\n  if (index !== -1 && colon > index) {\n    return url\n  }\n\n  // eslint-disable-next-line no-script-url\n  return 'javascript:void(0)'\n}\n","/**\n * @template T\n * @typedef {import('react').ComponentType<T>} ComponentType<T>\n */\n\n/**\n * @template T\n * @typedef {import('react').ComponentPropsWithoutRef<T>} ComponentPropsWithoutRef<T>\n */\n\n/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('unist').Position} Position\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('./complex-types.js').ReactMarkdownProps} ReactMarkdownProps\n *\n * @typedef Raw\n * @property {'raw'} type\n * @property {string} value\n *\n * @typedef Context\n * @property {Options} options\n * @property {Schema} schema\n * @property {number} listDepth\n *\n * @callback TransformLink\n * @param {string} href\n * @param {Array<ElementContent>} children\n * @param {string?} title\n * @returns {string}\n *\n * @callback TransformImage\n * @param {string} src\n * @param {string} alt\n * @param {string?} title\n * @returns {string}\n *\n * @typedef {import('react').HTMLAttributeAnchorTarget} TransformLinkTargetType\n *\n * @callback TransformLinkTarget\n * @param {string} href\n * @param {Array<ElementContent>} children\n * @param {string?} title\n * @returns {TransformLinkTargetType|undefined}\n *\n * @typedef {keyof JSX.IntrinsicElements} ReactMarkdownNames\n *\n * To do: is `data-sourcepos` typeable?\n *\n * @typedef {ComponentPropsWithoutRef<'code'> & ReactMarkdownProps & {inline?: boolean}} CodeProps\n * @typedef {ComponentPropsWithoutRef<'h1'> & ReactMarkdownProps & {level: number}} HeadingProps\n * @typedef {ComponentPropsWithoutRef<'li'> & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} LiProps\n * @typedef {ComponentPropsWithoutRef<'ol'> & ReactMarkdownProps & {depth: number, ordered: true}} OrderedListProps\n * @typedef {ComponentPropsWithoutRef<'td'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: false}} TableDataCellProps\n * @typedef {ComponentPropsWithoutRef<'th'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: true}} TableHeaderCellProps\n * @typedef {ComponentPropsWithoutRef<'tr'> & ReactMarkdownProps & {isHeader: boolean}} TableRowProps\n * @typedef {ComponentPropsWithoutRef<'ul'> & ReactMarkdownProps & {depth: number, ordered: false}} UnorderedListProps\n *\n * @typedef {ComponentType<CodeProps>} CodeComponent\n * @typedef {ComponentType<HeadingProps>} HeadingComponent\n * @typedef {ComponentType<LiProps>} LiComponent\n * @typedef {ComponentType<OrderedListProps>} OrderedListComponent\n * @typedef {ComponentType<TableDataCellProps>} TableDataCellComponent\n * @typedef {ComponentType<TableHeaderCellProps>} TableHeaderCellComponent\n * @typedef {ComponentType<TableRowProps>} TableRowComponent\n * @typedef {ComponentType<UnorderedListProps>} UnorderedListComponent\n *\n * @typedef SpecialComponents\n * @property {CodeComponent|ReactMarkdownNames} code\n * @property {HeadingComponent|ReactMarkdownNames} h1\n * @property {HeadingComponent|ReactMarkdownNames} h2\n * @property {HeadingComponent|ReactMarkdownNames} h3\n * @property {HeadingComponent|ReactMarkdownNames} h4\n * @property {HeadingComponent|ReactMarkdownNames} h5\n * @property {HeadingComponent|ReactMarkdownNames} h6\n * @property {LiComponent|ReactMarkdownNames} li\n * @property {OrderedListComponent|ReactMarkdownNames} ol\n * @property {TableDataCellComponent|ReactMarkdownNames} td\n * @property {TableHeaderCellComponent|ReactMarkdownNames} th\n * @property {TableRowComponent|ReactMarkdownNames} tr\n * @property {UnorderedListComponent|ReactMarkdownNames} ul\n *\n * @typedef {Partial<Omit<import('./complex-types.js').NormalComponents, keyof SpecialComponents> & SpecialComponents>} Components\n *\n * @typedef Options\n * @property {boolean} [sourcePos=false]\n * @property {boolean} [rawSourcePos=false]\n * @property {boolean} [skipHtml=false]\n * @property {boolean} [includeElementIndex=false]\n * @property {null|false|TransformLink} [transformLinkUri]\n * @property {TransformImage} [transformImageUri]\n * @property {TransformLinkTargetType|TransformLinkTarget} [linkTarget]\n * @property {Components} [components]\n */\n\nimport React from 'react'\nimport ReactIs from 'react-is'\nimport {whitespace} from 'hast-util-whitespace'\nimport {svg, find, hastToReact} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport style from 'style-to-object'\nimport {uriTransformer} from './uri-transformer.js'\n\nconst own = {}.hasOwnProperty\n\n// The table-related elements that must not contain whitespace text according\n// to React.\nconst tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr'])\n\n/**\n * @param {Context} context\n * @param {Element|Root} node\n */\nexport function childrenToReact(context, node) {\n  /** @type {Array<ReactNode>} */\n  const children = []\n  let childIndex = -1\n  /** @type {Comment|Doctype|Element|Raw|Text} */\n  let child\n\n  while (++childIndex < node.children.length) {\n    child = node.children[childIndex]\n\n    if (child.type === 'element') {\n      children.push(toReact(context, child, childIndex, node))\n    } else if (child.type === 'text') {\n      // Currently, a warning is triggered by react for *any* white space in\n      // tables.\n      // So we drop it.\n      // See: <https://github.com/facebook/react/pull/7081>.\n      // See: <https://github.com/facebook/react/pull/7515>.\n      // See: <https://github.com/remarkjs/remark-react/issues/64>.\n      // See: <https://github.com/remarkjs/react-markdown/issues/576>.\n      if (\n        node.type !== 'element' ||\n        !tableElements.has(node.tagName) ||\n        !whitespace(child)\n      ) {\n        children.push(child.value)\n      }\n    } else if (child.type === 'raw' && !context.options.skipHtml) {\n      // Default behavior is to show (encoded) HTML.\n      children.push(child.value)\n    }\n  }\n\n  return children\n}\n\n/**\n * @param {Context} context\n * @param {Element} node\n * @param {number} index\n * @param {Element|Root} parent\n */\nfunction toReact(context, node, index, parent) {\n  const options = context.options\n  const transform =\n    options.transformLinkUri === undefined\n      ? uriTransformer\n      : options.transformLinkUri\n  const parentSchema = context.schema\n  /** @type {ReactMarkdownNames} */\n  // @ts-expect-error assume a known HTML/SVG element.\n  const name = node.tagName\n  /** @type {Record<string, unknown>} */\n  const properties = {}\n  let schema = parentSchema\n  /** @type {string} */\n  let property\n\n  if (parentSchema.space === 'html' && name === 'svg') {\n    schema = svg\n    context.schema = schema\n  }\n\n  if (node.properties) {\n    for (property in node.properties) {\n      if (own.call(node.properties, property)) {\n        addProperty(properties, property, node.properties[property], context)\n      }\n    }\n  }\n\n  if (name === 'ol' || name === 'ul') {\n    context.listDepth++\n  }\n\n  const children = childrenToReact(context, node)\n\n  if (name === 'ol' || name === 'ul') {\n    context.listDepth--\n  }\n\n  // Restore parent schema.\n  context.schema = parentSchema\n\n  // Nodes created by plugins do not have positional info, in which case we use\n  // an object that matches the position interface.\n  const position = node.position || {\n    start: {line: null, column: null, offset: null},\n    end: {line: null, column: null, offset: null}\n  }\n  const component =\n    options.components && own.call(options.components, name)\n      ? options.components[name]\n      : name\n  const basic = typeof component === 'string' || component === React.Fragment\n\n  if (!ReactIs.isValidElementType(component)) {\n    throw new TypeError(\n      `Component for name \\`${name}\\` not defined or is not renderable`\n    )\n  }\n\n  properties.key = [\n    name,\n    position.start.line,\n    position.start.column,\n    index\n  ].join('-')\n\n  if (name === 'a' && options.linkTarget) {\n    properties.target =\n      typeof options.linkTarget === 'function'\n        ? options.linkTarget(\n            String(properties.href || ''),\n            node.children,\n            typeof properties.title === 'string' ? properties.title : null\n          )\n        : options.linkTarget\n  }\n\n  if (name === 'a' && transform) {\n    properties.href = transform(\n      String(properties.href || ''),\n      node.children,\n      typeof properties.title === 'string' ? properties.title : null\n    )\n  }\n\n  if (\n    !basic &&\n    name === 'code' &&\n    parent.type === 'element' &&\n    parent.tagName !== 'pre'\n  ) {\n    properties.inline = true\n  }\n\n  if (\n    !basic &&\n    (name === 'h1' ||\n      name === 'h2' ||\n      name === 'h3' ||\n      name === 'h4' ||\n      name === 'h5' ||\n      name === 'h6')\n  ) {\n    properties.level = Number.parseInt(name.charAt(1), 10)\n  }\n\n  if (name === 'img' && options.transformImageUri) {\n    properties.src = options.transformImageUri(\n      String(properties.src || ''),\n      String(properties.alt || ''),\n      typeof properties.title === 'string' ? properties.title : null\n    )\n  }\n\n  if (!basic && name === 'li' && parent.type === 'element') {\n    const input = getInputElement(node)\n    properties.checked =\n      input && input.properties ? Boolean(input.properties.checked) : null\n    properties.index = getElementsBeforeCount(parent, node)\n    properties.ordered = parent.tagName === 'ol'\n  }\n\n  if (!basic && (name === 'ol' || name === 'ul')) {\n    properties.ordered = name === 'ol'\n    properties.depth = context.listDepth\n  }\n\n  if (name === 'td' || name === 'th') {\n    if (properties.align) {\n      if (!properties.style) properties.style = {}\n      // @ts-expect-error assume `style` is an object\n      properties.style.textAlign = properties.align\n      delete properties.align\n    }\n\n    if (!basic) {\n      properties.isHeader = name === 'th'\n    }\n  }\n\n  if (!basic && name === 'tr' && parent.type === 'element') {\n    properties.isHeader = Boolean(parent.tagName === 'thead')\n  }\n\n  // If `sourcePos` is given, pass source information (line/column info from markdown source).\n  if (options.sourcePos) {\n    properties['data-sourcepos'] = flattenPosition(position)\n  }\n\n  if (!basic && options.rawSourcePos) {\n    properties.sourcePosition = node.position\n  }\n\n  // If `includeElementIndex` is given, pass node index info to components.\n  if (!basic && options.includeElementIndex) {\n    properties.index = getElementsBeforeCount(parent, node)\n    properties.siblingCount = getElementsBeforeCount(parent)\n  }\n\n  if (!basic) {\n    properties.node = node\n  }\n\n  // Ensure no React warnings are emitted for void elements w/ children.\n  return children.length > 0\n    ? React.createElement(component, properties, children)\n    : React.createElement(component, properties)\n}\n\n/**\n * @param {Element|Root} node\n * @returns {Element?}\n */\nfunction getInputElement(node) {\n  let index = -1\n\n  while (++index < node.children.length) {\n    const child = node.children[index]\n\n    if (child.type === 'element' && child.tagName === 'input') {\n      return child\n    }\n  }\n\n  return null\n}\n\n/**\n * @param {Element|Root} parent\n * @param {Element} [node]\n * @returns {number}\n */\nfunction getElementsBeforeCount(parent, node) {\n  let index = -1\n  let count = 0\n\n  while (++index < parent.children.length) {\n    if (parent.children[index] === node) break\n    if (parent.children[index].type === 'element') count++\n  }\n\n  return count\n}\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n */\nfunction addProperty(props, prop, value, ctx) {\n  const info = find(ctx.schema, prop)\n  let result = value\n\n  // Ignore nullish and `NaN` values.\n  // eslint-disable-next-line no-self-compare\n  if (result === null || result === undefined || result !== result) {\n    return\n  }\n\n  // Accept `array`.\n  // Most props are space-separated.\n  if (Array.isArray(result)) {\n    result = info.commaSeparated ? commas(result) : spaces(result)\n  }\n\n  if (info.property === 'style' && typeof result === 'string') {\n    result = parseStyle(result)\n  }\n\n  if (info.space && info.property) {\n    props[\n      own.call(hastToReact, info.property)\n        ? hastToReact[info.property]\n        : info.property\n    ] = result\n  } else if (info.attribute) {\n    props[info.attribute] = result\n  }\n}\n\n/**\n * @param {string} value\n * @returns {Record<string, string>}\n */\nfunction parseStyle(value) {\n  /** @type {Record<string, string>} */\n  const result = {}\n\n  try {\n    style(value, iterator)\n  } catch {\n    // Silent.\n  }\n\n  return result\n\n  /**\n   * @param {string} name\n   * @param {string} v\n   */\n  function iterator(name, v) {\n    const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name\n    result[k.replace(/-([a-z])/g, styleReplacer)] = v\n  }\n}\n\n/**\n * @param {unknown} _\n * @param {string} $1\n */\nfunction styleReplacer(_, $1) {\n  return $1.toUpperCase()\n}\n\n/**\n * @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos\n * @returns {string}\n */\nfunction flattenPosition(pos) {\n  return [\n    pos.start.line,\n    ':',\n    pos.start.column,\n    '-',\n    pos.end.line,\n    ':',\n    pos.end.column\n  ]\n    .map(String)\n    .join('')\n}\n","/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('react').ReactElement<{}>} ReactElement\n * @typedef {import('unified').PluggableList} PluggableList\n * @typedef {import('hast').Root} Root\n * @typedef {import('./rehype-filter.js').Options} FilterOptions\n * @typedef {import('./ast-to-react.js').Options} TransformOptions\n *\n * @typedef CoreOptions\n * @property {string} children\n *\n * @typedef PluginOptions\n * @property {PluggableList} [remarkPlugins=[]]\n * @property {PluggableList} [rehypePlugins=[]]\n * @property {import('remark-rehype').Options | undefined} [remarkRehypeOptions={}]\n *\n * @typedef LayoutOptions\n * @property {string} [className]\n *\n * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions\n *\n * @typedef Deprecation\n * @property {string} id\n * @property {string} [to]\n */\n\nimport React from 'react'\nimport {VFile} from 'vfile'\nimport {unified} from 'unified'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport PropTypes from 'prop-types'\nimport {html} from 'property-information'\nimport rehypeFilter from './rehype-filter.js'\nimport {childrenToReact} from './ast-to-react.js'\n\nconst own = {}.hasOwnProperty\nconst changelog =\n  'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {Record<string, Deprecation>} */\nconst deprecated = {\n  plugins: {to: 'remarkPlugins', id: 'change-plugins-to-remarkplugins'},\n  renderers: {to: 'components', id: 'change-renderers-to-components'},\n  astPlugins: {id: 'remove-buggy-html-in-markdown-parser'},\n  allowDangerousHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n  escapeHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n  source: {to: 'children', id: 'change-source-to-children'},\n  allowNode: {\n    to: 'allowElement',\n    id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n  },\n  allowedTypes: {\n    to: 'allowedElements',\n    id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n  },\n  disallowedTypes: {\n    to: 'disallowedElements',\n    id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n  },\n  includeNodeIndex: {\n    to: 'includeElementIndex',\n    id: 'change-includenodeindex-to-includeelementindex'\n  }\n}\n\n/**\n * React component to render markdown.\n *\n * @param {ReactMarkdownOptions} options\n * @returns {ReactElement}\n */\nexport function ReactMarkdown(options) {\n  for (const key in deprecated) {\n    if (own.call(deprecated, key) && own.call(options, key)) {\n      const deprecation = deprecated[key]\n      console.warn(\n        `[react-markdown] Warning: please ${\n          deprecation.to ? `use \\`${deprecation.to}\\` instead of` : 'remove'\n        } \\`${key}\\` (see <${changelog}#${deprecation.id}> for more info)`\n      )\n      delete deprecated[key]\n    }\n  }\n\n  const processor = unified()\n    .use(remarkParse)\n    .use(options.remarkPlugins || [])\n    .use(remarkRehype, {\n      ...options.remarkRehypeOptions,\n      allowDangerousHtml: true\n    })\n    .use(options.rehypePlugins || [])\n    .use(rehypeFilter, options)\n\n  const file = new VFile()\n\n  if (typeof options.children === 'string') {\n    file.value = options.children\n  } else if (options.children !== undefined && options.children !== null) {\n    console.warn(\n      `[react-markdown] Warning: please pass a string as \\`children\\` (not: \\`${options.children}\\`)`\n    )\n  }\n\n  const hastNode = processor.runSync(processor.parse(file), file)\n\n  if (hastNode.type !== 'root') {\n    throw new TypeError('Expected a `root` node')\n  }\n\n  /** @type {ReactElement} */\n  let result = React.createElement(\n    React.Fragment,\n    {},\n    childrenToReact({options, schema: html, listDepth: 0}, hastNode)\n  )\n\n  if (options.className) {\n    result = React.createElement('div', {className: options.className}, result)\n  }\n\n  return result\n}\n\nReactMarkdown.propTypes = {\n  // Core options:\n  children: PropTypes.string,\n  // Layout options:\n  className: PropTypes.string,\n  // Filter options:\n  allowElement: PropTypes.func,\n  allowedElements: PropTypes.arrayOf(PropTypes.string),\n  disallowedElements: PropTypes.arrayOf(PropTypes.string),\n  unwrapDisallowed: PropTypes.bool,\n  // Plugin options:\n  remarkPlugins: PropTypes.arrayOf(\n    PropTypes.oneOfType([\n      PropTypes.object,\n      PropTypes.func,\n      PropTypes.arrayOf(\n        PropTypes.oneOfType([\n          PropTypes.bool,\n          PropTypes.string,\n          PropTypes.object,\n          PropTypes.func,\n          PropTypes.arrayOf(\n            // prettier-ignore\n            // type-coverage:ignore-next-line\n            PropTypes.any\n          )\n        ])\n      )\n    ])\n  ),\n  rehypePlugins: PropTypes.arrayOf(\n    PropTypes.oneOfType([\n      PropTypes.object,\n      PropTypes.func,\n      PropTypes.arrayOf(\n        PropTypes.oneOfType([\n          PropTypes.bool,\n          PropTypes.string,\n          PropTypes.object,\n          PropTypes.func,\n          PropTypes.arrayOf(\n            // prettier-ignore\n            // type-coverage:ignore-next-line\n            PropTypes.any\n          )\n        ])\n      )\n    ])\n  ),\n  // Transform options:\n  sourcePos: PropTypes.bool,\n  rawSourcePos: PropTypes.bool,\n  skipHtml: PropTypes.bool,\n  includeElementIndex: PropTypes.bool,\n  transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n  linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n  transformImageUri: PropTypes.func,\n  components: PropTypes.object\n}\n","export default function _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport React from 'react'; // Get all possible permutations of all power sets\n//\n// Super simple, non-algorithmic solution since the\n// number of class names will not be greater than 4\n\nfunction powerSetPermutations(arr) {\n  var arrLength = arr.length;\n  if (arrLength === 0 || arrLength === 1) return arr;\n\n  if (arrLength === 2) {\n    // prettier-ignore\n    return [arr[0], arr[1], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0])];\n  }\n\n  if (arrLength === 3) {\n    return [arr[0], arr[1], arr[2], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n  }\n\n  if (arrLength >= 4) {\n    // Currently does not support more than 4 extra\n    // class names (after `.token` has been removed)\n    return [arr[0], arr[1], arr[2], arr[3], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n  }\n}\n\nvar classNameCombinations = {};\n\nfunction getClassNameCombinations(classNames) {\n  if (classNames.length === 0 || classNames.length === 1) return classNames;\n  var key = classNames.join('.');\n\n  if (!classNameCombinations[key]) {\n    classNameCombinations[key] = powerSetPermutations(classNames);\n  }\n\n  return classNameCombinations[key];\n}\n\nexport function createStyleObject(classNames) {\n  var elementStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var stylesheet = arguments.length > 2 ? arguments[2] : undefined;\n  var nonTokenClassNames = classNames.filter(function (className) {\n    return className !== 'token';\n  });\n  var classNamesCombinations = getClassNameCombinations(nonTokenClassNames);\n  return classNamesCombinations.reduce(function (styleObject, className) {\n    return _objectSpread(_objectSpread({}, styleObject), stylesheet[className]);\n  }, elementStyle);\n}\nexport function createClassNameString(classNames) {\n  return classNames.join(' ');\n}\nexport function createChildren(stylesheet, useInlineStyles) {\n  var childrenCount = 0;\n  return function (children) {\n    childrenCount += 1;\n    return children.map(function (child, i) {\n      return createElement({\n        node: child,\n        stylesheet: stylesheet,\n        useInlineStyles: useInlineStyles,\n        key: \"code-segment-\".concat(childrenCount, \"-\").concat(i)\n      });\n    });\n  };\n}\nexport default function createElement(_ref) {\n  var node = _ref.node,\n      stylesheet = _ref.stylesheet,\n      _ref$style = _ref.style,\n      style = _ref$style === void 0 ? {} : _ref$style,\n      useInlineStyles = _ref.useInlineStyles,\n      key = _ref.key;\n  var properties = node.properties,\n      type = node.type,\n      TagName = node.tagName,\n      value = node.value;\n\n  if (type === 'text') {\n    return value;\n  } else if (TagName) {\n    var childrenCreator = createChildren(stylesheet, useInlineStyles);\n    var props;\n\n    if (!useInlineStyles) {\n      props = _objectSpread(_objectSpread({}, properties), {}, {\n        className: createClassNameString(properties.className)\n      });\n    } else {\n      var allStylesheetSelectors = Object.keys(stylesheet).reduce(function (classes, selector) {\n        selector.split('.').forEach(function (className) {\n          if (!classes.includes(className)) classes.push(className);\n        });\n        return classes;\n      }, []); // For compatibility with older versions of react-syntax-highlighter\n\n      var startingClassName = properties.className && properties.className.includes('token') ? ['token'] : [];\n      var className = properties.className && startingClassName.concat(properties.className.filter(function (className) {\n        return !allStylesheetSelectors.includes(className);\n      }));\n      props = _objectSpread(_objectSpread({}, properties), {}, {\n        className: createClassNameString(className) || undefined,\n        style: createStyleObject(properties.className, Object.assign({}, properties.style, style), stylesheet)\n      });\n    }\n\n    var children = childrenCreator(node.children);\n    return /*#__PURE__*/React.createElement(TagName, _extends({\n      key: key\n    }, props), children);\n  }\n}","export default (function (astGenerator, language) {\n  var langs = astGenerator.listLanguages();\n  return langs.indexOf(language) !== -1;\n});","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"language\", \"children\", \"style\", \"customStyle\", \"codeTagProps\", \"useInlineStyles\", \"showLineNumbers\", \"showInlineLineNumbers\", \"startingLineNumber\", \"lineNumberContainerStyle\", \"lineNumberStyle\", \"wrapLines\", \"wrapLongLines\", \"lineProps\", \"renderer\", \"PreTag\", \"CodeTag\", \"code\", \"astGenerator\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport React from 'react';\nimport createElement from './create-element';\nimport checkForListedLanguage from './checkForListedLanguage';\nvar newLineRegex = /\\n/g;\n\nfunction getNewLines(str) {\n  return str.match(newLineRegex);\n}\n\nfunction getAllLineNumbers(_ref) {\n  var lines = _ref.lines,\n      startingLineNumber = _ref.startingLineNumber,\n      style = _ref.style;\n  return lines.map(function (_, i) {\n    var number = i + startingLineNumber;\n    return /*#__PURE__*/React.createElement(\"span\", {\n      key: \"line-\".concat(i),\n      className: \"react-syntax-highlighter-line-number\",\n      style: typeof style === 'function' ? style(number) : style\n    }, \"\".concat(number, \"\\n\"));\n  });\n}\n\nfunction AllLineNumbers(_ref2) {\n  var codeString = _ref2.codeString,\n      codeStyle = _ref2.codeStyle,\n      _ref2$containerStyle = _ref2.containerStyle,\n      containerStyle = _ref2$containerStyle === void 0 ? {\n    \"float\": 'left',\n    paddingRight: '10px'\n  } : _ref2$containerStyle,\n      _ref2$numberStyle = _ref2.numberStyle,\n      numberStyle = _ref2$numberStyle === void 0 ? {} : _ref2$numberStyle,\n      startingLineNumber = _ref2.startingLineNumber;\n  return /*#__PURE__*/React.createElement(\"code\", {\n    style: Object.assign({}, codeStyle, containerStyle)\n  }, getAllLineNumbers({\n    lines: codeString.replace(/\\n$/, '').split('\\n'),\n    style: numberStyle,\n    startingLineNumber: startingLineNumber\n  }));\n}\n\nfunction getEmWidthOfNumber(num) {\n  return \"\".concat(num.toString().length, \".25em\");\n}\n\nfunction getInlineLineNumber(lineNumber, inlineLineNumberStyle) {\n  return {\n    type: 'element',\n    tagName: 'span',\n    properties: {\n      key: \"line-number--\".concat(lineNumber),\n      className: ['comment', 'linenumber', 'react-syntax-highlighter-line-number'],\n      style: inlineLineNumberStyle\n    },\n    children: [{\n      type: 'text',\n      value: lineNumber\n    }]\n  };\n}\n\nfunction assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber) {\n  // minimally necessary styling for line numbers\n  var defaultLineNumberStyle = {\n    display: 'inline-block',\n    minWidth: getEmWidthOfNumber(largestLineNumber),\n    paddingRight: '1em',\n    textAlign: 'right',\n    userSelect: 'none'\n  }; // prep custom styling\n\n  var customLineNumberStyle = typeof lineNumberStyle === 'function' ? lineNumberStyle(lineNumber) : lineNumberStyle; // combine\n\n  var assembledStyle = _objectSpread(_objectSpread({}, defaultLineNumberStyle), customLineNumberStyle);\n\n  return assembledStyle;\n}\n\nfunction createLineElement(_ref3) {\n  var children = _ref3.children,\n      lineNumber = _ref3.lineNumber,\n      lineNumberStyle = _ref3.lineNumberStyle,\n      largestLineNumber = _ref3.largestLineNumber,\n      showInlineLineNumbers = _ref3.showInlineLineNumbers,\n      _ref3$lineProps = _ref3.lineProps,\n      lineProps = _ref3$lineProps === void 0 ? {} : _ref3$lineProps,\n      _ref3$className = _ref3.className,\n      className = _ref3$className === void 0 ? [] : _ref3$className,\n      showLineNumbers = _ref3.showLineNumbers,\n      wrapLongLines = _ref3.wrapLongLines;\n  var properties = typeof lineProps === 'function' ? lineProps(lineNumber) : lineProps;\n  properties['className'] = className;\n\n  if (lineNumber && showInlineLineNumbers) {\n    var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n    children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n  }\n\n  if (wrapLongLines & showLineNumbers) {\n    properties.style = _objectSpread(_objectSpread({}, properties.style), {}, {\n      display: 'flex'\n    });\n  }\n\n  return {\n    type: 'element',\n    tagName: 'span',\n    properties: properties,\n    children: children\n  };\n}\n\nfunction flattenCodeTree(tree) {\n  var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  var newTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n  for (var i = 0; i < tree.length; i++) {\n    var node = tree[i];\n\n    if (node.type === 'text') {\n      newTree.push(createLineElement({\n        children: [node],\n        className: _toConsumableArray(new Set(className))\n      }));\n    } else if (node.children) {\n      var classNames = className.concat(node.properties.className);\n      flattenCodeTree(node.children, classNames).forEach(function (i) {\n        return newTree.push(i);\n      });\n    }\n  }\n\n  return newTree;\n}\n\nfunction processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines) {\n  var _ref4;\n\n  var tree = flattenCodeTree(codeTree.value);\n  var newTree = [];\n  var lastLineBreakIndex = -1;\n  var index = 0;\n\n  function createWrappedLine(children, lineNumber) {\n    var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n    return createLineElement({\n      children: children,\n      lineNumber: lineNumber,\n      lineNumberStyle: lineNumberStyle,\n      largestLineNumber: largestLineNumber,\n      showInlineLineNumbers: showInlineLineNumbers,\n      lineProps: lineProps,\n      className: className,\n      showLineNumbers: showLineNumbers,\n      wrapLongLines: wrapLongLines\n    });\n  }\n\n  function createUnwrappedLine(children, lineNumber) {\n    if (showLineNumbers && lineNumber && showInlineLineNumbers) {\n      var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n      children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n    }\n\n    return children;\n  }\n\n  function createLine(children, lineNumber) {\n    var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n    return wrapLines || className.length > 0 ? createWrappedLine(children, lineNumber, className) : createUnwrappedLine(children, lineNumber);\n  }\n\n  var _loop = function _loop() {\n    var node = tree[index];\n    var value = node.children[0].value;\n    var newLines = getNewLines(value);\n\n    if (newLines) {\n      var splitValue = value.split('\\n');\n      splitValue.forEach(function (text, i) {\n        var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n        var newChild = {\n          type: 'text',\n          value: \"\".concat(text, \"\\n\")\n        }; // if it's the first line\n\n        if (i === 0) {\n          var _children = tree.slice(lastLineBreakIndex + 1, index).concat(createLineElement({\n            children: [newChild],\n            className: node.properties.className\n          }));\n\n          var _line = createLine(_children, lineNumber);\n\n          newTree.push(_line); // if it's the last line\n        } else if (i === splitValue.length - 1) {\n          var stringChild = tree[index + 1] && tree[index + 1].children && tree[index + 1].children[0];\n          var lastLineInPreviousSpan = {\n            type: 'text',\n            value: \"\".concat(text)\n          };\n\n          if (stringChild) {\n            var newElem = createLineElement({\n              children: [lastLineInPreviousSpan],\n              className: node.properties.className\n            });\n            tree.splice(index + 1, 0, newElem);\n          } else {\n            var _children2 = [lastLineInPreviousSpan];\n\n            var _line2 = createLine(_children2, lineNumber, node.properties.className);\n\n            newTree.push(_line2);\n          } // if it's neither the first nor the last line\n\n        } else {\n          var _children3 = [newChild];\n\n          var _line3 = createLine(_children3, lineNumber, node.properties.className);\n\n          newTree.push(_line3);\n        }\n      });\n      lastLineBreakIndex = index;\n    }\n\n    index++;\n  };\n\n  while (index < tree.length) {\n    _loop();\n  }\n\n  if (lastLineBreakIndex !== tree.length - 1) {\n    var children = tree.slice(lastLineBreakIndex + 1, tree.length);\n\n    if (children && children.length) {\n      var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n      var line = createLine(children, lineNumber);\n      newTree.push(line);\n    }\n  }\n\n  return wrapLines ? newTree : (_ref4 = []).concat.apply(_ref4, newTree);\n}\n\nfunction defaultRenderer(_ref5) {\n  var rows = _ref5.rows,\n      stylesheet = _ref5.stylesheet,\n      useInlineStyles = _ref5.useInlineStyles;\n  return rows.map(function (node, i) {\n    return createElement({\n      node: node,\n      stylesheet: stylesheet,\n      useInlineStyles: useInlineStyles,\n      key: \"code-segement\".concat(i)\n    });\n  });\n} // only highlight.js has the highlightAuto method\n\n\nfunction isHighlightJs(astGenerator) {\n  return astGenerator && typeof astGenerator.highlightAuto !== 'undefined';\n}\n\nfunction getCodeTree(_ref6) {\n  var astGenerator = _ref6.astGenerator,\n      language = _ref6.language,\n      code = _ref6.code,\n      defaultCodeValue = _ref6.defaultCodeValue;\n\n  // figure out whether we're using lowlight/highlight or refractor/prism\n  // then attempt highlighting accordingly\n  // lowlight/highlight?\n  if (isHighlightJs(astGenerator)) {\n    var hasLanguage = checkForListedLanguage(astGenerator, language);\n\n    if (language === 'text') {\n      return {\n        value: defaultCodeValue,\n        language: 'text'\n      };\n    } else if (hasLanguage) {\n      return astGenerator.highlight(language, code);\n    } else {\n      return astGenerator.highlightAuto(code);\n    }\n  } // must be refractor/prism, then\n\n\n  try {\n    return language && language !== 'text' ? {\n      value: astGenerator.highlight(code, language)\n    } : {\n      value: defaultCodeValue\n    };\n  } catch (e) {\n    return {\n      value: defaultCodeValue\n    };\n  }\n}\n\nexport default function (defaultAstGenerator, defaultStyle) {\n  return function SyntaxHighlighter(_ref7) {\n    var language = _ref7.language,\n        children = _ref7.children,\n        _ref7$style = _ref7.style,\n        style = _ref7$style === void 0 ? defaultStyle : _ref7$style,\n        _ref7$customStyle = _ref7.customStyle,\n        customStyle = _ref7$customStyle === void 0 ? {} : _ref7$customStyle,\n        _ref7$codeTagProps = _ref7.codeTagProps,\n        codeTagProps = _ref7$codeTagProps === void 0 ? {\n      className: language ? \"language-\".concat(language) : undefined,\n      style: _objectSpread(_objectSpread({}, style['code[class*=\"language-\"]']), style[\"code[class*=\\\"language-\".concat(language, \"\\\"]\")])\n    } : _ref7$codeTagProps,\n        _ref7$useInlineStyles = _ref7.useInlineStyles,\n        useInlineStyles = _ref7$useInlineStyles === void 0 ? true : _ref7$useInlineStyles,\n        _ref7$showLineNumbers = _ref7.showLineNumbers,\n        showLineNumbers = _ref7$showLineNumbers === void 0 ? false : _ref7$showLineNumbers,\n        _ref7$showInlineLineN = _ref7.showInlineLineNumbers,\n        showInlineLineNumbers = _ref7$showInlineLineN === void 0 ? true : _ref7$showInlineLineN,\n        _ref7$startingLineNum = _ref7.startingLineNumber,\n        startingLineNumber = _ref7$startingLineNum === void 0 ? 1 : _ref7$startingLineNum,\n        lineNumberContainerStyle = _ref7.lineNumberContainerStyle,\n        _ref7$lineNumberStyle = _ref7.lineNumberStyle,\n        lineNumberStyle = _ref7$lineNumberStyle === void 0 ? {} : _ref7$lineNumberStyle,\n        wrapLines = _ref7.wrapLines,\n        _ref7$wrapLongLines = _ref7.wrapLongLines,\n        wrapLongLines = _ref7$wrapLongLines === void 0 ? false : _ref7$wrapLongLines,\n        _ref7$lineProps = _ref7.lineProps,\n        lineProps = _ref7$lineProps === void 0 ? {} : _ref7$lineProps,\n        renderer = _ref7.renderer,\n        _ref7$PreTag = _ref7.PreTag,\n        PreTag = _ref7$PreTag === void 0 ? 'pre' : _ref7$PreTag,\n        _ref7$CodeTag = _ref7.CodeTag,\n        CodeTag = _ref7$CodeTag === void 0 ? 'code' : _ref7$CodeTag,\n        _ref7$code = _ref7.code,\n        code = _ref7$code === void 0 ? (Array.isArray(children) ? children[0] : children) || '' : _ref7$code,\n        astGenerator = _ref7.astGenerator,\n        rest = _objectWithoutProperties(_ref7, _excluded);\n\n    astGenerator = astGenerator || defaultAstGenerator;\n    var allLineNumbers = showLineNumbers ? /*#__PURE__*/React.createElement(AllLineNumbers, {\n      containerStyle: lineNumberContainerStyle,\n      codeStyle: codeTagProps.style || {},\n      numberStyle: lineNumberStyle,\n      startingLineNumber: startingLineNumber,\n      codeString: code\n    }) : null;\n    var defaultPreStyle = style.hljs || style['pre[class*=\"language-\"]'] || {\n      backgroundColor: '#fff'\n    };\n    var generatorClassName = isHighlightJs(astGenerator) ? 'hljs' : 'prismjs';\n    var preProps = useInlineStyles ? Object.assign({}, rest, {\n      style: Object.assign({}, defaultPreStyle, customStyle)\n    }) : Object.assign({}, rest, {\n      className: rest.className ? \"\".concat(generatorClassName, \" \").concat(rest.className) : generatorClassName,\n      style: Object.assign({}, customStyle)\n    });\n\n    if (wrapLongLines) {\n      codeTagProps.style = _objectSpread(_objectSpread({}, codeTagProps.style), {}, {\n        whiteSpace: 'pre-wrap'\n      });\n    } else {\n      codeTagProps.style = _objectSpread(_objectSpread({}, codeTagProps.style), {}, {\n        whiteSpace: 'pre'\n      });\n    }\n\n    if (!astGenerator) {\n      return /*#__PURE__*/React.createElement(PreTag, preProps, allLineNumbers, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, code));\n    }\n    /*\n     * Some custom renderers rely on individual row elements so we need to turn wrapLines on\n     * if renderer is provided and wrapLines is undefined.\n     */\n\n\n    if (wrapLines === undefined && renderer || wrapLongLines) wrapLines = true;\n    renderer = renderer || defaultRenderer;\n    var defaultCodeValue = [{\n      type: 'text',\n      value: code\n    }];\n    var codeTree = getCodeTree({\n      astGenerator: astGenerator,\n      language: language,\n      code: code,\n      defaultCodeValue: defaultCodeValue\n    });\n\n    if (codeTree.language === null) {\n      codeTree.value = defaultCodeValue;\n    } // determine largest line number so that we can force minWidth on all linenumber elements\n\n\n    var largestLineNumber = codeTree.value.length + startingLineNumber;\n    var rows = processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines);\n    return /*#__PURE__*/React.createElement(PreTag, preProps, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, !showInlineLineNumbers && allLineNumbers, renderer({\n      rows: rows,\n      stylesheet: style,\n      useInlineStyles: useInlineStyles\n    })));\n  };\n}","export default {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"black\",\n    \"background\": \"none\",\n    \"textShadow\": \"0 1px white\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"black\",\n    \"background\": \"#f5f2f0\",\n    \"textShadow\": \"0 1px white\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#f5f2f0\",\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"slategray\"\n  },\n  \"prolog\": {\n    \"color\": \"slategray\"\n  },\n  \"doctype\": {\n    \"color\": \"slategray\"\n  },\n  \"cdata\": {\n    \"color\": \"slategray\"\n  },\n  \"punctuation\": {\n    \"color\": \"#999\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"property\": {\n    \"color\": \"#905\"\n  },\n  \"tag\": {\n    \"color\": \"#905\"\n  },\n  \"boolean\": {\n    \"color\": \"#905\"\n  },\n  \"number\": {\n    \"color\": \"#905\"\n  },\n  \"constant\": {\n    \"color\": \"#905\"\n  },\n  \"symbol\": {\n    \"color\": \"#905\"\n  },\n  \"deleted\": {\n    \"color\": \"#905\"\n  },\n  \"selector\": {\n    \"color\": \"#690\"\n  },\n  \"attr-name\": {\n    \"color\": \"#690\"\n  },\n  \"string\": {\n    \"color\": \"#690\"\n  },\n  \"char\": {\n    \"color\": \"#690\"\n  },\n  \"builtin\": {\n    \"color\": \"#690\"\n  },\n  \"inserted\": {\n    \"color\": \"#690\"\n  },\n  \"operator\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\"\n  },\n  \"entity\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\"\n  },\n  \"atrule\": {\n    \"color\": \"#07a\"\n  },\n  \"attr-value\": {\n    \"color\": \"#07a\"\n  },\n  \"keyword\": {\n    \"color\": \"#07a\"\n  },\n  \"function\": {\n    \"color\": \"#DD4A68\"\n  },\n  \"class-name\": {\n    \"color\": \"#DD4A68\"\n  },\n  \"regex\": {\n    \"color\": \"#e90\"\n  },\n  \"important\": {\n    \"color\": \"#e90\",\n    \"fontWeight\": \"bold\"\n  },\n  \"variable\": {\n    \"color\": \"#e90\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  }\n};","import highlight from './highlight';\nimport defaultStyle from './styles/prism/prism';\nimport refractor from 'refractor';\nimport supportedLanguages from './languages/prism/supported-languages';\nvar highlighter = highlight(refractor, defaultStyle);\nhighlighter.supportedLanguages = supportedLanguages;\nexport default highlighter;","//\n// This file has been auto-generated by the `npm run build-languages-prism` task\n//\nexport default ['abap', 'abnf', 'actionscript', 'ada', 'agda', 'al', 'antlr4', 'apacheconf', 'apex', 'apl', 'applescript', 'aql', 'arduino', 'arff', 'asciidoc', 'asm6502', 'asmatmel', 'aspnet', 'autohotkey', 'autoit', 'avisynth', 'avro-idl', 'bash', 'basic', 'batch', 'bbcode', 'bicep', 'birb', 'bison', 'bnf', 'brainfuck', 'brightscript', 'bro', 'bsl', 'c', 'cfscript', 'chaiscript', 'cil', 'clike', 'clojure', 'cmake', 'cobol', 'coffeescript', 'concurnas', 'coq', 'cpp', 'crystal', 'csharp', 'cshtml', 'csp', 'css-extras', 'css', 'csv', 'cypher', 'd', 'dart', 'dataweave', 'dax', 'dhall', 'diff', 'django', 'dns-zone-file', 'docker', 'dot', 'ebnf', 'editorconfig', 'eiffel', 'ejs', 'elixir', 'elm', 'erb', 'erlang', 'etlua', 'excel-formula', 'factor', 'false', 'firestore-security-rules', 'flow', 'fortran', 'fsharp', 'ftl', 'gap', 'gcode', 'gdscript', 'gedcom', 'gherkin', 'git', 'glsl', 'gml', 'gn', 'go-module', 'go', 'graphql', 'groovy', 'haml', 'handlebars', 'haskell', 'haxe', 'hcl', 'hlsl', 'hoon', 'hpkp', 'hsts', 'http', 'ichigojam', 'icon', 'icu-message-format', 'idris', 'iecst', 'ignore', 'inform7', 'ini', 'io', 'j', 'java', 'javadoc', 'javadoclike', 'javascript', 'javastacktrace', 'jexl', 'jolie', 'jq', 'js-extras', 'js-templates', 'jsdoc', 'json', 'json5', 'jsonp', 'jsstacktrace', 'jsx', 'julia', 'keepalived', 'keyman', 'kotlin', 'kumir', 'kusto', 'latex', 'latte', 'less', 'lilypond', 'liquid', 'lisp', 'livescript', 'llvm', 'log', 'lolcode', 'lua', 'magma', 'makefile', 'markdown', 'markup-templating', 'markup', 'matlab', 'maxscript', 'mel', 'mermaid', 'mizar', 'mongodb', 'monkey', 'moonscript', 'n1ql', 'n4js', 'nand2tetris-hdl', 'naniscript', 'nasm', 'neon', 'nevod', 'nginx', 'nim', 'nix', 'nsis', 'objectivec', 'ocaml', 'opencl', 'openqasm', 'oz', 'parigp', 'parser', 'pascal', 'pascaligo', 'pcaxis', 'peoplecode', 'perl', 'php-extras', 'php', 'phpdoc', 'plsql', 'powerquery', 'powershell', 'processing', 'prolog', 'promql', 'properties', 'protobuf', 'psl', 'pug', 'puppet', 'pure', 'purebasic', 'purescript', 'python', 'q', 'qml', 'qore', 'qsharp', 'r', 'racket', 'reason', 'regex', 'rego', 'renpy', 'rest', 'rip', 'roboconf', 'robotframework', 'ruby', 'rust', 'sas', 'sass', 'scala', 'scheme', 'scss', 'shell-session', 'smali', 'smalltalk', 'smarty', 'sml', 'solidity', 'solution-file', 'soy', 'sparql', 'splunk-spl', 'sqf', 'sql', 'squirrel', 'stan', 'stylus', 'swift', 'systemd', 't4-cs', 't4-templating', 't4-vb', 'tap', 'tcl', 'textile', 'toml', 'tremor', 'tsx', 'tt2', 'turtle', 'twig', 'typescript', 'typoscript', 'unrealscript', 'uorazor', 'uri', 'v', 'vala', 'vbnet', 'velocity', 'verilog', 'vhdl', 'vim', 'visual-basic', 'warpscript', 'wasm', 'web-idl', 'wiki', 'wolfram', 'wren', 'xeora', 'xml-doc', 'xojo', 'xquery', 'yaml', 'yang', 'zig'];","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n  asciiAlpha,\n  asciiAlphanumeric,\n  asciiControl,\n  asciiDigit,\n  markdownLineEndingOrSpace,\n  markdownLineEnding,\n  unicodePunctuation,\n  unicodeWhitespace\n} from 'micromark-util-character'\nconst www = {\n  tokenize: tokenizeWww,\n  partial: true\n}\nconst domain = {\n  tokenize: tokenizeDomain,\n  partial: true\n}\nconst path = {\n  tokenize: tokenizePath,\n  partial: true\n}\nconst punctuation = {\n  tokenize: tokenizePunctuation,\n  partial: true\n}\nconst namedCharacterReference = {\n  tokenize: tokenizeNamedCharacterReference,\n  partial: true\n}\nconst wwwAutolink = {\n  tokenize: tokenizeWwwAutolink,\n  previous: previousWww\n}\nconst httpAutolink = {\n  tokenize: tokenizeHttpAutolink,\n  previous: previousHttp\n}\nconst emailAutolink = {\n  tokenize: tokenizeEmailAutolink,\n  previous: previousEmail\n}\n/** @type {ConstructRecord} */\n\nconst text = {}\n/** @type {Extension} */\n\nexport const gfmAutolinkLiteral = {\n  text\n}\nlet code = 48 // Add alphanumerics.\n\nwhile (code < 123) {\n  text[code] = emailAutolink\n  code++\n  if (code === 58) code = 65\n  else if (code === 91) code = 97\n}\n\ntext[43] = emailAutolink\ntext[45] = emailAutolink\ntext[46] = emailAutolink\ntext[95] = emailAutolink\ntext[72] = [emailAutolink, httpAutolink]\ntext[104] = [emailAutolink, httpAutolink]\ntext[87] = [emailAutolink, wwwAutolink]\ntext[119] = [emailAutolink, wwwAutolink]\n/** @type {Tokenizer} */\n\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n  const self = this\n  /** @type {boolean} */\n\n  let hasDot\n  /** @type {boolean|undefined} */\n\n  let hasDigitInLastSegment\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (\n      !gfmAtext(code) ||\n      !previousEmail(self.previous) ||\n      previousUnbalanced(self.events)\n    ) {\n      return nok(code)\n    }\n\n    effects.enter('literalAutolink')\n    effects.enter('literalAutolinkEmail')\n    return atext(code)\n  }\n  /** @type {State} */\n\n  function atext(code) {\n    if (gfmAtext(code)) {\n      effects.consume(code)\n      return atext\n    }\n\n    if (code === 64) {\n      effects.consume(code)\n      return label\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function label(code) {\n    if (code === 46) {\n      return effects.check(punctuation, done, dotContinuation)(code)\n    }\n\n    if (code === 45 || code === 95) {\n      return effects.check(punctuation, nok, dashOrUnderscoreContinuation)(code)\n    }\n\n    if (asciiAlphanumeric(code)) {\n      if (!hasDigitInLastSegment && asciiDigit(code)) {\n        hasDigitInLastSegment = true\n      }\n\n      effects.consume(code)\n      return label\n    }\n\n    return done(code)\n  }\n  /** @type {State} */\n\n  function dotContinuation(code) {\n    effects.consume(code)\n    hasDot = true\n    hasDigitInLastSegment = undefined\n    return label\n  }\n  /** @type {State} */\n\n  function dashOrUnderscoreContinuation(code) {\n    effects.consume(code)\n    return afterDashOrUnderscore\n  }\n  /** @type {State} */\n\n  function afterDashOrUnderscore(code) {\n    if (code === 46) {\n      return effects.check(punctuation, nok, dotContinuation)(code)\n    }\n\n    return label(code)\n  }\n  /** @type {State} */\n\n  function done(code) {\n    if (hasDot && !hasDigitInLastSegment) {\n      effects.exit('literalAutolinkEmail')\n      effects.exit('literalAutolink')\n      return ok(code)\n    }\n\n    return nok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n  const self = this\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (\n      (code !== 87 && code !== 119) ||\n      !previousWww(self.previous) ||\n      previousUnbalanced(self.events)\n    ) {\n      return nok(code)\n    }\n\n    effects.enter('literalAutolink')\n    effects.enter('literalAutolinkWww') // For `www.` we check instead of attempt, because when it matches, GH\n    // treats it as part of a domain (yes, it says a valid domain must come\n    // after `www.`, but that’s not how it’s implemented by them).\n\n    return effects.check(\n      www,\n      effects.attempt(domain, effects.attempt(path, done), nok),\n      nok\n    )(code)\n  }\n  /** @type {State} */\n\n  function done(code) {\n    effects.exit('literalAutolinkWww')\n    effects.exit('literalAutolink')\n    return ok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHttpAutolink(effects, ok, nok) {\n  const self = this\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (\n      (code !== 72 && code !== 104) ||\n      !previousHttp(self.previous) ||\n      previousUnbalanced(self.events)\n    ) {\n      return nok(code)\n    }\n\n    effects.enter('literalAutolink')\n    effects.enter('literalAutolinkHttp')\n    effects.consume(code)\n    return t1\n  }\n  /** @type {State} */\n\n  function t1(code) {\n    if (code === 84 || code === 116) {\n      effects.consume(code)\n      return t2\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function t2(code) {\n    if (code === 84 || code === 116) {\n      effects.consume(code)\n      return p\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function p(code) {\n    if (code === 80 || code === 112) {\n      effects.consume(code)\n      return s\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function s(code) {\n    if (code === 83 || code === 115) {\n      effects.consume(code)\n      return colon\n    }\n\n    return colon(code)\n  }\n  /** @type {State} */\n\n  function colon(code) {\n    if (code === 58) {\n      effects.consume(code)\n      return slash1\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function slash1(code) {\n    if (code === 47) {\n      effects.consume(code)\n      return slash2\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function slash2(code) {\n    if (code === 47) {\n      effects.consume(code)\n      return after\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function after(code) {\n    return code === null ||\n      asciiControl(code) ||\n      unicodeWhitespace(code) ||\n      unicodePunctuation(code)\n      ? nok(code)\n      : effects.attempt(domain, effects.attempt(path, done), nok)(code)\n  }\n  /** @type {State} */\n\n  function done(code) {\n    effects.exit('literalAutolinkHttp')\n    effects.exit('literalAutolink')\n    return ok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeWww(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.consume(code)\n    return w2\n  }\n  /** @type {State} */\n\n  function w2(code) {\n    if (code === 87 || code === 119) {\n      effects.consume(code)\n      return w3\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function w3(code) {\n    if (code === 87 || code === 119) {\n      effects.consume(code)\n      return dot\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function dot(code) {\n    if (code === 46) {\n      effects.consume(code)\n      return after\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function after(code) {\n    return code === null || markdownLineEnding(code) ? nok(code) : ok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDomain(effects, ok, nok) {\n  /** @type {boolean|undefined} */\n  let hasUnderscoreInLastSegment\n  /** @type {boolean|undefined} */\n\n  let hasUnderscoreInLastLastSegment\n  return domain\n  /** @type {State} */\n\n  function domain(code) {\n    if (code === 38) {\n      return effects.check(\n        namedCharacterReference,\n        done,\n        punctuationContinuation\n      )(code)\n    }\n\n    if (code === 46 || code === 95) {\n      return effects.check(punctuation, done, punctuationContinuation)(code)\n    } // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n    // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n    // so that’s Unicode.\n    // Instead of some new production for Unicode alphanumerics, markdown\n    // already has that for Unicode punctuation and whitespace, so use those.\n\n    if (\n      code === null ||\n      asciiControl(code) ||\n      unicodeWhitespace(code) ||\n      (code !== 45 && unicodePunctuation(code))\n    ) {\n      return done(code)\n    }\n\n    effects.consume(code)\n    return domain\n  }\n  /** @type {State} */\n\n  function punctuationContinuation(code) {\n    if (code === 46) {\n      hasUnderscoreInLastLastSegment = hasUnderscoreInLastSegment\n      hasUnderscoreInLastSegment = undefined\n      effects.consume(code)\n      return domain\n    }\n\n    if (code === 95) hasUnderscoreInLastSegment = true\n    effects.consume(code)\n    return domain\n  }\n  /** @type {State} */\n\n  function done(code) {\n    if (!hasUnderscoreInLastLastSegment && !hasUnderscoreInLastSegment) {\n      return ok(code)\n    }\n\n    return nok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizePath(effects, ok) {\n  let balance = 0\n  return inPath\n  /** @type {State} */\n\n  function inPath(code) {\n    if (code === 38) {\n      return effects.check(\n        namedCharacterReference,\n        ok,\n        continuedPunctuation\n      )(code)\n    }\n\n    if (code === 40) {\n      balance++\n    }\n\n    if (code === 41) {\n      return effects.check(\n        punctuation,\n        parenAtPathEnd,\n        continuedPunctuation\n      )(code)\n    }\n\n    if (pathEnd(code)) {\n      return ok(code)\n    }\n\n    if (trailingPunctuation(code)) {\n      return effects.check(punctuation, ok, continuedPunctuation)(code)\n    }\n\n    effects.consume(code)\n    return inPath\n  }\n  /** @type {State} */\n\n  function continuedPunctuation(code) {\n    effects.consume(code)\n    return inPath\n  }\n  /** @type {State} */\n\n  function parenAtPathEnd(code) {\n    balance--\n    return balance < 0 ? ok(code) : continuedPunctuation(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNamedCharacterReference(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.consume(code)\n    return inside\n  }\n  /** @type {State} */\n\n  function inside(code) {\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      return inside\n    }\n\n    if (code === 59) {\n      effects.consume(code)\n      return after\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function after(code) {\n    // If the named character reference is followed by the end of the path, it’s\n    // not continued punctuation.\n    return pathEnd(code) ? ok(code) : nok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizePunctuation(effects, ok, nok) {\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.consume(code)\n    return after\n  }\n  /** @type {State} */\n\n  function after(code) {\n    // Check the next.\n    if (trailingPunctuation(code)) {\n      effects.consume(code)\n      return after\n    } // If the punctuation marker is followed by the end of the path, it’s not\n    // continued punctuation.\n\n    return pathEnd(code) ? ok(code) : nok(code)\n  }\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction trailingPunctuation(code) {\n  return (\n    code === 33 ||\n    code === 34 ||\n    code === 39 ||\n    code === 41 ||\n    code === 42 ||\n    code === 44 ||\n    code === 46 ||\n    code === 58 ||\n    code === 59 ||\n    code === 60 ||\n    code === 63 ||\n    code === 95 ||\n    code === 126\n  )\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction pathEnd(code) {\n  return code === null || code === 60 || markdownLineEndingOrSpace(code)\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction gfmAtext(code) {\n  return (\n    code === 43 ||\n    code === 45 ||\n    code === 46 ||\n    code === 95 ||\n    asciiAlphanumeric(code)\n  )\n}\n/** @type {Previous} */\n\nfunction previousWww(code) {\n  return (\n    code === null ||\n    code === 40 ||\n    code === 42 ||\n    code === 95 ||\n    code === 126 ||\n    markdownLineEndingOrSpace(code)\n  )\n}\n/** @type {Previous} */\n\nfunction previousHttp(code) {\n  return code === null || !asciiAlpha(code)\n}\n/** @type {Previous} */\n\nfunction previousEmail(code) {\n  return code !== 47 && previousHttp(code)\n}\n/**\n * @param {Array<Event>} events\n * @returns {boolean}\n */\n\nfunction previousUnbalanced(events) {\n  let index = events.length\n  let result = false\n\n  while (index--) {\n    const token = events[index][1]\n\n    if (\n      (token.type === 'labelLink' || token.type === 'labelImage') &&\n      !token._balanced\n    ) {\n      result = true\n      break\n    } // @ts-expect-error If we’ve seen this token, and it was marked as not\n    // having any unbalanced bracket before it, we can exit.\n\n    if (token._gfmAutolinkLiteralWalkedInto) {\n      result = false\n      break\n    }\n  }\n\n  if (events.length > 0 && !result) {\n    // @ts-expect-error Mark the last token as “walked into” w/o finding\n    // anything.\n    events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true\n  }\n\n  return result\n}\n","export default {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#e3eaf2\",\n    \"background\": \"none\",\n    \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#e3eaf2\",\n    \"background\": \"#111b27\",\n    \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \"0.5em 0\",\n    \"overflow\": \"auto\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#111b27\",\n    \"padding\": \"0.1em 0.3em\",\n    \"borderRadius\": \"0.3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"prolog\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"doctype\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"cdata\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"punctuation\": {\n    \"color\": \"#e3eaf2\"\n  },\n  \"delimiter.important\": {\n    \"color\": \"#66cccc\",\n    \"fontWeight\": \"inherit\"\n  },\n  \"selector.parent\": {\n    \"color\": \"#66cccc\"\n  },\n  \"tag\": {\n    \"color\": \"#66cccc\"\n  },\n  \"tag.punctuation\": {\n    \"color\": \"#66cccc\"\n  },\n  \"attr-name\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"boolean\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"boolean.important\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"number\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"constant\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"selector.attribute\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"class-name\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"key\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"parameter\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"property\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"property-access\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"variable\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"attr-value\": {\n    \"color\": \"#91d076\"\n  },\n  \"inserted\": {\n    \"color\": \"#91d076\"\n  },\n  \"color\": {\n    \"color\": \"#91d076\"\n  },\n  \"selector.value\": {\n    \"color\": \"#91d076\"\n  },\n  \"string\": {\n    \"color\": \"#91d076\"\n  },\n  \"string.url-link\": {\n    \"color\": \"#91d076\"\n  },\n  \"builtin\": {\n    \"color\": \"#f4adf4\"\n  },\n  \"keyword-array\": {\n    \"color\": \"#f4adf4\"\n  },\n  \"package\": {\n    \"color\": \"#f4adf4\"\n  },\n  \"regex\": {\n    \"color\": \"#f4adf4\"\n  },\n  \"function\": {\n    \"color\": \"#c699e3\"\n  },\n  \"selector.class\": {\n    \"color\": \"#c699e3\"\n  },\n  \"selector.id\": {\n    \"color\": \"#c699e3\"\n  },\n  \"atrule.rule\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"combinator\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"keyword\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"operator\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"pseudo-class\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"pseudo-element\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"selector\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"unit\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"deleted\": {\n    \"color\": \"#cd6660\"\n  },\n  \"important\": {\n    \"color\": \"#cd6660\",\n    \"fontWeight\": \"bold\"\n  },\n  \"keyword-this\": {\n    \"color\": \"#6cb8e6\",\n    \"fontWeight\": \"bold\"\n  },\n  \"this\": {\n    \"color\": \"#6cb8e6\",\n    \"fontWeight\": \"bold\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"entity\": {\n    \"cursor\": \"help\"\n  },\n  \".language-markdown .token.title\": {\n    \"color\": \"#6cb8e6\",\n    \"fontWeight\": \"bold\"\n  },\n  \".language-markdown .token.title .token.punctuation\": {\n    \"color\": \"#6cb8e6\",\n    \"fontWeight\": \"bold\"\n  },\n  \".language-markdown .token.blockquote.punctuation\": {\n    \"color\": \"#f4adf4\"\n  },\n  \".language-markdown .token.code\": {\n    \"color\": \"#66cccc\"\n  },\n  \".language-markdown .token.hr.punctuation\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \".language-markdown .token.url .token.content\": {\n    \"color\": \"#91d076\"\n  },\n  \".language-markdown .token.url-link\": {\n    \"color\": \"#e6d37a\"\n  },\n  \".language-markdown .token.list.punctuation\": {\n    \"color\": \"#f4adf4\"\n  },\n  \".language-markdown .token.table-header\": {\n    \"color\": \"#e3eaf2\"\n  },\n  \".language-json .token.operator\": {\n    \"color\": \"#e3eaf2\"\n  },\n  \".language-scss .token.variable\": {\n    \"color\": \"#66cccc\"\n  },\n  \"token.tab:not(:empty):before\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"token.cr:before\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"token.lf:before\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"token.space:before\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6da\",\n    \"textDecoration\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6da\",\n    \"textDecoration\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6da\",\n    \"textDecoration\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6da\",\n    \"textDecoration\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#8da1b9\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#8da1b9\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#8da1b9\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"linear-gradient(to right, #3c526d5f 70%, #3c526d55)\"\n  },\n  \".line-highlight.line-highlight:before\": {\n    \"backgroundColor\": \"#8da1b9\",\n    \"color\": \"#111b27\",\n    \"boxShadow\": \"0 1px #3c526d\"\n  },\n  \".line-highlight.line-highlight[data-end]:after\": {\n    \"backgroundColor\": \"#8da1b9\",\n    \"color\": \"#111b27\",\n    \"boxShadow\": \"0 1px #3c526d\"\n  },\n  \"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before\": {\n    \"backgroundColor\": \"#8da1b918\"\n  },\n  \".line-numbers.line-numbers .line-numbers-rows\": {\n    \"borderRight\": \"1px solid #0b121b\",\n    \"background\": \"#0b121b7a\"\n  },\n  \".line-numbers .line-numbers-rows > span:before\": {\n    \"color\": \"#8da1b9da\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-1\": {\n    \"color\": \"#e6d37a\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-5\": {\n    \"color\": \"#e6d37a\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-9\": {\n    \"color\": \"#e6d37a\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-2\": {\n    \"color\": \"#f4adf4\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-6\": {\n    \"color\": \"#f4adf4\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-10\": {\n    \"color\": \"#f4adf4\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-3\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-7\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-11\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-4\": {\n    \"color\": \"#c699e3\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-8\": {\n    \"color\": \"#c699e3\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-12\": {\n    \"color\": \"#c699e3\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"#cd66601f\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"#cd66601f\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"#91d0761f\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"#91d0761f\"\n  },\n  \".command-line .command-line-prompt\": {\n    \"borderRight\": \"1px solid #0b121b\"\n  },\n  \".command-line .command-line-prompt > span:before\": {\n    \"color\": \"#8da1b9da\"\n  }\n};","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {blankLine} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n  markdownLineEnding,\n  markdownLineEndingOrSpace\n} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nconst indent = {\n  tokenize: tokenizeIndent,\n  partial: true\n}\n/**\n * @returns {Extension}\n */\n\nexport function gfmFootnote() {\n  /** @type {Extension} */\n  return {\n    document: {\n      [91]: {\n        tokenize: tokenizeDefinitionStart,\n        continuation: {\n          tokenize: tokenizeDefinitionContinuation\n        },\n        exit: gfmFootnoteDefinitionEnd\n      }\n    },\n    text: {\n      [91]: {\n        tokenize: tokenizeGfmFootnoteCall\n      },\n      [93]: {\n        add: 'after',\n        tokenize: tokenizePotentialGfmFootnoteCall,\n        resolveTo: resolveToPotentialGfmFootnoteCall\n      }\n    }\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n  const self = this\n  let index = self.events.length\n  /** @type {Array<string>} */\n  // @ts-expect-error It’s fine!\n\n  const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n  /** @type {Token} */\n\n  let labelStart // Find an opening.\n\n  while (index--) {\n    const token = self.events[index][1]\n\n    if (token.type === 'labelImage') {\n      labelStart = token\n      break\n    } // Exit if we’ve walked far enough.\n\n    if (\n      token.type === 'gfmFootnoteCall' ||\n      token.type === 'labelLink' ||\n      token.type === 'label' ||\n      token.type === 'image' ||\n      token.type === 'link'\n    ) {\n      break\n    }\n  }\n\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    if (!labelStart || !labelStart._balanced) {\n      return nok(code)\n    }\n\n    const id = normalizeIdentifier(\n      self.sliceSerialize({\n        start: labelStart.end,\n        end: self.now()\n      })\n    )\n\n    if (id.charCodeAt(0) !== 94 || !defined.includes(id.slice(1))) {\n      return nok(code)\n    }\n\n    effects.enter('gfmFootnoteCallLabelMarker')\n    effects.consume(code)\n    effects.exit('gfmFootnoteCallLabelMarker')\n    return ok(code)\n  }\n}\n/** @type {Resolver} */\n\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n  let index = events.length\n  /** @type {Token|undefined} */\n\n  let labelStart // Find an opening.\n\n  while (index--) {\n    if (\n      events[index][1].type === 'labelImage' &&\n      events[index][0] === 'enter'\n    ) {\n      labelStart = events[index][1]\n      break\n    }\n  }\n\n  // Change the `labelImageMarker` to a `data`.\n  events[index + 1][1].type = 'data'\n  events[index + 3][1].type = 'gfmFootnoteCallLabelMarker' // The whole (without `!`):\n\n  const call = {\n    type: 'gfmFootnoteCall',\n    start: Object.assign({}, events[index + 3][1].start),\n    end: Object.assign({}, events[events.length - 1][1].end)\n  } // The `^` marker\n\n  const marker = {\n    type: 'gfmFootnoteCallMarker',\n    start: Object.assign({}, events[index + 3][1].end),\n    end: Object.assign({}, events[index + 3][1].end)\n  } // Increment the end 1 character.\n\n  marker.end.column++\n  marker.end.offset++\n  marker.end._bufferIndex++\n  const string = {\n    type: 'gfmFootnoteCallString',\n    start: Object.assign({}, marker.end),\n    end: Object.assign({}, events[events.length - 1][1].start)\n  }\n  const chunk = {\n    type: 'chunkString',\n    contentType: 'string',\n    start: Object.assign({}, string.start),\n    end: Object.assign({}, string.end)\n  }\n  /** @type {Array<Event>} */\n\n  const replacement = [\n    // Take the `labelImageMarker` (now `data`, the `!`)\n    events[index + 1],\n    events[index + 2],\n    ['enter', call, context], // The `[`\n    events[index + 3],\n    events[index + 4], // The `^`.\n    ['enter', marker, context],\n    ['exit', marker, context], // Everything in between.\n    ['enter', string, context],\n    ['enter', chunk, context],\n    ['exit', chunk, context],\n    ['exit', string, context], // The ending (`]`, properly parsed and labelled).\n    events[events.length - 2],\n    events[events.length - 1],\n    ['exit', call, context]\n  ]\n  events.splice(index, events.length - index + 1, ...replacement)\n  return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n  const self = this\n  /** @type {Array<string>} */\n  // @ts-expect-error It’s fine!\n\n  const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n  let size = 0\n  /** @type {boolean} */\n\n  let data\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('gfmFootnoteCall')\n    effects.enter('gfmFootnoteCallLabelMarker')\n    effects.consume(code)\n    effects.exit('gfmFootnoteCallLabelMarker')\n    return callStart\n  }\n  /** @type {State} */\n\n  function callStart(code) {\n    if (code !== 94) return nok(code)\n    effects.enter('gfmFootnoteCallMarker')\n    effects.consume(code)\n    effects.exit('gfmFootnoteCallMarker')\n    effects.enter('gfmFootnoteCallString')\n    effects.enter('chunkString').contentType = 'string'\n    return callData\n  }\n  /** @type {State} */\n\n  function callData(code) {\n    /** @type {Token} */\n    let token\n\n    if (code === null || code === 91 || size++ > 999) {\n      return nok(code)\n    }\n\n    if (code === 93) {\n      if (!data) {\n        return nok(code)\n      }\n\n      effects.exit('chunkString')\n      token = effects.exit('gfmFootnoteCallString')\n      return defined.includes(normalizeIdentifier(self.sliceSerialize(token)))\n        ? end(code)\n        : nok(code)\n    }\n\n    effects.consume(code)\n\n    if (!markdownLineEndingOrSpace(code)) {\n      data = true\n    }\n\n    return code === 92 ? callEscape : callData\n  }\n  /** @type {State} */\n\n  function callEscape(code) {\n    if (code === 91 || code === 92 || code === 93) {\n      effects.consume(code)\n      size++\n      return callData\n    }\n\n    return callData(code)\n  }\n  /** @type {State} */\n\n  function end(code) {\n    effects.enter('gfmFootnoteCallLabelMarker')\n    effects.consume(code)\n    effects.exit('gfmFootnoteCallLabelMarker')\n    effects.exit('gfmFootnoteCall')\n    return ok\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n  const self = this\n  /** @type {Array<string>} */\n  // @ts-expect-error It’s fine!\n\n  const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n  /** @type {string} */\n\n  let identifier\n  let size = 0\n  /** @type {boolean|undefined} */\n\n  let data\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    effects.enter('gfmFootnoteDefinition')._container = true\n    effects.enter('gfmFootnoteDefinitionLabel')\n    effects.enter('gfmFootnoteDefinitionLabelMarker')\n    effects.consume(code)\n    effects.exit('gfmFootnoteDefinitionLabelMarker')\n    return labelStart\n  }\n  /** @type {State} */\n\n  function labelStart(code) {\n    if (code === 94) {\n      effects.enter('gfmFootnoteDefinitionMarker')\n      effects.consume(code)\n      effects.exit('gfmFootnoteDefinitionMarker')\n      effects.enter('gfmFootnoteDefinitionLabelString')\n      return atBreak\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function atBreak(code) {\n    /** @type {Token} */\n    let token\n\n    if (code === null || code === 91 || size > 999) {\n      return nok(code)\n    }\n\n    if (code === 93) {\n      if (!data) {\n        return nok(code)\n      }\n\n      token = effects.exit('gfmFootnoteDefinitionLabelString')\n      identifier = normalizeIdentifier(self.sliceSerialize(token))\n      effects.enter('gfmFootnoteDefinitionLabelMarker')\n      effects.consume(code)\n      effects.exit('gfmFootnoteDefinitionLabelMarker')\n      effects.exit('gfmFootnoteDefinitionLabel')\n      return labelAfter\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      size++\n      return atBreak\n    }\n\n    effects.enter('chunkString').contentType = 'string'\n    return label(code)\n  }\n  /** @type {State} */\n\n  function label(code) {\n    if (\n      code === null ||\n      markdownLineEnding(code) ||\n      code === 91 ||\n      code === 93 ||\n      size > 999\n    ) {\n      effects.exit('chunkString')\n      return atBreak(code)\n    }\n\n    if (!markdownLineEndingOrSpace(code)) {\n      data = true\n    }\n\n    size++\n    effects.consume(code)\n    return code === 92 ? labelEscape : label\n  }\n  /** @type {State} */\n\n  function labelEscape(code) {\n    if (code === 91 || code === 92 || code === 93) {\n      effects.consume(code)\n      size++\n      return label\n    }\n\n    return label(code)\n  }\n  /** @type {State} */\n\n  function labelAfter(code) {\n    if (code === 58) {\n      effects.enter('definitionMarker')\n      effects.consume(code)\n      effects.exit('definitionMarker') // Any whitespace after the marker is eaten, forming indented code\n      // is not possible.\n      // No space is also fine, just like a block quote marker.\n\n      return factorySpace(effects, done, 'gfmFootnoteDefinitionWhitespace')\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function done(code) {\n    if (!defined.includes(identifier)) {\n      defined.push(identifier)\n    }\n\n    return ok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n  // Either a blank line, which is okay, or an indented thing.\n  return effects.check(blankLine, ok, effects.attempt(indent, ok, nok))\n}\n/** @type {Exiter} */\n\nfunction gfmFootnoteDefinitionEnd(effects) {\n  effects.exit('gfmFootnoteDefinition')\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeIndent(effects, ok, nok) {\n  const self = this\n  return factorySpace(\n    effects,\n    afterPrefix,\n    'gfmFootnoteDefinitionIndent',\n    4 + 1\n  )\n  /** @type {State} */\n\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1]\n    return tail &&\n      tail[1].type === 'gfmFootnoteDefinitionIndent' &&\n      tail[2].sliceSerialize(tail[1], true).length === 4\n      ? ok(code)\n      : nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n/**\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean} [singleTilde=true]\n *   Whether to support strikethrough with a single tilde (`boolean`, default:\n *   `true`).\n *   Single tildes work on github.com, but are technically prohibited by the\n *   GFM spec.\n */\nimport {splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/**\n * @param {Options} [options]\n * @returns {Extension}\n */\nexport function gfmStrikethrough(options = {}) {\n  let single = options.singleTilde\n  const tokenizer = {\n    tokenize: tokenizeStrikethrough,\n    resolveAll: resolveAllStrikethrough\n  }\n\n  if (single === null || single === undefined) {\n    single = true\n  }\n\n  return {\n    text: {\n      [126]: tokenizer\n    },\n    insideSpan: {\n      null: [tokenizer]\n    },\n    attentionMarkers: {\n      null: [126]\n    }\n  }\n  /**\n   * Take events and resolve strikethrough.\n   *\n   * @type {Resolver}\n   */\n\n  function resolveAllStrikethrough(events, context) {\n    let index = -1 // Walk through all events.\n\n    while (++index < events.length) {\n      // Find a token that can close.\n      if (\n        events[index][0] === 'enter' &&\n        events[index][1].type === 'strikethroughSequenceTemporary' &&\n        events[index][1]._close\n      ) {\n        let open = index // Now walk back to find an opener.\n\n        while (open--) {\n          // Find a token that can open the closer.\n          if (\n            events[open][0] === 'exit' &&\n            events[open][1].type === 'strikethroughSequenceTemporary' &&\n            events[open][1]._open && // If the sizes are the same:\n            events[index][1].end.offset - events[index][1].start.offset ===\n              events[open][1].end.offset - events[open][1].start.offset\n          ) {\n            events[index][1].type = 'strikethroughSequence'\n            events[open][1].type = 'strikethroughSequence'\n            const strikethrough = {\n              type: 'strikethrough',\n              start: Object.assign({}, events[open][1].start),\n              end: Object.assign({}, events[index][1].end)\n            }\n            const text = {\n              type: 'strikethroughText',\n              start: Object.assign({}, events[open][1].end),\n              end: Object.assign({}, events[index][1].start)\n            } // Opening.\n\n            const nextEvents = [\n              ['enter', strikethrough, context],\n              ['enter', events[open][1], context],\n              ['exit', events[open][1], context],\n              ['enter', text, context]\n            ] // Between.\n\n            splice(\n              nextEvents,\n              nextEvents.length,\n              0,\n              resolveAll(\n                context.parser.constructs.insideSpan.null,\n                events.slice(open + 1, index),\n                context\n              )\n            ) // Closing.\n\n            splice(nextEvents, nextEvents.length, 0, [\n              ['exit', text, context],\n              ['enter', events[index][1], context],\n              ['exit', events[index][1], context],\n              ['exit', strikethrough, context]\n            ])\n            splice(events, open - 1, index - open + 3, nextEvents)\n            index = open + nextEvents.length - 2\n            break\n          }\n        }\n      }\n    }\n\n    index = -1\n\n    while (++index < events.length) {\n      if (events[index][1].type === 'strikethroughSequenceTemporary') {\n        events[index][1].type = 'data'\n      }\n    }\n\n    return events\n  }\n  /** @type {Tokenizer} */\n\n  function tokenizeStrikethrough(effects, ok, nok) {\n    const previous = this.previous\n    const events = this.events\n    let size = 0\n    return start\n    /** @type {State} */\n\n    function start(code) {\n      if (\n        previous === 126 &&\n        events[events.length - 1][1].type !== 'characterEscape'\n      ) {\n        return nok(code)\n      }\n\n      effects.enter('strikethroughSequenceTemporary')\n      return more(code)\n    }\n    /** @type {State} */\n\n    function more(code) {\n      const before = classifyCharacter(previous)\n\n      if (code === 126) {\n        // If this is the third marker, exit.\n        if (size > 1) return nok(code)\n        effects.consume(code)\n        size++\n        return more\n      }\n\n      if (size < 2 && !single) return nok(code)\n      const token = effects.exit('strikethroughSequenceTemporary')\n      const after = classifyCharacter(code)\n      token._open = !after || (after === 2 && Boolean(before))\n      token._close = !before || (before === 2 && Boolean(after))\n      return ok(code)\n    }\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n */\n\n/**\n * @typedef {'left'|'center'|'right'|'none'} Align\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n  markdownLineEnding,\n  markdownLineEndingOrSpace,\n  markdownSpace\n} from 'micromark-util-character'\n\n/** @type {Extension} */\nexport const gfmTable = {\n  flow: {\n    null: {\n      tokenize: tokenizeTable,\n      resolve: resolveTable\n    }\n  }\n}\nconst nextPrefixedOrBlank = {\n  tokenize: tokenizeNextPrefixedOrBlank,\n  partial: true\n}\n/** @type {Resolver} */\n\nfunction resolveTable(events, context) {\n  let index = -1\n  /** @type {boolean|undefined} */\n\n  let inHead\n  /** @type {boolean|undefined} */\n\n  let inDelimiterRow\n  /** @type {boolean|undefined} */\n\n  let inRow\n  /** @type {number|undefined} */\n\n  let contentStart\n  /** @type {number|undefined} */\n\n  let contentEnd\n  /** @type {number|undefined} */\n\n  let cellStart\n  /** @type {boolean|undefined} */\n\n  let seenCellInRow\n\n  while (++index < events.length) {\n    const token = events[index][1]\n\n    if (inRow) {\n      if (token.type === 'temporaryTableCellContent') {\n        contentStart = contentStart || index\n        contentEnd = index\n      }\n\n      if (\n        // Combine separate content parts into one.\n        (token.type === 'tableCellDivider' || token.type === 'tableRow') &&\n        contentEnd\n      ) {\n        const content = {\n          type: 'tableContent',\n          start: events[contentStart][1].start,\n          end: events[contentEnd][1].end\n        }\n        /** @type {Token} */\n\n        const text = {\n          type: 'chunkText',\n          start: content.start,\n          end: content.end,\n          // @ts-expect-error It’s fine.\n          contentType: 'text'\n        }\n        events.splice(\n          contentStart,\n          contentEnd - contentStart + 1,\n          ['enter', content, context],\n          ['enter', text, context],\n          ['exit', text, context],\n          ['exit', content, context]\n        )\n        index -= contentEnd - contentStart - 3\n        contentStart = undefined\n        contentEnd = undefined\n      }\n    }\n\n    if (\n      events[index][0] === 'exit' &&\n      cellStart !== undefined &&\n      cellStart + (seenCellInRow ? 0 : 1) < index &&\n      (token.type === 'tableCellDivider' ||\n        (token.type === 'tableRow' &&\n          (cellStart + 3 < index ||\n            events[cellStart][1].type !== 'whitespace')))\n    ) {\n      const cell = {\n        type: inDelimiterRow\n          ? 'tableDelimiter'\n          : inHead\n          ? 'tableHeader'\n          : 'tableData',\n        start: events[cellStart][1].start,\n        end: events[index][1].end\n      }\n      events.splice(index + (token.type === 'tableCellDivider' ? 1 : 0), 0, [\n        'exit',\n        cell,\n        context\n      ])\n      events.splice(cellStart, 0, ['enter', cell, context])\n      index += 2\n      cellStart = index + 1\n      seenCellInRow = true\n    }\n\n    if (token.type === 'tableRow') {\n      inRow = events[index][0] === 'enter'\n\n      if (inRow) {\n        cellStart = index + 1\n        seenCellInRow = false\n      }\n    }\n\n    if (token.type === 'tableDelimiterRow') {\n      inDelimiterRow = events[index][0] === 'enter'\n\n      if (inDelimiterRow) {\n        cellStart = index + 1\n        seenCellInRow = false\n      }\n    }\n\n    if (token.type === 'tableHead') {\n      inHead = events[index][0] === 'enter'\n    }\n  }\n\n  return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTable(effects, ok, nok) {\n  const self = this\n  /** @type {Array<Align>} */\n\n  const align = []\n  let tableHeaderCount = 0\n  /** @type {boolean|undefined} */\n\n  let seenDelimiter\n  /** @type {boolean|undefined} */\n\n  let hasDash\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    // @ts-expect-error Custom.\n    effects.enter('table')._align = align\n    effects.enter('tableHead')\n    effects.enter('tableRow') // If we start with a pipe, we open a cell marker.\n\n    if (code === 124) {\n      return cellDividerHead(code)\n    }\n\n    tableHeaderCount++\n    effects.enter('temporaryTableCellContent') // Can’t be space or eols at the start of a construct, so we’re in a cell.\n\n    return inCellContentHead(code)\n  }\n  /** @type {State} */\n\n  function cellDividerHead(code) {\n    effects.enter('tableCellDivider')\n    effects.consume(code)\n    effects.exit('tableCellDivider')\n    seenDelimiter = true\n    return cellBreakHead\n  }\n  /** @type {State} */\n\n  function cellBreakHead(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return atRowEndHead(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.enter('whitespace')\n      effects.consume(code)\n      return inWhitespaceHead\n    }\n\n    if (seenDelimiter) {\n      seenDelimiter = undefined\n      tableHeaderCount++\n    }\n\n    if (code === 124) {\n      return cellDividerHead(code)\n    } // Anything else is cell content.\n\n    effects.enter('temporaryTableCellContent')\n    return inCellContentHead(code)\n  }\n  /** @type {State} */\n\n  function inWhitespaceHead(code) {\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return inWhitespaceHead\n    }\n\n    effects.exit('whitespace')\n    return cellBreakHead(code)\n  }\n  /** @type {State} */\n\n  function inCellContentHead(code) {\n    // EOF, whitespace, pipe\n    if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n      effects.exit('temporaryTableCellContent')\n      return cellBreakHead(code)\n    }\n\n    effects.consume(code)\n    return code === 92 ? inCellContentEscapeHead : inCellContentHead\n  }\n  /** @type {State} */\n\n  function inCellContentEscapeHead(code) {\n    if (code === 92 || code === 124) {\n      effects.consume(code)\n      return inCellContentHead\n    } // Anything else.\n\n    return inCellContentHead(code)\n  }\n  /** @type {State} */\n\n  function atRowEndHead(code) {\n    if (code === null) {\n      return nok(code)\n    }\n\n    effects.exit('tableRow')\n    effects.exit('tableHead')\n    const originalInterrupt = self.interrupt\n    self.interrupt = true\n    return effects.attempt(\n      {\n        tokenize: tokenizeRowEnd,\n        partial: true\n      },\n      function (code) {\n        self.interrupt = originalInterrupt\n        effects.enter('tableDelimiterRow')\n        return atDelimiterRowBreak(code)\n      },\n      function (code) {\n        self.interrupt = originalInterrupt\n        return nok(code)\n      }\n    )(code)\n  }\n  /** @type {State} */\n\n  function atDelimiterRowBreak(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return rowEndDelimiter(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.enter('whitespace')\n      effects.consume(code)\n      return inWhitespaceDelimiter\n    }\n\n    if (code === 45) {\n      effects.enter('tableDelimiterFiller')\n      effects.consume(code)\n      hasDash = true\n      align.push('none')\n      return inFillerDelimiter\n    }\n\n    if (code === 58) {\n      effects.enter('tableDelimiterAlignment')\n      effects.consume(code)\n      effects.exit('tableDelimiterAlignment')\n      align.push('left')\n      return afterLeftAlignment\n    } // If we start with a pipe, we open a cell marker.\n\n    if (code === 124) {\n      effects.enter('tableCellDivider')\n      effects.consume(code)\n      effects.exit('tableCellDivider')\n      return atDelimiterRowBreak\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function inWhitespaceDelimiter(code) {\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return inWhitespaceDelimiter\n    }\n\n    effects.exit('whitespace')\n    return atDelimiterRowBreak(code)\n  }\n  /** @type {State} */\n\n  function inFillerDelimiter(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return inFillerDelimiter\n    }\n\n    effects.exit('tableDelimiterFiller')\n\n    if (code === 58) {\n      effects.enter('tableDelimiterAlignment')\n      effects.consume(code)\n      effects.exit('tableDelimiterAlignment')\n      align[align.length - 1] =\n        align[align.length - 1] === 'left' ? 'center' : 'right'\n      return afterRightAlignment\n    }\n\n    return atDelimiterRowBreak(code)\n  }\n  /** @type {State} */\n\n  function afterLeftAlignment(code) {\n    if (code === 45) {\n      effects.enter('tableDelimiterFiller')\n      effects.consume(code)\n      hasDash = true\n      return inFillerDelimiter\n    } // Anything else is not ok.\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function afterRightAlignment(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return rowEndDelimiter(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.enter('whitespace')\n      effects.consume(code)\n      return inWhitespaceDelimiter\n    } // `|`\n\n    if (code === 124) {\n      effects.enter('tableCellDivider')\n      effects.consume(code)\n      effects.exit('tableCellDivider')\n      return atDelimiterRowBreak\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function rowEndDelimiter(code) {\n    effects.exit('tableDelimiterRow') // Exit if there was no dash at all, or if the header cell count is not the\n    // delimiter cell count.\n\n    if (!hasDash || tableHeaderCount !== align.length) {\n      return nok(code)\n    }\n\n    if (code === null) {\n      return tableClose(code)\n    }\n\n    return effects.check(\n      nextPrefixedOrBlank,\n      tableClose,\n      effects.attempt(\n        {\n          tokenize: tokenizeRowEnd,\n          partial: true\n        },\n        factorySpace(effects, bodyStart, 'linePrefix', 4),\n        tableClose\n      )\n    )(code)\n  }\n  /** @type {State} */\n\n  function tableClose(code) {\n    effects.exit('table')\n    return ok(code)\n  }\n  /** @type {State} */\n\n  function bodyStart(code) {\n    effects.enter('tableBody')\n    return rowStartBody(code)\n  }\n  /** @type {State} */\n\n  function rowStartBody(code) {\n    effects.enter('tableRow') // If we start with a pipe, we open a cell marker.\n\n    if (code === 124) {\n      return cellDividerBody(code)\n    }\n\n    effects.enter('temporaryTableCellContent') // Can’t be space or eols at the start of a construct, so we’re in a cell.\n\n    return inCellContentBody(code)\n  }\n  /** @type {State} */\n\n  function cellDividerBody(code) {\n    effects.enter('tableCellDivider')\n    effects.consume(code)\n    effects.exit('tableCellDivider')\n    return cellBreakBody\n  }\n  /** @type {State} */\n\n  function cellBreakBody(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return atRowEndBody(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.enter('whitespace')\n      effects.consume(code)\n      return inWhitespaceBody\n    } // `|`\n\n    if (code === 124) {\n      return cellDividerBody(code)\n    } // Anything else is cell content.\n\n    effects.enter('temporaryTableCellContent')\n    return inCellContentBody(code)\n  }\n  /** @type {State} */\n\n  function inWhitespaceBody(code) {\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return inWhitespaceBody\n    }\n\n    effects.exit('whitespace')\n    return cellBreakBody(code)\n  }\n  /** @type {State} */\n\n  function inCellContentBody(code) {\n    // EOF, whitespace, pipe\n    if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n      effects.exit('temporaryTableCellContent')\n      return cellBreakBody(code)\n    }\n\n    effects.consume(code)\n    return code === 92 ? inCellContentEscapeBody : inCellContentBody\n  }\n  /** @type {State} */\n\n  function inCellContentEscapeBody(code) {\n    if (code === 92 || code === 124) {\n      effects.consume(code)\n      return inCellContentBody\n    } // Anything else.\n\n    return inCellContentBody(code)\n  }\n  /** @type {State} */\n\n  function atRowEndBody(code) {\n    effects.exit('tableRow')\n\n    if (code === null) {\n      return tableBodyClose(code)\n    }\n\n    return effects.check(\n      nextPrefixedOrBlank,\n      tableBodyClose,\n      effects.attempt(\n        {\n          tokenize: tokenizeRowEnd,\n          partial: true\n        },\n        factorySpace(effects, rowStartBody, 'linePrefix', 4),\n        tableBodyClose\n      )\n    )(code)\n  }\n  /** @type {State} */\n\n  function tableBodyClose(code) {\n    effects.exit('tableBody')\n    return tableClose(code)\n  }\n  /** @type {Tokenizer} */\n\n  function tokenizeRowEnd(effects, ok, nok) {\n    return start\n    /** @type {State} */\n\n    function start(code) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return factorySpace(effects, prefixed, 'linePrefix')\n    }\n    /** @type {State} */\n\n    function prefixed(code) {\n      // Blank or interrupting line.\n      if (\n        self.parser.lazy[self.now().line] ||\n        code === null ||\n        markdownLineEnding(code)\n      ) {\n        return nok(code)\n      }\n\n      const tail = self.events[self.events.length - 1] // Indented code can interrupt delimiter and body rows.\n\n      if (\n        !self.parser.constructs.disable.null.includes('codeIndented') &&\n        tail &&\n        tail[1].type === 'linePrefix' &&\n        tail[2].sliceSerialize(tail[1], true).length >= 4\n      ) {\n        return nok(code)\n      }\n\n      self._gfmTableDynamicInterruptHack = true\n      return effects.check(\n        self.parser.constructs.flow,\n        function (code) {\n          self._gfmTableDynamicInterruptHack = false\n          return nok(code)\n        },\n        function (code) {\n          self._gfmTableDynamicInterruptHack = false\n          return ok(code)\n        }\n      )(code)\n    }\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNextPrefixedOrBlank(effects, ok, nok) {\n  let size = 0\n  return start\n  /** @type {State} */\n\n  function start(code) {\n    // This is a check, so we don’t care about tokens, but we open a bogus one\n    // so we’re valid.\n    effects.enter('check') // EOL.\n\n    effects.consume(code)\n    return whitespace\n  }\n  /** @type {State} */\n\n  function whitespace(code) {\n    if (code === -1 || code === 32) {\n      effects.consume(code)\n      size++\n      return size === 4 ? ok : whitespace\n    } // EOF or whitespace\n\n    if (code === null || markdownLineEndingOrSpace(code)) {\n      return ok(code)\n    } // Anything else.\n\n    return nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n  markdownLineEndingOrSpace,\n  markdownLineEnding\n} from 'micromark-util-character'\nconst tasklistCheck = {\n  tokenize: tokenizeTasklistCheck\n}\nexport const gfmTaskListItem = {\n  text: {\n    [91]: tasklistCheck\n  }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n  const self = this\n  return open\n  /** @type {State} */\n\n  function open(code) {\n    if (\n      // Exit if there’s stuff before.\n      self.previous !== null || // Exit if not in the first content that is the first child of a list\n      // item.\n      !self._gfmTasklistFirstContentOfListItem\n    ) {\n      return nok(code)\n    }\n\n    effects.enter('taskListCheck')\n    effects.enter('taskListCheckMarker')\n    effects.consume(code)\n    effects.exit('taskListCheckMarker')\n    return inside\n  }\n  /** @type {State} */\n\n  function inside(code) {\n    // To match how GH works in comments, use `markdownSpace` (`[ \\t]`) instead\n    // of `markdownLineEndingOrSpace` (`[ \\t\\r\\n]`).\n    if (markdownLineEndingOrSpace(code)) {\n      effects.enter('taskListCheckValueUnchecked')\n      effects.consume(code)\n      effects.exit('taskListCheckValueUnchecked')\n      return close\n    }\n\n    if (code === 88 || code === 120) {\n      effects.enter('taskListCheckValueChecked')\n      effects.consume(code)\n      effects.exit('taskListCheckValueChecked')\n      return close\n    }\n\n    return nok(code)\n  }\n  /** @type {State} */\n\n  function close(code) {\n    if (code === 93) {\n      effects.enter('taskListCheckMarker')\n      effects.consume(code)\n      effects.exit('taskListCheckMarker')\n      effects.exit('taskListCheck')\n      return effects.check(\n        {\n          tokenize: spaceThenNonSpace\n        },\n        ok,\n        nok\n      )\n    }\n\n    return nok(code)\n  }\n}\n/** @type {Tokenizer} */\n\nfunction spaceThenNonSpace(effects, ok, nok) {\n  const self = this\n  return factorySpace(effects, after, 'whitespace')\n  /** @type {State} */\n\n  function after(code) {\n    const tail = self.events[self.events.length - 1]\n    return (\n      // We either found spaces…\n      ((tail && tail[1].type === 'whitespace') || // …or it was followed by a line ending, in which case, there has to be\n        // non-whitespace after that line ending, because otherwise we’d get an\n        // EOF as the content is closed with blank lines.\n        markdownLineEnding(code)) &&\n        code !== null\n        ? ok(code)\n        : nok(code)\n    )\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n */\n\nimport {\n  combineExtensions,\n  combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n  gfmAutolinkLiteral,\n  gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n  gfmStrikethrough,\n  gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n  gfmTaskListItem,\n  gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Support GFM or markdown on github.com.\n *\n * @param {Options} [options]\n * @returns {Extension}\n */\nexport function gfm(options) {\n  return combineExtensions([\n    gfmAutolinkLiteral,\n    gfmFootnote(),\n    gfmStrikethrough(options),\n    gfmTable,\n    gfmTaskListItem\n  ])\n}\n\n/**\n * Support to compile GFM to HTML.\n *\n * @param {HtmlOptions} [options]\n * @returns {HtmlExtension}\n */\nexport function gfmHtml(options) {\n  return combineHtmlExtensions([\n    gfmAutolinkLiteralHtml,\n    gfmFootnoteHtml(options),\n    gfmStrikethroughHtml,\n    gfmTableHtml,\n    gfmTagfilterHtml,\n    gfmTaskListItemHtml\n  ])\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n *   Value to search in.\n * @param {string} character\n *   Character (or substring) to look for.\n * @return {number}\n *   Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n  const source = String(value)\n\n  if (typeof character !== 'string') {\n    throw new TypeError('Expected character')\n  }\n\n  let count = 0\n  let index = source.indexOf(character)\n\n  while (index !== -1) {\n    count++\n    index = source.indexOf(character, index + character.length)\n  }\n\n  return count\n}\n","/**\n * @typedef Options\n *   Configuration (optional).\n * @property {Test} [ignore]\n *   `unist-util-is` test used to assert parents\n *\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Text} Text\n * @typedef {Content|Root} Node\n * @typedef {Exclude<Extract<Node, import('mdast').Parent>, Root>} Parent\n *\n * @typedef {import('unist-util-visit-parents').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n *\n * @typedef RegExpMatchObject\n * @property {number} index\n * @property {string} input\n * @property {[Root, ...Array<Parent>, Text]} stack\n *\n * @typedef {string|RegExp} Find\n * @typedef {string|ReplaceFunction} Replace\n *\n * @typedef {[Find, Replace]} FindAndReplaceTuple\n * @typedef {Record<string, Replace>} FindAndReplaceSchema\n * @typedef {Array<FindAndReplaceTuple>} FindAndReplaceList\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * @typedef {Array<Pair>} Pairs\n */\n\n/**\n * @callback ReplaceFunction\n * @param {...any} parameters\n * @returns {Array<PhrasingContent>|PhrasingContent|string|false|undefined|null}\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param tree mdast tree\n * @param find Value to find and remove. When `string`, escaped and made into a global `RegExp`\n * @param [replace] Value to insert.\n *   * When `string`, turned into a Text node.\n *   * When `Function`, called with the results of calling `RegExp.exec` as\n *     arguments, in which case it can return a single or a list of `Node`,\n *     a `string` (which is wrapped in a `Text` node), or `false` to not replace\n * @param [options] Configuration.\n */\nexport const findAndReplace =\n  /**\n   * @type {(\n   *   ((tree: Node, find: Find, replace?: Replace, options?: Options) => Node) &\n   *   ((tree: Node, schema: FindAndReplaceSchema|FindAndReplaceList, options?: Options) => Node)\n   * )}\n   **/\n  (\n    /**\n     * @param {Node} tree\n     * @param {Find|FindAndReplaceSchema|FindAndReplaceList} find\n     * @param {Replace|Options} [replace]\n     * @param {Options} [options]\n     */\n    function (tree, find, replace, options) {\n      /** @type {Options|undefined} */\n      let settings\n      /** @type {FindAndReplaceSchema|FindAndReplaceList} */\n      let schema\n\n      if (typeof find === 'string' || find instanceof RegExp) {\n        // @ts-expect-error don’t expect options twice.\n        schema = [[find, replace]]\n        settings = options\n      } else {\n        schema = find\n        // @ts-expect-error don’t expect replace twice.\n        settings = replace\n      }\n\n      if (!settings) {\n        settings = {}\n      }\n\n      const ignored = convert(settings.ignore || [])\n      const pairs = toPairs(schema)\n      let pairIndex = -1\n\n      while (++pairIndex < pairs.length) {\n        visitParents(tree, 'text', visitor)\n      }\n\n      return tree\n\n      /** @type {import('unist-util-visit-parents/complex-types').BuildVisitor<Root, 'text'>} */\n      function visitor(node, parents) {\n        let index = -1\n        /** @type {Parent|undefined} */\n        let grandparent\n\n        while (++index < parents.length) {\n          const parent = /** @type {Parent} */ (parents[index])\n\n          if (\n            ignored(\n              parent,\n              // @ts-expect-error mdast vs. unist parent.\n              grandparent ? grandparent.children.indexOf(parent) : undefined,\n              grandparent\n            )\n          ) {\n            return\n          }\n\n          grandparent = parent\n        }\n\n        if (grandparent) {\n          // @ts-expect-error: stack is fine.\n          return handler(node, parents)\n        }\n      }\n\n      /**\n       * @param {Text} node\n       * @param {[Root, ...Array<Parent>]} parents\n       * @returns {VisitorResult}\n       */\n      function handler(node, parents) {\n        const parent = parents[parents.length - 1]\n        const find = pairs[pairIndex][0]\n        const replace = pairs[pairIndex][1]\n        let start = 0\n        // @ts-expect-error: TS is wrong, some of these children can be text.\n        const index = parent.children.indexOf(node)\n        let change = false\n        /** @type {Array<PhrasingContent>} */\n        let nodes = []\n        /** @type {number|undefined} */\n        let position\n\n        find.lastIndex = 0\n\n        let match = find.exec(node.value)\n\n        while (match) {\n          position = match.index\n          /** @type {RegExpMatchObject} */\n          const matchObject = {\n            index: match.index,\n            input: match.input,\n            stack: [...parents, node]\n          }\n          let value = replace(...match, matchObject)\n\n          if (typeof value === 'string') {\n            value = value.length > 0 ? {type: 'text', value} : undefined\n          }\n\n          if (value !== false) {\n            if (start !== position) {\n              nodes.push({\n                type: 'text',\n                value: node.value.slice(start, position)\n              })\n            }\n\n            if (Array.isArray(value)) {\n              nodes.push(...value)\n            } else if (value) {\n              nodes.push(value)\n            }\n\n            start = position + match[0].length\n            change = true\n          }\n\n          if (!find.global) {\n            break\n          }\n\n          match = find.exec(node.value)\n        }\n\n        if (change) {\n          if (start < node.value.length) {\n            nodes.push({type: 'text', value: node.value.slice(start)})\n          }\n\n          parent.children.splice(index, 1, ...nodes)\n        } else {\n          nodes = [node]\n        }\n\n        return index + nodes.length\n      }\n    }\n  )\n\n/**\n * @param {FindAndReplaceSchema|FindAndReplaceList} schema\n * @returns {Pairs}\n */\nfunction toPairs(schema) {\n  /** @type {Pairs} */\n  const result = []\n\n  if (typeof schema !== 'object') {\n    throw new TypeError('Expected array or object as schema')\n  }\n\n  if (Array.isArray(schema)) {\n    let index = -1\n\n    while (++index < schema.length) {\n      result.push([\n        toExpression(schema[index][0]),\n        toFunction(schema[index][1])\n      ])\n    }\n  } else {\n    /** @type {string} */\n    let key\n\n    for (key in schema) {\n      if (own.call(schema, key)) {\n        result.push([toExpression(key), toFunction(schema[key])])\n      }\n    }\n  }\n\n  return result\n}\n\n/**\n * @param {Find} find\n * @returns {RegExp}\n */\nfunction toExpression(find) {\n  return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * @param {Replace} replace\n * @returns {ReplaceFunction}\n */\nfunction toFunction(replace) {\n  return typeof replace === 'function' ? replace : () => replace\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Transform} FromMarkdownTransform\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown/lib/types.js').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction\n * @typedef {import('mdast-util-find-and-replace').RegExpMatchObject} RegExpMatchObject\n * @typedef {import('mdast-util-find-and-replace').PhrasingContent} PhrasingContent\n */\n\nimport {ccount} from 'ccount'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\n\nconst inConstruct = 'phrasing'\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n/** @type {FromMarkdownExtension} */\nexport const gfmAutolinkLiteralFromMarkdown = {\n  transforms: [transformGfmAutolinkLiterals],\n  enter: {\n    literalAutolink: enterLiteralAutolink,\n    literalAutolinkEmail: enterLiteralAutolinkValue,\n    literalAutolinkHttp: enterLiteralAutolinkValue,\n    literalAutolinkWww: enterLiteralAutolinkValue\n  },\n  exit: {\n    literalAutolink: exitLiteralAutolink,\n    literalAutolinkEmail: exitLiteralAutolinkEmail,\n    literalAutolinkHttp: exitLiteralAutolinkHttp,\n    literalAutolinkWww: exitLiteralAutolinkWww\n  }\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmAutolinkLiteralToMarkdown = {\n  unsafe: [\n    {\n      character: '@',\n      before: '[+\\\\-.\\\\w]',\n      after: '[\\\\-.\\\\w]',\n      inConstruct,\n      notInConstruct\n    },\n    {\n      character: '.',\n      before: '[Ww]',\n      after: '[\\\\-.\\\\w]',\n      inConstruct,\n      notInConstruct\n    },\n    {character: ':', before: '[ps]', after: '\\\\/', inConstruct, notInConstruct}\n  ]\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterLiteralAutolink(token) {\n  this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterLiteralAutolinkValue(token) {\n  this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkHttp(token) {\n  this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkWww(token) {\n  this.config.exit.data.call(this, token)\n  const node = /** @type {Link} */ (this.stack[this.stack.length - 1])\n  node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkEmail(token) {\n  this.config.exit.autolinkEmail.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolink(token) {\n  this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n  findAndReplace(\n    tree,\n    [\n      [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n      [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n    ],\n    {ignore: ['link', 'linkReference']}\n  )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n  let prefix = ''\n\n  // Not an expected previous character.\n  if (!previous(match)) {\n    return false\n  }\n\n  // Treat `www` as part of the domain.\n  if (/^w/i.test(protocol)) {\n    domain = protocol + domain\n    protocol = ''\n    prefix = 'http://'\n  }\n\n  if (!isCorrectDomain(domain)) {\n    return false\n  }\n\n  const parts = splitUrl(domain + path)\n\n  if (!parts[0]) return false\n\n  /** @type {PhrasingContent} */\n  const result = {\n    type: 'link',\n    title: null,\n    url: prefix + protocol + parts[0],\n    children: [{type: 'text', value: protocol + parts[0]}]\n  }\n\n  if (parts[1]) {\n    return [result, {type: 'text', value: parts[1]}]\n  }\n\n  return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n */\nfunction findEmail(_, atext, label, match) {\n  if (\n    // Not an expected previous character.\n    !previous(match, true) ||\n    // Label ends in not allowed character.\n    /[_-\\d]$/.test(label)\n  ) {\n    return false\n  }\n\n  return {\n    type: 'link',\n    title: null,\n    url: 'mailto:' + atext + '@' + label,\n    children: [{type: 'text', value: atext + '@' + label}]\n  }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n  const parts = domain.split('.')\n\n  if (\n    parts.length < 2 ||\n    (parts[parts.length - 1] &&\n      (/_/.test(parts[parts.length - 1]) ||\n        !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n    (parts[parts.length - 2] &&\n      (/_/.test(parts[parts.length - 2]) ||\n        !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n  ) {\n    return false\n  }\n\n  return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string|undefined]}\n */\nfunction splitUrl(url) {\n  const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n  /** @type {number} */\n  let closingParenIndex\n  /** @type {number} */\n  let openingParens\n  /** @type {number} */\n  let closingParens\n  /** @type {string|undefined} */\n  let trail\n\n  if (trailExec) {\n    url = url.slice(0, trailExec.index)\n    trail = trailExec[0]\n    closingParenIndex = trail.indexOf(')')\n    openingParens = ccount(url, '(')\n    closingParens = ccount(url, ')')\n\n    while (closingParenIndex !== -1 && openingParens > closingParens) {\n      url += trail.slice(0, closingParenIndex + 1)\n      trail = trail.slice(closingParenIndex + 1)\n      closingParenIndex = trail.indexOf(')')\n      closingParens++\n    }\n  }\n\n  return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n  const code = match.input.charCodeAt(match.index - 1)\n\n  return (\n    (match.index === 0 ||\n      unicodeWhitespace(code) ||\n      unicodePunctuation(code)) &&\n    (!email || code !== 47)\n  )\n}\n","/**\n * @typedef {import('mdast').Association} Association\n */\n\nimport {decodeString} from 'micromark-util-decode-string'\n\n/**\n * The `label` of an association is the string value: character escapes and\n * references work, and casing is intact.\n * The `identifier` is used to match one association to another: controversially,\n * character escapes and references don’t work in this matching: `&copy;` does\n * not match `©`, and `\\+` does not match `+`.\n * But casing is ignored (and whitespace) is trimmed and collapsed: ` A\\nb`\n * matches `a b`.\n * So, we do prefer the label when figuring out how we’re going to serialize:\n * it has whitespace, casing, and we can ignore most useless character escapes\n * and all character references.\n *\n * @param {Association} node\n * @returns {string}\n */\nexport function association(node) {\n  if (node.label || !node.identifier) {\n    return node.label || ''\n  }\n\n  return decodeString(node.identifier)\n}\n","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('../types.js').TrackFields} TrackFields\n */\n\n/**\n * Functions to track output positions.\n * This info isn’t used yet but suchs functionality allows line wrapping,\n * and theoretically source maps (though, is there practical use in that?).\n *\n * @param {TrackFields} options_\n */\nexport function track(options_) {\n  // Defaults are used to prevent crashes when older utilities somehow activate\n  // this code.\n  /* c8 ignore next 5 */\n  const options = options_ || {}\n  const now = options.now || {}\n  let lineShift = options.lineShift || 0\n  let line = now.line || 1\n  let column = now.column || 1\n\n  return {move, current, shift}\n\n  /**\n   * Get the current tracked info.\n   *\n   * @returns {{now: Point, lineShift: number}}\n   */\n  function current() {\n    return {now: {line, column}, lineShift}\n  }\n\n  /**\n   * Define an increased line shift (the typical indent for lines).\n   *\n   * @param {number} value\n   */\n  function shift(value) {\n    lineShift += value\n  }\n\n  /**\n   * Move past a string.\n   *\n   * @param {string} value\n   * @returns {string}\n   */\n  function move(value = '') {\n    const chunks = value.split(/\\r?\\n|\\r/g)\n    const tail = chunks[chunks.length - 1]\n    line += chunks.length - 1\n    column =\n      chunks.length === 1 ? column + tail.length : 1 + tail.length + lineShift\n    return value\n  }\n}\n","/**\n * @typedef {import('../types.js').Node} Node\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').Join} Join\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').TrackFields} TrackFields\n */\n\nimport {track} from './track.js'\n\n/**\n * @param {Parent} parent\n * @param {Context} context\n * @param {TrackFields} safeOptions\n * @returns {string}\n */\nexport function containerFlow(parent, context, safeOptions) {\n  const indexStack = context.indexStack\n  const children = parent.children || []\n  const tracker = track(safeOptions)\n  /** @type {Array<string>} */\n  const results = []\n  let index = -1\n\n  indexStack.push(-1)\n\n  while (++index < children.length) {\n    const child = children[index]\n\n    indexStack[indexStack.length - 1] = index\n\n    results.push(\n      tracker.move(\n        context.handle(child, parent, context, {\n          before: '\\n',\n          after: '\\n',\n          ...tracker.current()\n        })\n      )\n    )\n\n    if (child.type !== 'list') {\n      context.bulletLastUsed = undefined\n    }\n\n    if (index < children.length - 1) {\n      results.push(tracker.move(between(child, children[index + 1])))\n    }\n  }\n\n  indexStack.pop()\n\n  return results.join('')\n\n  /**\n   * @param {Node} left\n   * @param {Node} right\n   * @returns {string}\n   */\n  function between(left, right) {\n    let index = context.join.length\n\n    while (index--) {\n      const result = context.join[index](left, right, parent, context)\n\n      if (result === true || result === 1) {\n        break\n      }\n\n      if (typeof result === 'number') {\n        return '\\n'.repeat(1 + result)\n      }\n\n      if (result === false) {\n        return '\\n\\n<!---->\\n\\n'\n      }\n    }\n\n    return '\\n\\n'\n  }\n}\n","/**\n * @callback Map\n * @param {string} value\n * @param {number} line\n * @param {boolean} blank\n * @returns {string}\n */\n\nconst eol = /\\r?\\n|\\r/g\n\n/**\n * @param {string} value\n * @param {Map} map\n * @returns {string}\n */\nexport function indentLines(value, map) {\n  /** @type {Array<string>} */\n  const result = []\n  let start = 0\n  let line = 0\n  /** @type {RegExpExecArray|null} */\n  let match\n\n  while ((match = eol.exec(value))) {\n    one(value.slice(start, match.index))\n    result.push(match[0])\n    start = match.index + match[0].length\n    line++\n  }\n\n  one(value.slice(start))\n\n  return result.join('')\n\n  /**\n   * @param {string} value\n   */\n  function one(value) {\n    result.push(map(value, line, !value))\n  }\n}\n","/**\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Unsafe} pattern\n * @returns {RegExp}\n */\nexport function patternCompile(pattern) {\n  if (!pattern._compiled) {\n    const before =\n      (pattern.atBreak ? '[\\\\r\\\\n][\\\\t ]*' : '') +\n      (pattern.before ? '(?:' + pattern.before + ')' : '')\n\n    pattern._compiled = new RegExp(\n      (before ? '(' + before + ')' : '') +\n        (/[|\\\\{}()[\\]^$+*?.-]/.test(pattern.character) ? '\\\\' : '') +\n        pattern.character +\n        (pattern.after ? '(?:' + pattern.after + ')' : ''),\n      'g'\n    )\n  }\n\n  return pattern._compiled\n}\n","/**\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Array<string>} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n  return (\n    listInScope(stack, pattern.inConstruct, true) &&\n    !listInScope(stack, pattern.notInConstruct, false)\n  )\n}\n\n/**\n * @param {Array<string>} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n  if (!list) {\n    return none\n  }\n\n  if (typeof list === 'string') {\n    list = [list]\n  }\n\n  let index = -1\n\n  while (++index < list.length) {\n    if (stack.includes(list[index])) {\n      return true\n    }\n  }\n\n  return false\n}\n","/**\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').SafeOptions} SafeOptions\n */\n\nimport {patternCompile} from './pattern-compile.js'\nimport {patternInScope} from './pattern-in-scope.js'\n\n/**\n * @param {Context} context\n * @param {string|null|undefined} input\n * @param {SafeOptions & {encode?: Array<string>}} config\n * @returns {string}\n */\nexport function safe(context, input, config) {\n  const value = (config.before || '') + (input || '') + (config.after || '')\n  /** @type {Array<number>} */\n  const positions = []\n  /** @type {Array<string>} */\n  const result = []\n  /** @type {Record<number, {before: boolean, after: boolean}>} */\n  const infos = {}\n  let index = -1\n\n  while (++index < context.unsafe.length) {\n    const pattern = context.unsafe[index]\n\n    if (!patternInScope(context.stack, pattern)) {\n      continue\n    }\n\n    const expression = patternCompile(pattern)\n    /** @type {RegExpExecArray|null} */\n    let match\n\n    while ((match = expression.exec(value))) {\n      const before = 'before' in pattern || Boolean(pattern.atBreak)\n      const after = 'after' in pattern\n      const position = match.index + (before ? match[1].length : 0)\n\n      if (positions.includes(position)) {\n        if (infos[position].before && !before) {\n          infos[position].before = false\n        }\n\n        if (infos[position].after && !after) {\n          infos[position].after = false\n        }\n      } else {\n        positions.push(position)\n        infos[position] = {before, after}\n      }\n    }\n  }\n\n  positions.sort(numerical)\n\n  let start = config.before ? config.before.length : 0\n  const end = value.length - (config.after ? config.after.length : 0)\n  index = -1\n\n  while (++index < positions.length) {\n    const position = positions[index]\n\n    // Character before or after matched:\n    if (position < start || position >= end) {\n      continue\n    }\n\n    // If this character is supposed to be escaped because it has a condition on\n    // the next character, and the next character is definitly being escaped,\n    // then skip this escape.\n    if (\n      (position + 1 < end &&\n        positions[index + 1] === position + 1 &&\n        infos[position].after &&\n        !infos[position + 1].before &&\n        !infos[position + 1].after) ||\n      (positions[index - 1] === position - 1 &&\n        infos[position].before &&\n        !infos[position - 1].before &&\n        !infos[position - 1].after)\n    ) {\n      continue\n    }\n\n    if (start !== position) {\n      // If we have to use a character reference, an ampersand would be more\n      // correct, but as backslashes only care about punctuation, either will\n      // do the trick\n      result.push(escapeBackslashes(value.slice(start, position), '\\\\'))\n    }\n\n    start = position\n\n    if (\n      /[!-/:-@[-`{-~]/.test(value.charAt(position)) &&\n      (!config.encode || !config.encode.includes(value.charAt(position)))\n    ) {\n      // Character escape.\n      result.push('\\\\')\n    } else {\n      // Character reference.\n      result.push(\n        '&#x' + value.charCodeAt(position).toString(16).toUpperCase() + ';'\n      )\n      start++\n    }\n  }\n\n  result.push(escapeBackslashes(value.slice(start, end), config.after))\n\n  return result.join('')\n}\n\n/**\n * @param {number} a\n * @param {number} b\n * @returns {number}\n */\nfunction numerical(a, b) {\n  return a - b\n}\n\n/**\n * @param {string} value\n * @param {string} after\n * @returns {string}\n */\nfunction escapeBackslashes(value, after) {\n  const expression = /\\\\(?=[!-/:-@[-`{-~])/g\n  /** @type {Array<number>} */\n  const positions = []\n  /** @type {Array<string>} */\n  const results = []\n  const whole = value + after\n  let index = -1\n  let start = 0\n  /** @type {RegExpExecArray|null} */\n  let match\n\n  while ((match = expression.exec(whole))) {\n    positions.push(match.index)\n  }\n\n  while (++index < positions.length) {\n    if (start !== positions[index]) {\n      results.push(value.slice(start, positions[index]))\n    }\n\n    results.push('\\\\')\n    start = positions[index]\n  }\n\n  results.push(value.slice(start))\n\n  return results.join('')\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Map} Map\n */\n\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {association} from 'mdast-util-to-markdown/lib/util/association.js'\nimport {containerFlow} from 'mdast-util-to-markdown/lib/util/container-flow.js'\nimport {indentLines} from 'mdast-util-to-markdown/lib/util/indent-lines.js'\nimport {safe} from 'mdast-util-to-markdown/lib/util/safe.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n/**\n * @returns {FromMarkdownExtension}\n */\nexport function gfmFootnoteFromMarkdown() {\n  return {\n    enter: {\n      gfmFootnoteDefinition: enterFootnoteDefinition,\n      gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n      gfmFootnoteCall: enterFootnoteCall,\n      gfmFootnoteCallString: enterFootnoteCallString\n    },\n    exit: {\n      gfmFootnoteDefinition: exitFootnoteDefinition,\n      gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n      gfmFootnoteCall: exitFootnoteCall,\n      gfmFootnoteCallString: exitFootnoteCallString\n    }\n  }\n\n  /** @type {FromMarkdownHandle} */\n  function enterFootnoteDefinition(token) {\n    this.enter(\n      {type: 'footnoteDefinition', identifier: '', label: '', children: []},\n      token\n    )\n  }\n\n  /** @type {FromMarkdownHandle} */\n  function enterFootnoteDefinitionLabelString() {\n    this.buffer()\n  }\n\n  /** @type {FromMarkdownHandle} */\n  function exitFootnoteDefinitionLabelString(token) {\n    const label = this.resume()\n    const node = /** @type {FootnoteDefinition} */ (\n      this.stack[this.stack.length - 1]\n    )\n    node.label = label\n    node.identifier = normalizeIdentifier(\n      this.sliceSerialize(token)\n    ).toLowerCase()\n  }\n\n  /** @type {FromMarkdownHandle} */\n  function exitFootnoteDefinition(token) {\n    this.exit(token)\n  }\n\n  /** @type {FromMarkdownHandle} */\n  function enterFootnoteCall(token) {\n    this.enter({type: 'footnoteReference', identifier: '', label: ''}, token)\n  }\n\n  /** @type {FromMarkdownHandle} */\n  function enterFootnoteCallString() {\n    this.buffer()\n  }\n\n  /** @type {FromMarkdownHandle} */\n  function exitFootnoteCallString(token) {\n    const label = this.resume()\n    const node = /** @type {FootnoteDefinition} */ (\n      this.stack[this.stack.length - 1]\n    )\n    node.label = label\n    node.identifier = normalizeIdentifier(\n      this.sliceSerialize(token)\n    ).toLowerCase()\n  }\n\n  /** @type {FromMarkdownHandle} */\n  function exitFootnoteCall(token) {\n    this.exit(token)\n  }\n}\n\n/**\n * @returns {ToMarkdownExtension}\n */\nexport function gfmFootnoteToMarkdown() {\n  footnoteReference.peek = footnoteReferencePeek\n\n  return {\n    // This is on by default already.\n    unsafe: [{character: '[', inConstruct: ['phrasing', 'label', 'reference']}],\n    handlers: {footnoteDefinition, footnoteReference}\n  }\n\n  /**\n   * @type {ToMarkdownHandle}\n   * @param {FootnoteReference} node\n   */\n  function footnoteReference(node, _, context, safeOptions) {\n    const tracker = track(safeOptions)\n    let value = tracker.move('[^')\n    const exit = context.enter('footnoteReference')\n    const subexit = context.enter('reference')\n    value += tracker.move(\n      safe(context, association(node), {\n        ...tracker.current(),\n        before: value,\n        after: ']'\n      })\n    )\n    subexit()\n    exit()\n    value += tracker.move(']')\n    return value\n  }\n\n  /** @type {ToMarkdownHandle} */\n  function footnoteReferencePeek() {\n    return '['\n  }\n\n  /**\n   * @type {ToMarkdownHandle}\n   * @param {FootnoteDefinition} node\n   */\n  function footnoteDefinition(node, _, context, safeOptions) {\n    const tracker = track(safeOptions)\n    let value = tracker.move('[^')\n    const exit = context.enter('footnoteDefinition')\n    const subexit = context.enter('label')\n    value += tracker.move(\n      safe(context, association(node), {\n        ...tracker.current(),\n        before: value,\n        after: ']'\n      })\n    )\n    subexit()\n    value += tracker.move(\n      ']:' + (node.children && node.children.length > 0 ? ' ' : '')\n    )\n    tracker.shift(4)\n    value += tracker.move(\n      indentLines(containerFlow(node, context, tracker.current()), map)\n    )\n    exit()\n\n    return value\n\n    /** @type {Map} */\n    function map(line, index, blank) {\n      if (index) {\n        return (blank ? '' : '    ') + line\n      }\n\n      return line\n    }\n  }\n}\n","/**\n * @typedef {import('../types.js').Node} Node\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').SafeOptions} SafeOptions\n * @typedef {import('../types.js').Context} Context\n */\n\nimport {track} from './track.js'\n\n/**\n * @param {Parent} parent\n * @param {Context} context\n * @param {SafeOptions} safeOptions\n * @returns {string}\n */\nexport function containerPhrasing(parent, context, safeOptions) {\n  const indexStack = context.indexStack\n  const children = parent.children || []\n  /** @type {Array<string>} */\n  const results = []\n  let index = -1\n  let before = safeOptions.before\n\n  indexStack.push(-1)\n  let tracker = track(safeOptions)\n\n  while (++index < children.length) {\n    const child = children[index]\n    /** @type {string} */\n    let after\n\n    indexStack[indexStack.length - 1] = index\n\n    if (index + 1 < children.length) {\n      // @ts-expect-error: hush, it’s actually a `zwitch`.\n      let handle = context.handle.handlers[children[index + 1].type]\n      if (handle && handle.peek) handle = handle.peek\n      after = handle\n        ? handle(children[index + 1], parent, context, {\n            before: '',\n            after: '',\n            ...tracker.current()\n          }).charAt(0)\n        : ''\n    } else {\n      after = safeOptions.after\n    }\n\n    // In some cases, html (text) can be found in phrasing right after an eol.\n    // When we’d serialize that, in most cases that would be seen as html\n    // (flow).\n    // As we can’t escape or so to prevent it from happening, we take a somewhat\n    // reasonable approach: replace that eol with a space.\n    // See: <https://github.com/syntax-tree/mdast-util-to-markdown/issues/15>\n    if (\n      results.length > 0 &&\n      (before === '\\r' || before === '\\n') &&\n      child.type === 'html'\n    ) {\n      results[results.length - 1] = results[results.length - 1].replace(\n        /(\\r?\\n|\\r)$/,\n        ' '\n      )\n      before = ' '\n\n      // To do: does this work to reset tracker?\n      tracker = track(safeOptions)\n      tracker.move(results.join(''))\n    }\n\n    results.push(\n      tracker.move(\n        context.handle(child, parent, context, {\n          ...tracker.current(),\n          before,\n          after\n        })\n      )\n    )\n\n    before = results[results.length - 1].slice(-1)\n  }\n\n  indexStack.pop()\n\n  return results.join('')\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {containerPhrasing} from 'mdast-util-to-markdown/lib/util/container-phrasing.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmStrikethroughFromMarkdown = {\n  canContainEols: ['delete'],\n  enter: {strikethrough: enterStrikethrough},\n  exit: {strikethrough: exitStrikethrough}\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmStrikethroughToMarkdown = {\n  unsafe: [{character: '~', inConstruct: 'phrasing'}],\n  handlers: {delete: handleDelete}\n}\n\nhandleDelete.peek = peekDelete\n\n/** @type {FromMarkdownHandle} */\nfunction enterStrikethrough(token) {\n  this.enter({type: 'delete', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitStrikethrough(token) {\n  this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, context, safeOptions) {\n  const tracker = track(safeOptions)\n  const exit = context.enter('emphasis')\n  let value = tracker.move('~~')\n  value += containerPhrasing(node, context, {\n    ...tracker.current(),\n    before: value,\n    after: '~'\n  })\n  value += tracker.move('~~')\n  exit()\n  return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n  return '~'\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../types.js').Handle} Handle\n */\n\nimport {patternCompile} from '../util/pattern-compile.js'\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @type {Handle}\n * @param {InlineCode} node\n */\nexport function inlineCode(node, _, context) {\n  let value = node.value || ''\n  let sequence = '`'\n  let index = -1\n\n  // If there is a single grave accent on its own in the code, use a fence of\n  // two.\n  // If there are two in a row, use one.\n  while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n    sequence += '`'\n  }\n\n  // If this is not just spaces or eols (tabs don’t count), and either the\n  // first or last character are a space, eol, or tick, then pad with spaces.\n  if (\n    /[^ \\r\\n]/.test(value) &&\n    ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n  ) {\n    value = ' ' + value + ' '\n  }\n\n  // We have a potential problem: certain characters after eols could result in\n  // blocks being seen.\n  // For example, if someone injected the string `'\\n# b'`, then that would\n  // result in an ATX heading.\n  // We can’t escape characters in `inlineCode`, but because eols are\n  // transformed to spaces when going from markdown to HTML anyway, we can swap\n  // them out.\n  while (++index < context.unsafe.length) {\n    const pattern = context.unsafe[index]\n    const expression = patternCompile(pattern)\n    /** @type {RegExpExecArray|null} */\n    let match\n\n    // Only look for `atBreak`s.\n    // Btw: note that `atBreak` patterns will always start the regex at LF or\n    // CR.\n    if (!pattern.atBreak) continue\n\n    while ((match = expression.exec(value))) {\n      let position = match.index\n\n      // Support CRLF (patterns only look for one of the characters).\n      if (\n        value.charCodeAt(position) === 10 /* `\\n` */ &&\n        value.charCodeAt(position - 1) === 13 /* `\\r` */\n      ) {\n        position--\n      }\n\n      value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n    }\n  }\n\n  return sequence + value + sequence\n}\n\n/**\n * @type {Handle}\n */\nfunction inlineCodePeek() {\n  return '`'\n}\n","/**\n * @typedef Options\n *   Configuration (optional).\n * @property {string|null|Array<string|null|undefined>} [align]\n *   One style for all columns, or styles for their respective columns.\n *   Each style is either `'l'` (left), `'r'` (right), or `'c'` (center).\n *   Other values are treated as `''`, which doesn’t place the colon in the\n *   alignment row but does align left.\n *   *Only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean} [padding=true]\n *   Whether to add a space of padding between delimiters and cells.\n *\n *   When `true`, there is padding:\n *\n *   ```markdown\n *   | Alpha | B     |\n *   | ----- | ----- |\n *   | C     | Delta |\n *   ```\n *\n *   When `false`, there is no padding:\n *\n *   ```markdown\n *   |Alpha|B    |\n *   |-----|-----|\n *   |C    |Delta|\n *   ```\n * @property {boolean} [delimiterStart=true]\n *   Whether to begin each row with the delimiter.\n *\n *   > 👉 **Note**: please don’t use this: it could create fragile structures\n *   > that aren’t understandable to some markdown parsers.\n *\n *   When `true`, there are starting delimiters:\n *\n *   ```markdown\n *   | Alpha | B     |\n *   | ----- | ----- |\n *   | C     | Delta |\n *   ```\n *\n *   When `false`, there are no starting delimiters:\n *\n *   ```markdown\n *   Alpha | B     |\n *   ----- | ----- |\n *   C     | Delta |\n *   ```\n * @property {boolean} [delimiterEnd=true]\n *   Whether to end each row with the delimiter.\n *\n *   > 👉 **Note**: please don’t use this: it could create fragile structures\n *   > that aren’t understandable to some markdown parsers.\n *\n *   When `true`, there are ending delimiters:\n *\n *   ```markdown\n *   | Alpha | B     |\n *   | ----- | ----- |\n *   | C     | Delta |\n *   ```\n *\n *   When `false`, there are no ending delimiters:\n *\n *   ```markdown\n *   | Alpha | B\n *   | ----- | -----\n *   | C     | Delta\n *   ```\n * @property {boolean} [alignDelimiters=true]\n *   Whether to align the delimiters.\n *   By default, they are aligned:\n *\n *   ```markdown\n *   | Alpha | B     |\n *   | ----- | ----- |\n *   | C     | Delta |\n *   ```\n *\n *   Pass `false` to make them staggered:\n *\n *   ```markdown\n *   | Alpha | B |\n *   | - | - |\n *   | C | Delta |\n *   ```\n * @property {(value: string) => number} [stringLength]\n *   Function to detect the length of table cell content.\n *   This is used when aligning the delimiters (`|`) between table cells.\n *   Full-width characters and emoji mess up delimiter alignment when viewing\n *   the markdown source.\n *   To fix this, you can pass this function, which receives the cell content\n *   and returns its “visible” size.\n *   Note that what is and isn’t visible depends on where the text is displayed.\n *\n *   Without such a function, the following:\n *\n *   ```js\n *   markdownTable([\n *     ['Alpha', 'Bravo'],\n *     ['中文', 'Charlie'],\n *     ['👩‍❤️‍👩', 'Delta']\n *   ])\n *   ```\n *\n *   Yields:\n *\n *   ```markdown\n *   | Alpha | Bravo |\n *   | - | - |\n *   | 中文 | Charlie |\n *   | 👩‍❤️‍👩 | Delta |\n *   ```\n *\n *   With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n *   ```js\n *   import stringWidth from 'string-width'\n *\n *   markdownTable(\n *     [\n *       ['Alpha', 'Bravo'],\n *       ['中文', 'Charlie'],\n *       ['👩‍❤️‍👩', 'Delta']\n *     ],\n *     {stringLength: stringWidth}\n *   )\n *   ```\n *\n *   Yields:\n *\n *   ```markdown\n *   | Alpha | Bravo   |\n *   | ----- | ------- |\n *   | 中文  | Charlie |\n *   | 👩‍❤️‍👩    | Delta   |\n *   ```\n */\n\n/**\n * @typedef {Options} MarkdownTableOptions\n * @todo\n *   Remove next major.\n */\n\n/**\n * Generate a markdown ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables)) table..\n *\n * @param {Array<Array<string|null|undefined>>} table\n *   Table data (matrix of strings).\n * @param {Options} [options]\n *   Configuration (optional).\n * @returns {string}\n */\nexport function markdownTable(table, options = {}) {\n  const align = (options.align || []).concat()\n  const stringLength = options.stringLength || defaultStringLength\n  /** @type {Array<number>} Character codes as symbols for alignment per column. */\n  const alignments = []\n  /** @type {Array<Array<string>>} Cells per row. */\n  const cellMatrix = []\n  /** @type {Array<Array<number>>} Sizes of each cell per row. */\n  const sizeMatrix = []\n  /** @type {Array<number>} */\n  const longestCellByColumn = []\n  let mostCellsPerRow = 0\n  let rowIndex = -1\n\n  // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n  // do superfluous work when aligning, so optimize for aligning.\n  while (++rowIndex < table.length) {\n    /** @type {Array<string>} */\n    const row = []\n    /** @type {Array<number>} */\n    const sizes = []\n    let columnIndex = -1\n\n    if (table[rowIndex].length > mostCellsPerRow) {\n      mostCellsPerRow = table[rowIndex].length\n    }\n\n    while (++columnIndex < table[rowIndex].length) {\n      const cell = serialize(table[rowIndex][columnIndex])\n\n      if (options.alignDelimiters !== false) {\n        const size = stringLength(cell)\n        sizes[columnIndex] = size\n\n        if (\n          longestCellByColumn[columnIndex] === undefined ||\n          size > longestCellByColumn[columnIndex]\n        ) {\n          longestCellByColumn[columnIndex] = size\n        }\n      }\n\n      row.push(cell)\n    }\n\n    cellMatrix[rowIndex] = row\n    sizeMatrix[rowIndex] = sizes\n  }\n\n  // Figure out which alignments to use.\n  let columnIndex = -1\n\n  if (typeof align === 'object' && 'length' in align) {\n    while (++columnIndex < mostCellsPerRow) {\n      alignments[columnIndex] = toAlignment(align[columnIndex])\n    }\n  } else {\n    const code = toAlignment(align)\n\n    while (++columnIndex < mostCellsPerRow) {\n      alignments[columnIndex] = code\n    }\n  }\n\n  // Inject the alignment row.\n  columnIndex = -1\n  /** @type {Array<string>} */\n  const row = []\n  /** @type {Array<number>} */\n  const sizes = []\n\n  while (++columnIndex < mostCellsPerRow) {\n    const code = alignments[columnIndex]\n    let before = ''\n    let after = ''\n\n    if (code === 99 /* `c` */) {\n      before = ':'\n      after = ':'\n    } else if (code === 108 /* `l` */) {\n      before = ':'\n    } else if (code === 114 /* `r` */) {\n      after = ':'\n    }\n\n    // There *must* be at least one hyphen-minus in each alignment cell.\n    let size =\n      options.alignDelimiters === false\n        ? 1\n        : Math.max(\n            1,\n            longestCellByColumn[columnIndex] - before.length - after.length\n          )\n\n    const cell = before + '-'.repeat(size) + after\n\n    if (options.alignDelimiters !== false) {\n      size = before.length + size + after.length\n\n      if (size > longestCellByColumn[columnIndex]) {\n        longestCellByColumn[columnIndex] = size\n      }\n\n      sizes[columnIndex] = size\n    }\n\n    row[columnIndex] = cell\n  }\n\n  // Inject the alignment row.\n  cellMatrix.splice(1, 0, row)\n  sizeMatrix.splice(1, 0, sizes)\n\n  rowIndex = -1\n  /** @type {Array<string>} */\n  const lines = []\n\n  while (++rowIndex < cellMatrix.length) {\n    const row = cellMatrix[rowIndex]\n    const sizes = sizeMatrix[rowIndex]\n    columnIndex = -1\n    /** @type {Array<string>} */\n    const line = []\n\n    while (++columnIndex < mostCellsPerRow) {\n      const cell = row[columnIndex] || ''\n      let before = ''\n      let after = ''\n\n      if (options.alignDelimiters !== false) {\n        const size =\n          longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n        const code = alignments[columnIndex]\n\n        if (code === 114 /* `r` */) {\n          before = ' '.repeat(size)\n        } else if (code === 99 /* `c` */) {\n          if (size % 2) {\n            before = ' '.repeat(size / 2 + 0.5)\n            after = ' '.repeat(size / 2 - 0.5)\n          } else {\n            before = ' '.repeat(size / 2)\n            after = before\n          }\n        } else {\n          after = ' '.repeat(size)\n        }\n      }\n\n      if (options.delimiterStart !== false && !columnIndex) {\n        line.push('|')\n      }\n\n      if (\n        options.padding !== false &&\n        // Don’t add the opening space if we’re not aligning and the cell is\n        // empty: there will be a closing space.\n        !(options.alignDelimiters === false && cell === '') &&\n        (options.delimiterStart !== false || columnIndex)\n      ) {\n        line.push(' ')\n      }\n\n      if (options.alignDelimiters !== false) {\n        line.push(before)\n      }\n\n      line.push(cell)\n\n      if (options.alignDelimiters !== false) {\n        line.push(after)\n      }\n\n      if (options.padding !== false) {\n        line.push(' ')\n      }\n\n      if (\n        options.delimiterEnd !== false ||\n        columnIndex !== mostCellsPerRow - 1\n      ) {\n        line.push('|')\n      }\n    }\n\n    lines.push(\n      options.delimiterEnd === false\n        ? line.join('').replace(/ +$/, '')\n        : line.join('')\n    )\n  }\n\n  return lines.join('\\n')\n}\n\n/**\n * @param {string|null|undefined} [value]\n * @returns {string}\n */\nfunction serialize(value) {\n  return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string} value\n * @returns {number}\n */\nfunction defaultStringLength(value) {\n  return value.length\n}\n\n/**\n * @param {string|null|undefined} value\n * @returns {number}\n */\nfunction toAlignment(value) {\n  const code = typeof value === 'string' ? value.codePointAt(0) : 0\n\n  return code === 67 /* `C` */ || code === 99 /* `c` */\n    ? 99 /* `c` */\n    : code === 76 /* `L` */ || code === 108 /* `l` */\n    ? 108 /* `l` */\n    : code === 82 /* `R` */ || code === 114 /* `r` */\n    ? 114 /* `r` */\n    : 0\n}\n","/**\n * @typedef {import('mdast').AlignType} AlignType\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('markdown-table').MarkdownTableOptions} MarkdownTableOptions\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Context} ToMarkdownContext\n * @typedef {import('mdast-util-to-markdown').SafeOptions} SafeOptions\n *\n * @typedef Options\n * @property {boolean} [tableCellPadding=true]\n * @property {boolean} [tablePipeAlign=true]\n * @property {MarkdownTableOptions['stringLength']} [stringLength]\n */\n\nimport {containerPhrasing} from 'mdast-util-to-markdown/lib/util/container-phrasing.js'\nimport {inlineCode} from 'mdast-util-to-markdown/lib/handle/inline-code.js'\nimport {markdownTable} from 'markdown-table'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmTableFromMarkdown = {\n  enter: {\n    table: enterTable,\n    tableData: enterCell,\n    tableHeader: enterCell,\n    tableRow: enterRow\n  },\n  exit: {\n    codeText: exitCodeText,\n    table: exitTable,\n    tableData: exit,\n    tableHeader: exit,\n    tableRow: exit\n  }\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterTable(token) {\n  /** @type {Array<'left'|'right'|'center'|'none'>} */\n  // @ts-expect-error: `align` is custom.\n  const align = token._align\n  this.enter(\n    {\n      type: 'table',\n      align: align.map((d) => (d === 'none' ? null : d)),\n      children: []\n    },\n    token\n  )\n  this.setData('inTable', true)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitTable(token) {\n  this.exit(token)\n  this.setData('inTable')\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterRow(token) {\n  this.enter({type: 'tableRow', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exit(token) {\n  this.exit(token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterCell(token) {\n  this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/** @type {FromMarkdownHandle} */\nfunction exitCodeText(token) {\n  let value = this.resume()\n\n  if (this.getData('inTable')) {\n    value = value.replace(/\\\\([\\\\|])/g, replace)\n  }\n\n  const node = /** @type {InlineCode} */ (this.stack[this.stack.length - 1])\n  node.value = value\n  this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n  // Pipes work, backslashes don’t (but can’t escape pipes).\n  return $1 === '|' ? $1 : $0\n}\n\n/**\n * @param {Options} [options]\n * @returns {ToMarkdownExtension}\n */\nexport function gfmTableToMarkdown(options) {\n  const settings = options || {}\n  const padding = settings.tableCellPadding\n  const alignDelimiters = settings.tablePipeAlign\n  const stringLength = settings.stringLength\n  const around = padding ? ' ' : '|'\n\n  return {\n    unsafe: [\n      {character: '\\r', inConstruct: 'tableCell'},\n      {character: '\\n', inConstruct: 'tableCell'},\n      // A pipe, when followed by a tab or space (padding), or a dash or colon\n      // (unpadded delimiter row), could result in a table.\n      {atBreak: true, character: '|', after: '[\\t :-]'},\n      // A pipe in a cell must be encoded.\n      {character: '|', inConstruct: 'tableCell'},\n      // A colon must be followed by a dash, in which case it could start a\n      // delimiter row.\n      {atBreak: true, character: ':', after: '-'},\n      // A delimiter row can also start with a dash, when followed by more\n      // dashes, a colon, or a pipe.\n      // This is a stricter version than the built in check for lists, thematic\n      // breaks, and setex heading underlines though:\n      // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/51a2038/lib/unsafe.js#L57>\n      {atBreak: true, character: '-', after: '[:|-]'}\n    ],\n    handlers: {\n      table: handleTable,\n      tableRow: handleTableRow,\n      tableCell: handleTableCell,\n      inlineCode: inlineCodeWithTable\n    }\n  }\n\n  /**\n   * @type {ToMarkdownHandle}\n   * @param {Table} node\n   */\n  function handleTable(node, _, context, safeOptions) {\n    return serializeData(\n      handleTableAsData(node, context, safeOptions),\n      // @ts-expect-error: fixed in `markdown-table@3.0.1`.\n      node.align\n    )\n  }\n\n  /**\n   * This function isn’t really used normally, because we handle rows at the\n   * table level.\n   * But, if someone passes in a table row, this ensures we make somewhat sense.\n   *\n   * @type {ToMarkdownHandle}\n   * @param {TableRow} node\n   */\n  function handleTableRow(node, _, context, safeOptions) {\n    const row = handleTableRowAsData(node, context, safeOptions)\n    // `markdown-table` will always add an align row\n    const value = serializeData([row])\n    return value.slice(0, value.indexOf('\\n'))\n  }\n\n  /**\n   * @type {ToMarkdownHandle}\n   * @param {TableCell} node\n   */\n  function handleTableCell(node, _, context, safeOptions) {\n    const exit = context.enter('tableCell')\n    const subexit = context.enter('phrasing')\n    const value = containerPhrasing(node, context, {\n      ...safeOptions,\n      before: around,\n      after: around\n    })\n    subexit()\n    exit()\n    return value\n  }\n\n  /**\n   * @param {Array<Array<string>>} matrix\n   * @param {Array<string>} [align]\n   */\n  function serializeData(matrix, align) {\n    return markdownTable(matrix, {\n      align,\n      alignDelimiters,\n      padding,\n      stringLength\n    })\n  }\n\n  /**\n   * @param {Table} node\n   * @param {ToMarkdownContext} context\n   * @param {SafeOptions} safeOptions\n   */\n  function handleTableAsData(node, context, safeOptions) {\n    const children = node.children\n    let index = -1\n    /** @type {Array<Array<string>>} */\n    const result = []\n    const subexit = context.enter('table')\n\n    while (++index < children.length) {\n      result[index] = handleTableRowAsData(\n        children[index],\n        context,\n        safeOptions\n      )\n    }\n\n    subexit()\n\n    return result\n  }\n\n  /**\n   * @param {TableRow} node\n   * @param {ToMarkdownContext} context\n   * @param {SafeOptions} safeOptions\n   */\n  function handleTableRowAsData(node, context, safeOptions) {\n    const children = node.children\n    let index = -1\n    /** @type {Array<string>} */\n    const result = []\n    const subexit = context.enter('tableRow')\n\n    while (++index < children.length) {\n      // Note: the positional info as used here is incorrect.\n      // Making it correct would be impossible due to aligning cells?\n      // And it would need copy/pasting `markdown-table` into this project.\n      result[index] = handleTableCell(\n        children[index],\n        node,\n        context,\n        safeOptions\n      )\n    }\n\n    subexit()\n\n    return result\n  }\n\n  /**\n   * @type {ToMarkdownHandle}\n   * @param {InlineCode} node\n   */\n  function inlineCodeWithTable(node, parent, context) {\n    let value = inlineCode(node, parent, context)\n\n    if (context.stack.includes('tableCell')) {\n      value = value.replace(/\\|/g, '\\\\$&')\n    }\n\n    return value\n  }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').List} List\n * @typedef {import('../util/indent-lines.js').Map} Map\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').Handle} Handle\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\nimport {containerFlow} from '../util/container-flow.js'\nimport {indentLines} from '../util/indent-lines.js'\nimport {track} from '../util/track.js'\n\n/**\n * @type {Handle}\n * @param {ListItem} node\n */\nexport function listItem(node, parent, context, safeOptions) {\n  const listItemIndent = checkListItemIndent(context)\n  let bullet = context.bulletCurrent || checkBullet(context)\n\n  // Add the marker value for ordered lists.\n  if (parent && parent.type === 'list' && parent.ordered) {\n    bullet =\n      (typeof parent.start === 'number' && parent.start > -1\n        ? parent.start\n        : 1) +\n      (context.options.incrementListMarker === false\n        ? 0\n        : parent.children.indexOf(node)) +\n      bullet\n  }\n\n  let size = bullet.length + 1\n\n  if (\n    listItemIndent === 'tab' ||\n    (listItemIndent === 'mixed' &&\n      ((parent && parent.type === 'list' && parent.spread) || node.spread))\n  ) {\n    size = Math.ceil(size / 4) * 4\n  }\n\n  const tracker = track(safeOptions)\n  tracker.move(bullet + ' '.repeat(size - bullet.length))\n  tracker.shift(size)\n  const exit = context.enter('listItem')\n  const value = indentLines(\n    containerFlow(node, context, tracker.current()),\n    map\n  )\n  exit()\n\n  return value\n\n  /** @type {Map} */\n  function map(line, index, blank) {\n    if (index) {\n      return (blank ? '' : ' '.repeat(size)) + line\n    }\n\n    return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n  }\n}\n","/**\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {Context} context\n * @returns {Exclude<Options['listItemIndent'], undefined>}\n */\nexport function checkListItemIndent(context) {\n  const style = context.options.listItemIndent || 'tab'\n\n  // To do: remove in a major.\n  // @ts-expect-error: deprecated.\n  if (style === 1 || style === '1') {\n    return 'one'\n  }\n\n  if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n    throw new Error(\n      'Cannot serialize items with `' +\n        style +\n        '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n    )\n  }\n\n  return style\n}\n","/**\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {Context} context\n * @returns {Exclude<Options['bullet'], undefined>}\n */\nexport function checkBullet(context) {\n  const marker = context.options.bullet || '*'\n\n  if (marker !== '*' && marker !== '+' && marker !== '-') {\n    throw new Error(\n      'Cannot serialize items with `' +\n        marker +\n        '` for `options.bullet`, expected `*`, `+`, or `-`'\n    )\n  }\n\n  return marker\n}\n","/**\n * @typedef {Extract<import('mdast').Root|import('mdast').Content, import('unist').Parent>} Parent\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').BlockContent} BlockContent\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {listItem} from 'mdast-util-to-markdown/lib/handle/list-item.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmTaskListItemFromMarkdown = {\n  exit: {\n    taskListCheckValueChecked: exitCheck,\n    taskListCheckValueUnchecked: exitCheck,\n    paragraph: exitParagraphWithTaskListItem\n  }\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmTaskListItemToMarkdown = {\n  unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n  handlers: {listItem: listItemWithTaskListItem}\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitCheck(token) {\n  const node = /** @type {ListItem} */ (this.stack[this.stack.length - 2])\n  // We’re always in a paragraph, in a list item.\n  node.checked = token.type === 'taskListCheckValueChecked'\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitParagraphWithTaskListItem(token) {\n  const parent = /** @type {Parent} */ (this.stack[this.stack.length - 2])\n  const node = /** @type {Paragraph} */ (this.stack[this.stack.length - 1])\n  const siblings = parent.children\n  const head = node.children[0]\n  let index = -1\n  /** @type {Paragraph|undefined} */\n  let firstParaghraph\n\n  if (\n    parent &&\n    parent.type === 'listItem' &&\n    typeof parent.checked === 'boolean' &&\n    head &&\n    head.type === 'text'\n  ) {\n    while (++index < siblings.length) {\n      const sibling = siblings[index]\n      if (sibling.type === 'paragraph') {\n        firstParaghraph = sibling\n        break\n      }\n    }\n\n    if (firstParaghraph === node) {\n      // Must start with a space or a tab.\n      head.value = head.value.slice(1)\n\n      if (head.value.length === 0) {\n        node.children.shift()\n      } else if (\n        node.position &&\n        head.position &&\n        typeof head.position.start.offset === 'number'\n      ) {\n        head.position.start.column++\n        head.position.start.offset++\n        node.position.start = Object.assign({}, head.position.start)\n      }\n    }\n  }\n\n  this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, context, safeOptions) {\n  const head = node.children[0]\n  const checkable =\n    typeof node.checked === 'boolean' && head && head.type === 'paragraph'\n  const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '\n  const tracker = track(safeOptions)\n\n  if (checkable) {\n    tracker.move(checkbox)\n  }\n\n  let value = listItem(node, parent, context, {\n    ...safeOptions,\n    ...tracker.current()\n  })\n\n  if (checkable) {\n    value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n  }\n\n  return value\n\n  /**\n   * @param {string} $0\n   * @returns {string}\n   */\n  function check($0) {\n    return $0 + checkbox\n  }\n}\n","/**\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n *\n * @typedef {import('mdast-util-gfm-table').Options} Options\n */\n\nimport {\n  gfmAutolinkLiteralFromMarkdown,\n  gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n  gfmFootnoteFromMarkdown,\n  gfmFootnoteToMarkdown\n} from 'mdast-util-gfm-footnote'\nimport {\n  gfmStrikethroughFromMarkdown,\n  gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n  gfmTaskListItemFromMarkdown,\n  gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * @returns {Array<FromMarkdownExtension>}\n */\nexport function gfmFromMarkdown() {\n  return [\n    gfmAutolinkLiteralFromMarkdown,\n    gfmFootnoteFromMarkdown(),\n    gfmStrikethroughFromMarkdown,\n    gfmTableFromMarkdown,\n    gfmTaskListItemFromMarkdown\n  ]\n}\n\n/**\n * @param {Options} [options]\n * @returns {ToMarkdownExtension}\n */\nexport function gfmToMarkdown(options) {\n  return {\n    extensions: [\n      gfmAutolinkLiteralToMarkdown,\n      gfmFootnoteToMarkdown(),\n      gfmStrikethroughToMarkdown,\n      gfmTableToMarkdown(options),\n      gfmTaskListItemToMarkdown\n    ]\n  }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('micromark-extension-gfm').Options & import('mdast-util-gfm').Options} Options\n */\n\nimport {gfm} from 'micromark-extension-gfm'\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\n\n/**\n * Plugin to support GFM (autolink literals, footnotes, strikethrough, tables, tasklists).\n *\n * @type {import('unified').Plugin<[Options?]|void[], Root>}\n */\nexport default function remarkGfm(options = {}) {\n  const data = this.data()\n\n  add('micromarkExtensions', gfm(options))\n  add('fromMarkdownExtensions', gfmFromMarkdown())\n  add('toMarkdownExtensions', gfmToMarkdown(options))\n\n  /**\n   * @param {string} field\n   * @param {unknown} value\n   */\n  function add(field, value) {\n    const list = /** @type {unknown[]} */ (\n      // Other extensions\n      /* c8 ignore next 2 */\n      data[field] ? data[field] : (data[field] = [])\n    )\n\n    list.push(value)\n  }\n}\n","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n */\n\nvar search = /[#.]/g\n\n/**\n * Create a hast element from a simple CSS selector.\n *\n * @param selector A simple CSS selector.\n *   Can contain a tag-name (`foo`), classes (`.bar`), and an ID (`#baz`).\n *   Multiple classes are allowed.\n *   Uses the last ID if multiple IDs are found.\n * @param [defaultTagName='div'] Tag name to use if `selector` does not specify one.\n */\nexport const parseSelector =\n  /**\n   * @type {(\n   *  <Selector extends string, DefaultTagName extends string = 'div'>(selector?: Selector, defaultTagName?: DefaultTagName) => Element & {tagName: import('./extract.js').ExtractTagName<Selector, DefaultTagName>}\n   * )}\n   */\n  (\n    /**\n     * @param {string} [selector]\n     * @param {string} [defaultTagName='div']\n     * @returns {Element}\n     */\n    function (selector, defaultTagName = 'div') {\n      var value = selector || ''\n      /** @type {Properties} */\n      var props = {}\n      var start = 0\n      /** @type {string} */\n      var subvalue\n      /** @type {string} */\n      var previous\n      /** @type {RegExpMatchArray} */\n      var match\n\n      while (start < value.length) {\n        search.lastIndex = start\n        match = search.exec(value)\n        subvalue = value.slice(start, match ? match.index : value.length)\n\n        if (subvalue) {\n          if (!previous) {\n            defaultTagName = subvalue\n          } else if (previous === '#') {\n            props.id = subvalue\n          } else if (Array.isArray(props.className)) {\n            props.className.push(subvalue)\n          } else {\n            props.className = [subvalue]\n          }\n\n          start += subvalue.length\n        }\n\n        if (match) {\n          previous = match[0]\n          start++\n        }\n      }\n\n      return {\n        type: 'element',\n        tagName: defaultTagName,\n        properties: props,\n        children: []\n      }\n    }\n  )\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {Root['children'][number]} Child\n * @typedef {Child|Root} Node\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n *\n * @typedef {Root|Element} HResult\n * @typedef {string|number} HStyleValue\n * @typedef {Record<string, HStyleValue>} HStyle\n * @typedef {string|number|boolean|null|undefined} HPrimitiveValue\n * @typedef {Array<string|number>} HArrayValue\n * @typedef {HPrimitiveValue|HArrayValue} HPropertyValue\n * @typedef {{[property: string]: HPropertyValue|HStyle}} HProperties\n *   Acceptable properties value.\n *\n * @typedef {string|number|null|undefined} HPrimitiveChild\n * @typedef {Array<Node|HPrimitiveChild>} HArrayChild\n * @typedef {Node|HPrimitiveChild|HArrayChild} HChild\n *   Acceptable child value\n */\n\nimport {find, normalize} from 'property-information'\nimport {parseSelector} from 'hast-util-parse-selector'\nimport {parse as spaces} from 'space-separated-tokens'\nimport {parse as commas} from 'comma-separated-tokens'\n\nconst buttonTypes = new Set(['menu', 'submit', 'reset', 'button'])\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Schema} schema\n * @param {string} defaultTagName\n * @param {Array<string>} [caseSensitive]\n */\nexport function core(schema, defaultTagName, caseSensitive) {\n  const adjust = caseSensitive && createAdjustMap(caseSensitive)\n\n  const h =\n    /**\n     * @type {{\n     *   (): Root\n     *   (selector: null|undefined, ...children: Array<HChild>): Root\n     *   (selector: string, properties?: HProperties, ...children: Array<HChild>): Element\n     *   (selector: string, ...children: Array<HChild>): Element\n     * }}\n     */\n    (\n      /**\n       * Hyperscript compatible DSL for creating virtual hast trees.\n       *\n       * @param {string|null} [selector]\n       * @param {HProperties|HChild} [properties]\n       * @param {Array<HChild>} children\n       * @returns {HResult}\n       */\n      function (selector, properties, ...children) {\n        let index = -1\n        /** @type {HResult} */\n        let node\n\n        if (selector === undefined || selector === null) {\n          node = {type: 'root', children: []}\n          // @ts-expect-error Properties are not supported for roots.\n          children.unshift(properties)\n        } else {\n          node = parseSelector(selector, defaultTagName)\n          // Normalize the name.\n          node.tagName = node.tagName.toLowerCase()\n          if (adjust && own.call(adjust, node.tagName)) {\n            node.tagName = adjust[node.tagName]\n          }\n\n          // Handle props.\n          if (isProperties(properties, node.tagName)) {\n            /** @type {string} */\n            let key\n\n            for (key in properties) {\n              if (own.call(properties, key)) {\n                // @ts-expect-error `node.properties` is set.\n                addProperty(schema, node.properties, key, properties[key])\n              }\n            }\n          } else {\n            children.unshift(properties)\n          }\n        }\n\n        // Handle children.\n        while (++index < children.length) {\n          addChild(node.children, children[index])\n        }\n\n        if (node.type === 'element' && node.tagName === 'template') {\n          node.content = {type: 'root', children: node.children}\n          node.children = []\n        }\n\n        return node\n      }\n    )\n\n  return h\n}\n\n/**\n * @param {HProperties|HChild} value\n * @param {string} name\n * @returns {value is HProperties}\n */\nfunction isProperties(value, name) {\n  if (\n    value === null ||\n    value === undefined ||\n    typeof value !== 'object' ||\n    Array.isArray(value)\n  ) {\n    return false\n  }\n\n  if (name === 'input' || !value.type || typeof value.type !== 'string') {\n    return true\n  }\n\n  if ('children' in value && Array.isArray(value.children)) {\n    return false\n  }\n\n  if (name === 'button') {\n    return buttonTypes.has(value.type.toLowerCase())\n  }\n\n  return !('value' in value)\n}\n\n/**\n * @param {Schema} schema\n * @param {Properties} properties\n * @param {string} key\n * @param {HStyle|HPropertyValue} value\n * @returns {void}\n */\nfunction addProperty(schema, properties, key, value) {\n  const info = find(schema, key)\n  let index = -1\n  /** @type {HPropertyValue} */\n  let result\n\n  // Ignore nullish and NaN values.\n  if (value === undefined || value === null) return\n\n  if (typeof value === 'number') {\n    // Ignore NaN.\n    if (Number.isNaN(value)) return\n\n    result = value\n  }\n  // Booleans.\n  else if (typeof value === 'boolean') {\n    result = value\n  }\n  // Handle list values.\n  else if (typeof value === 'string') {\n    if (info.spaceSeparated) {\n      result = spaces(value)\n    } else if (info.commaSeparated) {\n      result = commas(value)\n    } else if (info.commaOrSpaceSeparated) {\n      result = spaces(commas(value).join(' '))\n    } else {\n      result = parsePrimitive(info, info.property, value)\n    }\n  } else if (Array.isArray(value)) {\n    result = value.concat()\n  } else {\n    result = info.property === 'style' ? style(value) : String(value)\n  }\n\n  if (Array.isArray(result)) {\n    /** @type {Array<string|number>} */\n    const finalResult = []\n\n    while (++index < result.length) {\n      // @ts-expect-error Assume no booleans in array.\n      finalResult[index] = parsePrimitive(info, info.property, result[index])\n    }\n\n    result = finalResult\n  }\n\n  // Class names (which can be added both on the `selector` and here).\n  if (info.property === 'className' && Array.isArray(properties.className)) {\n    // @ts-expect-error Assume no booleans in `className`.\n    result = properties.className.concat(result)\n  }\n\n  properties[info.property] = result\n}\n\n/**\n * @param {Array<Child>} nodes\n * @param {HChild} value\n * @returns {void}\n */\nfunction addChild(nodes, value) {\n  let index = -1\n\n  if (value === undefined || value === null) {\n    // Empty.\n  } else if (typeof value === 'string' || typeof value === 'number') {\n    nodes.push({type: 'text', value: String(value)})\n  } else if (Array.isArray(value)) {\n    while (++index < value.length) {\n      addChild(nodes, value[index])\n    }\n  } else if (typeof value === 'object' && 'type' in value) {\n    if (value.type === 'root') {\n      addChild(nodes, value.children)\n    } else {\n      nodes.push(value)\n    }\n  } else {\n    throw new Error('Expected node, nodes, or string, got `' + value + '`')\n  }\n}\n\n/**\n * Parse a single primitives.\n *\n * @param {Info} info\n * @param {string} name\n * @param {HPrimitiveValue} value\n * @returns {HPrimitiveValue}\n */\nfunction parsePrimitive(info, name, value) {\n  if (typeof value === 'string') {\n    if (info.number && value && !Number.isNaN(Number(value))) {\n      return Number(value)\n    }\n\n    if (\n      (info.boolean || info.overloadedBoolean) &&\n      (value === '' || normalize(value) === normalize(name))\n    ) {\n      return true\n    }\n  }\n\n  return value\n}\n\n/**\n * @param {HStyle} value\n * @returns {string}\n */\nfunction style(value) {\n  /** @type {Array<string>} */\n  const result = []\n  /** @type {string} */\n  let key\n\n  for (key in value) {\n    if (own.call(value, key)) {\n      result.push([key, value[key]].join(': '))\n    }\n  }\n\n  return result.join('; ')\n}\n\n/**\n * @param {Array<string>} values\n * @returns {Record<string, string>}\n */\nfunction createAdjustMap(values) {\n  /** @type {Record<string, string>} */\n  const result = {}\n  let index = -1\n\n  while (++index < values.length) {\n    result[values[index].toLowerCase()] = values[index]\n  }\n\n  return result\n}\n","export const svgCaseSensitiveTagNames = [\n  'altGlyph',\n  'altGlyphDef',\n  'altGlyphItem',\n  'animateColor',\n  'animateMotion',\n  'animateTransform',\n  'clipPath',\n  'feBlend',\n  'feColorMatrix',\n  'feComponentTransfer',\n  'feComposite',\n  'feConvolveMatrix',\n  'feDiffuseLighting',\n  'feDisplacementMap',\n  'feDistantLight',\n  'feDropShadow',\n  'feFlood',\n  'feFuncA',\n  'feFuncB',\n  'feFuncG',\n  'feFuncR',\n  'feGaussianBlur',\n  'feImage',\n  'feMerge',\n  'feMergeNode',\n  'feMorphology',\n  'feOffset',\n  'fePointLight',\n  'feSpecularLighting',\n  'feSpotLight',\n  'feTile',\n  'feTurbulence',\n  'foreignObject',\n  'glyphRef',\n  'linearGradient',\n  'radialGradient',\n  'solidColor',\n  'textArea',\n  'textPath'\n]\n","/**\n * @typedef {import('./core.js').HChild} Child\n * @typedef {import('./core.js').HProperties} Properties\n *\n * @typedef {import('./jsx-classic').Element} s.JSX.Element\n * @typedef {import('./jsx-classic').IntrinsicAttributes} s.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic').IntrinsicElements} s.JSX.IntrinsicElements\n * @typedef {import('./jsx-classic').ElementChildrenAttribute} s.JSX.ElementChildrenAttribute\n */\n\nimport {svg} from 'property-information'\nimport {core} from './core.js'\nimport {svgCaseSensitiveTagNames} from './svg-case-sensitive-tag-names.js'\n\nexport const s = core(svg, 'g', svgCaseSensitiveTagNames)\n","/**\n * @typedef {import('./core.js').HChild} Child Acceptable child value\n * @typedef {import('./core.js').HProperties} Properties Acceptable properties value.\n *\n * @typedef {import('./jsx-classic').Element} h.JSX.Element\n * @typedef {import('./jsx-classic').IntrinsicAttributes} h.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic').IntrinsicElements} h.JSX.IntrinsicElements\n * @typedef {import('./jsx-classic').ElementChildrenAttribute} h.JSX.ElementChildrenAttribute\n */\n\nimport {html} from 'property-information'\nimport {core} from './core.js'\n\nexport const h = core(html, 'div')\n","/**\n * Map of web namespaces.\n *\n * @type {Record<string, string>}\n */\nexport const webNamespaces = {\n  html: 'http://www.w3.org/1999/xhtml',\n  mathml: 'http://www.w3.org/1998/Math/MathML',\n  svg: 'http://www.w3.org/2000/svg',\n  xlink: 'http://www.w3.org/1999/xlink',\n  xml: 'http://www.w3.org/XML/1998/namespace',\n  xmlns: 'http://www.w3.org/2000/xmlns/'\n}\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('hast').Parent} Parent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {Parent['children'][number]} Child\n * @typedef {Element['children'][number]} ElementChild\n * @typedef {Child|Root} Node\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentType} P5Doctype\n * @typedef {import('parse5').CommentNode} P5Comment\n * @typedef {import('parse5').TextNode} P5Text\n * @typedef {import('parse5').Element} P5Element\n * @typedef {import('parse5').ElementLocation} P5ElementLocation\n * @typedef {import('parse5').Location} P5Location\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {import('parse5').Node} P5Node\n *\n * @typedef {'html'|'svg'} Space\n *\n * @callback Handler\n * @param {Context} ctx\n * @param {P5Node} node\n * @param {Array.<Child>} [children]\n * @returns {Node}\n *\n * @typedef Options\n * @property {Space} [space='html'] Whether the root of the tree is in the `'html'` or `'svg'` space. If an element in with the SVG namespace is found in `ast`, `fromParse5` automatically switches to the SVG space when entering the element, and switches back when leaving\n * @property {VFile} [file] `VFile`, used to add positional information to nodes. If given, the file should have the original HTML source as its contents\n * @property {boolean} [verbose=false] Whether to add extra positional information about starting tags, closing tags, and attributes to elements. Note: not used without `file`\n *\n * @typedef Context\n * @property {Schema} schema\n * @property {VFile|undefined} file\n * @property {boolean|undefined} verbose\n * @property {boolean} location\n */\n\nimport {h, s} from 'hastscript'\nimport {html, svg, find} from 'property-information'\nimport {location} from 'vfile-location'\nimport {webNamespaces} from 'web-namespaces'\n\nconst own = {}.hasOwnProperty\n\n// Handlers.\nconst map = {\n  '#document': root,\n  '#document-fragment': root,\n  '#text': text,\n  '#comment': comment,\n  '#documentType': doctype\n}\n\n/**\n * Transform Parse5’s AST to a hast tree.\n *\n * @param {P5Node} ast\n * @param {Options|VFile} [options]\n */\nexport function fromParse5(ast, options = {}) {\n  /** @type {Options} */\n  let settings\n  /** @type {VFile|undefined} */\n  let file\n\n  if (isFile(options)) {\n    file = options\n    settings = {}\n  } else {\n    file = options.file\n    settings = options\n  }\n\n  return transform(\n    {\n      schema: settings.space === 'svg' ? svg : html,\n      file,\n      verbose: settings.verbose,\n      location: false\n    },\n    ast\n  )\n}\n\n/**\n * Transform children.\n *\n * @param {Context} ctx\n * @param {P5Node} ast\n * @returns {Node}\n */\nfunction transform(ctx, ast) {\n  const schema = ctx.schema\n  /** @type {Handler} */\n  // @ts-expect-error: index is fine.\n  const fn = own.call(map, ast.nodeName) ? map[ast.nodeName] : element\n  /** @type {Array.<Child>|undefined} */\n  let children\n\n  // Element.\n  if ('tagName' in ast) {\n    ctx.schema = ast.namespaceURI === webNamespaces.svg ? svg : html\n  }\n\n  if ('childNodes' in ast) {\n    children = nodes(ctx, ast.childNodes)\n  }\n\n  const result = fn(ctx, ast, children)\n\n  if ('sourceCodeLocation' in ast && ast.sourceCodeLocation && ctx.file) {\n    // @ts-expect-error It’s fine.\n    const position = createLocation(ctx, result, ast.sourceCodeLocation)\n\n    if (position) {\n      ctx.location = true\n      result.position = position\n    }\n  }\n\n  ctx.schema = schema\n\n  return result\n}\n\n/**\n * Transform children.\n *\n * @param {Context} ctx\n * @param {Array.<P5Node>} children\n * @returns {Array.<Child>}\n */\nfunction nodes(ctx, children) {\n  let index = -1\n  /** @type {Array.<Child>} */\n  const result = []\n\n  while (++index < children.length) {\n    // @ts-expect-error Assume no roots in children.\n    result[index] = transform(ctx, children[index])\n  }\n\n  return result\n}\n\n/**\n * Transform a document.\n * Stores `ast.quirksMode` in `node.data.quirksMode`.\n *\n * @type {Handler}\n * @param {P5Document} ast\n * @param {Array.<Child>} children\n * @returns {Root}\n */\nfunction root(ctx, ast, children) {\n  /** @type {Root} */\n  const result = {\n    type: 'root',\n    children,\n    data: {quirksMode: ast.mode === 'quirks' || ast.mode === 'limited-quirks'}\n  }\n\n  if (ctx.file && ctx.location) {\n    const doc = String(ctx.file)\n    const loc = location(doc)\n    result.position = {\n      start: loc.toPoint(0),\n      end: loc.toPoint(doc.length)\n    }\n  }\n\n  return result\n}\n\n/**\n * Transform a doctype.\n *\n * @type {Handler}\n * @returns {Doctype}\n */\nfunction doctype() {\n  // @ts-expect-error Types are out of date.\n  return {type: 'doctype'}\n}\n\n/**\n * Transform a text.\n *\n * @type {Handler}\n * @param {P5Text} ast\n * @returns {Text}\n */\nfunction text(_, ast) {\n  return {type: 'text', value: ast.value}\n}\n\n/**\n * Transform a comment.\n *\n * @type {Handler}\n * @param {P5Comment} ast\n * @returns {Comment}\n */\nfunction comment(_, ast) {\n  return {type: 'comment', value: ast.data}\n}\n\n/**\n * Transform an element.\n *\n * @type {Handler}\n * @param {P5Element} ast\n * @param {Array.<ElementChild>} children\n * @returns {Element}\n */\nfunction element(ctx, ast, children) {\n  const fn = ctx.schema.space === 'svg' ? s : h\n  let index = -1\n  /** @type {Object.<string, string>} */\n  const props = {}\n\n  while (++index < ast.attrs.length) {\n    const attribute = ast.attrs[index]\n    props[(attribute.prefix ? attribute.prefix + ':' : '') + attribute.name] =\n      attribute.value\n  }\n\n  const result = fn(ast.tagName, props, children)\n\n  if (result.tagName === 'template' && 'content' in ast) {\n    const pos = ast.sourceCodeLocation\n    const startTag = pos && pos.startTag && position(pos.startTag)\n    const endTag = pos && pos.endTag && position(pos.endTag)\n\n    /** @type {Root} */\n    // @ts-expect-error Types are wrong.\n    const content = transform(ctx, ast.content)\n\n    if (startTag && endTag && ctx.file) {\n      content.position = {start: startTag.end, end: endTag.start}\n    }\n\n    result.content = content\n  }\n\n  return result\n}\n\n/**\n * Create clean positional information.\n *\n * @param {Context} ctx\n * @param {Node} node\n * @param {P5ElementLocation} location\n * @returns {Position|null}\n */\nfunction createLocation(ctx, node, location) {\n  const result = position(location)\n\n  if (node.type === 'element') {\n    const tail = node.children[node.children.length - 1]\n\n    // Bug for unclosed with children.\n    // See: <https://github.com/inikulin/parse5/issues/109>.\n    if (\n      result &&\n      !location.endTag &&\n      tail &&\n      tail.position &&\n      tail.position.end\n    ) {\n      result.end = Object.assign({}, tail.position.end)\n    }\n\n    if (ctx.verbose) {\n      /** @type {Object.<string, Position|null>} */\n      const props = {}\n      /** @type {string} */\n      let key\n\n      for (key in location.attrs) {\n        if (own.call(location.attrs, key)) {\n          props[find(ctx.schema, key).property] = position(location.attrs[key])\n        }\n      }\n\n      node.data = {\n        position: {\n          opening: position(location.startTag),\n          closing: location.endTag ? position(location.endTag) : null,\n          properties: props\n        }\n      }\n    }\n  }\n\n  return result\n}\n\n/**\n * @param {P5Location} loc\n * @returns {Position|null}\n */\nfunction position(loc) {\n  const start = point({\n    line: loc.startLine,\n    column: loc.startCol,\n    offset: loc.startOffset\n  })\n  const end = point({\n    line: loc.endLine,\n    column: loc.endCol,\n    offset: loc.endOffset\n  })\n  // @ts-expect-error `null` is fine.\n  return start || end ? {start, end} : null\n}\n\n/**\n * @param {Point} point\n * @returns {Point|null}\n */\nfunction point(point) {\n  return point.line && point.column ? point : null\n}\n\n/**\n * @param {VFile|Options} value\n * @returns {value is VFile}\n */\nfunction isFile(value) {\n  return 'messages' in value\n}\n","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {Pick<Point, 'line'|'column'>} PositionalPoint\n * @typedef {Required<Point>} FullPoint\n * @typedef {NonNullable<Point['offset']>} Offset\n */\n\n/**\n * Get transform functions for the given `document`.\n *\n * @param {string|Uint8Array|VFile} file\n */\nexport function location(file) {\n  var value = String(file)\n  /** @type {Array.<number>} */\n  var indices = []\n  var search = /\\r?\\n|\\r/g\n\n  while (search.test(value)) {\n    indices.push(search.lastIndex)\n  }\n\n  indices.push(value.length + 1)\n\n  return {toPoint, toOffset}\n\n  /**\n   * Get the line and column-based `point` for `offset` in the bound indices.\n   * Returns a point with `undefined` values when given invalid or out of bounds\n   * input.\n   *\n   * @param {Offset} offset\n   * @returns {FullPoint}\n   */\n  function toPoint(offset) {\n    var index = -1\n\n    if (offset > -1 && offset < indices[indices.length - 1]) {\n      while (++index < indices.length) {\n        if (indices[index] > offset) {\n          return {\n            line: index + 1,\n            column: offset - (indices[index - 1] || 0) + 1,\n            offset\n          }\n        }\n      }\n    }\n\n    return {line: undefined, column: undefined, offset: undefined}\n  }\n\n  /**\n   * Get the `offset` for a line and column-based `point` in the bound indices.\n   * Returns `-1` when given invalid or out of bounds input.\n   *\n   * @param {PositionalPoint} point\n   * @returns {Offset}\n   */\n  function toOffset(point) {\n    var line = point && point.line\n    var column = point && point.column\n    /** @type {number} */\n    var offset\n\n    if (\n      typeof line === 'number' &&\n      typeof column === 'number' &&\n      !Number.isNaN(line) &&\n      !Number.isNaN(column) &&\n      line - 1 in indices\n    ) {\n      offset = (indices[line - 2] || 0) + column - 1 || 0\n    }\n\n    return offset > -1 && offset < indices[indices.length - 1] ? offset : -1\n  }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('unist-util-is').AssertPredicate<Element>} AssertElement\n * @typedef {import('unist-util-is').AssertPredicate<Text>} AssertText\n * @typedef {import('unist-util-is').AssertPredicate<Root>} AssertRoot\n *\n * @callback CreateElementLike\n * @param {string} name\n * @param {any} attributes\n * @param {Array.<string|any>} [children]\n * @returns {any}\n *\n * @typedef Context\n * @property {html|svg} schema\n * @property {string|null} prefix\n * @property {number} key\n * @property {boolean} react\n * @property {boolean} vue\n * @property {boolean} vdom\n * @property {boolean} hyperscript\n *\n * @typedef Options\n * @property {string|null} [prefix]\n * @property {'html'|'svg'} [space]\n */\n\nimport {html, svg, find, hastToReact} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport style from 'style-to-object'\nimport {webNamespaces} from 'web-namespaces'\nimport {convert} from 'unist-util-is'\n\nconst ns = /** @type {Record<string, string>} */ (webNamespaces)\nconst toReact = /** @type {Record<string, string>} */ (hastToReact)\n\nconst own = {}.hasOwnProperty\n\n/** @type {AssertRoot} */\n// @ts-expect-error it’s correct.\nconst root = convert('root')\n/** @type {AssertElement} */\n// @ts-expect-error it’s correct.\nconst element = convert('element')\n/** @type {AssertText} */\n// @ts-expect-error it’s correct.\nconst text = convert('text')\n\n/**\n * @template {CreateElementLike} H\n * @param {H} h\n * @param {Element|Root} tree\n * @param {string|boolean|Options} [options]\n * @returns {ReturnType<H>}\n */\nexport function toH(h, tree, options) {\n  if (typeof h !== 'function') {\n    throw new TypeError('h is not a function')\n  }\n\n  const r = react(h)\n  const v = vue(h)\n  const vd = vdom(h)\n  /** @type {string|boolean|null|undefined} */\n  let prefix\n  /** @type {Element} */\n  let node\n\n  if (typeof options === 'string' || typeof options === 'boolean') {\n    prefix = options\n    options = {}\n  } else {\n    if (!options) options = {}\n    prefix = options.prefix\n  }\n\n  if (root(tree)) {\n    // @ts-expect-error Allow `doctypes` in there, we’ll filter them out later.\n    node =\n      tree.children.length === 1 && element(tree.children[0])\n        ? tree.children[0]\n        : {\n            type: 'element',\n            tagName: 'div',\n            properties: {},\n            children: tree.children\n          }\n  } else if (element(tree)) {\n    node = tree\n  } else {\n    throw new Error(\n      // @ts-expect-error runtime.\n      'Expected root or element, not `' + ((tree && tree.type) || tree) + '`'\n    )\n  }\n\n  return transform(h, node, {\n    schema: options.space === 'svg' ? svg : html,\n    prefix:\n      prefix === undefined || prefix === null\n        ? r || v || vd\n          ? 'h-'\n          : null\n        : typeof prefix === 'string'\n        ? prefix\n        : prefix\n        ? 'h-'\n        : null,\n    key: 0,\n    react: r,\n    vue: v,\n    vdom: vd,\n    hyperscript: hyperscript(h)\n  })\n}\n\n/**\n * Transform a hast node through a hyperscript interface to *anything*!\n *\n * @template {CreateElementLike} H\n * @param {H} h\n * @param {Element} node\n * @param {Context} ctx\n */\nfunction transform(h, node, ctx) {\n  const parentSchema = ctx.schema\n  let schema = parentSchema\n  let name = node.tagName\n  /** @type {Record<string, unknown>} */\n  const attributes = {}\n  /** @type {Array.<ReturnType<H>|string>} */\n  const nodes = []\n  let index = -1\n  /** @type {string} */\n  let key\n\n  if (parentSchema.space === 'html' && name.toLowerCase() === 'svg') {\n    schema = svg\n    ctx.schema = schema\n  }\n\n  for (key in node.properties) {\n    if (node.properties && own.call(node.properties, key)) {\n      addAttribute(attributes, key, node.properties[key], ctx, name)\n    }\n  }\n\n  if (ctx.vdom) {\n    if (schema.space === 'html') {\n      name = name.toUpperCase()\n    } else if (schema.space) {\n      attributes.namespace = ns[schema.space]\n    }\n  }\n\n  if (ctx.prefix) {\n    ctx.key++\n    attributes.key = ctx.prefix + ctx.key\n  }\n\n  if (node.children) {\n    while (++index < node.children.length) {\n      const value = node.children[index]\n\n      if (element(value)) {\n        nodes.push(transform(h, value, ctx))\n      } else if (text(value)) {\n        nodes.push(value.value)\n      }\n    }\n  }\n\n  // Restore parent schema.\n  ctx.schema = parentSchema\n\n  // Ensure no React warnings are triggered for void elements having children\n  // passed in.\n  return nodes.length > 0\n    ? h.call(node, name, attributes, nodes)\n    : h.call(node, name, attributes)\n}\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n * @param {string} name\n */\n// eslint-disable-next-line complexity, max-params\nfunction addAttribute(props, prop, value, ctx, name) {\n  const info = find(ctx.schema, prop)\n  /** @type {string|undefined} */\n  let subprop\n\n  // Ignore nullish and `NaN` values.\n  // Ignore `false` and falsey known booleans for hyperlike DSLs.\n  if (\n    value === undefined ||\n    value === null ||\n    (typeof value === 'number' && Number.isNaN(value)) ||\n    (value === false && (ctx.vue || ctx.vdom || ctx.hyperscript)) ||\n    (!value && info.boolean && (ctx.vue || ctx.vdom || ctx.hyperscript))\n  ) {\n    return\n  }\n\n  if (Array.isArray(value)) {\n    // Accept `array`.\n    // Most props are space-separated.\n    value = info.commaSeparated ? commas(value) : spaces(value)\n  }\n\n  // Treat `true` and truthy known booleans.\n  if (info.boolean && ctx.hyperscript) {\n    value = ''\n  }\n\n  // VDOM, Vue, and React accept `style` as object.\n  if (\n    info.property === 'style' &&\n    typeof value === 'string' &&\n    (ctx.react || ctx.vue || ctx.vdom)\n  ) {\n    value = parseStyle(value, name)\n  }\n\n  if (ctx.vue) {\n    if (info.property !== 'style') subprop = 'attrs'\n  } else if (!info.mustUseProperty) {\n    if (ctx.vdom) {\n      if (info.property !== 'style') subprop = 'attributes'\n    } else if (ctx.hyperscript) {\n      subprop = 'attrs'\n    }\n  }\n\n  if (subprop) {\n    props[subprop] = Object.assign(props[subprop] || {}, {\n      [info.attribute]: value\n    })\n  } else if (info.space && ctx.react) {\n    props[toReact[info.property] || info.property] = value\n  } else {\n    props[info.attribute] = value\n  }\n}\n\n/**\n * Check if `h` is `react.createElement`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction react(h) {\n  /** @type {unknown} */\n  const node = h('div', {})\n  return Boolean(\n    node &&\n      // @ts-expect-error Looks like a React node.\n      ('_owner' in node || '_store' in node) &&\n      // @ts-expect-error Looks like a React node.\n      (node.key === undefined || node.key === null)\n  )\n}\n\n/**\n * Check if `h` is `hyperscript`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction hyperscript(h) {\n  return 'context' in h && 'cleanup' in h\n}\n\n/**\n * Check if `h` is `virtual-dom/h`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction vdom(h) {\n  /** @type {unknown} */\n  const node = h('div', {})\n  // @ts-expect-error Looks like a vnode.\n  return node.type === 'VirtualNode'\n}\n\n/**\n * Check if `h` is Vue.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction vue(h) {\n  /** @type {unknown} */\n  const node = h('div', {})\n  // @ts-expect-error Looks like a Vue node.\n  return Boolean(node && node.context && node.context._isVue)\n}\n\n/**\n * @param {string} value\n * @param {string} tagName\n * @returns {Record<string, string>}\n */\nfunction parseStyle(value, tagName) {\n  /** @type {Record<string, string>} */\n  const result = {}\n\n  try {\n    style(value, (name, value) => {\n      if (name.slice(0, 4) === '-ms-') name = 'ms-' + name.slice(4)\n\n      result[\n        name.replace(\n          /-([a-z])/g,\n          /**\n           * @param {string} _\n           * @param {string} $1\n           * @returns {string}\n           */ (_, $1) => $1.toUpperCase()\n        )\n      ] = value\n    })\n  } catch (error) {\n    error.message =\n      tagName + '[style]' + error.message.slice('undefined'.length)\n    throw error\n  }\n\n  return result\n}\n","var own = {}.hasOwnProperty\n\n/**\n * @callback Handler\n * @param {...unknown} value\n * @return {unknown}\n *\n * @typedef {Record<string, Handler>} Handlers\n *\n * @typedef {Object} Options\n * @property {Handler} [unknown]\n * @property {Handler} [invalid]\n * @property {Handlers} [handlers]\n */\n\n/**\n * Handle values based on a property.\n *\n * @param {string} key\n * @param {Options} [options]\n */\nexport function zwitch(key, options) {\n  var settings = options || {}\n\n  /**\n   * Handle one value.\n   * Based on the bound `key`, a respective handler will be called.\n   * If `value` is not an object, or doesn’t have a `key` property, the special\n   * “invalid” handler will be called.\n   * If `value` has an unknown `key`, the special “unknown” handler will be\n   * called.\n   *\n   * All arguments, and the context object, are passed through to the handler,\n   * and it’s result is returned.\n   *\n   * @param {...unknown} [value]\n   * @this {unknown}\n   * @returns {unknown}\n   * @property {Handler} invalid\n   * @property {Handler} unknown\n   * @property {Handlers} handlers\n   */\n  function one(value) {\n    var fn = one.invalid\n    var handlers = one.handlers\n\n    if (value && own.call(value, key)) {\n      fn = own.call(handlers, value[key]) ? handlers[value[key]] : one.unknown\n    }\n\n    if (fn) {\n      return fn.apply(this, arguments)\n    }\n  }\n\n  one.handlers = settings.handlers || {}\n  one.invalid = settings.invalid\n  one.unknown = settings.unknown\n\n  return one\n}\n","/**\n * @typedef {import('parse5').Node} P5Node\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentFragment} P5Fragment\n * @typedef {import('parse5').DocumentType} P5Doctype\n * @typedef {import('parse5').CommentNode} P5Comment\n * @typedef {import('parse5').TextNode} P5Text\n * @typedef {import('parse5').Element} P5Element\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {import('parse5').ParentNode} P5Parent\n * @typedef {Exclude<P5Node, P5Document|P5Fragment>} P5Child\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('property-information').Info} Info\n * @typedef {'html'|'svg'} Space\n * @typedef {import('hast').Parent} Parent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {Parent['children'][number]} Child\n * @typedef {Child|Root} Node\n *\n * @callback Handle\n * @param {Node} node\n * @param {Schema} schema\n * @returns {P5Node}\n */\n\nimport {html, svg, find} from 'property-information'\nimport {toH} from 'hast-to-hyperscript'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nvar own = {}.hasOwnProperty\n\nvar one = zwitch('type', {handlers: {root, element, text, comment, doctype}})\n\n/**\n * Transform a tree from hast to Parse5’s AST.\n *\n * @param {Node} tree\n * @param {Space} [space='html']\n * @returns {P5Node}\n */\nexport function toParse5(tree, space) {\n  // @ts-ignore Types are wrong.\n  return one(tree, space === 'svg' ? svg : html)\n}\n\n/**\n * @type {Handle}\n * @param {Root} node\n * @returns {P5Document}\n */\nfunction root(node, schema) {\n  /** @type {P5Document} */\n  var p5 = {\n    nodeName: '#document',\n    mode: (node.data || {}).quirksMode ? 'quirks' : 'no-quirks',\n    childNodes: []\n  }\n  // @ts-ignore Assume correct children.\n  p5.childNodes = all(node.children, p5, schema)\n  return patch(node, p5)\n}\n\n/**\n * @type {Handle}\n * @param {Root} node\n * @returns {P5Fragment}\n */\nfunction fragment(node, schema) {\n  /** @type {P5Fragment} */\n  var p5 = {nodeName: '#document-fragment', childNodes: []}\n  // @ts-ignore Assume correct children.\n  p5.childNodes = all(node.children, p5, schema)\n  return patch(node, p5)\n}\n\n/**\n * @type {Handle}\n * @param {Doctype} node\n * @returns {P5Doctype}\n */\nfunction doctype(node) {\n  return patch(node, {\n    nodeName: '#documentType',\n    name: 'html',\n    publicId: '',\n    systemId: '',\n    parentNode: undefined\n  })\n}\n\n/**\n * @type {Handle}\n * @param {Text} node\n * @returns {P5Text}\n */\nfunction text(node) {\n  return patch(node, {\n    nodeName: '#text',\n    value: node.value,\n    parentNode: undefined\n  })\n}\n\n/**\n * @type {Handle}\n * @param {Comment} node\n * @returns {P5Comment}\n */\nfunction comment(node) {\n  return patch(node, {\n    nodeName: '#comment',\n    data: node.value,\n    parentNode: undefined\n  })\n}\n\n/**\n * @type {Handle}\n * @param {Element} node\n * @returns {P5Element}\n */\nfunction element(node, schema) {\n  /** @type {Space} */\n  // @ts-ignore Assume space.\n  var space = schema.space\n  return toH(h, Object.assign({}, node, {children: []}), {space})\n\n  /**\n   * @param {string} name\n   * @param {Object.<string, string|boolean|number>} attrs\n   */\n  function h(name, attrs) {\n    /** @type {Array.<P5Attribute>} */\n    var values = []\n    /** @type {Info} */\n    var info\n    /** @type {P5Attribute} */\n    var value\n    /** @type {string} */\n    var key\n    /** @type {number} */\n    var index\n    /** @type {P5Element} */\n    var p5\n\n    for (key in attrs) {\n      if (!own.call(attrs, key) || attrs[key] === false) {\n        continue\n      }\n\n      info = find(schema, key)\n\n      if (info.boolean && !attrs[key]) {\n        continue\n      }\n\n      value = {name: key, value: attrs[key] === true ? '' : String(attrs[key])}\n\n      if (info.space && info.space !== 'html' && info.space !== 'svg') {\n        index = key.indexOf(':')\n\n        if (index < 0) {\n          value.prefix = ''\n        } else {\n          value.name = key.slice(index + 1)\n          value.prefix = key.slice(0, index)\n        }\n\n        value.namespace = webNamespaces[info.space]\n      }\n\n      values.push(value)\n    }\n\n    if (schema.space === 'html' && node.tagName === 'svg') schema = svg\n\n    p5 = patch(node, {\n      nodeName: name,\n      tagName: name,\n      attrs: values,\n      namespaceURI: webNamespaces[schema.space],\n      childNodes: [],\n      parentNode: undefined\n    })\n\n    // @ts-ignore Assume correct children.\n    p5.childNodes = all(node.children, p5, schema)\n\n    // @ts-ignore Types are wrong.\n    if (name === 'template') p5.content = fragment(node.content, schema)\n\n    return p5\n  }\n}\n\n/**\n * @param {Array.<Child>} children\n * @param {P5Parent} p5\n * @param {Schema} schema\n * @returns {Array.<P5Child>}\n */\nfunction all(children, p5, schema) {\n  var index = -1\n  /** @type {Array.<P5Child>} */\n  var result = []\n  /** @type {P5Child} */\n  var child\n\n  if (children) {\n    while (++index < children.length) {\n      // @ts-ignore Assume child.\n      child = one(children[index], schema)\n\n      // @ts-ignore types are wrong.\n      child.parentNode = p5\n\n      result.push(child)\n    }\n  }\n\n  return result\n}\n\n/**\n * Patch specific properties.\n *\n * @template {P5Node} T\n * @param {Node} node\n * @param {T} p5\n * @returns {T}\n */\nfunction patch(node, p5) {\n  var position = node.position\n\n  if (position && position.start && position.end) {\n    // @ts-ignore Types are wrong.\n    p5.sourceCodeLocation = {\n      startLine: position.start.line,\n      startCol: position.start.column,\n      startOffset: position.start.offset,\n      endLine: position.end.line,\n      endCol: position.end.column,\n      endOffset: position.end.offset\n    }\n  }\n\n  return p5\n}\n","/**\n * List of HTML void tag names.\n *\n * @type {Array<string>}\n */\nexport const htmlVoidElements = [\n  'area',\n  'base',\n  'basefont',\n  'bgsound',\n  'br',\n  'col',\n  'command',\n  'embed',\n  'frame',\n  'hr',\n  'image',\n  'img',\n  'input',\n  'isindex',\n  'keygen',\n  'link',\n  'menuitem',\n  'meta',\n  'nextid',\n  'param',\n  'source',\n  'track',\n  'wbr'\n]\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentFragment} P5Fragment\n * @typedef {Omit<import('parse5').Element, 'parentNode'>} P5Element\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {Omit<import('parse5').Location, 'startOffset' | 'endOffset'> & {startOffset: number|undefined, endOffset: number|undefined}} P5Location\n * @typedef {import('parse5').ParserOptions} P5ParserOptions\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Content} Content\n * @typedef {Root|Content} Node\n * @typedef {import('../complex-types').Raw} Raw\n *\n * @typedef {Omit<Comment, 'value'> & {value: {stitch: Node}}} Stitch\n *\n * @typedef Options\n * @property {Array<string>} [passThrough]\n *   List of custom hast node types to pass through (keep) in hast.\n *   If the passed through nodes have children, those children are expected to\n *   be hast and will be handled.\n *\n * @typedef HiddenTokenizer\n * @property {Array<HiddenLocationTracker>} __mixins\n *   Way too simple, but works for us.\n * @property {HiddenPreprocessor} preprocessor\n * @property {(value: string) => void} write\n * @property {() => number} _consume\n * @property {Array<HiddenToken>} tokenQueue\n * @property {string} state\n * @property {string} returnState\n * @property {number} charRefCode\n * @property {Array<number>} tempBuff\n * @property {Function} _flushCodePointsConsumedAsCharacterReference\n * @property {string} lastStartTagName\n * @property {number} consumedAfterSnapshot\n * @property {boolean} active\n * @property {HiddenToken|undefined} currentCharacterToken\n * @property {HiddenToken|undefined} currentToken\n * @property {unknown} currentAttr\n * @property {Function} NAMED_CHARACTER_REFERENCE_STATE\n * @property {Function} NUMERIC_CHARACTER_REFERENCE_END_STATE\n *\n * @typedef {Record<string, unknown> & {location: P5Location}} HiddenToken\n *\n * @typedef HiddenPreprocessor\n * @property {string|undefined} html\n * @property {number} pos\n * @property {number} lastGapPos\n * @property {number} lastCharPos\n * @property {Array<number>} gapStack\n * @property {boolean} skipNextNewLine\n * @property {boolean} lastChunkWritten\n * @property {boolean} endOfChunkHit\n *\n * @typedef HiddenLocationTracker\n * @property {P5Location|undefined} currentAttrLocation\n * @property {P5Location} ctLoc\n * @property {HiddenPosTracker} posTracker\n *\n * @typedef HiddenPosTracker\n * @property {boolean} isEol\n * @property {number} lineStartPos\n * @property {number} droppedBufferSize\n * @property {number} offset\n * @property {number} col\n * @property {number} line\n */\n\n// @ts-expect-error: untyped.\nimport Parser from 'parse5/lib/parser/index.js'\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {visit} from 'unist-util-visit'\nimport {fromParse5} from 'hast-util-from-parse5'\nimport {toParse5} from 'hast-util-to-parse5'\nimport {htmlVoidElements} from 'html-void-elements'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nconst inTemplateMode = 'IN_TEMPLATE_MODE'\nconst dataState = 'DATA_STATE'\nconst characterToken = 'CHARACTER_TOKEN'\nconst startTagToken = 'START_TAG_TOKEN'\nconst endTagToken = 'END_TAG_TOKEN'\nconst commentToken = 'COMMENT_TOKEN'\nconst doctypeToken = 'DOCTYPE_TOKEN'\n\n/** @type {P5ParserOptions} */\nconst parseOptions = {sourceCodeLocationInfo: true, scriptingEnabled: false}\n\n/**\n * Given a hast tree and an optional vfile (for positional info), return a new\n * parsed-again hast tree.\n *\n * @param tree\n *   Original hast tree.\n * @param file\n *   Virtual file for positional info, optional.\n * @param options\n *   Configuration.\n */\nexport const raw =\n  /**\n   * @type {(\n   *   ((tree: Node, file: VFile|undefined, options?: Options) => Node) &\n   *   ((tree: Node, options?: Options) => Node)\n   * )}\n   */\n  (\n    /**\n     * @param {Node} tree\n     * @param {VFile} [file]\n     * @param {Options} [options]\n     */\n    function (tree, file, options) {\n      let index = -1\n      const parser = new Parser(parseOptions)\n      const one = zwitch('type', {\n        // @ts-expect-error: hush.\n        handlers: {root, element, text, comment, doctype, raw: handleRaw},\n        // @ts-expect-error: hush.\n        unknown\n      })\n      /** @type {boolean|undefined} */\n      let stitches\n      /** @type {HiddenTokenizer|undefined} */\n      let tokenizer\n      /** @type {HiddenPreprocessor|undefined} */\n      let preprocessor\n      /** @type {HiddenPosTracker|undefined} */\n      let posTracker\n      /** @type {HiddenLocationTracker|undefined} */\n      let locationTracker\n\n      if (isOptions(file)) {\n        options = file\n        file = undefined\n      }\n\n      if (options && options.passThrough) {\n        while (++index < options.passThrough.length) {\n          // @ts-expect-error: hush.\n          one.handlers[options.passThrough[index]] = stitch\n        }\n      }\n\n      const result = fromParse5(\n        documentMode(tree) ? document() : fragment(),\n        file\n      )\n\n      if (stitches) {\n        visit(result, 'comment', (node, index, parent) => {\n          const stitch = /** @type {Stitch} */ (/** @type {unknown} */ (node))\n          if (stitch.value.stitch && parent !== null && index !== null) {\n            // @ts-expect-error: assume the stitch is allowed.\n            parent.children[index] = stitch.value.stitch\n            return index\n          }\n        })\n      }\n\n      // Unpack if possible and when not given a `root`.\n      if (\n        tree.type !== 'root' &&\n        result.type === 'root' &&\n        result.children.length === 1\n      ) {\n        return result.children[0]\n      }\n\n      return result\n\n      /**\n       * @returns {P5Fragment}\n       */\n      function fragment() {\n        /** @type {P5Element} */\n        const context = {\n          nodeName: 'template',\n          tagName: 'template',\n          attrs: [],\n          namespaceURI: webNamespaces.html,\n          childNodes: []\n        }\n        /** @type {P5Element} */\n        const mock = {\n          nodeName: 'documentmock',\n          tagName: 'documentmock',\n          attrs: [],\n          namespaceURI: webNamespaces.html,\n          childNodes: []\n        }\n        /** @type {P5Fragment} */\n        const doc = {nodeName: '#document-fragment', childNodes: []}\n\n        parser._bootstrap(mock, context)\n        parser._pushTmplInsertionMode(inTemplateMode)\n        parser._initTokenizerForFragmentParsing()\n        parser._insertFakeRootElement()\n        parser._resetInsertionMode()\n        parser._findFormInFragmentContext()\n\n        tokenizer = parser.tokenizer\n        /* c8 ignore next */\n        if (!tokenizer) throw new Error('Expected `tokenizer`')\n        preprocessor = tokenizer.preprocessor\n        locationTracker = tokenizer.__mixins[0]\n        posTracker = locationTracker.posTracker\n\n        one(tree)\n\n        resetTokenizer()\n\n        parser._adoptNodes(mock.childNodes[0], doc)\n\n        return doc\n      }\n\n      /**\n       * @returns {P5Document}\n       */\n      function document() {\n        /** @type {P5Document} */\n        const doc = parser.treeAdapter.createDocument()\n\n        parser._bootstrap(doc, undefined)\n        tokenizer = parser.tokenizer\n        /* c8 ignore next */\n        if (!tokenizer) throw new Error('Expected `tokenizer`')\n        preprocessor = tokenizer.preprocessor\n        locationTracker = tokenizer.__mixins[0]\n        posTracker = locationTracker.posTracker\n\n        one(tree)\n\n        resetTokenizer()\n\n        return doc\n      }\n\n      /**\n       * @param {Array<Content>} nodes\n       * @returns {void}\n       */\n      function all(nodes) {\n        let index = -1\n\n        /* istanbul ignore else - invalid nodes, see rehypejs/rehype-raw#7. */\n        if (nodes) {\n          while (++index < nodes.length) {\n            one(nodes[index])\n          }\n        }\n      }\n\n      /**\n       * @param {Root} node\n       * @returns {void}\n       */\n      function root(node) {\n        all(node.children)\n      }\n\n      /**\n       * @param {Element} node\n       * @returns {void}\n       */\n      function element(node) {\n        resetTokenizer()\n        parser._processToken(startTag(node), webNamespaces.html)\n\n        all(node.children)\n\n        if (!htmlVoidElements.includes(node.tagName)) {\n          resetTokenizer()\n          parser._processToken(endTag(node))\n        }\n      }\n\n      /**\n       * @param {Text} node\n       * @returns {void}\n       */\n      function text(node) {\n        resetTokenizer()\n        parser._processToken({\n          type: characterToken,\n          chars: node.value,\n          location: createParse5Location(node)\n        })\n      }\n\n      /**\n       * @param {Doctype} node\n       * @returns {void}\n       */\n      function doctype(node) {\n        resetTokenizer()\n        parser._processToken({\n          type: doctypeToken,\n          name: 'html',\n          forceQuirks: false,\n          publicId: '',\n          systemId: '',\n          location: createParse5Location(node)\n        })\n      }\n\n      /**\n       * @param {Comment|Stitch} node\n       * @returns {void}\n       */\n      function comment(node) {\n        resetTokenizer()\n        parser._processToken({\n          type: commentToken,\n          data: node.value,\n          location: createParse5Location(node)\n        })\n      }\n\n      /**\n       * @param {Raw} node\n       * @returns {void}\n       */\n      function handleRaw(node) {\n        const start = pointStart(node)\n        const line = start.line || 1\n        const column = start.column || 1\n        const offset = start.offset || 0\n\n        /* c8 ignore next 4 */\n        if (!preprocessor) throw new Error('Expected `preprocessor`')\n        if (!tokenizer) throw new Error('Expected `tokenizer`')\n        if (!posTracker) throw new Error('Expected `posTracker`')\n        if (!locationTracker) throw new Error('Expected `locationTracker`')\n\n        // Reset preprocessor:\n        // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/tokenizer/preprocessor.js#L17>.\n        preprocessor.html = undefined\n        preprocessor.pos = -1\n        preprocessor.lastGapPos = -1\n        preprocessor.lastCharPos = -1\n        preprocessor.gapStack = []\n        preprocessor.skipNextNewLine = false\n        preprocessor.lastChunkWritten = false\n        preprocessor.endOfChunkHit = false\n\n        // Reset preprocessor mixin:\n        // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/position-tracking/preprocessor-mixin.js>.\n        posTracker.isEol = false\n        posTracker.lineStartPos = -column + 1 // Looks weird, but ensures we get correct positional info.\n        posTracker.droppedBufferSize = offset\n        posTracker.offset = 0\n        posTracker.col = 1\n        posTracker.line = line\n\n        // Reset location tracker:\n        // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/location-info/tokenizer-mixin.js>.\n        locationTracker.currentAttrLocation = undefined\n        locationTracker.ctLoc = createParse5Location(node)\n\n        // See the code for `parse` and `parseFragment`:\n        // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/parser/index.js#L371>.\n        tokenizer.write(node.value)\n        parser._runParsingLoop(null)\n\n        // Character references hang, so if we ended there, we need to flush\n        // those too.\n        // We reset the preprocessor as if the document ends here.\n        // Then one single call to the relevant state does the trick, parse5\n        // consumes the whole token.\n        if (\n          tokenizer.state === 'NAMED_CHARACTER_REFERENCE_STATE' ||\n          tokenizer.state === 'NUMERIC_CHARACTER_REFERENCE_END_STATE'\n        ) {\n          preprocessor.lastChunkWritten = true\n          tokenizer[tokenizer.state](tokenizer._consume())\n        }\n      }\n\n      /**\n       * @param {Node} node\n       */\n      function stitch(node) {\n        stitches = true\n\n        /** @type {Node} */\n        let clone\n\n        // Recurse, because to somewhat handle `[<x>]</x>` (where `[]` denotes the\n        // passed through node).\n        if ('children' in node) {\n          clone = {\n            ...node,\n            children: raw(\n              {type: 'root', children: node.children},\n              file,\n              options\n              // @ts-expect-error Assume a given parent yields a parent.\n            ).children\n          }\n        } else {\n          clone = {...node}\n        }\n\n        // Hack: `value` is supposed to be a string, but as none of the tools\n        // (`parse5` or `hast-util-from-parse5`) looks at it, we can pass nodes\n        // through.\n        comment({type: 'comment', value: {stitch: clone}})\n      }\n\n      function resetTokenizer() {\n        /* c8 ignore next 2 */\n        if (!tokenizer) throw new Error('Expected `tokenizer`')\n        if (!posTracker) throw new Error('Expected `posTracker`')\n\n        // Process final characters if they’re still there after hibernating.\n        // Similar to:\n        // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/location-info/tokenizer-mixin.js#L95>.\n        const token = tokenizer.currentCharacterToken\n\n        if (token) {\n          token.location.endLine = posTracker.line\n          token.location.endCol = posTracker.col + 1\n          token.location.endOffset = posTracker.offset + 1\n          parser._processToken(token)\n        }\n\n        // Reset tokenizer:\n        // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/tokenizer/index.js#L218-L234>.\n        // Especially putting it back in the `data` state is useful: some elements,\n        // like textareas and iframes, change the state.\n        // See GH-7.\n        // But also if broken HTML is in `raw`, and then a correct element is given.\n        // See GH-11.\n        tokenizer.tokenQueue = []\n        tokenizer.state = dataState\n        tokenizer.returnState = ''\n        tokenizer.charRefCode = -1\n        tokenizer.tempBuff = []\n        tokenizer.lastStartTagName = ''\n        tokenizer.consumedAfterSnapshot = -1\n        tokenizer.active = false\n        tokenizer.currentCharacterToken = undefined\n        tokenizer.currentToken = undefined\n        tokenizer.currentAttr = undefined\n      }\n    }\n  )\n/**\n * @param {Element} node\n * @returns {HiddenToken}\n */\nfunction startTag(node) {\n  /** @type {P5Location} */\n  const location = Object.assign(createParse5Location(node))\n  // @ts-expect-error extra positional info.\n  location.startTag = Object.assign({}, location)\n\n  // Untyped token.\n  return {\n    type: startTagToken,\n    tagName: node.tagName,\n    selfClosing: false,\n    attrs: attributes(node),\n    location\n  }\n}\n\n/**\n * @param {Element} node\n * @returns {Array<P5Attribute>}\n */\nfunction attributes(node) {\n  return toParse5({\n    tagName: node.tagName,\n    type: 'element',\n    properties: node.properties,\n    children: []\n    // @ts-expect-error Assume element.\n  }).attrs\n}\n\n/**\n * @param {Element} node\n * @returns {HiddenToken}\n */\nfunction endTag(node) {\n  /** @type {P5Location} */\n  const location = Object.assign(createParse5Location(node))\n  // @ts-expect-error extra positional info.\n  location.startTag = Object.assign({}, location)\n\n  // Untyped token.\n  return {\n    type: endTagToken,\n    tagName: node.tagName,\n    attrs: [],\n    location\n  }\n}\n\n/**\n * @param {Node} node\n */\nfunction unknown(node) {\n  throw new Error('Cannot compile `' + node.type + '` node')\n}\n\n/**\n * @param {Node} node\n * @returns {boolean}\n */\nfunction documentMode(node) {\n  const head = node.type === 'root' ? node.children[0] : node\n  return Boolean(\n    head &&\n      (head.type === 'doctype' ||\n        (head.type === 'element' && head.tagName === 'html'))\n  )\n}\n\n/**\n * @param {Node|Stitch} node\n * @returns {P5Location}\n */\nfunction createParse5Location(node) {\n  const start = pointStart(node)\n  const end = pointEnd(node)\n\n  return {\n    startLine: start.line,\n    startCol: start.column,\n    startOffset: start.offset,\n    endLine: end.line,\n    endCol: end.column,\n    endOffset: end.offset\n  }\n}\n\n/**\n * @param {VFile|Options|undefined} value\n * @return {value is Options}\n */\nfunction isOptions(value) {\n  return Boolean(value && !('message' in value && 'messages' in value))\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-raw').Options} Options\n * @typedef {import('hast-util-raw')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {raw} from 'hast-util-raw'\n\n/**\n * Plugin to parse the tree again (and raw nodes).\n * Keeping positional info OK.  🙌\n *\n * @type {import('unified').Plugin<[Options?] | Array<void>, Root>}\n */\nexport default function rehypeRaw(options = {}) {\n  return (tree, file) => {\n    // Assume that when a root was given, it’s also returned.\n    const result = /** @type {Root} */ (raw(tree, file, options))\n    return result\n  }\n}\n","import * as React from \"react\";\nconst SVGComponent = (props) => (\n  <svg\n    height={512}\n    style={{\n      enableBackground: \"new 0 0 512 512\",\n    }}\n    viewBox=\"0 0 512 512\"\n    width={512}\n    xmlSpace=\"preserve\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    role=\"img\"\n    {...props}\n  >\n    <path d=\"m184.7 413.1 2.1-1.8 156.5-136c5.3-4.6 8.6-11.5 8.6-19.2 0-7.7-3.4-14.6-8.6-19.2L187.1 101l-2.6-2.3C182 97 179 96 175.8 96c-8.7 0-15.8 7.4-15.8 16.6v286.8c0 9.2 7.1 16.6 15.8 16.6 3.3 0 6.4-1.1 8.9-2.9z\" />\n    <path\n      style={{\n        fill: \"#fff\",\n        strokeWidth: 0.498539,\n      }}\n      d=\"M171.101 414.868c-4.514-1.611-8.561-5.771-10.18-10.464-.834-2.42-1.217-288.516-.393-293.894.907-5.921 3.926-10.216 8.895-12.657 3.95-1.94 9.155-1.937 12.793.007 3.343 1.785 161.905 139.906 164.376 143.184 3.021 4.01 4.472 8.2 4.757 13.742.186 3.605.037 5.49-.609 7.727-1.173 4.064-3.454 8.202-5.94 10.774-1.146 1.186-37.704 33.115-81.239 70.955-55.39 48.142-79.907 69.15-81.66 69.97-3.43 1.606-7.454 1.85-10.8.656z\"\n    />\n  </svg>\n);\nexport default SVGComponent;\n","import * as React from \"react\";\nconst SVGComponent = (props) => (\n  <svg\n    height={512}\n    style={{\n      enableBackground: \"new 0 0 512 512\",\n    }}\n    viewBox=\"0 0 512 512\"\n    width={512}\n    xmlSpace=\"preserve\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    role=\"img\"\n    {...props}\n  >\n    <path d=\"m98.9 184.7 1.8 2.1 136 156.5c4.6 5.3 11.5 8.6 19.2 8.6 7.7 0 14.6-3.4 19.2-8.6L411 187.1l2.3-2.6c1.7-2.5 2.7-5.5 2.7-8.7 0-8.7-7.4-15.8-16.6-15.8H112.6c-9.2 0-16.6 7.1-16.6 15.8 0 3.3 1.1 6.4 2.9 8.9z\" />\n    <path\n      style={{\n        fill: \"#fff\",\n        strokeWidth: 0.498539,\n      }}\n      d=\"M248.273 350.336c-4.083-1.397-7.187-3.22-9.662-5.673-1.064-1.054-32.92-37.549-70.793-81.098-48.133-55.35-69.23-79.958-70.096-81.76-1.803-3.758-1.753-8.546.131-12.382 2.335-4.755 6.517-7.824 12.058-8.848 4.16-.769 288.018-.769 292.178 0 5.54 1.024 9.723 4.093 12.058 8.848 1.847 3.762 1.927 9.146.186 12.495-1.265 2.433-139.44 161.51-142.47 164.02-6.161 5.108-16.1 6.96-23.59 4.398z\"\n    />\n  </svg>\n);\nexport default SVGComponent;\n","import './App.css';\nimport { useState, useCallback } from \"react\";\nimport data from \"./data\";\nimport ReactMarkdown from 'react-markdown';\nimport { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';\n// Theme examples: https://react-syntax-highlighter.github.io/react-syntax-highlighter/demo/prism.html\nimport { coldarkDark } from 'react-syntax-highlighter/dist/esm/styles/prism';\nimport remarkGfm from 'remark-gfm';\nimport rehypeRaw from 'rehype-raw';\nimport RightArrow from \"./components/right_arrow\";\nimport DownArrow from \"./components/down_arrow\";\n\n// TODO: Future, have a way to bookmark to specific entries\n\n// Copy icon reference:\n// https://github.com/react-syntax-highlighter/react-syntax-highlighter/issues/132\n\nfunction debounce(fn, wait, immediate) {\n  let timeout;\n\n  return (...args) => {\n    const context = this;\n\n    const later = () => {\n      timeout = null;\n      if (!immediate) fn.apply(context, args);\n    };\n\n    const callNow = immediate && !timeout;\n    clearTimeout(timeout);\n    timeout = setTimeout(later, wait);\n\n    if (callNow) {\n      fn.apply(context, args);\n    }\n  };\n}\n\n// const types = data.items.map(item => item.type);\n\nfunction filterData(data, filter = \"\", typeFilter = \"all\") {\n  // console.warn(\"filterData\");\n  \n  if (typeFilter === \"all\" && filter.length) return data;\n\n  const typeFilteredItems = {};\n  typeFilteredItems.items = typeFilter !== \"all\" ? data.items.filter(item => item.type === typeFilter) : data.items;\n\n  if (filter.length) return typeFilteredItems;\n\n  const filtered = {};\n  filtered.items = filter.length ? typeFilteredItems.items.filter(item => {\n    // console.warn(\"title\", filter.toLowerCase(), item.title.toLowerCase(), item.title.toLowerCase().includes(filter.toLowerCase()));\n    // console.warn(\"content\", filter.toLowerCase(), item.content.toLowerCase(), item.content.toLowerCase().includes(filter.toLowerCase()));\n    return item.title.toLowerCase().includes(filter.toLowerCase()) || item.content.toLowerCase().includes(filter.toLowerCase());\n  }) : typeFilteredItems.items;\n\n  return filtered;\n};\n\nfunction App() {\n  const [filter, setFilter] = useState(\"\");\n  const [typeFilter, setTypeFilter] = useState(\"all\");\n  const [expandedItems, setExpandedItems] = useState([]);\n  const [expandedCategories, setExpandedCategories] = useState([]);\n  // Alphabetize categories\n  // data.items.sort((fa, fb) => {\n  //   if (fa.category < fb.category) {\n  //     return -1;\n  //   }\n  //   if (fa.category > fb.category) {\n  //       return 1;\n  //   }\n  //   return 0;\n  // });\n  function handleFilter(event) {\n    // console.warn(\"handleFilter\");\n    debounce(setFilter(event.target.value), 300);\n  }\n\n  const handleExpandItem = useCallback((event) => {\n    // console.warn(\"handleExpandItem\");\n    const newExpanded = expandedItems.includes(event) ? expandedItems.filter(i => i !== event) : [...expandedItems, event];\n    setExpandedItems(newExpanded);\n  }, [expandedItems]);\n\n  const handleCategoryClick = useCallback((event) => {\n    // console.warn(\"handleCategoryClick\");\n    const newExpandedCategory = expandedCategories.includes(event) ? expandedCategories.filter(i => i !== event) : [...expandedCategories, event];\n    setExpandedCategories(newExpandedCategory);\n  }, [expandedCategories]);\n\n  function expandAll() {\n    setExpandedCategories(data.categories.map(category => category.title));\n  }\n\n  function collapseAll() {\n    setExpandedItems([]);\n    setExpandedCategories([]);\n  }\n\n  // function handleTypeFilterClick(type) {\n  //   // console.warn(\"handleTypeFilterClick\");\n  //   setTypeFilter(type);\n  // }\n\n  function clearFilters() {\n    setFilter(\"\");\n    setTypeFilter(\"all\");\n  }\n\n  // console.warn(\"expandedCategories\", expandedCategories);\n  // console.warn(\"expandedItems\", expandedItems);\n  const filtered = filter.length || typeFilter !== \"all\" ? filterData(data, filter, typeFilter) : data;\n  // console.warn(\"render\");\n  return (\n    <div className=\"App\">\n      <div className={\"inputFilter\"}>\n        <span align=\"center\"><input type=\"text\" onChange={handleFilter} value={filter} /> Search</span>\n        <span align=\"center\"> 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝<a href=\"https://github.com/tteck/Proxmox/blob/main/LICENSE\"><img alt=\"License MIT\" src=\"https://img.shields.io/badge/license-MIT-blue\" /></a> <a href=\"https://github.com/tteck/Proxmox/discussions\"><img src=\"https://img.shields.io/badge/%F0%9F%92%AC-Discussions-teal\" alt=\"Discussions\" /></a> <a href=\"https://github.com/tteck/Proxmox/blob/main/CHANGELOG.md\"><img src=\"https://img.shields.io/badge/🔶-Changelog-maroon\" alt=\"Changelog\" /></a> <a href=\"https://github.com/tteck/Proxmox/blob/main/USER_SUBMITTED_GUIDES.md\"><img src=\"https://img.shields.io/badge/🧭-Guides-navy\" alt=\"Guides\" /></a> <a href=\"https://ko-fi.com/D1D7EP4GF\"><img src=\"https://img.shields.io/badge/%E2%98%95-Buy%20me%20a%20coffee-brown\" alt=\"Buy me a coffee\" /></a></span>\n        {/* <span className=\"typeFilter\">Type: {[\"all\", ...new Set(types)].map(type =>\n          <span onClick={() => handleTypeFilterClick(type)} key={type} className={typeFilter === type ? \"typeFilterSelected\" : \"typeFilterNotSelected\"}> {type} </span>\n        )}</span> */}\n      </div>\n      {filtered.items.length === 0 && <div>No items match your criteria <button onClick={clearFilters}>Clear Filters</button></div>}\n      <div><span onClick={expandAll}>  󠀠 󠀠 󠀠➕ 󠀠 󠀠</span>  󠀠 <span onClick={collapseAll}> 󠀠 󠀠 󠀠➖ 󠀠 󠀠</span></div>\n      {filtered.items?.map((item, index) => {\n        return <div className={\"App-items\"} key={item.title} >\n          {/** Show Category \n            * Since Categories are flatted, only show the category the first time it appears while mapping through.\n            */}\n          {(index === 0 || filtered.items[index === 0 ? 0 : index - 1].category !== item.category) && <div onClick={() => handleCategoryClick(item.category)} className={\"itemCategory\"}>\n            {/* <img className={\"categoryLogo\"} src={data.categories.filter(category => category.title === item.category)[0]?.logo_url || data.categories[0].logo_url} alt=\"logo\" /> */}\n            {item.category}{(((filter && item.title.toLowerCase().includes(filter.toLowerCase())) || expandedItems.includes(item.title)) || expandedCategories.includes(item.category)) ? <DownArrow className=\"navArrow\" alt=\"Expanded\" /> : <RightArrow className=\"navArrow\" alt=\"Collapsed\" />} </div>}\n\n          {/* Show Item Title */}\n          {(((filter && item.title.toLowerCase().includes(filter.toLowerCase())) || expandedItems.includes(item.title)) || expandedCategories.includes(item.category)) && <span onClick={() => handleExpandItem(item.title)} className={\"itemTitle\"}>{item.title}</span>}\n\n          {\n            ((filter && item.title.toLowerCase().includes(filter.toLowerCase())) || expandedItems.includes(item.title)) && <div className=\"item\">\n              <ReactMarkdown\n                children={item.content}\n                remarkPlugins={[remarkGfm]}\n                rehypePlugins={[rehypeRaw]}\n                components={{\n                  code({ node, inline, className, children, ...props }) {\n                    const match = /language-(\\w+)/.exec(className || '');\n                    return !inline && match ? (\n                      <>\n                        <CopyButton valueToCopy={String(children)} />\n                        <SyntaxHighlighter\n                          children={String(children).replace(/\\n$/, '')}\n                          style={coldarkDark}\n                          language={match[1]}\n                          PreTag=\"div\"\n                          {...props}\n                        />\n                      </>\n                    ) : (\n                      <code className={className} {...props}>\n                        {children}\n                      </code>\n                    );\n                  }\n                }}\n              />\n            </div>}\n        </div>;\n      })}\n    </div>\n  );\n}\nfunction CopyButton({ valueToCopy }) {\n  function handleClick(text) {\n    navigator.clipboard.writeText(text);\n  }\n\n  return <button onClick={() => handleClick(valueToCopy)}>Copy</button>;\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.css';\nimport App from './App';\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n  <React.StrictMode>\n    <App />\n  </React.StrictMode>\n);\n\n"],"names":["hasOwn","Object","prototype","hasOwnProperty","toStr","toString","defineProperty","gOPD","getOwnPropertyDescriptor","isArray","arr","Array","call","isPlainObject","obj","key","hasOwnConstructor","hasIsPrototypeOf","constructor","setProperty","target","options","name","enumerable","configurable","value","newValue","writable","getProperty","module","exports","extend","src","copy","copyIsArray","clone","arguments","i","length","deep","selector","defaultTagName","subvalue","previous","match","props","start","search","lastIndex","exec","slice","index","id","className","push","type","tagName","properties","children","find","require","normalize","parseSelector","spaces","commas","schema","caseSensitive","adjust","values","result","toLowerCase","createAdjustMap","property","node","own","isChildren","unshift","addProperty","addChild","content","info","undefined","spaceSeparated","commaSeparated","commaOrSpaceSeparated","join","style","concat","parsePrimitive","parsePrimitives","isNode","nodes","Error","String","number","positiveNumber","isNaN","Number","boolean","overloadedBoolean","html","factory","displayName","val","input","indexOf","end","trim","DefinedInfo","Info","data","normal","prop","Type","valid","test","charAt","attribute","replace","dash","camelcase","toUpperCase","datasetToProperty","cap","kebab","datasetToAttribute","$0","merge","xlink","xml","xmlns","aria","types","create","booleanish","transform","_","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","caseInsensitiveTransform","space","attributes","acceptcharset","classname","htmlfor","httpequiv","mustUseProperty","abbr","accept","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","alt","as","async","autoCapitalize","autoComplete","autoFocus","autoPlay","capture","charSet","checked","cite","cols","colSpan","contentEditable","controls","controlsList","coords","crossOrigin","dateTime","decoding","default","defer","dir","dirName","disabled","download","draggable","encType","enterKeyHint","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","kind","label","lang","language","list","loading","loop","low","manifest","max","maxLength","media","method","min","minLength","multiple","muted","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforePrint","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextMenu","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","open","optimum","pattern","ping","placeholder","playsInline","poster","preload","readOnly","referrerPolicy","rel","required","reversed","rows","rowSpan","sandbox","scope","scoped","seamless","selected","shape","size","sizes","slot","span","spellCheck","srcDoc","srcLang","srcSet","step","tabIndex","title","translate","typeMustMatch","useMap","width","wrap","align","aLink","archive","axis","background","bgColor","border","borderColor","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","clear","code","codeBase","codeType","color","compact","declare","event","face","frame","frameBorder","hSpace","leftMargin","link","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","object","profile","prompt","rev","rightMargin","rules","scheme","scrolling","standby","summary","text","topMargin","valueType","version","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","prefix","results","security","unselectable","caseSensitiveTransform","Schema","definition","defined","checks","checksLength","mask","check","mark","this","proto","xtend","definitions","apply","powers","increment","Math","pow","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xmlLang","xmlBase","xmlSpace","xmlnsxlink","xmlnsXLink","split","whiteSpace","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","str","TypeError","lineno","column","updatePosition","lines","lastIndexOf","position","line","Position","whitespace","source","errorsList","error","msg","err","reason","filename","silent","re","m","comments","c","comment","pos","declaration","ret","decl","decls","declarations","character","charCodeAt","alphabetical","decimal","isBuffer","el","characters","entity","document","createElement","innerHTML","textContent","legacy","invalid","hexadecimal","alphanumerical","decodeEntity","option","settings","defaults","indent","entityCharacters","namedEntity","terminated","reference","following","warning","output","begin","prev","next","diff","additional","nonTerminated","handleText","handleReference","handleWarning","textContext","referenceContext","warningContext","queue","now","parseError","noop","fromCharCode","hexa","deci","tests","prohibited","parseInt","bases","disallowed","flush","offset","messages","parse","Function","DOCUMENT_MODE","VALID_DOCTYPE_NAME","QUIRKS_MODE_PUBLIC_ID_PREFIXES","QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES","QUIRKS_MODE_PUBLIC_IDS","LIMITED_QUIRKS_PUBLIC_ID_PREFIXES","LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES","enquoteDoctypeId","quote","hasPrefix","publicId","prefixes","isConforming","token","systemId","getDocumentMode","QUIRKS","LIMITED_QUIRKS","NO_QUIRKS","serializeContent","controlCharacterInInputStream","noncharacterInInputStream","surrogateInInputStream","nonVoidHtmlElementStartTagWithTrailingSolidus","endTagWithAttributes","endTagWithTrailingSolidus","unexpectedSolidusInTag","unexpectedNullCharacter","unexpectedQuestionMarkInsteadOfTagName","invalidFirstCharacterOfTagName","unexpectedEqualsSignBeforeAttributeName","missingEndTagName","unexpectedCharacterInAttributeName","unknownNamedCharacterReference","missingSemicolonAfterCharacterReference","unexpectedCharacterAfterDoctypeSystemIdentifier","unexpectedCharacterInUnquotedAttributeValue","eofBeforeTagName","eofInTag","missingAttributeValue","missingWhitespaceBetweenAttributes","missingWhitespaceAfterDoctypePublicKeyword","missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers","missingWhitespaceAfterDoctypeSystemKeyword","missingQuoteBeforeDoctypePublicIdentifier","missingQuoteBeforeDoctypeSystemIdentifier","missingDoctypePublicIdentifier","missingDoctypeSystemIdentifier","abruptDoctypePublicIdentifier","abruptDoctypeSystemIdentifier","cdataInHtmlContent","incorrectlyOpenedComment","eofInScriptHtmlCommentLikeText","eofInDoctype","nestedComment","abruptClosingOfEmptyComment","eofInComment","incorrectlyClosedComment","eofInCdata","absenceOfDigitsInNumericCharacterReference","nullCharacterReference","surrogateCharacterReference","characterReferenceOutsideUnicodeRange","controlCharacterReference","noncharacterCharacterReference","missingWhitespaceBeforeDoctypeName","missingDoctypeName","invalidCharacterSequenceAfterDoctypeName","duplicateAttribute","nonConformingDoctype","missingDoctype","misplacedDoctype","endTagWithoutMatchingOpenElement","closingOfElementWithOpenChildElements","disallowedContentInNoscriptInHead","openElementsLeftAfterEof","abandonedHeadElementChild","misplacedStartTagForHeadElement","nestedNoscriptInHead","eofInElementThatCanContainOnlyText","Tokenizer","HTML","$","TAG_NAMES","NS","NAMESPACES","ATTRS","MIME_TYPES","SVG_ATTRS_ADJUSTMENT_MAP","attributename","attributetype","basefrequency","baseprofile","calcmode","clippathunits","diffuseconstant","edgemode","filterunits","glyphref","gradienttransform","gradientunits","kernelmatrix","kernelunitlength","keypoints","keysplines","keytimes","lengthadjust","limitingconeangle","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","numoctaves","pathlength","patterncontentunits","patterntransform","patternunits","pointsatx","pointsaty","pointsatz","preservealpha","preserveaspectratio","primitiveunits","refx","refy","repeatcount","repeatdur","requiredextensions","requiredfeatures","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","surfacescale","systemlanguage","tablevalues","targetx","targety","textlength","viewbox","viewtarget","xchannelselector","ychannelselector","zoomandpan","XML_ATTRS_ADJUSTMENT_MAP","namespace","XLINK","XML","XMLNS","SVG_TAG_NAMES_ADJUSTMENT_MAP","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","clippath","feblend","fecolormatrix","fecomponenttransfer","fecomposite","feconvolvematrix","fediffuselighting","fedisplacementmap","fedistantlight","feflood","fefunca","fefuncb","fefuncg","fefuncr","fegaussianblur","feimage","femerge","femergenode","femorphology","feoffset","fepointlight","fespecularlighting","fespotlight","fetile","feturbulence","foreignobject","lineargradient","radialgradient","textpath","EXITS_FOREIGN_CONTENT","B","BIG","BLOCKQUOTE","BODY","BR","CENTER","CODE","DD","DIV","DL","DT","EM","EMBED","H1","H2","H3","H4","H5","H6","HEAD","HR","I","IMG","LI","LISTING","MENU","META","NOBR","OL","P","PRE","RUBY","S","SMALL","SPAN","STRONG","STRIKE","SUB","SUP","TABLE","TT","U","UL","VAR","causesExit","startTagToken","tn","FONT","getTokenAttr","COLOR","SIZE","FACE","adjustTokenMathMLAttrs","attrs","adjustTokenSVGAttrs","adjustedAttrName","adjustTokenXMLAttrs","adjustedAttrEntry","adjustTokenSVGTagName","adjustedTagName","isIntegrationPoint","ns","foreignNS","MATHML","ANNOTATION_XML","ENCODING","SVG","FOREIGN_OBJECT","DESC","TITLE","isHtmlIntegrationPoint","MI","MO","MN","MS","MTEXT","isMathMLTextIntegrationPoint","TYPE","ACTION","PROMPT","NAME","A","ADDRESS","APPLET","AREA","ARTICLE","ASIDE","BASE","BASEFONT","BGSOUND","BUTTON","CAPTION","COL","COLGROUP","DETAILS","DIALOG","DIR","FIELDSET","FIGCAPTION","FIGURE","FOOTER","FORM","FRAME","FRAMESET","HEADER","HGROUP","IMAGE","INPUT","IFRAME","KEYGEN","LABEL","LINK","MAIN","MALIGNMARK","MARQUEE","MATH","MGLYPH","NAV","NOFRAMES","NOEMBED","NOSCRIPT","OBJECT","OPTGROUP","OPTION","PARAM","PLAINTEXT","RB","RP","RT","RTC","SCRIPT","SECTION","SELECT","SOURCE","STYLE","SUMMARY","TBODY","TEMPLATE","TEXTAREA","TFOOT","TD","TH","THEAD","TR","TRACK","WBR","XMP","SPECIAL_ELEMENTS","UNDEFINED_CODE_POINTS","REPLACEMENT_CHARACTER","CODE_POINTS","EOF","NULL","TABULATION","CARRIAGE_RETURN","LINE_FEED","FORM_FEED","SPACE","EXCLAMATION_MARK","QUOTATION_MARK","NUMBER_SIGN","AMPERSAND","APOSTROPHE","HYPHEN_MINUS","SOLIDUS","DIGIT_0","DIGIT_9","SEMICOLON","LESS_THAN_SIGN","EQUALS_SIGN","GREATER_THAN_SIGN","QUESTION_MARK","LATIN_CAPITAL_A","LATIN_CAPITAL_F","LATIN_CAPITAL_X","LATIN_CAPITAL_Z","RIGHT_SQUARE_BRACKET","GRAVE_ACCENT","LATIN_SMALL_A","LATIN_SMALL_F","LATIN_SMALL_X","LATIN_SMALL_Z","CODE_POINT_SEQUENCES","DASH_DASH_STRING","DOCTYPE_STRING","CDATA_START_STRING","SCRIPT_STRING","PUBLIC_STRING","SYSTEM_STRING","isSurrogate","cp","isSurrogatePair","getSurrogatePairCodePoint","cp1","cp2","isControlCodePoint","isUndefinedCodePoint","ErrorReportingMixinBase","host","opts","posTracker","onParseError","startLine","endLine","startCol","endCol","col","startOffset","endOffset","_setErrorLocation","mxn","_err","_reportError","ErrorReportingTokenizerMixin","LocationInfoTokenizerMixin","Mixin","ErrorReportingParserMixin","parser","ctLoc","locBeforeToken","orig","_bootstrap","fragmentContext","install","tokenizer","_processInputToken","location","beforeToken","PositionTrackingPreprocessorMixin","ErrorReportingPreprocessorMixin","preprocessor","lastErrOffset","preprocessorMixin","LocationInfoOpenElementStackMixin","stack","onItemPop","pop","current","popAllUpToHtmlElement","stackTop","items","remove","element","LocationInfoParserMixin","treeAdapter","lastStartTagToken","lastFosterParentingLocation","currentToken","loc","assign","startTag","setNodeSourceCodeLocation","closingToken","getNodeSourceCodeLocation","getTagName","endLoc","END_TAG_TOKEN","endTag","updateNodeSourceCodeLocation","tokenizerMixin","openElements","_setEndLocation","_runParsingLoop","scriptHandler","_processTokenInForeignContent","_processToken","hasInScope","_setDocumentType","documentChildren","getChildNodes","cnLength","isDocumentTypeNode","_attachElementToTree","_setStartLocation","_appendElement","namespaceURI","_insertElement","_insertTemplate","tmplContent","getTemplateContent","_insertFakeRootElement","_appendCommentNode","parent","commentNode","_findFosterParentingLocation","_insertCharacters","hasFosterParent","_shouldFosterParentOnInsertion","currentTmplContent","siblings","textNodeIdx","beforeElement","textNode","currentAttrLocation","currentAttr","methods","_createStartTagToken","_createEndTagToken","_createCommentToken","_createDoctypeToken","initialName","_createCharacterToken","ch","currentCharacterToken","_createEOFToken","_getCurrentLocation","_createAttr","attrNameFirstCh","_leaveAttrName","toState","_attachCurrentAttrLocationInfo","_leaveAttrValue","_emitCurrentToken","EOF_TOKEN","_emitCurrentCharacterToken","keys","MODE","forEach","modeName","state","isEol","lineStartPos","droppedBufferSize","advance","retreat","dropParsedChunk","prevPos","reduction","FormattingElementList","entries","bookmark","newElement","candidates","neAttrsLength","getAttrList","neTagName","neNamespaceURI","getNamespaceURI","entry","MARKER_ENTRY","elementAttrs","idx","_getNoahArkConditionCandidates","cLength","neAttrs","neAttrsMap","neAttr","j","cAttr","splice","NOAH_ARK_CAPACITY","_ensureNoahArkCondition","ELEMENT_ENTRY","bookmarkIdx","OpenElementStack","defaultTreeAdapter","mergeOptions","doctype","foreignContent","ERR","unicode","DEFAULT_OPTIONS","scriptingEnabled","sourceCodeLocationInfo","HIDDEN_INPUT_TYPE","INITIAL_MODE","BEFORE_HTML_MODE","BEFORE_HEAD_MODE","IN_HEAD_MODE","IN_HEAD_NO_SCRIPT_MODE","AFTER_HEAD_MODE","IN_BODY_MODE","TEXT_MODE","IN_TABLE_MODE","IN_TABLE_TEXT_MODE","IN_CAPTION_MODE","IN_COLUMN_GROUP_MODE","IN_TABLE_BODY_MODE","IN_ROW_MODE","IN_CELL_MODE","IN_SELECT_MODE","IN_SELECT_IN_TABLE_MODE","IN_TEMPLATE_MODE","AFTER_BODY_MODE","IN_FRAMESET_MODE","AFTER_FRAMESET_MODE","AFTER_AFTER_BODY_MODE","AFTER_AFTER_FRAMESET_MODE","INSERTION_MODE_RESET_MAP","TEMPLATE_INSERTION_MODE_SWITCH_MAP","TOKEN_HANDLERS","CHARACTER_TOKEN","tokenInInitialMode","NULL_CHARACTER_TOKEN","WHITESPACE_CHARACTER_TOKEN","ignoreToken","COMMENT_TOKEN","appendComment","DOCTYPE_TOKEN","p","mode","forceQuirks","setDocumentMode","insertionMode","START_TAG_TOKEN","tokenBeforeHtml","tokenBeforeHead","startTagInBody","headElement","tokenInHead","insertCharacters","startTagInHead","endTagInHead","tokenInHeadNoScript","tokenAfterHead","framesetOk","characterInBody","whitespaceCharacterInBody","endTagInBody","eofInBody","pendingScript","originalInsertionMode","characterInTable","startTagInTable","endTagInTable","pendingCharacterTokens","hasNonWhitespacePendingCharacterToken","tokenInTableText","hasInTableScope","generateImpliedEndTags","popUntilTagNamePopped","activeFormattingElements","clearToLastMarker","tokenInColumnGroup","ackSelfClosing","currentTagName","clearBackToTableBodyContext","_insertFakeElement","hasTableBodyContextInTableScope","clearBackToTableRowContext","insertMarker","_closeTableCell","startTagInSelect","endTagInSelect","_resetInsertionMode","newInsertionMode","_popTmplInsertionMode","_pushTmplInsertionMode","eofInTemplate","tokenAfterBody","stopParsing","isRootHtmlElementCurrent","tokenAfterAfterBody","appendCommentToDocument","Parser","createDocument","write","documentMock","_initTokenizerForFragmentParsing","_findFormInFragmentContext","rootElement","getFirstChild","fragment","createDocumentFragment","_adoptNodes","stopped","formElement","tmplInsertionModeStack","tmplInsertionModeStackTop","currentTmplInsertionMode","skipNextNewLine","fosterParentingEnabled","_setupTokenizerCDATAMode","getNextToken","HIBERNATION_TOKEN","chars","substr","writeCallback","script","_getAdjustedCurrentElement","allowCDATA","_isIntegrationPoint","nextTokenizerState","getParentNode","RCDATA","RAWTEXT","SCRIPT_DATA","setDocumentType","_fosterParentElement","appendChild","tmpl","setTemplateContent","createCommentNode","_fosterParentText","insertText","donor","recipient","child","detachNode","isCharacterToken","characterInForeignContent","nullCharacterInForeignContent","currentNs","selfClosing","startTagInForeignContent","popUntilElementPopped","endTagInForeignContent","_shouldProcessTokenInForeignContent","listLength","unopenIdx","contains","popUntilTableCellPopped","generateImpliedEndTagsWithExclusion","last","_resetInsertionModeForSelect","selectIdx","ancestor","_isElementCausesFosterParenting","openElement","insertBefore","insertTextBefore","aaObtainFormattingElementEntry","formattingElementEntry","getElementEntryInScopeWithTagName","removeEntry","genericEndTagInBody","aaObtainFurthestBlock","furthestBlock","_isSpecialElement","aaInnerLoop","formattingElement","lastElement","nextElement","getCommonAncestor","elementEntry","getElementEntry","counterOverflow","aaRecreateElementFromEntry","aaInsertLastNodeInCommonAncestor","commonAncestor","aaReplaceFormattingElement","insertElementAfterBookmark","insertAfter","callAdoptionAgency","_switchToTextParsing","tmplCount","generateImpliedEndTagsThoroughly","errCode","_reconstructActiveFormattingElements","addressStartTagInBody","hasInButtonScope","_closePElement","preStartTagInBody","bStartTagInBody","pushElement","appletStartTagInBody","areaStartTagInBody","paramStartTagInBody","noembedStartTagInBody","optgroupStartTagInBody","rbStartTagInBody","genericStartTagInBody","activeElementEntry","aStartTagInBody","numberedHeaderStartTagInBody","elementTn","closeTn","listItemStartTagInBody","hrStartTagInBody","rtStartTagInBody","xmpStartTagInBody","svgStartTagInBody","adoptAttributes","htmlStartTagInBody","bodyElement","tryPeekProperlyNestedBodyElement","bodyStartTagInBody","inTemplate","formStartTagInBody","nobrStartTagInBody","mathStartTagInBody","menuStartTagInBody","tableStartTagInBody","inputType","inputStartTagInBody","imageStartTagInBody","buttonStartTagInBody","iframeStartTagInBody","selectStartTagInBody","framesetStartTagInBody","textareaStartTagInBody","plaintextStartTagInBody","addressEndTagInBody","appletEndTagInBody","pEndTagInBody","hasInListItemScope","liEndTagInBody","ddEndTagInBody","hasNumberedHeaderInScope","popUntilNumberedHeaderPopped","numberedHeaderEndTagInBody","brEndTagInBody","bodyEndTagInBody","htmlEndTagInBody","formEndTagInBody","curTn","tokenInTable","clearBackToTableContext","tdStartTagInTable","colStartTagInTable","formStartTagInTable","tableStartTagInTable","tbodyStartTagInTable","inputStartTagInTable","captionStartTagInTable","colgroupStartTagInTable","savedFosterParentingState","_processTokenInBodyMode","hasInSelectScope","prevOpenElement","prevOpenElementTn","isImpliedEndTagRequired","isImpliedEndTagRequiredThoroughly","isScopingElement","_isInTemplate","_updateCurrentElement","oldElement","_indexOf","referenceElement","insertionIdx","poppedElement","elementIdx","exclusionTagName","Preprocessor","neTree","$$","C1_CONTROLS_REFERENCE_REPLACEMENTS","DATA_STATE","RCDATA_STATE","RAWTEXT_STATE","SCRIPT_DATA_STATE","PLAINTEXT_STATE","TAG_OPEN_STATE","END_TAG_OPEN_STATE","TAG_NAME_STATE","RCDATA_LESS_THAN_SIGN_STATE","RCDATA_END_TAG_OPEN_STATE","RCDATA_END_TAG_NAME_STATE","RAWTEXT_LESS_THAN_SIGN_STATE","RAWTEXT_END_TAG_OPEN_STATE","RAWTEXT_END_TAG_NAME_STATE","SCRIPT_DATA_LESS_THAN_SIGN_STATE","SCRIPT_DATA_END_TAG_OPEN_STATE","SCRIPT_DATA_END_TAG_NAME_STATE","SCRIPT_DATA_ESCAPE_START_STATE","SCRIPT_DATA_ESCAPE_START_DASH_STATE","SCRIPT_DATA_ESCAPED_STATE","SCRIPT_DATA_ESCAPED_DASH_STATE","SCRIPT_DATA_ESCAPED_DASH_DASH_STATE","SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE","SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE","SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE","SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE","SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE","BEFORE_ATTRIBUTE_NAME_STATE","ATTRIBUTE_NAME_STATE","AFTER_ATTRIBUTE_NAME_STATE","BEFORE_ATTRIBUTE_VALUE_STATE","ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE","ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE","ATTRIBUTE_VALUE_UNQUOTED_STATE","AFTER_ATTRIBUTE_VALUE_QUOTED_STATE","SELF_CLOSING_START_TAG_STATE","BOGUS_COMMENT_STATE","MARKUP_DECLARATION_OPEN_STATE","COMMENT_START_STATE","COMMENT_START_DASH_STATE","COMMENT_STATE","COMMENT_LESS_THAN_SIGN_STATE","COMMENT_LESS_THAN_SIGN_BANG_STATE","COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE","COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE","COMMENT_END_DASH_STATE","COMMENT_END_STATE","COMMENT_END_BANG_STATE","DOCTYPE_STATE","BEFORE_DOCTYPE_NAME_STATE","DOCTYPE_NAME_STATE","AFTER_DOCTYPE_NAME_STATE","AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE","BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE","DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE","DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE","AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE","BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE","AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE","BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE","DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE","DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE","AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE","BOGUS_DOCTYPE_STATE","CDATA_SECTION_STATE","CDATA_SECTION_BRACKET_STATE","CDATA_SECTION_END_STATE","CHARACTER_REFERENCE_STATE","NAMED_CHARACTER_REFERENCE_STATE","AMBIGUOUS_AMPERSAND_STATE","NUMERIC_CHARACTER_REFERENCE_STATE","HEXADEMICAL_CHARACTER_REFERENCE_START_STATE","DECIMAL_CHARACTER_REFERENCE_START_STATE","HEXADEMICAL_CHARACTER_REFERENCE_STATE","DECIMAL_CHARACTER_REFERENCE_STATE","NUMERIC_CHARACTER_REFERENCE_END_STATE","isWhitespace","isAsciiDigit","isAsciiUpper","isAsciiLower","isAsciiLetter","isAsciiAlphaNumeric","isAsciiUpperHexDigit","isAsciiLowerHexDigit","toAsciiLowerCodePoint","toChar","toAsciiLowerChar","findNamedEntityTreeBranch","nodeIx","branchCount","lo","hi","mid","midCp","tokenQueue","returnState","charRefCode","tempBuff","lastStartTagName","consumedAfterSnapshot","active","_consume","_unconsume","_ensureHibernation","shift","chunk","isLastChunk","insertHtmlAtCurrentPos","endOfChunkHit","startCp","consumedCount","isMatch","patternLength","patternPos","patternCp","ct","_appendCharToCurrentCharacterToken","codePoints","_emitCodePoint","excess","inNode","HAS_DATA_FLAG","withSemicolon","_isCharacterReferenceInAttribute","nextCp","_emitSeveralCodePoints","_emitEOFToken","_emitChars","_reconsumeInState","_isTempBufferEqualToScriptString","_consumeSequenceIfMatch","_flushCodePointsConsumedAsCharacterReference","matchResult","_matchNamedCharacterReference","_isCharacterReferenceAttributeQuirk","_errOnNextCodePoint","isAsciiHexDigit","replacement","DATA","attrName","Uint16Array","lastGapPos","lastCharPos","gapStack","lastChunkWritten","bufferWaterline","_addGap","substring","_processSurrogate","_checkForProblematicCharacters","nodeName","childNodes","parentNode","createTextNode","newNode","referenceNode","templateElement","contentElement","doctypeNode","prevNode","recipientAttrsMap","getTextNodeContent","getCommentNodeContent","getDocumentTypeNodeName","getDocumentTypeNodePublicId","getDocumentTypeNodeSystemId","isTextNode","isCommentNode","isElementNode","sourceCodeLocation","endLocation","reduce","merged","optObj","originalMethods","overriddenMethods","_getOverriddenMethods","Ctor","__mixins","mixin","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","string","symbol","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","aa","ca","a","b","encodeURIComponent","da","Set","ea","fa","ha","add","ia","window","ja","ka","la","ma","v","d","e","f","g","acceptsBooleans","attributeName","attributeNamespace","propertyName","sanitizeURL","removeEmptyString","z","ra","sa","ta","pa","qa","oa","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","Symbol","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","Ma","Na","Oa","prepareStackTrace","set","Reflect","construct","l","h","k","includes","Pa","tag","render","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","Va","_valueTracker","get","getValue","setValue","stopTracking","Ua","Wa","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","ownerDocument","eb","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","valueOf","firstChild","removeChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","tb","menuitem","area","base","br","embed","hr","img","keygen","meta","param","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","addEventListener","removeEventListener","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","date","datetime","email","month","password","range","tel","time","url","week","me","ne","oe","listeners","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","Oe","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","defaultView","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","instance","listener","D","of","has","pf","qf","rf","random","sf","bind","passive","n","t","J","x","u","w","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","setTimeout","Gf","clearTimeout","Hf","Promise","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","context","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","eventTime","lane","payload","callback","dh","K","eh","fh","gh","q","r","y","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","ref","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","done","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","gi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","pi","qi","ri","destroy","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","message","digest","Li","Mi","console","Ni","WeakMap","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","suppressHydrationWarning","onclick","createElementNS","T","Hj","Ij","Jj","Kj","Lj","WeakSet","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","display","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","ceil","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","cache","pendingSuspenseBoundaries","dl","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","querySelectorAll","JSON","stringify","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","SuspenseList","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isSuspenseList","isValidElementType","getModuleId","typeOf","StyleToObject","hasIterator","len","__self","__source","jsx","jsxs","setState","forceUpdate","escape","_status","_result","Children","map","count","toArray","only","PureComponent","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","ctx","globalThis","self","global","restore","Prism","manual","disableWorkerMessageHandler","decode","markup","css","clike","js","Refractor","refract","register","grammar","languages","highlight","sup","util","alias","registered","listLanguages","encode","tokens","Token","env","stringifyAll","classes","hooks","run","refractor","abap","lookbehind","keyword","operator","punctuation","aliases","abnf","coreRules","greedy","inside","terminal","repetition","RegExp","rule","actionscript","ada","variable","agda","function","antlr4","command","annotation","constant","g4","apacheconf","regex","refractorSql","apex","keywords","insertClassName","classNameInside","sql","trigger","apl","statement","assignment","dfn","applescript","aql","identifier","refractorCpp","arduino","builtin","ino","arff","asciidoc","quoted","interpreted","table","specifiers","admonition","callout","macro","inline","italic","bold","copyFromAsciiDoc","o","rest","adoc","asm6502","directive","asmatmel","refractorCsharp","aspnet","csharp","javascript","autohotkey","important","autoit","avisynth","replacements","allinternals","argument","avs","avroIdl","avdl","bash","envVars","commandAfterHeredoc","insideString","environment","shebang","toBeCopied","shell","basic","batch","parameter","bbcode","shortcode","bicep","interpolation","expression","datatype","decorator","birb","metadata","refractorC","bison","delimiter","bnf","rbnf","brainfuck","pointer","decrement","branching","brightscript","bro","bsl","oscript","cfscript","cfc","chaiscript","cpp","cil","clojure","cmake","inserted","cobol","level","coffeescript","coffee","concurnas","langext","conc","coq","commentSource","punct","modName","generic","refractorRuby","crystal","ruby","args","expansion","nested","depthLog2","keywordKinds","keywordsToPattern","words","typeDeclarationKeywords","nonTypeKeywords","nonContextualKeywords","nestedRound","genericName","typeExpressionWithoutTuple","tupleElement","tuple","typeExpression","typeInside","regularString","verbatimString","regularStringOrCharacter","regularStringCharacterOrComment","roundExpression","attrTarget","attr","formatString","mInterpolationRound","mInterpolation","sInterpolationRound","sInterpolation","createInterpolationInside","interpolationRound","dotnet","cs","cshtml","commentLike","stringLike","round","square","curly","angle","tagAttrs","tagContent","tagRegion","block","razor","csp","none","hash","cssExtras","selectorInside","class","combinator","unit","hexcode","atrule","addInlined","addAttribute","csv","cypher","relationship","dart","packagePrefix","generics","dataweave","dax","measure","dhall","coord","PREFIXES","unchanged","refractorMarkupTemplating","django","filter","markupTemplating","buildPlaceholders","tokenizePlaceholders","jinja2","dnsZoneFile","docker","spaceAfterBackSlash","stringRule","commentRule","instruction","dockerfile","dot","ID","IDInside","withID","gv","ebnf","special","editorconfig","section","eiffel","ejs","eta","elixir","doc","atom","elm","hvariable","erb","erlang","refractorLua","etlua","lua","excelFormula","sheet","file","path","cell","row","factor","comment_inside","string_inside","regexp","combinators","arrToWordsRegExp","builtins","$false","firestoreSecurityRules","flow","fortran","fsharp","ftl","FTL_EXPR","gap","continuation","gcode","checksum","gdscript","gedcom","gherkin","tableRow","pystring","feature","scenario","outline","git","deleted","glsl","gml","gamemakerlanguage","gn","gni","goModule","go","graphql","description","markdown","scalar","validTokens","currentIndex","startToken","inputVariables","isTokenType","getToken","definitionEnd","findClosingBracket","addAlias","mutationEnd","varToken","close","stackHeight","groovy","haml","filters","all_filters","handlebars","brackets","hbs","haskell","hs","haxe","reification","hcl","heredoc","hlsl","hoon","hpkp","hsts","http","headerValueOf","uri","header","langs","httpLanguages","json","plain","suffixTypes","getSuffixPattern","contentType","suffix","ichigojam","icon","icuMessageFormat","stringPattern","argumentSource","nestedMessage","refractorHaskell","idris","idr","iecst","address","ignore","gitignore","hgignore","npmignore","inform7","substitution","verb","ini","io","adverb","conjunction","java","classNamePrefix","refractorJava","refractorJavadoclike","javadoc","codeLinePattern","memberReference","field","javadoclike","addSupport","javaDocLike","docLanguage","tokenName","docCommentSupport","hashbang","javastacktrace","exceptions","more","jexl","jolie","aggregates","redirects","jq","stringInterpolation","jsExtras","withId","imports","spread","arrow","dom","maybeClassNameTokens","jsTemplates","templateString","templateLiteralPattern","interpolationObject","interpolationPunctuationObject","interpolationPattern","createTemplate","getPlaceholder","counter","tokenizeWithHooks","tokenize","tokenizeInterpolationExpression","tempGrammar","tokenizeEmbedded","_tokens","placeholderCounter","placeholderMap","embeddedTokens","interpolationExpression","placeholders","walkTokens","s","before","middle","after","afterTokens","Boolean","supportedLanguages","typescript","ts","tsx","stringContent","findTemplateStrings","embedded","refractorTypescript","jsdoc","parameterPrefix","example","null","webmanifest","refractorJson","json5","jsonp","jsstacktrace","braces","stringifyToken","openedTags","notTagNorBrace","openedBraces","plainText","julia","keepalived","ip","keyman","kotlin","interpolationInside","kt","kts","kumir","nonId","wrapId","prolog","kum","kusto","latex","funcPattern","insideEqu","cdata","equation","headline","tex","refractorPhp","latte","php","markupLatte","less","refractorScheme","lilypond","schemeExpression","ly","liquid","empty","insideRaw","tagMatch","lisp","simple_form","primitive","marker","par","nestedPar","heading","interactive","defvar","defun","lambda","car","arg","varform","forms","arglist","sublist","elisp","emacs","livescript","llvm","exception","separator","domain","uuid","lolcode","magma","generator","makefile","inner","createInline","tableCell","tableLine","yaml","blockquote","strike","codeLang","codeBlock","cls","tagPattern","fromCodePoint","known","KNOWN_ENTITY_NAMES","plugins","autoloader","floor","loadLanguages","ele","getElementById","amp","lt","gt","quot","defineProperties","placeholderPattern","replaceFilter","tokenStack","includedCdataInside","def","mathml","svg","ssml","rss","matlab","maxscript","mel","flag","mermaid","mizar","mongodb","operators","operatorsSource","monkey","moonscript","moon","n1ql","n4js","n4jsd","nand2tetrisHdl","naniscript","expressionDef","params","getTextContent","define","nani","bracket","bracketsIndex","isBracketsBalanced","nasm","neon","literal","nevod","fields","quantifier","colon","nginx","nim","nix","antiquotation","nsis","objectivec","objc","ocaml","variant","opencl","openqasm","qasm","oz","parigp","pascal","asm","objectpascal","pascaligo","accum","pcaxis","tlist","px","peoplecode","pcode","perl","filehandle","phpExtras","package","string_interpolation","phpdoc","plsql","powerquery","pq","mscript","powershell","processing","promql","vectorMatching","protobuf","builtinTypes","psl","pug","each","branch","filter_pattern","puppet","pure","inlineLanguageRe","purebasic","pbfasm","purescript","purs","python","py","qml","jsString","jsComment","jsExpr","qore","qsharp","qualifiedName","interpolationExpr","qs","ellipsis","racket","rkt","specialEscape","rangeChar","groupName","backreference","anchor","group","alternation","rego","renpy","rpy","rip","roboconf","component","optional","wildcard","robotframework","createSection","extendecInside","docTag","testNameLike","testPropertyLike","documentation","variables","tasks","robot","percentExpression","symbolName","rust","multilineComment","sas","numericConstant","macroVariable","macroKeyword","format","equals","altformat","globalStatements","submitStatement","actionSets","casActions","datalines","sass","scala","SortedBNF","scss","refractorBash","shellSession","strings","user","smali","smalltalk","smarty","smartyPattern","smartyLiteralMode","sml","word","smlnj","solidity","sol","solutionFile","guid","soy","numberPattern","soyLitteralMode","refractorTurtle","sparql","rq","splunkSpl","sqf","squirrel","stan","higherOrderFunctions","constraint","stylus","swift","nil","omit","systemd","quotesSource","refractorT4Templating","t4Cs","t4","createT4","t4Templating","createBlock","contentAlias","insideLang","standard","refractorVbnet","t4Vb","refractorYaml","tap","fail","pass","pragma","bailout","plan","subtest","yamlish","tcl","textile","modifierRegex","parenthesesRegex","withModifier","modifierTokens","phrase","modifier","image","footnote","acronym","phraseInside","nestedPatterns","phraseInlineInside","phraseTableInside","toml","insertKey","tremor","extractor","troy","trickle","refractorJsx","tt2","turtle","trig","twig","at","typoscript","tsconfig","unrealscript","category","uscript","uorazor","query","pair","authority","port","vala","refractorBasic","vbnet","velocity","unparsed","verilog","vhdl","vim","visualBasic","vba","warpscript","wasm","webIdl","wiki","emphasis","nowiki","wolfram","blank","mathematica","wren","xeora","xeoracube","xmlDoc","insertDocComment","docComment","slashDocComment","tickDocComment","xojo","xquery","extension","anchorOrAlias","plainKey","createValuePattern","yml","yang","zig","IDENTIFIER","ALIGN","_self","uniqueId","plainTextGrammar","objId","deepClone","visited","getLanguage","parentElement","setLanguage","classList","currentScript","scripts","getElementsByTagName","isActive","defaultActivation","no","plaintext","txt","redef","insert","root","newToken","old","DFS","propertyType","highlightAll","highlightAllUnder","container","elements","highlightElement","insertHighlightedCode","highlightedCode","hasAttribute","Worker","worker","onmessage","evt","postMessage","immediateClose","tokenList","LinkedList","addAfter","head","matchGrammar","all","callbacks","matchedStr","matchPattern","lookbehindLength","startNode","startPos","rematch","patterns","cause","patternObj","currentNode","reach","removeCount","from","to","matchStr","removeFrom","removeRange","nestedRematch","highlightAutomaticallyCallback","readyState","requestAnimationFrame","WorkerGlobalScope","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","ReferenceError","__esModule","Constructor","_defineProperties","descriptor","protoProps","staticProps","getPrototypeOf","isNativeReflectConstruct","possibleConstructorReturn","Derived","hasNativeReflectConstruct","Super","NewTarget","superPropBase","_get","receiver","desc","_getPrototypeOf","setPrototypeOf","__proto__","subClass","superClass","sham","Proxy","_typeof","assertThisInitialized","_setPrototypeOf","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","toStringTag","_defineProperty","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread2","getOwnPropertyDescriptors","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","_arrayLikeToArray","arr2","_iterableToArray","iter","_unsupportedIterableToArray","minLen","_toConsumableArray","_arrayWithHoles","_nonIterableRest","_slicedToArray","_i","_s","_e","_arr","_n","_d","_classCallCheck","_createClass","_inherits","_isNativeReflectConstruct","_assertThisInitialized","_possibleConstructorReturn","_createSuper","_construct","Parent","Class","_wrapNativeSuper","_cache","fn","Wrapper","stringifyPosition","point","VFileMessage","place","origin","parts","fatal","ruleId","actual","expected","note","basename","ext","assertPath","seenNonSlash","firstNonSlashEnd","extIndex","dirname","unmatchedSlash","extname","startPart","startDot","preDotState","joined","segments","sep","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","normalizeString","proc","cwd","isUrl","fileURLOrPath","urlToPath","URL","protocol","hostname","pathname","third","decodeURIComponent","getPathFromURLPosix","VFile","buffer","history","stored","assertNonEmpty","assertPart","stem","encoding","part","_toArray","bail","middleware","called","parameters","fnExpectsCallback","unified","frozen","transformers","fns","pipeline","middlewareIndex","use","middelware","trough","attachers","freezeIndex","processor","assertUnfrozen","Compiler","freeze","attacher","transformer","POSITIVE_INFINITY","addPlugin","addList","addPreset","plugin","isPlainObj","vfile","assertParser","newable","assertCompiler","assertNode","compile","executor","reject","tree","runSync","complete","assertDone","process","processSync","destination","asyncName","looksLikeAVFile","includeImageAlt","one","chunkStart","combineExtensions","extensions","syntaxExtension","hook","right","constructs","existing","asciiAlpha","regexCheck","asciiDigit","asciiHexDigit","asciiAlphanumeric","asciiPunctuation","asciiAtext","asciiControl","markdownLineEndingOrSpace","markdownLineEnding","markdownSpace","unicodeWhitespace","unicodePunctuation","factorySpace","limit","enter","consume","exit","contentStart","attempt","contentInitial","lineStart","childFlow","childToken","lineStartOffset","continued","item","containerState","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","events","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","containerContinue","_tokenizer","flowContinue","writeToChild","eof","stream","sliceStream","defineSkip","seen","nok","disable","blankLine","partial","subtokenize","lineIndex","otherIndex","otherEvent","subevents","jumps","_isInFirstContentOfListItem","subcontent","_container","eventIndex","startPosition","startPositions","childEvents","gaps","breaks","_gfmTasklistFirstContentOfListItem","contentEnd","continuationConstruct","contentContinue","prefixed","sliceSerialize","initial","flowInitial","afterConstruct","resolver","resolveAll","createResolver","initializeFactory","notText","atBreak","resolveAllLineSuffixes","extraResolver","chunks","bufferIndex","tabs","_index","_bufferIndex","createTokenizer","initialize","columnStart","resolveAllConstructs","accountForPotentialSkip","constructFactory","addResult","onsuccessfulcheck","expandTabs","atTab","serializeChunks","main","startIndex","startBufferIndex","endIndex","endBufferIndex","sliceChunks","chunkIndex","onreturn","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleMapOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","store","resolveTo","thematicBreak","sequence","initialSize","atMarker","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","notBlank","furtherBlankLines","notInCurrentItem","indentConstruct","blockQuote","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","destinationEnclosedBefore","destinationRaw","destinationEnclosed","destinationEnclosedEscape","destinationRawEscape","factoryLabel","markerType","labelEscape","factoryTitle","atFirstTitleBreak","atTitleBreak","titleEscape","factoryWhitespace","normalizeIdentifier","labelAfter","titleConstruct","codeIndented","afterStartPrefix","afterPrefix","indentedContent","headingAtx","fenceOpenInside","headingBreak","setextUnderline","paragraph","closingSequence","closingSequenceEnd","htmlBlockNames","htmlRawNames","htmlFlow","declarationStart","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","basicSelfClosing","completeAttributeNameBefore","completeClosingTagAfter","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCharacterDataInside","continuationAtLineEnding","nextBlankConstruct","htmlContinueStart","htmlLineEnd","continuationRawEndTag","codeFenced","closingFenceConstruct","closingSequenceStart","sizeOpen","nonLazyLine","initialPrefix","sequenceOpen","infoOpen","openAfter","infoAfter","decodeNamedCharacterReference","characterReference","numeric","characterEscape","lineEnding","labelEnd","labelStart","_balanced","_inactive","balanced","afterLabelEnd","resourceConstruct","fullReferenceConstruct","collapsedReferenceConstruct","insideSpan","destinationAfter","between","afterLabel","labelStartImage","classifyCharacter","attention","attentionMarkers","_open","_close","openingSequence","nextEvents","movePoint","autolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","htmlText","declarationOpen","tagOpen","commentOpen","cdataOpen","commentStart","commentStartDash","commentClose","atLineEnding","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","labelStartLink","hardBreakEscape","codeText","tailExitIndex","headEnterIndex","resolveText","decodeNumericCharacterReference","characterEscapeOrReference","decodeString","$1","$2","hex","fromMarkdown","config","configure","transforms","canContainEols","opener","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","hardBreak","hardBreakTrailing","htmlFlowData","htmlTextData","listItem","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","resource","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","mdastExtensions","listStack","resume","setData","getData","prepareList","handler","defaultOnError","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","_spread","and","errorHandler","onExitError","depth","referenceType","ordered","compiler","postprocess","defaultConstructs","atCarriageReturn","endPosition","preprocess","combined","normalizeUri","skip","convert","castFactory","typeFactory","anyFactory","propsFactory","visitParents","visitor","reverse","parents","visit","subresult","grandparents","toResult","pointStart","pointEnd","clean","footnoteReference","safeId","footnoteOrder","footnoteCounts","reuseCounter","clobberPrefix","dataFootnoteRef","patch","applyData","revert","subtype","contents","listItemLoose","trimLines","trimLine","codePointAt","handlers","break","footnoteById","dangerous","imageReference","inlineCode","linkReference","loose","listLoose","firstRow","tableContent","cellIndex","cells","alignValue","footnoteDefinition","createState","allowDangerousHtml","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","footnoteBackLabel","unknownHandler","passThrough","augment","hName","hProperties","hChildren","defaultUnknownHandler","toHast","foot","listItems","referenceIndex","backReferences","backReference","dataFootnoteBackref","tailTail","dataFootnotes","footer","bridge","mutate","onContextLost","onContextRestored","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillRule","floodColor","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","textAnchor","textDecoration","textRendering","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","defaultAction","descent","diffuseConstant","direction","dur","divisor","dx","dy","edgeMode","editable","elevation","exponent","externalResourcesRequired","fill","filterRes","filterUnits","focusable","focusHighlight","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","observer","orient","orientation","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u1","u2","viewBox","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","zoomAndPan","htmlBase","svgBase","rehypeFilter","allowedElements","disallowedElements","allowElement","parent_","unwrapDisallowed","thing","dashes","hastToReact","padRight","padLeft","protocols","uriTransformer","first","tableElements","childrenToReact","childIndex","toReact","skipHtml","transformLinkUri","parentSchema","listDepth","components","React","ReactIs","linkTarget","transformImageUri","getInputElement","getElementsBeforeCount","textAlign","isHeader","sourcePos","rawSourcePos","sourcePosition","includeElementIndex","siblingCount","styleReplacer","parseStyle","deprecated","renderers","astPlugins","escapeHtml","allowNode","allowedTypes","disallowedTypes","includeNodeIndex","ReactMarkdown","deprecation","warn","remarkParse","remarkPlugins","remarkRehype","remarkRehypeOptions","rehypePlugins","hastNode","_extends","_objectSpread","propTypes","classNameCombinations","getClassNameCombinations","classNames","arrLength","powerSetPermutations","createStyleObject","elementStyle","stylesheet","nonTokenClassNames","classNamesCombinations","styleObject","createClassNameString","_ref","_ref$style","useInlineStyles","TagName","childrenCreator","childrenCount","createChildren","allStylesheetSelectors","startingClassName","_excluded","newLineRegex","AllLineNumbers","_ref2","codeString","codeStyle","_ref2$containerStyle","containerStyle","paddingRight","_ref2$numberStyle","numberStyle","startingLineNumber","getAllLineNumbers","getInlineLineNumber","lineNumber","inlineLineNumberStyle","assembleLineNumberStyles","lineNumberStyle","largestLineNumber","num","defaultLineNumberStyle","minWidth","userSelect","customLineNumberStyle","createLineElement","_ref3","showInlineLineNumbers","_ref3$lineProps","lineProps","_ref3$className","showLineNumbers","wrapLongLines","flattenCodeTree","newTree","processLines","codeTree","wrapLines","_ref4","lastLineBreakIndex","createWrappedLine","createUnwrappedLine","createLine","_loop","splitValue","newChild","_line","stringChild","lastLineInPreviousSpan","newElem","_line2","_line3","defaultRenderer","_ref5","isHighlightJs","astGenerator","highlightAuto","defaultAstGenerator","defaultStyle","highlighter","_ref7","_ref7$style","_ref7$customStyle","customStyle","_ref7$codeTagProps","codeTagProps","_ref7$useInlineStyles","_ref7$showLineNumbers","_ref7$showInlineLineN","_ref7$startingLineNum","lineNumberContainerStyle","_ref7$lineNumberStyle","_ref7$wrapLongLines","_ref7$lineProps","renderer","_ref7$PreTag","PreTag","_ref7$CodeTag","CodeTag","_ref7$code","allLineNumbers","defaultPreStyle","hljs","backgroundColor","generatorClassName","preProps","defaultCodeValue","_ref6","hasLanguage","checkForListedLanguage","getCodeTree","www","w2","w3","hasUnderscoreInLastSegment","hasUnderscoreInLastLastSegment","namedCharacterReference","punctuationContinuation","inPath","continuedPunctuation","parenAtPathEnd","pathEnd","trailingPunctuation","wwwAutolink","previousWww","previousUnbalanced","httpAutolink","previousHttp","t1","t2","slash1","slash2","emailAutolink","hasDot","hasDigitInLastSegment","gfmAtext","previousEmail","atext","dotContinuation","dashOrUnderscoreContinuation","afterDashOrUnderscore","gfmAutolinkLiteral","_gfmAutolinkLiteralWalkedInto","gfmFootnote","tokenizeDefinitionStart","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","tokenizeGfmFootnoteCall","tokenizePotentialGfmFootnoteCall","resolveToPotentialGfmFootnoteCall","gfmFootnotes","callStart","callData","callEscape","gfmStrikethrough","single","singleTilde","tokenizeStrikethrough","resolveAllStrikethrough","strikethrough","gfmTable","seenDelimiter","hasDash","tableHeaderCount","_align","cellDividerHead","inCellContentHead","cellBreakHead","originalInterrupt","tokenizeRowEnd","atDelimiterRowBreak","atRowEndHead","inWhitespaceHead","inCellContentEscapeHead","rowEndDelimiter","inWhitespaceDelimiter","inFillerDelimiter","afterLeftAlignment","afterRightAlignment","tableClose","nextPrefixedOrBlank","bodyStart","rowStartBody","cellDividerBody","inCellContentBody","cellBreakBody","tableBodyClose","atRowEndBody","inWhitespaceBody","inCellContentEscapeBody","inHead","inDelimiterRow","inRow","cellStart","seenCellInRow","tasklistCheck","spaceThenNonSpace","gfmTaskListItem","gfm","ccount","findAndReplace","ignored","pairs","toExpression","toFunction","toPairs","pairIndex","grandparent","change","matchObject","inConstruct","notInConstruct","gfmAutolinkLiteralFromMarkdown","findUrl","findEmail","literalAutolink","literalAutolinkEmail","enterLiteralAutolinkValue","literalAutolinkHttp","literalAutolinkWww","gfmAutolinkLiteralToMarkdown","unsafe","isCorrectDomain","closingParenIndex","openingParens","closingParens","trail","trailExec","splitUrl","association","options_","lineShift","move","containerFlow","safeOptions","indexStack","tracker","handle","bulletLastUsed","eol","indentLines","patternCompile","_compiled","patternInScope","listInScope","safe","positions","infos","sort","numerical","escapeBackslashes","whole","gfmFootnoteToMarkdown","peek","subexit","containerPhrasing","gfmStrikethroughFromMarkdown","gfmStrikethroughToMarkdown","handleDelete","serialize","defaultStringLength","toAlignment","gfmTableFromMarkdown","tableData","enterCell","tableHeader","gfmTableToMarkdown","padding","tableCellPadding","alignDelimiters","tablePipeAlign","stringLength","around","serializeData","handleTableRowAsData","handleTableAsData","handleTableCell","matrix","alignments","cellMatrix","sizeMatrix","longestCellByColumn","mostCellsPerRow","rowIndex","columnIndex","delimiterStart","delimiterEnd","markdownTable","listItemIndent","checkListItemIndent","bullet","bulletCurrent","checkBullet","incrementListMarker","gfmTaskListItemFromMarkdown","taskListCheckValueChecked","exitCheck","taskListCheckValueUnchecked","firstParaghraph","gfmTaskListItemToMarkdown","checkable","checkbox","gfmFromMarkdown","gfmFootnoteDefinition","gfmFootnoteDefinitionLabelString","gfmFootnoteCall","gfmFootnoteCallString","gfmToMarkdown","remarkGfm","buttonTypes","core","isProperties","finalResult","webNamespaces","ast","verbose","opening","closing","createLocation","quirksMode","indices","toPoint","toOffset","isFile","toH","react","_isVue","vue","vdom","hyperscript","subprop","zwitch","unknown","p5","htmlVoidElements","endTagToken","parseOptions","raw","stitches","locationTracker","resetTokenizer","createParse5Location","stitch","fromParse5","mock","toParse5","rehypeRaw","CopyButton","valueToCopy","clipboard","writeText","setFilter","typeFilter","setTypeFilter","expandedItems","setExpandedItems","expandedCategories","setExpandedCategories","handleExpandItem","newExpanded","handleCategoryClick","newExpandedCategory","filtered","typeFilteredItems","filterData","wait","immediate","timeout","debounce","coldarkDark","ReactDOM"],"sourceRoot":""}
\ No newline at end of file