ctxloom-pro 1.1.3 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -141,3 +141,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
141
141
  `),style:o,startingLineNumber:l}))}function fie(e){return"".concat(e.toString().length,".25em")}function Wk(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 Hk(e,t,n){var r={display:"inline-block",minWidth:fie(n),paddingRight:"1em",textAlign:"right",userSelect:"none"},i=typeof e=="function"?e(t):e,a=$r($r({},r),i);return a}function Xu(e){var t=e.children,n=e.lineNumber,r=e.lineNumberStyle,i=e.largestLineNumber,a=e.showInlineLineNumbers,o=e.lineProps,l=o===void 0?{}:o,s=e.className,u=s===void 0?[]:s,f=e.showLineNumbers,c=e.wrapLongLines,d=e.wrapLines,p=d===void 0?!1:d,y=p?$r({},typeof l=="function"?l(n):l):{};if(y.className=y.className?[].concat(Dm(y.className.trim().split(/\s+/)),Dm(u)):u,n&&a){var m=Hk(r,n,i);t.unshift(Wk(n,m))}return c&f&&(y.style=$r({display:"flex"},y.style)),{type:"element",tagName:"span",properties:y,children:t}}function Vk(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];e.length===void 0&&(e=[e]);for(var r=0;r<e.length;r++){var i=e[r];if(i.type==="text")n.push(Xu({children:[i],className:Dm(new Set(t))}));else if(i.children){var a,o=t.concat(((a=i.properties)===null||a===void 0?void 0:a.className)||[]);Vk(i.children,o).forEach(function(l){return n.push(l)})}}return n}function die(e,t,n,r,i,a,o,l,s){var u,f=Vk(e.value),c=[],d=-1,p=0;function y(w,S){var _=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return Xu({children:w,lineNumber:S,lineNumberStyle:l,largestLineNumber:o,showInlineLineNumbers:i,lineProps:n,className:_,showLineNumbers:r,wrapLongLines:s,wrapLines:t})}function m(w,S){if(r&&S&&i){var _=Hk(l,S,o);w.unshift(Wk(S,_))}return w}function v(w,S){var _=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||_.length>0?y(w,S,_):m(w,S)}for(var h=function(){var S=f[p],_=S.children[0].value,A=sie(_);if(A){var P=_.split(`
142
142
  `);P.forEach(function(T,I){var j=r&&c.length+a,R={type:"text",value:"".concat(T,`
143
143
  `)};if(I===0){var E=f.slice(d+1,p).concat(Xu({children:[R],className:S.properties.className})),N=v(E,j);c.push(N)}else if(I===P.length-1){var C=f[p+1]&&f[p+1].children&&f[p+1].children[0],L={type:"text",value:"".concat(T)};if(C){var M=Xu({children:[L],className:S.properties.className});f.splice(p+1,0,M)}else{var D=[L],B=v(D,j,S.properties.className);c.push(B)}}else{var W=[R],U=v(W,j,S.properties.className);c.push(U)}}),d=p}p++};p<f.length;)h();if(d!==f.length-1){var g=f.slice(d+1,f.length);if(g&&g.length){var b=r&&c.length+a,x=v(g,b);c.push(x)}}return t?c:(u=[]).concat.apply(u,c)}function pie(e){var t=e.rows,n=e.stylesheet,r=e.useInlineStyles;return t.map(function(i,a){return Uk({node:i,stylesheet:n,useInlineStyles:r,key:"code-segment-".concat(a)})})}function Gk(e){return e&&typeof e.highlightAuto<"u"}function hie(e){var t=e.astGenerator,n=e.language,r=e.code,i=e.defaultCodeValue;if(Gk(t)){var a=aie(t,n);return n==="text"?{value:i,language:"text"}:a?t.highlight(n,r):t.highlightAuto(r)}try{return n&&n!=="text"?{value:t.highlight(r,n)}:{value:i}}catch{return{value:i}}}function gie(e,t){return function(r){var i,a,o=r.language,l=r.children,s=r.style,u=s===void 0?t:s,f=r.customStyle,c=f===void 0?{}:f,d=r.codeTagProps,p=d===void 0?{className:o?"language-".concat(o):void 0,style:$r($r({},u['code[class*="language-"]']),u['code[class*="language-'.concat(o,'"]')])}:d,y=r.useInlineStyles,m=y===void 0?!0:y,v=r.showLineNumbers,h=v===void 0?!1:v,g=r.showInlineLineNumbers,b=g===void 0?!0:g,x=r.startingLineNumber,w=x===void 0?1:x,S=r.lineNumberContainerStyle,_=r.lineNumberStyle,A=_===void 0?{}:_,P=r.wrapLines,T=r.wrapLongLines,I=T===void 0?!1:T,j=r.lineProps,R=j===void 0?{}:j,E=r.renderer,N=r.PreTag,C=N===void 0?"pre":N,L=r.CodeTag,M=L===void 0?"code":L,D=r.code,B=D===void 0?(Array.isArray(l)?l[0]:l)||"":D,W=r.astGenerator,U=Xre(r,oie);W=W||e;var Y=h?$.createElement(cie,{containerStyle:S,codeStyle:p.style||{},numberStyle:A,startingLineNumber:w,codeString:B}):null,J=u.hljs||u['pre[class*="language-"]']||{backgroundColor:"#fff"},ae=Gk(W)?"hljs":"prismjs",z=m?Object.assign({},U,{style:Object.assign({},J,c)}):Object.assign({},U,{className:U.className?"".concat(ae," ").concat(U.className):ae,style:Object.assign({},c)});if(I?p.style=$r({whiteSpace:"pre-wrap"},p.style):p.style=$r({whiteSpace:"pre"},p.style),!W)return $.createElement(C,z,Y,$.createElement(M,p,B));(P===void 0&&E||I)&&(P=!0),E=E||pie;var Q=[{type:"text",value:B}],ce=hie({astGenerator:W,language:o,code:B,defaultCodeValue:Q});ce.language===null&&(ce.value=Q);var X=(i=(a=B.match(/\n/g))===null||a===void 0?void 0:a.length)!==null&&i!==void 0?i:0,re=w+X,oe=die(ce,P,R,h,b,w,re,A,I);return $.createElement(C,z,$.createElement(M,p,!b&&Y,E({rows:oe,stylesheet:u,useInlineStyles:m})))}}class Fs{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Fs.prototype.normal={};Fs.prototype.property={};Fs.prototype.space=void 0;function Kk(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new Fs(n,r,t)}function As(e){return e.toLowerCase()}class Mt{constructor(t,n){this.attribute=n,this.property=t}}Mt.prototype.attribute="";Mt.prototype.booleanish=!1;Mt.prototype.boolean=!1;Mt.prototype.commaOrSpaceSeparated=!1;Mt.prototype.commaSeparated=!1;Mt.prototype.defined=!1;Mt.prototype.mustUseProperty=!1;Mt.prototype.number=!1;Mt.prototype.overloadedBoolean=!1;Mt.prototype.property="";Mt.prototype.spaceSeparated=!1;Mt.prototype.space=void 0;let mie=0;const le=Vi(),ze=Vi(),Bm=Vi(),G=Vi(),we=Vi(),Ta=Vi(),It=Vi();function Vi(){return 2**++mie}const Fm=Object.freeze(Object.defineProperty({__proto__:null,boolean:le,booleanish:ze,commaOrSpaceSeparated:It,commaSeparated:Ta,number:G,overloadedBoolean:Bm,spaceSeparated:we},Symbol.toStringTag,{value:"Module"})),rh=Object.keys(Fm);class qy extends Mt{constructor(t,n,r,i){let a=-1;if(super(t,n),HS(this,"space",i),typeof r=="number")for(;++a<rh.length;){const o=rh[a];HS(this,rh[a],(r&Fm[o])===Fm[o])}}}qy.prototype.defined=!0;function HS(e,t,n){n&&(e[t]=n)}function jo(e){const t={},n={};for(const[r,i]of Object.entries(e.properties)){const a=new qy(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),t[r]=a,n[As(r)]=r,n[As(a.attribute)]=r}return new Fs(t,n,e.space)}const Xk=jo({properties:{ariaActiveDescendant:null,ariaAtomic:ze,ariaAutoComplete:null,ariaBusy:ze,ariaChecked:ze,ariaColCount:G,ariaColIndex:G,ariaColSpan:G,ariaControls:we,ariaCurrent:null,ariaDescribedBy:we,ariaDetails:null,ariaDisabled:ze,ariaDropEffect:we,ariaErrorMessage:null,ariaExpanded:ze,ariaFlowTo:we,ariaGrabbed:ze,ariaHasPopup:null,ariaHidden:ze,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:we,ariaLevel:G,ariaLive:null,ariaModal:ze,ariaMultiLine:ze,ariaMultiSelectable:ze,ariaOrientation:null,ariaOwns:we,ariaPlaceholder:null,ariaPosInSet:G,ariaPressed:ze,ariaReadOnly:ze,ariaRelevant:null,ariaRequired:ze,ariaRoleDescription:we,ariaRowCount:G,ariaRowIndex:G,ariaRowSpan:G,ariaSelected:ze,ariaSetSize:G,ariaSort:null,ariaValueMax:G,ariaValueMin:G,ariaValueNow:G,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function Yk(e,t){return t in e?e[t]:t}function qk(e,t){return Yk(e,t.toLowerCase())}const vie=jo({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Ta,acceptCharset:we,accessKey:we,action:null,allow:null,allowFullScreen:le,allowPaymentRequest:le,allowUserMedia:le,alt:null,as:null,async:le,autoCapitalize:null,autoComplete:we,autoFocus:le,autoPlay:le,blocking:we,capture:null,charSet:null,checked:le,cite:null,className:we,cols:G,colSpan:null,content:null,contentEditable:ze,controls:le,controlsList:we,coords:G|Ta,crossOrigin:null,data:null,dateTime:null,decoding:null,default:le,defer:le,dir:null,dirName:null,disabled:le,download:Bm,draggable:ze,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:le,formTarget:null,headers:we,height:G,hidden:Bm,high:G,href:null,hrefLang:null,htmlFor:we,httpEquiv:we,id:null,imageSizes:null,imageSrcSet:null,inert:le,inputMode:null,integrity:null,is:null,isMap:le,itemId:null,itemProp:we,itemRef:we,itemScope:le,itemType:we,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:le,low:G,manifest:null,max:null,maxLength:G,media:null,method:null,min:null,minLength:G,multiple:le,muted:le,name:null,nonce:null,noModule:le,noValidate:le,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle: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,onScrollEnd: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:le,optimum:G,pattern:null,ping:we,placeholder:null,playsInline:le,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:le,referrerPolicy:null,rel:we,required:le,reversed:le,rows:G,rowSpan:G,sandbox:we,scope:null,scoped:le,seamless:le,selected:le,shadowRootClonable:le,shadowRootDelegatesFocus:le,shadowRootMode:null,shape:null,size:G,sizes:null,slot:null,span:G,spellCheck:ze,src:null,srcDoc:null,srcLang:null,srcSet:null,start:G,step:null,style:null,tabIndex:G,target:null,title:null,translate:null,type:null,typeMustMatch:le,useMap:null,value:ze,width:G,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:we,axis:null,background:null,bgColor:null,border:G,borderColor:null,bottomMargin:G,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:le,declare:le,event:null,face:null,frame:null,frameBorder:null,hSpace:G,leftMargin:G,link:null,longDesc:null,lowSrc:null,marginHeight:G,marginWidth:G,noResize:le,noHref:le,noShade:le,noWrap:le,object:null,profile:null,prompt:null,rev:null,rightMargin:G,rules:null,scheme:null,scrolling:ze,standby:null,summary:null,text:null,topMargin:G,valueType:null,version:null,vAlign:null,vLink:null,vSpace:G,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:le,disableRemotePlayback:le,prefix:null,property:null,results:G,security:null,unselectable:null},space:"html",transform:qk}),yie=jo({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",transformOrigin:"transform-origin",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"},properties:{about:It,accentHeight:G,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:G,amplitude:G,arabicForm:null,ascent:G,attributeName:null,attributeType:null,azimuth:G,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:G,by:null,calcMode:null,capHeight:G,className:we,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:G,diffuseConstant:G,direction:null,display:null,dur:null,divisor:G,dominantBaseline:null,download:le,dx:null,dy:null,edgeMode:null,editable:null,elevation:G,enableBackground:null,end:null,event:null,exponent:G,externalResourcesRequired:null,fill:null,fillOpacity:G,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:Ta,g2:Ta,glyphName:Ta,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:G,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:G,horizOriginX:G,horizOriginY:G,id:null,ideographic:G,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:G,k:G,k1:G,k2:G,k3:G,k4:G,kernelMatrix:It,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:G,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:G,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:G,overlineThickness:G,paintOrder:null,panose1:null,path:null,pathLength:G,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:we,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:G,pointsAtY:G,pointsAtZ:G,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:It,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:It,rev:It,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:It,requiredFeatures:It,requiredFonts:It,requiredFormats:It,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:G,specularExponent:G,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:G,strikethroughThickness:G,string:null,stroke:null,strokeDashArray:It,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:G,strokeOpacity:G,strokeWidth:null,style:null,surfaceScale:G,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:It,tabIndex:G,tableValues:null,target:null,targetX:G,targetY:G,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:It,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:G,underlineThickness:G,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:G,values:null,vAlphabetic:G,vMathematical:G,vectorEffect:null,vHanging:G,vIdeographic:G,version:null,vertAdvY:G,vertOriginX:G,vertOriginY:G,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:G,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:Yk}),Zk=jo({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()}}),Qk=jo({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:qk}),Jk=jo({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),bie=/[A-Z]/g,VS=/-[a-z]/g,xie=/^data[-\w.:]+$/i;function wie(e,t){const n=As(t);let r=t,i=Mt;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&xie.test(t)){if(t.charAt(4)==="-"){const a=t.slice(5).replace(VS,_ie);r="data"+a.charAt(0).toUpperCase()+a.slice(1)}else{const a=t.slice(4);if(!VS.test(a)){let o=a.replace(bie,Sie);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}i=qy}return new i(r,t)}function Sie(e){return"-"+e.toLowerCase()}function _ie(e){return e.charAt(1).toUpperCase()}const Oie=Kk([Xk,vie,Zk,Qk,Jk],"html"),Aie=Kk([Xk,yie,Zk,Qk,Jk],"svg");function GS(e){const t=[],n=String(e||"");let r=n.indexOf(","),i=0,a=!1;for(;!a;){r===-1&&(r=n.length,a=!0);const o=n.slice(i,r).trim();(o||!a)&&t.push(o),i=r+1,r=n.indexOf(",",i)}return t}const KS=/[#.]/g;function Eie(e,t){const n=e||"",r={};let i=0,a,o;for(;i<n.length;){KS.lastIndex=i;const l=KS.exec(n),s=n.slice(i,l?l.index:n.length);s&&(a?a==="#"?r.id=s:Array.isArray(r.className)?r.className.push(s):r.className=[s]:o=s,i+=s.length),l&&(a=l[0],i++)}return{type:"element",tagName:o||t||"div",properties:r,children:[]}}function XS(e){const t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function e$(e,t,n){const r=n?$ie(n):void 0;function i(a,o,...l){let s;if(a==null){s={type:"root",children:[]};const u=o;l.unshift(u)}else{s=Eie(a,t);const u=s.tagName.toLowerCase(),f=r?r.get(u):void 0;if(s.tagName=f||u,Pie(o))l.unshift(o);else for(const[c,d]of Object.entries(o))Tie(e,s.properties,c,d)}for(const u of l)zm(s.children,u);return s.type==="element"&&s.tagName==="template"&&(s.content={type:"root",children:s.children},s.children=[]),s}return i}function Pie(e){if(e===null||typeof e!="object"||Array.isArray(e))return!0;if(typeof e.type!="string")return!1;const t=e,n=Object.keys(e);for(const r of n){const i=t[r];if(i&&typeof i=="object"){if(!Array.isArray(i))return!0;const a=i;for(const o of a)if(typeof o!="number"&&typeof o!="string")return!0}}return!!("children"in e&&Array.isArray(e.children))}function Tie(e,t,n,r){const i=wie(e,n);let a;if(r!=null){if(typeof r=="number"){if(Number.isNaN(r))return;a=r}else typeof r=="boolean"?a=r:typeof r=="string"?i.spaceSeparated?a=XS(r):i.commaSeparated?a=GS(r):i.commaOrSpaceSeparated?a=XS(GS(r).join(" ")):a=YS(i,i.property,r):Array.isArray(r)?a=[...r]:a=i.property==="style"?kie(r):String(r);if(Array.isArray(a)){const o=[];for(const l of a)o.push(YS(i,i.property,l));a=o}i.property==="className"&&Array.isArray(t.className)&&(a=t.className.concat(a)),t[i.property]=a}}function zm(e,t){if(t!=null)if(typeof t=="number"||typeof t=="string")e.push({type:"text",value:String(t)});else if(Array.isArray(t))for(const n of t)zm(e,n);else if(typeof t=="object"&&"type"in t)t.type==="root"?zm(e,t.children):e.push(t);else throw new Error("Expected node, nodes, or string, got `"+t+"`")}function YS(e,t,n){if(typeof n=="string"){if(e.number&&n&&!Number.isNaN(Number(n)))return Number(n);if((e.boolean||e.overloadedBoolean)&&(n===""||As(n)===As(t)))return!0}return n}function kie(e){const t=[];for(const[n,r]of Object.entries(e))t.push([n,r].join(": "));return t.join("; ")}function $ie(e){const t=new Map;for(const n of e)t.set(n.toLowerCase(),n);return t}const jie=["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"],Cie=e$(Oie,"div");e$(Aie,"g",jie);const Nie=["AElig","AMP","Aacute","Acirc","Agrave","Aring","Atilde","Auml","COPY","Ccedil","ETH","Eacute","Ecirc","Egrave","Euml","GT","Iacute","Icirc","Igrave","Iuml","LT","Ntilde","Oacute","Ocirc","Ograve","Oslash","Otilde","Ouml","QUOT","REG","THORN","Uacute","Ucirc","Ugrave","Uuml","Yacute","aacute","acirc","acute","aelig","agrave","amp","aring","atilde","auml","brvbar","ccedil","cedil","cent","copy","curren","deg","divide","eacute","ecirc","egrave","eth","euml","frac12","frac14","frac34","gt","iacute","icirc","iexcl","igrave","iquest","iuml","laquo","lt","macr","micro","middot","nbsp","not","ntilde","oacute","ocirc","ograve","ordf","ordm","oslash","otilde","ouml","para","plusmn","pound","quot","raquo","reg","sect","shy","sup1","sup2","sup3","szlig","thorn","times","uacute","ucirc","ugrave","uml","uuml","yacute","yen","yuml"],qS={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"};function t$(e){const t=typeof e=="string"?e.charCodeAt(0):e;return t>=48&&t<=57}function Mie(e){const t=typeof e=="string"?e.charCodeAt(0):e;return t>=97&&t<=102||t>=65&&t<=70||t>=48&&t<=57}function Iie(e){const t=typeof e=="string"?e.charCodeAt(0):e;return t>=97&&t<=122||t>=65&&t<=90}function ZS(e){return Iie(e)||t$(e)}const QS=document.createElement("i");function JS(e){const t="&"+e+";";QS.innerHTML=t;const n=QS.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}const Rie=["","Named character references must be terminated by a semicolon","Numeric character references must be terminated by a semicolon","Named character references cannot be empty","Numeric character references cannot be empty","Named character references must be known","Numeric character references cannot be disallowed","Numeric character references cannot be outside the permissible Unicode range"];function Lie(e,t){const n={},r=typeof n.additional=="string"?n.additional.charCodeAt(0):n.additional,i=[];let a=0,o=-1,l="",s,u;n.position&&("start"in n.position||"indent"in n.position?(u=n.position.indent,s=n.position.start):s=n.position);let f=(s?s.line:0)||1,c=(s?s.column:0)||1,d=y(),p;for(a--;++a<=e.length;)if(p===10&&(c=(u?u[o]:0)||1),p=e.charCodeAt(a),p===38){const h=e.charCodeAt(a+1);if(h===9||h===10||h===12||h===32||h===38||h===60||Number.isNaN(h)||r&&h===r){l+=String.fromCharCode(p),c++;continue}const g=a+1;let b=g,x=g,w;if(h===35){x=++b;const R=e.charCodeAt(x);R===88||R===120?(w="hexadecimal",x=++b):w="decimal"}else w="named";let S="",_="",A="";const P=w==="named"?ZS:w==="decimal"?t$:Mie;for(x--;++x<=e.length;){const R=e.charCodeAt(x);if(!P(R))break;A+=String.fromCharCode(R),w==="named"&&Nie.includes(A)&&(S=A,_=JS(A))}let T=e.charCodeAt(x)===59;if(T){x++;const R=w==="named"?JS(A):!1;R&&(S=A,_=R)}let I=1+x-g,j="";if(!(!T&&n.nonTerminated===!1))if(!A)w!=="named"&&m(4,I);else if(w==="named"){if(T&&!_)m(5,1);else if(S!==A&&(x=b+S.length,I=1+x-b,T=!1),!T){const R=S?1:3;if(n.attribute){const E=e.charCodeAt(x);E===61?(m(R,I),_=""):ZS(E)?_="":m(R,I)}else m(R,I)}j=_}else{T||m(2,I);let R=Number.parseInt(A,w==="hexadecimal"?16:10);if(Die(R))m(7,I),j="�";else if(R in qS)m(6,I),j=qS[R];else{let E="";Bie(R)&&m(6,I),R>65535&&(R-=65536,E+=String.fromCharCode(R>>>10|55296),R=56320|R&1023),j=E+String.fromCharCode(R)}}if(j){v(),d=y(),a=x-1,c+=x-g+1,i.push(j);const R=y();R.offset++,n.reference&&n.reference.call(n.referenceContext||void 0,j,{start:d,end:R},e.slice(g-1,x)),d=R}else A=e.slice(g-1,x),l+=A,c+=A.length,a=x-1}else p===10&&(f++,o++,c=0),Number.isNaN(p)?v():(l+=String.fromCharCode(p),c++);return i.join("");function y(){return{line:f,column:c,offset:a+((s?s.offset:0)||0)}}function m(h,g){let b;n.warning&&(b=y(),b.column+=g,b.offset+=g,n.warning.call(n.warningContext||void 0,Rie[h],b,h))}function v(){l&&(i.push(l),n.text&&n.text.call(n.textContext||void 0,l,{start:d,end:y()}),l="")}}function Die(e){return e>=55296&&e<=57343||e>1114111}function Bie(e){return e>=1&&e<=8||e===11||e>=13&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534}var Fie=0,Ou={},et={util:{type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++Fie}),e.__id},clone:function e(t,n){n=n||{};var r,i;switch(et.util.type(t)){case"Object":if(i=et.util.objId(t),n[i])return n[i];r={},n[i]=r;for(var a in t)t.hasOwnProperty(a)&&(r[a]=e(t[a],n));return r;case"Array":return i=et.util.objId(t),n[i]?n[i]:(r=[],n[i]=r,t.forEach(function(o,l){r[l]=e(o,n)}),r);default:return t}}},languages:{plain:Ou,plaintext:Ou,text:Ou,txt:Ou,extend:function(e,t){var n=et.util.clone(et.languages[e]);for(var r in t)n[r]=t[r];return n},insertBefore:function(e,t,n,r){r=r||et.languages;var i=r[e],a={};for(var o in i)if(i.hasOwnProperty(o)){if(o==t)for(var l in n)n.hasOwnProperty(l)&&(a[l]=n[l]);n.hasOwnProperty(o)||(a[o]=i[o])}var s=r[e];return r[e]=a,et.languages.DFS(et.languages,function(u,f){f===s&&u!=e&&(this[u]=a)}),a},DFS:function e(t,n,r,i){i=i||{};var a=et.util.objId;for(var o in t)if(t.hasOwnProperty(o)){n.call(t,o,t[o],r||o);var l=t[o],s=et.util.type(l);s==="Object"&&!i[a(l)]?(i[a(l)]=!0,e(l,n,null,i)):s==="Array"&&!i[a(l)]&&(i[a(l)]=!0,e(l,n,o,i))}}},plugins:{},highlight:function(e,t,n){var r={code:e,grammar:t,language:n};if(et.hooks.run("before-tokenize",r),!r.grammar)throw new Error('The language "'+r.language+'" has no grammar.');return r.tokens=et.tokenize(r.code,r.grammar),et.hooks.run("after-tokenize",r),Sl.stringify(et.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 i=new zie;return Yu(i,i.head,e),n$(e,i,t,i.head,0),Wie(i)},hooks:{all:{},add:function(e,t){var n=et.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=et.hooks.all[e];if(!(!n||!n.length))for(var r=0,i;i=n[r++];)i(t)}},Token:Sl};function Sl(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=(r||"").length|0}function e_(e,t,n,r){e.lastIndex=t;var i=e.exec(n);if(i&&r&&i[1]){var a=i[1].length;i.index+=a,i[0]=i[0].slice(a)}return i}function n$(e,t,n,r,i,a){for(var o in n)if(!(!n.hasOwnProperty(o)||!n[o])){var l=n[o];l=Array.isArray(l)?l:[l];for(var s=0;s<l.length;++s){if(a&&a.cause==o+","+s)return;var u=l[s],f=u.inside,c=!!u.lookbehind,d=!!u.greedy,p=u.alias;if(d&&!u.pattern.global){var y=u.pattern.toString().match(/[imsuy]*$/)[0];u.pattern=RegExp(u.pattern.source,y+"g")}for(var m=u.pattern||u,v=r.next,h=i;v!==t.tail&&!(a&&h>=a.reach);h+=v.value.length,v=v.next){var g=v.value;if(t.length>e.length)return;if(!(g instanceof Sl)){var b=1,x;if(d){if(x=e_(m,h,e,c),!x||x.index>=e.length)break;var A=x.index,w=x.index+x[0].length,S=h;for(S+=v.value.length;A>=S;)v=v.next,S+=v.value.length;if(S-=v.value.length,h=S,v.value instanceof Sl)continue;for(var _=v;_!==t.tail&&(S<w||typeof _.value=="string");_=_.next)b++,S+=_.value.length;b--,g=e.slice(h,S),x.index-=h}else if(x=e_(m,0,g,c),!x)continue;var A=x.index,P=x[0],T=g.slice(0,A),I=g.slice(A+P.length),j=h+g.length;a&&j>a.reach&&(a.reach=j);var R=v.prev;T&&(R=Yu(t,R,T),h+=T.length),Uie(t,R,b);var E=new Sl(o,f?et.tokenize(P,f):P,p,P);if(v=Yu(t,R,E),I&&Yu(t,v,I),b>1){var N={cause:o+","+s,reach:j};n$(e,t,n,v.prev,h,N),a&&N.reach>a.reach&&(a.reach=N.reach)}}}}}}function zie(){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 Yu(e,t,n){var r=t.next,i={value:n,prev:t,next:r};return t.next=i,r.prev=i,e.length++,i}function Uie(e,t,n){for(var r=t.next,i=0;i<n&&r!==e.tail;i++)r=r.next;t.next=r,r.prev=t,e.length-=i}function Wie(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}const r$=et;function i$(){}i$.prototype=r$;const Qe=new i$;Qe.highlight=Hie;Qe.register=Vie;Qe.alias=Gie;Qe.registered=Kie;Qe.listLanguages=Xie;Qe.util.encode=Yie;Qe.Token.stringify=Um;function Hie(e,t){if(typeof e!="string")throw new TypeError("Expected `string` for `value`, got `"+e+"`");let n,r;if(t&&typeof t=="object")n=t;else{if(r=t,typeof r!="string")throw new TypeError("Expected `string` for `name`, got `"+r+"`");if(Object.hasOwn(Qe.languages,r))n=Qe.languages[r];else throw new Error("Unknown language: `"+r+"` is not registered")}return{type:"root",children:r$.highlight.call(Qe,e,n,r)}}function Vie(e){if(typeof e!="function"||!e.displayName)throw new Error("Expected `function` for `syntax`, got `"+e+"`");Object.hasOwn(Qe.languages,e.displayName)||e(Qe)}function Gie(e,t){const n=Qe.languages;let r={};typeof e=="string"?t&&(r[e]=t):r=e;let i;for(i in r)if(Object.hasOwn(r,i)){const a=r[i],o=typeof a=="string"?[a]:a;let l=-1;for(;++l<o.length;)n[o[l]]=n[i]}}function Kie(e){if(typeof e!="string")throw new TypeError("Expected `string` for `aliasOrLanguage`, got `"+e+"`");return Object.hasOwn(Qe.languages,e)}function Xie(){const e=Qe.languages,t=[];let n;for(n in e)Object.hasOwn(e,n)&&typeof e[n]=="object"&&t.push(n);return t}function Um(e,t){if(typeof e=="string")return{type:"text",value:e};if(Array.isArray(e)){const r=[];let i=-1;for(;++i<e.length;)e[i]!==null&&e[i]!==void 0&&e[i]!==""&&r.push(Um(e[i],t));return r}const n={attributes:{},classes:["token",e.type],content:Um(e.content,t),language:t,tag:"span",type:e.type};return e.alias&&n.classes.push(...typeof e.alias=="string"?[e.alias]:e.alias),Qe.hooks.run("wrap",n),Cie(n.tag+"."+n.classes.join("."),qie(n.attributes),n.content)}function Yie(e){return e}function qie(e){let t;for(t in e)Object.hasOwn(e,t)&&(e[t]=Lie(e[t]));return e}var gt=gie(Qe,{});gt.registerLanguage=function(e,t){return Qe.register(t)};gt.alias=function(e,t){return Qe.alias(e,t)};Gd.displayName="markup";Gd.aliases=["atom","html","mathml","rss","ssml","svg","xml"];function Gd(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"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},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(t){t.type==="entity"&&(t.attributes.title=t.content.value.replace(/&amp;/,"&"))}),Object.defineProperty(e.languages.markup.tag,"addInlined",{value:function(n,r){var i={};i["language-"+r]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:e.languages[r]},i.cdata=/^<!\[CDATA\[|\]\]>$/i;var a={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:i}};a["language-"+r]={pattern:/[\s\S]+/,inside:e.languages[r]};var o={};o[n]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return n}),"i"),lookbehind:!0,greedy:!0,inside:a},e.languages.insertBefore("markup","cdata",o)}}),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}Zy.displayName="css";Zy.aliases=[];function Zy(e){(function(t){var n=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;t.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+n.source+")*?"+/(?:;|(?=\s*\{))/.source),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\\((?:"+n.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+n.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+n.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:n,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:/[(){};:,]/},t.languages.css.atrule.inside.rest=t.languages.css;var r=t.languages.markup;r&&(r.tag.addInlined("style","css"),r.tag.addAttribute("style","css"))})(e)}Gi.displayName="clike";Gi.aliases=[];function Gi(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:/[{}[\];(),.:]/}}Kd.displayName="javascript";Kd.aliases=["js"];function Kd(e){e.register(Gi),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:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),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}Qy.displayName="sql";Qy.aliases=[];function Qy(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:/[;[\]()`,.]/}}Jy.displayName="bash";Jy.aliases=["sh","shell"];function Jy(e){(function(t){var 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",r={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},i={bash:r,environment:{pattern:RegExp("\\$"+n),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("(\\{)"+n),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})/};t.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+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+n),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:i},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:r}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:i},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:i.entity}}],environment:{pattern:RegExp("\\$?"+n),alias:"constant"},variable:i.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|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|java|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|sysctl|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}},r.inside=t.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=i.variable[1].inside,l=0;l<a.length;l++)o[a[l]]=t.languages.bash[a[l]];t.languages.sh=t.languages.bash,t.languages.shell=t.languages.bash})(e)}e0.displayName="yaml";e0.aliases=["yml"];function e0(e){(function(t){var n=/[*&][^\s[\]{},]+/,r=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,i="(?:"+r.source+"(?:[ ]+"+n.source+")?|"+n.source+"(?:[ ]+"+r.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}),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function l(s,u){u=(u||"").replace(/m/g,"")+"m";var f=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,function(){return i}).replace(/<<value>>/g,function(){return s});return RegExp(f,u)}t.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 i})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,function(){return i}).replace(/<<key>>/g,function(){return"(?:"+a+"|"+o+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:l(/\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:l(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:l(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:l(o),lookbehind:!0,greedy:!0},number:{pattern:l(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:r,important:n,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},t.languages.yml=t.languages.yaml})(e)}t0.displayName="markdown";t0.aliases=["md"];function t0(e){e.register(Gd),function(t){var n=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function r(l){return l=l.replace(/<inner>/g,function(){return n}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+l+")")}var i=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return i}),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;t.languages.markdown=t.languages.extend("markup",{}),t.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:t.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(i),inside:t.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(i),alias:"important",inside:t.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:r(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:r(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:r(/(~~?)(?:(?!~)<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:r(/!?\[(?:(?!\])<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(l){["url","bold","italic","strike","code-snippet"].forEach(function(s){l!==s&&(t.languages.markdown[l].inside.content.inside[s]=t.languages.markdown[s])})}),t.hooks.add("after-tokenize",function(l){if(l.language!=="markdown"&&l.language!=="md")return;function s(u){if(!(!u||typeof u=="string"))for(var f=0,c=u.length;f<c;f++){var d=u[f];if(d.type!=="code"){s(d.content);continue}var p=d.content[1],y=d.content[3];if(p&&y&&p.type==="code-language"&&y.type==="code-block"&&typeof p.content=="string"){var m=p.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp");m=(/[a-z][\w-]*/i.exec(m)||[""])[0].toLowerCase();var v="language-"+m;y.alias?typeof y.alias=="string"?y.alias=[y.alias,v]:y.alias.push(v):y.alias=[v]}}}s(l.tokens)}),t.hooks.add("wrap",function(l){if(l.type==="code-block"){for(var s="",u=0,f=l.classes.length;u<f;u++){var c=l.classes[u],d=/language-(.+)/.exec(c);if(d){s=d[1];break}}var p=t.languages[s];if(p)l.content=t.highlight(l.content.value,p,s);else if(s&&s!=="none"&&t.plugins.autoloader){var y="md-"+new Date().valueOf()+"-"+Math.floor(Math.random()*1e16);l.attributes.id=y,t.plugins.autoloader.loadLanguages(s,function(){var m=document.getElementById(y);m&&(m.innerHTML=t.highlight(m.textContent,t.languages[s],s))})}}}),RegExp(t.languages.markup.tag.pattern.source,"gi"),t.languages.md=t.languages.markdown}(e)}n0.displayName="ruby";n0.aliases=["rb"];function n0(e){e.register(Gi),function(t){t.languages.ruby=t.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:/[(){}[\].,;]/}),t.languages.insertBefore("ruby","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});var n={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:t.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"}}};delete t.languages.ruby.function;var r="(?:"+[/([^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("|")+")",i=/(?:"(?:\\.|[^"\\\r\n])*"|(?:\b[a-zA-Z_]\w*|[^\s\0-\x7F]+)[?!]?|\$.)/.source;t.languages.insertBefore("ruby","keyword",{"regex-literal":[{pattern:RegExp(/%r/.source+r+/[egimnosux]{0,6}/.source),greedy:!0,inside:{interpolation:n,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:n,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp(/(^|[^:]):/.source+i),lookbehind:!0,greedy:!0},{pattern:RegExp(/([\r\n{(,][ \t]*)/.source+i+/(?=:(?!:))/.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:/\./}}}),t.languages.insertBefore("ruby","string",{"string-literal":[{pattern:RegExp(/%[qQiIwWs]?/.source+r),greedy:!0,inside:{interpolation:n,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:n,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:n,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+r),greedy:!0,inside:{interpolation:n,command:{pattern:/[\s\S]+/,alias:"string"}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:n,command:{pattern:/[\s\S]+/,alias:"string"}}}]}),delete t.languages.ruby.string,t.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)/}),t.languages.rb=t.languages.ruby}(e)}r0.displayName="go";r0.aliases=[];function r0(e){e.register(Gi),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"]}i0.displayName="json";i0.aliases=["webmanifest"];function i0(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}a0.displayName="java";a0.aliases=[];function a0(e){e.register(Gi),function(t){var 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(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,r=/(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,i={pattern:RegExp(/(^|[^\w.])/.source+r+/[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:/\./}};t.languages.java=t.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[i,{pattern:RegExp(/(^|[^\w.])/.source+r+/[A-Z]\w*(?=\s+\w+\s*[;,=()]|\s*(?:\[[\s,]*\]\s*)?::\s*new\b)/.source),lookbehind:!0,inside:i.inside},{pattern:RegExp(/(\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\s+)/.source+r+/[A-Z]\w*\b/.source),lookbehind:!0,inside:i.inside}],keyword:n,function:[t.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},constant:/\b[A-Z][A-Z_\d]+\b/}),t.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),t.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":i,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp(/(\bimport\s+)/.source+r+/(?:[A-Z]\w*|\*)(?=\s*;)/.source),lookbehind:!0,inside:{namespace:i.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp(/(\bimport\s+static\s+)/.source+r+/(?:\w+|\*)(?=\s*;)/.source),lookbehind:!0,alias:"static",inside:{namespace:i.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],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 n.source})),lookbehind:!0,inside:{punctuation:/\./}}})}(e)}o0.displayName="typescript";o0.aliases=["ts"];function o0(e){e.register(Kd),function(t){t.languages.typescript=t.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/}),t.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 t.languages.typescript.parameter,delete t.languages.typescript["literal-property"];var n=t.languages.extend("typescript",{});delete n["class-name"],t.languages.typescript["class-name"].inside=n,t.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:n}}}}),t.languages.ts=t.languages.typescript}(e)}l0.displayName="kotlin";l0.aliases=["kt","kts"];function l0(e){e.register(Gi),function(t){t.languages.kotlin=t.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 t.languages.kotlin["class-name"];var n={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:t.languages.kotlin}};t.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:n},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:n},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete t.languages.kotlin.string,t.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),t.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),t.languages.kt=t.languages.kotlin,t.languages.kts=t.languages.kotlin}(e)}s0.displayName="python";s0.aliases=["py"];function s0(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}u0.displayName="jsx";u0.aliases=[];function u0(e){e.register(Kd),e.register(Gd),function(t){var n=t.util.clone(t.languages.javascript),r=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,i=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(u,f){return u=u.replace(/<S>/g,function(){return r}).replace(/<BRACES>/g,function(){return i}).replace(/<SPREAD>/g,function(){return a}),RegExp(u,f)}a=o(a).source,t.languages.jsx=t.languages.extend("markup",n),t.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),t.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,t.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,t.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,t.languages.jsx.tag.inside.comment=n.comment,t.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:t.languages.jsx}},t.languages.jsx.tag),t.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:t.languages.jsx}}},t.languages.jsx.tag);var l=function(u){return u?typeof u=="string"?u:typeof u.content=="string"?u.content:u.content.map(l).join(""):""},s=function(u){for(var f=[],c=0;c<u.length;c++){var d=u[c],p=!1;if(typeof d!="string"&&(d.type==="tag"&&d.content[0]&&d.content[0].type==="tag"?d.content[0].content[0].content==="</"?f.length>0&&f[f.length-1].tagName===l(d.content[0].content[1])&&f.pop():d.content[d.content.length-1].content==="/>"||f.push({tagName:l(d.content[0].content[1]),openedBraces:0}):f.length>0&&d.type==="punctuation"&&d.content==="{"?f[f.length-1].openedBraces++:f.length>0&&f[f.length-1].openedBraces>0&&d.type==="punctuation"&&d.content==="}"?f[f.length-1].openedBraces--:p=!0),(p||typeof d=="string")&&f.length>0&&f[f.length-1].openedBraces===0){var y=l(d);c<u.length-1&&(typeof u[c+1]=="string"||u[c+1].type==="plain-text")&&(y+=l(u[c+1]),u.splice(c+1,1)),c>0&&(typeof u[c-1]=="string"||u[c-1].type==="plain-text")&&(y=l(u[c-1])+y,u.splice(c-1,1),c--),u[c]=new t.Token("plain-text",y,null,y)}d.content&&typeof d.content!="string"&&s(d.content)}};t.hooks.add("after-tokenize",function(u){u.language!=="jsx"&&u.language!=="tsx"||s(u.tokens)})}(e)}c0.displayName="tsx";c0.aliases=[];function c0(e){e.register(u0),e.register(o0),function(t){var n=t.util.clone(t.languages.typescript);t.languages.tsx=t.languages.extend("jsx",n),delete t.languages.tsx.parameter,delete t.languages.tsx["literal-property"];var r=t.languages.tsx.tag;r.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+r.pattern.source+")",r.pattern.flags),r.lookbehind=!0}(e)}f0.displayName="rust";f0.aliases=[];function f0(e){(function(t){for(var n=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,r=0;r<2;r++)n=n.replace(/<self>/g,function(){return n});n=n.replace(/<self>/g,function(){return/[^\s\S]/.source}),t.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+n),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:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},t.languages.rust["closure-params"].inside.rest=t.languages.rust,t.languages.rust.attribute.inside.string=t.languages.rust.string})(e)}const Zie={'pre[class*="language-"]':{color:"#d4d4d4",fontSize:"13px",textShadow:"none",fontFamily:'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"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",background:"#1e1e1e"},'code[class*="language-"]':{color:"#d4d4d4",fontSize:"13px",textShadow:"none",fontFamily:'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]::selection':{textShadow:"none",background:"#264F78"},'code[class*="language-"]::selection':{textShadow:"none",background:"#264F78"},'pre[class*="language-"] *::selection':{textShadow:"none",background:"#264F78"},'code[class*="language-"] *::selection':{textShadow:"none",background:"#264F78"},':not(pre) > code[class*="language-"]':{padding:".1em .3em",borderRadius:".3em",color:"#db4c69",background:"#1e1e1e"},".namespace":{Opacity:".7"},"doctype.doctype-tag":{color:"#569CD6"},"doctype.name":{color:"#9cdcfe"},comment:{color:"#6a9955"},prolog:{color:"#6a9955"},punctuation:{color:"#d4d4d4"},".language-html .language-css .token.punctuation":{color:"#d4d4d4"},".language-html .language-javascript .token.punctuation":{color:"#d4d4d4"},property:{color:"#9cdcfe"},tag:{color:"#569cd6"},boolean:{color:"#569cd6"},number:{color:"#b5cea8"},constant:{color:"#9cdcfe"},symbol:{color:"#b5cea8"},inserted:{color:"#b5cea8"},unit:{color:"#b5cea8"},selector:{color:"#d7ba7d"},"attr-name":{color:"#9cdcfe"},string:{color:"#ce9178"},char:{color:"#ce9178"},builtin:{color:"#ce9178"},deleted:{color:"#ce9178"},".language-css .token.string.url":{textDecoration:"underline"},operator:{color:"#d4d4d4"},entity:{color:"#569cd6"},"operator.arrow":{color:"#569CD6"},atrule:{color:"#ce9178"},"atrule.rule":{color:"#c586c0"},"atrule.url":{color:"#9cdcfe"},"atrule.url.function":{color:"#dcdcaa"},"atrule.url.punctuation":{color:"#d4d4d4"},keyword:{color:"#569CD6"},"keyword.module":{color:"#c586c0"},"keyword.control-flow":{color:"#c586c0"},function:{color:"#dcdcaa"},"function.maybe-class-name":{color:"#dcdcaa"},regex:{color:"#d16969"},important:{color:"#569cd6"},italic:{fontStyle:"italic"},"class-name":{color:"#4ec9b0"},"maybe-class-name":{color:"#4ec9b0"},console:{color:"#9cdcfe"},parameter:{color:"#9cdcfe"},interpolation:{color:"#9cdcfe"},"punctuation.interpolation-punctuation":{color:"#569cd6"},variable:{color:"#9cdcfe"},"imports.maybe-class-name":{color:"#9cdcfe"},"exports.maybe-class-name":{color:"#9cdcfe"},escape:{color:"#d7ba7d"},"tag.punctuation":{color:"#808080"},cdata:{color:"#808080"},"attr-value":{color:"#ce9178"},"attr-value.punctuation":{color:"#ce9178"},"attr-value.punctuation.attr-equals":{color:"#d4d4d4"},namespace:{color:"#4ec9b0"},'pre[class*="language-javascript"]':{color:"#9cdcfe"},'code[class*="language-javascript"]':{color:"#9cdcfe"},'pre[class*="language-jsx"]':{color:"#9cdcfe"},'code[class*="language-jsx"]':{color:"#9cdcfe"},'pre[class*="language-typescript"]':{color:"#9cdcfe"},'code[class*="language-typescript"]':{color:"#9cdcfe"},'pre[class*="language-tsx"]':{color:"#9cdcfe"},'code[class*="language-tsx"]':{color:"#9cdcfe"},'pre[class*="language-css"]':{color:"#ce9178"},'code[class*="language-css"]':{color:"#ce9178"},'pre[class*="language-html"]':{color:"#d4d4d4"},'code[class*="language-html"]':{color:"#d4d4d4"},".language-regex .token.anchor":{color:"#dcdcaa"},".language-html .token.punctuation":{color:"#808080"},'pre[class*="language-"] > code[class*="language-"]':{position:"relative",zIndex:"1"},".line-highlight.line-highlight":{background:"#f7ebc6",boxShadow:"inset 5px 0 0 #f7d87c",zIndex:"0"}},Qie={critical:"#fca5a5",high:"#fdba74",medium:"#fde68a",low:"#86efac"},Au=240,ai=40,qt=2;function ih(e){const t=Math.floor(Date.now()/1e3)-e;return t<60?"just now":t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}function Jie({file:e}){const[t,n]=k.useState({status:"loading"});if(k.useEffect(()=>{let g=!1;return n({status:"loading"}),fetch(`/api/trends/file?path=${encodeURIComponent(e)}&range=90d`).then(async b=>{if(!b.ok)throw new Error(`API failed: ${b.status}`);return b.json()}).then(b=>{g||n({status:"success",data:b})}).catch(b=>{g||n({status:"error",message:b instanceof Error?b.message:String(b)})}),()=>{g=!0}},[e]),t.status==="loading")return O.jsx("div",{className:"text-white/30 text-xs",children:"Loading risk history…"});if(t.status==="error")return O.jsxs("div",{className:"text-red-300/60 text-xs",children:["Risk history failed: ",t.message]});const{points:r,gitEnabled:i}=t.data;if(!i)return O.jsx("div",{className:"text-white/40 text-xs",children:"No git history available for this project."});if(r.length===0)return O.jsxs("div",{className:"text-white/40 text-xs leading-relaxed",children:["No risk history yet for this file.",O.jsx("br",{}),O.jsx("span",{className:"text-white/30",children:"Records appear after a re-index when the file's score changes meaningfully."})]});if(r.length===1){const g=r[0];return O.jsxs("div",{className:"text-white/60 text-xs",children:["Single point: ",O.jsx("span",{className:"text-white/90 tabular-nums",children:g.score.toFixed(2)}),O.jsxs("span",{className:"text-white/30",children:[" (",g.label,", ",ih(g.unixSeconds),")"]})]})}const a=r[0],o=r[r.length-1],l=o.score-a.score,s=l>.005?"↑":l<-.005?"↓":"→",u=l>.005?"text-red-300/80":l<-.005?"text-green-300/80":"text-white/40",f=0,c=1,d=r.map(g=>g.unixSeconds),p=Math.min(...d),m=Math.max(...d)-p||1,v=c-f,h=r.map((g,b)=>{const x=qt+(g.unixSeconds-p)/m*(Au-qt*2),w=ai-qt-(g.score-f)/v*(ai-qt*2);return`${b===0?"M":"L"}${x.toFixed(1)} ${w.toFixed(1)}`}).join(" ");return O.jsxs("div",{className:"space-y-1.5",children:[O.jsxs("div",{className:"flex items-baseline justify-between",children:[O.jsx("span",{className:"text-white/40 text-[10px] uppercase tracking-wide",children:"Risk over time"}),O.jsxs("span",{className:"text-white/30 text-[10px]",children:[r.length," points · last 90d"]})]}),O.jsxs("div",{className:"flex items-center gap-3",children:[O.jsxs("svg",{width:Au,height:ai,className:"shrink-0",children:[O.jsx("line",{x1:qt,y1:ai-qt,x2:Au-qt,y2:ai-qt,stroke:"rgba(255,255,255,0.05)"}),O.jsx("path",{d:h,fill:"none",stroke:"#a78bfa",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),r.map((g,b)=>{const x=qt+(g.unixSeconds-p)/m*(Au-qt*2),w=ai-qt-(g.score-f)/v*(ai-qt*2);return O.jsx("circle",{cx:x,cy:w,r:2,fill:Qie[g.label]??"#a78bfa",children:O.jsxs("title",{children:[g.label," (",g.score.toFixed(2),") — ",ih(g.unixSeconds)]})},b)})]}),O.jsxs("div",{className:"text-xs leading-relaxed",children:[O.jsxs("div",{className:"text-white/60",children:[O.jsx("span",{className:"text-white/90 tabular-nums",children:o.score.toFixed(2)}),O.jsxs("span",{className:"text-white/30",children:[" · ",o.label]})]}),O.jsxs("div",{className:`tabular-nums text-[11px] ${u}`,children:[s," ",l>=0?"+":"",l.toFixed(2)," ",O.jsxs("span",{className:"text-white/30",children:["since ",ih(a.unixSeconds)]})]})]})]})]})}gt.registerLanguage("bash",Jy);gt.registerLanguage("css",Zy);gt.registerLanguage("go",r0);gt.registerLanguage("java",a0);gt.registerLanguage("json",i0);gt.registerLanguage("kotlin",l0);gt.registerLanguage("markdown",t0);gt.registerLanguage("python",s0);gt.registerLanguage("ruby",n0);gt.registerLanguage("rust",f0);gt.registerLanguage("sql",Qy);gt.registerLanguage("tsx",c0);gt.registerLanguage("yaml",e0);const eae={ts:"tsx",tsx:"tsx",js:"tsx",jsx:"tsx",mjs:"tsx",cjs:"tsx",py:"python",pyi:"python",go:"go",rs:"rust",java:"java",kt:"kotlin",kts:"kotlin",rb:"ruby",sql:"sql",md:"markdown",markdown:"markdown",sh:"bash",bash:"bash",zsh:"bash",yml:"yaml",yaml:"yaml",json:"json",css:"css"};function tae(e){return e?eae[e.toLowerCase()]??"text":"text"}function Xd({file:e,onClose:t}){const[n,r]=k.useState(null),[i,a]=k.useState(!1),[o,l]=k.useState(!1);k.useEffect(()=>{if(!e){r(null);return}a(!0),fetch(`/api/file?path=${encodeURIComponent(e)}`).then(f=>f.ok?f.json():null).then(f=>r(f)).finally(()=>a(!1))},[e]);async function s(){e&&(l(!0),await fetch("/api/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e})}),l(!1))}if(!e)return null;const u=e.split("/").pop()??e;return O.jsxs(O.Fragment,{children:[O.jsx("div",{className:"fixed inset-0 bg-black/40 z-40",onClick:t}),O.jsxs("div",{className:"fixed right-0 top-0 h-full w-[680px] max-w-full z-50 flex flex-col",style:{background:"#131220",borderLeft:"1px solid rgba(255,255,255,0.07)"},children:[O.jsxs("div",{className:"flex items-center justify-between px-5 py-4 shrink-0",style:{borderBottom:"1px solid rgba(255,255,255,0.07)"},children:[O.jsxs("div",{className:"min-w-0",children:[O.jsx("p",{className:"text-white font-medium text-sm truncate",children:u}),O.jsx("p",{className:"text-white/30 text-xs font-mono truncate mt-0.5",children:e})]}),O.jsxs("div",{className:"flex items-center gap-2 ml-4 shrink-0",children:[O.jsx("button",{onClick:s,disabled:o,className:"flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium bg-[#603dc6]/20 text-[#a78bfa] hover:bg-[#603dc6]/30 transition-colors disabled:opacity-50",children:o?"Opening…":"↗ Open in IDE"}),O.jsx("button",{onClick:t,className:"text-white/30 hover:text-white/70 transition-colors text-lg leading-none px-1",children:"✕"})]})]}),O.jsxs("div",{className:"flex-1 overflow-auto",children:[i&&O.jsx("div",{className:"p-5 text-white/30 text-sm",children:"Loading\\u2026"}),!i&&n&&O.jsxs(O.Fragment,{children:[O.jsxs("div",{className:"px-5 py-2 text-white/20 text-xs",style:{borderBottom:"1px solid rgba(255,255,255,0.05)"},children:[n.lines," lines · .",n.ext]}),O.jsx("div",{className:"px-5 py-3",style:{borderBottom:"1px solid rgba(255,255,255,0.05)"},children:O.jsx(Jie,{file:e})}),O.jsx(gt,{language:tae(n.ext),style:Zie,showLineNumbers:!0,wrapLongLines:!1,customStyle:{margin:0,padding:"20px",background:"transparent",fontSize:"12px",lineHeight:1.55},lineNumberStyle:{color:"rgba(255,255,255,0.20)",minWidth:"2em",paddingRight:"1em",userSelect:"none"},codeTagProps:{style:{fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace"}},children:n.content})]}),!i&&!n&&O.jsx("div",{className:"p-5 text-white/30 text-sm",children:"Could not load file."})]})]})]})}const Eu=Fre;function ah(e){return e.split("/").pop()??e}function nae(){const e=Si(kn.graph),t=k.useRef(null),n=k.useRef(null),r=k.useRef(null),i=k.useRef([]),[a,o]=k.useState(null),[l,s]=k.useState({x:0,y:0}),[u,f]=k.useState(null),[c,d]=k.useState(null),[p,y]=k.useState(""),[m,v]=k.useState([]),h=k.useCallback(g=>{if(!g.trim()||!t.current||!r.current)return;const b=g.toLowerCase(),x=i.current.find(w=>ah(w.id).toLowerCase().includes(b)||w.id.toLowerCase().includes(b));x&&x.x!=null&&x.y!=null&&bn(t.current).transition().duration(500).call(r.current.translateTo,x.x,x.y)},[]);return k.useEffect(()=>{h(p)},[p,h]),k.useEffect(()=>{var J,ae;if(e.status!=="success"||!t.current)return;const{nodes:g,edges:b}=e.data,x=[...g].sort((z,Q)=>Q.inDegree+Q.outDegree-(z.inDegree+z.outDegree)).slice(0,300),w=new Set(x.map(z=>z.id)),S=b.filter(z=>w.has(z.source)&&w.has(z.target)),_=[...new Set(x.map(z=>z.community))].sort((z,Q)=>z-Q);v(_);const A=new Set([...x].sort((z,Q)=>Q.inDegree+Q.outDegree-(z.inDegree+z.outDegree)).slice(0,15).map(z=>z.id)),P=t.current,T=P.clientWidth||900,I=P.clientHeight||600,j=bn(P);j.selectAll("*").remove();const R=j.append("g"),E=Kre().scaleExtent([.1,8]).on("zoom",z=>R.attr("transform",z.transform));r.current=E,j.call(E),j.on("click",z=>{z.target===P&&f(null)});const N=x.map(z=>({...z}));i.current=N;const C=new Map(N.map(z=>[z.id,z])),L=S.map(z=>({source:C.get(z.source),target:C.get(z.target)})).filter(z=>z.source&&z.target),M=new Map;for(const z of N)M.set(z.id,new Set);for(const z of L)(J=M.get(z.source.id))==null||J.add(z.target.id),(ae=M.get(z.target.id))==null||ae.add(z.source.id);const D=Lre(N).force("link",kre(L).id(z=>z.id).distance(60)).force("charge",Dre().strength(-120)).force("center",sre(T/2,I/2)).force("collision",Pre(8)),B=R.append("g").selectAll("line").data(L).join("line").attr("stroke","rgba(255,255,255,0.1)").attr("stroke-width",.8).attr("stroke-opacity",.6),W=R.append("g").selectAll("g").data(N).join("g").style("cursor","pointer").call(qte().on("start",(z,Q)=>{z.active||D.alphaTarget(.3).restart(),Q.fx=Q.x,Q.fy=Q.y}).on("drag",(z,Q)=>{Q.fx=z.x,Q.fy=z.y}).on("end",(z,Q)=>{z.active||D.alphaTarget(0),Q.fx=null,Q.fy=null}));W.filter(z=>(z.riskScore??0)>.6).append("circle").attr("class","risk-ring").attr("r",z=>3+Math.min(10,(z.inDegree+z.outDegree)*.5)+3).attr("fill","none").attr("stroke","#ef4444").attr("stroke-opacity",.6).attr("stroke-width",z=>(z.riskScore??0)>.8?2.5:1.5);const U=W.append("circle").attr("r",z=>3+Math.min(10,(z.inDegree+z.outDegree)*.5)).attr("fill",z=>Eu[z.community%Eu.length]).attr("stroke","rgba(255,255,255,0.15)").attr("stroke-width",1);W.filter(z=>A.has(z.id)).append("text").attr("dy",z=>3+Math.min(10,(z.inDegree+z.outDegree)*.5)+11).attr("text-anchor","middle").attr("font-size",9).attr("fill","rgba(255,255,255,0.6)").attr("pointer-events","none").text(z=>ah(z.id)),W.on("mouseover",(z,Q)=>{o({id:Q.id,label:Q.label,inDegree:Q.inDegree,outDegree:Q.outDegree,riskScore:Q.riskScore})}).on("mousemove",z=>{const Q=P.getBoundingClientRect();s({x:z.clientX-Q.left+12,y:z.clientY-Q.top-8})}).on("mouseout",()=>{o(null)}).on("click",(z,Q)=>{z.stopPropagation(),f(ce=>ce===Q.id?null:Q.id),d(Q.id)});function Y(z){if(z===null)W.attr("opacity",1),U.attr("opacity",1),B.attr("opacity",.6);else{const Q=M.get(z)??new Set;W.attr("opacity",ce=>ce.id===z||Q.has(ce.id)?1:.15),B.attr("opacity",ce=>{const X=ce.source.id,re=ce.target.id;return X===z||re===z?.9:.05})}}return t.current._applyHighlight=Y,D.on("tick",()=>{B.attr("x1",z=>z.source.x??0).attr("y1",z=>z.source.y??0).attr("x2",z=>z.target.x??0).attr("y2",z=>z.target.y??0),W.attr("transform",z=>`translate(${z.x??0},${z.y??0})`)}),D.on("end",()=>{i.current=N}),()=>{D.stop(),t.current&&delete t.current._applyHighlight}},[e]),k.useEffect(()=>{if(!t.current)return;const g=t.current._applyHighlight;g&&g(u)},[u]),e.status==="loading"?O.jsx("div",{className:"text-white/40 text-sm",children:"Building graph..."}):e.status==="error"?O.jsx(vo,{message:e.message}):O.jsxs("div",{className:"space-y-4 h-full",children:[O.jsxs("div",{className:"flex items-center justify-between",children:[O.jsx("h1",{className:"text-white text-xl font-semibold",children:"Dependency Graph"}),O.jsxs("span",{className:"text-xs text-white/40",children:[e.data.nodes.length," nodes · ",e.data.edges.length," edges · scroll to zoom · drag to pan"]})]}),O.jsxs("div",{ref:n,className:"rounded-xl border border-white/10 bg-[#18181f] relative overflow-hidden",style:{height:"calc(100vh - 160px)"},children:[O.jsx("div",{className:"absolute top-3 right-3 z-10",children:O.jsx("input",{type:"text",placeholder:"Search node...",value:p,onChange:g=>y(g.target.value),className:"bg-[#131220] border border-white/10 text-white placeholder:text-white/30 rounded-md px-2 py-1 text-xs w-48 outline-none focus:ring-1 focus:ring-[#603dc6]/50"})}),m.length>0&&O.jsxs("div",{className:"absolute bottom-3 left-3 z-10 bg-[#1e1d2a] border border-white/10 rounded-lg px-3 py-2 max-h-48 overflow-y-auto","aria-label":"Community legend",children:[O.jsx("p",{className:"text-white/40 text-[10px] uppercase tracking-wider mb-2",children:"Communities"}),O.jsx("div",{className:"space-y-1",children:m.map(g=>O.jsxs("div",{className:"flex items-center gap-2",children:[O.jsx("span",{className:"w-2.5 h-2.5 rounded-full flex-shrink-0",style:{backgroundColor:Eu[g%Eu.length]}}),O.jsx("span",{className:"text-white/60 text-[10px]",children:g})]},g))})]}),O.jsx("svg",{ref:t,width:"100%",height:"100%",style:{background:"#18181f",borderRadius:"0.75rem"}}),a&&O.jsxs("div",{className:"absolute pointer-events-none z-20 bg-[#1e1d2a] border border-white/10 rounded-lg px-3 py-2 text-xs text-white shadow-lg",style:{left:l.x,top:l.y,maxWidth:260},role:"tooltip",children:[O.jsx("p",{className:"font-bold truncate",children:ah(a.id)}),O.jsx("p",{className:"text-white/40 truncate mt-0.5",children:a.id}),O.jsxs("div",{className:"mt-2 space-y-0.5 text-white/70",children:[O.jsxs("p",{children:["In-degree: ",O.jsx("span",{className:"text-white",children:a.inDegree})]}),O.jsxs("p",{children:["Out-degree: ",O.jsx("span",{className:"text-white",children:a.outDegree})]}),O.jsxs("p",{children:["Risk score:"," ",O.jsx("span",{className:"text-white",children:a.riskScore!=null?a.riskScore.toFixed(2):"—"})]})]})]})]}),O.jsx(Xd,{file:c,onClose:()=>d(null)})]})}function rae(){const e=Si(kn.risk),[t,n]=k.useState("riskScore"),[r,i]=k.useState(""),[a,o]=k.useState(null);if(e.status==="loading")return O.jsx("div",{className:"text-white/40 text-sm",children:"Loading..."});if(e.status==="error")return O.jsx(vo,{message:e.message});const{entries:l,overallRiskScore:s,caps:u,bands:f}=e.data;if(l.length===0)return O.jsxs("div",{className:"space-y-4",children:[O.jsx("h1",{className:"text-white text-xl font-semibold",children:"Risk"}),O.jsxs("p",{className:"text-white/40 text-sm",children:["No git history available. Run ",O.jsx("code",{className:"text-[#a78bfa]",children:"ctxloom index --with-git"})," to enable risk analysis."]})]});const c=l.filter(p=>p.file.toLowerCase().includes(r.toLowerCase())).sort((p,y)=>y[t]-p[t]),d=[{key:"riskScore",label:"Risk"},{key:"churnLines",label:"Churn lines"},{key:"busFactor",label:"Bus factor"},{key:"couplingFanOut",label:"Coupling"},{key:"bugDensity",label:"Bug density"}];return O.jsxs("div",{className:"space-y-4",children:[O.jsxs("div",{className:"flex items-center justify-between",children:[O.jsx("h1",{className:"text-white text-xl font-semibold",children:"Risk"}),O.jsxs("span",{className:"text-sm text-white/40",title:"Score is intrinsic file risk: 40% churn + 30% bug density + 30% coupling, all normalized to this repo's 90th-percentile values. Labels are percentile-banded — top 5% are critical in this repo, next 10% are high, next 20% are medium. Bus factor is shown in each tooltip but does not contribute to the score.",children:["avg score: ",s,f&&O.jsxs("span",{className:"text-white/30",children:[" · ",f.criticalCount," critical · ",f.highCount," high · ",f.mediumCount," medium"]}),u&&O.jsxs("span",{className:"text-white/30",children:[" · ","churn p90: ",u.churn.toLocaleString()," · coupling p90: ",u.coupling]})]})]}),O.jsx("input",{type:"text",placeholder:"Filter by file...",value:r,onChange:p=>i(p.target.value),className:"w-full rounded-md border border-white/10 bg-[#1e1d2a] px-3 py-2 text-sm text-white placeholder:text-white/30 outline-none focus:ring-2 focus:ring-[#603dc6]/50 focus:border-[#603dc6]/50"}),O.jsx("div",{className:"overflow-x-auto rounded-xl border border-white/10 bg-[#1e1d2a]",children:O.jsxs("table",{className:"min-w-full text-sm",children:[O.jsx("thead",{className:"border-b border-white/10 bg-[#131220]",children:O.jsxs("tr",{children:[O.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-white/40",children:"File"}),O.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-white/40",children:"Owner"}),d.map(p=>O.jsxs("th",{onClick:()=>n(p.key),className:`px-4 py-3 text-left text-xs font-medium cursor-pointer select-none ${t===p.key?"text-[#a78bfa]":"text-white/40"}`,children:[p.label," ",t===p.key?"↓":""]},p.key))]})}),O.jsx("tbody",{className:"divide-y divide-[rgba(255,255,255,0.05)]",children:c.map(p=>O.jsxs("tr",{className:"hover:bg-white/5",children:[O.jsx("td",{className:"px-4 py-3 font-mono text-xs text-white/60 max-w-xs truncate cursor-pointer hover:text-[#a78bfa] transition-colors",title:p.file,onClick:()=>o(p.file),children:p.file}),O.jsx("td",{className:"px-4 py-3 text-xs text-white/50",children:p.topOwner??"—"}),O.jsx("td",{className:"px-4 py-3",children:O.jsx(TA,{level:p.riskLabel,breakdown:p.breakdown,score:p.riskScore,busFactor:p.busFactor,topOwner:p.topOwner,siloed:p.siloed})}),O.jsx("td",{className:"px-4 py-3 text-white/70",children:p.churnLines.toLocaleString()}),O.jsx("td",{className:"px-4 py-3 text-white/70",children:p.busFactor}),O.jsx("td",{className:"px-4 py-3 text-white/70",children:p.couplingFanOut}),O.jsx("td",{className:"px-4 py-3 text-white/70",children:p.bugDensity.toFixed(2)})]},p.file))})]})}),O.jsx(Xd,{file:a,onClose:()=>o(null)})]})}function iae(e,t,n){if(e===0){if(t===0)return{label:"→ stable",tone:"neutral"};const s=t>0;return{label:"↑ new",tone:n==="up"===s?"good":"bad"}}const r=(t-e)/e,i=Math.abs(r);if(i<.01)return{label:"→ stable",tone:"neutral"};const a=r>0?"↑":"↓",o=r>0,l=n==="up"===o;return{label:`${a} ${(i*100).toFixed(0)}%`,tone:l?"good":"bad"}}const aae={good:"#22c55e",bad:"#ef4444",neutral:"#a1a1aa"};function Pu({label:e,currentValue:t,series:n,goodDirection:r,format:i,gitRequired:a=!1,gitEnabled:o}){if(a&&!o)return O.jsxs("div",{className:"bg-[#1e1d2a] border border-white/10 rounded-xl p-5",children:[O.jsx("h2",{className:"text-white/40 text-xs uppercase tracking-wider mb-2",children:e}),O.jsx("p",{className:"text-white/30 text-sm",children:"Git history disabled"})]});const l=n.filter(p=>typeof p.v=="number");if(l.length<2||t===null)return O.jsxs("div",{className:"bg-[#1e1d2a] border border-white/10 rounded-xl p-5",children:[O.jsx("h2",{className:"text-white/40 text-xs uppercase tracking-wider mb-2",children:e}),O.jsxs("p",{className:"text-white/30 text-sm",children:["Collecting data — edit some files or run ",O.jsx("code",{className:"text-white/50",children:"ctxloom index"})]})]});const s=l[0].v,u=l[l.length-1].v,f=iae(s,u,r),c=aae[f.tone],d=`spark-grad-${e.replace(/[^a-zA-Z0-9]/g,"_")}`;return O.jsxs("div",{className:"bg-[#1e1d2a] border border-white/10 rounded-xl p-5",children:[O.jsx("h2",{className:"text-white/40 text-xs uppercase tracking-wider mb-2",children:e}),O.jsxs("div",{className:"flex items-baseline gap-3 mb-3",children:[O.jsx("span",{className:"text-white text-2xl font-semibold",children:i(t)}),O.jsx("span",{className:"text-xs font-medium",style:{color:c},children:f.label})]}),O.jsx("div",{className:"h-14",children:O.jsx(HE,{width:"100%",height:"100%",children:O.jsxs(aee,{data:l,margin:{top:4,right:4,bottom:4,left:4},children:[O.jsx("defs",{children:O.jsxs("linearGradient",{id:d,x1:"0",y1:"0",x2:"0",y2:"1",children:[O.jsx("stop",{offset:"0%",stopColor:c,stopOpacity:.32}),O.jsx("stop",{offset:"100%",stopColor:c,stopOpacity:0})]})}),O.jsx(zd,{hide:!0,domain:["auto","auto"]}),O.jsx(Jr,{type:"monotone",dataKey:"v",stroke:c,strokeWidth:1.75,fill:`url(#${d})`,dot:!1,isAnimationActive:!1})]})})})]})}const oae=[{value:"7d",label:"7d"},{value:"30d",label:"30d"},{value:"90d",label:"90d"}];function lae({value:e,onChange:t}){return O.jsx("div",{className:"inline-flex rounded-md bg-[#131220] border border-white/10 p-0.5",children:oae.map(n=>O.jsx("button",{onClick:()=>t(n.value),"aria-pressed":e===n.value,className:`px-3 py-1 text-xs font-medium rounded ${e===n.value?"bg-[#603dc6]/20 text-[#a78bfa]":"text-white/40 hover:text-white/70"}`,children:n.label},n.value))})}function t_(e){return String(Math.round(e))}function sae(e){return e.toFixed(1)}function uae(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(Math.round(e))}function Tu(e,t){return e.map(n=>({t:n.unixSeconds,v:n[t]}))}function ku(e,t){for(let n=e.length-1;n>=0;n--){const r=e[n][t];if(typeof r=="number")return r}return null}function cae(){const[e,t]=k.useState("30d"),[n,r]=k.useState({status:"loading"});if(k.useEffect(()=>{let o=!1;return r({status:"loading"}),fetch(`/api/trends?range=${e}`).then(async l=>{if(!l.ok)throw new Error(`API failed: ${l.status}`);return l.json()}).then(l=>{o||r({status:"success",data:l})}).catch(l=>{o||r({status:"error",message:l instanceof Error?l.message:String(l)})}),()=>{o=!0}},[e]),n.status==="loading")return O.jsx("div",{className:"text-white/40 text-sm",children:"Loading..."});if(n.status==="error")return O.jsx(vo,{message:n.message});const{snapshots:i,gitEnabled:a}=n.data;return O.jsxs("div",{className:"space-y-8",children:[O.jsxs("div",{className:"flex items-center justify-between",children:[O.jsx("h1",{className:"text-white text-xl font-semibold",children:"Trends"}),O.jsx(lae,{value:e,onChange:t})]}),O.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[O.jsx(Pu,{label:"Dead files",currentValue:ku(i,"deadFiles"),series:Tu(i,"deadFiles"),goodDirection:"down",format:t_,gitEnabled:a}),O.jsx(Pu,{label:"Avg bus factor",currentValue:ku(i,"avgBusFactor"),series:Tu(i,"avgBusFactor"),goodDirection:"up",format:sae,gitRequired:!0,gitEnabled:a}),O.jsx(Pu,{label:"High-risk files",currentValue:ku(i,"highRiskFiles"),series:Tu(i,"highRiskFiles"),goodDirection:"down",format:t_,gitRequired:!0,gitEnabled:a}),O.jsx(Pu,{label:"Churn lines / week",currentValue:ku(i,"churnLinesLast7d"),series:Tu(i,"churnLinesLast7d"),goodDirection:"down",format:uae,gitRequired:!0,gitEnabled:a})]})]})}function fae(){const e=Si(kn.communities),[t,n]=k.useState(null),[r,i]=k.useState(null);if(e.status==="loading")return O.jsx("div",{className:"text-white/40 text-sm",children:"Loading..."});if(e.status==="error")return O.jsx(vo,{message:e.message});const{communities:a,totalFiles:o,totalEdges:l}=e.data;return O.jsxs("div",{className:"space-y-4",children:[O.jsxs("div",{className:"flex items-center justify-between",children:[O.jsx("h1",{className:"text-white text-xl font-semibold",children:"Communities"}),O.jsxs("span",{className:"text-sm text-white/40",children:[a.length," clusters · ",o," files · ",l," edges"]})]}),O.jsx("div",{className:"grid grid-cols-1 gap-3 lg:grid-cols-2 items-start",children:a.map(s=>O.jsxs("div",{className:"bg-[#1e1d2a] border border-white/10 rounded-xl p-4 transition-colors hover:border-white/20",children:[O.jsxs("button",{className:"w-full flex items-center justify-between text-left",onClick:()=>n(t===s.id?null:s.id),children:[O.jsxs("div",{children:[O.jsx("span",{className:"text-white/80 text-sm font-medium",children:s.name}),O.jsxs("span",{className:"ml-2 text-xs text-white/40",children:[s.size," files"]})]}),O.jsx("span",{className:"text-white/30 text-xs",children:t===s.id?"▲":"▼"})]}),t===s.id&&O.jsx("ul",{className:"mt-3 space-y-1 border-t border-white/10 pt-3",children:s.files.map(u=>O.jsx("li",{className:"font-mono text-xs text-white/40 truncate cursor-pointer hover:text-[#a78bfa] transition-colors",title:u,onClick:()=>i(u),children:u},u))})]},s.id))}),O.jsx(Xd,{file:r,onClose:()=>i(null)})]})}function dae(){const e=Si(kn.ownership),[t,n]=k.useState(""),[r,i]=k.useState(null);if(e.status==="loading")return O.jsx("div",{className:"text-white/40 text-sm",children:"Loading..."});if(e.status==="error")return O.jsx(vo,{message:e.message});const{entries:a,totalAuthors:o}=e.data;if(a.length===0)return O.jsxs("div",{className:"space-y-4",children:[O.jsx("h1",{className:"text-white text-xl font-semibold",children:"Ownership"}),O.jsxs("p",{className:"text-white/40 text-sm",children:["No git history available. Run ",O.jsx("code",{className:"text-[#a78bfa]",children:"ctxloom index --with-git"})," to enable ownership analysis."]})]});const l=a.filter(u=>u.file.toLowerCase().includes(t.toLowerCase())||u.primaryOwner.toLowerCase().includes(t.toLowerCase())),s=a.filter(u=>u.busFactor===1).length;return O.jsxs("div",{className:"space-y-4",children:[O.jsxs("div",{className:"flex items-center justify-between",children:[O.jsx("h1",{className:"text-white text-xl font-semibold",children:"Ownership"}),O.jsxs("span",{className:"text-sm text-white/40",children:[o," authors · ",s," single-owner files"]})]}),s>0&&O.jsxs("div",{className:"bg-yellow-900/20 border border-yellow-500/30 text-yellow-300 rounded-lg p-3 text-sm",children:["⚠ ",s," files have only one contributor — bus factor risk."]}),O.jsx("input",{type:"text",placeholder:"Filter by file or owner...",value:t,onChange:u=>n(u.target.value),className:"w-full rounded-md border border-white/10 bg-[#1e1d2a] px-3 py-2 text-sm text-white placeholder:text-white/30 outline-none focus:ring-2 focus:ring-[#603dc6]/50 focus:border-[#603dc6]/50"}),O.jsx("div",{className:"overflow-x-auto rounded-xl border border-white/10 bg-[#1e1d2a]",children:O.jsxs("table",{className:"min-w-full text-sm",children:[O.jsx("thead",{className:"border-b border-white/10 bg-[#131220]",children:O.jsxs("tr",{children:[O.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-white/40",children:"File"}),O.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-white/40",children:"Primary owner"}),O.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-white/40",children:"Share"}),O.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-white/40",children:"Contributors"})]})}),O.jsx("tbody",{className:"divide-y divide-[rgba(255,255,255,0.05)]",children:l.map(u=>O.jsxs("tr",{className:`hover:bg-white/5 ${u.busFactor===1?"bg-yellow-900/10":""}`,children:[O.jsx("td",{className:"px-4 py-3 font-mono text-xs text-white/60 max-w-xs truncate cursor-pointer hover:text-[#a78bfa] transition-colors",title:u.file,onClick:()=>i(u.file),children:u.file}),O.jsx("td",{className:"px-4 py-3 text-xs text-white/70",children:u.primaryOwner}),O.jsxs("td",{className:"px-4 py-3 text-xs text-white/50",children:[Math.round(u.primaryShare*100),"%"]}),O.jsx("td",{className:"px-4 py-3 text-xs text-white/50",children:u.busFactor===1?O.jsx("span",{className:"text-yellow-400 font-medium",children:"sole owner"}):u.busFactor})]},u.file))})]})}),O.jsx(Xd,{file:r,onClose:()=>i(null)})]})}const n_=[{id:"overview",title:"Overview",icon:"◈",summary:"Your codebase at a glance — health snapshot and architectural hotspots.",items:[{term:"Files",def:"Total source files indexed. Click to open the Dependency Graph."},{term:"Edges",def:"Total import/dependency relationships between files. A high edge count relative to file count means a densely coupled codebase."},{term:"Communities",def:'Logical modules detected automatically by grouping files that import each other heavily (Louvain algorithm). Think of them as architectural "neighbourhoods".'},{term:"Git history",def:'"enabled" means git overlay data is loaded — Risk, Churn, and Ownership metrics will show real values. "disabled" means only static graph metrics are available. Run ctxloom index --with-git to enable.'},{term:"Risk breakdown donut",def:'Distribution of files across four risk tiers. A healthy codebase has most files in "low" and very few in "critical". Each slice is sized by file count.'},{term:"Risk tiers",def:"critical (score > 0.8) — urgent attention needed. high (> 0.6) — should be addressed soon. medium (> 0.3) — monitor. low (≤ 0.3) — acceptable."},{term:"Top architectural hubs",def:"Files most imported by others (high in-degree ↑) or that import the most (high out-degree ↓). Hubs are load-bearing — a bug here ripples everywhere."}]},{id:"graph",title:"Dependency Graph",icon:"⬡",summary:"Interactive force-directed map of every import relationship in your codebase.",items:[{term:"Nodes (dots)",def:"Each node is a file. Size reflects total degree (imports + importers) — bigger means more connected."},{term:"Node colour",def:"Colour encodes the Louvain community. Files in the same community share many imports with each other. The community legend (bottom-left) maps colours to community IDs."},{term:"Red ring around a node",def:"Risk alert. A thin red ring means riskScore > 0.6 (high). A thick red ring means riskScore > 0.8 (critical). These files need attention."},{term:"Edges (lines)",def:"A line from A to B means A imports B. The direction shows dependency flow."},{term:"Labels",def:"The top-15 most-connected files always show their filename. Hover any node to see full details."},{term:"Hover tooltip",def:"Shows the full file path, in-degree (how many files import this), out-degree (how many files this imports), and risk score."},{term:"Click to highlight",def:"Clicking a node dims everything except its direct neighbours. This reveals the file's immediate dependency context. Click again to reset."},{term:"Search box",def:"Type a filename fragment to pan the viewport to the first matching node."},{term:"Zoom / pan",def:"Scroll to zoom. Drag the background to pan. Drag individual nodes to reposition them."},{term:"Isolated nodes (far from centre)",def:"Files with few or no dependencies — utilities, config files, or dead code candidates."}]},{id:"risk",title:"Risk",icon:"⚠",summary:"Composite risk score per file, combining git churn, ownership concentration, and coupling.",items:[{term:"Risk score",def:"Weighted composite: (churn × 0.4) + (bus factor × 0.3) + (coupling × 0.3), normalised 0–1. Higher is riskier. Click the column header to sort."},{term:"Risk label (badge)",def:"critical / high / medium / low — derived from the risk score thresholds above. Critical files deserve immediate review."},{term:"Churn lines",def:"Total lines added + removed across all commits in the git window (default 365 days). High churn means the file changes frequently — volatility that correlates with bugs."},{term:"Bug density",def:"Ratio of commits with bug-fix keywords (fix, bug, hotfix, patch) to total commits touching this file. A value of 0.30 means 30% of its commits were bug fixes — a strong signal of instability."},{term:"Bus factor",def:"Minimum number of contributors whose loss would leave > 50% of this file's git history without a knowledgeable owner. Bus factor 1 = single point of failure."},{term:"Coupling",def:"Number of other files that import this file (fan-out of its importers). High coupling = many blast radius victims when this file changes."},{term:"Owner",def:"The git author responsible for the most lines of the file's history (by commit count share)."},{term:"avg score",def:"Mean risk score across all files shown. Use it as a baseline — individual files above this average warrant closer inspection."}]},{id:"communities",title:"Communities",icon:"⬡⬡",summary:"Auto-detected architectural modules — files that belong together by import density.",items:[{term:"What is a community?",def:"A group of files that import each other more than they import files outside the group. Detected via the Louvain modularity algorithm on the dependency graph."},{term:"Community name",def:"Named after the highest-degree file in the group (the hub). It's a label, not a hard boundary."},{term:"Size",def:"Number of files in the community. Very large communities (50+ files) may indicate an overgrown module that should be split. Very small ones (1–2 files) may be isolated utilities."},{term:"Expanding a community",def:"Click the row to expand and see all member files. This helps you verify whether the auto-grouping makes architectural sense."},{term:"What to look for",def:"Ideally, communities map to feature domains (auth, payments, graph). If unrelated files appear in the same community, they may be over-coupled. If a feature is split across many communities, its modules may be too tangled."},{term:"87 clusters",def:"A high community count vs file count ratio is normal — many files are singletons or small isolated groups (config, fixtures, types)."}]},{id:"ownership",title:"Ownership",icon:"◎",summary:"Per-file git ownership — who knows the code and where knowledge is concentrated.",items:[{term:"Primary owner",def:"The contributor with the highest share of commits touching this file."},{term:"Share %",def:"Percentage of commits to this file authored by the primary owner. 100% = sole owner."},{term:"Contributors column",def:'Shows "sole owner" (bus factor 1) or the count of meaningful contributors (bus factor > 1).'},{term:"Bus factor risk banner",def:"Appears when many files have only one contributor. If that person is unavailable, those files become a knowledge black hole."},{term:"Sole owner (highlighted in yellow)",def:"This file has exactly one person who understands it. It's the most critical ownership risk — prioritise review, documentation, or pair programming for these files."},{term:"What to do with this data",def:"Cross-reference with the Risk table. A file that is both high-churn AND sole-owner is extremely fragile. Target it for code review and knowledge transfer."},{term:"Filter",def:"Filter by filename or owner name to focus on a specific contributor's footprint or a specific directory."}]}];function pae(){return O.jsxs("div",{className:"max-w-3xl space-y-10 pb-16",children:[O.jsxs("div",{children:[O.jsx("h1",{className:"text-white text-xl font-semibold",children:"Guide"}),O.jsx("p",{className:"mt-1 text-white/50 text-sm",children:"How to read and interpret each dashboard view."})]}),O.jsx("div",{className:"flex flex-wrap gap-2",children:n_.map(e=>O.jsx("a",{href:`#${e.id}`,className:"rounded-full border border-white/10 px-3 py-1 text-xs text-white/50 hover:border-[#603dc6]/60 hover:text-[#a78bfa] transition-colors",children:e.title},e.id))}),n_.map(e=>O.jsxs("section",{id:e.id,className:"scroll-mt-6",children:[O.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[O.jsx("span",{className:"text-[#603dc6] text-lg select-none",children:e.icon}),O.jsx("h2",{className:"text-white font-semibold text-base",children:e.title})]}),O.jsx("p",{className:"text-white/50 text-sm mb-5 leading-relaxed",children:e.summary}),O.jsx("div",{className:"rounded-xl border border-white/10 bg-[#1e1d2a] overflow-hidden",children:e.items.map((t,n)=>O.jsxs("div",{className:`flex gap-4 px-5 py-4 ${n<e.items.length-1?"border-b border-[rgba(255,255,255,0.05)]":""}`,children:[O.jsx("dt",{className:"w-36 shrink-0 text-xs font-medium text-[#a78bfa] pt-0.5 leading-relaxed",children:t.term}),O.jsx("dd",{className:"text-sm text-white/60 leading-relaxed",children:t.def})]},t.term))})]},e.id))]})}let ol=null,$u=null;async function hae(){if(ol===null)return $u||($u=(async()=>{try{const e=await fetch("/api/telemetry/identity",{credentials:"same-origin"});if(!e.ok){ol=!1;return}ol=(await e.json()).enabled===!0}catch{ol=!1}})(),$u)}async function r_(e,t={}){if(await hae(),!!ol)try{await fetch("/api/telemetry/event",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"same-origin",body:JSON.stringify({event:e,props:t}),keepalive:!0})}catch{}}function gae(){const e=mo();return k.useEffect(()=>{r_("dashboard_loaded")},[]),k.useEffect(()=>{r_("dashboard_page_viewed",{path:e.pathname})},[e.pathname]),null}function mae(){return O.jsxs(O.Fragment,{children:[O.jsx(gae,{}),O.jsx(EN,{children:O.jsxs(Un,{element:O.jsx(VN,{}),children:[O.jsx(Un,{index:!0,element:O.jsx(see,{})}),O.jsx(Un,{path:"graph",element:O.jsx(nae,{})}),O.jsx(Un,{path:"risk",element:O.jsx(rae,{})}),O.jsx(Un,{path:"trends",element:O.jsx(cae,{})}),O.jsx(Un,{path:"communities",element:O.jsx(fae,{})}),O.jsx(Un,{path:"ownership",element:O.jsx(dae,{})}),O.jsx(Un,{path:"guide",element:O.jsx(pae,{})})]})})]})}oh.createRoot(document.getElementById("root")).render(O.jsx($.StrictMode,{children:O.jsx(MN,{children:O.jsx(mae,{})})}));
144
+ //# sourceMappingURL=index-DNFP0Mer.js.map
@@ -11312,10 +11312,10 @@ function markAliasSent(home) {
11312
11312
 
11313
11313
  // ../../packages/core/src/license/telemetry.ts
11314
11314
  var TELEMETRY_DISABLED = process.env["CTXLOOM_NO_TELEMETRY"] === "1" || process.env["DO_NOT_TRACK"] === "1";
11315
- var CTXLOOM_VERSION = typeof __CTXLOOM_VERSION__ === "string" && __CTXLOOM_VERSION__.length > 0 ? __CTXLOOM_VERSION__ : "dev";
11315
+ var CTXLOOM_VERSION = "1.1.5".length > 0 ? "1.1.5" : "dev";
11316
11316
  var POSTHOG_HOST = "https://eu.i.posthog.com";
11317
- var POSTHOG_KEY = process.env["POSTHOG_API_KEY"] ?? (typeof __TELEMETRY_POSTHOG_KEY__ === "string" ? __TELEMETRY_POSTHOG_KEY__ : "");
11318
- var SENTRY_DSN = process.env["SENTRY_DSN"] ?? (typeof __TELEMETRY_SENTRY_DSN__ === "string" ? __TELEMETRY_SENTRY_DSN__ : "");
11317
+ var POSTHOG_KEY = process.env["POSTHOG_API_KEY"] ?? (true ? "phc_CiDkmFLcZ2K6uCpcoSUQLmFrnnUvsyXGhSxopX5TVKE6" : "");
11318
+ var SENTRY_DSN = process.env["SENTRY_DSN"] ?? (true ? "https://81c94a0f04a8e242dee493ac1e17f733@o4508531702497280.ingest.de.sentry.io/4511256875368528" : "");
11319
11319
  var cachedDistinctId = null;
11320
11320
  function resolveDistinctId() {
11321
11321
  if (cachedDistinctId) return cachedDistinctId;
@@ -8838,7 +8838,7 @@ function markAliasSent(home) {
8838
8838
 
8839
8839
  // packages/core/src/license/telemetry.ts
8840
8840
  var TELEMETRY_DISABLED = process.env["CTXLOOM_NO_TELEMETRY"] === "1" || process.env["DO_NOT_TRACK"] === "1";
8841
- var CTXLOOM_VERSION = "1.1.3".length > 0 ? "1.1.3" : "dev";
8841
+ var CTXLOOM_VERSION = "1.1.5".length > 0 ? "1.1.5" : "dev";
8842
8842
  var POSTHOG_HOST = "https://eu.i.posthog.com";
8843
8843
  var POSTHOG_KEY = process.env["POSTHOG_API_KEY"] ?? (true ? "phc_CiDkmFLcZ2K6uCpcoSUQLmFrnnUvsyXGhSxopX5TVKE6" : "");
8844
8844
  var SENTRY_DSN = process.env["SENTRY_DSN"] ?? (true ? "https://81c94a0f04a8e242dee493ac1e17f733@o4508531702497280.ingest.de.sentry.io/4511256875368528" : "");
@@ -9409,4 +9409,4 @@ export {
9409
9409
  FirstTouchTracker,
9410
9410
  EmittedOnceTracker
9411
9411
  };
9412
- //# sourceMappingURL=chunk-POGILISN.js.map
9412
+ //# sourceMappingURL=chunk-7BJDA4UT.js.map
package/dist/index.js CHANGED
@@ -45,7 +45,7 @@ import {
45
45
  validateDefaultRoot,
46
46
  wrapWithIndexingEnvelope,
47
47
  writeCODEOWNERS
48
- } from "./chunk-POGILISN.js";
48
+ } from "./chunk-7BJDA4UT.js";
49
49
  import {
50
50
  VectorStore
51
51
  } from "./chunk-NEHYSE2Y.js";
@@ -892,7 +892,7 @@ try {
892
892
  } catch {
893
893
  }
894
894
  var args = process.argv.slice(2);
895
- var ctxloomVersion = "1.1.3".length > 0 ? "1.1.3" : "dev";
895
+ var ctxloomVersion = "1.1.5".length > 0 ? "1.1.5" : "dev";
896
896
  if (args.includes("--version") || args.includes("-v")) {
897
897
  process.stdout.write(`ctxloom ${ctxloomVersion}
898
898
  `);
@@ -965,7 +965,7 @@ async function checkLicense() {
965
965
  if (command !== void 0 && LICENSE_GATE_BYPASS_COMMANDS.has(command)) return;
966
966
  const ciKey = process.env["CTXLOOM_LICENSE_KEY"];
967
967
  if (ciKey) {
968
- const { ApiClient } = await import("./src-2I4ZNYVG.js");
968
+ const { ApiClient } = await import("./src-WDWBHNN6.js");
969
969
  const client = new ApiClient(process.env["CTXLOOM_API_BASE"]);
970
970
  try {
971
971
  const result = await client.validate(ciKey, "ci-ephemeral");
@@ -1318,7 +1318,7 @@ async function main() {
1318
1318
  process.exit(1);
1319
1319
  }
1320
1320
  if (alias !== void 0) {
1321
- const { validateAlias } = await import("./src-2I4ZNYVG.js");
1321
+ const { validateAlias } = await import("./src-WDWBHNN6.js");
1322
1322
  const v = validateAlias(alias);
1323
1323
  if (!v.ok) {
1324
1324
  console.error(`[ctxloom] Invalid alias: ${v.reason}`);
@@ -1562,7 +1562,7 @@ Suggested reviewers for ${files.length} file(s):`);
1562
1562
  process.stderr.write("[ctxloom] --limit must be a non-negative integer (0 for unlimited)\n");
1563
1563
  process.exit(2);
1564
1564
  }
1565
- const { loadRulesConfig, RulesChecker, formatText, formatJson, RulesConfigError } = await import("./src-2I4ZNYVG.js");
1565
+ const { loadRulesConfig, RulesChecker, formatText, formatJson, RulesConfigError } = await import("./src-WDWBHNN6.js");
1566
1566
  let config;
1567
1567
  try {
1568
1568
  config = await loadRulesConfig(root);
@@ -1586,7 +1586,7 @@ Suggested reviewers for ${files.length} file(s):`);
1586
1586
  }
1587
1587
  let graph;
1588
1588
  if (useSnapshot) {
1589
- const { DependencyGraph: DG } = await import("./src-2I4ZNYVG.js");
1589
+ const { DependencyGraph: DG } = await import("./src-WDWBHNN6.js");
1590
1590
  graph = new DG();
1591
1591
  const loaded = await graph.loadSnapshotOnly(root);
1592
1592
  if (!loaded) {
@@ -1595,7 +1595,7 @@ Suggested reviewers for ${files.length} file(s):`);
1595
1595
  }
1596
1596
  } else {
1597
1597
  process.stderr.write("[ctxloom] Building dependency graph...\n");
1598
- const { ASTParser: ASTParser2, DependencyGraph: DependencyGraph2 } = await import("./src-2I4ZNYVG.js");
1598
+ const { ASTParser: ASTParser2, DependencyGraph: DependencyGraph2 } = await import("./src-WDWBHNN6.js");
1599
1599
  let parser;
1600
1600
  try {
1601
1601
  parser = new ASTParser2();
@@ -99,7 +99,7 @@ import {
99
99
  validateDefaultRoot,
100
100
  wrapWithIndexingEnvelope,
101
101
  writeCODEOWNERS
102
- } from "./chunk-POGILISN.js";
102
+ } from "./chunk-7BJDA4UT.js";
103
103
  import {
104
104
  VectorStore
105
105
  } from "./chunk-NEHYSE2Y.js";
@@ -220,4 +220,4 @@ export {
220
220
  wrapWithIndexingEnvelope,
221
221
  writeCODEOWNERS
222
222
  };
223
- //# sourceMappingURL=src-2I4ZNYVG.js.map
223
+ //# sourceMappingURL=src-WDWBHNN6.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ctxloom-pro",
3
- "version": "1.1.3",
3
+ "version": "1.1.5",
4
4
  "description": "ctxloom — The Universal Code Context Engine. A local-first MCP server providing intelligent code context via hybrid Vector + AST + Graph search with Skeletonization (92% token reduction).",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -96,6 +96,7 @@
96
96
  },
97
97
  "devDependencies": {
98
98
  "@ctxloom/core": "*",
99
+ "@sentry/cli": "^3.4.2",
99
100
  "@types/js-yaml": "^4.0.9",
100
101
  "@types/node": "^22.0.0",
101
102
  "@types/picomatch": "^4.0.3",