{"version":3,"file":"codemirror_autocomplete.JLUBjNaB.mjs","names":["codePointAt","codePointSize"],"sources":["https:/framerusercontent.com/modules/iHAg5NNDzB38uLRZmObL/0BnFbmC8lLqbG7TMsUOO/codemirror_autocomplete.js"],"sourcesContent":["// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@codemirror/autocomplete/dist/index.js\nimport{Annotation,StateEffect,EditorSelection,codePointAt,codePointSize,fromCodePoint,Facet,combineConfig,StateField,Prec,Text,Transaction,MapMode,RangeValue,RangeSet,CharCategory}from\"https://framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/TWvikt1kG1sKU5G0pMRF/codemirror_state.js\";import{Direction,logException,showTooltip,EditorView,ViewPlugin,getTooltip,Decoration,WidgetType,keymap}from\"https://framerusercontent.com/modules/wKCR2JyUW8wZdYweJrou/b3PAgW7qmQJC7rQUi9po/codemirror_view.js\";import{syntaxTree,indentUnit}from\"https://framerusercontent.com/modules/aJsTBlWNkIaM900KNIXT/r60pzPp0bOIae0tDcSfS/codemirror_language.js\";var CompletionContext=class{/**\n  Get the extent, content, and (if there is a token) type of the\n  token before `this.pos`.\n  */tokenBefore(types){let token=syntaxTree(this.state).resolveInner(this.pos,-1);while(token&&types.indexOf(token.name)<0)token=token.parent;return token?{from:token.from,to:this.pos,text:this.state.sliceDoc(token.from,this.pos),type:token.type}:null;}/**\n  Get the match of the given expression directly before the\n  cursor.\n  */matchBefore(expr){let line=this.state.doc.lineAt(this.pos);let start=Math.max(line.from,this.pos-250);let str=line.text.slice(start-line.from,this.pos-line.from);let found=str.search(ensureAnchor(expr,false));return found<0?null:{from:start+found,to:this.pos,text:str.slice(found)};}/**\n  Yields true when the query has been aborted. Can be useful in\n  asynchronous queries to avoid doing work that will be ignored.\n  */get aborted(){return this.abortListeners==null;}/**\n  Allows you to register abort handlers, which will be called when\n  the query is\n  [aborted](https://codemirror.net/6/docs/ref/#autocomplete.CompletionContext.aborted).\n  \n  By default, running queries will not be aborted for regular\n  typing or backspacing, on the assumption that they are likely to\n  return a result with a\n  [`validFor`](https://codemirror.net/6/docs/ref/#autocomplete.CompletionResult.validFor) field that\n  allows the result to be used after all. Passing `onDocChange:\n  true` will cause this query to be aborted for any document\n  change.\n  */addEventListener(type,listener,options){if(type==\"abort\"&&this.abortListeners){this.abortListeners.push(listener);if(options&&options.onDocChange)this.abortOnDocChange=true;}}/**\n  Create a new completion context. (Mostly useful for testing\n  completion sources—in the editor, the extension will create\n  these for you.)\n  */constructor(state,pos,explicit,view){this.state=state;this.pos=pos;this.explicit=explicit;this.view=view;this.abortListeners=[];this.abortOnDocChange=false;}};function toSet(chars){let flat=Object.keys(chars).join(\"\");let words=/\\w/.test(flat);if(words)flat=flat.replace(/\\w/g,\"\");return`[${words?\"\\\\w\":\"\"}${flat.replace(/[^\\w\\s]/g,\"\\\\$&\")}]`;}function prefixMatch(options){let first=/* @__PURE__ */Object.create(null),rest=/* @__PURE__ */Object.create(null);for(let{label}of options){first[label[0]]=true;for(let i=1;i<label.length;i++)rest[label[i]]=true;}let source=toSet(first)+toSet(rest)+\"*$\";return[new RegExp(\"^\"+source),new RegExp(source)];}function completeFromList(list){let options=list.map(o=>typeof o==\"string\"?{label:o}:o);let[validFor,match]=options.every(o=>/^\\w+$/.test(o.label))?[/\\w*$/,/\\w+$/]:prefixMatch(options);return context=>{let token=context.matchBefore(match);return token||context.explicit?{from:token?token.from:context.pos,options,validFor}:null;};}function ifIn(nodes,source){return context=>{for(let pos=syntaxTree(context.state).resolveInner(context.pos,-1);pos;pos=pos.parent){if(nodes.indexOf(pos.name)>-1)return source(context);if(pos.type.isTop)break;}return null;};}function ifNotIn(nodes,source){return context=>{for(let pos=syntaxTree(context.state).resolveInner(context.pos,-1);pos;pos=pos.parent){if(nodes.indexOf(pos.name)>-1)return null;if(pos.type.isTop)break;}return source(context);};}var Option=class{constructor(completion,source,match,score2){this.completion=completion;this.source=source;this.match=match;this.score=score2;}};function cur(state){return state.selection.main.from;}function ensureAnchor(expr,start){var _a;let{source}=expr;let addStart=start&&source[0]!=\"^\",addEnd=source[source.length-1]!=\"$\";if(!addStart&&!addEnd)return expr;return new RegExp(`${addStart?\"^\":\"\"}(?:${source})${addEnd?\"$\":\"\"}`,(_a=expr.flags)!==null&&_a!==void 0?_a:expr.ignoreCase?\"i\":\"\");}var pickedCompletion=/* @__PURE__ */Annotation.define();function insertCompletionText(state,text,from,to){let{main}=state.selection,fromOff=from-main.from,toOff=to-main.from;return Object.assign(Object.assign({},state.changeByRange(range=>{if(range!=main&&from!=to&&state.sliceDoc(range.from+fromOff,range.from+toOff)!=state.sliceDoc(from,to))return{range};let lines=state.toText(text);return{changes:{from:range.from+fromOff,to:to==main.from?range.to:range.from+toOff,insert:lines},range:EditorSelection.cursor(range.from+fromOff+lines.length)};})),{scrollIntoView:true,userEvent:\"input.complete\"});}var SourceCache=/* @__PURE__ */new WeakMap;function asSource(source){if(!Array.isArray(source))return source;let known=SourceCache.get(source);if(!known)SourceCache.set(source,known=completeFromList(source));return known;}var startCompletionEffect=/* @__PURE__ */StateEffect.define();var closeCompletionEffect=/* @__PURE__ */StateEffect.define();var FuzzyMatcher=class{ret(score2,matched){this.score=score2;this.matched=matched;return this;}// Matches a given word (completion) against the pattern (input).\n// Will return a boolean indicating whether there was a match and,\n// on success, set `this.score` to the score, `this.matched` to an\n// array of `from, to` pairs indicating the matched parts of `word`.\n//\n// The score is a number that is more negative the worse the match\n// is. See `Penalty` above.\nmatch(word){if(this.pattern.length==0)return this.ret(-100,[]);if(word.length<this.pattern.length)return null;let{chars,folded,any,precise,byWord}=this;if(chars.length==1){let first=codePointAt(word,0),firstSize=codePointSize(first);let score2=firstSize==word.length?0:-100;if(first==chars[0]);else if(first==folded[0])score2+=-200;else return null;return this.ret(score2,[0,firstSize]);}let direct=word.indexOf(this.pattern);if(direct==0)return this.ret(word.length==this.pattern.length?0:-100,[0,this.pattern.length]);let len=chars.length,anyTo=0;if(direct<0){for(let i=0,e=Math.min(word.length,200);i<e&&anyTo<len;){let next=codePointAt(word,i);if(next==chars[anyTo]||next==folded[anyTo])any[anyTo++]=i;i+=codePointSize(next);}if(anyTo<len)return null;}let preciseTo=0;let byWordTo=0,byWordFolded=false;let adjacentTo=0,adjacentStart=-1,adjacentEnd=-1;let hasLower=/[a-z]/.test(word),wordAdjacent=true;for(let i=0,e=Math.min(word.length,200),prevType=0;i<e&&byWordTo<len;){let next=codePointAt(word,i);if(direct<0){if(preciseTo<len&&next==chars[preciseTo])precise[preciseTo++]=i;if(adjacentTo<len){if(next==chars[adjacentTo]||next==folded[adjacentTo]){if(adjacentTo==0)adjacentStart=i;adjacentEnd=i+1;adjacentTo++;}else{adjacentTo=0;}}}let ch,type=next<255?next>=48&&next<=57||next>=97&&next<=122?2:next>=65&&next<=90?1:0:(ch=fromCodePoint(next))!=ch.toLowerCase()?1:ch!=ch.toUpperCase()?2:0;if(!i||type==1&&hasLower||prevType==0&&type!=0){if(chars[byWordTo]==next||folded[byWordTo]==next&&(byWordFolded=true))byWord[byWordTo++]=i;else if(byWord.length)wordAdjacent=false;}prevType=type;i+=codePointSize(next);}if(byWordTo==len&&byWord[0]==0&&wordAdjacent)return this.result(-100+(byWordFolded?-200:0),byWord,word);if(adjacentTo==len&&adjacentStart==0)return this.ret(-200-word.length+(adjacentEnd==word.length?0:-100),[0,adjacentEnd]);if(direct>-1)return this.ret(-700-word.length,[direct,direct+this.pattern.length]);if(adjacentTo==len)return this.ret(-200+-700-word.length,[adjacentStart,adjacentEnd]);if(byWordTo==len)return this.result(-100+(byWordFolded?-200:0)+-700+(wordAdjacent?0:-1100),byWord,word);return chars.length==2?null:this.result((any[0]?-700:0)+-200+-1100,any,word);}result(score2,positions,word){let result=[],i=0;for(let pos of positions){let to=pos+(this.astral?codePointSize(codePointAt(word,pos)):1);if(i&&result[i-1]==pos)result[i-1]=to;else{result[i++]=pos;result[i++]=to;}}return this.ret(score2-word.length,result);}constructor(pattern){this.pattern=pattern;this.chars=[];this.folded=[];this.any=[];this.precise=[];this.byWord=[];this.score=0;this.matched=[];for(let p=0;p<pattern.length;){let char=codePointAt(pattern,p),size=codePointSize(char);this.chars.push(char);let part=pattern.slice(p,p+size),upper=part.toUpperCase();this.folded.push(codePointAt(upper==part?part.toLowerCase():upper,0));p+=size;}this.astral=pattern.length!=this.chars.length;}};var StrictMatcher=class{match(word){if(word.length<this.pattern.length)return null;let start=word.slice(0,this.pattern.length);let match=start==this.pattern?0:start.toLowerCase()==this.folded?-200:null;if(match==null)return null;this.matched=[0,start.length];this.score=match+(word.length==this.pattern.length?0:-100);return this;}constructor(pattern){this.pattern=pattern;this.matched=[];this.score=0;this.folded=pattern.toLowerCase();}};var completionConfig=/* @__PURE__ */Facet.define({combine(configs){return combineConfig(configs,{activateOnTyping:true,activateOnCompletion:()=>false,activateOnTypingDelay:100,selectOnOpen:true,override:null,closeOnBlur:true,maxRenderedOptions:100,defaultKeymap:true,tooltipClass:()=>\"\",optionClass:()=>\"\",aboveCursor:false,icons:true,addToOptions:[],positionInfo:defaultPositionInfo,filterStrict:false,compareCompletions:(a,b)=>a.label.localeCompare(b.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(a,b)=>a&&b,closeOnBlur:(a,b)=>a&&b,icons:(a,b)=>a&&b,tooltipClass:(a,b)=>c=>joinClass(a(c),b(c)),optionClass:(a,b)=>c=>joinClass(a(c),b(c)),addToOptions:(a,b)=>a.concat(b),filterStrict:(a,b)=>a||b});}});function joinClass(a,b){return a?b?a+\" \"+b:a:b;}function defaultPositionInfo(view,list,option,info,space,tooltip){let rtl=view.textDirection==Direction.RTL,left=rtl,narrow=false;let side=\"top\",offset,maxWidth;let spaceLeft=list.left-space.left,spaceRight=space.right-list.right;let infoWidth=info.right-info.left,infoHeight=info.bottom-info.top;if(left&&spaceLeft<Math.min(infoWidth,spaceRight))left=false;else if(!left&&spaceRight<Math.min(infoWidth,spaceLeft))left=true;if(infoWidth<=(left?spaceLeft:spaceRight)){offset=Math.max(space.top,Math.min(option.top,space.bottom-infoHeight))-list.top;maxWidth=Math.min(400,left?spaceLeft:spaceRight);}else{narrow=true;maxWidth=Math.min(400,(rtl?list.right:space.right-list.left)-30);let spaceBelow=space.bottom-list.bottom;if(spaceBelow>=infoHeight||spaceBelow>list.top){offset=option.bottom-list.top;}else{side=\"bottom\";offset=list.bottom-option.top;}}let scaleY=(list.bottom-list.top)/tooltip.offsetHeight;let scaleX=(list.right-list.left)/tooltip.offsetWidth;return{style:`${side}: ${offset/scaleY}px; max-width: ${maxWidth/scaleX}px`,class:\"cm-completionInfo-\"+(narrow?rtl?\"left-narrow\":\"right-narrow\":left?\"left\":\"right\")};}function optionContent(config2){let content=config2.addToOptions.slice();if(config2.icons)content.push({render(completion){let icon=document.createElement(\"div\");icon.classList.add(\"cm-completionIcon\");if(completion.type)icon.classList.add(...completion.type.split(/\\s+/g).map(cls=>\"cm-completionIcon-\"+cls));icon.setAttribute(\"aria-hidden\",\"true\");return icon;},position:20});content.push({render(completion,_s,_v,match){let labelElt=document.createElement(\"span\");labelElt.className=\"cm-completionLabel\";let label=completion.displayLabel||completion.label,off=0;for(let j=0;j<match.length;){let from=match[j++],to=match[j++];if(from>off)labelElt.appendChild(document.createTextNode(label.slice(off,from)));let span=labelElt.appendChild(document.createElement(\"span\"));span.appendChild(document.createTextNode(label.slice(from,to)));span.className=\"cm-completionMatchedText\";off=to;}if(off<label.length)labelElt.appendChild(document.createTextNode(label.slice(off)));return labelElt;},position:50},{render(completion){if(!completion.detail)return null;let detailElt=document.createElement(\"span\");detailElt.className=\"cm-completionDetail\";detailElt.textContent=completion.detail;return detailElt;},position:80});return content.sort((a,b)=>a.position-b.position).map(a=>a.render);}function rangeAroundSelected(total,selected,max){if(total<=max)return{from:0,to:total};if(selected<0)selected=0;if(selected<=total>>1){let off2=Math.floor(selected/max);return{from:off2*max,to:(off2+1)*max};}let off=Math.floor((total-selected)/max);return{from:total-(off+1)*max,to:total-off*max};}var CompletionTooltip=class{mount(){this.updateSel();}showOptions(options,id){if(this.list)this.list.remove();this.list=this.dom.appendChild(this.createListBox(options,id,this.range));this.list.addEventListener(\"scroll\",()=>{if(this.info)this.view.requestMeasure(this.placeInfoReq);});}update(update){var _a;let cState=update.state.field(this.stateField);let prevState=update.startState.field(this.stateField);this.updateTooltipClass(update.state);if(cState!=prevState){let{options,selected,disabled}=cState.open;if(!prevState.open||prevState.open.options!=options){this.range=rangeAroundSelected(options.length,selected,update.state.facet(completionConfig).maxRenderedOptions);this.showOptions(options,cState.id);}this.updateSel();if(disabled!=((_a=prevState.open)===null||_a===void 0?void 0:_a.disabled))this.dom.classList.toggle(\"cm-tooltip-autocomplete-disabled\",!!disabled);}}updateTooltipClass(state){let cls=this.tooltipClass(state);if(cls!=this.currentClass){for(let c of this.currentClass.split(\" \"))if(c)this.dom.classList.remove(c);for(let c of cls.split(\" \"))if(c)this.dom.classList.add(c);this.currentClass=cls;}}positioned(space){this.space=space;if(this.info)this.view.requestMeasure(this.placeInfoReq);}updateSel(){let cState=this.view.state.field(this.stateField),open=cState.open;if(open.selected>-1&&open.selected<this.range.from||open.selected>=this.range.to){this.range=rangeAroundSelected(open.options.length,open.selected,this.view.state.facet(completionConfig).maxRenderedOptions);this.showOptions(open.options,cState.id);}if(this.updateSelectedOption(open.selected)){this.destroyInfo();let{completion}=open.options[open.selected];let{info}=completion;if(!info)return;let infoResult=typeof info===\"string\"?document.createTextNode(info):info(completion);if(!infoResult)return;if(\"then\"in infoResult){infoResult.then(obj=>{if(obj&&this.view.state.field(this.stateField,false)==cState)this.addInfoPane(obj,completion);}).catch(e=>logException(this.view.state,e,\"completion info\"));}else{this.addInfoPane(infoResult,completion);}}}addInfoPane(content,completion){this.destroyInfo();let wrap=this.info=document.createElement(\"div\");wrap.className=\"cm-tooltip cm-completionInfo\";if(content.nodeType!=null){wrap.appendChild(content);this.infoDestroy=null;}else{let{dom,destroy}=content;wrap.appendChild(dom);this.infoDestroy=destroy||null;}this.dom.appendChild(wrap);this.view.requestMeasure(this.placeInfoReq);}updateSelectedOption(selected){let set=null;for(let opt=this.list.firstChild,i=this.range.from;opt;opt=opt.nextSibling,i++){if(opt.nodeName!=\"LI\"||!opt.id){i--;}else if(i==selected){if(!opt.hasAttribute(\"aria-selected\")){opt.setAttribute(\"aria-selected\",\"true\");set=opt;}}else{if(opt.hasAttribute(\"aria-selected\"))opt.removeAttribute(\"aria-selected\");}}if(set)scrollIntoView(this.list,set);return set;}measureInfo(){let sel=this.dom.querySelector(\"[aria-selected]\");if(!sel||!this.info)return null;let listRect=this.dom.getBoundingClientRect();let infoRect=this.info.getBoundingClientRect();let selRect=sel.getBoundingClientRect();let space=this.space;if(!space){let docElt=this.dom.ownerDocument.documentElement;space={left:0,top:0,right:docElt.clientWidth,bottom:docElt.clientHeight};}if(selRect.top>Math.min(space.bottom,listRect.bottom)-10||selRect.bottom<Math.max(space.top,listRect.top)+10)return null;return this.view.state.facet(completionConfig).positionInfo(this.view,listRect,selRect,infoRect,space,this.dom);}placeInfo(pos){if(this.info){if(pos){if(pos.style)this.info.style.cssText=pos.style;this.info.className=\"cm-tooltip cm-completionInfo \"+(pos.class||\"\");}else{this.info.style.cssText=\"top: -1e6px\";}}}createListBox(options,id,range){const ul=document.createElement(\"ul\");ul.id=id;ul.setAttribute(\"role\",\"listbox\");ul.setAttribute(\"aria-expanded\",\"true\");ul.setAttribute(\"aria-label\",this.view.state.phrase(\"Completions\"));ul.addEventListener(\"mousedown\",e=>{if(e.target==ul)e.preventDefault();});let curSection=null;for(let i=range.from;i<range.to;i++){let{completion,match}=options[i],{section}=completion;if(section){let name=typeof section==\"string\"?section:section.name;if(name!=curSection&&(i>range.from||range.from==0)){curSection=name;if(typeof section!=\"string\"&&section.header){ul.appendChild(section.header(section));}else{let header=ul.appendChild(document.createElement(\"completion-section\"));header.textContent=name;}}}const li=ul.appendChild(document.createElement(\"li\"));li.id=id+\"-\"+i;li.setAttribute(\"role\",\"option\");let cls=this.optionClass(completion);if(cls)li.className=cls;for(let source of this.optionContent){let node=source(completion,this.view.state,this.view,match);if(node)li.appendChild(node);}}if(range.from)ul.classList.add(\"cm-completionListIncompleteTop\");if(range.to<options.length)ul.classList.add(\"cm-completionListIncompleteBottom\");return ul;}destroyInfo(){if(this.info){if(this.infoDestroy)this.infoDestroy();this.info.remove();this.info=null;}}destroy(){this.destroyInfo();}constructor(view,stateField,applyCompletion2){this.view=view;this.stateField=stateField;this.applyCompletion=applyCompletion2;this.info=null;this.infoDestroy=null;this.placeInfoReq={read:()=>this.measureInfo(),write:pos=>this.placeInfo(pos),key:this};this.space=null;this.currentClass=\"\";let cState=view.state.field(stateField);let{options,selected}=cState.open;let config2=view.state.facet(completionConfig);this.optionContent=optionContent(config2);this.optionClass=config2.optionClass;this.tooltipClass=config2.tooltipClass;this.range=rangeAroundSelected(options.length,selected,config2.maxRenderedOptions);this.dom=document.createElement(\"div\");this.dom.className=\"cm-tooltip-autocomplete\";this.updateTooltipClass(view.state);this.dom.addEventListener(\"mousedown\",e=>{let{options:options2}=view.state.field(stateField).open;for(let dom=e.target,match;dom&&dom!=this.dom;dom=dom.parentNode){if(dom.nodeName==\"LI\"&&(match=/-(\\d+)$/.exec(dom.id))&&+match[1]<options2.length){this.applyCompletion(view,options2[+match[1]]);e.preventDefault();return;}}});this.dom.addEventListener(\"focusout\",e=>{let state=view.state.field(this.stateField,false);if(state&&state.tooltip&&view.state.facet(completionConfig).closeOnBlur&&e.relatedTarget!=view.contentDOM)view.dispatch({effects:closeCompletionEffect.of(null)});});this.showOptions(options,cState.id);}};function completionTooltip(stateField,applyCompletion2){return view=>new CompletionTooltip(view,stateField,applyCompletion2);}function scrollIntoView(container,element){let parent=container.getBoundingClientRect();let self=element.getBoundingClientRect();let scaleY=parent.height/container.offsetHeight;if(self.top<parent.top)container.scrollTop-=(parent.top-self.top)/scaleY;else if(self.bottom>parent.bottom)container.scrollTop+=(self.bottom-parent.bottom)/scaleY;}function score(option){return(option.boost||0)*100+(option.apply?10:0)+(option.info?5:0)+(option.type?1:0);}function sortOptions(active,state){let options=[];let sections=null;let addOption=option=>{options.push(option);let{section}=option.completion;if(section){if(!sections)sections=[];let name=typeof section==\"string\"?section:section.name;if(!sections.some(s=>s.name==name))sections.push(typeof section==\"string\"?{name}:section);}};let conf=state.facet(completionConfig);for(let a of active)if(a.hasResult()){let getMatch=a.result.getMatch;if(a.result.filter===false){for(let option of a.result.options){addOption(new Option(option,a.source,getMatch?getMatch(option):[],1e9-options.length));}}else{let pattern=state.sliceDoc(a.from,a.to),match;let matcher=conf.filterStrict?new StrictMatcher(pattern):new FuzzyMatcher(pattern);for(let option of a.result.options)if(match=matcher.match(option.label)){let matched=!option.displayLabel?match.matched:getMatch?getMatch(option,match.matched):[];addOption(new Option(option,a.source,matched,match.score+(option.boost||0)));}}}if(sections){let sectionOrder=/* @__PURE__ */Object.create(null),pos=0;let cmp=(a,b)=>{var _a,_b;return((_a=a.rank)!==null&&_a!==void 0?_a:1e9)-((_b=b.rank)!==null&&_b!==void 0?_b:1e9)||(a.name<b.name?-1:1);};for(let s of sections.sort(cmp)){pos-=1e5;sectionOrder[s.name]=pos;}for(let option of options){let{section}=option.completion;if(section)option.score+=sectionOrder[typeof section==\"string\"?section:section.name];}}let result=[],prev=null;let compare=conf.compareCompletions;for(let opt of options.sort((a,b)=>b.score-a.score||compare(a.completion,b.completion))){let cur2=opt.completion;if(!prev||prev.label!=cur2.label||prev.detail!=cur2.detail||prev.type!=null&&cur2.type!=null&&prev.type!=cur2.type||prev.apply!=cur2.apply||prev.boost!=cur2.boost)result.push(opt);else if(score(opt.completion)>score(prev))result[result.length-1]=opt;prev=opt.completion;}return result;}var CompletionDialog=class _CompletionDialog{setSelected(selected,id){return selected==this.selected||selected>=this.options.length?this:new _CompletionDialog(this.options,makeAttrs(id,selected),this.tooltip,this.timestamp,selected,this.disabled);}static build(active,state,id,prev,conf,didSetActive){if(prev&&!didSetActive&&active.some(s=>s.isPending))return prev.setDisabled();let options=sortOptions(active,state);if(!options.length)return prev&&active.some(a=>a.isPending)?prev.setDisabled():null;let selected=state.facet(completionConfig).selectOnOpen?0:-1;if(prev&&prev.selected!=selected&&prev.selected!=-1){let selectedValue=prev.options[prev.selected].completion;for(let i=0;i<options.length;i++)if(options[i].completion==selectedValue){selected=i;break;}}return new _CompletionDialog(options,makeAttrs(id,selected),{pos:active.reduce((a,b)=>b.hasResult()?Math.min(a,b.from):a,1e8),create:createTooltip,above:conf.aboveCursor},prev?prev.timestamp:Date.now(),selected,false);}map(changes){return new _CompletionDialog(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:changes.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled);}setDisabled(){return new _CompletionDialog(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,true);}constructor(options,attrs,tooltip,timestamp,selected,disabled){this.options=options;this.attrs=attrs;this.tooltip=tooltip;this.timestamp=timestamp;this.selected=selected;this.disabled=disabled;}};var CompletionState=class _CompletionState{static start(){return new _CompletionState(none,\"cm-ac-\"+Math.floor(Math.random()*2e6).toString(36),null);}update(tr){let{state}=tr,conf=state.facet(completionConfig);let sources=conf.override||state.languageDataAt(\"autocomplete\",cur(state)).map(asSource);let active=sources.map(source=>{let value=this.active.find(s=>s.source==source)||new ActiveSource(source,this.active.some(a=>a.state!=0)?1:0);return value.update(tr,conf);});if(active.length==this.active.length&&active.every((a,i)=>a==this.active[i]))active=this.active;let open=this.open,didSet=tr.effects.some(e=>e.is(setActiveEffect));if(open&&tr.docChanged)open=open.map(tr.changes);if(tr.selection||active.some(a=>a.hasResult()&&tr.changes.touchesRange(a.from,a.to))||!sameResults(active,this.active)||didSet)open=CompletionDialog.build(active,state,this.id,open,conf,didSet);else if(open&&open.disabled&&!active.some(a=>a.isPending))open=null;if(!open&&active.every(a=>!a.isPending)&&active.some(a=>a.hasResult()))active=active.map(a=>a.hasResult()?new ActiveSource(a.source,0):a);for(let effect of tr.effects)if(effect.is(setSelectedEffect))open=open&&open.setSelected(effect.value,this.id);return active==this.active&&open==this.open?this:new _CompletionState(active,this.id,open);}get tooltip(){return this.open?this.open.tooltip:null;}get attrs(){return this.open?this.open.attrs:this.active.length?baseAttrs:noAttrs;}constructor(active,id,open){this.active=active;this.id=id;this.open=open;}};function sameResults(a,b){if(a==b)return true;for(let iA=0,iB=0;;){while(iA<a.length&&!a[iA].hasResult())iA++;while(iB<b.length&&!b[iB].hasResult())iB++;let endA=iA==a.length,endB=iB==b.length;if(endA||endB)return endA==endB;if(a[iA++].result!=b[iB++].result)return false;}}var baseAttrs={\"aria-autocomplete\":\"list\"};var noAttrs={};function makeAttrs(id,selected){let result={\"aria-autocomplete\":\"list\",\"aria-haspopup\":\"listbox\",\"aria-controls\":id};if(selected>-1)result[\"aria-activedescendant\"]=id+\"-\"+selected;return result;}var none=[];function getUpdateType(tr,conf){if(tr.isUserEvent(\"input.complete\")){let completion=tr.annotation(pickedCompletion);if(completion&&conf.activateOnCompletion(completion))return 4|8;}let typing=tr.isUserEvent(\"input.type\");return typing&&conf.activateOnTyping?4|1:typing?1:tr.isUserEvent(\"delete.backward\")?2:tr.selection?8:tr.docChanged?16:0;}var ActiveSource=class _ActiveSource{hasResult(){return false;}get isPending(){return this.state==1;}update(tr,conf){let type=getUpdateType(tr,conf),value=this;if(type&8||type&16&&this.touches(tr))value=new _ActiveSource(value.source,0);if(type&4&&value.state==0)value=new _ActiveSource(this.source,1);value=value.updateFor(tr,type);for(let effect of tr.effects){if(effect.is(startCompletionEffect))value=new _ActiveSource(value.source,1,effect.value);else if(effect.is(closeCompletionEffect))value=new _ActiveSource(value.source,0);else if(effect.is(setActiveEffect)){for(let active of effect.value)if(active.source==value.source)value=active;}}return value;}updateFor(tr,type){return this.map(tr.changes);}map(changes){return this;}touches(tr){return tr.changes.touchesRange(cur(tr.state));}constructor(source,state,explicit=false){this.source=source;this.state=state;this.explicit=explicit;}};var ActiveResult=class _ActiveResult extends ActiveSource{hasResult(){return true;}updateFor(tr,type){var _a;if(!(type&3))return this.map(tr.changes);let result=this.result;if(result.map&&!tr.changes.empty)result=result.map(result,tr.changes);let from=tr.changes.mapPos(this.from),to=tr.changes.mapPos(this.to,1);let pos=cur(tr.state);if(pos>to||!result||type&2&&(cur(tr.startState)==this.from||pos<this.limit))return new ActiveSource(this.source,type&4?1:0);let limit=tr.changes.mapPos(this.limit);if(checkValid(result.validFor,tr.state,from,to))return new _ActiveResult(this.source,this.explicit,limit,result,from,to);if(result.update&&(result=result.update(result,from,to,new CompletionContext(tr.state,pos,false))))return new _ActiveResult(this.source,this.explicit,limit,result,result.from,(_a=result.to)!==null&&_a!==void 0?_a:cur(tr.state));return new ActiveSource(this.source,1,this.explicit);}map(mapping){if(mapping.empty)return this;let result=this.result.map?this.result.map(this.result,mapping):this.result;if(!result)return new ActiveSource(this.source,0);return new _ActiveResult(this.source,this.explicit,mapping.mapPos(this.limit),this.result,mapping.mapPos(this.from),mapping.mapPos(this.to,1));}touches(tr){return tr.changes.touchesRange(this.from,this.to);}constructor(source,explicit,limit,result,from,to){super(source,3,explicit);this.limit=limit;this.result=result;this.from=from;this.to=to;}};function checkValid(validFor,state,from,to){if(!validFor)return false;let text=state.sliceDoc(from,to);return typeof validFor==\"function\"?validFor(text,from,to,state):ensureAnchor(validFor,true).test(text);}var setActiveEffect=/* @__PURE__ */StateEffect.define({map(sources,mapping){return sources.map(s=>s.map(mapping));}});var setSelectedEffect=/* @__PURE__ */StateEffect.define();var completionState=/* @__PURE__ */StateField.define({create(){return CompletionState.start();},update(value,tr){return value.update(tr);},provide:f=>[showTooltip.from(f,val=>val.tooltip),EditorView.contentAttributes.from(f,state=>state.attrs)]});function applyCompletion(view,option){const apply=option.completion.apply||option.completion.label;let result=view.state.field(completionState).active.find(a=>a.source==option.source);if(!(result instanceof ActiveResult))return false;if(typeof apply==\"string\")view.dispatch(Object.assign(Object.assign({},insertCompletionText(view.state,apply,result.from,result.to)),{annotations:pickedCompletion.of(option.completion)}));else apply(view,option.completion,result.from,result.to);return true;}var createTooltip=/* @__PURE__ */completionTooltip(completionState,applyCompletion);function moveCompletionSelection(forward,by=\"option\"){return view=>{let cState=view.state.field(completionState,false);if(!cState||!cState.open||cState.open.disabled||Date.now()-cState.open.timestamp<view.state.facet(completionConfig).interactionDelay)return false;let step=1,tooltip;if(by==\"page\"&&(tooltip=getTooltip(view,cState.open.tooltip)))step=Math.max(2,Math.floor(tooltip.dom.offsetHeight/tooltip.dom.querySelector(\"li\").offsetHeight)-1);let{length}=cState.open.options;let selected=cState.open.selected>-1?cState.open.selected+step*(forward?1:-1):forward?0:length-1;if(selected<0)selected=by==\"page\"?0:length-1;else if(selected>=length)selected=by==\"page\"?length-1:0;view.dispatch({effects:setSelectedEffect.of(selected)});return true;};}var acceptCompletion=view=>{let cState=view.state.field(completionState,false);if(view.state.readOnly||!cState||!cState.open||cState.open.selected<0||cState.open.disabled||Date.now()-cState.open.timestamp<view.state.facet(completionConfig).interactionDelay)return false;return applyCompletion(view,cState.open.options[cState.open.selected]);};var startCompletion=view=>{let cState=view.state.field(completionState,false);if(!cState)return false;view.dispatch({effects:startCompletionEffect.of(true)});return true;};var closeCompletion=view=>{let cState=view.state.field(completionState,false);if(!cState||!cState.active.some(a=>a.state!=0))return false;view.dispatch({effects:closeCompletionEffect.of(null)});return true;};var RunningQuery=class{constructor(active,context){this.active=active;this.context=context;this.time=Date.now();this.updates=[];this.done=void 0;}};var MaxUpdateCount=50;var MinAbortTime=1e3;var completionPlugin=/* @__PURE__ */ViewPlugin.fromClass(class{update(update){let cState=update.state.field(completionState);let conf=update.state.facet(completionConfig);if(!update.selectionSet&&!update.docChanged&&update.startState.field(completionState)==cState)return;let doesReset=update.transactions.some(tr=>{let type=getUpdateType(tr,conf);return type&8||(tr.selection||tr.docChanged)&&!(type&3);});for(let i=0;i<this.running.length;i++){let query=this.running[i];if(doesReset||query.context.abortOnDocChange&&update.docChanged||query.updates.length+update.transactions.length>MaxUpdateCount&&Date.now()-query.time>MinAbortTime){for(let handler of query.context.abortListeners){try{handler();}catch(e){logException(this.view.state,e);}}query.context.abortListeners=null;this.running.splice(i--,1);}else{query.updates.push(...update.transactions);}}if(this.debounceUpdate>-1)clearTimeout(this.debounceUpdate);if(update.transactions.some(tr=>tr.effects.some(e=>e.is(startCompletionEffect))))this.pendingStart=true;let delay=this.pendingStart?50:conf.activateOnTypingDelay;this.debounceUpdate=cState.active.some(a=>a.isPending&&!this.running.some(q=>q.active.source==a.source))?setTimeout(()=>this.startUpdate(),delay):-1;if(this.composing!=0)for(let tr of update.transactions){if(tr.isUserEvent(\"input.type\"))this.composing=2;else if(this.composing==2&&tr.selection)this.composing=3;}}startUpdate(){this.debounceUpdate=-1;this.pendingStart=false;let{state}=this.view,cState=state.field(completionState);for(let active of cState.active){if(active.isPending&&!this.running.some(r=>r.active.source==active.source))this.startQuery(active);}if(this.running.length&&cState.open&&cState.open.disabled)this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(completionConfig).updateSyncTime);}startQuery(active){let{state}=this.view,pos=cur(state);let context=new CompletionContext(state,pos,active.explicit,this.view);let pending=new RunningQuery(active,context);this.running.push(pending);Promise.resolve(active.source(context)).then(result=>{if(!pending.context.aborted){pending.done=result||null;this.scheduleAccept();}},err=>{this.view.dispatch({effects:closeCompletionEffect.of(null)});logException(this.view.state,err);});}scheduleAccept(){if(this.running.every(q=>q.done!==void 0))this.accept();else if(this.debounceAccept<0)this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(completionConfig).updateSyncTime);}// For each finished query in this.running, try to create a result\n// or, if appropriate, restart the query.\naccept(){var _a;if(this.debounceAccept>-1)clearTimeout(this.debounceAccept);this.debounceAccept=-1;let updated=[];let conf=this.view.state.facet(completionConfig),cState=this.view.state.field(completionState);for(let i=0;i<this.running.length;i++){let query=this.running[i];if(query.done===void 0)continue;this.running.splice(i--,1);if(query.done){let pos=cur(query.updates.length?query.updates[0].startState:this.view.state);let limit=Math.min(pos,query.done.from+(query.active.explicit?0:1));let active=new ActiveResult(query.active.source,query.active.explicit,limit,query.done,query.done.from,(_a=query.done.to)!==null&&_a!==void 0?_a:pos);for(let tr of query.updates)active=active.update(tr,conf);if(active.hasResult()){updated.push(active);continue;}}let current=cState.active.find(a=>a.source==query.active.source);if(current&&current.isPending){if(query.done==null){let active=new ActiveSource(query.active.source,0);for(let tr of query.updates)active=active.update(tr,conf);if(!active.isPending)updated.push(active);}else{this.startQuery(current);}}}if(updated.length||cState.open&&cState.open.disabled)this.view.dispatch({effects:setActiveEffect.of(updated)});}constructor(view){this.view=view;this.debounceUpdate=-1;this.running=[];this.debounceAccept=-1;this.pendingStart=false;this.composing=0;for(let active of view.state.field(completionState).active)if(active.isPending)this.startQuery(active);}},{eventHandlers:{blur(event){let state=this.view.state.field(completionState,false);if(state&&state.tooltip&&this.view.state.facet(completionConfig).closeOnBlur){let dialog=state.open&&getTooltip(this.view,state.open.tooltip);if(!dialog||!dialog.dom.contains(event.relatedTarget))setTimeout(()=>this.view.dispatch({effects:closeCompletionEffect.of(null)}),10);}},compositionstart(){this.composing=1;},compositionend(){if(this.composing==3){setTimeout(()=>this.view.dispatch({effects:startCompletionEffect.of(false)}),20);}this.composing=0;}}});var windows=typeof navigator==\"object\"&&/* @__PURE__ *//Win/.test(navigator.platform);var commitCharacters=/* @__PURE__ */Prec.highest(/* @__PURE__ */EditorView.domEventHandlers({keydown(event,view){let field=view.state.field(completionState,false);if(!field||!field.open||field.open.disabled||field.open.selected<0||event.key.length>1||event.ctrlKey&&!(windows&&event.altKey)||event.metaKey)return false;let option=field.open.options[field.open.selected];let result=field.active.find(a=>a.source==option.source);let commitChars=option.completion.commitCharacters||result.result.commitCharacters;if(commitChars&&commitChars.indexOf(event.key)>-1)applyCompletion(view,option);return false;}}));var baseTheme=/* @__PURE__ */EditorView.baseTheme({\".cm-tooltip.cm-tooltip-autocomplete\":{\"& > ul\":{fontFamily:\"monospace\",whiteSpace:\"nowrap\",overflow:\"hidden auto\",maxWidth_fallback:\"700px\",maxWidth:\"min(700px, 95vw)\",minWidth:\"250px\",maxHeight:\"10em\",height:\"100%\",listStyle:\"none\",margin:0,padding:0,\"& > li, & > completion-section\":{padding:\"1px 3px\",lineHeight:1.2},\"& > li\":{overflowX:\"hidden\",textOverflow:\"ellipsis\",cursor:\"pointer\"},\"& > completion-section\":{display:\"list-item\",borderBottom:\"1px solid silver\",paddingLeft:\"0.5em\",opacity:.7}}},\"&light .cm-tooltip-autocomplete ul li[aria-selected]\":{background:\"#17c\",color:\"white\"},\"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]\":{background:\"#777\"},\"&dark .cm-tooltip-autocomplete ul li[aria-selected]\":{background:\"#347\",color:\"white\"},\"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]\":{background:\"#444\"},\".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after\":{content:'\"\\xb7\\xb7\\xb7\"',opacity:.5,display:\"block\",textAlign:\"center\"},\".cm-tooltip.cm-completionInfo\":{position:\"absolute\",padding:\"3px 9px\",width:\"max-content\",maxWidth:`${400}px`,boxSizing:\"border-box\",whiteSpace:\"pre-line\"},\".cm-completionInfo.cm-completionInfo-left\":{right:\"100%\"},\".cm-completionInfo.cm-completionInfo-right\":{left:\"100%\"},\".cm-completionInfo.cm-completionInfo-left-narrow\":{right:`${30}px`},\".cm-completionInfo.cm-completionInfo-right-narrow\":{left:`${30}px`},\"&light .cm-snippetField\":{backgroundColor:\"#00000022\"},\"&dark .cm-snippetField\":{backgroundColor:\"#ffffff22\"},\".cm-snippetFieldPosition\":{verticalAlign:\"text-top\",width:0,height:\"1.15em\",display:\"inline-block\",margin:\"0 -0.7px -.7em\",borderLeft:\"1.4px dotted #888\"},\".cm-completionMatchedText\":{textDecoration:\"underline\"},\".cm-completionDetail\":{marginLeft:\"0.5em\",fontStyle:\"italic\"},\".cm-completionIcon\":{fontSize:\"90%\",width:\".8em\",display:\"inline-block\",textAlign:\"center\",paddingRight:\".6em\",opacity:\"0.6\",boxSizing:\"content-box\"},\".cm-completionIcon-function, .cm-completionIcon-method\":{\"&:after\":{content:\"'ƒ'\"}},\".cm-completionIcon-class\":{\"&:after\":{content:\"'○'\"}},\".cm-completionIcon-interface\":{\"&:after\":{content:\"'◌'\"}},\".cm-completionIcon-variable\":{\"&:after\":{content:\"'𝑥'\"}},\".cm-completionIcon-constant\":{\"&:after\":{content:\"'𝐶'\"}},\".cm-completionIcon-type\":{\"&:after\":{content:\"'𝑡'\"}},\".cm-completionIcon-enum\":{\"&:after\":{content:\"'∪'\"}},\".cm-completionIcon-property\":{\"&:after\":{content:\"'□'\"}},\".cm-completionIcon-keyword\":{\"&:after\":{content:\"'🔑︎'\"}},\".cm-completionIcon-namespace\":{\"&:after\":{content:\"'▢'\"}},\".cm-completionIcon-text\":{\"&:after\":{content:\"'abc'\",fontSize:\"50%\",verticalAlign:\"middle\"}}});var FieldPos=class{constructor(field,line,from,to){this.field=field;this.line=line;this.from=from;this.to=to;}};var FieldRange=class _FieldRange{map(changes){let from=changes.mapPos(this.from,-1,MapMode.TrackDel);let to=changes.mapPos(this.to,1,MapMode.TrackDel);return from==null||to==null?null:new _FieldRange(this.field,from,to);}constructor(field,from,to){this.field=field;this.from=from;this.to=to;}};var Snippet=class _Snippet{instantiate(state,pos){let text=[],lineStart=[pos];let lineObj=state.doc.lineAt(pos),baseIndent=/^\\s*/.exec(lineObj.text)[0];for(let line of this.lines){if(text.length){let indent=baseIndent,tabs=/^\\t*/.exec(line)[0].length;for(let i=0;i<tabs;i++)indent+=state.facet(indentUnit);lineStart.push(pos+indent.length-tabs);line=indent+line.slice(tabs);}text.push(line);pos+=line.length+1;}let ranges=this.fieldPositions.map(pos2=>new FieldRange(pos2.field,lineStart[pos2.line]+pos2.from,lineStart[pos2.line]+pos2.to));return{text,ranges};}static parse(template){let fields=[];let lines=[],positions=[],m;for(let line of template.split(/\\r\\n?|\\n/)){while(m=/[#$]\\{(?:(\\d+)(?::([^}]*))?|((?:\\\\[{}]|[^}])*))\\}/.exec(line)){let seq=m[1]?+m[1]:null,rawName=m[2]||m[3]||\"\",found=-1;let name=rawName.replace(/\\\\[{}]/g,m2=>m2[1]);for(let i=0;i<fields.length;i++){if(seq!=null?fields[i].seq==seq:name?fields[i].name==name:false)found=i;}if(found<0){let i=0;while(i<fields.length&&(seq==null||fields[i].seq!=null&&fields[i].seq<seq))i++;fields.splice(i,0,{seq,name});found=i;for(let pos of positions)if(pos.field>=found)pos.field++;}positions.push(new FieldPos(found,lines.length,m.index,m.index+name.length));line=line.slice(0,m.index)+rawName+line.slice(m.index+m[0].length);}line=line.replace(/\\\\([{}])/g,(_,brace,index)=>{for(let pos of positions)if(pos.line==lines.length&&pos.from>index){pos.from--;pos.to--;}return brace;});lines.push(line);}return new _Snippet(lines,positions);}constructor(lines,fieldPositions){this.lines=lines;this.fieldPositions=fieldPositions;}};var fieldMarker=/* @__PURE__ */Decoration.widget({widget:/* @__PURE__ */new class extends WidgetType{toDOM(){let span=document.createElement(\"span\");span.className=\"cm-snippetFieldPosition\";return span;}ignoreEvent(){return false;}}});var fieldRange=/* @__PURE__ */Decoration.mark({class:\"cm-snippetField\"});var ActiveSnippet=class _ActiveSnippet{map(changes){let ranges=[];for(let r of this.ranges){let mapped=r.map(changes);if(!mapped)return null;ranges.push(mapped);}return new _ActiveSnippet(ranges,this.active);}selectionInsideField(sel){return sel.ranges.every(range=>this.ranges.some(r=>r.field==this.active&&r.from<=range.from&&r.to>=range.to));}constructor(ranges,active){this.ranges=ranges;this.active=active;this.deco=Decoration.set(ranges.map(r=>(r.from==r.to?fieldMarker:fieldRange).range(r.from,r.to)));}};var setActive=/* @__PURE__ */StateEffect.define({map(value,changes){return value&&value.map(changes);}});var moveToField=/* @__PURE__ */StateEffect.define();var snippetState=/* @__PURE__ */StateField.define({create(){return null;},update(value,tr){for(let effect of tr.effects){if(effect.is(setActive))return effect.value;if(effect.is(moveToField)&&value)return new ActiveSnippet(value.ranges,effect.value);}if(value&&tr.docChanged)value=value.map(tr.changes);if(value&&tr.selection&&!value.selectionInsideField(tr.selection))value=null;return value;},provide:f=>EditorView.decorations.from(f,val=>val?val.deco:Decoration.none)});function fieldSelection(ranges,field){return EditorSelection.create(ranges.filter(r=>r.field==field).map(r=>EditorSelection.range(r.from,r.to)));}function snippet(template){let snippet2=Snippet.parse(template);return(editor,completion,from,to)=>{let{text,ranges}=snippet2.instantiate(editor.state,from);let{main}=editor.state.selection;let spec={changes:{from,to:to==main.from?main.to:to,insert:Text.of(text)},scrollIntoView:true,annotations:completion?[pickedCompletion.of(completion),Transaction.userEvent.of(\"input.complete\")]:void 0};if(ranges.length)spec.selection=fieldSelection(ranges,0);if(ranges.some(r=>r.field>0)){let active=new ActiveSnippet(ranges,0);let effects=spec.effects=[setActive.of(active)];if(editor.state.field(snippetState,false)===void 0)effects.push(StateEffect.appendConfig.of([snippetState,addSnippetKeymap,snippetPointerHandler,baseTheme]));}editor.dispatch(editor.state.update(spec));};}function moveField(dir){return({state,dispatch})=>{let active=state.field(snippetState,false);if(!active||dir<0&&active.active==0)return false;let next=active.active+dir,last=dir>0&&!active.ranges.some(r=>r.field==next+dir);dispatch(state.update({selection:fieldSelection(active.ranges,next),effects:setActive.of(last?null:new ActiveSnippet(active.ranges,next)),scrollIntoView:true}));return true;};}var clearSnippet=({state,dispatch})=>{let active=state.field(snippetState,false);if(!active)return false;dispatch(state.update({effects:setActive.of(null)}));return true;};var nextSnippetField=/* @__PURE__ */moveField(1);var prevSnippetField=/* @__PURE__ */moveField(-1);function hasNextSnippetField(state){let active=state.field(snippetState,false);return!!(active&&active.ranges.some(r=>r.field==active.active+1));}function hasPrevSnippetField(state){let active=state.field(snippetState,false);return!!(active&&active.active>0);}var defaultSnippetKeymap=[{key:\"Tab\",run:nextSnippetField,shift:prevSnippetField},{key:\"Escape\",run:clearSnippet}];var snippetKeymap=/* @__PURE__ */Facet.define({combine(maps){return maps.length?maps[0]:defaultSnippetKeymap;}});var addSnippetKeymap=/* @__PURE__ */Prec.highest(/* @__PURE__ */keymap.compute([snippetKeymap],state=>state.facet(snippetKeymap)));function snippetCompletion(template,completion){return Object.assign(Object.assign({},completion),{apply:snippet(template)});}var snippetPointerHandler=/* @__PURE__ */EditorView.domEventHandlers({mousedown(event,view){let active=view.state.field(snippetState,false),pos;if(!active||(pos=view.posAtCoords({x:event.clientX,y:event.clientY}))==null)return false;let match=active.ranges.find(r=>r.from<=pos&&r.to>=pos);if(!match||match.field==active.active)return false;view.dispatch({selection:fieldSelection(active.ranges,match.field),effects:setActive.of(active.ranges.some(r=>r.field>match.field)?new ActiveSnippet(active.ranges,match.field):null),scrollIntoView:true});return true;}});function wordRE(wordChars){let escaped=wordChars.replace(/[\\]\\-\\\\]/g,\"\\\\$&\");try{return new RegExp(`[\\\\p{Alphabetic}\\\\p{Number}_${escaped}]+`,\"ug\");}catch(_a){return new RegExp(`[w${escaped}]`,\"g\");}}function mapRE(re,f){return new RegExp(f(re.source),re.unicode?\"u\":\"\");}var wordCaches=/* @__PURE__ */Object.create(null);function wordCache(wordChars){return wordCaches[wordChars]||(wordCaches[wordChars]=/* @__PURE__ */new WeakMap);}function storeWords(doc,wordRE2,result,seen,ignoreAt){for(let lines=doc.iterLines(),pos=0;!lines.next().done;){let{value}=lines,m;wordRE2.lastIndex=0;while(m=wordRE2.exec(value)){if(!seen[m[0]]&&pos+m.index!=ignoreAt){result.push({type:\"text\",label:m[0]});seen[m[0]]=true;if(result.length>=2e3)return;}}pos+=value.length+1;}}function collectWords(doc,cache,wordRE2,to,ignoreAt){let big=doc.length>=1e3;let cached=big&&cache.get(doc);if(cached)return cached;let result=[],seen=/* @__PURE__ */Object.create(null);if(doc.children){let pos=0;for(let ch of doc.children){if(ch.length>=1e3){for(let c of collectWords(ch,cache,wordRE2,to-pos,ignoreAt-pos)){if(!seen[c.label]){seen[c.label]=true;result.push(c);}}}else{storeWords(ch,wordRE2,result,seen,ignoreAt-pos);}pos+=ch.length+1;}}else{storeWords(doc,wordRE2,result,seen,ignoreAt);}if(big&&result.length<2e3)cache.set(doc,result);return result;}var completeAnyWord=context=>{let wordChars=context.state.languageDataAt(\"wordChars\",context.pos).join(\"\");let re=wordRE(wordChars);let token=context.matchBefore(mapRE(re,s=>s+\"$\"));if(!token&&!context.explicit)return null;let from=token?token.from:context.pos;let options=collectWords(context.state.doc,wordCache(wordChars),re,5e4,from);return{from,options,validFor:mapRE(re,s=>\"^\"+s)};};var defaults={brackets:[\"(\",\"[\",\"{\",\"'\",'\"'],before:\")]}:;>\",stringPrefixes:[]};var closeBracketEffect=/* @__PURE__ */StateEffect.define({map(value,mapping){let mapped=mapping.mapPos(value,-1,MapMode.TrackAfter);return mapped==null?void 0:mapped;}});var closedBracket=/* @__PURE__ */new class extends RangeValue{};closedBracket.startSide=1;closedBracket.endSide=-1;var bracketState=/* @__PURE__ */StateField.define({create(){return RangeSet.empty;},update(value,tr){value=value.map(tr.changes);if(tr.selection){let line=tr.state.doc.lineAt(tr.selection.main.head);value=value.update({filter:from=>from>=line.from&&from<=line.to});}for(let effect of tr.effects)if(effect.is(closeBracketEffect))value=value.update({add:[closedBracket.range(effect.value,effect.value+1)]});return value;}});function closeBrackets(){return[inputHandler,bracketState];}var definedClosing=\"()[]{}<>\\xab\\xbb\\xbb\\xab［］｛｝\";function closing(ch){for(let i=0;i<definedClosing.length;i+=2)if(definedClosing.charCodeAt(i)==ch)return definedClosing.charAt(i+1);return fromCodePoint(ch<128?ch:ch+1);}function config(state,pos){return state.languageDataAt(\"closeBrackets\",pos)[0]||defaults;}var android=typeof navigator==\"object\"&&/* @__PURE__ *//Android\\b/.test(navigator.userAgent);var inputHandler=/* @__PURE__ */EditorView.inputHandler.of((view,from,to,insert)=>{if((android?view.composing:view.compositionStarted)||view.state.readOnly)return false;let sel=view.state.selection.main;if(insert.length>2||insert.length==2&&codePointSize(codePointAt(insert,0))==1||from!=sel.from||to!=sel.to)return false;let tr=insertBracket(view.state,insert);if(!tr)return false;view.dispatch(tr);return true;});var deleteBracketPair=({state,dispatch})=>{if(state.readOnly)return false;let conf=config(state,state.selection.main.head);let tokens=conf.brackets||defaults.brackets;let dont=null,changes=state.changeByRange(range=>{if(range.empty){let before=prevChar(state.doc,range.head);for(let token of tokens){if(token==before&&nextChar(state.doc,range.head)==closing(codePointAt(token,0)))return{changes:{from:range.head-token.length,to:range.head+token.length},range:EditorSelection.cursor(range.head-token.length)};}}return{range:dont=range};});if(!dont)dispatch(state.update(changes,{scrollIntoView:true,userEvent:\"delete.backward\"}));return!dont;};var closeBracketsKeymap=[{key:\"Backspace\",run:deleteBracketPair}];function insertBracket(state,bracket){let conf=config(state,state.selection.main.head);let tokens=conf.brackets||defaults.brackets;for(let tok of tokens){let closed=closing(codePointAt(tok,0));if(bracket==tok)return closed==tok?handleSame(state,tok,tokens.indexOf(tok+tok+tok)>-1,conf):handleOpen(state,tok,closed,conf.before||defaults.before);if(bracket==closed&&closedBracketAt(state,state.selection.main.from))return handleClose(state,tok,closed);}return null;}function closedBracketAt(state,pos){let found=false;state.field(bracketState).between(0,state.doc.length,from=>{if(from==pos)found=true;});return found;}function nextChar(doc,pos){let next=doc.sliceString(pos,pos+2);return next.slice(0,codePointSize(codePointAt(next,0)));}function prevChar(doc,pos){let prev=doc.sliceString(pos-2,pos);return codePointSize(codePointAt(prev,0))==prev.length?prev:prev.slice(1);}function handleOpen(state,open,close,closeBefore){let dont=null,changes=state.changeByRange(range=>{if(!range.empty)return{changes:[{insert:open,from:range.from},{insert:close,from:range.to}],effects:closeBracketEffect.of(range.to+open.length),range:EditorSelection.range(range.anchor+open.length,range.head+open.length)};let next=nextChar(state.doc,range.head);if(!next||/\\s/.test(next)||closeBefore.indexOf(next)>-1)return{changes:{insert:open+close,from:range.head},effects:closeBracketEffect.of(range.head+open.length),range:EditorSelection.cursor(range.head+open.length)};return{range:dont=range};});return dont?null:state.update(changes,{scrollIntoView:true,userEvent:\"input.type\"});}function handleClose(state,_open,close){let dont=null,changes=state.changeByRange(range=>{if(range.empty&&nextChar(state.doc,range.head)==close)return{changes:{from:range.head,to:range.head+close.length,insert:close},range:EditorSelection.cursor(range.head+close.length)};return dont={range};});return dont?null:state.update(changes,{scrollIntoView:true,userEvent:\"input.type\"});}function handleSame(state,token,allowTriple,config2){let stringPrefixes=config2.stringPrefixes||defaults.stringPrefixes;let dont=null,changes=state.changeByRange(range=>{if(!range.empty)return{changes:[{insert:token,from:range.from},{insert:token,from:range.to}],effects:closeBracketEffect.of(range.to+token.length),range:EditorSelection.range(range.anchor+token.length,range.head+token.length)};let pos=range.head,next=nextChar(state.doc,pos),start;if(next==token){if(nodeStart(state,pos)){return{changes:{insert:token+token,from:pos},effects:closeBracketEffect.of(pos+token.length),range:EditorSelection.cursor(pos+token.length)};}else if(closedBracketAt(state,pos)){let isTriple=allowTriple&&state.sliceDoc(pos,pos+token.length*3)==token+token+token;let content=isTriple?token+token+token:token;return{changes:{from:pos,to:pos+content.length,insert:content},range:EditorSelection.cursor(pos+content.length)};}}else if(allowTriple&&state.sliceDoc(pos-2*token.length,pos)==token+token&&(start=canStartStringAt(state,pos-2*token.length,stringPrefixes))>-1&&nodeStart(state,start)){return{changes:{insert:token+token+token+token,from:pos},effects:closeBracketEffect.of(pos+token.length),range:EditorSelection.cursor(pos+token.length)};}else if(state.charCategorizer(pos)(next)!=CharCategory.Word){if(canStartStringAt(state,pos,stringPrefixes)>-1&&!probablyInString(state,pos,token,stringPrefixes))return{changes:{insert:token+token,from:pos},effects:closeBracketEffect.of(pos+token.length),range:EditorSelection.cursor(pos+token.length)};}return{range:dont=range};});return dont?null:state.update(changes,{scrollIntoView:true,userEvent:\"input.type\"});}function nodeStart(state,pos){let tree=syntaxTree(state).resolveInner(pos+1);return tree.parent&&tree.from==pos;}function probablyInString(state,pos,quoteToken,prefixes){let node=syntaxTree(state).resolveInner(pos,-1);let maxPrefix=prefixes.reduce((m,p)=>Math.max(m,p.length),0);for(let i=0;i<5;i++){let start=state.sliceDoc(node.from,Math.min(node.to,node.from+quoteToken.length+maxPrefix));let quotePos=start.indexOf(quoteToken);if(!quotePos||quotePos>-1&&prefixes.indexOf(start.slice(0,quotePos))>-1){let first=node.firstChild;while(first&&first.from==node.from&&first.to-first.from>quoteToken.length+quotePos){if(state.sliceDoc(first.to-quoteToken.length,first.to)==quoteToken)return false;first=first.firstChild;}return true;}let parent=node.to==pos&&node.parent;if(!parent)break;node=parent;}return false;}function canStartStringAt(state,pos,prefixes){let charCat=state.charCategorizer(pos);if(charCat(state.sliceDoc(pos-1,pos))!=CharCategory.Word)return pos;for(let prefix of prefixes){let start=pos-prefix.length;if(state.sliceDoc(start,pos)==prefix&&charCat(state.sliceDoc(start-1,start))!=CharCategory.Word)return start;}return-1;}function autocompletion(config2={}){return[commitCharacters,completionState,completionConfig.of(config2),completionPlugin,completionKeymapExt,baseTheme];}var completionKeymap=[{key:\"Ctrl-Space\",run:startCompletion},{mac:\"Alt-`\",run:startCompletion},{key:\"Escape\",run:closeCompletion},{key:\"ArrowDown\",run:/* @__PURE__ */moveCompletionSelection(true)},{key:\"ArrowUp\",run:/* @__PURE__ */moveCompletionSelection(false)},{key:\"PageDown\",run:/* @__PURE__ */moveCompletionSelection(true,\"page\")},{key:\"PageUp\",run:/* @__PURE__ */moveCompletionSelection(false,\"page\")},{key:\"Enter\",run:acceptCompletion}];var completionKeymapExt=/* @__PURE__ */Prec.highest(/* @__PURE__ */keymap.computeN([completionConfig],state=>state.facet(completionConfig).defaultKeymap?[completionKeymap]:[]));function completionStatus(state){let cState=state.field(completionState,false);return cState&&cState.active.some(a=>a.isPending)?\"pending\":cState&&cState.active.some(a=>a.state!=0)?\"active\":null;}var completionArrayCache=/* @__PURE__ */new WeakMap;function currentCompletions(state){var _a;let open=(_a=state.field(completionState,false))===null||_a===void 0?void 0:_a.open;if(!open||open.disabled)return[];let completions=completionArrayCache.get(open.options);if(!completions)completionArrayCache.set(open.options,completions=open.options.map(o=>o.completion));return completions;}function selectedCompletion(state){var _a;let open=(_a=state.field(completionState,false))===null||_a===void 0?void 0:_a.open;return open&&!open.disabled&&open.selected>=0?open.options[open.selected].completion:null;}function selectedCompletionIndex(state){var _a;let open=(_a=state.field(completionState,false))===null||_a===void 0?void 0:_a.open;return open&&!open.disabled&&open.selected>=0?open.selected:null;}function setSelectedCompletion(index){return setSelectedEffect.of(index);}export{CompletionContext,acceptCompletion,autocompletion,clearSnippet,closeBrackets,closeBracketsKeymap,closeCompletion,completeAnyWord,completeFromList,completionKeymap,completionStatus,currentCompletions,deleteBracketPair,hasNextSnippetField,hasPrevSnippetField,ifIn,ifNotIn,insertBracket,insertCompletionText,moveCompletionSelection,nextSnippetField,pickedCompletion,prevSnippetField,selectedCompletion,selectedCompletionIndex,setSelectedCompletion,snippet,snippetCompletion,snippetKeymap,startCompletion,};\nexport const __FramerMetadata__ = {\"exports\":{\"closeCompletion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"insertBracket\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"setSelectedCompletion\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"nextSnippetField\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"prevSnippetField\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"snippetKeymap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"moveCompletionSelection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"currentCompletions\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hasNextSnippetField\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"completionKeymap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"snippet\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hasPrevSnippetField\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"completeFromList\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"snippetCompletion\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"autocompletion\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"pickedCompletion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"completeAnyWord\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"clearSnippet\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"deleteBracketPair\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"closeBrackets\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"selectedCompletion\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ifNotIn\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"acceptCompletion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"selectedCompletionIndex\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"startCompletion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CompletionContext\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"completionStatus\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"insertCompletionText\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ifIn\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"closeBracketsKeymap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"mlBA8BmK,SAAS,EAAM,EAAM,CAAC,IAAI,EAAK,OAAO,KAAK,EAAM,CAAC,KAAK,GAAG,CAAK,EAAM,KAAK,KAAK,EAAK,CAAsC,OAAlC,IAAM,EAAK,EAAK,QAAQ,MAAM,GAAG,EAAO,IAAI,EAAM,MAAM,KAAK,EAAK,QAAQ,WAAW,OAAO,CAAC,GAAI,SAAS,EAAY,EAAQ,CAAC,IAAI,EAAqB,OAAO,OAAO,KAAK,CAAC,EAAoB,OAAO,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,WAAS,EAAQ,CAAC,EAAM,EAAM,IAAI,GAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAM,OAAO,IAAI,EAAK,EAAM,IAAI,GAAM,IAAI,EAAO,EAAM,EAAM,CAAC,EAAM,EAAK,CAAC,KAAK,MAAM,CAAK,OAAO,IAAI,EAAO,CAAC,IAAI,OAAO,EAAO,CAAC,CAAE,SAAS,GAAiB,EAAK,CAAC,IAAI,EAAQ,EAAK,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAI,CAAC,EAAS,GAAO,EAAQ,MAAM,GAAG,QAAQ,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,EAAY,EAAQ,CAAC,MAAO,IAAS,CAAC,IAAI,EAAM,EAAQ,YAAY,EAAM,CAAC,OAAO,GAAO,EAAQ,SAAS,CAAC,KAAK,EAAM,EAAM,KAAK,EAAQ,IAAI,UAAQ,WAAS,CAAC,MAAyO,SAAS,GAAQ,EAAM,EAAO,CAAC,MAAO,IAAS,CAAC,IAAI,IAAI,EAAI,EAAW,EAAQ,MAAM,CAAC,aAAa,EAAQ,IAAI,GAAG,CAAC,EAAI,EAAI,EAAI,OAAO,CAAC,GAAG,EAAM,QAAQ,EAAI,KAAK,CAAC,GAAG,OAAO,KAAK,GAAG,EAAI,KAAK,MAAM,MAAO,OAAO,EAAO,EAAQ,EAA2M,SAAS,GAAa,EAAK,EAAM,CAAQ,GAAG,CAAC,UAAQ,EAAS,EAAS,GAAO,EAAO,IAAI,IAAI,EAAO,EAAO,EAAO,OAAO,IAAI,IAAsC,MAA/B,CAAC,GAAU,CAAC,EAAc,EAAgB,OAAO,GAAG,EAAS,IAAI,GAAG,KAAK,EAAO,GAAG,EAAO,IAAI,KAAS,EAAK,QAA8B,EAAK,WAAW,IAAI,IAAG,CASmtN,SAAS,EAAe,EAAO,EAAM,CAAC,OAAO,EAAgB,OAAO,EAAO,OAAO,GAAG,EAAE,OAAO,EAAM,CAAC,IAAI,GAAG,EAAgB,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAE,SAAS,GAAQ,EAAS,CAAC,IAAI,EAAS,EAAQ,MAAM,EAAS,CAAC,OAAO,EAAO,EAAW,EAAK,IAAK,CAAC,GAAG,CAAC,OAAK,UAAQ,EAAS,YAAY,EAAO,MAAM,EAAK,CAAI,CAAC,QAAM,EAAO,MAAM,UAAc,EAAK,CAAC,QAAQ,CAAC,OAAK,GAAG,GAAI,EAAK,KAAK,EAAK,GAAG,EAAG,OAAO,GAAK,GAAG,EAAK,CAAC,CAAC,eAAe,GAAK,YAAY,EAAW,CAAC,EAAiB,GAAG,EAAW,CAAC,GAAY,UAAU,GAAG,iBAAiB,CAAC,CAAC,IAAK,GAAE,CAA0D,GAAtD,EAAO,SAAO,EAAK,UAAU,EAAe,EAAO,EAAE,EAAI,EAAO,KAAK,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAO,IAAI,EAAc,EAAO,EAAE,CAAK,EAAQ,EAAK,QAAQ,CAAC,EAAU,GAAG,EAAO,CAAC,CAAI,EAAO,MAAM,MAAM,EAAa,GAAM,GAAG,IAAK,IAAE,EAAQ,KAAK,EAAY,aAAa,GAAG,CAAC,EAAa,EAAiB,EAAsB,EAAU,CAAC,CAAC,CAAE,EAAO,SAAS,EAAO,MAAM,OAAO,EAAK,CAAC,EAAI,SAAS,EAAU,EAAI,CAAC,OAAO,CAAC,QAAM,cAAY,CAAC,IAAI,EAAO,EAAM,MAAM,EAAa,GAAM,CAAC,GAAG,CAAC,GAAQ,EAAI,GAAG,EAAO,QAAQ,EAAE,MAAO,GAAM,IAAI,EAAK,EAAO,OAAO,EAAI,EAAK,EAAI,GAAG,CAAC,EAAO,OAAO,KAAK,GAAG,EAAE,OAAO,EAAK,EAAI,CAAkK,OAAjK,EAAS,EAAM,OAAO,CAAC,UAAU,EAAe,EAAO,OAAO,EAAK,CAAC,QAAQ,EAAU,GAAG,EAAK,KAAK,IAAI,EAAc,EAAO,OAAO,EAAK,CAAC,CAAC,eAAe,GAAK,CAAC,CAAC,CAAQ,IAAk4B,SAAS,GAAkB,EAAS,EAAW,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,EAAE,CAAC,EAAW,CAAC,CAAC,MAAM,GAAQ,EAAS,CAAC,CAAC,CAAy/F,SAAS,IAAe,CAAC,MAAM,CAAC,EAAa,EAAa,CAAoD,SAAS,EAAQ,EAAG,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAe,OAAO,GAAG,EAAE,GAAG,EAAe,WAAW,EAAE,EAAE,EAAG,OAAO,EAAe,OAAO,EAAE,EAAE,CAAC,OAAO,GAAc,EAAG,IAAI,EAAG,EAAG,EAAE,CAAE,SAAS,EAAO,EAAM,EAAI,CAAC,OAAO,EAAM,eAAe,gBAAgB,EAAI,CAAC,IAAI,EAA2sC,SAAS,GAAc,EAAM,EAAQ,CAAC,IAAI,EAAK,EAAO,EAAM,EAAM,UAAU,KAAK,KAAK,CAAK,EAAO,EAAK,UAAU,EAAS,SAAS,IAAI,IAAI,KAAO,EAAO,CAAC,IAAI,EAAO,EAAQA,EAAY,EAAI,EAAE,CAAC,CAAC,GAAG,GAAS,EAAI,OAAO,GAAQ,EAAI,GAAW,EAAM,EAAI,EAAO,QAAQ,EAAI,EAAI,EAAI,CAAC,GAAG,EAAK,CAAC,GAAW,EAAM,EAAI,EAAO,EAAK,QAAQ,EAAS,OAAO,CAAC,GAAG,GAAS,GAAQ,EAAgB,EAAM,EAAM,UAAU,KAAK,KAAK,CAAC,OAAO,GAAY,EAAM,EAAI,EAAO,CAAE,OAAO,KAAM,SAAS,EAAgB,EAAM,EAAI,CAAC,IAAI,EAAM,GAA6F,OAAvF,EAAM,MAAM,EAAa,CAAC,QAAQ,EAAE,EAAM,IAAI,OAAO,GAAM,CAAI,GAAM,IAAI,EAAM,KAAO,CAAQ,EAAO,SAAS,EAAS,EAAI,EAAI,CAAC,IAAI,EAAK,EAAI,YAAY,EAAI,EAAI,EAAE,CAAC,OAAO,EAAK,MAAM,EAAEC,EAAcD,EAAY,EAAK,EAAE,CAAC,CAAC,CAAE,SAAS,GAAS,EAAI,EAAI,CAAC,IAAI,EAAK,EAAI,YAAY,EAAI,EAAE,EAAI,CAAC,OAAOC,EAAcD,EAAY,EAAK,EAAE,CAAC,EAAE,EAAK,OAAO,EAAK,EAAK,MAAM,EAAE,CAAE,SAAS,GAAW,EAAM,EAAK,EAAM,EAAY,CAAC,IAAI,EAAK,KAAK,EAAQ,EAAM,cAAc,GAAO,CAAC,GAAG,CAAC,EAAM,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAK,KAAK,EAAM,KAAK,CAAC,CAAC,OAAO,EAAM,KAAK,EAAM,GAAG,CAAC,CAAC,QAAQ,EAAmB,GAAG,EAAM,GAAG,EAAK,OAAO,CAAC,MAAM,EAAgB,MAAM,EAAM,OAAO,EAAK,OAAO,EAAM,KAAK,EAAK,OAAO,CAAC,CAAC,IAAI,EAAK,EAAS,EAAM,IAAI,EAAM,KAAK,CAAwN,MAApN,CAAC,GAAM,KAAK,KAAK,EAAK,EAAE,EAAY,QAAQ,EAAK,CAAC,GAAS,CAAC,QAAQ,CAAC,OAAO,EAAK,EAAM,KAAK,EAAM,KAAK,CAAC,QAAQ,EAAmB,GAAG,EAAM,KAAK,EAAK,OAAO,CAAC,MAAM,EAAgB,OAAO,EAAM,KAAK,EAAK,OAAO,CAAC,CAAO,CAAC,MAAM,EAAK,EAAM,EAAG,CAAC,OAAO,EAAK,KAAK,EAAM,OAAO,EAAQ,CAAC,eAAe,GAAK,UAAU,aAAa,CAAC,CAAE,SAAS,GAAY,EAAM,EAAM,EAAM,CAAC,IAAI,EAAK,KAAK,EAAQ,EAAM,cAAc,GAAW,EAAM,OAAO,EAAS,EAAM,IAAI,EAAM,KAAK,EAAE,EAAY,CAAC,QAAQ,CAAC,KAAK,EAAM,KAAK,GAAG,EAAM,KAAK,EAAM,OAAO,OAAO,EAAM,CAAC,MAAM,EAAgB,OAAO,EAAM,KAAK,EAAM,OAAO,CAAC,CAAQ,EAAK,CAAC,QAAM,CAAG,CAAC,OAAO,EAAK,KAAK,EAAM,OAAO,EAAQ,CAAC,eAAe,GAAK,UAAU,aAAa,CAAC,CAAE,SAAS,GAAW,EAAM,EAAM,EAAY,EAAQ,CAAC,IAAI,EAAe,EAAQ,gBAAgB,EAAS,eAAmB,EAAK,KAAK,EAAQ,EAAM,cAAc,GAAO,CAAC,GAAG,CAAC,EAAM,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAM,KAAK,EAAM,KAAK,CAAC,CAAC,OAAO,EAAM,KAAK,EAAM,GAAG,CAAC,CAAC,QAAQ,EAAmB,GAAG,EAAM,GAAG,EAAM,OAAO,CAAC,MAAM,EAAgB,MAAM,EAAM,OAAO,EAAM,OAAO,EAAM,KAAK,EAAM,OAAO,CAAC,CAAC,IAAI,EAAI,EAAM,KAAK,EAAK,EAAS,EAAM,IAAI,EAAI,CAAC,EAAM,GAAG,GAAM,EAAO,IAAG,EAAU,EAAM,EAAI,CAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAM,EAAM,KAAK,EAAI,CAAC,QAAQ,EAAmB,GAAG,EAAI,EAAM,OAAO,CAAC,MAAM,EAAgB,OAAO,EAAI,EAAM,OAAO,CAAC,IAAU,EAAgB,EAAM,EAAI,CAAC,CAAqF,IAAI,EAA3E,GAAa,EAAM,SAAS,EAAI,EAAI,EAAM,OAAO,EAAE,EAAE,EAAM,EAAM,EAA2B,EAAM,EAAM,EAAM,EAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAI,GAAG,EAAI,EAAQ,OAAO,OAAO,EAAQ,CAAC,MAAM,EAAgB,OAAO,EAAI,EAAQ,OAAO,CAAC,UAAW,GAAa,EAAM,SAAS,EAAI,EAAE,EAAM,OAAO,EAAI,EAAE,EAAM,IAAQ,EAAM,EAAiB,EAAM,EAAI,EAAE,EAAM,OAAO,EAAe,EAAE,IAAI,EAAU,EAAM,EAAM,CAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAM,EAAM,EAAM,EAAM,KAAK,EAAI,CAAC,QAAQ,EAAmB,GAAG,EAAI,EAAM,OAAO,CAAC,MAAM,EAAgB,OAAO,EAAI,EAAM,OAAO,CAAC,SAAU,EAAM,gBAAgB,EAAI,CAAC,EAAK,EAAE,EAAa,MAAS,EAAiB,EAAM,EAAI,EAAe,CAAC,IAAI,CAAC,GAAiB,EAAM,EAAI,EAAM,EAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAM,EAAM,KAAK,EAAI,CAAC,QAAQ,EAAmB,GAAG,EAAI,EAAM,OAAO,CAAC,MAAM,EAAgB,OAAO,EAAI,EAAM,OAAO,CAAC,CAAE,MAAM,CAAC,MAAM,EAAK,EAAM,EAAG,CAAC,OAAO,EAAK,KAAK,EAAM,OAAO,EAAQ,CAAC,eAAe,GAAK,UAAU,aAAa,CAAC,CAAE,SAAS,EAAU,EAAM,EAAI,CAAC,IAAI,EAAK,EAAW,EAAM,CAAC,aAAa,EAAI,EAAE,CAAC,OAAO,EAAK,QAAQ,EAAK,MAAM,EAAK,SAAS,GAAiB,EAAM,EAAI,EAAW,EAAS,CAAC,IAAI,EAAK,EAAW,EAAM,CAAC,aAAa,EAAI,GAAG,CAAK,EAAU,EAAS,QAAQ,EAAE,IAAI,KAAK,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAM,EAAM,SAAS,EAAK,KAAK,KAAK,IAAI,EAAK,GAAG,EAAK,KAAK,EAAW,OAAO,EAAU,CAAC,CAAK,EAAS,EAAM,QAAQ,EAAW,CAAC,GAAG,CAAC,GAAU,EAAS,IAAI,EAAS,QAAQ,EAAM,MAAM,EAAE,EAAS,CAAC,CAAC,GAAG,CAAC,IAAI,EAAM,EAAK,WAAW,KAAM,GAAO,EAAM,MAAM,EAAK,MAAM,EAAM,GAAG,EAAM,KAAK,EAAW,OAAO,GAAS,CAAC,GAAG,EAAM,SAAS,EAAM,GAAG,EAAW,OAAO,EAAM,GAAG,EAAE,EAAW,MAAO,GAAM,EAAM,EAAM,WAAY,MAAO,GAAM,IAAI,EAAO,EAAK,IAAI,GAAK,EAAK,OAAO,GAAG,CAAC,EAAO,MAAM,EAAK,EAAQ,MAAO,GAAO,SAAS,EAAiB,EAAM,EAAI,EAAS,CAAC,IAAI,EAAQ,EAAM,gBAAgB,EAAI,CAAC,GAAG,EAAQ,EAAM,SAAS,EAAI,EAAE,EAAI,CAAC,EAAE,EAAa,KAAK,OAAO,EAAI,IAAI,IAAI,KAAU,EAAS,CAAC,IAAI,EAAM,EAAI,EAAO,OAAO,GAAG,EAAM,SAAS,EAAM,EAAI,EAAE,GAAQ,EAAQ,EAAM,SAAS,EAAM,EAAE,EAAM,CAAC,EAAE,EAAa,KAAK,OAAO,EAAO,MAAM,kFAlCnwnB,KAAiN,KAA0I,CAAI,EAAkB,KAAK,CAGhpB,YAAY,EAAM,CAAC,IAAI,EAAM,EAAW,KAAK,MAAM,CAAC,aAAa,KAAK,IAAI,GAAG,CAAC,KAAM,GAAO,EAAM,QAAQ,EAAM,KAAK,CAAC,GAAE,EAAM,EAAM,OAAO,OAAO,EAAM,CAAC,KAAK,EAAM,KAAK,GAAG,KAAK,IAAI,KAAK,KAAK,MAAM,SAAS,EAAM,KAAK,KAAK,IAAI,CAAC,KAAK,EAAM,KAAK,CAAC,KAGnP,YAAY,EAAK,CAAC,IAAI,EAAK,KAAK,MAAM,IAAI,OAAO,KAAK,IAAI,CAAK,EAAM,KAAK,IAAI,EAAK,KAAK,KAAK,IAAI,IAAI,CAAK,EAAI,EAAK,KAAK,MAAM,EAAM,EAAK,KAAK,KAAK,IAAI,EAAK,KAAK,CAAK,EAAM,EAAI,OAAO,GAAa,EAAK,GAAM,CAAC,CAAC,OAAO,EAAM,EAAE,KAAK,CAAC,KAAK,EAAM,EAAM,GAAG,KAAK,IAAI,KAAK,EAAI,MAAM,EAAM,CAAC,CAGzR,IAAI,SAAS,CAAC,OAAO,KAAK,gBAAgB,KAY1C,iBAAiB,EAAK,EAAS,EAAQ,CAAI,GAAM,SAAS,KAAK,iBAAgB,KAAK,eAAe,KAAK,EAAS,CAAI,GAAS,EAAQ,cAAY,KAAK,iBAAiB,KAIxK,YAAY,EAAM,EAAI,EAAS,EAAK,CAAC,KAAK,MAAM,EAAM,KAAK,IAAI,EAAI,KAAK,SAAS,EAAS,KAAK,KAAK,EAAK,KAAK,eAAe,EAAE,CAAC,KAAK,iBAAiB,KAAsvD,EAAgC,EAAW,QAAQ,CASnB,OAAO,GAAW,UAAoC,EAAU,SAA6mB,EAAyB,EAAW,UAAU,CAAC,sCAAsC,CAAC,SAAS,CAAC,WAAW,YAAY,WAAW,SAAS,SAAS,cAAc,kBAAkB,QAAQ,SAAS,mBAAmB,SAAS,QAAQ,UAAU,OAAO,OAAO,OAAO,UAAU,OAAO,OAAO,EAAE,QAAQ,EAAE,iCAAiC,CAAC,QAAQ,UAAU,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU,SAAS,aAAa,WAAW,OAAO,UAAU,CAAC,yBAAyB,CAAC,QAAQ,YAAY,aAAa,mBAAmB,YAAY,QAAQ,QAAQ,GAAG,CAAC,CAAC,CAAC,uDAAuD,CAAC,WAAW,OAAO,MAAM,QAAQ,CAAC,gEAAgE,CAAC,WAAW,OAAO,CAAC,sDAAsD,CAAC,WAAW,OAAO,MAAM,QAAQ,CAAC,+DAA+D,CAAC,WAAW,OAAO,CAAC,mFAAmF,CAAC,QAAQ,QAAiB,QAAQ,GAAG,QAAQ,QAAQ,UAAU,SAAS,CAAC,gCAAgC,CAAC,SAAS,WAAW,QAAQ,UAAU,MAAM,cAAc,SAAS,QAAW,UAAU,aAAa,WAAW,WAAW,CAAC,4CAA4C,CAAC,MAAM,OAAO,CAAC,6CAA6C,CAAC,KAAK,OAAO,CAAC,mDAAmD,CAAC,MAAM,OAAU,CAAC,oDAAoD,CAAC,KAAK,OAAU,CAAC,0BAA0B,CAAC,gBAAgB,YAAY,CAAC,yBAAyB,CAAC,gBAAgB,YAAY,CAAC,2BAA2B,CAAC,cAAc,WAAW,MAAM,EAAE,OAAO,SAAS,QAAQ,eAAe,OAAO,iBAAiB,WAAW,oBAAoB,CAAC,4BAA4B,CAAC,eAAe,YAAY,CAAC,uBAAuB,CAAC,WAAW,QAAQ,UAAU,SAAS,CAAC,qBAAqB,CAAC,SAAS,MAAM,MAAM,OAAO,QAAQ,eAAe,UAAU,SAAS,aAAa,OAAO,QAAQ,MAAM,UAAU,cAAc,CAAC,yDAAyD,CAAC,UAAU,CAAC,QAAQ,MAAM,CAAC,CAAC,2BAA2B,CAAC,UAAU,CAAC,QAAQ,MAAM,CAAC,CAAC,+BAA+B,CAAC,UAAU,CAAC,QAAQ,MAAM,CAAC,CAAC,8BAA8B,CAAC,UAAU,CAAC,QAAQ,OAAO,CAAC,CAAC,8BAA8B,CAAC,UAAU,CAAC,QAAQ,OAAO,CAAC,CAAC,0BAA0B,CAAC,UAAU,CAAC,QAAQ,OAAO,CAAC,CAAC,0BAA0B,CAAC,UAAU,CAAC,QAAQ,MAAM,CAAC,CAAC,8BAA8B,CAAC,UAAU,CAAC,QAAQ,MAAM,CAAC,CAAC,6BAA6B,CAAC,UAAU,CAAC,QAAQ,QAAQ,CAAC,CAAC,+BAA+B,CAAC,UAAU,CAAC,QAAQ,MAAM,CAAC,CAAC,0BAA0B,CAAC,UAAU,CAAC,QAAQ,QAAQ,SAAS,MAAM,cAAc,SAAS,CAAC,CAAC,CAAC,CAAK,EAAS,KAAK,CAAC,YAAY,EAAM,EAAK,EAAK,EAAG,CAAC,KAAK,MAAM,EAAM,KAAK,KAAK,EAAK,KAAK,KAAK,EAAK,KAAK,GAAG,IAAU,EAAW,MAAM,CAAW,CAAC,IAAI,EAAQ,CAAC,IAAI,EAAK,EAAQ,OAAO,KAAK,KAAK,GAAG,EAAQ,SAAS,CAAK,EAAG,EAAQ,OAAO,KAAK,GAAG,EAAE,EAAQ,SAAS,CAAC,OAAO,GAAM,MAAM,GAAI,KAAK,KAAK,IAAI,EAAY,KAAK,MAAM,EAAK,EAAG,CAAE,YAAY,EAAM,EAAK,EAAG,CAAC,KAAK,MAAM,EAAM,KAAK,KAAK,EAAK,KAAK,GAAG,IAAU,EAAQ,MAAM,CAAQ,CAAC,YAAY,EAAM,EAAI,CAAC,IAAI,EAAK,EAAE,CAAC,EAAU,CAAC,EAAI,CAAK,EAAQ,EAAM,IAAI,OAAO,EAAI,CAAC,EAAW,OAAO,KAAK,EAAQ,KAAK,CAAC,GAAG,IAAI,IAAI,KAAQ,KAAK,MAAM,CAAC,GAAG,EAAK,OAAO,CAAC,IAAI,EAAO,EAAW,EAAK,OAAO,KAAK,EAAK,CAAC,GAAG,OAAO,IAAI,IAAI,EAAE,EAAE,EAAE,EAAK,IAAI,GAAQ,EAAM,MAAM,GAAW,CAAC,EAAU,KAAK,EAAI,EAAO,OAAO,EAAK,CAAC,EAAK,EAAO,EAAK,MAAM,EAAK,CAAE,EAAK,KAAK,EAAK,CAAC,GAAK,EAAK,OAAO,EAAG,IAAI,EAAO,KAAK,eAAe,IAAI,GAAM,IAAI,EAAW,EAAK,MAAM,EAAU,EAAK,MAAM,EAAK,KAAK,EAAU,EAAK,MAAM,EAAK,GAAG,CAAC,CAAC,MAAM,CAAC,OAAK,SAAO,CAAE,OAAO,MAAM,EAAS,CAAC,IAAI,EAAO,EAAE,CAAK,EAAM,EAAE,CAAC,EAAU,EAAE,CAAC,EAAE,IAAI,IAAI,KAAQ,EAAS,MAAM,WAAW,CAAC,CAAC,KAAM,EAAE,oDAAoD,KAAK,EAAK,EAAC,CAAC,IAAI,EAAI,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,EAAQ,EAAE,IAAI,EAAE,IAAI,GAAG,EAAM,GAAO,EAAK,EAAQ,QAAQ,UAAU,GAAI,EAAG,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAO,OAAO,KAAQ,GAAK,KAAwB,GAAK,EAAO,GAAG,MAAM,EAAxC,EAAO,GAAG,KAAK,KAAoC,EAAM,GAAG,GAAG,EAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAM,EAAE,EAAO,SAAS,GAAK,MAAM,EAAO,GAAG,KAAK,MAAM,EAAO,GAAG,IAAI,IAAK,IAAI,EAAO,OAAO,EAAE,EAAE,CAAC,MAAI,OAAK,CAAC,CAAC,EAAM,EAAE,IAAI,IAAI,KAAO,EAAa,EAAI,OAAO,GAAM,EAAI,QAAS,EAAU,KAAK,IAAI,EAAS,EAAM,EAAM,OAAO,EAAE,MAAM,EAAE,MAAM,EAAK,OAAO,CAAC,CAAC,EAAK,EAAK,MAAM,EAAE,EAAE,MAAM,CAAC,EAAQ,EAAK,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAE,EAAK,EAAK,QAAQ,aAAa,EAAE,EAAM,IAAQ,CAAC,IAAI,IAAI,KAAO,EAAa,EAAI,MAAM,EAAM,QAAQ,EAAI,KAAK,IAAO,EAAI,OAAO,EAAI,MAAM,OAAO,GAAQ,CAAC,EAAM,KAAK,EAAK,CAAE,OAAO,IAAI,EAAS,EAAM,EAAU,CAAE,YAAY,EAAM,EAAe,CAAC,KAAK,MAAM,EAAM,KAAK,eAAe,IAAsB,EAA2B,EAAW,OAAO,CAAC,OAAsB,IAAI,cAAc,EAAU,CAAC,OAAO,CAAC,IAAI,GAAK,SAAS,cAAc,OAAO,EAA0C,MAAzC,GAAK,UAAU,0BAAiC,EAAM,aAAa,CAAC,MAAO,KAAS,CAAC,CAAK,EAA0B,EAAW,KAAK,CAAC,MAAM,kBAAkB,CAAC,CAAK,EAAc,MAAM,CAAc,CAAC,IAAI,EAAQ,CAAC,IAAI,EAAO,EAAE,CAAC,IAAI,IAAI,KAAK,KAAK,OAAO,CAAC,IAAI,EAAO,EAAE,IAAI,EAAQ,CAAC,GAAG,CAAC,EAAO,OAAO,KAAK,EAAO,KAAK,EAAO,CAAE,OAAO,IAAI,EAAe,EAAO,KAAK,OAAO,CAAE,qBAAqB,EAAI,CAAC,OAAO,EAAI,OAAO,MAAM,GAAO,KAAK,OAAO,KAAK,GAAG,EAAE,OAAO,KAAK,QAAQ,EAAE,MAAM,EAAM,MAAM,EAAE,IAAI,EAAM,GAAG,CAAC,CAAE,YAAY,EAAO,EAAO,CAAC,KAAK,OAAO,EAAO,KAAK,OAAO,EAAO,KAAK,KAAK,EAAW,IAAI,EAAO,IAAI,IAAI,EAAE,MAAM,EAAE,GAAG,EAAY,GAAY,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,GAAQ,EAAyB,EAAY,OAAO,CAAC,IAAI,EAAM,EAAQ,CAAC,OAAO,GAAO,EAAM,IAAI,EAAQ,EAAG,CAAC,CAAK,EAA2B,EAAY,QAAQ,CAAK,EAA4B,EAAW,OAAO,CAAC,QAAQ,CAAC,OAAO,MAAO,OAAO,EAAM,EAAG,CAAC,IAAI,IAAI,KAAU,EAAG,QAAQ,CAAC,GAAG,EAAO,GAAG,EAAU,CAAC,OAAO,EAAO,MAAM,GAAG,EAAO,GAAG,EAAY,EAAE,EAAM,OAAO,IAAI,EAAc,EAAM,OAAO,EAAO,MAAM,CAAmI,OAA9H,GAAO,EAAG,aAAW,EAAM,EAAM,IAAI,EAAG,QAAQ,EAAI,GAAO,EAAG,WAAW,CAAC,EAAM,qBAAqB,EAAG,UAAU,GAAC,EAAM,MAAY,GAAQ,QAAQ,GAAG,EAAW,YAAY,KAAK,EAAE,GAAK,EAAI,EAAI,KAAK,EAAW,KAAK,CAAC,CAAC,CAA0yC,GAAc,CAAC,QAAM,cAAwB,EAAM,MAAM,EAAa,GAAM,EAAyB,EAAS,EAAM,OAAO,CAAC,QAAQ,EAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAQ,IAAlE,GAA6E,EAAgC,EAAU,EAAE,CAAK,EAAgC,EAAU,GAAG,CAAyQ,EAAqB,CAAC,CAAC,IAAI,MAAM,IAAI,EAAiB,MAAM,EAAiB,CAAC,CAAC,IAAI,SAAS,IAAI,EAAa,CAAC,CAAK,EAA6B,EAAM,OAAO,CAAC,QAAQ,EAAK,CAAC,OAAO,EAAK,OAAO,EAAK,GAAG,GAAuB,CAAC,CAAK,EAAgC,EAAK,QAAuB,GAAO,QAAQ,CAAC,EAAc,CAAC,GAAO,EAAM,MAAM,EAAc,CAAC,CAAC,CAAmI,EAAqC,EAAW,iBAAiB,CAAC,UAAU,EAAM,EAAK,CAAC,IAAI,EAAO,EAAK,MAAM,MAAM,EAAa,GAAM,CAAC,EAAI,GAAG,CAAC,IAAS,EAAI,EAAK,YAAY,CAAC,EAAE,EAAM,QAAQ,EAAE,EAAM,QAAQ,CAAC,GAAG,KAAK,MAAO,GAAM,IAAI,EAAM,EAAO,OAAO,KAAK,GAAG,EAAE,MAAM,GAAK,EAAE,IAAI,EAAI,CAAgQ,MAA5P,CAAC,GAAO,EAAM,OAAO,EAAO,OAAc,IAAM,EAAK,SAAS,CAAC,UAAU,EAAe,EAAO,OAAO,EAAM,MAAM,CAAC,QAAQ,EAAU,GAAG,EAAO,OAAO,KAAK,GAAG,EAAE,MAAM,EAAM,MAAM,CAAC,IAAI,EAAc,EAAO,OAAO,EAAM,MAAM,CAAC,KAAK,CAAC,eAAe,GAAK,CAAC,CAAQ,KAAO,CAAC,CAAyrD,EAAS,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,SAAS,eAAe,EAAE,CAAC,CAAK,EAAkC,EAAY,OAAO,CAAC,IAAI,EAAM,EAAQ,CAAwD,OAA5C,EAAQ,OAAO,EAAM,GAAG,EAAQ,WAAW,EAAqB,IAAK,IAAW,CAAC,CAAK,EAA6B,IAAI,cAAc,EAAU,GAAG,EAAc,UAAU,EAAE,EAAc,QAAQ,GAAO,EAA4B,EAAW,OAAO,CAAC,QAAQ,CAAC,OAAO,GAAS,OAAQ,OAAO,EAAM,EAAG,CAA6B,GAA5B,EAAM,EAAM,IAAI,EAAG,QAAQ,CAAI,EAAG,UAAU,CAAC,IAAI,EAAK,EAAG,MAAM,IAAI,OAAO,EAAG,UAAU,KAAK,KAAK,CAAC,EAAM,EAAM,OAAO,CAAC,OAAO,GAAM,GAAM,EAAK,MAAM,GAAM,EAAK,GAAG,CAAC,CAAE,IAAI,IAAI,KAAU,EAAG,QAAW,EAAO,GAAG,EAAmB,GAAC,EAAM,EAAM,OAAO,CAAC,IAAI,CAAC,EAAc,MAAM,EAAO,MAAM,EAAO,MAAM,EAAE,CAAC,CAAC,CAAC,EAAC,OAAO,GAAQ,CAAC,CAAiE,EAAe,mBAAuS,EAAQ,OAAO,GAAW,UAAyB,YAAY,KAAK,EAAU,UAAU,CAAK,EAA4B,EAAW,aAAa,IAAI,EAAK,EAAK,EAAG,IAAS,CAAC,IAAI,EAAQ,EAAK,UAAU,EAAK,qBAAqB,EAAK,MAAM,SAAS,MAAO,GAAM,IAAI,EAAI,EAAK,MAAM,UAAU,KAAK,GAAG,EAAO,OAAO,GAAG,EAAO,QAAQ,GAAGC,EAAcD,EAAY,EAAO,EAAE,CAAC,EAAE,GAAG,GAAM,EAAI,MAAM,GAAI,EAAI,GAAG,MAAO,GAAM,IAAI,EAAG,GAAc,EAAK,MAAM,EAAO,CAAuC,OAAlC,GAAgB,EAAK,SAAS,EAAG,CAAQ,IAA/B,IAAsC,CAAK,GAAmB,CAAC,QAAM,cAAY,CAAC,GAAG,EAAM,SAAS,MAAO,GAAuD,IAAI,EAA5C,EAAO,EAAM,EAAM,UAAU,KAAK,KAAK,CAAiB,UAAU,EAAS,SAAa,EAAK,KAAK,EAAQ,EAAM,cAAc,GAAO,CAAC,GAAG,EAAM,MAAM,CAAC,IAAI,EAAO,GAAS,EAAM,IAAI,EAAM,KAAK,CAAC,IAAI,IAAI,KAAS,EAAQ,GAAG,GAAO,GAAQ,EAAS,EAAM,IAAI,EAAM,KAAK,EAAE,EAAQA,EAAY,EAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAM,KAAK,EAAM,OAAO,GAAG,EAAM,KAAK,EAAM,OAAO,CAAC,MAAM,EAAgB,OAAO,EAAM,KAAK,EAAM,OAAO,CAAC,CAAG,MAAM,CAAC,MAAM,EAAK,EAAM,EAAG,CAA4F,OAAvF,GAAK,EAAS,EAAM,OAAO,EAAQ,CAAC,eAAe,GAAK,UAAU,kBAAkB,CAAC,CAAC,CAAO,CAAC,GAAW,EAAoB,CAAC,CAAC,IAAI,YAAY,IAAI,EAAkB,CAAC"}